about summary refs log tree commit diff
path: root/nixpkgs/pkgs/top-level
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/top-level')
-rw-r--r--nixpkgs/pkgs/top-level/agda-packages.nix39
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix1147
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix42131
-rw-r--r--nixpkgs/pkgs/top-level/beam-packages.nix106
-rw-r--r--nixpkgs/pkgs/top-level/by-name-overlay.nix59
-rw-r--r--nixpkgs/pkgs/top-level/config.nix174
-rw-r--r--nixpkgs/pkgs/top-level/coq-packages.nix212
-rw-r--r--nixpkgs/pkgs/top-level/cubocore-packages.nix94
-rw-r--r--nixpkgs/pkgs/top-level/cuda-packages.nix122
-rw-r--r--nixpkgs/pkgs/top-level/darwin-packages.nix269
-rw-r--r--nixpkgs/pkgs/top-level/default.nix144
-rw-r--r--nixpkgs/pkgs/top-level/dhall-packages.nix51
-rw-r--r--nixpkgs/pkgs/top-level/dotnet-packages.nix180
-rw-r--r--nixpkgs/pkgs/top-level/emacs-packages.nix103
-rw-r--r--nixpkgs/pkgs/top-level/emscripten-packages.nix186
-rw-r--r--nixpkgs/pkgs/top-level/gnuradio-packages.nix50
-rw-r--r--nixpkgs/pkgs/top-level/hare-third-party.nix11
-rw-r--r--nixpkgs/pkgs/top-level/haskell-packages.nix613
-rw-r--r--nixpkgs/pkgs/top-level/haxe-packages.nix146
-rw-r--r--nixpkgs/pkgs/top-level/impure.nix89
-rw-r--r--nixpkgs/pkgs/top-level/java-packages.nix244
-rw-r--r--nixpkgs/pkgs/top-level/kodi-packages.nix196
-rw-r--r--nixpkgs/pkgs/top-level/linux-kernels.nix703
-rw-r--r--nixpkgs/pkgs/top-level/lua-packages.nix169
-rw-r--r--nixpkgs/pkgs/top-level/make-tarball.nix88
-rw-r--r--nixpkgs/pkgs/top-level/metrics.nix78
-rw-r--r--nixpkgs/pkgs/top-level/nim-overrides.nix76
-rw-r--r--nixpkgs/pkgs/top-level/nixpkgs-basic-release-checks.nix98
-rw-r--r--nixpkgs/pkgs/top-level/ocaml-packages.nix1986
-rw-r--r--nixpkgs/pkgs/top-level/octave-packages.nix213
-rw-r--r--nixpkgs/pkgs/top-level/packages-config.nix54
-rw-r--r--nixpkgs/pkgs/top-level/perl-packages.nix29337
-rw-r--r--nixpkgs/pkgs/top-level/php-packages.nix691
-rw-r--r--nixpkgs/pkgs/top-level/pkg-config/defaultPkgConfigPackages.nix45
-rw-r--r--nixpkgs/pkgs/top-level/pkg-config/pkg-config-data.json964
-rw-r--r--nixpkgs/pkgs/top-level/pkg-config/test-defaultPkgConfigPackages.nix46
-rw-r--r--nixpkgs/pkgs/top-level/pkg-config/tests.nix21
-rw-r--r--nixpkgs/pkgs/top-level/python-aliases.nix483
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix16437
-rw-r--r--nixpkgs/pkgs/top-level/python2-packages.nix100
-rw-r--r--nixpkgs/pkgs/top-level/qt5-packages.nix280
-rw-r--r--nixpkgs/pkgs/top-level/qt6-packages.nix67
-rw-r--r--nixpkgs/pkgs/top-level/release-alternatives.nix91
-rw-r--r--nixpkgs/pkgs/top-level/release-attrpaths-superset.nix192
-rw-r--r--nixpkgs/pkgs/top-level/release-cross.nix257
-rw-r--r--nixpkgs/pkgs/top-level/release-cuda.nix55
-rw-r--r--nixpkgs/pkgs/top-level/release-haskell.nix681
-rw-r--r--nixpkgs/pkgs/top-level/release-lib.nix163
-rw-r--r--nixpkgs/pkgs/top-level/release-outpaths.nix87
-rw-r--r--nixpkgs/pkgs/top-level/release-python.nix58
-rw-r--r--nixpkgs/pkgs/top-level/release-r.nix13
-rw-r--r--nixpkgs/pkgs/top-level/release-small.nix152
-rw-r--r--nixpkgs/pkgs/top-level/release.nix302
-rw-r--r--nixpkgs/pkgs/top-level/ruby-packages.nix4015
-rw-r--r--nixpkgs/pkgs/top-level/splice.nix168
-rw-r--r--nixpkgs/pkgs/top-level/stage.nix299
-rw-r--r--nixpkgs/pkgs/top-level/unixtools.nix196
-rw-r--r--nixpkgs/pkgs/top-level/wine-packages.nix55
58 files changed, 105086 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/top-level/agda-packages.nix b/nixpkgs/pkgs/top-level/agda-packages.nix
new file mode 100644
index 000000000000..1e0e6e0a2d58
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/agda-packages.nix
@@ -0,0 +1,39 @@
+{ pkgs, lib, newScope, Agda }:
+
+let
+  mkAgdaPackages = Agda: lib.makeScope newScope (mkAgdaPackages' Agda);
+  mkAgdaPackages' = Agda: self: let
+    inherit (self) callPackage;
+    inherit (callPackage ../build-support/agda {
+      inherit Agda self;
+      inherit (pkgs.haskellPackages) ghcWithPackages;
+    }) withPackages mkDerivation;
+  in {
+    inherit mkDerivation;
+
+    lib = lib.extend (final: prev: import ../build-support/agda/lib.nix { lib = prev; });
+
+    agda = withPackages [];
+
+    standard-library = callPackage ../development/libraries/agda/standard-library {
+      inherit (pkgs.haskellPackages) ghcWithPackages;
+    };
+
+    iowa-stdlib = callPackage ../development/libraries/agda/iowa-stdlib { };
+
+    agda-prelude = callPackage ../development/libraries/agda/agda-prelude { };
+
+    agda-categories = callPackage ../development/libraries/agda/agda-categories { };
+
+    cubical = callPackage ../development/libraries/agda/cubical { };
+
+    functional-linear-algebra = callPackage
+      ../development/libraries/agda/functional-linear-algebra { };
+
+    generic = callPackage ../development/libraries/agda/generic { };
+
+    agdarsec = callPackage ../development/libraries/agda/agdarsec { };
+
+    _1lab = callPackage ../development/libraries/agda/1lab { };
+  };
+in mkAgdaPackages Agda
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
new file mode 100644
index 000000000000..16d8b581e90b
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -0,0 +1,1147 @@
+lib: self: super:
+
+### Deprecated aliases - for backward compatibility
+### Please maintain this list in ASCIIbetical ordering.
+### Hint: the "sections" are delimited by ### <letter> ###
+
+# These aliases should not be used within nixpkgs, but exist to improve
+# backward compatibility in projects outside of nixpkgs. See the
+# documentation for the `allowAliases` option for more background.
+
+# A script to convert old aliases to throws and remove old
+# throws can be found in './maintainers/scripts/remove-old-aliases.py'.
+
+# Add 'preserve, reason: reason why' after the date if the alias should not be removed.
+# Try to keep them to a minimum.
+# valid examples of what to preserve:
+#   distro aliases such as:
+#     debian-package-name -> nixos-package-name
+
+with self;
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute set
+  # to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+    if alias.recurseForDerivations or false
+    then removeAttrs alias ["recurseForDerivations"]
+    else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from all-packages.nix.
+  checkInPkgs = n: alias:
+    if builtins.hasAttr n super
+    then throw "Alias ${n} is still in all-packages.nix"
+    else alias;
+
+  mapAliases = aliases:
+    lib.mapAttrs (n: alias:
+      removeDistribute
+        (removeRecurseForDerivations
+          (checkInPkgs n alias)))
+      aliases;
+in
+
+mapAliases ({
+  # Added 2018-07-16 preserve, reason: forceSystem should not be used directly in Nixpkgs.
+  forceSystem = system: _:
+    (import self.path { localSystem = { inherit system; }; });
+
+  ### A ###
+
+  AusweisApp2 = ausweisapp; # Added 2023-11-08
+  a4term = a4; # Added 2023-10-06
+  aether = throw "aether has been removed from nixpkgs; upstream unmaintained, security issues"; # Added 2023-10-03
+  airfield = throw "airfield has been removed due to being unmaintained"; # Added 2023-05-19
+  alertmanager-bot = throw "alertmanager-bot is broken and has been archived by upstream" ; # Added 2023-07-28
+  alsa-project = throw "alsa-project was removed and its sub-attributes were promoted to top-level."; # Added 2023-11-12
+  alsaLib = alsa-lib; # Added 2021-06-09
+  alsaOss = alsa-oss; # Added 2021-06-10
+  alsaPluginWrapper = alsa-plugins-wrapper; # Added 2021-06-10
+  alsaPlugins = alsa-plugins; # Added 2021-06-10
+  alsaTools = alsa-tools; # Added 2021-06-10
+  alsaUtils = alsa-utils; # Added 2021-06-10
+  angelfish = libsForQt5.kdeGear.angelfish; # Added 2021-10-06
+  ansible_2_12 = throw "Ansible 2.12 goes end of life in 2023/05 and can't be supported throughout the 23.05 release cycle"; # Added 2023-05-16
+  apacheAnt_1_9 = throw "Ant 1.9 has been removed since it's not used in nixpkgs anymore"; # Added 2023-11-12
+  antimicroX = antimicrox; # Added 2021-10-31
+  arcanPackages = throw "arcanPackages was removed and its sub-attributes were promoted to top-level"; # Added 2023-11-26
+  ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
+  aseprite-unfree = aseprite; # Added 2023-08-26
+  asls = throw "asls has been removed: abandoned by upstream"; # Added 2023-03-16
+  asterisk_16 = throw "asterisk_16: Asterisk 16 is end of life and has been removed"; # Added 2023-04-19
+  asterisk_19 = throw "asterisk_19: Asterisk 19 is end of life and has been removed"; # Added 2023-04-19
+  atom = throw "'atom' has been removed because discontinued and deprecated. Consider using 'pulsar', a maintained fork"; # Added 2023-10-01
+  atom-beta = throw "'atom-beta' has been removed because discontinued and deprecated. Consider using 'pulsar', a maintained fork"; # Added 2023-10-01
+  atomEnv = throw "'atomEnv' has been removed because 'atom' is discontinued and deprecated. Consider using 'pulsar', a maintained fork"; # Added 2023-10-01
+  atomPackages = throw "'atomPackages' has been removed because 'atom' is discontinued and deprecated. Consider using 'pulsar', a maintained fork"; # Added 2023-10-01
+  avldrums-lv2 = x42-avldrums; # Added 2020-03-29
+  awesome-4-0 = awesome; # Added 2022-05-05
+
+  ### B ###
+
+  badtouch = authoscope; # Project was renamed, added 20210626
+  baget = throw "'baget' has been removed due to being unmaintained";
+  ballAndPaddle = throw "'ballAndPaddle' has been removed because it was broken and abandoned upstream"; # Added 2023-10-16
+  bashInteractive_5 = bashInteractive; # Added 2021-08-20
+  bash_5 = bash; # Added 2021-08-20
+  bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02
+  bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
+  binance = throw "binance has been removed, because it depends on a very outdated and insecure version of electron"; # Added 2023-11-09
+  bird2 = bird; # Added 2022-02-21
+  bitwig-studio1 = throw "bitwig-studio1 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03
+  bitwig-studio2 = throw "bitwig-studio2 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03
+  blender-with-packages = args:
+    lib.warn "blender-with-packages is deprecated in favor of blender.withPackages, e.g. `blender.withPackages(ps: [ ps.foobar ])`"
+    (blender.withPackages (_: args.packages)).overrideAttrs (lib.optionalAttrs (args ? name) { pname = "blender-" + args.name; }); # Added 2023-10-30
+  bluezFull = throw "'bluezFull' has been renamed to/replaced by 'bluez'"; # Converted to throw 2023-09-10
+  boost168 = throw "boost168 has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost169 = throw "boost169 has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost16x = throw "boost16x has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost170 = throw "boost170 has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost172 = throw "boost172 has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost173 = throw "boost173 has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost174 = throw "boost174 has been deprecated in favor of the latest version"; # Added 2023-06-08
+  boost17x = throw "boost17x has been deprecated in favor of the latest version"; # Added 2023-07-13
+  boost18x = throw "boost18x has been deprecated in favor of the latest version"; # Added 2023-07-13
+  bpftool = bpftools; # Added 2021-05-03
+  bpytop = throw "bpytop has been deprecated by btop"; # Added 2023-02-16
+  bro = throw "'bro' has been renamed to/replaced by 'zeek'"; # Converted to throw 2023-09-10
+  inherit (libsForQt5.mauiPackages) buho; # added 2022-05-17
+  bukut = throw "bukut has been removed since it has been archived by upstream"; # Added 2023-05-24
+  # Shorter names; keep the longer name for back-compat. Added 2023-04-11
+  buildFHSUserEnv = buildFHSEnv;
+  buildFHSUserEnvChroot = buildFHSEnvChroot;
+  buildFHSUserEnvBubblewrap = buildFHSEnvBubblewrap;
+
+  # bitwarden_rs renamed to vaultwarden with release 1.21.0 (2021-04-30)
+  bitwarden_rs = vaultwarden;
+  bitwarden_rs-mysql = vaultwarden-mysql;
+  bitwarden_rs-postgresql = vaultwarden-postgresql;
+  bitwarden_rs-sqlite = vaultwarden-sqlite;
+  bitwarden_rs-vault = vaultwarden-vault;
+
+
+
+  ### C ###
+
+  callPackage_i686 = pkgsi686Linux.callPackage;
+  cadence = throw "cadence has been removed from nixpkgs, as it was archived upstream"; # Added 2023-10-28
+  cask = emacs.pkgs.cask; # Added 2022-11-12
+  cargo-embed = throw "cargo-embed is now part of the probe-rs package"; # Added 2023-07-03
+  cargo-flash = throw "cargo-flash is now part of the probe-rs package"; # Added 2023-07-03
+  catfish = throw "'catfish' has been renamed to/replaced by 'xfce.catfish'"; # Converted to throw 2023-09-10
+  cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
+  ccloud-cli = throw "ccloud-cli has been removed, please use confluent-cli instead"; # Added 2023-06-09
+  certmgr-selfsigned = certmgr; # Added 2023-11-30
+  chefdk = throw "chefdk has been removed due to being deprecated upstream by Chef Workstation"; # Added 2023-03-22
+  chocolateDoom = chocolate-doom; # Added 2023-05-01
+  chrome-gnome-shell = gnome-browser-connector; # Added 2022-07-27
+  chromiumBeta = throw "'chromiumBeta' has been removed due to the lack of maintenance in nixpkgs. Consider using 'chromium' instead."; # Added 2023-10-18
+  chromiumDev = throw "'chromiumDev' has been removed due to the lack of maintenance in nixpkgs. Consider using 'chromium' instead."; # Added 2023-10-18
+  citra = citra-nightly; # added 2022-05-17
+  clang-ocl = throw "'clang-ocl' has been replaced with 'rocmPackages.clang-ocl'"; # Added 2023-10-08
+  inherit (libsForQt5.mauiPackages) clip; # added 2022-05-17
+  composable_kernel = throw "'composable_kernel' has been replaced with 'rocmPackages.composable_kernel'"; # Added 2023-10-08
+  cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15
+  crispyDoom = crispy-doom; # Added 2023-05-01
+  clash = throw "'clash' has been removed, upstream gone. Consider using 'clash-meta' instead."; # added 2023-11-10
+  clasp = clingo; # added 2022-12-22
+  claws-mail-gtk3 = claws-mail; # Added 2021-07-10
+  clucene_core_1 = throw "'clucene_core_1' has been renamed to/replaced by 'clucene_core'"; # Added 2023-12-09
+  cntk = throw "'cntk' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-10-09
+  code-server = throw "'code-server' has been removed from nixpkgs, as it was depending on EOL Node.js and is unmaintained."; # Added 2023-10-30
+  codimd = hedgedoc; # Added 2020-11-29
+  inherit (libsForQt5.mauiPackages) communicator; # added 2022-05-17
+  compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10
+  concurrencykit = libck; # Added 2021-03
+  connmanPackages = throw "'connmanPackages' was removed and their subpackages/attributes were promoted to top level."; # Added 2023-10-08
+  cups-kyodialog3 = cups-kyodialog; # Added 2022-11-12
+  cvs_fast_export = cvs-fast-export; # Added 2021-06-10
+
+  # these are for convenience, not for backward compat and shouldn't expire
+  clang6Stdenv = lowPrio llvmPackages_6.stdenv;
+  clang7Stdenv = throw "clang7Stdenv has been removed from nixpkgs"; # Added 2023-11-19
+  clang8Stdenv = lowPrio llvmPackages_8.stdenv;
+  clang9Stdenv = lowPrio llvmPackages_9.stdenv;
+  clang10Stdenv = lowPrio llvmPackages_10.stdenv;
+  clang11Stdenv = lowPrio llvmPackages_11.stdenv;
+  clang12Stdenv = lowPrio llvmPackages_12.stdenv;
+  clang13Stdenv = lowPrio llvmPackages_13.stdenv;
+  clang14Stdenv = lowPrio llvmPackages_14.stdenv;
+  clang15Stdenv = lowPrio llvmPackages_15.stdenv;
+  clang16Stdenv = lowPrio llvmPackages_16.stdenv;
+
+  clang-tools_7  = throw "clang-tools_7 has been removed from nixpkgs"; # Added 2023-11-19
+  clang_7  = throw "clang_7 has been removed from nixpkgs"; # Added 2023-11-19
+
+  ### D ###
+
+  dagger = throw "'dagger' has been removed from nixpkgs, as the trademark policy of the upstream project is incompatible"; # Added 2023-10-16
+  dart_stable = dart; # Added 2020-01-15
+  dat = nodePackages.dat;
+  deadpixi-sam = deadpixi-sam-unstable;
+
+  debugedit-unstable = debugedit; # Added 2021-11-22
+  deltachat-electron = deltachat-desktop; # added 2021-07-18
+
+  demjson = with python3Packages; toPythonApplication demjson; # Added 2022-01-18
+  devserver = throw "'devserver' has been removed in favor of 'miniserve' or other alternatives"; # Added 2023-01-13
+  dhcp = throw "dhcp (ISC DHCP) has been removed from nixpkgs, because it reached its end of life"; # Added 2023-04-04
+  dnnl = oneDNN; # Added 2020-04-22
+  dolphin-emu-beta = dolphin-emu; # Added 2023-02-11
+  dolphinEmu = dolphin-emu; # Added 2021-11-10
+  dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10
+  dot-http = throw "'dot-http' has been removed: abandoned by upstream. Use hurl instead."; # Added 2023-01-16
+  dotty = scala_3; # Added 2023-08-20
+  dotnet-netcore = dotnet-runtime; # Added 2021-10-07
+  drgeo = throw "'drgeo' has been removed as it is outdated and unmaintained"; # Added 2023-10-15
+  dtv-scan-tables_linuxtv = dtv-scan-tables;  # Added 2023-03-03
+  dtv-scan-tables_tvheadend = dtv-scan-tables;  # Added 2023-03-03
+  dylibbundler = macdylibbundler; # Added 2021-04-24
+
+  ### E ###
+
+  ec2_ami_tools = ec2-ami-tools; # Added 2021-10-08
+  ec2_api_tools = ec2-api-tools; # Added 2021-10-08
+  ec2-utils = amazon-ec2-utils; # Added 2022-02-01
+
+  elasticsearch7Plugins = elasticsearchPlugins;
+
+  # Electron
+  electron_9 = throw "electron_9 has been removed in favor of newer versions"; # added 2023-09-11
+
+  elementary-planner = throw "elementary-planner has been renamed to planify"; # Added 2023-06-24
+
+  elixir_ls = elixir-ls; # Added 2023-03-20
+
+  # Emacs
+  emacs28NativeComp = emacs28; # Added 2022-06-08
+  emacs28Packages = emacs28.pkgs; # Added 2021-10-04
+  emacs28WithPackages = emacs28.pkgs.withPackages; # Added 2021-10-04
+  emacsMacport = emacs-macport; # Added 2023-08-10
+  emacsNativeComp = emacs28NativeComp; # Added 2022-06-08
+  emacsPackagesNg = throw "'emacsPackagesNg' has been renamed to/replaced by 'emacs.pkgs'"; # Converted to throw 2023-09-10
+  emacsPackagesNgFor = throw "'emacsPackagesNgFor' has been renamed to/replaced by 'emacsPackagesFor'"; # Converted to throw 2023-09-10
+  emacsWithPackages = emacs.pkgs.withPackages; # Added 2020-12-18
+
+  empathy = throw "empathy was removed as it is unmaintained and no longer launches due to libsoup3 migration"; # Added 2023-01-20
+  enchant1 = throw "enchant1 has been removed from nixpkgs, as it was unmaintained"; # Added 2023-01-18
+  enyo-doom = enyo-launcher; # Added 2022-09-09
+  epoxy = libepoxy; # Added 2021-11-11
+  inherit (beam.interpreters) erlangR26 erlangR25 erlangR24; # added 2023-03-21
+  erlang_21 = throw "erlangR21 has been removed in favor of newer versions."; # added 2023-03-21
+  erlangR21 = erlang_21;
+  erlang_22 = throw "erlangR22 has been removed in favor of newer versions."; # added 2023-03-21
+  erlangR22 = erlang_22;
+  erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11
+  erlangR23 = erlang_23;
+  etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29
+  eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10
+  exa = throw "'exa' has been removed because it is unmaintained upstream. Consider using 'eza', a maintained fork"; # Added 2023-09-07
+  exhibitor = throw "'exhibitor' has been removed because it is unmaintained upstream"; # Added 2023-06-20
+
+  ### F ###
+
+  faustStk = faustPhysicalModeling; # Added 2023-05-16
+  fastnlo = fastnlo_toolkit; # Added 2021-04-24
+  inherit (luaPackages) fennel; # Added 2022-09-24
+  fetchFromGithub = throw "You meant fetchFromGitHub, with a capital H"; # preserve
+  findimagedupes = throw "findimagedupes has been removed because the perl bindings are no longer compatible"; # Added 2023-07-10
+  finger_bsd = bsd-finger;
+  fingerd_bsd = bsd-fingerd;
+  firefox-wayland = firefox; # Added 2022-11-15
+  firmwareLinuxNonfree = linux-firmware; # Added 2022-01-09
+  fishfight = jumpy; # Added 2022-08-03
+  fitnesstrax = throw "fitnesstrax was removed from nixpkgs because it disappeared upstream and no longer compiles"; # added 2023-07-04
+  flatbuffers_2_0 = flatbuffers; # Added 2022-05-12
+  flutter2 = throw "flutter2 has been removed because it isn't updated anymore, and no packages in nixpkgs use it. If you still need it, use flutter.mkFlutter to get a custom version"; # Added 2023-07-03
+  flutter37 = throw "flutter37 has been removed because it isn't updated anymore, and no packages in nixpkgs use it. If you still need it, use flutter.mkFlutter to get a custom version"; # Added 2023-07-03
+  foldingathome = fahclient; # Added 2020-09-03
+
+  foundationdb51 = throw "foundationdb51 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foundationdb52 = throw "foundationdb52 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foundationdb60 = throw "foundationdb60 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foundationdb61 = throw "foundationdb61 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foxitreader = throw "foxitreader has been removed because it had vulnerabilities and was unmaintained"; # added 2023-02-20
+  fractal-next = fractal; # added 2023-11-25
+  framework-system-tools = framework-tool; # added 2023-12-09
+  fuse2fs = if stdenv.isLinux then e2fsprogs.fuse2fs else null; # Added 2022-03-27 preserve, reason: convenience, arch has a package named fuse2fs too.
+  fx_cast_bridge = fx-cast-bridge; # added 2023-07-26
+
+  fcitx = throw "fcitx is deprecated, please use fcitx5 instead."; # Added 2023-03-13
+  fcitx-engines = throw "fcitx-engines is deprecated, please use fcitx5 instead."; # Added 2023-03-13
+  fcitx-configtool = throw "fcitx-configtool is deprecated, please use fcitx5 instead."; # Added 2023-03-13
+
+  ### G ###
+
+  g4py = python3Packages.geant4; # Added 2020-06-06
+  garage_0_7 = throw "garage 0.7.x has been removed as it is EOL. Please upgrade to 0.8 series."; # Added 2023-10-10
+  garage_0_7_3 = throw "garage 0.7.x has been removed as it is EOL. Please upgrade to 0.8 series."; # Added 2023-10-10
+  garmindev = throw "'garmindev' has been removed as the dependent software 'qlandkartegt' has been removed"; # Added 2023-04-17
+  geekbench4 = throw "'geekbench4' has been renamed to 'geekbench_4'"; # Added 2023-03-10
+  geekbench5 = throw "'geekbench5' has been renamed to 'geekbench_5'"; # Added 2023-03-10
+  ghostwriter = libsForQt5.kdeGear.ghostwriter; # Added 2023-03-18
+  go-dependency-manager = throw "'go-dependency-manager' is unmaintained and the go community now uses 'go.mod' mostly instead"; # Added 2023-10-04
+  gotktrix = throw "'gotktrix' has been removed, as it was broken and unmaintained"; # Added 2023-12-06
+  git-subset = throw "'git-subset' has been removed in favor of 'git-filter-repo'"; # Added 2023-01-13
+
+  gitAndTools = self // {
+    darcsToGit = darcs-to-git;
+    gitAnnex = git-annex;
+    gitBrunch = git-brunch;
+    gitFastExport = git-fast-export;
+    gitRemoteGcrypt = git-remote-gcrypt;
+    svn_all_fast_export = svn-all-fast-export;
+    topGit = top-git;
+  }; # Added 2021-01-14
+
+  gitter = throw "gitter has been removed since the client has been abandoned by upstream with the backend migration to Matrix"; # Added 2023-09-18
+  gmailieer = lieer; # Added 2020-04-19
+  gmic-qt-krita = throw "gmic-qt-krita was removed as it's no longer supported upstream."; # Converted to throw 2023-02-02
+  gnatboot11 = gnat-bootstrap11;
+  gnatboot12 = gnat-bootstrap12;
+  gnatboot = gnat-bootstrap;
+  gnome-firmware-updater = gnome-firmware; # added 2022-04-14
+  gnome-passwordsafe = gnome-secrets; # added 2022-01-30
+  gnome-mpv = throw "'gnome-mpv' has been renamed to/replaced by 'celluloid'"; # Converted to throw 2023-09-10
+  gnome_user_docs = throw "'gnome_user_docs' has been renamed to/replaced by 'gnome-user-docs'"; # Converted to throw 2023-09-10
+
+  gnuradio-with-packages = gnuradio3_7.override {
+    extraPackages = lib.attrVals [
+      "osmosdr" "ais" "gsm" "nacl" "rds" "limesdr"
+    ] gnuradio3_7Packages;
+  }; # Added 2020-10-16
+
+  gmock = gtest; # moved from top-level 2021-03-14
+
+  gnome3 = gnome; # Added 2021-05-07
+  gnuradio3_7 = throw "gnuradio3_7 has been removed because it required Python 2"; # Added 2022-01-16
+  gnuradio-ais = throw "'gnuradio-ais' has been renamed to/replaced by 'gnuradio3_7.pkgs.ais'"; # Converted to throw 2023-09-10
+  gnuradio-gsm = throw "'gnuradio-gsm' has been renamed to/replaced by 'gnuradio3_7.pkgs.gsm'"; # Converted to throw 2023-09-10
+  gnuradio-limesdr = throw "'gnuradio-limesdr' has been renamed to/replaced by 'gnuradio3_7.pkgs.limesdr'"; # Converted to throw 2023-09-10
+  gnuradio-nacl = throw "'gnuradio-nacl' has been renamed to/replaced by 'gnuradio3_7.pkgs.nacl'"; # Converted to throw 2023-09-10
+  gnuradio-osmosdr = throw "'gnuradio-osmosdr' has been renamed to/replaced by 'gnuradio3_7.pkgs.osmosdr'"; # Converted to throw 2023-09-10
+  gnuradio-rds = throw "'gnuradio-rds' has been renamed to/replaced by 'gnuradio3_7.pkgs.rds'"; # Converted to throw 2023-09-10
+  gobby5 = gobby; # Added 2021-02-01
+
+  #godot
+  godot = throw "godot has been renamed to godot3 to distinguish from version 4"; # Added 2023-07-16
+  godot-export-templates = throw "godot-export-templates has been renamed to godot3-export-templates to distinguish from version 4"; # Added 2023-07-16
+  godot-headless = throw "godot-headless has been renamed to godot3-headless to distinguish from version 4"; # Added 2023-07-16
+  godot-server = throw "godot-server has been renamed to godot3-server to distinguish from version 4"; # Added 2023-07-16
+
+  google-chrome-beta = throw "'google-chrome-beta' has been removed due to the lack of maintenance in nixpkgs. Consider using 'google-chrome' instead."; # Added 2023-10-18
+  google-chrome-dev = throw "'google-chrome-dev' has been removed due to the lack of maintenance in nixpkgs. Consider using 'google-chrome' instead."; # Added 2023-10-18
+  google-gflags = throw "'google-gflags' has been renamed to/replaced by 'gflags'"; # Converted to throw 2023-09-10
+  go-thumbnailer = thud; # Added 2023-09-21
+  gometer = throw "gometer has been removed from nixpkgs because goLance stopped offering Linux support"; # Added 2023-02-10
+
+  graalvm11-ce = throw "graalvm11-ce has been removed because upstream dropped support to different JDK versions for each GraalVM release. Please use graalvm-ce instead"; # Added 2023-09-26
+  graalvm17-ce = throw "graalvm17-ce has been removed because upstream dropped support to different JDK versions for each GraalVM release. Please use graalvm-ce instead"; # Added 2023-09-26
+  graalvm19-ce = throw "graalvm19-ce has been removed because upstream dropped support to different JDK versions for each GraalVM release. Please use graalvm-ce instead"; # Added 2023-09-26
+  grab-site = throw "grab-site has been removed because it's unmaintained and broken"; # Added 2023-11-12
+  gradle_4 = throw "gradle_4 has been removed because it's no longer being updated"; # Added 2023-01-17
+  gradle_5 = throw "gradle_5 has been removed because it's no longer being updated"; # Added 2023-01-17
+  gr-ais = throw "'gr-ais' has been renamed to/replaced by 'gnuradio3_7.pkgs.ais'"; # Converted to throw 2023-09-10
+  graylog = throw "graylog is now available in versions 3.3 up to 5.0. Please mind the upgrade path and choose the appropriate version. Direct upgrading from 3.3 to 4.3 or above is not supported"; # Added 2023-04-24
+  graylog-3_3 = throw "graylog 3.x is EOL. Please consider downgrading nixpkgs if you need an upgrade from 3.x to latest series."; # Added 2023-10-09
+  graylog-4_0 = throw "graylog 4.x is EOL. Please consider downgrading nixpkgs if you need an upgrade from 4.x to latest series."; # Added 2023-10-09
+  graylog-4_3 = throw "graylog 4.x is EOL. Please consider downgrading nixpkgs if you need an upgrade from 4.x to latest series."; # Added 2023-10-09
+  gr-gsm = throw "'gr-gsm' has been renamed to/replaced by 'gnuradio3_7.pkgs.gsm'"; # Converted to throw 2023-09-10
+  gringo = clingo; # added 2022-11-27
+  gr-limesdr = throw "'gr-limesdr' has been renamed to/replaced by 'gnuradio3_7.pkgs.limesdr'"; # Converted to throw 2023-09-10
+  gr-nacl = throw "'gr-nacl' has been renamed to/replaced by 'gnuradio3_7.pkgs.nacl'"; # Converted to throw 2023-09-10
+  gr-osmosdr = throw "'gr-osmosdr' has been renamed to/replaced by 'gnuradio3_7.pkgs.osmosdr'"; # Converted to throw 2023-09-10
+  gr-rds = throw "'gr-rds' has been renamed to/replaced by 'gnuradio3_7.pkgs.rds'"; # Converted to throw 2023-09-10
+  grub2_full = grub2; # Added 2022-11-18
+  grub = throw "grub1 was removed after not being maintained upstream for a decade. Please switch to another bootloader"; # Added 2023-04-11
+  guile-disarchive = disarchive; # Added 2023-10-27
+  guile-lint = throw "'guile-lint' has been removed, please use 'guild lint' instead"; # Added 2023-10-16
+
+  ### H ###
+
+  haxe_3_2 = throw "'haxe_3_2' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
+  haxe_3_4 = throw "'haxe_3_4' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
+  hepmc = throw "'hepmc' has been renamed to/replaced by 'hepmc2'"; # Converted to throw 2023-09-10
+  hip = throw "'hip' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
+  hipcc = throw "'hipcc' has been replaced with 'rocmPackages.hipcc'"; # Added 2023-10-08
+  hipchat = throw "'hipchat' has been discontinued since 2019; upstream recommends Slack."; # Added 2023-12-02
+  hipify = throw "'hipify' has been replaced with 'rocmPackages.hipify'"; # Added 2023-10-08
+  hipcub = throw "'hipcub' has been replaced with 'rocmPackages.hipcub'"; # Added 2023-10-08
+  hipsparse = throw "'hipsparse' has been replaced with 'rocmPackages.hipsparse'"; # Added 2023-10-08
+  hipfort = throw "'hipfort' has been replaced with 'rocmPackages.hipfort'"; # Added 2023-10-08
+  hipfft = throw "'hipfft' has been replaced with 'rocmPackages.hipfft'"; # Added 2023-10-08
+  hipsolver = throw "'hipsolver' has been replaced with 'rocmPackages.hipsolver'"; # Added 2023-10-08
+  hipblas = throw "'hipblas' has been replaced with 'rocmPackages.hipblas'"; # Added 2023-10-08
+  hip-amd = throw "'hip-amd' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
+  hip-common = throw "'hip-common' has been replaced with 'rocmPackages.hip-common'"; # Added 2023-10-08
+  hip-nvidia = throw "'hip-nvidia' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
+  ht-rust = xh; # Added 2021-02-13
+  hydra-unstable = hydra_unstable; # added 2022-05-10
+
+  ### I ###
+
+  i3-gaps = i3; # Added 2023-01-03
+  icedtea8_web = throw "'icedtea8_web' has been renamed to/replaced by 'adoptopenjdk-icedtea-web'"; # Converted to throw 2023-09-10
+  icedtea_web = throw "'icedtea_web' has been renamed to/replaced by 'adoptopenjdk-icedtea-web'"; # Converted to throw 2023-09-10
+  imag = throw "'imag' has been removed, upstream gone"; # Added 2023-01-13
+  imagemagick7Big = imagemagickBig; # Added 2021-02-22
+  imagemagick7 = imagemagick; # Added 2021-02-22
+  imagemagick7_light = imagemagick_light; # Added 2021-02-22
+  imlib = throw "imlib has been dropped due to the lack of maintenance from upstream since 2004"; # Added 2023-01-04
+  indigenous-desktop = throw "'indigenous-desktop' has been renamed to/replaced by 'indiepass-desktop'"; # Added 2023-11-08
+  instead-launcher = throw "instead-launcher has been removed, because it depended on qt4"; # Added 2023-07-26
+  insync-v3 = throw "insync-v3 has been merged into the insync package; use insync instead"; #Added 2023-05-13
+  index-fm = libsForQt5.mauiPackages.index; # added 2022-05-17
+  infiniband-diags = throw "'infiniband-diags' has been renamed to/replaced by 'rdma-core'"; # Converted to throw 2023-09-10
+  inotifyTools = inotify-tools;
+  inter-ui = inter; # Added 2021-03-27
+  iouyap = throw "'iouyap' is deprecated and archived by upstream, use 'ubridge' instead"; # Added 2023-09-21
+  ipfs = kubo; # Added 2022-09-27
+  ipfs-migrator-all-fs-repo-migrations = kubo-migrator-all-fs-repo-migrations; # Added 2022-09-27
+  ipfs-migrator-unwrapped = kubo-migrator-unwrapped; # Added 2022-09-27
+  ipfs-migrator = kubo-migrator; # Added 2022-09-27
+  iproute = iproute2; # moved from top-level 2021-03-14
+
+  ### J ###
+
+
+  jack2Full = jack2; # moved from top-level 2021-03-14
+  jami-client-qt = jami-client; # Added 2022-11-06
+  jami-client = jami; # Added 2023-02-10
+  jami-daemon = jami.daemon; # Added 2023-02-10
+  jfbpdf = throw "'jfbpdf' has been removed, because it depends on an outdated and insecure version of mupdf"; # Added 2023-06-27
+  jfbview = throw "'jfbview' has been removed, because it depends on an outdated and insecure version of mupdf"; # Added 2023-06-27
+  jira-cli = throw "jira-cli was removed because it is no longer maintained"; # Added 2023-02-28
+  join-desktop = throw "'join-desktop' has been removed because it is unmaintained upstream"; # Added 2023-10-04
+
+  # Julia
+
+
+  ### K ###
+
+  # k3d was a 3d editing software k-3d - "k3d has been removed because it was broken and has seen no release since 2016" Added 2022-01-04
+  # now kube3d/k3d will take it's place
+  kube3d = k3d; # Added 2022-0705
+  kafkacat = kcat; # Added 2021-10-07
+  kdeconnect = plasma5Packages.kdeconnect-kde; # Added 2020-10-28
+  keepassx = throw "KeePassX is no longer actively developed. Please consider KeePassXC as a maintained alternative."; # Added 2023-02-17
+  keepassx2 = throw "KeePassX is no longer actively developed. Please consider KeePassXC as a maintained alternative."; # Added 2023-02-17
+  kerberos = libkrb5; # moved from top-level 2021-03-14
+  kexectools = kexec-tools; # Added 2021-09-03
+  keysmith = libsForQt5.kdeGear.keysmith; # Added 2021-07-14
+  kfctl = throw "kfctl is broken and has been archived by upstream" ; # Added 2023-08-21
+  kgx = gnome-console; # Added 2022-02-19
+  kibana7 = throw "Kibana 7.x has been removed from nixpkgs as it depends on an end of life Node.js version and received no maintenance in time."; # Added 2023-30-10
+  kibana = kibana7;
+  kicad-with-packages3d = throw "'kicad-with-packages3d' has been renamed to/replaced by 'kicad'"; # Converted to throw 2023-09-10
+  kio-admin = libsForQt5.kdeGear.kio-admin; # Added 2023-03-18
+  kodiGBM = kodi-gbm;
+  kodiPlain = kodi;
+  kodiPlainWayland = kodi-wayland;
+  kodiPlugins = kodiPackages; # Added 2021-03-09;
+  kramdown-rfc2629 = rubyPackages.kramdown-rfc2629; # Added 2021-03-23
+  krb5Full = krb5;
+  krita-beta = krita; # moved from top-level 2021-12-23
+  kubei = kubeclarity; # Added 2023-05-20
+  kuma-prometheus-sd = throw "kuma-prometheus-sd has been deprecated upstream"; # Added 2023-07-02
+
+  ### L ###
+
+  larynx = piper-tts; # Added 2023-05-09
+  latinmodern-math = lmmath;
+  ldgallery = throw "'ldgallery' has been removed from nixpkgs. Use the Flake provided by ldgallery instead"; # Added 2023-07-26
+  lfs = dysk; # Added 2023-07-03
+  llvmPackages_rocm = throw "'llvmPackages_rocm' has been replaced with 'rocmPackages.llvm'"; # Added 2023-10-08
+  libayatana-indicator-gtk3 = libayatana-indicator; # Added 2022-10-18
+  libayatana-appindicator-gtk3 = libayatana-appindicator; # Added 2022-10-18
+  libbencodetools = bencodetools; # Added 2022-07-30
+  libbpf_1 = libbpf; # Added 2022-12-06
+  libcap_pam = throw "'libcap_pam' has been replaced with 'libcap'"; # Converted to throw 2023-09-10
+  libclc = llvmPackages_latest.libclc; # Added 2023-10-28
+  libgme = game-music-emu; # Added 2022-07-20
+  libgpgerror = libgpg-error; # Added 2021-09-04
+  libheimdal = heimdal; # Added 2022-11-18
+  libintlOrEmpty = throw "'libintlOrEmpty' has been replaced by gettext"; # Converted to throw 2023-09-10
+  libixp_hg = libixp;
+  libjpeg_drop = libjpeg_original; # Added 2020-06-05
+  liblastfm = libsForQt5.liblastfm; # Added 2020-06-14
+  libmongo-client = throw "'libmongo-client' has been removed, upstream gone"; # Added 2023-06-22
+  libpulseaudio-vanilla = libpulseaudio; # Added 2022-04-20
+  libraw_unstable = throw "'libraw_unstable' has been removed, please use libraw"; # Added 2023-01-30
+  librdf = lrdf; # Added 2020-03-22
+  libressl_3_5 = throw "'libressl_3_5' has reached end-of-life "; # Added 2023-05-07
+  librtlsdr = rtl-sdr; # Added 2023-02-18
+  librewolf-wayland = librewolf; # Added 2022-11-15
+  libseat = seatd; # Added 2021-06-24
+  libsigcxx12 = throw "'libsigcxx12' has been removed, please use newer versions"; # Added 2023-10-20
+  libsForQt515 = libsForQt5;  # Added 2022-11-24
+  libtensorflow-bin = libtensorflow; # Added 2022-09-25
+  libtorrentRasterbar = libtorrent-rasterbar; # Added 2020-12-20
+  libtorrentRasterbar-1_2_x = libtorrent-rasterbar-1_2_x; # Added 2020-12-20
+  libtorrentRasterbar-2_0_x = libtorrent-rasterbar-2_0_x; # Added 2020-12-20
+  libungif = giflib; # Added 2020-02-12
+  libusb = libusb1; # Added 2020-04-28
+  libwnck3 = libwnck;
+  libyamlcpp = yaml-cpp; # Added 2023-01-29
+  libyamlcpp_0_3 = yaml-cpp_0_3; # Added 2023-01-29
+  libxkbcommon_7 = throw "libxkbcommon_7 has been removed because it is impacted by security issues and not used in nixpkgs, move to 'libxkbcommon'"; # Added 2023-01-03
+  lightdm_gtk_greeter = lightdm-gtk-greeter; # Added 2022-08-01
+  lightstep-tracer-cpp = throw "lightstep-tracer-cpp is deprecated since 2022-08-29; the upstream recommends migration to opentelemetry projects.";
+  llama = walk; # Added 2023-01-23
+
+  # Linux kernels
+  linux-rt_5_10 = linuxKernel.kernels.linux_rt_5_10;
+  linux-rt_5_15 = linuxKernel.kernels.linux_rt_5_15;
+  linux-rt_5_4 = linuxKernel.kernels.linux_rt_5_4;
+  linux-rt_6_1 = linuxKernel.kernels.linux_rt_6_1;
+  linuxPackages_4_14 = linuxKernel.packages.linux_4_14;
+  linuxPackages_4_19 = linuxKernel.packages.linux_4_19;
+  linuxPackages_4_9 = linuxKernel.packages.linux_4_9;
+  linuxPackages_5_10 = linuxKernel.packages.linux_5_10;
+  linuxPackages_5_15 = linuxKernel.packages.linux_5_15;
+  linuxPackages_5_18 = linuxKernel.packages.linux_5_18;
+  linuxPackages_5_19 = linuxKernel.packages.linux_5_19;
+  linuxPackages_5_4 = linuxKernel.packages.linux_5_4;
+  linuxPackages_6_0 = linuxKernel.packages.linux_6_0;
+  linuxPackages_6_1 = linuxKernel.packages.linux_6_1;
+  linuxPackages_6_2 = linuxKernel.packages.linux_6_2;
+  linuxPackages_6_3 = linuxKernel.packages.linux_6_3;
+  linuxPackages_6_4 = linuxKernel.packages.linux_6_4;
+  linuxPackages_6_5 = linuxKernel.packages.linux_6_5;
+  linuxPackages_6_6 = linuxKernel.packages.linux_6_6;
+  linuxPackages_rpi0 = linuxKernel.packages.linux_rpi1;
+  linuxPackages_rpi02w = linuxKernel.packages.linux_rpi3;
+  linuxPackages_rpi1 = linuxKernel.packages.linux_rpi1;
+  linuxPackages_rpi2 = linuxKernel.packages.linux_rpi2;
+  linuxPackages_rpi3 = linuxKernel.packages.linux_rpi3;
+  linuxPackages_rpi4 = linuxKernel.packages.linux_rpi4;
+  linuxPackages_rt_5_10 = linuxKernel.packages.linux_rt_5_10;
+  linuxPackages_rt_5_15 = linuxKernel.packages.linux_rt_5_15;
+  linuxPackages_rt_5_4 = linuxKernel.packages.linux_rt_5_4;
+  linuxPackages_rt_6_1 = linuxKernel.packages.linux_rt_6_1;
+  linux_4_14 = linuxKernel.kernels.linux_4_14;
+  linux_4_19 = linuxKernel.kernels.linux_4_19;
+  linux_4_9 = linuxKernel.kernels.linux_4_9;
+  linux_5_10 = linuxKernel.kernels.linux_5_10;
+  linux_5_15 = linuxKernel.kernels.linux_5_15;
+  linux_5_18 = linuxKernel.kernels.linux_5_18;
+  linux_5_19 = linuxKernel.kernels.linux_5_19;
+  linux_5_4 = linuxKernel.kernels.linux_5_4;
+  linux_6_0 = linuxKernel.kernels.linux_6_0;
+  linux_6_1 = linuxKernel.kernels.linux_6_1;
+  linux_6_2 = linuxKernel.kernels.linux_6_2;
+  linux_6_3 = linuxKernel.kernels.linux_6_3;
+  linux_6_4 = linuxKernel.kernels.linux_6_4;
+  linux_6_5 = linuxKernel.kernels.linux_6_5;
+  linux_6_6 = linuxKernel.kernels.linux_6_6;
+  linux_rpi0 = linuxKernel.kernels.linux_rpi1;
+  linux_rpi02w = linuxKernel.kernels.linux_rpi3;
+  linux_rpi1 = linuxKernel.kernels.linux_rpi1;
+  linux_rpi2 = linuxKernel.kernels.linux_rpi2;
+  linux_rpi3 = linuxKernel.kernels.linux_rpi3;
+  linux_rpi4 = linuxKernel.kernels.linux_rpi4;
+
+  # Added 2021-04-04
+  linuxPackages_xen_dom0 = linuxPackages;
+  linuxPackages_latest_xen_dom0 = linuxPackages_latest;
+  linuxPackages_xen_dom0_hardened = linuxPackages_hardened;
+  linuxPackages_latest_xen_dom0_hardened = linuxPackages_latest_hardened;
+
+  # Added 2021-08-16
+  linuxPackages_latest_hardened = throw ''
+    The attribute `linuxPackages_hardened_latest' was dropped because the hardened patches
+    frequently lag behind the upstream kernel. In some cases this meant that this attribute
+    had to refer to an older kernel[1] because the latest hardened kernel was EOL and
+    the latest supported kernel didn't have patches.
+
+    If you want to use a hardened kernel, please check which kernel minors are supported
+    and use a versioned attribute, e.g. `linuxPackages_5_10_hardened'.
+
+    [1] for more context: https://github.com/NixOS/nixpkgs/pull/133587
+  '';
+  linux_latest_hardened = linuxPackages_latest_hardened;
+
+  lld_7 = throw "lld_7 has been removed from nixpkgs"; # Added 2023-11-19
+  lldb_7 = throw "lldb_7 has been removed from nixpkgs"; # Added 2023-11-19
+  llvmPackages_7 = throw "llvmPackages_7 has been removed from nixpkgs"; # Added 2023-11-19
+  llvm_7 = throw "llvm_7 has been removed from nixpkgs"; # Added 2023-11-19
+
+  lobster-two = google-fonts; # Added 2021-07-22
+  luxcorerender = throw "'luxcorerender' has been removed as it's unmaintained and broken in nixpkgs since a while ago"; # Added 2023-06-07
+  lzma = xz; # moved from top-level 2021-03-14
+
+  ### M ###
+
+  MACS2 = macs2; # Added 2023-06-12
+  mariadb_104 = throw "mariadb_104 has been removed from nixpkgs, please switch to another version like mariadb_106"; # Added 2023-09-11
+  mariadb_1010 = throw "mariadb_1010 has been removed from nixpkgs, please switch to another version like mariadb_1011"; # Added 2023-11-14
+  mariadb-client = hiPrio mariadb.client; #added 2019.07.28
+  markdown-pp = throw "markdown-pp was removed from nixpkgs, because the upstream archived it on 2021-09-02"; # Added 2023-07-22
+  markmind = throw "markmind has been removed from nixpkgs, because it depended on an old version of electron"; # Added 2023-09-12
+  matrique = spectral; # Added 2020-01-27
+  matrix-recorder = throw "matrix-recorder has been removed due to being unmaintained"; # Added 2023-05-21
+  maui-nota = libsForQt5.mauiPackages.nota; # added 2022-05-17
+  mcomix3 = mcomix; # Added 2022-06-05
+  meme = meme-image-generator; # Added 2021-04-21
+  mess = throw "'mess' has been renamed to/replaced by 'mame'"; # Converted to throw 2023-09-10
+  microsoft_gsl = microsoft-gsl; # Added 2023-05-26
+  migraphx = throw "'migraphx' has been replaced with 'rocmPackages.migraphx'"; # Added 2023-10-08
+  miopen = throw "'miopen' has been replaced with 'rocmPackages.miopen'"; # Added 2023-10-08
+  miopengemm = throw "'miopengemm' has been replaced with 'rocmPackages.miopengemm'"; # Added 2023-10-08
+  miopen-hip = throw "'miopen-hip' has been replaced with 'rocmPackages.miopen-hip'"; # Added 2023-10-08
+  miopen-opencl = throw "'miopen-opencl' has been replaced with 'rocmPackages.miopen-opencl'"; # Added 2023-10-08
+  mime-types = mailcap; # Added 2022-01-21
+  minetestclient_5 = minetestclient; # Added 2023-12-11
+  minetestserver_5 = minetestserver; # Added 2023-12-11
+  minizip2 = pkgs.minizip-ng; # Added 2022-12-28
+  mirage-im = throw "'mirage-im' has been removed, as it was broken and unmaintained"; # Added 2023-11-26
+  monero = monero-cli; # Added 2021-11-28
+  mongodb-4_0 = throw "mongodb-4_0 has been removed, it's end of life since April 2022"; # Added 2023-01-05
+  mongodb-4_2 = throw "mongodb-4_2 has been removed, it's end of life since April 2023"; # Added 2023-06-06
+  moonlander = throw "'moonlander' has been removed due to it being broken and unmaintained"; # Added 2023-11-26
+  moz-phab = mozphab; # Added 2022-08-09
+  mozart-binary = throw "'mozart-binary' has been renamed to/replaced by 'mozart2-binary'"; # Converted to throw 2023-09-10
+  mozart = throw "'mozart' has been renamed to/replaced by 'mozart2-binary'"; # Converted to throw 2023-09-10
+  mpc_cli = mpc-cli; # moved from top-level 2022-01-24
+  mpd_clientlib = libmpdclient; # Added 2021-02-11
+  mumble_git = throw "'mumble_git' has been renamed to/replaced by 'pkgs.mumble'"; # Converted to throw 2023-09-10
+  murmur_git = throw "'murmur_git' has been renamed to/replaced by 'pkgs.murmur'"; # Converted to throw 2023-09-10
+  mutt-with-sidebar = mutt; # Added 2022-09-17
+  mysql-client = hiPrio mariadb.client;
+  mysql = mariadb; # moved from top-level 2021-03-14
+
+  # floating point textures patents are expired,
+  # so package reduced to alias
+  mesa_drivers = mesa.drivers;
+
+  ### N ###
+
+  ncdu_2 = ncdu; # Added 2022-07-22
+
+  net_snmp = throw "'net_snmp' has been renamed to/replaced by 'net-snmp'"; # Converted to throw 2023-09-10
+  netbox_3_3 = throw "netbox 3.3 series has been removed as it was EOL"; # Added 2023-09-02
+  nagiosPluginsOfficial = monitoring-plugins;
+  neochat = libsForQt5.kdeGear.neochat; # added 2022-05-10
+  nitrokey-udev-rules = libnitrokey; # Added 2023-03-25
+  nix-direnv-flakes = nix-direnv;
+  nix-review = throw "'nix-review' has been renamed to/replaced by 'nixpkgs-review'"; # Converted to throw 2023-09-10
+  nix-template-rpm = throw "'nix-template-rpm' has been removed as it is broken and unmaintained" ; # Added 2023-11-20
+  nixFlakes = nixVersions.stable; # Added 2021-05-21
+  nixStable = nixVersions.stable; # Added 2022-01-24
+  nixUnstable = nixVersions.unstable; # Added 2022-01-26
+  nix_2_3 = nixVersions.nix_2_3;
+  nix_2_4 = nixVersions.nix_2_4;
+  nix_2_5 = nixVersions.nix_2_5;
+  nix_2_6 = nixVersions.nix_2_6;
+  nixops = throw "'nixops' has been removed. Please use 'nixops_unstable' for the time being."; # Added 2023-10-26
+  nixopsUnstable = nixops_unstable; # Added 2022-03-03
+  nixosTest = testers.nixosTest; # Added 2022-05-05
+  nmap-unfree = nmap; # Added 2021-04-06
+  nodejs_14 = throw "nodejs_14 has been removed as it is EOL."; # Added 2023-10-30
+  nodejs-slim_14 = throw "nodejs-slim_14 has been removed as it is EOL."; # Added 2023-10-30
+  nodejs-14_x = nodejs_14; # Added 2022-11-06
+  nodejs-slim-14_x = nodejs-slim_14; # Added 2022-11-06
+  nodejs_16 = throw "nodejs_16 has been removed as it is EOL."; # Added 2023-10-30
+  nodejs-16_x = nodejs_16; # Added 2022-11-06
+  nodejs-16_x-openssl_1_1 = throw "nodejs-16_x-openssl_1_1 has been removed."; # Added 2023-02-04
+  nodejs-slim_16 = throw "nodejs-slim_16 has been removed as it is EOL."; # Added 2022-11-06
+  nodejs-slim-16_x = nodejs-slim_16; # Added 2022-11-06
+  nodejs-18_x = nodejs_18; # Added 2022-11-06
+  nodejs-slim-18_x = nodejs-slim_18; # Added 2022-11-06
+  nomad_1_2 = throw "nomad_1_2 has been removed because it's outdated. Use a a newer version instead"; # Added 2023-09-02
+  nomad_1_3 = throw "nomad_1_3 has been removed because it's outdated. Use a a newer version instead"; # Added 2023-09-02
+  noto-fonts-cjk = noto-fonts-cjk-sans; # Added 2021-12-16
+  noto-fonts-emoji = noto-fonts-color-emoji; # Added 2023-09-09
+  noto-fonts-extra = noto-fonts; # Added 2023-04-08
+  nvidia-thrust = throw "nvidia-thrust has been removed because the project was deprecated; use cudaPackages.cuda_cccl";
+
+  ### O ###
+
+  o = orbiton; # Added 2023-04-09
+  oathToolkit = oath-toolkit; # Added 2022-04-04
+  oauth2_proxy = oauth2-proxy; # Added 2021-04-18
+  octant = throw "octant has been dropped due to being archived and vulnerable"; # Added 2023-09-29
+  octant-desktop = throw "octant-desktop has been dropped due to being archived and vulnerable"; # Added 2023-09-29
+  ogre1_9 = throw "ogre1_9 has been removed, use ogre instead"; # Added 2023-03-22
+  ogre1_10 = throw "ogre1_10 has been removed, use ogre instead"; # Added 2023-07-20
+  opa = throw "opa has been removed from nixpkgs as upstream has abandoned the project"; # Added 2023-03-21
+  opam_1_2 = throw "'opam_1_2' has been renamed to/replaced by 'opam'"; # Added 2023-03-08
+  openafs_1_8 = openafs; # Added 2022-08-22
+  openbangla-keyboard = throw "openbangla-keyboard has been replaced by ibus-engines.openbangla-keyboard and fcitx5-openbangla-keyboard"; # added 2023-10-10
+  opencascade = throw "'opencascade' has been removed as it is unmaintained; consider opencascade-occt instead'"; # Added 2023-09-18
+  openconnect_head = openconnect_unstable; # Added 2022-03-29
+  openconnect_gnutls = openconnect; # Added 2022-03-29
+  openconnect_unstable = throw "openconnect_unstable was removed from nixpkgs as it was not being updated"; # Added 2023-06-01
+  openelec-dvb-firmware = libreelec-dvb-firmware; # Added 2021-05-10
+  openimagedenoise_1_2_x = throw "'openimagedenoise_1_2_x' has been renamed to/replaced by 'openimagedenoise'"; # Added 2023-06-07
+  openimageio2 = openimageio; # Added 2023-01-05
+  openimageio_1 = throw "'openimageio_1' has been removed, please update to 'openimageio' 2"; # Added 2023-06-14
+  openisns = open-isns; # Added 2020-01-28
+  openjpeg_2 = openjpeg; # Added 2021-01-25
+  openmpt123 = libopenmpt; # Added 2021-09-05
+  openssl_3_0 = openssl_3; # Added 2022-06-27
+  openvpn_24 = throw "openvpn_24 has been removed, because it went EOL. 2.5.x or newer is still available"; # Added 2023-01-23
+  orchis = orchis-theme; # Added 2021-06-09
+  oroborus = throw "oroborus was removed, because it was abandoned years ago."; #Added 2023-09-10
+  osxfuse = macfuse-stubs; # Added 2021-03-20
+  oxen = throw "'oxen' has been removed, because it was broken, outdated and unmaintained"; # Added 2023-12-09
+
+  ### P ###
+
+  packet-cli = metal-cli; # Added 2021-10-25
+  palemoon = throw "palemoon has been dropped due to python2 being EOL and marked insecure. Use 'palemoon-bin' instead"; # Added 2023-05-18
+  paperless = paperless-ngx; # Added 2021-06-06
+  paperless-ng = paperless-ngx; # Added 2022-04-11
+  paper-note = throw "paper-note has been removed: abandoned by upstream"; # Added 2023-05-03
+  parity = openethereum; # Added 2020-08-01
+  pash = throw "'pash' has been removed: abandoned by upstream. Use 'powershell' instead"; # Added 2023-09-16
+  pdf2xml = throw "'pdf2xml' was removed: abandoned for years."; # Added 2023-10-22
+  peach = asouldocs; # Added 2022-08-28
+  pentablet-driver = xp-pen-g430-driver; # Added 2022-06-23
+  perldevel = throw "'perldevel' has been dropped due to lack of updates in nixpkgs and lack of consistent support for devel versions by 'perl-cross' releases, use 'perl' instead";
+  perldevelPackages = perldevel;
+  pgadmin = pgadmin4;
+  pharo-spur64 = pharo; # Added 2022-08-03
+  phodav_2_0 = throw "'phodav_2_0' has been renamed to/replaced by 'phodav'"; # Added 2023-02-21
+  photoflow = throw "photoflow was removed because it was broken and unmaintained by upstream"; # Added 2023-03-10
+
+  # Obsolete PHP version aliases
+  php80 = throw "php80 has been dropped due to the lack of maintenance from upstream for future releases"; # Added 2023-06-21
+  php80Packages = php80; # Added 2023-06-21
+  php80Extensions = php80; # Added 2023-06-21
+
+  pipewire-media-session = throw "pipewire-media-session is no longer maintained and has been removed. Please use Wireplumber instead.";
+  pkgconfig = throw "'pkgconfig' has been renamed to/replaced by 'pkg-config'"; # Converted to throw 2023-09-10
+  pleroma-otp = pleroma; # Added 2021-07-10
+  pltScheme = racket; # just to be sure
+  pmdk = throw "'pmdk' is discontinued, no further support or maintenance is planned by upstream"; # Added 2023-02-06
+  pomotroid = throw "pomotroid has been removed from nixpkgs, because it depended on an insecure version of electron"; # Added 2023-09-12
+  powerdns = pdns; # Added 2022-03-28
+
+  # postgresql plugins
+  cstore_fdw = postgresqlPackages.cstore_fdw;
+  pg_cron = postgresqlPackages.pg_cron;
+  pg_hll = postgresqlPackages.pg_hll;
+  pg_repack = postgresqlPackages.pg_repack;
+  pg_similarity = postgresqlPackages.pg_similarity;
+  pg_topn = postgresqlPackages.pg_topn;
+  pgjwt = postgresqlPackages.pgjwt;
+  pgroonga = postgresqlPackages.pgroonga;
+  pgtap = postgresqlPackages.pgtap;
+  plv8 = postgresqlPackages.plv8;
+  postgis = postgresqlPackages.postgis;
+  timescaledb = postgresqlPackages.timescaledb;
+  tsearch_extras = postgresqlPackages.tsearch_extras;
+
+  pinentry_curses = throw "'pinentry_curses' has been renamed to/replaced by 'pinentry-curses'"; # Converted to throw 2023-09-10
+  pinentry_emacs = throw "'pinentry_emacs' has been renamed to/replaced by 'pinentry-emacs'"; # Converted to throw 2023-09-10
+  pinentry_gnome = throw "'pinentry_gnome' has been renamed to/replaced by 'pinentry-gnome'"; # Converted to throw 2023-09-10
+  pinentry_gtk2 = throw "'pinentry_gtk2' has been renamed to/replaced by 'pinentry-gtk2'"; # Converted to throw 2023-09-10
+  pinentry_qt = throw "'pinentry_qt' has been renamed to/replaced by 'pinentry-qt'"; # Converted to throw 2023-09-10
+  pinentry_qt5 = pinentry-qt; # Added 2020-02-11
+  poetry2nix = throw "poetry2nix is now maintained out-of-tree. Please use https://github.com/nix-community/poetry2nix/"; # Added 2023-10-26
+  prayer = throw "prayer has been removed from nixpkgs"; # Added 2023-11-09
+  privacyidea = throw "privacyidea has been removed from nixpkgs"; # Added 2023-10-31
+  probe-rs-cli = throw "probe-rs-cli is now part of the probe-rs package"; # Added 2023-07-03
+  processing3 = throw "'processing3' has been renamed to/replaced by 'processing'"; # Converted to throw 2023-09-10
+  prometheus-dmarc-exporter = dmarc-metrics-exporter; # added 2022-05-31
+  prometheus-speedtest-exporter = throw "prometheus-speedtest-exporter was removed as unmaintained"; # Added 2023-07-31
+  protobuf3_17 = throw "protobuf3_17 does not receive updates anymore and has been removed"; # Added 2023-05-21
+  protobuf3_19 = throw "protobuf3_19 does not receive updates anymore and has been removed"; # Added 2023-10-01
+  protobuf3_24 = protobuf_24;
+  protobuf3_23 = protobuf_23;
+  protobuf3_21 = protobuf_21;
+  protonup = protonup-ng; # Added 2022-11-06
+  proxmark3-rrg = proxmark3; # Added 2023-07-25
+  proxmark3-unstable = throw "removed in favor of rfidresearchgroup fork"; # Added 2023-07-25
+  pyls-black = throw "pyls-black has been removed from nixpkgs. Use python-lsp-black instead."; # Added 2023-01-09
+  pyls-mypy = throw "pyls-mypy has been removed from nixpkgs. Use pylsp-mypy instead."; # Added 2023-01-09
+  pygmentex = throw "'pygmentex' has been renamed to/replaced by 'texlive.bin.pygmentex'"; # Converted to throw 2023-09-10
+  pyo3-pack = maturin;
+  pypi2nix = throw "pypi2nix has been removed due to being unmaintained";
+  pypolicyd-spf = spf-engine; # Added 2022-10-09
+  python = python2; # Added 2022-01-11
+  python-language-server = throw "python-language-server has been removed as it is no longer maintained. Use e.g. python-lsp-server instead"; # Added 2023-01-07
+  python-swiftclient = swiftclient; # Added 2021-09-09
+  pythonFull = python2Full; # Added 2022-01-11
+  pythonPackages = python.pkgs; # Added 2022-01-11
+
+  ### Q ###
+
+  qcsxcad = libsForQt5.qcsxcad; # Added 2020-11-05
+  qtcreator-qt6 = throw "'qtcreator-qt6' has been renamed to/replaced by 'qtcreator', since qt5 version has been removed"; # Added 2023-07-25
+  qflipper = qFlipper; # Added 2022-02-11
+  qlandkartegt = throw "'qlandkartegt' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-04-17
+  qscintilla = libsForQt5.qscintilla; # Added 2023-09-20
+  qscintilla-qt6 = qt6Packages.qscintilla; # Added 2023-09-20
+  qt515 = qt5;  # Added 2022-11-24
+  qt5ct = libsForQt5.qt5ct; # Added 2021-12-27
+  qt6ct = qt6Packages.qt6ct; # Added 2023-03-07
+  qtcurve = libsForQt5.qtcurve; # Added 2020-11-07
+  qtile-unwrapped = python3.pkgs.qtile; # Added 2023-05-12
+  quantum-espresso-mpi = quantum-espresso; # Added 2023-11-23
+  qutebrowser-qt6 = throw "'qutebrowser-qt6' has been replaced by 'qutebrowser', since the the qt5 version has been removed"; # Added 2023-08-19
+  quvi = throw "'quvi' has been removed, as it was broken and unmaintained"; # Added 2023-11-25
+
+  ### R ###
+
+  radare2-cutter = cutter; # Added 2021-03-30
+  rambox-pro = rambox; # Added 2022-12-12
+  rarian = throw "rarian has been removed as unused"; # Added 2023-07-05
+  rccl = throw "'rccl' has been replaced with 'rocmPackages.rccl'"; # Added 2023-10-08
+  rdc = throw "'rdc' has been replaced with 'rocmPackages.rdc'"; # Added 2023-10-08
+  redpanda = redpanda-client; # Added 2023-10-14
+  retroshare06 = retroshare;
+  rigsofrods = rigsofrods-bin; # Added 2023-03-22
+  ring-daemon = jami-daemon; # Added 2021-10-26
+  rockbox_utility = rockbox-utility; # Added 2022-03-17
+  rocalution = throw "'rocalution' has been replaced with 'rocmPackages.rocalution'"; # Added 2023-10-08
+  rocblas = throw "'rocblas' has been replaced with 'rocmPackages.rocblas'"; # Added 2023-10-08
+  rocfft = throw "'rocfft' has been replaced with 'rocmPackages.rocfft'"; # Added 2023-10-08
+  rocprim = throw "'rocprim' has been replaced with 'rocmPackages.rocprim'"; # Added 2023-10-08
+  rocrand = throw "'rocrand' has been replaced with 'rocmPackages.rocrand'"; # Added 2023-10-08
+  rocsparse = throw "'rocsparse' has been replaced with 'rocmPackages.rocsparse'"; # Added 2023-10-08
+  rocthrust = throw "'rocthrust' has been replaced with 'rocmPackages.rocthrust'"; # Added 2023-10-08
+  roctracer = throw "'roctracer' has been replaced with 'rocmPackages.roctracer'"; # Added 2023-10-08
+  rocwmma = throw "'rocwmma' has been replaced with 'rocmPackages.rocwmma'"; # Added 2023-10-08
+  rocclr = throw "'rocclr' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
+  rocdbgapi = throw "'rocdbgapi' has been replaced with 'rocmPackages.rocdbgapi'"; # Added 2023-10-08
+  rocgdb = throw "'rocgdb' has been replaced with 'rocmPackages.rocgdb'"; # Added 2023-10-08
+  rocprofiler = throw "'rocprofiler' has been replaced with 'rocmPackages.rocprofiler'"; # Added 2023-10-08
+  rocsolver = throw "'rocsolver' has been replaced with 'rocmPackages.rocsolver'"; # Added 2023-10-08
+  rocmClangStdenv = throw "'rocmClangStdenv' has been moved to 'rocmPackages' and is no longer public"; # Added 2023-10-08
+  rocmUpdateScript = throw "'rocmUpdateScript' has been moved to 'rocmPackages' and is no longer public"; # Added 2023-10-08
+  rocminfo = throw "'rocminfo' has been replaced with 'rocmPackages.rocminfo'"; # Added 2023-10-08
+  rocmlir = throw "'rocmlir' has been replaced with 'rocmPackages.rocmlir'"; # Added 2023-10-08
+  rocmlir-rock = throw "'rocmlir-rock' has been replaced with 'rocmPackages.rocmlir-rock'"; # Added 2023-10-08
+  rocm-cmake = throw "'rocm-cmake' has been replaced with 'rocmPackages.rocm-cmake'"; # Added 2023-10-08
+  rocm-comgr = throw "'rocm-comgr' has been replaced with 'rocmPackages.rocm-comgr'"; # Added 2023-10-08
+  rocm-core = throw "'rocm-core' has been replaced with 'rocmPackages.rocm-core'"; # Added 2023-10-08
+  rocm-device-libs = throw "'rccl' has been replaced with 'rocmPackages.rocm-device-libs'"; # Added 2023-10-08
+  rocm-opencl-icd = rocmPackages.clr.icd; # Added 2023-10-08 Convert to throw after 23.11 is released
+  rocm-opencl-runtime = rocmPackages.clr; # Added 2023-10-08 Convert to throw after 23.11 is released
+  rocm-runtime = throw "'rocm-runtime' has been replaced with 'rocmPackages.rocm-runtime'"; # Added 2023-10-08
+  rocm-smi = throw "'rocm-smi' has been replaced with 'rocmPackages.rocm-smi'"; # Added 2023-10-08
+  rocm-thunk = throw "'rocm-thunk' has been replaced with 'rocmPackages.rocm-thunk'"; # Added 2023-10-08
+  rocr-debug-agent = throw "'rocr-debug-agent' has been replaced with 'rocmPackages.rocr-debug-agent'"; # Added 2023-10-08
+  rome = throw "rome is no longer maintained, consider using biome instead"; # Added 2023-09-12
+  rpiboot-unstable = rpiboot; # Added 2021-07-30
+  rr-unstable = rr; # Added 2022-09-17
+  rtl8723bs-firmware = throw "rtl8723bs-firmware was added in mainline kernel version 4.12"; # Added 2023-07-03
+  rtsp-simple-server = throw "rtsp-simple-server is rebranded as mediamtx, including default config path update"; # Added 2023-04-11
+  runCommandNoCC = runCommand;
+  runCommandNoCCLocal = runCommandLocal;
+  rxvt_unicode = rxvt-unicode-unwrapped; # Added 2020-02-02
+  rxvt_unicode-with-plugins = rxvt-unicode; # Added 2020-02-02
+
+  # The alias for linuxPackages*.rtlwifi_new is defined in ./all-packages.nix,
+  # due to it being inside the linuxPackagesFor function.
+  rtlwifi_new-firmware = rtw88-firmware; # Added 2021-03-14
+  rtw89-firmware = throw "rtw89-firmware has been removed because linux-firmware now contains it."; # Added 2023-02-19
+
+  ### S ###
+
+  s2n = s2n-tls; # Added 2021-03-03
+  sane-backends-git = sane-backends; # Added 2021-02-19
+  scantailor = scantailor-advanced; # Added 2022-05-26
+  schildichat-web = throw ''
+    schildichat has been removed as it is severely lacking behind the Element upstream and does not receive regular security fixes.
+    Please participate in upstream discussion on getting out new releases:
+    https://github.com/SchildiChat/schildichat-desktop/issues/212
+    https://github.com/SchildiChat/schildichat-desktop/issues/215''; # Added 2023-12-05
+  schildichat-desktop = schildichat-web;
+  schildichat-desktop-wayland = schildichat-web;
+  sdlmame = throw "'sdlmame' has been renamed to/replaced by 'mame'"; # Converted to throw 2023-09-10
+  searx = throw "'searx' has been removed as it is unmaintained. Please switch to searxng"; # Added 2023-10-03
+  session-desktop-appimage = session-desktop;
+  setupcfg2nix = throw "'setupcfg2nix' has been removed. Please switch to buildPythonPackage"; # Added 2023-12-12
+  sequoia = sequoia-sq; # Added 2023-06-26
+  sexp = sexpp; # Added 2023-07-03
+  sget = throw "sget has been removed from nixpkgs, as it is not supported upstream anymore see https://github.com/sigstore/sget/issues/145"; # Added 2023-05-26
+  sgtpuzzles = throw "'sgtpuzzles' has been renamed to 'sgt-puzzles'"; # Added 2023-10-06
+  sgtpuzzles-mobile = throw "'sgtpuzzles-mobile' has been renamed to 'sgt-puzzles-mobile'"; # Added 2023-10-06
+  inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17
+  shhgit = throw "shhgit is broken and is no longer maintained. See https://github.com/eth0izzle/shhgit#-shhgit-is-no-longer-maintained-" ; # Added 2023-08-08
+  shipyard = jumppad; # Added 2023-06-06
+  signumone-ks = throw "signumone-ks has been removed from nixpkgs because the developers stopped offering the binaries"; # Added 2023-08-17
+  simplenote = throw "'simplenote' has been removed because it is no longer maintained and insecure"; # Added 2023-10-09
+  slack-dark = slack; # Added 2020-03-27
+  slmenu = throw "slmenu has been removed (upstream is gone)"; # Added 2023-04-06
+  slurm-llnl = slurm; # renamed July 2017
+  smesh = throw "'smesh' has been removed as it's unmaintained and depends on opencascade-oce, which is also unmaintained"; # Added 2023-09-18
+  soldat-unstable = opensoldat; # Added 2022-07-02
+  solr_8 = throw "'solr' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-03-16
+  solr = throw "'solr' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-03-16
+  soundOfSorting = sound-of-sorting; # Added 2023-07-07
+  spark2 = throw "'spark2' is no longer supported nixpkgs, please use 'spark'"; # Added 2023-05-08
+  spark_2_4 = throw "'spark_2_4' is no longer supported nixpkgs, please use 'spark'"; # Added 2023-05-08
+  spark_3_1 = throw "'spark_3_1' is no longer supported nixpkgs, please use 'spark'"; # Added 2023-05-08
+
+  # Added 2020-02-10
+  sourceHanSansPackages = {
+    japanese = source-han-sans;
+    korean = source-han-sans;
+    simplified-chinese = source-han-sans;
+    traditional-chinese = source-han-sans;
+  };
+  source-han-sans-japanese = source-han-sans;
+  source-han-sans-korean = source-han-sans;
+  source-han-sans-simplified-chinese = source-han-sans;
+  source-han-sans-traditional-chinese = source-han-sans;
+  sourceHanSerifPackages = {
+    japanese = source-han-serif;
+    korean = source-han-serif;
+    simplified-chinese = source-han-serif;
+    traditional-chinese = source-han-serif;
+  };
+  source-han-serif-japanese = source-han-serif;
+  source-han-serif-korean = source-han-serif;
+  source-han-serif-simplified-chinese = source-han-serif;
+  source-han-serif-traditional-chinese = source-han-serif;
+
+
+  spacegun = throw "'spacegun' has been removed as unmaintained"; # Added 2023-05-20
+  spectral = neochat; # Added 2020-12-27
+  speedtest-exporter = throw "'speedtest-exporter' has been removed as unmaintained"; # Added 2023-07-31
+  spice-gtk_libsoup2 = throw "'spice-gtk_libsoup2' has been renamed to/replaced by 'spice-gtk'"; # Added 2023-02-21
+  # spidermonkey is not ABI upwards-compatible, so only allow this for nix-shell
+  spidermonkey = spidermonkey_78; # Added 2020-10-09
+  spotify-unwrapped = spotify; # added 2022-11-06
+  spring-boot = spring-boot-cli; # added 2020-04-24
+  squid4 = throw "'squid4' has been renamed to/replaced by 'squid'"; # Converted to throw 2023-09-10
+  ssm-agent = amazon-ssm-agent; # Added 2023-10-17
+  starboard-octant-plugin = throw "starboard-octant-plugin has been dropped due to needing octant which is archived"; # Added 2023-09-29
+  steam-run-native = steam-run; # added 2022-02-21
+  sumneko-lua-language-server = lua-language-server; # Added 2023-02-07
+  swift-im = throw "swift-im has been removed as it is unmaintained and depends on deprecated Python 2 / Qt WebKit"; # Added 2023-01-06
+  swtpm-tpm2 = swtpm; # Added 2021-02-26
+  syncthing-cli = syncthing; # Added 2021-04-06
+
+  ### T ###
+
+  tangogps = foxtrotgps; # Added 2020-01-26
+  taplo-cli = taplo; # Added 2022-07-30
+  taplo-lsp = taplo; # Added 2022-07-30
+  taro = taproot-assets; # Added 2023-07-04
+  tdesktop = telegram-desktop; # Added 2023-04-07
+  telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
+  teleport_11 = throw "teleport 11 has been removed as it is EOL. Please upgrade to Teleport 12 or later"; # Added 2023-11-27
+  tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
+  testVersion = testers.testVersion; # Added 2022-04-20
+  tfplugindocs = terraform-plugin-docs; # Added 2023-11-01
+  invalidateFetcherByDrvHash = testers.invalidateFetcherByDrvHash; # Added 2022-05-05
+  timescale-prometheus = promscale; # Added 2020-09-29
+  tinygltf = throw "TinyglTF has been embedded in draco due to lack of other users and compatibility breaks."; # Added 2023-06-25
+  tixati = throw "'tixati' has been removed from nixpkgs as it is unfree and unmaintained"; # Added 2023-03-17
+  tkcvs = tkrev; # Added 2022-03-07
+  tokodon = plasma5Packages.tokodon;
+  tor-browser-bundle-bin = tor-browser; # Added 2023-09-23
+  transfig = fig2dev; # Added 2022-02-15
+  trustedGrub = throw "trustedGrub has been removed, because it is not maintained upstream anymore"; # Added 2023-05-10
+  trustedGrub-for-HP = throw "trustedGrub-for-HP has been removed, because it is not maintained upstream anymore"; # Added 2023-05-10
+  tvbrowser-bin = tvbrowser; # Added 2023-03-02
+  typst-fmt = typstfmt; # Added 2023-07-15
+
+  ### U ###
+
+  uade123 = uade; # Added 2022-07-30
+  uberwriter = apostrophe; # Added 2020-04-23
+  ubootBeagleboneBlack = ubootAmx335xEVM; # Added 2020-01-21
+  ue4 = throw "ue4 has been removed, because the package was broken for years"; # Added 2023-11-22
+  uhd3_5 = throw "uhd3_5 has been removed, because it was no longer needed"; # Added 2023-10-07
+  uhhyou.lv2 = throw "'uhhyou.lv2' has been removed, upstream gone"; # Added 2023-06-21
+  unicorn-emu = unicorn; # Added 2020-10-29
+  uniffi-bindgen = throw "uniffi-bindgen has been removed since upstream no longer provides a standalone package for the CLI";
+  unifi-poller = unpoller; # Added 2022-11-24
+  unifiStable = unifi6; # Added 2020-12-28
+  untrunc = untrunc-anthwlock; # Added 2021-02-01
+  urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # Added 2020-02-02
+  urxvt_bidi = rxvt-unicode-plugins.bidi; # Added 2020-02-02
+  urxvt_font_size = rxvt-unicode-plugins.font-size; # Added 2020-02-02
+  urxvt_perl = rxvt-unicode-plugins.perl; # Added 2020-02-02
+  urxvt_perls = rxvt-unicode-plugins.perls; # Added 2020-02-02
+  urxvt_tabbedex = rxvt-unicode-plugins.tabbedex; # Added 2020-02-02
+  urxvt_theme_switch = rxvt-unicode-plugins.theme-switch; # Added 2020-02-02
+  urxvt_vtwheel = rxvt-unicode-plugins.vtwheel; # Added 2020-02-02
+  usbguard-nox = throw "'usbguard-nox' has been renamed to/replaced by 'usbguard'"; # Converted to throw 2023-09-10
+  utahfs = throw "utahfs has been removed, as it is broken and lack of maintenance from upstream"; # Added 2023-09-29
+  util-linuxCurses = util-linux; # Added 2022-04-12
+  utillinux = util-linux; # Added 2020-11-24
+
+  ### V ###
+
+  v4l_utils = throw "'v4l_utils' has been renamed to/replaced by 'v4l-utils'"; # Converted to throw 2023-09-10
+  vamp = { vampSDK = vamp-plugin-sdk; }; # Added 2020-03-26
+  vaapiIntel = intel-vaapi-driver; # Added 2023-05-31
+  vaultwarden-vault = vaultwarden.webvault; # Added 2022-12-13
+  vdirsyncerStable  = vdirsyncer; # Added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
+  ventoy-bin = ventoy; # Added 2023-04-12
+  ventoy-bin-full = ventoy-full; # Added 2023-04-12
+  ViennaRNA = viennarna; # Added 2023-08-23
+  vimHugeX = vim-full; # Added 2022-12-04
+  vim_configurable = vim-full; # Added 2022-12-04
+  virtmanager = throw "'virtmanager' has been renamed to/replaced by 'virt-manager'"; # Converted to throw 2023-09-10
+  virtmanager-qt = throw "'virtmanager-qt' has been renamed to/replaced by 'virt-manager-qt'"; # Converted to throw 2023-09-10
+  vivaldi-widevine = throw "'vivaldi-widevine' has been renamed to/replaced by 'widevine-cdm'"; # Added 2023-02-25
+  vkBasalt = vkbasalt; # Added 2022-11-22
+  vte_290 = throw "'vte_290' has been renamed to/replaced by 'vte'"; # Added 2023-01-05
+  varnish72 = throw "varnish 7.2 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09
+  varnish73 = throw "varnish 7.3 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09
+  varnish72Packages = throw "varnish 7.2 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09
+  varnish73Packages = throw "varnish 7.3 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09
+  inherit (libsForQt5.mauiPackages) vvave; # added 2022-05-17
+  volatility = throw "'volatility' has been removed, as it was broken and unmaintained"; # Added 2023-12-10
+
+  ### W ###
+  waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21
+  wayfireApplications-unwrapped = throw ''
+    'wayfireApplications-unwrapped.wayfire' has been renamed to/replaced by 'wayfire'
+    'wayfireApplications-unwrapped.wayfirePlugins' has been renamed to/replaced by 'wayfirePlugins'
+    'wayfireApplications-unwrapped.wcm' has been renamed to/replaced by 'wayfirePlugins.wcm'
+    'wayfireApplications-unwrapped.wlroots' has been removed
+  ''; # Add 2023-07-29
+  wcm = throw "'wcm' has been renamed to/replaced by 'wayfirePlugins.wcm'"; # Add 2023-07-29
+  webkitgtk_5_0 = throw "'webkitgtk_5_0' has been superseded by 'webkitgtk_6_0'"; # Added 2023-02-25
+  wineWayland = wine-wayland;
+  win-qemu = throw "'win-qemu' has been replaced by 'virtio-win'"; # Added 2023-08-16
+  win-virtio = virtio-win; # Added 2023-10-17
+  win-signed-gplpv-drivers = throw "win-signed-gplpv-drivers has been removed from nixpkgs, as it's unmaintained: https://help.univention.com/t/installing-signed-gplpv-drivers/21828"; # Added 2023-08-17
+  wlroots_0_14 = throw "'wlroots_0_14' has been removed in favor of newer versions"; # Added 2023-07-29
+  wordpress6_1 = throw "'wordpress6_1' has been removed in favor of the latest version"; # Added 2023-10-10
+  wordpress6_2 = throw "'wordpress6_2' has been removed in favor of the latest version"; # Added 2023-10-10
+  wormhole-rs = magic-wormhole-rs; # Added 2022-05-30. preserve, reason: Arch package name, main binary name
+  wmii_hg = wmii;
+  wxGTK30 = throw "wxGTK30 has been removed from nixpkgs as it has reached end of life"; # Added 2023-03-22
+  wxGTK30-gtk2 = wxGTK30; # Added 2022-12-03
+  wxGTK30-gtk3 = wxGTK30; # Added 2022-12-03
+  wxmac = wxGTK30; # Added 2023-03-22
+
+  ### X ###
+
+  xbmc-retroarch-advanced-launchers = kodi-retroarch-advanced-launchers; # Added 2021-11-19
+  xdg_utils = xdg-utils; # Added 2021-02-01
+  xineLib = xine-lib; # Added 2021-04-27
+  xineUI = xine-ui; # Added 2021-04-27
+  xtrt = throw "xtrt has been removed due to being abandoned"; # Added 2023-05-25
+  xulrunner = firefox-unwrapped; # Added 2023-11-03
+  xvfb_run = xvfb-run; # Added 2021-05-07
+
+  ### Y ###
+
+  yacc = bison; # moved from top-level 2021-03-14
+  yafaray-core = libyafaray; # Added 2022-09-23
+  yarn2nix-moretea-openssl_1_1 = throw "'yarn2nix-moretea-openssl_1_1' has been removed."; # Added 2023-02-04
+  yuzu-ea = yuzu-early-access; # Added 2022-08-18
+  yuzu = yuzu-mainline; # Added 2021-01-25
+
+  ### Z ###
+
+  zinc = zincsearch; # Added 2023-05-28
+  zkg = throw "'zkg' has been replaced by 'zeek'";
+  zq = zed.overrideAttrs (old: { meta = old.meta // { mainProgram = "zq"; }; }); # Added 2023-02-06
+
+  ### UNSORTED ###
+
+  zeroc_ice = throw "'zeroc_ice' has been renamed to/replaced by 'zeroc-ice'"; # Converted to throw 2023-09-10
+
+  dina-font-pcf = dina-font; # Added 2020-02-09
+  dnscrypt-proxy2 = dnscrypt-proxy; # Added 2023-02-02
+  gnatsd = throw "'gnatsd' has been renamed to/replaced by 'nats-server'"; # Converted to throw 2023-09-10
+
+  posix_man_pages = man-pages-posix; # Added 2021-04-15
+  ttyrec = ovh-ttyrec; # Added 2021-01-02
+  zplugin = zinit; # Added 2021-01-30
+  zyn-fusion = zynaddsubfx; # Added 2022-08-05
+
+  inherit (stdenv.hostPlatform) system; # Added 2021-10-22
+  inherit (stdenv) buildPlatform hostPlatform targetPlatform; # Added 2023-01-09
+
+  # LLVM packages for (integration) testing that should not be used inside Nixpkgs:
+  llvmPackages_latest = llvmPackages_16;
+  llvmPackages_git = recurseIntoAttrs (callPackage ../development/compilers/llvm/git {
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_git.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_git.libraries or llvmPackages_git.libraries;
+    targetLlvm = targetPackages.llvmPackages_git.llvm or llvmPackages_git.llvm;
+  });
+
+  /* If these are in the scope of all-packages.nix, they cause collisions
+  between mixed versions of qt. See:
+  https://github.com/NixOS/nixpkgs/pull/101369 */
+
+  inherit (plasma5Packages)
+    akonadi akregator arianna ark bluedevil bomber bovo breeze-grub breeze-gtk
+    breeze-icons breeze-plymouth breeze-qt5 colord-kde discover dolphin dragon elisa falkon
+    ffmpegthumbs filelight granatier gwenview k3b kactivitymanagerd kaddressbook
+    kalzium kapman kapptemplate kate katomic kblackbox kblocks kbounce
+    kcachegrind kcalc kcharselect kcolorchooser kde-cli-tools kde-gtk-config
+    kdenlive kdeplasma-addons kdevelop-pg-qt kdevelop-unwrapped kdev-php
+    kdev-python kdevelop kdf kdialog kdiamond keditbookmarks kfind
+    kgamma5 kget kgpg khelpcenter kig kigo killbots kinfocenter kitinerary
+    kleopatra klettres klines kmag kmail kmenuedit kmines kmix kmplot
+    knavalbattle knetwalk knights kollision kolourpaint kompare konsole kontact
+    konversation korganizer kpkpass krdc kreversi krfb kscreen kscreenlocker
+    kshisen ksquares ksshaskpass ksystemlog kteatime ktimer ktorrent ktouch
+    kturtle kwallet-pam kwalletmanager kwave kwayland-integration kwin kwrited
+    marble merkuro milou minuet okular oxygen oxygen-icons5 picmi
+    plasma-browser-integration plasma-desktop plasma-integration plasma-nano
+    plasma-nm plasma-pa plasma-mobile plasma-systemmonitor plasma-thunderbolt
+    plasma-vault plasma-workspace plasma-workspace-wallpapers polkit-kde-agent
+    powerdevil qqc2-breeze-style sddm-kcm skanlite skanpage spectacle
+    systemsettings xdg-desktop-portal-kde yakuake zanshin
+  ;
+
+  kalendar = merkuro;  # Renamed in 23.08
+  kfloppy = throw "kfloppy has been removed upstream in KDE Gear 23.08";
+
+  inherit (plasma5Packages.thirdParty)
+    krohnkite
+    krunner-ssh
+    krunner-symbols
+    kwin-dynamic-workspaces
+    kwin-tiling
+    plasma-applet-caffeine-plus
+    plasma-applet-virtual-desktop-bar
+  ;
+
+  inherit (libsForQt5)
+    sddm
+  ;
+
+  inherit (pidginPackages)
+    pidgin-indicator
+    pidgin-latex
+    pidgin-msn-pecan
+    pidgin-mra
+    pidgin-skypeweb
+    pidgin-carbons
+    pidgin-xmpp-receipts
+    pidgin-otr
+    pidgin-osd
+    pidgin-sipe
+    pidgin-window-merge
+    purple-discord
+    purple-googlechat
+    purple-hangouts
+    purple-lurch
+    purple-matrix
+    purple-mm-sms
+    purple-plugin-pack
+    purple-signald
+    purple-slack
+    purple-vk-plugin
+    purple-xmpp-http-upload
+    tdlib-purple
+    pidgin-opensteamworks
+    purple-facebook
+  ;
+
+})
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
new file mode 100644
index 000000000000..0b8906ce8a9d
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -0,0 +1,42131 @@
+/* The top-level package collection of nixpkgs.
+ * It is sorted by categories corresponding to the folder names in the /pkgs
+ * folder. Inside the categories packages are roughly sorted by alphabet, but
+ * strict sorting has been long lost due to merges. Please use the full-text
+ * search of your editor. ;)
+ * Hint: ### starts category names.
+ */
+{ lib, noSysDirs, config, overlays }:
+res: pkgs: super:
+
+with pkgs;
+
+{
+  # A module system style type tag
+  #
+  # Allows the nixpkgs fixpoint, usually known as `pkgs` to be distinguished
+  # nominally.
+  #
+  #     pkgs._type == "pkgs"
+  #     pkgs.pkgsStatic._type == "pkgs"
+  #
+  # Design note:
+  # While earlier stages of nixpkgs fixpoint construction are supertypes of this
+  # stage, they're generally not usable in places where a `pkgs` is expected.
+  # (earlier stages being the various `super` variables that precede
+  # all-packages.nix)
+  _type = "pkgs";
+
+  # A stdenv capable of building 32-bit binaries.
+  # On x86_64-linux, it uses GCC compiled with multilib support; on i686-linux,
+  # it's just the plain stdenv.
+  stdenv_32bit = lowPrio (if stdenv.hostPlatform.is32bit then stdenv else multiStdenv);
+
+  stdenvNoCC = stdenv.override (
+    { cc = null; hasCC = false; }
+
+    // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && (stdenv.hostPlatform != stdenv.buildPlatform)) {
+      # TODO: This is a hack to use stdenvNoCC to produce a CF when cross
+      # compiling. It's not very sound. The cross stdenv has:
+      #   extraBuildInputs = [ targetPackages.darwin.apple_sdks.frameworks.CoreFoundation ]
+      # and uses stdenvNoCC. In order to make this not infinitely recursive, we
+      # need to exclude this extraBuildInput.
+      extraBuildInputs = [];
+    }
+  );
+
+  mkStdenvNoLibs = stdenv: let
+    bintools = stdenv.cc.bintools.override {
+      libc = null;
+      noLibc = true;
+    };
+  in stdenv.override {
+    cc = stdenv.cc.override {
+      libc = null;
+      noLibc = true;
+      extraPackages = [];
+      inherit bintools;
+    };
+    allowedRequisites =
+      lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null);
+  };
+
+  stdenvNoLibs =
+    if stdenv.hostPlatform != stdenv.buildPlatform && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.useLLVM or false)
+    then
+      # We cannot touch binutils or cc themselves, because that will cause
+      # infinite recursion. So instead, we just choose a libc based on the
+      # current platform. That means we won't respect whatever compiler was
+      # passed in with the stdenv stage argument.
+      #
+      # TODO It would be much better to pass the `stdenvNoCC` and *unwrapped*
+      # cc, bintools, compiler-rt equivalent, etc. and create all final stdenvs
+      # as part of the stage. Then we would never be tempted to override a later
+      # thing to to create an earlier thing (leading to infinite recursion) and
+      # we also would still respect the stage arguments choices for these
+      # things.
+      overrideCC stdenv buildPackages.llvmPackages.clangNoCompilerRt
+    else mkStdenvNoLibs stdenv;
+
+  gccStdenvNoLibs = mkStdenvNoLibs gccStdenv;
+  clangStdenvNoLibs = mkStdenvNoLibs clangStdenv;
+
+  # For convenience, allow callers to get the path to Nixpkgs.
+  path = ../..;
+
+  ### Helper functions.
+  inherit lib config overlays;
+
+  # do not import 'appendToName' to get consistent package-names with the same
+  # set of package-parameters: https://github.com/NixOS/nixpkgs/issues/68519
+  inherit (lib) lowPrio hiPrio makeOverridable;
+
+  inherit (lib) recurseIntoAttrs;
+
+  # This is intended to be the reverse of recurseIntoAttrs, as it is
+  # defined now it exists mainly for documentation purposes, but you
+  # can also override this with recurseIntoAttrs to recurseInto all
+  # the Attrs which is useful for testing massive changes. Ideally,
+  # every package subset not marked with recurseIntoAttrs should be
+  # marked with this.
+  inherit (lib) dontRecurseIntoAttrs;
+
+  stringsWithDeps = lib.stringsWithDeps;
+
+  ### Evaluating the entire Nixpkgs naively will fail, make failure fast
+  AAAAAASomeThingsFailToEvaluate = throw ''
+    Please be informed that this pseudo-package is not the only part
+    of Nixpkgs that fails to evaluate. You should not evaluate
+    entire Nixpkgs without some special measures to handle failing
+    packages, like using pkgs/top-level/release-attrpaths.nix.
+  '';
+
+  tests = callPackages ../test { };
+
+  defaultPkgConfigPackages =
+    # We don't want nix-env -q to enter this, because all of these are aliases.
+    dontRecurseIntoAttrs (
+      import ./pkg-config/defaultPkgConfigPackages.nix pkgs
+    ) // { __attrsFailEvaluation = true; };
+
+  ### Nixpkgs maintainer tools
+
+  nix-generate-from-cpan = callPackage ../../maintainers/scripts/nix-generate-from-cpan.nix { };
+
+  nixpkgs-lint = callPackage ../../maintainers/scripts/nixpkgs-lint.nix { };
+
+  common-updater-scripts = callPackage ../common-updater/scripts.nix { };
+
+  vimPluginsUpdater = callPackage ../applications/editors/vim/plugins/updater.nix {
+    inherit (python3Packages) buildPythonApplication ;
+  };
+
+  genericUpdater = callPackage ../common-updater/generic-updater.nix { };
+
+  _experimental-update-script-combinators = callPackage ../common-updater/combinators.nix { };
+
+  directoryListingUpdater = callPackage ../common-updater/directory-listing-updater.nix { };
+
+  gitUpdater = callPackage ../common-updater/git-updater.nix { };
+
+  httpTwoLevelsUpdater = callPackage ../common-updater/http-two-levels-updater.nix { };
+
+  unstableGitUpdater = callPackage ../common-updater/unstable-updater.nix { };
+
+  nix-update-script = callPackage ../common-updater/nix-update.nix { };
+
+  ### Push NixOS tests inside the fixed point
+
+  # See also allTestsForSystem in nixos/release.nix
+  nixosTests = import ../../nixos/tests/all-tests.nix {
+    inherit pkgs;
+    system = stdenv.hostPlatform.system;
+    callTest = config: config.test;
+  } // {
+    # for typechecking of the scripts and evaluation of
+    # the nodes, without running VMs.
+    allDrivers = import ../../nixos/tests/all-tests.nix {
+      inherit pkgs;
+      system = stdenv.hostPlatform.system;
+      callTest = config: config.test.driver;
+    };
+    __attrsFailEvaluation = true;
+  };
+
+  ### BUILD SUPPORT
+
+  auditBlasHook = makeSetupHook
+    { name = "auto-blas-hook"; propagatedBuildInputs = [ blas lapack ]; }
+    ../build-support/setup-hooks/audit-blas.sh;
+
+  autoreconfHook = callPackage (
+    { makeSetupHook, autoconf, automake, gettext, libtool }:
+    makeSetupHook {
+      name = "autoreconf-hook";
+      propagatedBuildInputs = [ autoconf automake gettext libtool ];
+    } ../build-support/setup-hooks/autoreconf.sh
+  ) { };
+
+  autoreconfHook264 = autoreconfHook.override {
+    autoconf = autoconf264;
+    automake = automake111x;
+  };
+
+  autoreconfHook269 = autoreconfHook.override {
+    autoconf = autoconf269;
+  };
+
+  autorestic = callPackage ../tools/backup/autorestic { };
+
+  autoPatchelfHook = makeSetupHook {
+    name = "auto-patchelf-hook";
+    propagatedBuildInputs = [ bintools ];
+    substitutions = {
+      pythonInterpreter = "${python3.withPackages (ps: [ ps.pyelftools ])}/bin/python";
+      autoPatchelfScript = ../build-support/setup-hooks/auto-patchelf.py;
+    };
+    meta.platforms = lib.platforms.linux;
+  } ../build-support/setup-hooks/auto-patchelf.sh;
+
+  tomato-c = callPackage ../applications/misc/tomato-c { };
+
+  appflowy = callPackage ../applications/office/appflowy { };
+
+  appimageTools = callPackage ../build-support/appimage { };
+
+  appindicator-sharp = callPackage ../development/libraries/appindicator-sharp { };
+
+  bindle = callPackage ../servers/bindle {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  canonicalize-jar = callPackage ../build-support/java/canonicalize-jar.nix { };
+  canonicalize-jars-hook = makeSetupHook {
+    name = "canonicalize-jars-hook";
+    substitutions = { canonicalize_jar = canonicalize-jar; };
+  } ../build-support/setup-hooks/canonicalize-jars.sh;
+
+  ensureNewerSourcesHook = { year }: makeSetupHook {
+    name = "ensure-newer-sources-hook";
+  } (writeScript "ensure-newer-sources-hook.sh" ''
+      postUnpackHooks+=(_ensureNewerSources)
+      _ensureNewerSources() {
+        '${findutils}/bin/find' "$sourceRoot" \
+          '!' -newermt '${year}-01-01' -exec touch -h -d '${year}-01-02' '{}' '+'
+      }
+    '');
+
+  chkservice = callPackage ../tools/admin/chkservice { };
+
+  # addDriverRunpath is the preferred package name, as this enables
+  # many more scenarios than just opengl now.
+  addDriverRunpath = callPackage ../build-support/add-driver-runpath { };
+
+  # addOpenGLRunpath should be added to aliases.nix after the 24.05 branch-off.
+  # Post 24.11 branch-off, this should throw an error in aliases.nix.
+  addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
+
+  quickemu = callPackage ../development/quickemu { };
+
+  quickgui = callPackage ../applications/virtualization/quickgui { };
+
+  adcli = callPackage ../os-specific/linux/adcli { };
+
+  alda = callPackage ../development/interpreters/alda { };
+
+  align = callPackage ../tools/text/align { };
+
+  alire = callPackage ../development/tools/build-managers/alire { };
+
+  althttpd = callPackage ../servers/althttpd { };
+
+  amqpcat = callPackage ../development/tools/amqpcat { };
+
+  anders = callPackage ../applications/science/logic/anders { };
+
+  ankisyncd = callPackage ../servers/ankisyncd { };
+
+  ariang = callPackage ../servers/ariang { };
+
+  mov-cli = callPackage ../applications/video/mov-cli { };
+
+  ani-cli = callPackage ../applications/video/ani-cli { };
+
+  dra-cla = callPackage ../applications/video/dra-cla { };
+
+  anime-downloader = callPackage ../applications/video/anime-downloader { };
+
+  aocd = with python3Packages; toPythonApplication aocd;
+
+  aesfix = callPackage ../tools/security/aesfix { };
+
+  aeskeyfind = callPackage ../tools/security/aeskeyfind { };
+
+  alterx = callPackage ../tools/security/alterx { };
+
+  altserver-linux = callPackage ../tools/misc/altserver-linux { };
+
+  asciicam = callPackage ../applications/video/asciicam { };
+
+  asitop = pkgs.python3Packages.callPackage ../os-specific/darwin/asitop { };
+
+  asn = callPackage ../applications/networking/asn { };
+
+  asnmap = callPackage ../tools/security/asnmap { };
+
+  astrolog = callPackage ../applications/science/astronomy/astrolog { };
+
+  astronomer = callPackage ../tools/misc/astronomer { };
+
+  atkinson-hyperlegible = callPackage ../data/fonts/atkinson-hyperlegible { };
+
+  _0x =  callPackage ../tools/misc/0x { };
+
+  atuin = callPackage ../tools/misc/atuin {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security SystemConfiguration;
+  };
+
+  automatic-timezoned = callPackage ../tools/system/automatic-timezoned { };
+
+  cve = with python3Packages; toPythonApplication cvelib;
+
+  db-rest = callPackage ../servers/db-rest { };
+
+  fiche = callPackage ../servers/fiche { };
+
+  fishnet = callPackage ../servers/fishnet { };
+
+  fission = callPackage ../development/tools/fission { };
+
+  apko = callPackage ../development/tools/apko { };
+
+  melange = callPackage ../development/tools/melange { };
+
+  appthreat-depscan = callPackage ../development/tools/appthreat-depscan { };
+
+  activate-linux = callPackage ../applications/misc/activate-linux { };
+
+  ansi = callPackage ../development/tools/ansi { };
+
+  ares-rs = callPackage ../tools/security/ares-rs { };
+
+  arti = callPackage ../tools/security/arti {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  asn1c = callPackage ../development/compilers/asn1c { };
+
+  assemblyscript = callPackage ../development/compilers/assemblyscript { };
+
+  authy = callPackage ../applications/misc/authy { };
+
+  authz0 = callPackage ../tools/security/authz0 { };
+
+  auth0-cli = callPackage ../tools/admin/auth0-cli { };
+
+  atomic-operator = callPackage ../tools/security/atomic-operator { };
+
+  atomic-swap = callPackage ../applications/blockchains/atomic-swap { };
+
+  avro-tools = callPackage ../development/tools/avro-tools { };
+
+  bacnet-stack = callPackage ../tools/networking/bacnet-stack { };
+
+  bada-bib = callPackage ../applications/science/misc/bada-bib { };
+
+  badlion-client = callPackage ../games/badlion-client {};
+
+  banana-accounting = callPackage ../applications/office/banana-accounting { };
+
+  beebeep = libsForQt5.callPackage ../applications/office/beebeep { };
+
+  beeper = callPackage ../applications/networking/instant-messengers/beeper { };
+
+  bakelite = callPackage ../tools/backup/bakelite { };
+
+  bazecor = callPackage ../applications/misc/bazecor { };
+
+  bearer = callPackage ../development/tools/bearer { };
+
+  benthos = callPackage ../development/tools/benthos { };
+
+  beyond-identity = callPackage ../tools/security/beyond-identity { };
+
+  bibtex-tidy = callPackage ../tools/typesetting/bibtex-tidy { };
+
+  bililiverecorder = callPackage ../servers/bililiverecorder { };
+
+  binbloom = callPackage ../tools/security/binbloom { };
+
+  bingo = callPackage ../development/tools/bingo { };
+
+  bin2c = callPackage ../development/tools/bin2c { };
+
+  binserve = callPackage ../servers/binserve {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  blst = callPackage ../development/libraries/blst { };
+
+  bloom = qt6Packages.callPackage ../development/tools/bloom { };
+
+  bloodhound-py = callPackage ../tools/security/bloodhound-py { };
+
+  bodyclose = callPackage ../development/tools/bodyclose { };
+
+  bootstrap-studio = callPackage ../development/web/bootstrap-studio { };
+
+  breakpad = callPackage ../development/misc/breakpad { };
+
+  brev-cli = callPackage ../development/misc/brev-cli { };
+
+  buf = callPackage ../development/tools/buf { };
+
+  cbfmt = callPackage ../development/tools/cbfmt { };
+
+  cfn-nag = callPackage ../development/tools/cfn-nag { };
+
+  circumflex = callPackage ../applications/networking/circumflex { };
+
+  citron = callPackage ../tools/misc/citron { };
+
+  cxx-rs = callPackage ../development/libraries/cxx-rs { };
+
+  elfcat = callPackage ../tools/misc/elfcat { };
+
+  # Zip file format only allows times after year 1980, which makes e.g. Python
+  # wheel building fail with:
+  # ValueError: ZIP does not support timestamps before 1980
+  ensureNewerSourcesForZipFilesHook = ensureNewerSourcesHook { year = "1980"; };
+
+  updateAutotoolsGnuConfigScriptsHook = makeSetupHook {
+    name = "update-autotools-gnu-config-scripts-hook";
+    substitutions = { gnu_config = gnu-config; };
+  } ../build-support/setup-hooks/update-autotools-gnu-config-scripts.sh;
+
+  gogUnpackHook = makeSetupHook {
+    name = "gog-unpack-hook";
+    propagatedBuildInputs = [ innoextract file-rename ]; }
+    ../build-support/setup-hooks/gog-unpack.sh;
+
+  buildEnv = callPackage ../build-support/buildenv { }; # not actually a package
+
+  buildFHSEnv = buildFHSEnvBubblewrap;
+  buildFHSEnvChroot = callPackage ../build-support/build-fhsenv-chroot { }; # Deprecated; use buildFHSEnv/buildFHSEnvBubblewrap
+  buildFHSEnvBubblewrap = callPackage ../build-support/build-fhsenv-bubblewrap { };
+
+  buildMaven = callPackage ../build-support/build-maven.nix { };
+
+  c64-debugger = callPackage ../applications/emulators/c64-debugger { };
+
+  camunda-modeler = callPackage ../applications/misc/camunda-modeler { };
+
+  caroline = callPackage ../development/libraries/caroline { };
+
+  cartridges = callPackage ../applications/misc/cartridges { };
+
+  castget = callPackage ../applications/networking/feedreaders/castget { };
+
+  castxml = callPackage ../development/tools/castxml { };
+
+  catatonit = callPackage ../applications/virtualization/catatonit { };
+
+  catppuccin = callPackage ../data/themes/catppuccin { };
+
+  catppuccin-catwalk = callPackage ../development/tools/misc/catppuccin-catwalk { };
+
+  catppuccin-gtk = callPackage ../data/themes/catppuccin-gtk { };
+
+  catppuccin-kde = callPackage ../data/themes/catppuccin-kde { };
+
+  catppuccin-kvantum = callPackage ../data/themes/catppuccin-kvantum { };
+
+  catppuccin-papirus-folders = callPackage ../data/icons/catppuccin-papirus-folders { };
+
+  catppuccin-plymouth = callPackage ../data/themes/catppuccin-plymouth { };
+
+  catppuccin-sddm-corners = callPackage ../data/themes/catppuccin-sddm-corners { };
+
+  btdu = callPackage ../tools/misc/btdu { };
+
+  ccal = callPackage ../tools/misc/ccal { };
+
+  celeste-classic-pm = pkgs.celeste-classic.override {
+    practiceMod = true;
+  };
+
+  cereal = cereal_1_3_0;
+  cereal_1_3_0 = callPackage ../development/libraries/cereal/1.3.0.nix { };
+  cereal_1_3_2 = callPackage ../development/libraries/cereal/1.3.2.nix { };
+
+  cdecrypt = callPackage ../development/tools/cdecrypt { };
+
+  certgraph = callPackage ../tools/security/certgraph { };
+
+  certinfo = callPackage ../tools/security/certinfo { };
+
+  certsync = callPackage ../tools/security/certsync { };
+
+  cewl = callPackage ../tools/security/cewl { };
+
+  chatgpt-cli = callPackage ../tools/misc/chatgpt-cli { };
+
+  chatgpt-retrieval-plugin = callPackage ../servers/chatgpt-retrieval-plugin { };
+
+  mswatch = callPackage ../applications/networking/mailreaders/mswatch { };
+
+  chef-cli = callPackage ../tools/misc/chef-cli { };
+
+  checkov = callPackage ../development/tools/analysis/checkov {
+    python3 = python311;
+  };
+
+  checkpwn = callPackage ../tools/misc/checkpwn { };
+
+  banana-vera = callPackage ../development/tools/analysis/banana-vera { };
+
+  chrysalis = callPackage ../applications/misc/chrysalis { };
+
+  ciel = callPackage ../tools/package-management/ciel { };
+
+  circt = callPackage ../development/compilers/circt { };
+
+  classicube = callPackage ../games/classicube { };
+
+  clj-kondo = callPackage ../development/tools/clj-kondo { };
+
+  cloak = callPackage ../applications/misc/cloak {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  cotp = callPackage ../applications/misc/cotp {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  cmark = callPackage ../development/libraries/cmark { };
+
+  cmark-gfm = callPackage ../development/libraries/cmark-gfm { };
+
+  cm256cc = callPackage ../development/libraries/cm256cc {  };
+
+  cocogitto = callPackage ../development/tools/cocogitto {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  codeberg-cli = callPackage ../applications/version-management/codeberg-cli {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+
+  conftest = callPackage ../development/tools/conftest { };
+
+  coldsnap = callPackage ../tools/admin/coldsnap {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  colemak-dh = callPackage ../data/misc/colemak-dh { };
+
+  collision = callPackage ../applications/misc/collision { };
+
+  colmena = callPackage ../tools/admin/colmena { };
+
+  colorz = callPackage ../tools/misc/colorz { };
+
+  colorpanes = callPackage ../tools/misc/colorpanes { };
+
+  colorpicker = callPackage ../tools/misc/colorpicker { };
+
+  colorstorm = callPackage ../applications/misc/colorstorm { };
+
+  comedilib = callPackage ../development/libraries/comedilib {  };
+
+  commix = callPackage ../tools/security/commix { };
+
+  comodoro = callPackage ../applications/misc/comodoro { };
+
+  compdb = callPackage ../tools/misc/compdb { };
+
+  conserve = callPackage ../tools/backup/conserve { };
+
+  conserver = callPackage ../tools/misc/conserver { };
+
+  containerlab = callPackage ../tools/networking/containerlab { };
+
+  containerpilot = callPackage ../applications/networking/cluster/containerpilot { };
+
+  coost = callPackage ../development/libraries/coost { };
+
+  crc = callPackage ../applications/networking/cluster/crc { };
+
+  confetty = callPackage ../applications/misc/confetty { };
+
+  confy = callPackage ../applications/misc/confy { };
+
+  coordgenlibs  = callPackage ../development/libraries/coordgenlibs { };
+
+  copilot-cli = callPackage ../tools/admin/copilot-cli { };
+
+  cp210x-program = callPackage ../tools/misc/cp210x-program { };
+
+  cp437 = callPackage ../tools/misc/cp437 { };
+
+  cpm-cmake = callPackage ../development/tools/cpm-cmake { };
+
+  crackle = callPackage ../tools/networking/crackle { };
+
+  crackql = callPackage ../tools/security/crackql { };
+
+  crow-translate = libsForQt5.callPackage ../applications/misc/crow-translate { };
+
+  cryptowatch-desktop = callPackage ../applications/finance/cryptowatch { };
+
+  dae = callPackage ../tools/networking/dae { };
+
+  darling = callPackage ../applications/emulators/darling { };
+
+  databricks-sql-cli = python3Packages.callPackage ../applications/misc/databricks-sql-cli { };
+
+  dbip-country-lite = callPackage ../data/misc/dbip-country-lite { };
+
+  dcgm = callPackage ../os-specific/linux/dcgm { };
+
+  dhallDirectoryToNix = callPackage ../build-support/dhall/directory-to-nix.nix { };
+
+  dhallPackageToNix = callPackage ../build-support/dhall/package-to-nix.nix { };
+
+  dhallToNix = callPackage ../build-support/dhall/to-nix.nix { };
+
+  dinghy = with python3Packages; toPythonApplication dinghy;
+
+  djgpp = djgpp_i586;
+  djgpp_i586 = callPackage ../development/compilers/djgpp { targetArchitecture = "i586"; stdenv = gccStdenv; };
+  djgpp_i686 = lowPrio (callPackage ../development/compilers/djgpp { targetArchitecture = "i686"; stdenv = gccStdenv; });
+
+  djhtml = python3Packages.callPackage ../development/tools/djhtml { };
+
+  deadcode = callPackage ../development/tools/deadcode { };
+
+  deadnix = callPackage ../development/tools/deadnix { };
+
+  dec-decode = callPackage ../development/tools/dec-decode { };
+
+  dnf4 =  with python3Packages; toPythonApplication dnf4;
+
+  dnf5 = callPackage ../tools/package-management/dnf5 { };
+
+  documenso = callPackage ../applications/office/documenso { };
+
+  domine = callPackage ../tools/misc/domine { };
+
+  dsq = callPackage ../tools/misc/dsq { };
+
+  dt = callPackage ../tools/text/dt { };
+
+  dtv-scan-tables = callPackage ../data/misc/dtv-scan-tables { };
+
+  dufs = callPackage ../servers/http/dufs { };
+
+  dynein = callPackage ../development/tools/database/dynein {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ea = callPackage ../tools/misc/ea { };
+
+  each = callPackage ../tools/text/each { };
+
+  ebusd = callPackage ../servers/ebusd { };
+
+  eclipse-mat = callPackage ../development/tools/eclipse-mat { };
+
+  ebpf-verifier = callPackage ../tools/networking/ebpf-verifier {
+    # Replace this to `catch2 = catch2_3` when catch2 3.4.0 is merged
+    # https://github.com/NixOS/nixpkgs/pull/243485
+    catch2.src = fetchFromGitHub {
+      owner = "catchorg";
+      repo = "Catch2";
+      rev = "v3.4.0";
+      hash = "sha256-DqGGfNjKPW9HFJrX9arFHyNYjB61uoL6NabZatTWrr0=";
+    };
+  };
+
+  edgedb = callPackage ../tools/networking/edgedb {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  edge-runtime = callPackage ../development/web/edge-runtime { };
+
+  efficient-compression-tool = callPackage ../tools/compression/efficient-compression-tool { };
+
+  elektroid = callPackage ../applications/audio/elektroid { };
+
+  eludris = callPackage ../tools/misc/eludris {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  enochecker-test = with python3Packages; callPackage ../development/tools/enochecker-test { };
+
+  enumer = callPackage ../tools/misc/enumer { };
+
+  evans = callPackage ../development/tools/evans { };
+
+  evhz = callPackage ../tools/misc/evhz { };
+
+  expressvpn = callPackage ../applications/networking/expressvpn { };
+
+  faq = callPackage ../development/tools/faq { };
+
+  femtolisp = callPackage ../development/interpreters/femtolisp { };
+
+  fh = callPackage ../tools/nix/fh { };
+
+  figma-agent = callPackage ../applications/graphics/figma-agent { };
+
+  figma-linux = callPackage ../applications/graphics/figma-linux { };
+
+  firefly-desktop = callPackage ../applications/misc/firefly-desktop { };
+
+  flaca = callPackage ../applications/graphics/flaca { };
+
+  frece = callPackage ../development/tools/frece { };
+
+  frida-tools = callPackage ../tools/security/frida-tools { };
+
+  frink = callPackage ../development/tools/frink { };
+
+  frugal = callPackage ../development/tools/frugal { };
+
+  frugally-deep = callPackage ../development/libraries/frugally-deep { };
+
+  functiontrace-server = callPackage ../development/tools/functiontrace-server { };
+
+  gendef = callPackage ../development/tools/gendef { };
+
+  glade = callPackage ../development/tools/glade { };
+
+  glamoroustoolkit = callPackage ../development/tools/glamoroustoolkit { };
+
+  gobble = callPackage ../tools/X11/gobble { };
+
+  goda = callPackage ../development/tools/goda { };
+
+  gokrazy = callPackage ../development/misc/gokrazy { };
+
+  gojq = callPackage ../development/tools/gojq { };
+
+  govulncheck = callPackage ../tools/security/govulncheck { };
+
+  gpick = callPackage ../tools/misc/gpick { };
+
+  gradescope-submit = callPackage ../tools/misc/gradescope-submit { };
+
+  gridlock = callPackage ../tools/nix/gridlock { };
+  inherit (gridlock) nyarr;
+
+  hwatch = callPackage ../tools/misc/hwatch { };
+
+  hobbes = callPackage ../development/tools/hobbes { };
+
+  honeycomb-refinery = callPackage ../servers/tracing/honeycomb/refinery { };
+
+  html5validator = python3Packages.callPackage ../applications/misc/html5validator { };
+
+  inspec = callPackage ../tools/misc/inspec { };
+
+  buildcatrust = with python3.pkgs; toPythonApplication buildcatrust;
+
+  probe-rs = callPackage ../development/tools/rust/probe-rs {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+    inherit (darwin) DarwinTools;
+  };
+
+  probe-run = callPackage ../development/tools/rust/probe-run {
+    inherit (darwin.apple_sdk.frameworks) AppKit IOKit;
+    inherit (darwin) DarwinTools;
+  };
+
+  rtthost = callPackage ../development/tools/rust/rtthost {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+    inherit (darwin) DarwinTools;
+  };
+
+  mix2nix = callPackage ../development/tools/mix2nix {
+    elixir = elixir_1_14;
+  };
+
+  n98-magerun = callPackage ../development/tools/misc/n98-magerun { };
+
+  n98-magerun2 = callPackage ../development/tools/misc/n98-magerun2 { };
+
+  prisma-engines = callPackage ../development/tools/database/prisma-engines {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  pridecat = callPackage ../tools/misc/pridecat { };
+
+  pridefetch = callPackage ../tools/misc/pridefetch { };
+
+  proto-contrib = callPackage ../development/tools/proto-contrib { };
+
+  protoc-gen-dart = callPackage ../development/tools/protoc-gen-dart { };
+
+  protoc-gen-doc = callPackage ../development/tools/protoc-gen-doc { };
+
+  protoc-gen-entgrpc = callPackage ../development/tools/protoc-gen-entgrpc { };
+
+  protoc-gen-go = callPackage ../development/tools/protoc-gen-go { };
+
+  protoc-gen-go-grpc = callPackage ../development/tools/protoc-gen-go-grpc { };
+
+  protoc-gen-go-vtproto = callPackage ../development/tools/protoc-gen-go-vtproto { };
+
+  protoc-gen-grpc-web = callPackage ../development/tools/protoc-gen-grpc-web {
+    protobuf = protobuf_21;
+  };
+
+  protoc-gen-connect-go = callPackage ../development/tools/protoc-gen-connect-go { };
+
+  protoc-gen-prost = callPackage ../development/tools/protoc-gen-prost { };
+
+  protoc-gen-prost-crate = callPackage ../development/tools/protoc-gen-prost-crate { };
+
+  protoc-gen-prost-serde = callPackage ../development/tools/protoc-gen-prost-serde { };
+
+  protoc-gen-rust = callPackage ../development/tools/protoc-gen-rust { };
+
+  protoc-gen-tonic = callPackage ../development/tools/protoc-gen-tonic { };
+
+  protoc-gen-twirp = callPackage ../development/tools/protoc-gen-twirp { };
+
+  protoc-gen-twirp_php = callPackage ../development/tools/protoc-gen-twirp_php { };
+
+  protoc-gen-twirp_swagger = callPackage ../development/tools/protoc-gen-twirp_swagger { };
+
+  protoc-gen-twirp_typescript = callPackage ../development/tools/protoc-gen-twirp_typescript { };
+
+  protoc-gen-validate = callPackage ../development/tools/protoc-gen-validate { };
+
+  protolint = callPackage ../development/tools/protolint { };
+
+  ptags = callPackage ../development/tools/misc/ptags { };
+
+  resolve-march-native = callPackage ../development/tools/resolve-march-native { };
+
+  riot-redis = callPackage ../development/tools/riot-redis { };
+
+  sea-orm-cli = callPackage ../development/tools/sea-orm-cli { };
+
+  vcpkg-tool = callPackage ../by-name/vc/vcpkg-tool/package.nix {
+    fmt = fmt_10;
+  };
+
+  r3ctl = qt5.callPackage ../tools/misc/r3ctl { };
+
+  ptouch-print = callPackage ../misc/ptouch-print { };
+
+  demoit = callPackage ../servers/demoit { };
+
+  deviceTree = callPackage ../os-specific/linux/device-tree { };
+
+  enum4linux = callPackage ../tools/security/enum4linux { };
+
+  enum4linux-ng = python3Packages.callPackage ../tools/security/enum4linux-ng { };
+
+  enumerepo = callPackage ../tools/security/enumerepo {};
+
+  erosmb = callPackage ../tools/security/erosmb { };
+
+  eslint_d = callPackage ../development/tools/eslint_d { };
+
+  oauth2c = callPackage ../tools/security/oauth2c { };
+
+  octodns = python3Packages.callPackage ../tools/networking/octodns { };
+
+  octodns-providers = recurseIntoAttrs {
+    bind = python3Packages.callPackage ../tools/networking/octodns/providers/bind { };
+    hetzner = python3Packages.callPackage ../tools/networking/octodns/providers/hetzner { };
+    powerdns = python3Packages.callPackage ../tools/networking/octodns/providers/powerdns { };
+  };
+
+  octosuite = callPackage ../tools/security/octosuite { };
+
+  octosql = callPackage ../tools/misc/octosql { };
+
+  onesixtyone = callPackage ../tools/security/onesixtyone { };
+
+  oletools = with python3.pkgs; toPythonApplication oletools;
+
+  ollama = callPackage ../tools/misc/ollama {  };
+
+  ots = callPackage ../tools/security/ots {  };
+
+  credential-detector = callPackage ../tools/security/credential-detector { };
+
+  creds = callPackage ../tools/security/creds { };
+
+  credslayer = callPackage ../tools/security/credslayer { };
+
+  device-tree_rpi = callPackage ../os-specific/linux/device-tree/raspberrypi.nix { };
+
+  devour = callPackage ../tools/X11/devour { };
+
+  didyoumean = callPackage ../tools/misc/didyoumean {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  didu = callPackage ../tools/misc/didu { };
+
+  diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
+
+  dieHook = makeSetupHook {
+    name = "die-hook";
+  } ../build-support/setup-hooks/die.sh;
+
+  archiver = callPackage ../applications/misc/archiver { };
+
+  digitalbitbox = libsForQt5.callPackage ../applications/misc/digitalbitbox {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  gretl = callPackage ../applications/science/math/gretl {
+    inherit (darwin.apple_sdk.frameworks) Accelerate;
+  };
+
+  grsync = callPackage ../applications/misc/grsync { };
+
+  dockerTools = callPackage ../build-support/docker {
+    writePython3 = buildPackages.writers.writePython3;
+  } // { __attrsFailEvaluation = true; };
+
+  fakeNss = callPackage ../build-support/fake-nss { };
+
+  tarsum = callPackage ../build-support/docker/tarsum.nix { };
+
+  snapTools = callPackage ../build-support/snap { };
+
+  nix-prefetch-docker = callPackage ../build-support/docker/nix-prefetch-docker.nix { };
+
+  docker-ls = callPackage ../tools/misc/docker-ls { };
+
+  docker-slim = callPackage ../applications/virtualization/docker-slim { };
+
+  doc2go = callPackage ../development/tools/doc2go { };
+
+  docker-sync = callPackage ../tools/misc/docker-sync { };
+
+  undocker = callPackage ../tools/misc/undocker { };
+
+  dockle = callPackage ../development/tools/dockle { };
+
+  docui = callPackage ../tools/misc/docui { };
+
+  done = callPackage ../applications/misc/done { };
+
+  dotfiles = callPackage ../applications/misc/dotfiles { };
+
+  # Dotnet
+
+  csharp-ls = callPackage ../development/tools/language-servers/csharp-ls { };
+
+  dotnetCorePackages = recurseIntoAttrs (callPackage ../development/compilers/dotnet {});
+
+  dotnet-sdk_2 = dotnetCorePackages.sdk_2_1;
+  dotnet-sdk_3 = dotnetCorePackages.sdk_3_1;
+  dotnet-sdk_5 = dotnetCorePackages.sdk_5_0;
+  dotnet-sdk_6 = dotnetCorePackages.sdk_6_0;
+  dotnet-sdk_7 = dotnetCorePackages.sdk_7_0;
+  dotnet-sdk_8 = dotnetCorePackages.sdk_8_0;
+
+  dotnet-runtime_6 = dotnetCorePackages.runtime_6_0;
+  dotnet-runtime_7 = dotnetCorePackages.runtime_7_0;
+  dotnet-runtime_8 = dotnetCorePackages.runtime_8_0;
+
+  dotnet-aspnetcore_6 = dotnetCorePackages.aspnetcore_6_0;
+  dotnet-aspnetcore_7 = dotnetCorePackages.aspnetcore_7_0;
+  dotnet-aspnetcore_8 = dotnetCorePackages.aspnetcore_8_0;
+
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
+  dotnet-runtime = dotnetCorePackages.runtime_6_0;
+  dotnet-aspnetcore = dotnetCorePackages.aspnetcore_6_0;
+
+  buildDotnetModule = callPackage ../build-support/dotnet/build-dotnet-module { };
+  nuget-to-nix = callPackage ../build-support/dotnet/nuget-to-nix { };
+  mkNugetSource = callPackage ../build-support/dotnet/make-nuget-source { };
+  mkNugetDeps = callPackage ../build-support/dotnet/make-nuget-deps { };
+
+  buildDotnetGlobalTool = callPackage ../build-support/dotnet/build-dotnet-global-tool { };
+
+  fsautocomplete = callPackage ../development/tools/fsautocomplete { };
+
+  pbm = callPackage ../tools/admin/pbm { };
+
+  fable = callPackage ../development/tools/fable { };
+
+  dotnetenv = callPackage ../build-support/dotnet/dotnetenv {
+    dotnetfx = dotnetfx40;
+  };
+
+  buildDotnetPackage = callPackage ../build-support/dotnet/build-dotnet-package { };
+  fetchNuGet = callPackage ../build-support/dotnet/fetchnuget { };
+  dotnetbuildhelpers = callPackage ../build-support/dotnet/dotnetbuildhelpers { };
+
+  dumb-init = callPackage ../applications/virtualization/dumb-init { };
+
+  umoci = callPackage ../applications/virtualization/umoci { };
+
+  dippi = callPackage ../tools/graphics/dippi { };
+
+  dispad = callPackage ../tools/X11/dispad { };
+
+  diswall = callPackage ../applications/networking/diswall { };
+
+  dupeguru = callPackage ../applications/misc/dupeguru { };
+
+  dump1090 = callPackage ../applications/radio/dump1090 { };
+
+  dwarf2json = callPackage ../tools/misc/dwarf2json { };
+
+  ebook2cw = callPackage ../applications/radio/ebook2cw { };
+
+  qdmr = libsForQt5.callPackage ../applications/radio/qdmr { };
+
+  edwin = callPackage ../data/fonts/edwin { };
+
+  edwood = callPackage ../applications/editors/edwood { };
+
+  etBook = callPackage ../data/fonts/et-book { };
+
+  fntsample = callPackage ../tools/misc/fntsample { };
+
+  fetchutils = callPackage ../tools/misc/fetchutils { };
+
+  fet-sh = callPackage ../tools/misc/fet-sh { };
+
+  fetchbower = callPackage ../build-support/fetchbower {
+    inherit (nodePackages) bower2nix;
+  };
+
+  fetchbzr = callPackage ../build-support/fetchbzr { };
+
+  fetchcvs = if stdenv.buildPlatform != stdenv.hostPlatform
+    # hack around splicing being crummy with things that (correctly) don't eval.
+    then buildPackages.fetchcvs
+    else callPackage ../build-support/fetchcvs { };
+
+  fetchdarcs = callPackage ../build-support/fetchdarcs { };
+
+  fetchdocker = callPackage ../build-support/fetchdocker { };
+
+  fetchDockerConfig = callPackage ../build-support/fetchdocker/fetchDockerConfig.nix { };
+
+  fetchDockerLayer = callPackage ../build-support/fetchdocker/fetchDockerLayer.nix { };
+
+  fetchfossil = callPackage ../build-support/fetchfossil { };
+
+  fetchgit = (callPackage ../build-support/fetchgit {
+    git = buildPackages.gitMinimal;
+    cacert = buildPackages.cacert;
+    git-lfs = buildPackages.git-lfs;
+  }) // { # fetchgit is a function, so we use // instead of passthru.
+    tests = pkgs.tests.fetchgit;
+  };
+
+  fetchgitLocal = callPackage ../build-support/fetchgitlocal { };
+
+  fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {});
+
+  fetchMavenArtifact = callPackage ../build-support/fetchmavenartifact { };
+
+  fetchpijul = callPackage ../build-support/fetchpijul { };
+
+  inherit (callPackage ../build-support/node/fetch-yarn-deps { })
+    prefetch-yarn-deps
+    fetchYarnDeps;
+
+  find-cursor = callPackage ../tools/X11/find-cursor { };
+
+  flare-floss = callPackage ../tools/security/flare-floss { };
+
+  flare-signal = callPackage ../applications/networking/instant-messengers/flare-signal { };
+
+  prefer-remote-fetch = import ../build-support/prefer-remote-fetch;
+
+  global-platform-pro = callPackage ../development/tools/global-platform-pro { };
+
+  gomi = callPackage ../tools/misc/gomi { };
+
+  go-ios = callPackage ../tools/misc/go-ios { };
+
+  graph-easy = callPackage ../tools/graphics/graph-easy { };
+
+  mangal = callPackage ../applications/misc/mangal { };
+
+  mermaid-filter = callPackage ../tools/misc/mermaid-filter { };
+
+  graphw00f = callPackage ../tools/security/graphw00f { };
+
+  graphite-cursors = callPackage ../data/icons/graphite-cursors { };
+
+  opendrop = python3Packages.callPackage ../tools/networking/opendrop { };
+
+  owl = callPackage ../tools/networking/owl { };
+
+  mutmut = callPackage ../development/tools/mutmut { };
+
+  packcc = callPackage ../development/tools/packcc { };
+
+  packer = callPackage ../development/tools/packer { };
+
+  packr = callPackage ../development/libraries/packr { };
+
+  pacproxy = callPackage ../tools/networking/pacproxy { };
+
+  pacup = callPackage ../tools/package-management/pacup { };
+
+  patcher9x = callPackage ../development/tools/patcher9x { };
+
+  perseus-cli = callPackage ../development/tools/perseus-cli {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  pet = callPackage ../development/tools/pet { };
+
+  pe-bear = libsForQt5.callPackage ../applications/misc/pe-bear { };
+
+  pkger = callPackage ../development/libraries/pkger { };
+
+  tapview = callPackage ../development/tools/tapview { };
+
+  run = callPackage ../development/tools/run { };
+
+  ruler = callPackage ../tools/security/ruler { };
+
+  mblock-mlink = callPackage ../development/tools/mblock-mlink { };
+
+  mod = callPackage ../development/tools/mod { };
+
+  mods = callPackage ../tools/misc/mods { };
+
+  mongosh = callPackage ../development/tools/mongosh { };
+
+  mya = callPackage ../applications/misc/mya { };
+
+  mysql-shell = callPackage ../development/tools/mysql-shell {
+    inherit (darwin) cctools DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    antlr = antlr4_10;
+    boost = boost177; # Configure checks for specific version.
+    icu =  icu69;
+    protobuf = protobuf_21;
+  };
+
+  mysql-shell-innovation = callPackage ../development/tools/mysql-shell/innovation.nix {
+    inherit (darwin) cctools DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    antlr = antlr4_10;
+    boost = boost177; # Configure checks for specific version.
+    icu =  icu69;
+    protobuf = protobuf_21;
+  };
+
+  broadlink-cli = callPackage ../tools/misc/broadlink-cli { };
+
+  fetchpatch = callPackage ../build-support/fetchpatch {
+    # 0.3.4 would change hashes: https://github.com/NixOS/nixpkgs/issues/25154
+    patchutils = buildPackages.patchutils_0_3_3;
+  } // {
+    tests = pkgs.tests.fetchpatch;
+    version = 1;
+  };
+
+  fetchpatch2 = callPackage ../build-support/fetchpatch {
+    patchutils = buildPackages.patchutils_0_4_2;
+  } // {
+    tests = pkgs.tests.fetchpatch2;
+    version = 2;
+  };
+
+  fetchs3 = callPackage ../build-support/fetchs3 { };
+
+  fetchtorrent = callPackage ../build-support/fetchtorrent { };
+
+  fetchsvn = if stdenv.buildPlatform != stdenv.hostPlatform
+    # hack around splicing being crummy with things that (correctly) don't eval.
+    then buildPackages.fetchsvn
+    else callPackage ../build-support/fetchsvn { };
+
+  fetchsvnrevision = import ../build-support/fetchsvnrevision runCommand subversion;
+
+  fetchsvnssh = callPackage ../build-support/fetchsvnssh { };
+
+  fetchhg = callPackage ../build-support/fetchhg { };
+
+  fetchFirefoxAddon = callPackage ../build-support/fetchfirefoxaddon { }
+    // {
+      tests = pkgs.tests.fetchFirefoxAddon;
+    };
+
+  fetchNextcloudApp = callPackage ../build-support/fetchnextcloudapp { };
+
+  # `fetchurl' downloads a file from the network.
+  fetchurl = if stdenv.buildPlatform != stdenv.hostPlatform
+    then buildPackages.fetchurl # No need to do special overrides twice,
+    else makeOverridable (import ../build-support/fetchurl) {
+      inherit lib stdenvNoCC buildPackages;
+      inherit cacert;
+      curl = buildPackages.curlMinimal.override (old: rec {
+        # break dependency cycles
+        fetchurl = stdenv.fetchurlBoot;
+        zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; };
+        pkg-config = buildPackages.pkg-config.override (old: {
+          pkg-config = old.pkg-config.override {
+            fetchurl = stdenv.fetchurlBoot;
+          };
+        });
+        perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; };
+        openssl = buildPackages.openssl.override {
+          fetchurl = stdenv.fetchurlBoot;
+          buildPackages = {
+            coreutils = buildPackages.coreutils.override {
+              fetchurl = stdenv.fetchurlBoot;
+              inherit perl;
+              xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
+              gmp = null;
+              aclSupport = false;
+              attrSupport = false;
+            };
+            inherit perl;
+          };
+          inherit perl;
+        };
+        libssh2 = buildPackages.libssh2.override {
+          fetchurl = stdenv.fetchurlBoot;
+          inherit zlib openssl;
+        };
+        # On darwin, libkrb5 needs bootstrap_cmds which would require
+        # converting many packages to fetchurl_boot to avoid evaluation cycles.
+        # So turn gssSupport off there, and on Windows.
+        # On other platforms, keep the previous value.
+        gssSupport =
+          if stdenv.isDarwin || stdenv.hostPlatform.isWindows
+            then false
+            else old.gssSupport or true; # `? true` is the default
+        libkrb5 = buildPackages.libkrb5.override {
+          fetchurl = stdenv.fetchurlBoot;
+          inherit pkg-config perl openssl;
+          keyutils = buildPackages.keyutils.override { fetchurl = stdenv.fetchurlBoot; };
+        };
+        nghttp2 = buildPackages.nghttp2.override {
+          fetchurl = stdenv.fetchurlBoot;
+          inherit pkg-config;
+          enableApp = false; # curl just needs libnghttp2
+          enableTests = false; # avoids bringing `cunit` and `tzdata` into scope
+        };
+      });
+    };
+
+  fetchRepoProject = callPackage ../build-support/fetchrepoproject { };
+
+  fetchipfs = import ../build-support/fetchipfs {
+    inherit curl stdenv;
+  };
+
+  fetchit = callPackage ../applications/networking/cluster/fetchit { };
+
+  fetchzip = callPackage ../build-support/fetchzip { }
+    // {
+      tests = pkgs.tests.fetchzip;
+    };
+
+  fetchDebianPatch = callPackage ../build-support/fetchdebianpatch { }
+    // {
+      tests = pkgs.tests.fetchDebianPatch;
+    };
+
+  fetchCrate = callPackage ../build-support/rust/fetchcrate.nix { };
+
+  fetchFromGitea = callPackage ../build-support/fetchgitea { };
+
+  fetchFromGitHub = callPackage ../build-support/fetchgithub { };
+
+  fetchFromBitbucket = callPackage ../build-support/fetchbitbucket { };
+
+  fetchFromSavannah = callPackage ../build-support/fetchsavannah { };
+
+  fetchFromSourcehut = callPackage ../build-support/fetchsourcehut { };
+
+  fetchFromGitLab = callPackage ../build-support/fetchgitlab { };
+
+  fetchFromGitiles = callPackage ../build-support/fetchgitiles { };
+
+  fetchFrom9Front = callPackage ../build-support/fetch9front { };
+
+  fetchFromRepoOrCz = callPackage ../build-support/fetchrepoorcz { };
+
+  fetchgx = callPackage ../build-support/fetchgx { };
+
+  fetchPypi = callPackage ../build-support/fetchpypi { };
+
+  resolveMirrorURLs = {url}: fetchurl {
+    showURLs = true;
+    inherit url;
+  };
+
+  installShellFiles = callPackage ../build-support/install-shell-files { };
+
+  lazydocker = callPackage ../tools/misc/lazydocker { };
+
+  ld-is-cc-hook = makeSetupHook { name = "ld-is-cc-hook"; }
+    ../build-support/setup-hooks/ld-is-cc-hook.sh;
+
+  libgflow = callPackage ../development/libraries/libgflow { };
+  libgtkflow3 = callPackage ../development/libraries/libgtkflow3 { };
+  libgtkflow4 = callPackage ../development/libraries/libgtkflow4 { };
+
+  libredirect = callPackage ../build-support/libredirect { };
+
+  livecaptions = callPackage ../applications/misc/livecaptions { };
+
+  madonctl = callPackage ../applications/misc/madonctl { };
+
+  copyDesktopItems = makeSetupHook {
+    name = "copy-desktop-items-hook";
+  } ../build-support/setup-hooks/copy-desktop-items.sh;
+
+  makeDesktopItem = callPackage ../build-support/make-desktopitem { };
+
+  copyPkgconfigItems = makeSetupHook {
+    name = "copy-pkg-config-items-hook";
+  } ../build-support/setup-hooks/copy-pkgconfig-items.sh;
+
+  makePkgconfigItem = callPackage ../build-support/make-pkgconfigitem { };
+
+  makeDarwinBundle = callPackage ../build-support/make-darwin-bundle { };
+
+  makeAutostartItem = callPackage ../build-support/make-startupitem { };
+
+  makeImpureTest = callPackage ../build-support/make-impure-test.nix;
+
+  makeInitrd = callPackage ../build-support/kernel/make-initrd.nix; # Args intentionally left out
+
+  makeInitrdNG = callPackage ../build-support/kernel/make-initrd-ng.nix;
+  makeInitrdNGTool = callPackage ../build-support/kernel/make-initrd-ng-tool.nix { };
+
+  makeWrapper = makeShellWrapper;
+
+  makeShellWrapper = makeSetupHook {
+    name = "make-shell-wrapper-hook";
+    propagatedBuildInputs = [ dieHook ];
+    substitutions = {
+      # targetPackages.runtimeShell only exists when pkgs == targetPackages (when targetPackages is not  __raw)
+      shell = if targetPackages ? runtimeShell then targetPackages.runtimeShell else throw "makeWrapper/makeShellWrapper must be in nativeBuildInputs";
+    };
+    passthru = {
+      tests = tests.makeWrapper;
+    };
+  } ../build-support/setup-hooks/make-wrapper.sh;
+
+  makeBinaryWrapper = callPackage ../build-support/setup-hooks/make-binary-wrapper { };
+
+  compressFirmwareXz = callPackage ../build-support/kernel/compress-firmware-xz.nix { };
+
+  makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }:
+    callPackage ../build-support/kernel/modules-closure.nix {
+      inherit kernel firmware rootModules allowMissing;
+    };
+
+  mkBinaryCache = callPackage ../build-support/binary-cache { };
+
+  mkShell = callPackage ../build-support/mkshell { };
+  mkShellNoCC = mkShell.override { stdenv = stdenvNoCC; };
+
+  mokutil = callPackage ../tools/security/mokutil { };
+
+  mpsolve = libsForQt5.callPackage ../applications/science/math/mpsolve { };
+
+  nixBufferBuilders = import ../build-support/emacs/buffer.nix { inherit lib writeText; inherit (emacs.pkgs) inherit-local; };
+
+  nix-gitignore = callPackage ../build-support/nix-gitignore { };
+
+  numworks-epsilon = callPackage ../applications/science/math/numworks-epsilon { };
+
+  ociTools = callPackage ../build-support/oci-tools { };
+
+  inherit (
+    callPackages ../build-support/setup-hooks/patch-rc-path-hooks { }
+  ) patchRcPathBash patchRcPathCsh patchRcPathFish patchRcPathPosix;
+
+  pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
+
+  pruneLibtoolFiles = makeSetupHook { name = "prune-libtool-files"; }
+    ../build-support/setup-hooks/prune-libtool-files.sh;
+
+  closureInfo = callPackage ../build-support/closure-info.nix { };
+
+  sensible-utils = callPackage ../tools/misc/sensible-utils { };
+
+  serverspec = callPackage ../tools/misc/serverspec { };
+
+  setupSystemdUnits = callPackage ../build-support/setup-systemd-units.nix { };
+
+  shortenPerlShebang = makeSetupHook {
+    name = "shorten-perl-shebang-hook";
+    propagatedBuildInputs = [ dieHook ];
+  } ../build-support/setup-hooks/shorten-perl-shebang.sh;
+
+  singularity-tools = callPackage ../build-support/singularity-tools { };
+
+  stacktile = callPackage ../tools/wayland/stacktile { };
+
+  sirula = callPackage ../tools/wayland/sirula { };
+
+  sitelen-seli-kiwen = callPackage ../data/fonts/sitelen-seli-kiwen { };
+
+  srcOnly = callPackage ../build-support/src-only { };
+
+  subnetcalc = callPackage ../tools/networking/subnetcalc { };
+
+  substitute = callPackage ../build-support/substitute/substitute.nix { };
+
+  substituteAll = callPackage ../build-support/substitute/substitute-all.nix { };
+
+  substituteAllFiles = callPackage ../build-support/substitute-files/substitute-all-files.nix { };
+
+  replaceDependency = callPackage ../build-support/replace-dependency.nix { };
+
+  nukeReferences = callPackage ../build-support/nuke-references {
+    inherit (darwin) signingUtils;
+  };
+
+  referencesByPopularity = callPackage ../build-support/references-by-popularity { };
+
+  removeReferencesTo = callPackage ../build-support/remove-references-to {
+    inherit (darwin) signingUtils;
+  };
+
+  # No callPackage.  In particular, we don't want `img` *package* in parameters.
+  vmTools = makeOverridable (import ../build-support/vm) { inherit pkgs lib; };
+
+  releaseTools = callPackage ../build-support/release { };
+
+  inherit (lib.systems) platforms;
+
+  setJavaClassPath = makeSetupHook {
+    name = "set-java-classpath-hook";
+  } ../build-support/setup-hooks/set-java-classpath.sh;
+
+  fixDarwinDylibNames = makeSetupHook {
+    name = "fix-darwin-dylib-names-hook";
+    substitutions = { inherit (binutils) targetPrefix; };
+    meta.platforms = lib.platforms.darwin;
+  } ../build-support/setup-hooks/fix-darwin-dylib-names.sh;
+
+  writeDarwinBundle = callPackage ../build-support/make-darwin-bundle/write-darwin-bundle.nix { };
+
+  desktopToDarwinBundle = makeSetupHook {
+    name = "desktop-to-darwin-bundle-hook";
+    propagatedBuildInputs = [ writeDarwinBundle librsvg imagemagick python3Packages.icnsutil ];
+  } ../build-support/setup-hooks/desktop-to-darwin-bundle.sh;
+
+  keepBuildTree = makeSetupHook {
+    name = "keep-build-tree-hook";
+  } ../build-support/setup-hooks/keep-build-tree.sh;
+
+  moveBuildTree = makeSetupHook {
+    name = "move-build-tree-hook";
+  } ../build-support/setup-hooks/move-build-tree.sh;
+
+  enableGCOVInstrumentation = makeSetupHook {
+    name = "enable-gcov-instrumentation-hook";
+  } ../build-support/setup-hooks/enable-coverage-instrumentation.sh;
+
+  makeGCOVReport = makeSetupHook {
+    name = "make-gcov-report-hook";
+    propagatedBuildInputs = [ lcov enableGCOVInstrumentation ];
+  } ../build-support/setup-hooks/make-coverage-analysis-report.sh;
+
+  makeHardcodeGsettingsPatch = callPackage ../build-support/make-hardcode-gsettings-patch { };
+
+  # intended to be used like nix-build -E 'with import <nixpkgs> { }; enableDebugging fooPackage'
+  enableDebugging = pkg: pkg.override { stdenv = stdenvAdapters.keepDebugInfo pkg.stdenv; };
+
+  findXMLCatalogs = makeSetupHook {
+    name = "find-xml-catalogs-hook";
+  } ../build-support/setup-hooks/find-xml-catalogs.sh;
+
+  wrapGAppsHook = callPackage ../build-support/setup-hooks/wrap-gapps-hook {
+    makeWrapper = makeBinaryWrapper;
+  };
+
+  wrapGAppsHook4 = wrapGAppsHook.override { gtk3 = __splicedPackages.gtk4; };
+
+  wrapGAppsNoGuiHook = wrapGAppsHook.override { isGraphical = false; };
+
+  separateDebugInfo = makeSetupHook {
+    name = "separate-debug-info-hook";
+  } ../build-support/setup-hooks/separate-debug-info.sh;
+
+  setupDebugInfoDirs = makeSetupHook {
+    name = "setup-debug-info-dirs-hook";
+  } ../build-support/setup-hooks/setup-debug-info-dirs.sh;
+
+  useOldCXXAbi = makeSetupHook {
+    name = "use-old-cxx-abi-hook";
+  } ../build-support/setup-hooks/use-old-cxx-abi.sh;
+
+  iconConvTools = callPackage ../build-support/icon-conv-tools { };
+
+  validatePkgConfig = makeSetupHook
+    { name = "validate-pkg-config"; propagatedBuildInputs = [ findutils pkg-config ]; }
+    ../build-support/setup-hooks/validate-pkg-config.sh;
+
+  patchPpdFilesHook = callPackage ../build-support/setup-hooks/patch-ppd-files { };
+
+  #package writers
+  writers = callPackage ../build-support/writers { };
+
+  # lib functions depending on pkgs
+  inherit (import ../pkgs-lib { inherit lib pkgs; }) formats;
+
+  testers = callPackage ../build-support/testers { };
+
+  ### TOOLS
+
+  _3llo = callPackage ../tools/misc/3llo { };
+
+  _3mux = callPackage ../tools/misc/3mux { };
+
+  _1password = callPackage ../applications/misc/1password { };
+
+  _1password-gui = callPackage ../applications/misc/1password-gui { };
+
+  _1password-gui-beta = callPackage ../applications/misc/1password-gui { channel = "beta"; };
+
+  _6tunnel = callPackage ../tools/networking/6tunnel { };
+
+  _7zz = darwin.apple_sdk_11_0.callPackage ../tools/archivers/7zz { };
+
+  _9pfs = callPackage ../tools/filesystems/9pfs { };
+
+  _9ptls = callPackage ../os-specific/linux/9ptls { };
+
+  aaa = callPackage ../tools/misc/aaa { };
+
+  aardvark-dns = callPackage ../tools/networking/aardvark-dns { };
+
+  a2ps = callPackage ../tools/text/a2ps { };
+
+  abbreviate = callPackage ../tools/text/abbreviate { };
+
+  abcm2ps = callPackage ../tools/audio/abcm2ps { };
+
+  abcmidi = callPackage ../tools/audio/abcmidi { };
+
+  abduco = callPackage ../tools/misc/abduco { };
+
+  ablog = callPackage ../applications/misc/ablog { };
+
+  acct = callPackage ../tools/system/acct { };
+
+  accuraterip-checksum = callPackage ../tools/audio/accuraterip-checksum { };
+
+  acme-dns = callPackage ../servers/dns/acme-dns/default.nix { };
+
+  acme-sh = callPackage ../tools/admin/acme-sh { };
+
+  acousticbrainz-client = callPackage ../tools/audio/acousticbrainz-client { };
+
+  alsaequal = callPackage ../tools/audio/alsaequal { };
+
+  acpica-tools = callPackage ../tools/system/acpica-tools { };
+
+  amdgpu_top = callPackage ../tools/system/amdgpu_top { };
+
+  acquire = with python3Packages; toPythonApplication acquire;
+
+  act = callPackage ../development/tools/misc/act { };
+
+  actdiag = with python3.pkgs; toPythonApplication actdiag;
+
+  actkbd = callPackage ../tools/system/actkbd { };
+
+  adafruit-ampy = callPackage ../tools/misc/adafruit-ampy { };
+
+  addic7ed-cli = callPackage ../tools/misc/addic7ed-cli { };
+
+  addlicense = callPackage ../tools/misc/addlicense { };
+
+  adenum  = callPackage ../tools/security/adenum { };
+
+  adlplug = callPackage ../applications/audio/adlplug {
+    inherit (darwin.apple_sdk.frameworks) Foundation Cocoa Carbon CoreServices ApplicationServices CoreAudio CoreMIDI AudioToolbox Accelerate CoreImage IOKit AudioUnit QuartzCore WebKit DiscRecording CoreAudioKit;
+    jack = libjack2;
+  };
+  opnplug = adlplug.override {
+    type = "OPN";
+  };
+
+  arc_unpacker = callPackage ../tools/archivers/arc_unpacker { };
+
+  adminer = callPackage ../servers/adminer { };
+
+  akkoma = callPackage ../servers/akkoma {
+    elixir = elixir_1_14;
+    beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_14; });
+  };
+  akkoma-frontends = recurseIntoAttrs {
+    akkoma-fe = callPackage ../servers/akkoma/akkoma-fe { };
+    admin-fe = callPackage ../servers/akkoma/admin-fe {
+      nodejs = nodejs_18;
+      yarn = yarn.override { nodejs = nodejs_18; };
+    };
+  };
+  akkoma-emoji = recurseIntoAttrs {
+    blobs_gg = callPackage ../servers/akkoma/emoji/blobs_gg.nix { };
+  };
+
+  advancecomp = callPackage ../tools/compression/advancecomp { };
+
+  aefs = callPackage ../tools/filesystems/aefs { };
+
+  aegisub = callPackage ../applications/video/aegisub ({
+    wxGTK = wxGTK32;
+  } // (config.aegisub or {}));
+
+  aerc = callPackage ../applications/networking/mailreaders/aerc { };
+
+  aerospike = callPackage ../servers/nosql/aerospike { };
+
+  aespipe = callPackage ../tools/security/aespipe { };
+
+  aescrypt = callPackage ../tools/misc/aescrypt { };
+
+  aether-lv2 = callPackage ../applications/audio/aether-lv2 { };
+
+  acme-client = callPackage ../tools/networking/acme-client {
+    stdenv = gccStdenv;
+  };
+
+  adrgen = callPackage ../tools/misc/adrgen { };
+
+  adriconf = callPackage ../tools/graphics/adriconf { };
+
+  amass = callPackage ../tools/networking/amass { };
+
+  afew = callPackage ../applications/networking/mailreaders/afew { };
+
+  afetch = callPackage ../tools/misc/afetch { };
+
+  afio = callPackage ../tools/archivers/afio { };
+
+  afl = callPackage ../tools/security/afl {
+    stdenv = clangStdenv;
+  };
+
+  honggfuzz = callPackage ../tools/security/honggfuzz {
+    clang = clang_16;
+    llvm = llvm_16;
+  };
+
+  aflplusplus = callPackage ../tools/security/aflplusplus {
+    clang = clang_15;
+    llvm = llvm_15;
+    llvmPackages = llvmPackages_15;
+    wine = null;
+  };
+
+  ledfx = callPackage ../applications/audio/ledfx { };
+
+  libdislocator = callPackage ../tools/security/afl/libdislocator.nix { };
+
+  afpfs-ng = callPackage ../tools/filesystems/afpfs-ng { };
+
+  afsctool = callPackage ../tools/filesystems/afsctool {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  agate = callPackage ../servers/gemini/agate {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  agda-pkg = callPackage ../development/tools/agda-pkg { };
+
+  agi = callPackage ../tools/graphics/agi { };
+
+  agola = callPackage ../development/tools/continuous-integration/agola { };
+
+  agrep = callPackage ../tools/text/agrep { };
+
+  aha = callPackage ../tools/text/aha { };
+
+  ahcpd = callPackage ../tools/networking/ahcpd { };
+
+  aichat = callPackage ../tools/misc/aichat { };
+
+  aide = callPackage ../tools/security/aide { };
+
+  ain = callPackage ../tools/networking/ain { };
+
+  aioblescan = with python3Packages; toPythonApplication aioblescan;
+
+  aiodnsbrute = callPackage ../tools/security/aiodnsbrute { };
+
+  aircrack-ng = callPackage ../tools/networking/aircrack-ng { };
+
+  airgeddon = callPackage ../tools/networking/airgeddon { };
+
+  apache-airflow = callPackage ../servers/apache-airflow { };
+
+  apachetomcatscanner = callPackage ../tools/security/apachetomcatscanner { };
+
+  airsonic = callPackage ../servers/misc/airsonic { };
+
+  airspy = callPackage ../applications/radio/airspy { };
+
+  airspyhf = callPackage ../applications/radio/airspyhf { };
+
+  airwindows-lv2 = callPackage ../applications/audio/airwindows-lv2 { };
+
+  aixlog = callPackage ../development/libraries/aixlog { };
+
+  aj-snapshot  = callPackage ../applications/audio/aj-snapshot { };
+
+  ajour = callPackage ../tools/games/ajour {
+    inherit (gnome) zenity;
+    inherit (plasma5Packages) kdialog;
+  };
+
+  akku = callPackage ../tools/package-management/akku { };
+
+  albert = qt6Packages.callPackage ../applications/misc/albert { };
+
+  alice-lg = callPackage ../servers/alice-lg{ };
+
+  alice-tools = callPackage ../tools/games/alice-tools {
+    withGUI = false;
+  };
+
+  alice-tools-qt5 = libsForQt5.callPackage ../tools/games/alice-tools { };
+
+  alice-tools-qt6 = qt6Packages.callPackage ../tools/games/alice-tools { };
+
+  allure = callPackage ../development/tools/allure { };
+
+  aquosctl = callPackage ../tools/misc/aquosctl { };
+
+  arch-install-scripts = callPackage ../tools/misc/arch-install-scripts { };
+
+  argocd-vault-plugin = callPackage ../tools/security/argocd-vault-plugin { };
+
+  arubaotp-seed-extractor = callPackage ../tools/security/arubaotp-seed-extractor { };
+
+  audible-cli = callPackage ../tools/misc/audible-cli { };
+
+  audiobookshelf = callPackage ../servers/audiobookshelf { };
+
+  auditwheel = with python3Packages; toPythonApplication auditwheel;
+
+  amidst = callPackage ../tools/games/minecraft/amidst { };
+
+  asar = callPackage ../tools/compression/asar { };
+
+  askalono = callPackage ../tools/misc/askalono { };
+
+  asleap = callPackage ../tools/networking/asleap { };
+
+  awsbck = callPackage ../tools/backup/awsbck {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  balena-cli = callPackage ../tools/admin/balena-cli { };
+
+  basez = callPackage ../tools/misc/basez { };
+
+  btc-rpc-explorer = callPackage ../tools/misc/btc-rpc-explorer { };
+
+  butler = callPackage ../games/itch/butler.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    buildGoModule = buildGo120Module;
+  };
+
+  carbon-now-cli = callPackage ../tools/typesetting/carbon-now-cli { };
+
+  cf-vault = callPackage ../tools/admin/cf-vault { };
+
+  cfspeedtest = callPackage ../tools/networking/cfspeedtest { };
+
+  cfonts = callPackage ../tools/misc/cfonts { };
+
+  bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { };
+
+  cie-middleware-linux = callPackage ../tools/security/cie-middleware-linux { };
+
+  cidrgrep = callPackage ../tools/text/cidrgrep { };
+
+  clematis = callPackage ../tools/misc/clematis { };
+
+  clubhouse-cli = callPackage ../tools/misc/clubhouse-cli { };
+
+  colorless = callPackage ../tools/misc/colorless { };
+
+  configurable-http-proxy = callPackage ../tools/networking/configurable-http-proxy { };
+
+  cope = callPackage ../tools/misc/cope { };
+
+  crypto-tracker = callPackage ../tools/misc/crypto-tracker { };
+
+  ejs = callPackage ../development/tools/ejs { };
+
+  ejson2env = callPackage ../tools/admin/ejson2env { };
+
+  davinci-resolve = callPackage ../applications/video/davinci-resolve { };
+
+  davinci-resolve-studio = callPackage ../applications/video/davinci-resolve { studioVariant = true; };
+
+  dehinter = with python3Packages; toPythonApplication dehinter;
+
+  dolbybcsoftwaredecode = callPackage ../applications/audio/dolbybcsoftwaredecode { };
+
+  donkey = callPackage ../tools/security/donkey { };
+
+  dualsensectl = callPackage ../tools/games/dualsensectl { };
+
+  dwarfs = callPackage ../tools/filesystems/dwarfs { };
+
+  dysk = callPackage ../tools/filesystems/dysk { };
+
+  etlegacy = callPackage ../games/etlegacy { lua = lua5_4; };
+
+  fastfetch = darwin.apple_sdk_11_0.callPackage ../tools/misc/fastfetch {
+    inherit (darwin.apple_sdk_11_0.frameworks)
+    AppKit Apple80211 Cocoa CoreDisplay CoreVideo CoreWLAN DisplayServices
+    Foundation IOBluetooth MediaRemote OpenCL;
+
+    inherit (darwin) moltenvk;
+  };
+
+  fscan = callPackage ../tools/security/fscan { };
+
+  copier = callPackage ../tools/misc/copier { };
+
+  gabutdm = callPackage ../applications/networking/gabutdm { };
+
+  gamemode = callPackage ../tools/games/gamemode {
+    libgamemode32 = pkgsi686Linux.gamemode.lib;
+  };
+
+  gamescope = callPackage ../applications/window-managers/gamescope {
+    wlroots = wlroots_0_16;
+  };
+
+  gay = callPackage ../tools/misc/gay {  };
+
+  elkhound = callPackage ../development/tools/elkhound { };
+
+  ethq = callPackage ../os-specific/linux/ethq { };
+
+  font-v = with python3Packages; toPythonApplication font-v;
+
+  fontbakery = with python3Packages; toPythonApplication fontbakery;
+
+  weidu = callPackage ../tools/games/weidu { };
+
+  weylus = callPackage ../applications/graphics/weylus  {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa VideoToolbox;
+  };
+
+  gam = callPackage ../tools/admin/gam { };
+
+  gen6dns = callPackage ../tools/networking/gen6dns { };
+
+  gen-license = callPackage ../development/tools/gen-license {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  github-copilot-cli = callPackage ../tools/misc/github-copilot-cli { };
+
+  gfshare = callPackage ../tools/security/gfshare { };
+
+  gh-actions-cache = callPackage ../tools/misc/gh-actions-cache { };
+
+  gh-cal = callPackage ../tools/misc/gh-cal {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  gh-dash = callPackage ../tools/misc/gh-dash { };
+
+  gh-eco = callPackage ../tools/misc/gh-eco { };
+
+  gh-markdown-preview = callPackage ../tools/misc/gh-markdown-preview { };
+
+  ghostie = callPackage ../tools/misc/ghostie { };
+
+  glooctl = callPackage ../applications/networking/cluster/glooctl { };
+
+  gobgp = callPackage ../tools/networking/gobgp { };
+
+  gof5 = callPackage ../tools/networking/gof5 { };
+
+  goflow = callPackage ../tools/networking/goflow { };
+
+  goflow2 = callPackage ../tools/networking/goflow2 { };
+
+  gofu = callPackage ../applications/misc/gofu { };
+
+  godns = callPackage ../tools/networking/godns { };
+
+  godspeed = callPackage ../tools/networking/godspeed { };
+
+  goodhosts = callPackage ../tools/networking/goodhosts { };
+
+  goose = callPackage ../tools/misc/goose { };
+
+  gp-saml-gui = python3Packages.callPackage ../tools/networking/gp-saml-gui { };
+
+  grizzly = callPackage ../tools/misc/grizzly { };
+
+  guestfs-tools = callPackage ../tools/virtualization/guestfs-tools { };
+
+  fabs = callPackage ../tools/backup/fabs { };
+
+  fm = callPackage ../applications/file-managers/fm { };
+
+  fwbuilder = libsForQt5.callPackage ../tools/security/fwbuilder { };
+
+  hblock = callPackage ../tools/networking/hblock { };
+
+  headsetcontrol = callPackage ../tools/audio/headsetcontrol { };
+
+  headset-charge-indicator = callPackage ../tools/audio/headset-charge-indicator { };
+
+  heh = callPackage ../applications/editors/heh { };
+
+  hexdiff = callPackage ../tools/misc/hexdiff { };
+
+  hexo-cli = callPackage ../development/tools/hexo-cli { };
+
+  hostmux = callPackage ../tools/misc/hostmux { };
+
+  hsd = callPackage ../tools/misc/hsd { };
+
+  httm = darwin.apple_sdk_11_0.callPackage ../tools/filesystems/httm { };
+
+  hyperpotamus = callPackage ../tools/misc/hyperpotamus { };
+
+  igir = callPackage ../tools/games/igir { };
+
+  immich-cli = callPackage ../tools/misc/immich-cli { };
+
+  inherit (callPackage ../tools/networking/ivpn/default.nix {}) ivpn ivpn-service;
+
+  jobber = callPackage ../tools/system/jobber { };
+
+  kanata = callPackage ../tools/system/kanata { };
+
+  kanata-with-cmd = kanata.override { withCmd = true; };
+
+  kaufkauflist = callPackage ../applications/misc/kaufkauflist { };
+
+  kdocker = libsForQt5.callPackage ../tools/X11/kdocker { };
+
+  kicli = callPackage ../tools/misc/kicli { };
+
+  ksmbd-tools = callPackage ../os-specific/linux/ksmbd-tools { };
+
+  ksnip = libsForQt5.callPackage ../tools/misc/ksnip { };
+
+  kstart = callPackage ../tools/security/kstart { };
+
+  kubevirt = callPackage ../tools/virtualization/kubevirt { };
+
+  lektor = callPackage ../tools/misc/lektor { };
+
+  licenseclassifier = callPackage ../development/tools/misc/licenseclassifier { };
+
+  license-cli = callPackage ../tools/misc/license-cli { };
+
+  license-generator = callPackage ../tools/misc/license-generator { };
+
+  linux-router = callPackage ../tools/networking/linux-router { };
+
+  linux-router-without-wifi = linux-router.override { useWifiDependencies = false; };
+
+  markdownlint-cli = callPackage ../tools/text/markdownlint-cli { };
+
+  markdownlint-cli2 = callPackage ../tools/text/markdownlint-cli2 { };
+
+  mbidled = callPackage ../tools/networking/mbidled { };
+
+  mcaselector = callPackage ../tools/games/minecraft/mcaselector {
+    jre = jre.override {
+      enableJavaFX = true;
+    };
+  };
+
+  metapixel = callPackage ../tools/graphics/metapixel { };
+
+  memos = callPackage ../servers/memos { };
+
+  midimonster = callPackage ../tools/audio/midimonster { };
+
+  midi-trigger = callPackage ../applications/audio/midi-trigger { };
+
+  mnc = callPackage ../tools/misc/mnc { };
+
+  mgmt = callPackage ../applications/system/mgmt { };
+
+  mkosi = python3Packages.callPackage ../tools/virtualization/mkosi { inherit systemd; };
+
+  mkosi-full = mkosi.override { withQemu = true; };
+
+  monica = callPackage ../servers/web-apps/monica { };
+
+  mpremote = python3Packages.callPackage ../tools/misc/mpremote { };
+
+  mprocs = callPackage ../tools/misc/mprocs { };
+
+  mpy-utils = python3Packages.callPackage ../tools/misc/mpy-utils { };
+
+  mymcplus = python3Packages.callPackage ../tools/games/mymcplus { };
+
+  near-cli = callPackage ../tools/misc/near-cli { };
+
+  networkd-notify = python3Packages.callPackage ../tools/networking/networkd-notify {
+    systemd = pkgs.systemd;
+  };
+
+  node-glob = callPackage ../tools/misc/node-glob { };
+
+  nominatim = callPackage ../servers/nominatim {
+    postgresql = postgresql_12;
+  };
+
+  npm-check-updates = callPackage ../tools/package-management/npm-check-updates { };
+
+  ntpd-rs = callPackage ../tools/networking/ntpd-rs { };
+
+  ocs-url = libsForQt5.callPackage ../tools/misc/ocs-url { };
+
+  openbugs = pkgsi686Linux.callPackage ../applications/science/machine-learning/openbugs { };
+
+  osquery = callPackage ../tools/system/osquery { };
+
+  paperview = callPackage ../tools/X11/paperview { };
+
+  pferd = callPackage ../tools/misc/pferd { };
+
+  pocket-updater-utility = callPackage ../tools/games/pocket-updater-utility { };
+
+  polygon-cli = callPackage ../tools/networking/polygon-cli { };
+
+  pricehist = python3Packages.callPackage ../tools/misc/pricehist { };
+
+  proycon-wayout = callPackage ../tools/wayland/proycon-wayout { };
+
+  q = callPackage ../tools/networking/q { };
+
+  qFlipper = libsForQt5.callPackage ../tools/misc/qflipper { };
+
+  quich = callPackage ../tools/misc/quich { } ;
+
+  rabtap = callPackage ../tools/networking/rabtap { } ;
+
+  redfang = callPackage ../tools/networking/redfang { };
+
+  ronin = callPackage ../tools/security/ronin { };
+
+  s0ix-selftest-tool = callPackage ../tools/system/s0ix-selftest-tool { };
+
+  scarab = callPackage ../tools/games/scarab { };
+
+  sdbus-cpp = callPackage ../development/libraries/sdbus-cpp { };
+
+  basu = callPackage ../development/libraries/basu { };
+
+  sdlookup = callPackage ../tools/security/sdlookup { };
+
+  sdkmanager = with python3Packages; toPythonApplication sdkmanager;
+
+  sgrep = callPackage ../tools/text/sgrep { };
+
+  shaperglot = with python3Packages; toPythonApplication shaperglot;
+
+  shell-genie = callPackage  ../applications/misc/shell-genie { };
+
+  sloth = callPackage ../tools/misc/sloth { };
+
+  snagboot = python3.pkgs.callPackage  ../applications/misc/snagboot { };
+
+  simple-dlna-browser = callPackage ../tools/networking/simple-dlna-browser { };
+
+  sitespeed-io = callPackage ../tools/networking/sitespeed-io { };
+
+  slipstream = callPackage ../tools/games/slipstream {
+    jdk = jdk8;
+  };
+
+  sorted-grep = callPackage ../tools/text/sorted-grep { };
+
+  smb3-foundry = callPackage ../applications/misc/smb3-foundry {
+    python3 = python311;
+  };
+
+  smbmap = callPackage ../tools/security/smbmap { };
+
+  smbscan = callPackage ../tools/security/smbscan { };
+
+  spectre-cli = callPackage ../tools/security/spectre-cli { };
+
+  speedtest-go = callPackage ../tools/networking/speedtest-go { };
+
+  speedtest-rs = callPackage ../tools/networking/speedtest-rs { };
+
+  stargazer = callPackage ../servers/gemini/stargazer {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  steamtinkerlaunch = callPackage ../tools/games/steamtinkerlaunch { };
+
+  supercronic = callPackage ../tools/system/supercronic { };
+
+  supermin = callPackage ../tools/virtualization/supermin { };
+
+  sx-go = callPackage ../tools/security/sx-go { };
+
+  systeroid = callPackage ../tools/system/systeroid { };
+
+  tailwindcss = callPackage ../development/tools/tailwindcss { };
+
+  tauon = callPackage ../applications/audio/tauon { };
+
+  tere = callPackage ../tools/misc/tere { };
+
+  termusic = darwin.apple_sdk_11_0.callPackage ../applications/audio/termusic {
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit CoreAudio CoreGraphics Foundation IOKit MediaPlayer Security;
+  };
+
+  tfk8s = callPackage ../tools/misc/tfk8s { };
+
+  thumbs = callPackage ../tools/misc/thumbs { };
+
+  tnat64 = callPackage ../tools/networking/tnat64 { };
+
+  toast = callPackage ../development/tools/toast { };
+
+  topicctl = callPackage ../tools/misc/topicctl { };
+
+  transmission-rss = callPackage ../tools/networking/transmission-rss { };
+
+  trimage = callPackage ../applications/graphics/trimage { inherit (qt5) wrapQtAppsHook; };
+
+  ttchat = callPackage ../tools/misc/ttchat { };
+
+  ufolint = with python3Packages; toPythonApplication ufolint;
+
+  ukmm = callPackage ../tools/games/ukmm { };
+
+  unflac = callPackage ../tools/audio/unflac { };
+
+  valeronoi = qt6Packages.callPackage ../tools/misc/valeronoi { };
+
+  veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { };
+
+  ventoy = callPackage ../tools/cd-dvd/ventoy { };
+  ventoy-full = ventoy.override {
+    withCryptsetup = true;
+    withXfs = true;
+    withExt4 = true;
+    withNtfs = true;
+  };
+
+  vitess = callPackage ../development/tools/database/vitess { };
+
+  voms = callPackage ../tools/networking/voms { };
+
+  vopono = callPackage ../tools/networking/vopono { };
+
+  vprof = with python3Packages; toPythonApplication vprof;
+
+  vrc-get = callPackage ../tools/misc/vrc-get {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  vrrtest = callPackage ../tools/video/vrrtest { };
+
+  winbox = callPackage ../tools/admin/winbox {
+    wine = wineWowPackages.stable;
+  };
+
+  wtwitch = callPackage ../tools/video/wtwitch { };
+
+  wwcd = callPackage ../tools/misc/wwcd { };
+
+  writedisk = callPackage ../tools/misc/writedisk { };
+
+  xcd = callPackage ../tools/misc/xcd { };
+
+  xpaste = callPackage ../tools/text/xpaste { };
+
+  xrootd = callPackage ../tools/networking/xrootd {
+    # Workaround systemd static build breakage
+    systemd = if systemd.meta.broken then null else systemd;
+  };
+
+  yabridge = callPackage ../tools/audio/yabridge {
+    wine = wineWowPackages.staging;
+  };
+
+  yabridgectl = callPackage ../tools/audio/yabridgectl {
+    wine = wineWowPackages.staging;
+  };
+
+  yafetch = callPackage ../tools/misc/yafetch {
+    stdenv = clangStdenv;
+  };
+
+  yarn-lock-converter = callPackage ../tools/package-management/yarn-lock-converter { };
+
+  zsh-history-to-fish = callPackage ../tools/misc/zsh-history-to-fish { };
+
+  archi = callPackage ../tools/misc/archi { };
+
+  breitbandmessung = callPackage ../applications/networking/breitbandmessung { };
+
+  ### APPLICATIONS/VERSION-MANAGEMENT
+
+  deepgit = callPackage ../applications/version-management/deepgit { };
+
+  git = callPackage ../applications/version-management/git {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey];
+    smtpPerlLibs = [
+      perlPackages.libnet perlPackages.NetSMTPSSL
+      perlPackages.IOSocketSSL perlPackages.NetSSLeay
+      perlPackages.AuthenSASL perlPackages.DigestHMAC
+    ];
+  };
+
+  # The full-featured Git.
+  gitFull = git.override {
+    svnSupport = true;
+    guiSupport = true;
+    sendEmailSupport = true;
+    withSsh = true;
+    withLibsecret = !stdenv.isDarwin;
+  };
+
+  # Git with SVN support, but without GUI.
+  gitSVN = lowPrio (git.override { svnSupport = true; });
+
+  git-doc = lib.addMetaAttrs {
+    description = "Additional documentation for Git";
+    longDescription = ''
+      This package contains additional documentation (HTML and text files) that
+      is referenced in the man pages of Git.
+    '';
+  } gitFull.doc;
+
+  gitMinimal = git.override {
+    withManual = false;
+    pythonSupport = false;
+    perlSupport = false;
+    withpcre2 = false;
+  };
+
+  bfg-repo-cleaner = callPackage ../applications/version-management/bfg-repo-cleaner { };
+
+  bit = callPackage ../applications/version-management/bit { };
+
+  bitbucket-server-cli = callPackage ../applications/version-management/bitbucket-server-cli { };
+
+  bump2version = python3Packages.callPackage ../applications/version-management/bump2version { };
+
+  cgit = callPackage ../applications/version-management/cgit { };
+
+  cgit-pink = callPackage ../applications/version-management/cgit/pink.nix { };
+
+  commit-formatter = callPackage ../applications/version-management/commit-formatter { };
+
+  commitlint = nodePackages."@commitlint/cli";
+
+  conform = callPackage ../applications/version-management/conform { };
+
+  datalad = callPackage ../applications/version-management/datalad { };
+
+  darcs-to-git = callPackage ../applications/version-management/darcs-to-git { };
+
+  degit = callPackage ../applications/version-management/degit { };
+
+  delta = darwin.apple_sdk_11_0.callPackage ../applications/version-management/delta { };
+
+  diff-so-fancy = callPackage ../applications/version-management/diff-so-fancy { };
+
+  gex = callPackage ../applications/version-management/gex {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  gfold = callPackage ../applications/version-management/gfold {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  gita = python3Packages.callPackage ../applications/version-management/gita { };
+
+  gitoxide = darwin.apple_sdk_11_0.callPackage ../applications/version-management/gitoxide {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security SystemConfiguration;
+  };
+
+  gg-scm = callPackage ../applications/version-management/gg { };
+
+  github-cli = gh;
+  gh = callPackage ../applications/version-management/gh { };
+
+  ghorg = callPackage ../applications/version-management/ghorg { };
+
+  ghq = callPackage ../applications/version-management/ghq { };
+
+  ghr = callPackage ../applications/version-management/ghr { };
+
+  git-absorb = callPackage ../applications/version-management/git-absorb {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-aggregator = callPackage ../applications/version-management/git-aggregator { };
+
+  git-annex-metadata-gui = libsForQt5.callPackage ../applications/version-management/git-annex-metadata-gui {
+    inherit (python3Packages) buildPythonApplication pyqt5 git-annex-adapter;
+  };
+
+  git-annex-remote-dbx = callPackage ../applications/version-management/git-annex-remote-dbx {
+    inherit (python3Packages)
+    buildPythonApplication
+    dropbox
+    annexremote
+    humanfriendly;
+  };
+
+  git-annex-remote-googledrive = callPackage ../applications/version-management/git-annex-remote-googledrive {
+    inherit (python3Packages)
+    buildPythonApplication
+    annexremote
+    drivelib
+    gitpython
+    tenacity
+    humanfriendly;
+  };
+
+  git-annex-remote-rclone = callPackage ../applications/version-management/git-annex-remote-rclone { };
+
+  git-annex-utils = callPackage ../applications/version-management/git-annex-utils { };
+
+  git-appraise = callPackage ../applications/version-management/git-appraise { };
+
+  git-archive-all = python3.pkgs.callPackage ../applications/version-management/git-archive-all { };
+
+  git-backdate = callPackage ../applications/version-management/git-backdate { };
+
+  git-backup = callPackage ../applications/version-management/git-backup {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-big-picture = callPackage ../applications/version-management/git-big-picture { };
+
+  git-bars = callPackage ../applications/version-management/git-bars { };
+
+  git-branchless = callPackage ../applications/version-management/git-branchless {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  git-branchstack = python3.pkgs.callPackage ../applications/version-management/git-branchstack { };
+
+  git-bug = callPackage ../applications/version-management/git-bug { };
+
+  git-bug-migration = callPackage ../applications/version-management/git-bug-migration { };
+
+  git-cache = callPackage ../applications/version-management/git-cache { };
+
+  git-chglog = callPackage ../applications/version-management/git-chglog { };
+
+  git-cinnabar = callPackage ../applications/version-management/git-cinnabar {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  git-cliff = callPackage ../applications/version-management/git-cliff {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-codeowners = callPackage ../applications/version-management/git-codeowners { };
+
+  git-codereview = callPackage ../applications/version-management/git-codereview { };
+
+  git-cola = callPackage ../applications/version-management/git-cola { };
+
+  git-crecord = callPackage ../applications/version-management/git-crecord { };
+
+  git-credential-1password = callPackage ../applications/version-management/git-credential-1password { };
+
+  git-credential-keepassxc = callPackage ../applications/version-management/git-credential-keepassxc {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
+  };
+
+  git-credential-manager = callPackage ../applications/version-management/git-credential-manager { };
+
+  git-credential-oauth = callPackage ../applications/version-management/git-credential-oauth { };
+
+  git-crypt = callPackage ../applications/version-management/git-crypt { };
+
+  git-delete-merged-branches = callPackage ../applications/version-management/git-delete-merged-branches { };
+
+  git-dive = callPackage ../applications/version-management/git-dive { };
+
+  git-extras = callPackage ../applications/version-management/git-extras { };
+
+  git-fame = callPackage ../applications/version-management/git-fame { };
+
+  git-fast-export = callPackage ../applications/version-management/fast-export { };
+
+  git-fire = callPackage ../applications/version-management/git-fire { };
+
+  git-ftp = callPackage ../applications/version-management/git-ftp { };
+
+  git-gone = callPackage ../applications/version-management/git-gone {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-graph = callPackage ../applications/version-management/git-graph { };
+
+  git-hound = callPackage ../applications/version-management/git-hound { };
+
+  git-hub = callPackage ../applications/version-management/git-hub { };
+
+  git-ignore = callPackage ../applications/version-management/git-ignore { };
+
+  git-imerge = python3Packages.callPackage ../applications/version-management/git-imerge { };
+
+  git-interactive-rebase-tool = callPackage ../applications/version-management/git-interactive-rebase-tool {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-lfs = lowPrio (callPackage ../applications/version-management/git-lfs { });
+
+  git-mit = callPackage ../applications/version-management/git-mit { };
+
+  git-my = callPackage ../applications/version-management/git-my { };
+
+  git-machete = python3Packages.callPackage ../applications/version-management/git-machete { };
+
+  git-nomad = callPackage ../applications/version-management/git-nomad { };
+
+  git-octopus = callPackage ../applications/version-management/git-octopus { };
+
+  git-open = callPackage ../applications/version-management/git-open { };
+
+  git-privacy = callPackage ../applications/version-management/git-privacy { };
+
+  git-ps-rs = callPackage ../development/tools/git-ps-rs {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-publish = python3Packages.callPackage ../applications/version-management/git-publish { };
+
+  git-quick-stats = callPackage ../applications/version-management/git-quick-stats { };
+
+  git-quickfix = callPackage ../applications/version-management/git-quickfix {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  git-radar = callPackage ../applications/version-management/git-radar { };
+
+  git-recent = callPackage ../applications/version-management/git-recent {
+    util-linux = if stdenv.isLinux then util-linuxMinimal else util-linux;
+  };
+
+  git-relevant-history = callPackage ../applications/version-management/git-relevant-history { };
+
+  git-remote-codecommit = python3Packages.callPackage ../applications/version-management/git-remote-codecommit { };
+
+  gitRepo = git-repo;
+  git-repo = callPackage ../applications/version-management/git-repo { };
+
+  git-repo-updater = python3Packages.callPackage ../applications/version-management/git-repo-updater { };
+
+  git-review = python3Packages.callPackage ../applications/version-management/git-review { };
+
+  git-remote-gcrypt = callPackage ../applications/version-management/git-remote-gcrypt { };
+
+  git-remote-hg = callPackage ../applications/version-management/git-remote-hg { };
+
+  git-reparent = callPackage ../applications/version-management/git-reparent { };
+
+  git-secret = callPackage ../applications/version-management/git-secret { };
+
+  git-secrets = callPackage ../applications/version-management/git-secrets { };
+
+  git-series = callPackage ../applications/version-management/git-series { };
+
+  git-sizer = callPackage ../applications/version-management/git-sizer { };
+
+  git-stack = callPackage ../applications/version-management/git-stack {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-standup = callPackage ../applications/version-management/git-standup { };
+
+  git-stree = callPackage ../applications/version-management/git-stree { };
+
+  git-subrepo = callPackage ../applications/version-management/git-subrepo { };
+
+  git-subtrac = callPackage ../applications/version-management/git-subtrac { };
+
+  git-sync = callPackage ../applications/version-management/git-sync { };
+
+  git-team = callPackage ../applications/version-management/git-team { };
+
+  git-test = callPackage ../applications/version-management/git-test { };
+
+  git-town = callPackage ../applications/version-management/git-town { };
+
+  git-trim = darwin.apple_sdk_11_0.callPackage ../applications/version-management/git-trim {
+    inherit (darwin.apple_sdk_11_0.frameworks) IOKit CoreFoundation Security;
+  };
+
+  git-up = callPackage ../applications/version-management/git-up {
+    pythonPackages = python3Packages;
+  };
+
+  git-vanity-hash = callPackage ../applications/version-management/git-vanity-hash { };
+
+  git-vendor = callPackage ../applications/version-management/git-vendor { };
+
+  git-when-merged = callPackage ../applications/version-management/git-when-merged { };
+
+  git-workspace = callPackage ../applications/version-management/git-workspace {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git2cl = callPackage ../applications/version-management/git2cl { };
+
+  gitbatch = callPackage ../applications/version-management/gitbatch { };
+
+  gitflow = callPackage ../applications/version-management/gitflow { };
+
+  gitfs = callPackage ../tools/filesystems/gitfs { };
+
+  gitless = callPackage ../applications/version-management/gitless { };
+
+  gitlint = python3Packages.callPackage ../applications/version-management/gitlint { };
+
+  gitls = callPackage ../applications/version-management/gitls { };
+
+  gitmux = callPackage ../applications/version-management/gitmux { };
+
+  gitnuro = callPackage ../applications/version-management/gitnuro { };
+
+  gitnr = callPackage ../applications/version-management/gitnr { };
+
+  gitprompt-rs = callPackage ../applications/version-management/gitprompt-rs/default.nix { };
+
+  gitsign = callPackage ../applications/version-management/gitsign { };
+
+  gitstats = callPackage ../applications/version-management/gitstats { };
+
+  gitstatus = callPackage ../applications/version-management/gitstatus { };
+
+  gitty = callPackage ../applications/version-management/gitty { };
+
+  gittyup = libsForQt5.callPackage ../applications/version-management/gittyup { };
+
+  gitui = callPackage ../applications/version-management/gitui {
+    inherit (darwin.apple_sdk.frameworks) Security AppKit;
+  };
+
+  gitweb = callPackage ../applications/version-management/gitweb { };
+
+  glab = callPackage ../applications/version-management/glab { };
+
+  glitter = callPackage ../applications/version-management/glitter { };
+
+  globalping-cli = callPackage ../tools/networking/globalping-cli { };
+
+  gst = callPackage ../applications/version-management/gst { };
+
+  guilt = callPackage ../applications/version-management/guilt { };
+
+  gut = callPackage ../applications/version-management/gut { };
+
+  hred = callPackage ../development/tools/hred { };
+
+  hub = callPackage ../applications/version-management/hub { };
+
+  hut = callPackage ../applications/version-management/hut { };
+
+  josh = callPackage ../applications/version-management/josh { };
+
+  lab = callPackage ../applications/version-management/lab { };
+
+  labctl = callPackage ../tools/networking/labctl {
+    buildGoModule = buildGo120Module;
+  };
+
+  legit = callPackage ../applications/version-management/legit { };
+
+  legit-web = callPackage ../applications/version-management/legit-web { };
+
+  lucky-commit = callPackage ../applications/version-management/lucky-commit {
+    inherit (darwin.apple_sdk.frameworks) OpenCL;
+  };
+
+  merge-fmt = callPackage ../applications/version-management/merge-fmt {
+    inherit (ocamlPackages) buildDunePackage cmdliner base stdio;
+   };
+
+  pass-git-helper = python3Packages.callPackage ../applications/version-management/pass-git-helper { };
+
+  qgit = qt5.callPackage ../applications/version-management/qgit { };
+
+  radicle-cli = callPackage ../applications/version-management/radicle-cli {
+    inherit (darwin) DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  radicle-upstream = callPackage ../applications/version-management/radicle-upstream { };
+
+  rs-git-fsmonitor = callPackage ../applications/version-management/rs-git-fsmonitor { };
+
+  scmpuff = callPackage ../applications/version-management/scmpuff { };
+
+  silver-platter = python3Packages.callPackage ../applications/version-management/silver-platter { };
+
+  stgit = callPackage ../applications/version-management/stgit { };
+
+  subgit = callPackage ../applications/version-management/subgit { };
+
+  svn-all-fast-export = libsForQt5.callPackage ../applications/version-management/svn-all-fast-export { };
+
+  svn2git = callPackage ../applications/version-management/svn2git {
+    git = gitSVN;
+  };
+
+  thicket = callPackage ../applications/version-management/thicket { };
+
+  tig = callPackage ../applications/version-management/tig { };
+
+  top-git = callPackage ../applications/version-management/topgit { };
+
+  transcrypt = callPackage ../applications/version-management/transcrypt { };
+
+  ungit = callPackage ../applications/version-management/ungit { };
+
+  inherit (haskellPackages) git-annex;
+
+  inherit (haskellPackages) git-brunch;
+
+  git-autofixup = perlPackages.GitAutofixup;
+
+  ghrepo-stats = with python3Packages; toPythonApplication ghrepo-stats;
+
+  git-filter-repo = with python3Packages; toPythonApplication git-filter-repo;
+
+  git-revise = with python3Packages; toPythonApplication git-revise;
+
+  ### APPLICATIONS/EMULATORS
+
+  _86Box = callPackage ../applications/emulators/86box { };
+
+  atari800 = callPackage ../applications/emulators/atari800 { };
+
+  ataripp = callPackage ../applications/emulators/atari++ { };
+
+  attract-mode = callPackage ../applications/emulators/attract-mode { };
+
+  basiliskii = callPackage ../applications/emulators/basiliskii { };
+
+  box64 = callPackage ../applications/emulators/box64 {
+    hello-x86_64 = if stdenv.hostPlatform.isx86_64 then
+      hello
+    else
+      pkgsCross.gnu64.hello;
+  };
+
+  caprice32 = callPackage ../applications/emulators/caprice32 { };
+
+  ccemux = callPackage ../applications/emulators/ccemux { };
+
+  cdemu-client = callPackage ../applications/emulators/cdemu/client.nix { };
+
+  cdemu-daemon = callPackage ../applications/emulators/cdemu/daemon.nix { };
+
+  cemu = callPackage ../applications/emulators/cemu { };
+
+  cen64 = callPackage ../applications/emulators/cen64 { };
+
+  citations = callPackage ../applications/misc/citations { };
+
+  webfontkitgenerator = callPackage ../applications/misc/webfontkitgenerator { };
+
+  citra-canary = callPackage ../applications/emulators/citra {
+    branch = "canary";
+  };
+
+  citra-nightly = callPackage ../applications/emulators/citra {
+    branch = "nightly";
+  };
+
+  collapseos-cvm = callPackage ../applications/emulators/collapseos-cvm { };
+
+  coltrane = callPackage ../applications/misc/coltrane { };
+
+  craftos-pc = callPackage ../applications/emulators/craftos-pc { };
+
+  darcnes = callPackage ../applications/emulators/darcnes { };
+
+  desmume = callPackage ../applications/emulators/desmume { };
+
+  dgen-sdl = callPackage ../applications/emulators/dgen-sdl { };
+
+  dlx = callPackage ../applications/emulators/dlx { };
+
+  dosbox = callPackage ../applications/emulators/dosbox {
+    inherit (darwin.apple_sdk.frameworks ) OpenGL;
+    SDL = if stdenv.isDarwin then SDL else SDL_compat;
+  };
+
+  dosbox-x = darwin.apple_sdk_11_0.callPackage ../applications/emulators/dosbox-x {
+    inherit (darwin.apple_sdk_11_0.frameworks) AudioUnit Carbon Cocoa;
+  };
+
+  duckstation = qt6Packages.callPackage ../applications/emulators/duckstation { };
+
+  dynamips = callPackage ../applications/emulators/dynamips { };
+
+  emu2 = callPackage ../applications/emulators/emu2 { };
+
+  emulationstation = callPackage ../applications/emulators/emulationstation { };
+
+  fceux = libsForQt5.callPackage ../applications/emulators/fceux { lua = lua5_1; };
+
+  firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { };
+
+  flycast = callPackage ../applications/emulators/flycast { };
+
+  flix = callPackage ../development/compilers/flix { };
+
+  fsrx = callPackage ../tools/misc/fsrx { };
+
+  fsuae = callPackage ../applications/emulators/fs-uae { };
+
+  fsuae-launcher = libsForQt5.callPackage ../applications/emulators/fs-uae/launcher.nix { };
+
+  fuc = callPackage ../tools/misc/fuc { };
+
+  fuse-emulator = callPackage ../applications/emulators/fuse-emulator { };
+
+  fusesoc = python3Packages.callPackage ../tools/package-management/fusesoc { };
+
+  fw = callPackage ../tools/misc/fw { };
+
+  g810-led = callPackage ../misc/g810-led { };
+
+  gcdemu = callPackage ../applications/emulators/cdemu/gui.nix { };
+
+  gensgs = pkgsi686Linux.callPackage ../applications/emulators/gens-gs { };
+
+  goldberg-emu = callPackage ../applications/emulators/goldberg-emu {
+    protobuf = protobuf_21;
+  };
+
+  gopsuinfo = callPackage ../tools/system/gopsuinfo { };
+
+  gxemul = callPackage ../applications/emulators/gxemul { };
+
+  hatari = callPackage ../applications/emulators/hatari { };
+
+  hercules = callPackage ../applications/emulators/hercules { };
+
+  hostapd-mana = callPackage ../tools/networking/hostapd-mana { };
+
+  image-analyzer = callPackage ../applications/emulators/cdemu/analyzer.nix { };
+
+  kega-fusion = pkgsi686Linux.callPackage ../applications/emulators/kega-fusion { };
+
+  lambda-delta = callPackage ../applications/emulators/lambda-delta { };
+
+  libdsk = callPackage ../applications/emulators/libdsk { };
+
+  libmirage = callPackage ../applications/emulators/cdemu/libmirage.nix { };
+
+  ludusavi = callPackage ../applications/backup/ludusavi { };
+
+  maiko = callPackage ../applications/emulators/maiko { };
+
+  mainsail = callPackage ../applications/misc/mainsail { };
+
+  mailctl = (haskellPackages.callPackage ../tools/networking/mailctl {}).overrideScope (final: prev: {
+    # Dependency twain requires an older version of http2, and we cannot mix
+    # versions of transitive dependencies.
+    http2 = final.http2_3_0_3;
+  });
+
+  mame = libsForQt5.callPackage ../applications/emulators/mame { };
+
+  mame-tools = lib.addMetaAttrs {
+    description = mame.meta.description + " (tools only)";
+  } (lib.getOutput "tools" mame);
+
+  mednafen = callPackage ../applications/emulators/mednafen { };
+
+  mednafen-server = callPackage ../applications/emulators/mednafen/server.nix { };
+
+  mednaffe = callPackage ../applications/emulators/mednaffe { };
+
+  melonDS = libsForQt5.callPackage ../applications/emulators/melonDS { };
+
+  mgba = libsForQt5.callPackage ../applications/emulators/mgba { };
+
+  mupen64plus = callPackage ../applications/emulators/mupen64plus { };
+
+  nestopia = callPackage ../applications/emulators/nestopia { };
+
+  np2kai = callPackage ../applications/emulators/np2kai { };
+
+  nuked-md = callPackage ../applications/emulators/nuked-md { };
+
+  oberon-risc-emu = callPackage ../applications/emulators/oberon-risc-emu { };
+
+  openmsx = callPackage ../applications/emulators/openmsx { };
+
+  packwiz = callPackage ../tools/games/minecraft/packwiz { };
+
+  pcem = callPackage ../applications/emulators/pcem { };
+
+  pcsx2 = qt6Packages.callPackage ../applications/emulators/pcsx2 { };
+
+  pcsxr = callPackage ../applications/emulators/pcsxr { };
+
+  ppsspp-sdl = ppsspp.override {
+    enableQt = false;
+    enableVulkan = true;
+  };
+
+  ppsspp-sdl-wayland = ppsspp.override {
+    forceWayland = true;
+    enableVulkan = false; # https://github.com/hrydgard/ppsspp/issues/13845
+  };
+
+  ppsspp-qt = ppsspp.override {
+    enableQt = true;
+    enableVulkan = false; # https://github.com/hrydgard/ppsspp/issues/11628
+  };
+
+  proton-caller = callPackage ../applications/emulators/proton-caller { };
+
+  punes = libsForQt5.callPackage ../applications/emulators/punes { };
+
+  punes-qt6 = qt6Packages.callPackage ../applications/emulators/punes { };
+
+  py65 = with python3.pkgs; toPythonApplication py65;
+
+  retrofe = callPackage ../applications/emulators/retrofe { };
+
+  ripes = libsForQt5.callPackage ../applications/emulators/ripes { };
+
+  rpcemu = callPackage ../applications/emulators/rpcemu { };
+
+  ruffle = callPackage ../applications/emulators/ruffle { };
+
+  ryujinx = callPackage ../applications/emulators/ryujinx { };
+
+  sameboy = callPackage ../applications/emulators/sameboy { };
+
+  simh = callPackage ../applications/emulators/simh { };
+
+  simplenes = callPackage ../applications/emulators/simplenes { };
+
+  snes9x = callPackage ../applications/emulators/snes9x { };
+
+  snes9x-gtk = callPackage ../applications/emulators/snes9x {
+    withGtk = true;
+  };
+
+  stella = callPackage ../applications/emulators/stella { };
+
+  tamatool = callPackage ../applications/emulators/tamatool { };
+
+  termtekst = callPackage ../applications/emulators/termtekst { };
+
+  tilem = callPackage ../applications/emulators/tilem { };
+
+  tiny8086 = callPackage ../applications/emulators/tiny8086 { };
+
+  tinyemu = callPackage ../applications/emulators/tinyemu { };
+
+  uae = callPackage ../applications/emulators/uae { };
+
+  vbam = callPackage ../applications/emulators/vbam { };
+
+  vice = callPackage ../applications/emulators/vice { };
+
+  winetricks = callPackage ../applications/emulators/wine/winetricks.nix {
+    inherit (gnome) zenity;
+  };
+
+  xcpc = callPackage ../applications/emulators/xcpc { };
+
+  xemu = callPackage ../applications/emulators/xemu { };
+
+  yapesdl = callPackage ../applications/emulators/yapesdl { };
+
+  zsnes = pkgsi686Linux.callPackage ../applications/emulators/zsnes { };
+  zsnes2 = pkgsi686Linux.callPackage ../applications/emulators/zsnes/2.x.nix { };
+
+  ### APPLICATIONS/EMULATORS/BSNES
+
+  ares = darwin.apple_sdk_11_0.callPackage ../applications/emulators/bsnes/ares { };
+
+  bsnes-hd = darwin.apple_sdk_11_0.callPackage ../applications/emulators/bsnes/bsnes-hd { };
+
+  higan = callPackage ../applications/emulators/bsnes/higan { };
+
+  ### APPLICATIONS/EMULATORS/DOLPHIN-EMU
+
+  dolphin-emu = qt6Packages.callPackage ../applications/emulators/dolphin-emu {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreBluetooth ForceFeedback IOBluetooth IOKit OpenGL VideoToolbox;
+    inherit (darwin) moltenvk;
+    stdenv =
+      if stdenv.isDarwin then overrideLibcxx darwin.apple_sdk_11_0.llvmPackages_16.stdenv
+      else stdenv;
+  };
+
+  dolphin-emu-primehack = qt5.callPackage ../applications/emulators/dolphin-emu/primehack.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
+    fmt = fmt_8;
+  };
+
+  ### APPLICATIONS/EMULATORS/RETROARCH
+
+  retroarchBare = qt5.callPackage ../applications/emulators/retroarch { };
+
+  retroarchFull = retroarch.override {
+    cores = builtins.filter
+      # Remove cores not supported on platform
+      (c: c ? libretroCore && (lib.meta.availableOn stdenv.hostPlatform c))
+      (builtins.attrValues libretro);
+  };
+
+  wrapRetroArch = { retroarch, settings ? {} }:
+    callPackage ../applications/emulators/retroarch/wrapper.nix
+      { inherit retroarch settings; };
+
+  retroarch = wrapRetroArch {
+    retroarch = retroarchBare;
+    settings = {
+      assets_directory = "${retroarch-assets}/share/retroarch/assets";
+      joypad_autoconfig_dir = "${retroarch-joypad-autoconfig}/share/libretro/autoconfig";
+      libretro_info_path = "${libretro-core-info}/share/retroarch/cores";
+    };
+  };
+
+  retroarch-assets = callPackage ../applications/emulators/retroarch/retroarch-assets.nix { };
+
+  retroarch-joypad-autoconfig = callPackage ../applications/emulators/retroarch/retroarch-joypad-autoconfig.nix { };
+
+  libretranslate = with python3.pkgs; toPythonApplication libretranslate;
+
+  libretro = recurseIntoAttrs
+    (callPackage ../applications/emulators/retroarch/cores.nix {
+      retroarch = retroarchBare;
+    });
+
+  libretro-core-info = callPackage ../applications/emulators/retroarch/libretro-core-info.nix { };
+
+  kodi-retroarch-advanced-launchers =
+    callPackage ../applications/emulators/retroarch/kodi-advanced-launchers.nix { };
+
+  ### APPLICATIONS/EMULATORS/YUZU
+
+  yuzu-mainline = import ../applications/emulators/yuzu {
+    inherit qt6Packages fetchFromGitHub fetchgit fetchurl fetchzip runCommand gnutar;
+    branch = "mainline";
+  };
+
+  yuzu-early-access = import ../applications/emulators/yuzu {
+    inherit qt6Packages fetchFromGitHub fetchgit fetchurl fetchzip runCommand gnutar;
+    branch = "early-access";
+  };
+
+  ### APPLICATIONS/EMULATORS/COMMANDERX16
+
+  x16-emulator = callPackage ../applications/emulators/commanderx16/emulator.nix { };
+  x16-rom = callPackage ../applications/emulators/commanderx16/rom.nix { };
+  x16-run = (callPackage ../applications/emulators/commanderx16/run.nix { }) {
+    emulator = x16-emulator;
+    rom = x16-rom;
+  };
+
+  yabause = libsForQt5.callPackage ../applications/emulators/yabause {
+    freeglut = null;
+    openal = null;
+  };
+
+  ### APPLICATIONS/FILE-MANAGERS
+
+  browsr = callPackage ../applications/file-managers/browsr { };
+
+  cfm = callPackage ../applications/file-managers/cfm { };
+
+  clex = callPackage ../applications/file-managers/clex { };
+
+  clifm = callPackage ../applications/file-managers/clifm { };
+
+  doublecmd = callPackage ../by-name/do/doublecmd/package.nix {
+    inherit (qt5) wrapQtAppsHook;
+  };
+
+  felix-fm = callPackage ../applications/file-managers/felix-fm { };
+
+  joshuto = callPackage ../applications/file-managers/joshuto { };
+
+  krusader = libsForQt5.callPackage ../applications/file-managers/krusader { };
+
+  lesscpy = callPackage ../development/compilers/lesscpy { };
+
+  lf = callPackage ../applications/file-managers/lf { };
+
+  ctpv = callPackage ../applications/file-managers/lf/ctpv.nix { };
+
+  mc = callPackage ../applications/file-managers/mc {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  mucommander = callPackage ../applications/file-managers/mucommander { };
+
+  nnn = callPackage ../applications/file-managers/nnn { };
+
+  noice = callPackage ../applications/file-managers/noice { };
+
+  pcmanfm = callPackage ../applications/file-managers/pcmanfm { };
+
+  portfolio-filemanager = callPackage ../applications/file-managers/portfolio-filemanager { };
+
+  potreeconverter = callPackage ../applications/graphics/potreeconverter { };
+
+  ranger = callPackage ../applications/file-managers/ranger { };
+
+  sfm = callPackage ../applications/file-managers/sfm { };
+
+  shfm = callPackage ../applications/file-managers/shfm { };
+
+  spaceFM = callPackage ../applications/file-managers/spacefm { };
+
+  tuifimanager = callPackage ../applications/file-managers/tuifimanager { };
+
+  vifm = callPackage ../applications/file-managers/vifm { };
+
+  vifm-full = vifm.override {
+    mediaSupport = true;
+    inherit lib udisks2 python3;
+  };
+
+  walk = callPackage ../applications/file-managers/walk { };
+
+  xfe = callPackage ../applications/file-managers/xfe {
+    fox = fox_1_6;
+  };
+
+  xplr = callPackage ../applications/file-managers/xplr { };
+
+  xplorer = callPackage ../applications/file-managers/xplorer { };
+
+  johnny-reborn-engine = callPackage ../applications/misc/johnny-reborn { };
+
+  johnny-reborn = callPackage ../applications/misc/johnny-reborn/with-data.nix { };
+
+  ### APPLICATIONS/TERMINAL-EMULATORS
+
+  alacritty = callPackage ../applications/terminal-emulators/alacritty {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreGraphics CoreServices CoreText Foundation OpenGL;
+  };
+
+  blackbox-terminal = callPackage ../applications/terminal-emulators/blackbox-terminal { };
+
+  contour = qt6.callPackage ../applications/terminal-emulators/contour {
+    inherit (darwin.apple_sdk_11_0.libs) utmp;
+    inherit (darwin) sigtool;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    fmt = fmt_9;
+  };
+
+  cool-retro-term = libsForQt5.callPackage ../applications/terminal-emulators/cool-retro-term { };
+
+  darklua = callPackage ../development/tools/darklua { };
+
+  darktile = callPackage ../applications/terminal-emulators/darktile { };
+
+  dterm = callPackage ../applications/terminal-emulators/dterm { };
+
+  foot = callPackage ../applications/terminal-emulators/foot { };
+
+  guake = callPackage ../applications/terminal-emulators/guake { };
+
+  hyper = callPackage ../applications/terminal-emulators/hyper { };
+
+  iterm2 = callPackage ../applications/terminal-emulators/iterm2 { };
+
+  kitty = darwin.apple_sdk_11_0.callPackage ../applications/terminal-emulators/kitty {
+    harfbuzz = harfbuzz.override { withCoreText = stdenv.isDarwin; };
+    inherit (darwin.apple_sdk_11_0) Libsystem;
+    inherit (darwin.apple_sdk_11_0.frameworks)
+      Cocoa
+      Kernel
+      UniformTypeIdentifiers
+      UserNotifications
+    ;
+  };
+
+  kitty-themes  = callPackage ../applications/terminal-emulators/kitty/themes.nix { };
+
+  lxterminal = callPackage ../applications/terminal-emulators/lxterminal { };
+
+  microcom = callPackage ../applications/terminal-emulators/microcom { };
+
+  mlterm = darwin.apple_sdk_11_0.callPackage ../applications/terminal-emulators/mlterm { };
+  mlterm-wayland = mlterm.override {
+    enableX11 = false;
+  };
+
+  mrxvt = callPackage ../applications/terminal-emulators/mrxvt { };
+
+  roxterm = callPackage ../applications/terminal-emulators/roxterm { };
+
+  rxvt = callPackage ../applications/terminal-emulators/rxvt { };
+
+  rxvt-unicode = callPackage ../applications/terminal-emulators/rxvt-unicode/wrapper.nix { };
+
+  rxvt-unicode-emoji = rxvt-unicode.override {
+    rxvt-unicode-unwrapped = rxvt-unicode-unwrapped-emoji;
+  };
+
+  rxvt-unicode-plugins = import ../applications/terminal-emulators/rxvt-unicode-plugins { inherit callPackage; };
+
+  rxvt-unicode-unwrapped = callPackage ../applications/terminal-emulators/rxvt-unicode { };
+
+  rxvt-unicode-unwrapped-emoji = rxvt-unicode-unwrapped.override {
+    emojiSupport = true;
+  };
+
+  sakura = callPackage ../applications/terminal-emulators/sakura { };
+
+  scriv = callPackage ../applications/version-management/scriv { };
+
+  st = callPackage ../applications/terminal-emulators/st {
+    conf = config.st.conf or null;
+    patches = config.st.patches or [];
+    extraLibs = config.st.extraLibs or [];
+  };
+  xst = callPackage ../applications/terminal-emulators/st/xst.nix { };
+  lukesmithxyz-st = callPackage ../applications/terminal-emulators/st/lukesmithxyz-st { };
+  mcaimi-st = callPackage ../applications/terminal-emulators/st/mcaimi-st.nix { };
+  siduck76-st = callPackage ../applications/terminal-emulators/st/siduck76-st.nix { };
+
+  stupidterm = callPackage ../applications/terminal-emulators/stupidterm {
+    gtk = gtk3;
+  };
+
+  terminator = callPackage ../applications/terminal-emulators/terminator { };
+
+  termite = callPackage ../applications/terminal-emulators/termite/wrapper.nix {
+    termite = termite-unwrapped;
+  };
+  termite-unwrapped = callPackage ../applications/terminal-emulators/termite { };
+
+  termonad = callPackage ../applications/terminal-emulators/termonad { };
+
+  tilix = callPackage ../applications/terminal-emulators/tilix { };
+
+  tym = callPackage ../applications/terminal-emulators/tym { };
+
+  wayst = callPackage ../applications/terminal-emulators/wayst { };
+
+  wezterm = darwin.apple_sdk_11_0.callPackage ../applications/terminal-emulators/wezterm {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa CoreGraphics Foundation UserNotifications System;
+  };
+
+  x3270 = callPackage ../applications/terminal-emulators/x3270 { };
+
+  xterm = callPackage ../applications/terminal-emulators/xterm { };
+
+  xtermcontrol = callPackage ../applications/terminal-emulators/xtermcontrol { };
+
+  yaft = callPackage ../applications/terminal-emulators/yaft { };
+
+  writefreely = callPackage ../applications/misc/writefreely { };
+
+  iqueue = callPackage ../development/libraries/iqueue { };
+
+  lifecycled = callPackage ../tools/misc/lifecycled { };
+
+  lil-pwny = callPackage ../tools/security/lil-pwny { };
+
+  lilo = callPackage ../tools/misc/lilo { };
+
+  logseq = callPackage ../applications/misc/logseq { };
+
+  natls = callPackage ../tools/misc/natls { };
+
+  notion-app-enhanced = callPackage ../applications/office/notion-app-enhanced { };
+
+  pikchr = callPackage ../tools/graphics/pikchr { };
+
+  poop = callPackage ../tools/misc/poop { };
+
+  popl = callPackage ../development/libraries/popl { };
+
+  popsicle = callPackage ../tools/misc/popsicle { };
+
+  terminal-colors = callPackage ../applications/misc/terminal-colors { };
+
+  termsyn = callPackage ../data/fonts/termsyn { };
+
+  tvnamer = callPackage ../tools/misc/tvnamer { };
+
+  twine = with python3Packages; toPythonApplication twine;
+
+  abracadabra = qt6Packages.callPackage ../applications/radio/abracadabra { };
+
+  accelergy = callPackage ../applications/science/computer-architecture/accelergy { };
+
+  aldo = callPackage ../applications/radio/aldo { };
+
+  alglib = callPackage ../development/libraries/alglib { };
+
+  almanah = callPackage ../applications/misc/almanah { };
+
+  alpine-make-vm-image = callPackage ../tools/virtualization/alpine-make-vm-image { };
+
+  amazon-ec2-utils = callPackage ../tools/admin/amazon-ec2-utils { };
+
+  amazon-ecs-cli = callPackage ../tools/virtualization/amazon-ecs-cli { };
+
+  amazon-qldb-shell = callPackage ../development/tools/amazon-qldb-shell {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  amber = callPackage ../tools/text/amber {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  amber-secret = callPackage ../tools/security/amber {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  amberol = callPackage ../applications/audio/amberol { };
+
+  inherit (callPackages ../development/tools/ammonite {})
+    ammonite_2_12
+    ammonite_2_13;
+  ammonite = if scala == scala_2_12 then ammonite_2_12 else ammonite_2_13;
+
+  amp = callPackage ../applications/editors/amp { };
+
+  ams = callPackage ../applications/audio/ams { };
+
+  amtterm = callPackage ../tools/system/amtterm { };
+
+  analog = callPackage ../tools/admin/analog { };
+
+  android-backup-extractor = callPackage ../tools/backup/android-backup-extractor { };
+
+  android-tools = lowPrio (darwin.apple_sdk_11_0.callPackage ../tools/misc/android-tools { });
+
+  anew = callPackage ../tools/text/anew { };
+
+  anewer = callPackage ../tools/text/anewer { };
+
+  angle-grinder = callPackage ../tools/text/angle-grinder { };
+
+  ansifilter = callPackage ../tools/text/ansifilter { };
+
+  antora = callPackage ../development/tools/documentation/antora { };
+
+  apfs-fuse = callPackage ../tools/filesystems/apfs-fuse { };
+
+  apfsprogs = callPackage ../tools/filesystems/apfsprogs { };
+
+  api-linter = callPackage ../development/tools/api-linter { };
+
+  apk-tools = callPackage ../tools/package-management/apk-tools {
+    lua = lua5_3;
+  };
+
+  apkid = callPackage ../development/tools/apkid { };
+
+  apkleaks = callPackage ../tools/security/apkleaks { };
+
+  apksigcopier = callPackage ../development/tools/apksigcopier { };
+
+  apksigner = callPackage ../development/tools/apksigner { };
+
+  apktool = callPackage ../development/tools/apktool { };
+
+  appimage-run = callPackage ../tools/package-management/appimage-run { };
+  appimage-run-tests = callPackage ../tools/package-management/appimage-run/test.nix {
+    appimage-run = appimage-run.override {
+      appimage-run-tests = null; /* break boostrap cycle for passthru.tests */
+    };
+  };
+
+  appimagekit = callPackage ../tools/package-management/appimagekit { };
+
+  apt-cacher-ng = callPackage ../servers/http/apt-cacher-ng { };
+
+  aptly = callPackage ../tools/misc/aptly { };
+
+  ArchiSteamFarm = callPackage ../applications/misc/ArchiSteamFarm { };
+
+  archivebox = callPackage ../applications/misc/archivebox { };
+
+  archivemount = callPackage ../tools/filesystems/archivemount { };
+
+  archivy = callPackage ../applications/misc/archivy { };
+
+  arandr = callPackage ../tools/X11/arandr { };
+
+  arangodb = callPackage ../servers/nosql/arangodb { };
+
+  arcanist = callPackage ../development/tools/misc/arcanist { php = php81; };
+
+  arduino = arduino-core.override { withGui = true; };
+
+  arduino-ci = callPackage ../development/embedded/arduino/arduino-ci { };
+
+  arduino-cli = callPackage ../development/embedded/arduino/arduino-cli { };
+
+  arduino-core = callPackage ../development/embedded/arduino/arduino-core/chrootenv.nix { };
+  arduino-core-unwrapped = callPackage ../development/embedded/arduino/arduino-core { };
+
+  arduino-language-server = callPackage ../development/embedded/arduino/arduino-language-server { };
+
+  arduino-mk = callPackage ../development/embedded/arduino/arduino-mk { };
+
+  arduinoOTA = callPackage ../development/embedded/arduino/arduinoOTA { };
+
+  apio = python3Packages.callPackage ../development/embedded/fpga/apio { };
+
+  apitrace = libsForQt5.callPackage ../applications/graphics/apitrace { };
+
+  arguments = callPackage ../development/libraries/arguments { };
+
+  argus = callPackage ../tools/networking/argus { };
+
+  argus-clients = callPackage ../tools/networking/argus-clients { };
+
+  argyllcms = callPackage ../tools/graphics/argyllcms { };
+
+  arj = callPackage ../tools/archivers/arj {
+    stdenv = gccStdenv;
+  };
+
+  arp-scan = callPackage ../tools/misc/arp-scan { };
+
+  inherit (callPackages ../data/fonts/arphic {})
+    arphic-ukai arphic-uming;
+
+  artyFX = callPackage ../applications/audio/artyFX { };
+
+  oggvideotools = callPackage ../tools/misc/oggvideotools { };
+
+  owl-lisp = callPackage ../development/compilers/owl-lisp { };
+
+  ascii = callPackage ../tools/text/ascii { };
+
+  asciinema = callPackage ../tools/misc/asciinema { };
+
+  asciinema-agg = callPackage ../tools/misc/asciinema-agg {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  asciinema-scenario = callPackage ../tools/misc/asciinema-scenario { };
+
+  asciiquarium = callPackage ../applications/misc/asciiquarium { };
+
+  ashuffle = callPackage ../applications/audio/ashuffle { };
+
+  ashpd-demo = callPackage ../development/tools/ashpd-demo { };
+
+  astc-encoder = callPackage ../tools/graphics/astc-encoder { };
+
+  asymptote = libsForQt5.callPackage ../tools/graphics/asymptote { };
+
+  async = callPackage ../development/tools/async { };
+
+  async-profiler = callPackage ../development/tools/async-profiler { };
+
+  atheme = callPackage ../servers/irc/atheme { };
+
+  atinout = callPackage ../tools/networking/atinout { };
+
+  atomicparsley = callPackage ../tools/video/atomicparsley {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  audiowaveform = callPackage ../tools/audio/audiowaveform { };
+
+  authenticator = callPackage ../applications/misc/authenticator { };
+
+  authelia = callPackage ../servers/authelia { };
+
+  autoflake = with python3.pkgs; toPythonApplication autoflake;
+
+  autospotting = callPackage ../applications/misc/autospotting { };
+
+  autosuspend = callPackage ../os-specific/linux/autosuspend { };
+
+  avfs = callPackage ../tools/filesystems/avfs { };
+
+  aliyun-cli = callPackage ../tools/admin/aliyun-cli { };
+
+  aws-encryption-sdk-cli = callPackage ../tools/admin/aws-encryption-sdk-cli { };
+
+  aws-iam-authenticator = callPackage ../tools/security/aws-iam-authenticator { };
+
+  awscli = callPackage ../tools/admin/awscli { };
+
+  awscli2 = callPackage ../tools/admin/awscli2 { };
+
+  okta-aws-cli = callPackage ../tools/admin/okta-aws-cli { };
+
+  awsebcli = callPackage ../tools/virtualization/awsebcli { };
+
+  awslimitchecker = callPackage ../tools/admin/awslimitchecker { };
+
+  awslogs = callPackage ../tools/admin/awslogs { };
+
+  awsume = python3Packages.callPackage ../tools/admin/awsume { };
+
+  aws-assume-role = callPackage ../tools/admin/aws-assume-role { };
+
+  aws-lambda-rie = callPackage ../tools/admin/aws-lambda-runtime-interface-emulator { };
+
+  aws-env = callPackage ../tools/admin/aws-env { };
+
+  aws-google-auth = python3Packages.callPackage ../tools/admin/aws-google-auth { };
+
+  aws-mfa = python3Packages.callPackage ../tools/admin/aws-mfa { };
+
+  aws-nuke = callPackage ../tools/admin/aws-nuke { };
+
+  aws-rotate-key = callPackage ../tools/admin/aws-rotate-key { };
+
+  aws-sam-cli = callPackage ../development/tools/aws-sam-cli { };
+
+  aws-sso-cli = callPackage ../tools/admin/aws-sso-cli { };
+
+  aws-sso-creds = callPackage ../tools/admin/aws-sso-creds { };
+
+  aws-vault = callPackage ../tools/admin/aws-vault { };
+
+  aws-workspaces = callPackage ../applications/networking/remote/aws-workspaces { };
+
+  iamy = callPackage ../tools/admin/iamy { };
+
+  iam-policy-json-to-terraform = callPackage ../tools/misc/iam-policy-json-to-terraform { };
+
+  azeret-mono = callPackage ../data/fonts/azeret-mono { };
+
+  azure-cli = callPackage ../tools/admin/azure-cli { };
+
+  azure-functions-core-tools = callPackage ../development/tools/azure-functions-core-tools { };
+
+  azure-static-sites-client = callPackage ../development/tools/azure-static-sites-client { };
+
+  azure-storage-azcopy = callPackage ../development/tools/azcopy { };
+
+  bark = callPackage ../tools/audio/bark { };
+
+  bashblog = callPackage ../tools/text/bashblog { };
+
+  berglas = callPackage ../tools/admin/berglas { };
+
+  betterdiscordctl = callPackage ../tools/misc/betterdiscordctl { };
+
+  betterdiscord-installer = callPackage ../tools/misc/betterdiscord-installer { };
+
+  binocle = callPackage ../applications/misc/binocle {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreFoundation CoreGraphics CoreVideo Foundation Metal QuartzCore;
+  };
+
+  bitwise = callPackage ../tools/misc/bitwise { };
+
+  blanket = callPackage ../applications/audio/blanket { };
+
+  blisp = darwin.apple_sdk_11_0.callPackage ../development/embedded/blisp {
+    inherit (darwin.apple_sdk_11_0.frameworks) IOKit;
+  };
+
+  brakeman = callPackage ../development/tools/analysis/brakeman { };
+
+  brewtarget = libsForQt5.callPackage ../applications/misc/brewtarget { } ;
+
+  bootspec = callPackage ../tools/misc/bootspec { };
+
+  # Derivation's result is not used by nixpkgs. Useful for validation for
+  # regressions of bootstrapTools on hydra and on ofborg. Example:
+  #     pkgsCross.aarch64-multiplatform.freshBootstrapTools.build
+  freshBootstrapTools = if stdenv.hostPlatform.isDarwin then
+    callPackage ../stdenv/darwin/make-bootstrap-tools.nix {
+      localSystem = stdenv.buildPlatform;
+      crossSystem =
+        if stdenv.buildPlatform == stdenv.hostPlatform then null else stdenv.hostPlatform;
+    }
+  else if stdenv.hostPlatform.isLinux then
+    callPackage ../stdenv/linux/make-bootstrap-tools.nix {}
+  else throw "freshBootstrapTools: unknown hostPlatform ${stdenv.hostPlatform.config}";
+
+  boxes = callPackage ../tools/text/boxes { };
+
+  boxxy = callPackage ../tools/misc/boxxy { };
+
+  boundary = callPackage ../tools/networking/boundary { };
+
+  chamber = callPackage ../tools/admin/chamber {  };
+
+  chaos = callPackage ../tools/networking/chaos {  };
+
+  charm = callPackage ../applications/misc/charm { };
+
+  chars = callPackage ../tools/text/chars {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  checkip = callPackage ../tools/networking/checkip { };
+
+  crystfel = callPackage ../applications/science/physics/crystfel { };
+
+  crystfel-headless = callPackage ../applications/science/physics/crystfel { withGui = false; };
+
+  cyberchef = callPackage ../tools/misc/cyberchef { };
+
+  cw = callPackage ../tools/admin/cw { };
+
+  ec2-api-tools = callPackage ../tools/virtualization/ec2-api-tools { };
+
+  ec2-ami-tools = callPackage ../tools/virtualization/ec2-ami-tools { };
+
+  ec2-metadata-mock = callPackage ../development/tools/ec2-metadata-mock { };
+
+  exoscale-cli = callPackage ../tools/admin/exoscale-cli { };
+
+  altermime = callPackage ../tools/networking/altermime { };
+
+  alttab = callPackage ../tools/X11/alttab { };
+
+  amule = callPackage ../tools/networking/p2p/amule { };
+
+  amule-daemon = amule.override {
+    monolithic = false;
+    enableDaemon = true;
+  };
+
+  amule-gui = amule.override {
+    monolithic = false;
+    client = true;
+  };
+
+  amule-web = amule.override {
+    monolithic = false;
+    httpServer = true;
+  };
+
+  antennas = callPackage ../servers/antennas { };
+
+  apg = callPackage ../tools/security/apg { };
+
+  apt-dater = callPackage ../tools/package-management/apt-dater {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  asusctl = callPackage ../applications/system/asusctl { };
+
+  autorevision = callPackage ../tools/misc/autorevision { };
+
+  automirror = callPackage ../tools/misc/automirror { };
+
+  barman = callPackage ../tools/misc/barman { };
+
+  bartib = callPackage ../tools/misc/bartib { };
+
+  base16-universal-manager = callPackage ../applications/misc/base16-universal-manager { };
+
+  base16384 = callPackage ../tools/text/base16384 { };
+
+  bashate = python3Packages.callPackage ../development/tools/bashate { };
+
+  bash-my-aws = callPackage ../tools/admin/bash-my-aws { };
+
+  bashcards = callPackage ../tools/misc/bashcards { };
+
+  bazarr = callPackage ../servers/bazarr { };
+
+  bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { };
+
+  bisq-desktop = callPackage ../applications/blockchains/bisq-desktop {
+    openjdk11 = openjdk11.override { enableJavaFX = true; };
+  };
+
+  bic = callPackage ../development/interpreters/bic { };
+
+  biscuit-cli = callPackage ../tools/security/biscuit-cli { };
+
+  bitwarden = callPackage ../tools/security/bitwarden { };
+
+  bitwarden-cli = callPackage ../tools/security/bitwarden/cli.nix { };
+
+  bitwarden-menu = python3Packages.callPackage ../applications/misc/bitwarden-menu { };
+
+  inherit (nodePackages) concurrently;
+
+  bklk = callPackage ../applications/misc/bklk { };
+
+  bkt = callPackage ../tools/misc/bkt {  };
+
+  bkyml = callPackage ../tools/misc/bkyml { };
+
+  blackmagic-desktop-video = callPackage ../tools/video/blackmagic-desktop-video { };
+
+  blockbench-electron = callPackage ../applications/graphics/blockbench-electron { };
+
+  blocksat-cli = with python3Packages; toPythonApplication blocksat-cli;
+
+  bmap-tools = callPackage ../tools/misc/bmap-tools { };
+
+  bolliedelayxt-lv2 = callPackage ../applications/audio/bolliedelayxt.lv2 { };
+
+  bonnmotion = callPackage ../development/tools/misc/bonnmotion { };
+
+  bonnie = callPackage ../tools/filesystems/bonnie { };
+
+  boron = callPackage ../development/interpreters/boron { };
+
+  botamusique = callPackage ../tools/audio/botamusique { };
+
+  boulder = callPackage ../tools/admin/boulder { };
+
+  btrfs-assistant = libsForQt5.callPackage ../tools/misc/btrfs-assistant { };
+
+  btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
+
+  bucklespring = bucklespring-x11;
+  bucklespring-libinput = callPackage ../applications/audio/bucklespring { };
+  bucklespring-x11 = callPackage ../applications/audio/bucklespring { legacy = true; };
+
+  inherit (python3.pkgs.callPackage ../development/tools/continuous-integration/buildbot {})
+    buildbot buildbot-ui buildbot-full buildbot-plugins buildbot-worker;
+
+  bunyan-rs = callPackage ../development/tools/bunyan-rs { };
+
+  calcure = callPackage ../applications/misc/calcure { };
+
+  callaudiod = callPackage ../applications/audio/callaudiod { };
+
+  castopod = callPackage ../applications/audio/castopod { };
+
+  calls = callPackage ../applications/networking/calls { };
+
+  castnow = callPackage ../tools/networking/castnow { };
+
+  castty = callPackage ../tools/misc/castty { };
+
+  certigo = callPackage ../tools/admin/certigo { };
+
+  certipy = with python3Packages; toPythonApplication certipy-ad;
+
+  catcli = python3Packages.callPackage ../tools/filesystems/catcli { };
+
+  changelogger = callPackage ../tools/misc/changelogger { };
+
+  chezmoi = callPackage ../tools/misc/chezmoi { };
+
+  chipsec = callPackage ../tools/security/chipsec {
+    kernel = null;
+    withDriver = false;
+  };
+
+  chroma = callPackage ../tools/text/chroma { };
+
+  clair = callPackage ../tools/admin/clair { };
+
+  clairvoyance = callPackage ../tools/security/clairvoyance { };
+
+  cloudfox = callPackage ../tools/security/cloudfox { };
+
+  cloudhunter = callPackage ../tools/security/cloudhunter { };
+
+  cloudsmith-cli = callPackage ../development/tools/cloudsmith-cli { };
+
+  codeql = callPackage ../development/tools/analysis/codeql { };
+
+  fedora-backgrounds = callPackage ../data/misc/fedora-backgrounds { };
+
+  ccextractor = callPackage ../applications/video/ccextractor { };
+
+  cconv = callPackage ../tools/text/cconv { };
+
+  go-check = callPackage ../development/tools/check { };
+
+  go-cve-search = callPackage ../tools/security/go-cve-search { };
+
+  go-dork = callPackage ../tools/security/go-dork { };
+
+  chkcrontab = callPackage ../tools/admin/chkcrontab { };
+
+  claws = callPackage ../tools/misc/claws { };
+
+  cloud-custodian = python3Packages.callPackage ../tools/networking/cloud-custodian  { };
+
+  coconut = with python3Packages; toPythonApplication coconut;
+
+  cod = callPackage ../tools/misc/cod { };
+
+  codespell = callPackage ../development/tools/codespell { };
+
+  codux = callPackage ../applications/editors/codux { };
+
+  conjure = callPackage ../applications/graphics/conjure { };
+
+  coolreader = libsForQt5.callPackage ../applications/misc/coolreader { };
+
+  corsair = with python3Packages; toPythonApplication corsair-scan;
+
+  cosign = callPackage ../tools/security/cosign {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  coze = callPackage ../tools/security/coze { } ;
+
+  cozy = callPackage ../applications/audio/cozy { };
+
+  cpptoml = callPackage ../development/libraries/cpptoml { };
+
+  cpuid = callPackage ../os-specific/linux/cpuid { };
+
+  msr = callPackage ../os-specific/linux/msr { };
+
+  ctre = callPackage ../development/libraries/ctre { };
+
+  ctrtool = callPackage ../tools/archivers/ctrtool { };
+
+  crowbar = callPackage ../tools/security/crowbar { };
+
+  crumbs = callPackage ../applications/misc/crumbs { };
+
+  crc32c = callPackage ../development/libraries/crc32c { };
+
+  crcpp = callPackage ../development/libraries/crcpp { };
+
+  cudd = callPackage ../development/libraries/cudd { };
+
+  cue = callPackage ../development/tools/cue { };
+
+  writeCueValidator = callPackage ../development/tools/cue/validator.nix { };
+
+  cuelsp = callPackage ../development/tools/cuelsp { };
+
+  cyclonedds = callPackage ../development/libraries/cyclonedds { };
+
+  cyclone-scheme = callPackage ../development/interpreters/cyclone { };
+
+  cyclonedx-gomod = callPackage ../tools/security/cyclonedx-gomod { };
+
+  cyclonedx-python = callPackage ../tools/misc/cyclonedx-python { };
+
+  dcap = callPackage ../tools/networking/dcap { };
+
+  deltachat-cursed = callPackage ../applications/networking/instant-messengers/deltachat-cursed { };
+
+  delayarchitect = callPackage ../applications/audio/delayarchitect { };
+
+  dell-command-configure = callPackage ../tools/system/dell-command-configure { };
+
+  deltachat-desktop = callPackage ../applications/networking/instant-messengers/deltachat-desktop {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  deskew = callPackage ../applications/graphics/deskew { };
+
+  detect-secrets = with python3Packages; toPythonApplication detect-secrets;
+
+  deterministic-uname = callPackage ../build-support/deterministic-uname { };
+
+  dfmt = callPackage ../tools/text/dfmt { };
+
+  diopser = callPackage ../applications/audio/diopser { };
+
+  diskonaut = callPackage ../tools/misc/diskonaut { };
+
+  diskus = callPackage ../tools/misc/diskus {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  distrobox = callPackage ../applications/virtualization/distrobox { };
+
+  djmount = callPackage ../tools/filesystems/djmount { };
+
+  dgsh = callPackage ../shells/dgsh { };
+
+  dkimpy = with python3Packages; toPythonApplication dkimpy;
+
+  dl-librescore = callPackage ../tools/audio/dl-librescore { };
+
+  dontgo403 = callPackage ../tools/security/dontgo403 { };
+
+  dpt-rp1-py = callPackage ../tools/misc/dpt-rp1-py { };
+
+  dooit = callPackage ../tools/misc/dooit { };
+
+  doona = callPackage ../tools/security/doona { };
+
+  dotter = callPackage ../tools/misc/dotter {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  droidcam = callPackage ../applications/video/droidcam { };
+
+  droidmote = callPackage ../tools/inputmethods/droidmote { };
+
+  eartag = callPackage ../applications/audio/eartag { };
+
+  ecdsautils = callPackage ../tools/security/ecdsautils { };
+
+  echidna = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage (../tools/security/echidna) { });
+
+  sedutil = callPackage ../tools/security/sedutil { };
+
+  emplace = callPackage ../tools/package-management/emplace { };
+
+  enchive = callPackage ../tools/security/enchive { };
+
+  enjarify = callPackage ../tools/misc/enjarify { };
+
+  enpass = callPackage ../tools/security/enpass { };
+
+  esbuild = callPackage ../development/tools/esbuild { };
+
+  esbuild_netlify = callPackage ../development/tools/esbuild/netlify.nix { };
+
+  essentia-extractor = callPackage ../tools/audio/essentia-extractor { };
+
+  esh = callPackage ../tools/text/esh { };
+
+  ezstream = callPackage ../tools/audio/ezstream { };
+
+  libfx2 = with python3Packages; toPythonApplication fx2;
+
+  fastmod = callPackage ../tools/text/fastmod {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  fedifetcher = callPackage ../tools/misc/fedifetcher { };
+
+  flavours = callPackage ../applications/misc/flavours { };
+
+  flirc = libsForQt5.callPackage ../applications/video/flirc {
+    readline = readline63;
+  };
+
+  flood = callPackage ../applications/networking/p2p/flood { };
+
+  font-config-info = callPackage ../tools/misc/font-config-info { };
+
+  foxdot = with python3Packages; toPythonApplication foxdot;
+
+  fspy = callPackage ../applications/misc/fspy { };
+
+  fluffychat = callPackage  ../applications/networking/instant-messengers/fluffychat { };
+
+  fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
+
+  gbl = callPackage ../tools/archivers/gbl {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  genann = callPackage ../development/libraries/genann { };
+
+  genpass = callPackage ../tools/security/genpass {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  genymotion = callPackage ../development/mobile/genymotion { };
+
+  galene = callPackage ../servers/web-apps/galene { };
+
+  galaxy-buds-client = callPackage ../applications/audio/galaxy-buds-client { };
+
+  gamecube-tools = callPackage ../development/tools/gamecube-tools { };
+
+  gammaray = qt6Packages.callPackage ../development/tools/gammaray { };
+
+  gams = callPackage ../tools/misc/gams (config.gams or {});
+
+  gem = callPackage ../applications/audio/pd-plugins/gem { };
+
+  github-changelog-generator = callPackage ../development/tools/github-changelog-generator { };
+
+  github-commenter = callPackage ../development/tools/github-commenter { };
+
+  github-copilot-intellij-agent = callPackage ../development/tools/github-copilot-intellij-agent { };
+
+  github-desktop = callPackage ../applications/version-management/github-desktop { };
+
+  github-to-sqlite = with python3Packages; toPythonApplication github-to-sqlite;
+
+  gistyc = with python3Packages; toPythonApplication gistyc;
+
+  gjs = callPackage ../development/libraries/gjs { };
+
+  gjo = callPackage ../tools/text/gjo { };
+
+  glances = python3Packages.callPackage ../applications/system/glances { };
+
+  glasgow = callPackage ../tools/misc/glasgow { };
+
+  glasstty-ttf = callPackage ../data/fonts/glasstty-ttf { };
+
+  glaxnimate = libsForQt5.callPackage ../applications/video/glaxnimate { };
+
+  gluesql = callPackage ../servers/sql/gluesql { };
+
+  gmid = callPackage ../servers/gemini/gmid { };
+
+  gmni = callPackage ../applications/networking/browsers/gmni { };
+
+  gmnisrv = callPackage ../servers/gemini/gmnisrv { };
+
+  gmnitohtml = callPackage ../applications/misc/gmnitohtml { };
+
+  go2tv = darwin.apple_sdk_11_0.callPackage ../applications/video/go2tv {
+    inherit (darwin.apple_sdk_11_0.frameworks) Carbon Cocoa Kernel UserNotifications;
+  };
+  go2tv-lite = go2tv.override { withGui = false; };
+
+  go2rtc = callPackage ../tools/video/go2rtc { };
+
+  goimapnotify = callPackage ../tools/networking/goimapnotify { };
+
+  gojsontoyaml = callPackage ../development/tools/gojsontoyaml { };
+
+  gomatrix = callPackage ../applications/misc/gomatrix { };
+
+  gomapenum = callPackage ../tools/security/gomapenum { };
+
+  gopacked = callPackage ../applications/misc/gopacked { };
+
+  goperf = callPackage ../development/tools/goperf { };
+
+  graphite-cli = nodePackages.graphite-cli;
+
+  gucci = callPackage ../tools/text/gucci { };
+
+  guglielmo = libsForQt5.callPackage ../applications/radio/guglielmo { };
+
+  grc = python3Packages.callPackage ../tools/misc/grc { };
+
+  green-pdfviewer = callPackage ../applications/misc/green-pdfviewer {
+    SDL = SDL_sixel;
+  };
+
+  gremlin-console = callPackage ../applications/misc/gremlin-console {
+    openjdk = openjdk11;
+  };
+
+  gremlin-server = callPackage ../applications/misc/gremlin-server {
+    openjdk = openjdk11;
+  };
+
+  grex = callPackage ../tools/misc/grex {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  gcsfuse = callPackage ../tools/filesystems/gcsfuse { };
+
+  glyr = callPackage ../tools/audio/glyr { };
+
+  gtklp = callPackage ../tools/misc/gtklp { };
+
+  google-amber = callPackage ../tools/graphics/amber {
+    inherit (darwin) cctools;
+  };
+
+  hakrawler = callPackage ../tools/security/hakrawler { };
+
+  harsh = callPackage ../applications/misc/harsh { };
+
+  harvid = callPackage ../tools/video/harvid { };
+
+  headset = callPackage ../applications/audio/headset { };
+
+  hilbish = callPackage ../shells/hilbish { };
+
+  hime = callPackage ../tools/inputmethods/hime { };
+
+  himitsu = callPackage ../tools/security/himitsu { };
+
+  himitsu-firefox = callPackage ../tools/security/himitsu-firefox { };
+
+  hinit = haskell.lib.compose.justStaticExecutables haskellPackages.hinit;
+
+  hostctl = callPackage ../tools/system/hostctl { };
+
+  hp2p = callPackage ../tools/networking/hp2p { };
+
+  hpe-ltfs = callPackage ../tools/backup/hpe-ltfs { };
+
+  http2tcp = callPackage ../tools/networking/http2tcp { };
+
+  httperf = callPackage ../tools/networking/httperf { };
+
+  hwi = with python3Packages; toPythonApplication hwi;
+
+  ili2c = callPackage ../tools/misc/ili2c { };
+
+  imagelol = callPackage ../tools/compression/imagelol { };
+
+  imageworsener = callPackage ../tools/graphics/imageworsener { };
+
+  imgpatchtools = callPackage ../development/mobile/imgpatchtools { };
+
+  imgcrypt = callPackage ../applications/virtualization/imgcrypt { };
+
+  ipgrep = callPackage ../tools/networking/ipgrep { };
+
+  ipp-usb = callPackage ../os-specific/linux/ipp-usb { };
+
+  itch = callPackage ../games/itch { };
+
+  itchiodl = callPackage ../games/itchiodl { };
+
+  itd = callPackage ../applications/misc/itd { };
+
+  kavita = callPackage ../servers/web-apps/kavita { };
+
+  keka = callPackage ../tools/compression/keka { };
+
+  kord = callPackage ../applications/misc/kord { };
+
+  lastpass-cli = callPackage ../tools/security/lastpass-cli { };
+
+  leetcode-cli = callPackage ../applications/misc/leetcode-cli { };
+
+  lesspass-cli = callPackage ../tools/security/lesspass-cli { };
+
+  livebook = callPackage ../servers/web-apps/livebook {
+    elixir = elixir_1_15;
+    beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_15; });
+  };
+
+  lsix = callPackage ../tools/graphics/lsix { };
+
+  mdr = callPackage ../tools/misc/mdr { };
+
+  mobilecoin-wallet = callPackage ../applications/misc/mobilecoin-wallet { };
+
+  mpdevil = callPackage ../applications/audio/mpdevil { };
+
+  pacparser = callPackage ../tools/networking/pacparser { };
+
+  pairdrop = callPackage ../applications/misc/pairdrop { };
+
+  opencbm = callPackage ../tools/misc/opencbm { };
+
+  parquet-tools = callPackage ../tools/misc/parquet-tools { };
+
+  pass = callPackage ../tools/security/pass { };
+
+  passage = callPackage ../tools/security/passage { };
+
+  passphrase2pgp = callPackage ../tools/security/passphrase2pgp { };
+
+  pass-nodmenu = callPackage ../tools/security/pass {
+    dmenuSupport = false;
+    pass = pass-nodmenu;
+  };
+
+  pass-wayland = callPackage ../tools/security/pass {
+    waylandSupport = true;
+    pass = pass-wayland;
+  };
+
+  passExtensions = recurseIntoAttrs pass.extensions;
+
+  pbpctrl = callPackage ../applications/audio/pbpctrl { };
+
+  inherd-quake = callPackage ../applications/misc/inherd-quake {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  xjadeo = callPackage ../tools/video/xjadeo { };
+
+  asc-key-to-qr-code-gif = callPackage ../tools/security/asc-key-to-qr-code-gif { };
+
+  go-audit = callPackage ../tools/system/go-audit { };
+
+  gopass = callPackage ../tools/security/gopass { };
+
+  gopass-hibp = callPackage ../tools/security/gopass/hibp.nix { };
+
+  gopass-jsonapi = callPackage ../tools/security/gopass/jsonapi.nix { };
+
+  git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix { };
+
+  gopass-summon-provider = callPackage ../tools/security/gopass/summon.nix { };
+
+  gosh = callPackage ../tools/security/gosh { };
+
+  gospider = callPackage ../tools/security/gospider { };
+
+  browserpass = callPackage ../tools/security/browserpass { };
+
+  passff-host = callPackage ../tools/security/passff-host { };
+
+  oracle-instantclient = callPackage ../development/libraries/oracle-instantclient { };
+
+  goku = callPackage ../os-specific/darwin/goku { };
+
+  grandperspective = callPackage ../os-specific/darwin/grandperspective { };
+
+  hexfiend = callPackage ../os-specific/darwin/hexfiend { };
+
+  grb = callPackage ../applications/misc/grb { };
+
+  kerf   = kerf_1; /* kerf2 is WIP */
+  kerf_1 = callPackage ../development/interpreters/kerf {
+    stdenv = clangStdenv;
+    inherit (darwin.apple_sdk.frameworks)
+      Accelerate CoreGraphics CoreVideo
+    ;
+  };
+
+  kwakd = callPackage ../servers/kwakd { };
+
+  kwm = callPackage ../os-specific/darwin/kwm { };
+
+  khd = callPackage ../os-specific/darwin/khd {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
+  kjv = callPackage ../applications/misc/kjv { };
+
+  lukesmithxyz-bible-kjv = callPackage ../applications/misc/kjv/lukesmithxyz-kjv.nix { };
+
+  luigi = callPackage ../applications/networking/cluster/luigi { };
+
+  m-cli = callPackage ../os-specific/darwin/m-cli { };
+
+  pebble = callPackage ../tools/admin/pebble { };
+
+  play-with-mpv = callPackage ../tools/video/play-with-mpv { };
+
+  plausible = callPackage ../servers/web-apps/plausible {
+    elixir = elixir_1_14;
+    beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_14; });
+  };
+
+  pam-reattach = callPackage ../os-specific/darwin/pam-reattach { };
+
+  reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace { };
+
+  skhd = darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/skhd {
+    inherit (darwin.apple_sdk_11_0.frameworks) Carbon Cocoa;
+  };
+
+  qes = callPackage ../os-specific/darwin/qes {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  waydroid = callPackage ../os-specific/linux/waydroid { };
+
+  wgo = callPackage ../development/tools/wgo { };
+
+  wiiload = callPackage ../development/tools/wiiload { };
+
+  winhelpcgi = callPackage ../development/tools/winhelpcgi {
+    libpng = libpng12;
+  };
+
+  wiimms-iso-tools = callPackage ../tools/filesystems/wiimms-iso-tools { };
+
+  waypoint = callPackage ../applications/networking/cluster/waypoint { };
+
+  xc = callPackage ../development/tools/xc { };
+
+  ios-webkit-debug-proxy = callPackage ../development/mobile/ios-webkit-debug-proxy { };
+
+  xcodeenv = callPackage ../development/mobile/xcodeenv { };
+
+  xcodes = callPackage ../development/tools/xcodes { };
+
+  gomobile = callPackage ../development/mobile/gomobile { };
+
+  ssh-agents = callPackage ../tools/networking/ssh-agents { };
+
+  ssh-import-id = python3Packages.callPackage ../tools/admin/ssh-import-id { };
+
+  ssh-key-confirmer = callPackage ../tools/networking/ssh-key-confirmer { };
+
+  ssh-mitm = callPackage ../tools/security/ssh-mitm { };
+
+  sshchecker = callPackage ../tools/security/sshchecker { };
+
+  sshs = callPackage ../development/tools/sshs { };
+
+  supergfxctl = callPackage ../applications/system/supergfxctl { };
+
+  titanium = callPackage ../development/mobile/titanium { };
+
+  titanium-alloy = callPackage ../development/mobile/titanium-alloy { };
+
+  titaniumenv = callPackage ../development/mobile/titaniumenv { };
+
+  abootimg = callPackage ../development/mobile/abootimg { };
+
+  adbfs-rootless = callPackage ../development/mobile/adbfs-rootless { };
+
+  adb-sync = callPackage ../development/mobile/adb-sync {
+    inherit (androidenv.androidPkgs_9_0) platform-tools;
+  };
+
+  amoco = callPackage ../tools/security/amoco { };
+
+  anbox = callPackage ../os-specific/linux/anbox {
+    protobuf = protobuf_21;
+  };
+
+  androidenv = callPackage ../development/mobile/androidenv { };
+
+  androidndkPkgs = androidndkPkgs_21;
+  androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21";
+  androidndkPkgs_23b = (callPackage ../development/androidndk-pkgs {})."23b";
+  androidndkPkgs_24 = (callPackage ../development/androidndk-pkgs {})."24";
+
+  androidsdk_9_0 = androidenv.androidPkgs_9_0.androidsdk;
+
+  webos = recurseIntoAttrs {
+    cmake-modules = callPackage ../development/mobile/webos/cmake-modules.nix { };
+
+    novacom = callPackage ../development/mobile/webos/novacom.nix { };
+    novacomd = callPackage ../development/mobile/webos/novacomd.nix { };
+  };
+
+  anevicon = callPackage ../tools/networking/anevicon {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  aoc-cli = callPackage ../tools/misc/aoc-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  apprise = with python3Packages; toPythonApplication apprise;
+
+  aptdec = callPackage ../development/libraries/aptdec { };
+
+  argc = callPackage ../development/tools/argc { };
+
+  aria2 = callPackage ../tools/networking/aria2 {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  aria = aria2;
+
+  as-tree = callPackage ../tools/misc/as-tree { };
+
+  asmfmt = callPackage ../development/tools/asmfmt { };
+
+  asmrepl = callPackage ../development/interpreters/asmrepl { };
+
+  aspcud = callPackage ../tools/misc/aspcud { };
+
+  at = callPackage ../tools/system/at { };
+
+  atftp = callPackage ../tools/networking/atftp { };
+
+  atlas = callPackage ../development/tools/database/atlas { };
+
+  authoscope = callPackage ../tools/security/authoscope {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  autogen = callPackage ../development/tools/misc/autogen { };
+
+  autojump = callPackage ../tools/misc/autojump { };
+
+  automysqlbackup = callPackage ../tools/backup/automysqlbackup { };
+
+  autorandr = callPackage ../tools/misc/autorandr { };
+
+  avahi = callPackage ../development/libraries/avahi (config.avahi or {});
+
+  avahi-compat = callPackage ../development/libraries/avahi ((config.avahi or {}) // {
+    withLibdnssdCompat = true;
+  });
+
+  avro-c = callPackage ../development/libraries/avro-c { };
+
+  avro-cpp = callPackage ../development/libraries/avro-c++ { };
+
+  aws_mturk_clt = callPackage ../tools/misc/aws-mturk-clt { };
+
+  awsls = callPackage ../tools/admin/awsls { };
+
+  awsrm = callPackage ../tools/admin/awsrm { };
+
+  awstats = callPackage ../tools/system/awstats { };
+
+  awsweeper = callPackage ../tools/admin/awsweeper { };
+
+  axel = callPackage ../tools/networking/axel {
+    libssl = openssl;
+  };
+
+  b3sum = callPackage ../tools/security/b3sum { };
+
+  backblaze-b2 = callPackage ../development/tools/backblaze-b2 { };
+
+  bandwhich = callPackage ../tools/networking/bandwhich {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  badrobot = callPackage ../tools/security/badrobot { };
+
+  bao = callPackage ../tools/security/bao { };
+
+  bar = callPackage ../tools/system/bar { };
+
+  base16-builder = callPackage ../misc/base16-builder { };
+
+  basex = callPackage ../tools/text/xml/basex { };
+
+  bashplotlib = callPackage ../tools/misc/bashplotlib { };
+
+  babeld = callPackage ../tools/networking/babeld { };
+
+  babelfish = callPackage ../shells/fish/babelfish.nix { };
+
+  baboossh = callPackage ../tools/security/baboossh { };
+
+  badchars = python3Packages.callPackage ../tools/security/badchars { };
+
+  badvpn = callPackage ../tools/networking/badvpn { };
+
+  barcode = callPackage ../tools/graphics/barcode { };
+
+  bashmount = callPackage ../tools/filesystems/bashmount { };
+
+  bat-extras = recurseIntoAttrs (callPackages ../tools/misc/bat-extras { });
+
+  beats = callPackage ../tools/misc/beats { };
+
+  BeatSaberModManager = callPackage ../games/BeatSaberModManager/default.nix { };
+
+  beauty-line-icon-theme = callPackage ../data/icons/beauty-line-icon-theme {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  beautysh = with python3.pkgs; toPythonApplication beautysh;
+
+  bc = callPackage ../tools/misc/bc { };
+
+  gavin-bc = callPackage ../tools/misc/gavin-bc { };
+
+  bdf2psf = callPackage ../tools/misc/bdf2psf { };
+
+  bdf2sfd = callPackage ../tools/misc/bdf2sfd { };
+
+  bdfresize = callPackage ../tools/misc/bdfresize { };
+
+  bcache-tools = callPackage ../tools/filesystems/bcache-tools { };
+
+  bchunk = callPackage ../tools/cd-dvd/bchunk { };
+
+  inherit (callPackages ../misc/logging/beats/7.x.nix { })
+    auditbeat7
+    filebeat7
+    heartbeat7
+    metricbeat7
+    packetbeat7;
+
+  auditbeat = auditbeat7;
+  filebeat = filebeat7;
+  heartbeat = heartbeat7;
+  metricbeat = metricbeat7;
+  packetbeat = packetbeat7;
+
+  bfr = callPackage ../tools/misc/bfr { };
+
+  bfscripts = callPackage ../tools/misc/bfscripts { };
+
+  bibtool = callPackage ../tools/misc/bibtool { };
+
+  bibutils = callPackage ../tools/misc/bibutils { };
+
+  bibtex2html = callPackage ../tools/misc/bibtex2html { };
+
+  bicon = callPackage ../applications/misc/bicon { };
+
+  biliass = with python3.pkgs; toPythonApplication biliass;
+
+  bilibili = callPackage ../applications/video/bilibili { };
+
+  bindfs = callPackage ../tools/filesystems/bindfs { };
+
+  binwalk = with python3Packages; toPythonApplication binwalk;
+
+  birdtray = libsForQt5.callPackage ../applications/misc/birdtray { };
+
+  blitz = callPackage ../development/libraries/blitz { };
+
+  blockbook = callPackage ../servers/blockbook { };
+
+  blockhash = callPackage ../tools/graphics/blockhash { };
+
+  bluemix-cli = callPackage ../tools/admin/bluemix-cli { };
+
+  bluewalker = callPackage ../tools/bluetooth/bluewalker { };
+
+  blur-effect = callPackage ../tools/graphics/blur-effect { };
+
+  bootiso = callPackage ../tools/cd-dvd/bootiso { };
+
+  butane = callPackage ../development/tools/butane { };
+
+  buttercup-desktop = callPackage ../tools/security/buttercup-desktop { };
+
+  charles = charles4;
+  inherit (callPackage ../applications/networking/charles {})
+    charles3
+    charles4
+  ;
+
+  libquotient = libsForQt5.callPackage ../development/libraries/libquotient { };
+
+  quaternion = libsForQt5.callPackage ../applications/networking/instant-messengers/quaternion { };
+
+  tensor = libsForQt5.callPackage ../applications/networking/instant-messengers/tensor { };
+
+  libtensorflow = python3.pkgs.tensorflow.libtensorflow;
+
+  libtorch-bin = callPackage ../development/libraries/science/math/libtorch/bin.nix {
+    inherit (config) cudaSupport;
+  };
+
+  tensorflow-lite = callPackage ../development/libraries/science/math/tensorflow-lite { };
+
+  tiny-cuda-nn = callPackage ../development/libraries/science/math/tiny-cuda-nn { };
+
+  tezos-rust-libs = callPackage ../development/libraries/tezos-rust-libs { };
+
+  behave = with python3Packages; toPythonApplication behave;
+
+  behdad-fonts = callPackage ../data/fonts/behdad-fonts { };
+
+  bfetch = callPackage ../tools/misc/bfetch { };
+
+  bless = callPackage ../applications/editors/bless { };
+
+  blink = darwin.apple_sdk_11_0.callPackage ../applications/emulators/blink { };
+
+  blink1-tool = callPackage ../tools/misc/blink1-tool { };
+
+  blis = callPackage ../development/libraries/science/math/blis { };
+
+  bliss = callPackage ../applications/science/math/bliss { };
+
+  blobfuse = callPackage ../tools/filesystems/blobfuse { };
+
+  blockdiag = with python3Packages; toPythonApplication blockdiag;
+
+  bluez-alsa = callPackage ../tools/bluetooth/bluez-alsa { };
+
+  bluez-tools = callPackage ../tools/bluetooth/bluez-tools { };
+
+  bmon = callPackage ../tools/misc/bmon { };
+
+  boca = callPackage ../development/libraries/boca { };
+
+  bubblewrap = callPackage ../tools/admin/bubblewrap { };
+
+  borgbackup = callPackage ../tools/backup/borgbackup { };
+
+  borgmatic = callPackage ../tools/backup/borgmatic { };
+
+  borg-sans-mono = callPackage ../data/fonts/borg-sans-mono { };
+
+  boringtun = callPackage ../tools/networking/boringtun { };
+
+  book-summary = callPackage ../tools/text/book-summary { };
+
+  bookstack = callPackage ../servers/web-apps/bookstack { };
+
+  boomerang = libsForQt5.callPackage ../development/tools/boomerang { };
+
+  boost-build = callPackage ../development/tools/boost-build { };
+
+  boot = callPackage ../development/tools/build-managers/boot { };
+
+  bowtie = callPackage ../applications/science/biology/bowtie { };
+
+  bowtie2 = callPackage ../applications/science/biology/bowtie2 { };
+
+  boxfs = callPackage ../tools/filesystems/boxfs { };
+
+  bozohttpd = callPackage ../servers/http/bozohttpd { };
+  bozohttpd-minimal = callPackage ../servers/http/bozohttpd { minimal = true; };
+
+  bpb = callPackage ../tools/security/bpb { inherit (darwin.apple_sdk.frameworks) Security; };
+
+  brasero-original = lowPrio (callPackage ../tools/cd-dvd/brasero { });
+
+  brasero = callPackage ../tools/cd-dvd/brasero/wrapper.nix { };
+
+  brigand = callPackage ../development/libraries/brigand { };
+
+  brltty = callPackage ../tools/misc/brltty { };
+
+  brook = callPackage ../tools/networking/brook {
+    # See https://hydra.nixos.org/build/239027853/nixlog/2.
+    buildGoModule = buildGo120Module;
+  };
+
+  broot = callPackage ../tools/misc/broot {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  bruteforce-luks = callPackage ../tools/security/bruteforce-luks { };
+
+  brutespray = callPackage ../tools/security/brutespray { };
+
+  breakpointHook = assert stdenv.buildPlatform.isLinux;
+    makeSetupHook {
+      name = "breakpoint-hook";
+    } ../build-support/setup-hooks/breakpoint-hook.sh;
+
+  btrfs-progs = callPackage ../tools/filesystems/btrfs-progs { };
+
+  btrfs-snap = callPackage ../tools/filesystems/btrfs-snap { };
+
+  ssdfs-utils = callPackage ../tools/filesystems/ssdfs-utils { };
+
+  btlejack = python3Packages.callPackage ../applications/radio/btlejack { };
+
+  btrbk = callPackage ../tools/backup/btrbk { };
+
+  buildpack = callPackage ../development/tools/buildpack { };
+
+  bonk = callPackage ../tools/misc/bonk { };
+
+  bottom-rs = callPackage ../tools/misc/bottom-rs { };
+
+  bsp-layout = callPackage ../tools/misc/bsp-layout { };
+
+  buildtorrent = callPackage ../tools/misc/buildtorrent { };
+
+  bundletool = callPackage ../development/tools/bundletool { };
+
+  bustle = haskellPackages.bustle;
+
+  bwm_ng = callPackage ../tools/networking/bwm-ng { };
+
+  bwbasic = callPackage ../development/interpreters/bwbasic { };
+
+  bws = callPackage ../tools/security/bws { };
+
+  byobu = callPackage ../tools/misc/byobu {
+    # Choices: [ tmux screen ];
+    textual-window-manager = tmux;
+  };
+
+  bsh = fetchurl {
+    url = "http://www.beanshell.org/bsh-2.0b5.jar";
+    hash = "sha256-YjIZlWOAc1SzvLWs6z3BNlAvAixrDvdDmHqD9m/uWlw=";
+  };
+
+  btfs = callPackage ../os-specific/linux/btfs { };
+
+  buildah = callPackage ../development/tools/buildah/wrapper.nix { };
+  buildah-unwrapped = callPackage ../development/tools/buildah { };
+
+  buildkit = callPackage ../development/tools/buildkit { };
+
+  bukubrow = callPackage ../tools/networking/bukubrow { };
+
+  burpsuite = callPackage ../tools/networking/burpsuite { };
+
+  bs-platform = callPackage ../development/compilers/bs-platform { };
+
+  ciano = callPackage ../applications/graphics/ciano {
+    inherit (pantheon) granite;
+    python = python3;
+    gtk = gtk3;
+  };
+
+  c3d = callPackage ../applications/graphics/c3d {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  cue2pops = callPackage ../tools/cd-dvd/cue2pops { };
+
+  cabal2nix-unwrapped = haskell.lib.compose.justStaticExecutables
+    (haskellPackages.generateOptparseApplicativeCompletions [ "cabal2nix" ] haskellPackages.cabal2nix);
+
+  cabal2nix = symlinkJoin {
+    inherit (cabal2nix-unwrapped) name meta;
+    nativeBuildInputs = [ buildPackages.makeWrapper ];
+    paths = [ cabal2nix-unwrapped ];
+    postBuild = ''
+      wrapProgram $out/bin/cabal2nix \
+        --prefix PATH ":" "${lib.makeBinPath [ nix nix-prefetch-scripts ]}"
+    '';
+  };
+
+  stack2nix = with haskell.lib; overrideCabal (justStaticExecutables haskellPackages.stack2nix) (_: {
+    executableToolDepends = [ makeWrapper ];
+    postInstall = ''
+      wrapProgram $out/bin/stack2nix \
+        --prefix PATH ":" "${git}/bin:${cabal-install}/bin"
+    '';
+  });
+
+  caddy = callPackage ../servers/caddy { };
+
+  xcaddy = callPackage ../servers/caddy/xcaddy { };
+
+  traefik = callPackage ../servers/traefik { };
+
+  traefik-certs-dumper = callPackage ../tools/misc/traefik-certs-dumper { };
+
+  caffeine = callPackage ../tools/misc/caffeine { };
+
+  calamares = libsForQt5.callPackage ../tools/misc/calamares {
+    python = python3;
+    boost = boost.override { enablePython = true; python = python3; };
+  };
+  calamares-nixos = lowPrio (calamares.override { nixos-extensions = true; });
+  calamares-nixos-extensions = callPackage ../tools/misc/calamares-nixos-extensions { };
+
+  calendar-cli = callPackage ../tools/networking/calendar-cli { };
+
+  cameradar = callPackage ../tools/security/cameradar { };
+
+  candle = libsForQt5.callPackage ../applications/misc/candle { };
+
+  capstone = callPackage ../development/libraries/capstone { };
+
+  keystone = callPackage ../development/libraries/keystone { };
+
+  casync = callPackage ../applications/networking/sync/casync {
+    sphinx = buildPackages.python3Packages.sphinx;
+  };
+
+  cataract          = callPackage ../applications/misc/cataract { };
+  cataract-unstable = callPackage ../applications/misc/cataract/unstable.nix { };
+
+  catch = callPackage ../development/libraries/catch { };
+
+  catch2 = callPackage ../development/libraries/catch2 { };
+
+  catch2_3 = callPackage ../development/libraries/catch2/3.nix { };
+
+  catdoc = callPackage ../tools/text/catdoc { };
+
+  catdocx = callPackage ../tools/text/catdocx { };
+
+  catclock = callPackage ../applications/misc/catclock { };
+
+  cardpeek = callPackage ../applications/misc/cardpeek { inherit (darwin.apple_sdk.frameworks) PCSC; };
+
+  cde = callPackage ../tools/package-management/cde { };
+
+  cdxgen = callPackage ../tools/security/cdxgen { };
+
+  ceres-solver = callPackage ../development/libraries/ceres-solver {
+    gflags = null; # only required for examples/tests
+  };
+
+  cbor-diag = callPackage ../development/tools/cbor-diag { };
+
+  cassowary = callPackage ../tools/networking/cassowary { };
+
+  croc = callPackage ../tools/networking/croc { };
+
+  cbftp = callPackage ../tools/networking/cbftp { };
+
+  cddl = callPackage ../development/tools/cddl { };
+
+  cedille = callPackage ../applications/science/logic/cedille
+                          { inherit (haskellPackages) alex happy Agda ghcWithPackages;
+                          };
+
+  cel-go = callPackage ../development/interpreters/cel-go { };
+
+  cfdyndns = callPackage ../applications/networking/dyndns/cfdyndns { };
+
+  cf-terraforming = callPackage ../tools/misc/cf-terraforming { };
+
+  charliecloud = callPackage ../applications/virtualization/charliecloud { };
+
+  chelf = callPackage ../tools/misc/chelf { };
+
+  chisel = callPackage ../tools/networking/chisel { };
+
+  cht-sh = callPackage ../tools/misc/cht.sh { };
+
+  cinny = callPackage ../applications/networking/instant-messengers/cinny { };
+
+  cinny-desktop = callPackage ../applications/networking/instant-messengers/cinny-desktop { };
+
+  ckbcomp = callPackage ../tools/X11/ckbcomp { };
+
+  clac = callPackage ../tools/misc/clac { };
+
+  map-cmd = callPackage ../tools/misc/map { };
+
+  clash-geoip = callPackage ../data/misc/clash-geoip { };
+
+  clash-meta = callPackage ../tools/networking/clash-meta { };
+
+  clash-verge = callPackage ../applications/networking/clash-verge { };
+
+  clevercsv = with python3Packages; toPythonApplication clevercsv;
+
+  clevis = callPackage ../tools/security/clevis {
+    asciidoc = asciidoc-full;
+  };
+
+  cli53 = callPackage ../tools/admin/cli53 { };
+
+  cli-visualizer = callPackage ../applications/misc/cli-visualizer { };
+
+  cliam = callPackage ../tools/security/cliam { };
+
+  clickclack = callPackage ../tools/misc/clickclack { };
+
+  clickgen = with python3Packages; toPythonApplication clickgen;
+
+  clog-cli = callPackage ../development/tools/clog-cli { };
+
+  cloud-init = python3.pkgs.callPackage ../tools/virtualization/cloud-init { inherit systemd; };
+
+  cloudbrute = callPackage ../tools/security/cloudbrute { };
+
+  cloudflared = callPackage ../applications/networking/cloudflared {
+    # https://github.com/cloudflare/cloudflared/issues/1054
+    buildGoModule = buildGo120Module;
+  };
+
+  cloudflare-dyndns = callPackage ../applications/networking/cloudflare-dyndns { };
+
+  cloudmonkey = callPackage ../tools/virtualization/cloudmonkey { };
+
+  clib = callPackage ../tools/package-management/clib { };
+
+  clingo = callPackage ../applications/science/logic/potassco/clingo.nix { };
+
+  clingcon = callPackage ../applications/science/logic/potassco/clingcon.nix { };
+
+  clprover = callPackage ../applications/science/logic/clprover/clprover.nix { };
+
+  clusterctl = callPackage ../applications/networking/cluster/clusterctl { };
+
+  coloredlogs = with python3Packages; toPythonApplication coloredlogs;
+
+  colpack = callPackage ../applications/science/math/colpack { };
+
+  cz-cli = callPackage ../applications/version-management/cz-cli { };
+
+  comma = callPackage ../tools/package-management/comma { };
+
+  commitizen = callPackage ../applications/version-management/commitizen { };
+
+  common-licenses = callPackage ../data/misc/common-licenses { };
+
+  compactor = callPackage ../applications/networking/compactor {
+    protobuf = protobuf_21;
+  };
+
+  consul = callPackage ../servers/consul { };
+
+  consul-alerts = callPackage ../servers/monitoring/consul-alerts { };
+
+  consul-template = callPackage ../tools/system/consul-template { };
+
+  copyright-update = callPackage ../tools/text/copyright-update { };
+
+  inherit (callPackage ../tools/misc/coreboot-utils { })
+    msrtool
+    cbmem
+    ifdtool
+    intelmetool
+    cbfstool
+    nvramtool
+    superiotool
+    ectool
+    inteltool
+    amdfwtool
+    acpidump-all
+    coreboot-utils;
+
+  coreboot-configurator = libsForQt5.callPackage ../tools/misc/coreboot-configurator { };
+
+  corosync = callPackage ../servers/corosync { };
+
+  cowsay = callPackage ../tools/misc/cowsay { };
+
+  fw-ectool = callPackage ../os-specific/linux/fw-ectool { };
+
+  czkawka = callPackage ../tools/misc/czkawka {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  chayang = callPackage ../tools/wayland/chayang { };
+
+  cherrytree = callPackage ../applications/misc/cherrytree { };
+
+  chntpw = callPackage ../tools/security/chntpw { };
+
+  chopchop = callPackage ../tools/security/chopchop { };
+
+  clapboard = callPackage ../tools/wayland/clapboard { };
+
+  cliphist = callPackage ../tools/wayland/cliphist { };
+
+  clipman = callPackage ../tools/wayland/clipman { };
+
+  kabeljau = callPackage ../games/kabeljau { };
+
+  kanshi = callPackage ../tools/wayland/kanshi { };
+
+  oguri = callPackage  ../tools/wayland/oguri { };
+
+  shikane = callPackage ../tools/wayland/shikane { };
+
+  shotman = callPackage ../tools/wayland/shotman { };
+
+  slurp = callPackage ../tools/wayland/slurp { };
+
+  swaykbdd = callPackage ../tools/wayland/swaykbdd { };
+
+  swayr = callPackage ../tools/wayland/swayr { };
+
+  swayrbar = callPackage ../tools/wayland/swayrbar { };
+
+  swaysome = callPackage ../tools/wayland/swaysome { };
+
+  swaytools = python3Packages.callPackage ../tools/wayland/swaytools { };
+
+  swww = callPackage ../tools/wayland/swww { };
+
+  wayland-utils = callPackage ../tools/wayland/wayland-utils { };
+
+  wayland-proxy-virtwl = callPackage ../tools/wayland/wayland-proxy-virtwl {
+    ocamlPackages = ocaml-ng.ocamlPackages_5_0;
+  };
+
+  waylogout = callPackage ../tools/wayland/waylogout { };
+
+  waynergy = callPackage ../tools/wayland/waynergy { };
+
+  wayout = callPackage ../tools/wayland/wayout { };
+
+  way-displays = callPackage ../tools/wayland/way-displays { };
+
+  wev = callPackage ../tools/wayland/wev { };
+
+  wdomirror = callPackage ../tools/wayland/wdomirror { };
+
+  wdt = callPackage ../applications/networking/sync/wdt { };
+
+  wlay = callPackage ../tools/wayland/wlay { };
+
+  wl-clip-persist = callPackage ../tools/wayland/wl-clip-persist { };
+
+  wl-clipboard = callPackage ../tools/wayland/wl-clipboard { };
+
+  wl-clipboard-x11 = callPackage ../tools/wayland/wl-clipboard-x11 { };
+
+  wl-color-picker = callPackage ../tools/wayland/wl-color-picker { };
+
+  wl-mirror = callPackage ../tools/wayland/wl-mirror { };
+
+  wl-screenrec = callPackage ../tools/wayland/wl-screenrec { };
+
+  wleave = callPackage ../tools/wayland/wleave { };
+
+  wlogout = callPackage ../tools/wayland/wlogout { };
+
+  wlopm = callPackage ../tools/wayland/wlopm { };
+
+  wlprop = callPackage ../tools/wayland/wlprop { };
+
+  wlr-randr = callPackage ../tools/wayland/wlr-randr { };
+
+  wlr-which-key = callPackage ../tools/wayland/wlr-which-key { };
+
+  wlrctl = callPackage ../tools/wayland/wlrctl { };
+
+  wlsunset = callPackage ../tools/wayland/wlsunset { };
+
+  wl-gammactl = callPackage ../tools/wayland/wl-gammactl { };
+
+  wluma = callPackage ../tools/wayland/wluma {  };
+
+  wob = callPackage ../tools/wayland/wob { };
+
+  wpaperd = callPackage ../tools/wayland/wpaperd { };
+
+  wshowkeys = callPackage ../tools/wayland/wshowkeys { };
+
+  wtype = callPackage ../tools/wayland/wtype { };
+
+  ydotool = callPackage ../tools/wayland/ydotool { };
+
+  cambalache = callPackage ../development/tools/cambalache { };
+
+  cambrinary = python3Packages.callPackage ../applications/misc/cambrinary { };
+
+  changedetection-io = callPackage ../servers/web-apps/changedetection-io { };
+
+  clini = callPackage ../tools/misc/clini { };
+
+  clipster = callPackage ../tools/misc/clipster { };
+
+  clockify = callPackage ../applications/office/clockify {
+    electron = electron_24;
+  };
+
+  contrast = callPackage ../applications/accessibility/contrast { };
+
+  cplex = callPackage ../applications/science/math/cplex (config.cplex or {});
+
+  cpulimit = callPackage ../tools/misc/cpulimit { };
+
+  code-minimap = callPackage ../tools/misc/code-minimap { };
+
+  codesearch = callPackage ../tools/text/codesearch { };
+
+  codec2 = callPackage ../development/libraries/codec2 { };
+
+  contacts = callPackage ../tools/misc/contacts {
+    inherit (darwin.apple_sdk.frameworks) Foundation AddressBook;
+    xcbuildHook = xcbuild6Hook;
+  };
+
+  colorls = callPackage ../tools/system/colorls { };
+
+  coloursum = callPackage ../tools/text/coloursum {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  compsize = callPackage ../os-specific/linux/compsize { };
+
+  comrak = callPackage ../tools/text/comrak { };
+
+  cot = with python3Packages; toPythonApplication cot;
+
+  coturn = callPackage ../servers/coturn { };
+
+  coursier = callPackage ../development/tools/coursier { };
+
+  cppclean = callPackage ../development/tools/cppclean { };
+
+  credhub-cli = callPackage ../tools/admin/credhub-cli { };
+
+  crex = callPackage ../tools/misc/crex { };
+
+  cri-tools = callPackage ../tools/virtualization/cri-tools { };
+
+  crip = callPackage ../applications/audio/crip { };
+
+  crosvm = callPackage ../applications/virtualization/crosvm { };
+
+  crossplane = with python3Packages; toPythonApplication crossplane;
+
+  crowdsec = callPackage ../tools/security/crowdsec { };
+
+  crunch = callPackage ../tools/security/crunch { };
+
+  crunchy-cli = callPackage ../applications/video/crunchy-cli { };
+
+  crudini = callPackage ../tools/misc/crudini { };
+
+  csv2odf = callPackage ../applications/office/csv2odf { };
+
+  csv2parquet = callPackage ../tools/misc/csv2parquet { };
+
+  csvdiff = callPackage ../tools/text/csvdiff { };
+
+  csview = callPackage ../tools/text/csview { };
+
+  csvkit = callPackage ../tools/text/csvkit { };
+
+  csvquote = callPackage ../tools/text/csvquote { };
+
+  csvtool = callPackage ../development/ocaml-modules/csv/csvtool.nix { };
+
+  csv2latex = callPackage ../tools/misc/csv2latex { };
+
+  csvq = callPackage ../development/tools/csvq { };
+
+  csvs-to-sqlite = callPackage ../tools/misc/csvs-to-sqlite { };
+
+  cucumber = callPackage ../development/tools/cucumber { };
+
+  cutemarked-ng = libsForQt5.callPackage ../applications/office/cutemarked-ng { };
+
+  dab_lib = callPackage ../development/libraries/dab_lib { };
+
+  dabet = callPackage ../tools/misc/dabet { };
+
+  dabtools = callPackage ../applications/radio/dabtools { };
+
+  daemontools = callPackage ../tools/admin/daemontools { };
+
+  dale = callPackage ../development/compilers/dale { };
+
+  damon = callPackage ../tools/admin/damon { };
+
+  dancing-script = callPackage ../data/fonts/dancing-script { };
+
+  dante = callPackage ../servers/dante { };
+
+  dapr-cli = callPackage ../development/tools/dapr/cli { };
+
+  das = callPackage ../tools/security/das { };
+
+  dasel = callPackage ../applications/misc/dasel { };
+
+  dasher = callPackage ../applications/accessibility/dasher { };
+
+  dataclass-wizard = with python3Packages; toPythonApplication dataclass-wizard;
+
+  datafusion-cli = callPackage ../development/misc/datafusion { };
+
+  datamash = callPackage ../tools/misc/datamash { };
+
+  datasette = with python3Packages; toPythonApplication datasette;
+
+  howard-hinnant-date = callPackage ../development/libraries/howard-hinnant-date { };
+
+  datefmt = callPackage ../tools/misc/datefmt { };
+
+  datefudge = callPackage ../tools/system/datefudge { };
+
+  dateutils = callPackage ../tools/misc/dateutils { };
+
+  datovka = libsForQt5.callPackage ../applications/networking/datovka { };
+
+  dave = callPackage ../servers/http/dave { };
+
+  dconf = callPackage ../development/libraries/dconf { };
+
+  ddate = callPackage ../tools/misc/ddate { };
+
+  ddosify = callPackage ../development/tools/ddosify { };
+
+  dduper = callPackage ../tools/filesystems/dduper { };
+
+  deck = callPackage ../applications/networking/deck { };
+
+  dedup = callPackage ../tools/backup/dedup { };
+
+  deheader = callPackage ../development/tools/misc/deheader { };
+
+  dehydrated = callPackage ../tools/admin/dehydrated { };
+
+  deja-dup = callPackage ../applications/backup/deja-dup { };
+
+  dejsonlz4 = callPackage ../tools/compression/dejsonlz4 { };
+
+  desync = callPackage ../applications/networking/sync/desync { };
+
+  devdocs-desktop = callPackage ../applications/misc/devdocs-desktop { };
+
+  devmem2 = callPackage ../os-specific/linux/devmem2 { };
+
+  dbus-broker = callPackage ../os-specific/linux/dbus-broker { };
+
+  dblab = callPackage ../development/tools/database/dblab { };
+
+  dbx = callPackage ../applications/misc/dbx { };
+
+  ioport = callPackage ../os-specific/linux/ioport { };
+
+  dgoss = callPackage ../tools/misc/dgoss { };
+
+  diagrams-builder = callPackage ../tools/graphics/diagrams-builder {
+    inherit (haskellPackages) ghcWithPackages diagrams-builder;
+  };
+
+  dialect = callPackage ../applications/misc/dialect { };
+
+  dialogbox = libsForQt5.callPackage ../tools/misc/dialogbox { };
+
+  dibbler = callPackage ../tools/networking/dibbler { };
+
+  didder = callPackage ../tools/graphics/didder { };
+
+  dieharder = callPackage ../tools/security/dieharder { };
+
+  diesel-cli = callPackage ../development/tools/diesel-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  refinery-cli = callPackage ../development/tools/refinery-cli { };
+
+  digitemp = callPackage ../tools/misc/digitemp { };
+
+  dijo = callPackage ../tools/misc/dijo {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  ding = callPackage ../applications/misc/ding {
+    aspellDicts_de = aspellDicts.de;
+    aspellDicts_en = aspellDicts.en;
+  };
+
+  dirb = callPackage ../tools/networking/dirb { };
+
+  direnv = callPackage ../tools/misc/direnv { };
+
+  dirstalk = callPackage ../tools/security/dirstalk { };
+
+  h = callPackage ../tools/misc/h { };
+
+  discount = callPackage ../tools/text/discount { };
+
+  discourse = callPackage ../servers/web-apps/discourse { };
+
+  discourseAllPlugins = discourse.override {
+    plugins = lib.filter (p: p ? pluginName) (builtins.attrValues discourse.plugins);
+  };
+
+  discourse-mail-receiver = callPackage ../servers/web-apps/discourse/mail_receiver { };
+
+  discocss = callPackage ../tools/misc/discocss { };
+
+  disfetch = callPackage ../tools/misc/disfetch { };
+
+  disk-filltest = callPackage ../tools/system/disk-filltest { };
+
+  disk-inventory-x = callPackage ../tools/filesystems/disk-inventory-x { };
+
+  diskscan = callPackage ../tools/misc/diskscan { };
+
+  disorderfs = callPackage ../tools/filesystems/disorderfs {
+    asciidoc = asciidoc-full;
+  };
+
+  dislocker = callPackage ../tools/filesystems/dislocker { };
+
+  distgen = callPackage ../development/tools/distgen { };
+
+  distrobuilder = callPackage ../tools/virtualization/distrobuilder { };
+
+  ditaa = callPackage ../tools/graphics/ditaa { };
+
+  dino = callPackage ../applications/networking/instant-messengers/dino {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-bad gst-vaapi;
+    gst-plugins-good = gst_all_1.gst-plugins-good.override { gtkSupport = true; };
+  };
+
+  djot-js = callPackage ../tools/text/djot-js { };
+
+  djv = callPackage ../applications/graphics/djv { };
+
+  dnschef = python3Packages.callPackage ../tools/networking/dnschef { };
+
+  doitlive = callPackage ../tools/misc/doitlive { };
+
+  dokuwiki = callPackage ../servers/web-apps/dokuwiki { };
+
+  dolibarr = callPackage ../servers/web-apps/dolibarr { };
+
+  doppler = callPackage ../tools/security/doppler { };
+
+  dosage = callPackage ../applications/graphics/dosage { };
+
+  dotenv-linter = callPackage ../development/tools/analysis/dotenv-linter {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  dotool = callPackage ../tools/dotool { };
+
+  inherit (ocamlPackages) dot-merlin-reader;
+
+  dozenal = callPackage ../applications/misc/dozenal { };
+
+  dpic = callPackage ../tools/graphics/dpic { };
+
+  dsdcc = callPackage ../development/libraries/dsdcc { };
+
+  dstp = callPackage ../development/tools/dstp { };
+
+  dsvpn = callPackage ../applications/networking/dsvpn { };
+
+  dtools = callPackage ../development/tools/dtools { };
+
+  dwt1-shell-color-scripts = callPackage ../tools/misc/dwt1-shell-color-scripts { };
+
+  dtrx = callPackage ../tools/compression/dtrx { };
+
+  dua = callPackage ../tools/misc/dua { };
+
+  duf = callPackage ../tools/misc/duf { };
+
+  dum = callPackage ../development/tools/dum { };
+
+  inherit (ocaml-ng.ocamlPackages_4_10) dune_1;
+  inherit (ocamlPackages) dune_2 dune_3 dune-release;
+
+  duperemove = callPackage ../tools/filesystems/duperemove { };
+
+  dvc = with python3.pkgs; toPythonApplication dvc;
+
+  dvc-with-remotes = dvc.override {
+    enableGoogle = true;
+    enableAWS = true;
+    enableAzure = true;
+    enableSSH = true;
+  };
+
+  dynamic-colors = callPackage ../tools/misc/dynamic-colors { };
+
+  dynamic-wallpaper = callPackage ../tools/graphics/dynamic-wallpaper { };
+
+  dyncall = callPackage ../development/libraries/dyncall { };
+
+  dyndnsc = callPackage ../applications/networking/dyndns/dyndnsc { };
+
+  earthly = callPackage ../development/tools/earthly { };
+
+  earlybird = callPackage ../tools/security/earlybird { };
+
+  earlyoom = callPackage ../os-specific/linux/earlyoom { };
+
+  easyabc = callPackage ../applications/audio/easyabc { };
+
+  easycrypt = callPackage ../applications/science/logic/easycrypt { };
+
+  easycrypt-runtest = callPackage ../applications/science/logic/easycrypt/runtest.nix { };
+
+  easyocr = with python3.pkgs; toPythonApplication easyocr;
+
+  EBTKS = callPackage ../development/libraries/science/biology/EBTKS { };
+
+  ecasound = callPackage ../applications/audio/ecasound { };
+
+  edac-utils = callPackage ../os-specific/linux/edac-utils { };
+
+  eddy = libsForQt5.callPackage ../applications/graphics/eddy { };
+
+  eggdrop = callPackage ../tools/networking/eggdrop { };
+
+  egglog = callPackage ../applications/science/logic/egglog { };
+
+  ego = callPackage ../tools/misc/ego { };
+
+  ekam = callPackage ../development/tools/build-managers/ekam { };
+
+  electronplayer = callPackage ../applications/video/electronplayer/electronplayer.nix { };
+
+  electron-mail = callPackage ../applications/networking/mailreaders/electron-mail { };
+
+  element = callPackage ../applications/science/chemistry/element { };
+
+  element-desktop = callPackage ../applications/networking/instant-messengers/element/element-desktop.nix {
+    inherit (darwin.apple_sdk.frameworks) Security AppKit CoreServices;
+    electron = electron_27;
+  };
+  element-desktop-wayland = writeScriptBin "element-desktop" ''
+    #!/bin/sh
+    NIXOS_OZONE_WL=1 exec ${element-desktop}/bin/element-desktop "$@"
+  '';
+
+  element-web-unwrapped = callPackage ../applications/networking/instant-messengers/element/element-web.nix { };
+
+  element-web = callPackage ../applications/networking/instant-messengers/element/element-web-wrapper.nix {
+    conf = config.element-web.conf or { };
+  };
+
+  elementary-xfce-icon-theme = callPackage ../data/icons/elementary-xfce-icon-theme { };
+
+  ell = callPackage ../os-specific/linux/ell { };
+
+  elm-github-install = callPackage ../tools/package-management/elm-github-install { };
+
+  elogind = callPackage ../applications/misc/elogind { };
+
+  elpa = callPackage ../development/libraries/elpa { };
+
+  enca = callPackage ../tools/text/enca { };
+
+  encpipe = callPackage ../tools/misc/encpipe { };
+
+  ent = callPackage ../tools/misc/ent { };
+
+  entwine = callPackage ../applications/graphics/entwine { };
+
+  envconsul = callPackage ../tools/system/envconsul { };
+
+  envsubst = callPackage ../tools/misc/envsubst { };
+
+  envfs = callPackage ../tools/filesystems/envfs { };
+
+  er-patcher = callPackage ../tools/games/er-patcher { };
+
+  erdtree = callPackage ../tools/system/erdtree { };
+
+  errcheck = callPackage ../development/tools/errcheck { };
+
+  eschalot = callPackage ../tools/security/eschalot { };
+
+  espanso = callPackage ../applications/office/espanso {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation IOKit Kernel AVFoundation Carbon QTKit AVKit WebKit;
+  };
+  espanso-wayland = espanso.override {
+    x11Support = false;
+    waylandSupport = true;
+    espanso = espanso-wayland;
+  };
+
+  esphome = callPackage ../tools/misc/esphome { };
+
+  esptool = callPackage ../tools/misc/esptool { };
+
+  esptool-ck = callPackage ../tools/misc/esptool-ck { };
+
+  ephemeralpg = callPackage ../development/tools/database/ephemeralpg { };
+
+  et = callPackage ../applications/misc/et { };
+
+  ejson = callPackage ../development/tools/ejson { };
+
+  eternal-terminal = callPackage ../tools/networking/eternal-terminal { };
+
+  extism-cli = callPackage ../development/tools/extism-cli { };
+
+  extrude = callPackage ../tools/security/extrude { };
+
+  fastly = callPackage ../misc/fastly {
+    # If buildGoModule is overridden, provide a matching version of the go attribute
+  };
+
+  f2 = callPackage ../tools/misc/f2 { };
+
+  f3 = callPackage ../tools/filesystems/f3 { };
+
+  f3d = callPackage ../applications/graphics/f3d {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
+  };
+
+  fac = callPackage ../development/tools/fac { };
+
+  facedetect = callPackage ../tools/graphics/facedetect { };
+
+  facter = callPackage ../tools/system/facter { };
+
+  faketty = callPackage ../tools/misc/faketty { };
+
+  fasd = callPackage ../tools/misc/fasd { };
+
+  fastJson = callPackage ../development/libraries/fastjson { };
+
+  fast-cli = nodePackages.fast-cli;
+
+  fast-cpp-csv-parser = callPackage ../development/libraries/fast-cpp-csv-parser { };
+
+  fast-ssh = callPackage ../tools/networking/fast-ssh {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  faudio = callPackage ../development/libraries/faudio { };
+
+  fblog = callPackage ../development/tools/fblog { };
+
+  fd = callPackage ../tools/misc/fd { };
+
+  fdroidcl = pkgs.callPackage ../development/mobile/fdroidcl { };
+
+  fdroidserver = python3Packages.callPackage ../development/tools/fdroidserver { };
+
+  fetch-scm = callPackage ../tools/misc/fetch-scm { };
+
+  fiano = callPackage ../tools/misc/fiano { };
+
+  filebench = callPackage ../tools/misc/filebench { };
+
+  filebot = callPackage ../applications/video/filebot { };
+
+  fileshare = callPackage ../servers/fileshare { };
+
+  fileshelter = callPackage ../servers/web-apps/fileshelter { };
+
+  fioctl = callPackage ../tools/admin/fioctl { };
+
+  firecracker = callPackage ../applications/virtualization/firecracker { };
+
+  firectl = callPackage ../applications/virtualization/firectl { };
+
+  firestarter = callPackage ../applications/misc/firestarter { };
+
+  fits-cloudctl = callPackage ../tools/admin/fits-cloudctl { };
+
+  flitter = callPackage ../tools/misc/flitter { };
+
+  flowgger = callPackage ../tools/misc/flowgger {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  frangipanni = callPackage ../tools/text/frangipanni { };
+
+  frawk = callPackage ../tools/text/frawk { };
+
+  fre = callPackage ../tools/misc/fre { };
+
+  frei = callPackage ../tools/misc/frei { };
+
+  frogmouth = callPackage ../tools/text/frogmouth { };
+
+  fselect = callPackage ../tools/misc/fselect { };
+
+  fsmon = callPackage ../tools/misc/fsmon { };
+
+  fst = callPackage ../tools/text/fst { };
+
+  fsql = callPackage ../tools/misc/fsql { };
+
+  kitty-img = callPackage ../tools/misc/kitty-img { };
+
+  ### TOOLS/TYPESETTING/TEX
+
+  advi = callPackage ../tools/typesetting/tex/advi { };
+
+  auctex = callPackage ../tools/typesetting/tex/auctex { };
+
+  blahtexml = callPackage ../tools/typesetting/tex/blahtexml { };
+
+  catdvi = callPackage ../tools/typesetting/tex/catdvi { };
+
+  dblatex = callPackage ../tools/typesetting/tex/dblatex { };
+
+  dblatexFull = dblatex.override { enableAllFeatures = true; };
+
+  gladtex = callPackage ../tools/typesetting/tex/gladtex { };
+
+  latex2mathml = with python3Packages; toPythonApplication latex2mathml;
+
+  latexrun = callPackage ../tools/typesetting/tex/latexrun { };
+
+  lkproof = callPackage ../tools/typesetting/tex/lkproof { };
+
+  mftrace = callPackage ../tools/typesetting/tex/mftrace { };
+
+  # Keep the old PGF since some documents don't render properly with
+  # the new one.
+  pgf1 = callPackage ../tools/typesetting/tex/pgf-tikz/pgf-1.x.nix { };
+
+  pgf2 = callPackage ../tools/typesetting/tex/pgf-tikz/pgf-2.x.nix { };
+
+  pgf3 = callPackage ../tools/typesetting/tex/pgf-tikz/pgf-3.x.nix { };
+
+  pgf = pgf2;
+
+  pgf-pie = callPackage ../tools/typesetting/tex/pgf-tikz/pgf-pie.nix { };
+
+  pgf-umlcd = callPackage ../tools/typesetting/tex/pgf-tikz/pgf-umlcd.nix { };
+
+  pgf-umlsd = callPackage ../tools/typesetting/tex/pgf-tikz/pgf-umlsd.nix { };
+
+  pgfplots = callPackage ../tools/typesetting/tex/pgf-tikz/pgfplots.nix { };
+
+  pplatex = callPackage ../tools/typesetting/tex/pplatex { };
+
+  tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; };
+
+  tex-match = callPackage ../tools/typesetting/tex/tex-match { };
+
+  texFunctions = callPackage ../tools/typesetting/tex/nix pkgs;
+
+  # TeX Live; see https://nixos.org/nixpkgs/manual/#sec-language-texlive
+  texlive = callPackage ../tools/typesetting/tex/texlive { };
+  inherit (texlive.schemes) texliveBasic texliveBookPub texliveConTeXt texliveFull texliveGUST texliveInfraOnly texliveMedium texliveMinimal texliveSmall texliveTeTeX;
+
+  fop = callPackage ../tools/typesetting/fop {
+    jdk = openjdk8;
+  };
+
+  fondu = callPackage ../tools/misc/fondu {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  fpp = callPackage ../tools/misc/fpp { };
+
+  fsmark = callPackage ../tools/misc/fsmark { };
+
+  futhark = haskell.lib.compose.justStaticExecutables haskellPackages.futhark;
+
+  fx = callPackage ../development/tools/fx { };
+
+  tllist = callPackage ../development/libraries/tllist { };
+
+  fcft = callPackage ../development/libraries/fcft { };
+
+  fuzzel = callPackage ../applications/misc/fuzzel { };
+
+  fuzzylite = callPackage ../development/libraries/fuzzylite { };
+
+  flashfocus = callPackage ../misc/flashfocus { };
+
+  qt-video-wlr = libsForQt5.callPackage ../applications/misc/qt-video-wlr { };
+
+  fwup = callPackage ../tools/misc/fwup {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration;
+  };
+
+  fx-cast-bridge = callPackage ../tools/misc/fx-cast-bridge { };
+
+  fzf = callPackage ../tools/misc/fzf { };
+
+  fzf-obc = callPackage ../shells/bash/fzf-obc { };
+
+  fzf-zsh = callPackage ../shells/zsh/fzf-zsh { };
+
+  fzy = callPackage ../tools/misc/fzy { };
+
+  g2o = libsForQt5.callPackage ../development/libraries/g2o { };
+
+  gb-backup = callPackage ../tools/backup/gamerbackup { };
+
+  gbsplay = callPackage ../applications/audio/gbsplay { };
+
+  gdrive = callPackage ../applications/networking/gdrive { };
+
+  gdrive3 = callPackage ../applications/networking/gdrive3 { };
+
+  gdu = callPackage ../tools/system/gdu { };
+
+  gfxreconstruct = callPackage ../tools/graphics/gfxreconstruct { };
+
+  go-chromecast = callPackage ../applications/video/go-chromecast { };
+
+  go-containerregistry = callPackage ../development/tools/go-containerregistry { };
+  inherit (go-containerregistry) crane gcrane;
+
+  go-rice = callPackage ../tools/misc/go.rice { };
+
+  go-2fa = callPackage ../tools/security/2fa { };
+
+  go-neb = callPackage ../applications/networking/instant-messengers/go-neb { };
+
+  google-cursor = callPackage ../data/icons/google-cursor { };
+
+  geckodriver = callPackage ../development/tools/geckodriver {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  geekbench_4 = callPackage ../tools/misc/geekbench/4.nix { };
+  geekbench_5 = callPackage ../tools/misc/geekbench/5.nix { };
+  geekbench_6 = callPackage ../tools/misc/geekbench/6.nix { };
+  geekbench = geekbench_6;
+
+  gencfsm = callPackage ../tools/security/gencfsm { };
+
+  genromfs = callPackage ../tools/filesystems/genromfs { };
+
+  gh-ost = callPackage ../tools/misc/gh-ost { };
+
+  ghauri = callPackage ../tools/security/ghauri { };
+
+  ghdorker = callPackage ../tools/security/ghdorker { };
+
+  ghidra = darwin.apple_sdk_11_0.callPackage ../tools/security/ghidra/build.nix {
+    protobuf = protobuf_21;
+  };
+
+  ghidra-bin = callPackage ../tools/security/ghidra { };
+
+  gh2md = callPackage ../tools/backup/gh2md { };
+
+  gif-for-cli = callPackage ../tools/misc/gif-for-cli { };
+
+  giph = callPackage ../applications/video/giph { };
+
+  gir-rs = callPackage ../development/tools/gir { };
+
+  girsh = callPackage ../tools/networking/girsh { };
+
+  gist = callPackage ../tools/text/gist { };
+
+  gitjacker = callPackage ../tools/security/gitjacker { };
+
+  gixy = callPackage ../tools/admin/gixy { };
+
+  glpaper = callPackage ../development/tools/glpaper { };
+
+  gllvm = callPackage ../development/tools/gllvm { };
+
+  glide = callPackage ../development/tools/glide { };
+
+  globalarrays = callPackage ../development/libraries/globalarrays { };
+
+  glock = callPackage ../development/tools/glock { };
+
+  glslviewer = callPackage ../development/tools/glslviewer {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  gmic-qt = libsForQt5.callPackage ../tools/graphics/gmic-qt { };
+
+  gpg-tui = callPackage ../tools/security/gpg-tui {
+    inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
+    inherit (darwin) libobjc libresolv;
+  };
+
+  goa = callPackage ../development/tools/goa { };
+
+  goawk = callPackage ../tools/text/goawk { };
+
+  gohai = callPackage ../tools/system/gohai { };
+
+  gorilla-bin = callPackage ../tools/security/gorilla-bin { };
+
+  gorilla-cli = callPackage ../tools/llm/gorilla-cli { };
+
+  godu = callPackage ../tools/misc/godu { };
+
+  goss = callPackage ../tools/misc/goss { };
+
+  gosu = callPackage ../tools/misc/gosu { };
+
+  gotify-cli = callPackage ../tools/misc/gotify-cli { };
+
+  gotify-desktop = callPackage ../tools/misc/gotify-desktop { };
+
+  gping = callPackage ../tools/networking/gping {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  gpu-burn = callPackage ../applications/misc/gpu-burn {
+    # gpu-burn doesn't build on gcc11. CUDA 11.3 is the last version to use
+    # pre-gcc11, in particular gcc9.
+    stdenv = gcc9Stdenv;
+  };
+
+  gpu-viewer = callPackage ../applications/misc/gpu-viewer { };
+
+  greg = callPackage ../applications/audio/greg {
+    pythonPackages = python3Packages;
+  };
+
+  grim = callPackage ../tools/graphics/grim { };
+
+  grit = callPackage ../tools/misc/grit { };
+
+  grobi = callPackage ../tools/X11/grobi { };
+
+  gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
+
+  gsctl = callPackage ../applications/misc/gsctl {
+    buildGoModule = buildGo119Module; # go 1.20 build failure
+  };
+
+  gsocket = callPackage ../tools/networking/gsocket { };
+
+  gthree = callPackage ../development/libraries/gthree { };
+
+  gtg = callPackage ../applications/office/gtg { };
+
+  gti = callPackage ../tools/misc/gti { };
+
+  has = callPackage ../applications/misc/has { };
+
+  hdate = callPackage ../applications/misc/hdate { };
+
+  headache = callPackage ../development/tools/headache { };
+
+  heatseeker = callPackage ../tools/misc/heatseeker { };
+
+  hebcal = callPackage ../tools/misc/hebcal { };
+
+  hebbot = callPackage ../servers/matrix-hebbot {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  hexio = callPackage ../development/tools/hexio { };
+
+  hexyl = callPackage ../tools/misc/hexyl { };
+
+  hid-listen = callPackage ../tools/misc/hid-listen { };
+
+  hid-tools = callPackage ../tools/misc/hid-tools { };
+
+  hidrd = callPackage ../tools/misc/hidrd { };
+
+  hiksink = callPackage ../tools/misc/hiksink {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  hocr-tools = with python3Packages; toPythonApplication hocr-tools;
+
+  home-manager = callPackage ../tools/package-management/home-manager { };
+
+  homepage-dashboard = callPackage ../servers/homepage-dashboard {
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  hostsblock = callPackage ../tools/misc/hostsblock { };
+
+  hopper = qt5.callPackage ../development/tools/analysis/hopper { };
+
+  hr = callPackage ../applications/misc/hr { };
+
+  humioctl = callPackage ../applications/logging/humioctl { };
+
+  huniq = callPackage ../tools/text/huniq { };
+
+  hunt = callPackage ../tools/misc/hunt { };
+
+  hypr = callPackage ../applications/window-managers/hyprwm/hypr {
+    cairo = cairo.override { xcbSupport = true; };  };
+
+  hyprdim = callPackage ../applications/misc/hyprdim { };
+
+  hyprland = callPackage ../applications/window-managers/hyprwm/hyprland {
+    stdenv = gcc13Stdenv;
+    wlroots = callPackage ../applications/window-managers/hyprwm/hyprland/wlroots.nix { };
+    udis86 = callPackage ../applications/window-managers/hyprwm/hyprland/udis86.nix { };
+  };
+
+  hyprland-autoname-workspaces = callPackage ../applications/misc/hyprland-autoname-workspaces { };
+
+  hyprland-per-window-layout = callPackage ../tools/wayland/hyprland-per-window-layout { };
+
+  hyprland-protocols = callPackage ../applications/window-managers/hyprwm/hyprland-protocols { };
+
+  hyprnome = callPackage ../applications/misc/hyprnome { };
+
+  hyprpaper = callPackage ../applications/window-managers/hyprwm/hyprpaper { };
+
+  hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker {
+    wlroots = wlroots_0_16;
+  };
+
+  hyprshade = python311Packages.callPackage ../applications/window-managers/hyprwm/hyprshade { };
+
+  hysteria = callPackage ../tools/networking/hysteria { };
+
+  hyx = callPackage ../tools/text/hyx { };
+
+  icdiff = callPackage ../tools/text/icdiff { };
+
+  ictree = callPackage ../tools/misc/ictree { };
+
+  inchi = callPackage ../development/libraries/inchi { };
+
+  icon-slicer = callPackage ../tools/X11/icon-slicer { };
+
+  ifm = callPackage ../tools/graphics/ifm { };
+
+  iina = callPackage ../applications/video/iina { };
+
+  ink = callPackage ../tools/misc/ink { };
+
+  inklecate = callPackage ../development/compilers/inklecate { };
+
+  intensity-normalization = with python3Packages; toPythonApplication intensity-normalization;
+
+  interactsh = callPackage ../tools/misc/interactsh { };
+
+  interlock = callPackage ../servers/interlock { };
+
+  invoice = callPackage ../tools/misc/invoice { };
+
+  invoiceplane = callPackage ../servers/web-apps/invoiceplane { };
+
+  iotas = callPackage ../applications/office/iotas { };
+
+  iotools = callPackage ../tools/misc/iotools { };
+
+  irpf = callPackage ../applications/finance/irpf { };
+
+  jellycli = callPackage ../applications/audio/jellycli { };
+
+  jellyfin = callPackage ../servers/jellyfin {
+    ffmpeg = jellyfin-ffmpeg;
+  };
+
+  jellyfin-ffmpeg = callPackage ../development/libraries/jellyfin-ffmpeg { };
+
+  jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa CoreAudio MediaPlayer;
+  };
+
+  jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
+
+  jellyfin-web = callPackage ../servers/jellyfin/web.nix { };
+
+  jellyseerr = callPackage ../servers/jellyseerr { };
+
+  jiten = callPackage ../applications/misc/jiten { };
+
+  kanjidraw = callPackage ../applications/misc/kanjidraw { };
+
+  jotta-cli = callPackage ../applications/misc/jotta-cli { };
+
+  joycond = callPackage ../os-specific/linux/joycond { };
+
+  joystickwake = callPackage ../tools/games/joystickwake { };
+
+  juce = callPackage ../development/misc/juce {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
+
+  jumppad = callPackage ../tools/virtualization/jumppad { };
+
+  jwt-cli = callPackage ../tools/security/jwt-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  jwt-hack = callPackage ../tools/security/jwt-hack { } ;
+
+  jwx = callPackage ../tools/security/jwx { } ;
+
+  kapacitor = callPackage ../servers/monitoring/kapacitor { };
+
+  karma = callPackage ../servers/monitoring/karma { };
+
+  kaldi = callPackage ../tools/audio/kaldi {
+    inherit (darwin.apple_sdk.frameworks) Accelerate;
+  };
+
+  kalker = callPackage ../tools/misc/kalker { };
+
+  kisslicer = callPackage ../tools/misc/kisslicer { };
+
+  klaus = with python3Packages; toPythonApplication klaus;
+
+  klipper = callPackage ../servers/klipper { };
+
+  klipper-firmware = callPackage ../servers/klipper/klipper-firmware.nix { gcc-arm-embedded = gcc-arm-embedded-11; };
+
+  klipper-flash = callPackage ../servers/klipper/klipper-flash.nix { };
+
+  klipper-genconf = callPackage ../servers/klipper/klipper-genconf.nix { };
+
+  klipper-estimator = callPackage ../applications/misc/klipper-estimator {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  klipperscreen = callPackage ../applications/misc/klipperscreen { };
+
+  klog = qt5.callPackage ../applications/radio/klog { };
+
+  knxd = callPackage ../servers/knxd { };
+
+  komga = callPackage ../servers/komga { };
+
+  komorebi = callPackage ../applications/graphics/komorebi { };
+
+  konsave = callPackage ../applications/misc/konsave { };
+
+  krapslog = callPackage ../tools/misc/krapslog { };
+
+  krelay = callPackage ../applications/networking/cluster/krelay { };
+
+  krill = callPackage ../servers/krill {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  lapce = callPackage ../applications/editors/lapce {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices ApplicationServices Carbon AppKit;
+  };
+
+  lcdproc = callPackage ../servers/monitoring/lcdproc { };
+
+  languagetool = callPackage ../tools/text/languagetool {  };
+
+  languagetool-rust = callPackage ../tools/text/languagetool-rust {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ldtk = callPackage ../applications/editors/ldtk { };
+
+  lepton = callPackage ../tools/graphics/lepton { };
+
+  lepton-eda = callPackage ../applications/science/electronics/lepton-eda { };
+
+  lexend = callPackage ../data/fonts/lexend { };
+
+  lexicon = with python3Packages; toPythonApplication dns-lexicon;
+
+  lenpaste = callPackage ../servers/lenpaste { };
+
+  lief = callPackage ../development/libraries/lief {
+    python = python3;
+  };
+
+  libnbd = callPackage ../development/libraries/libnbd { };
+
+  libndtypes = callPackage ../development/libraries/libndtypes { };
+
+  libnss-mysql = callPackage ../os-specific/linux/libnss-mysql { };
+
+  libnvme = callPackage ../os-specific/linux/libnvme { };
+
+  librenms = callPackage ../servers/monitoring/librenms { };
+
+  libxnd = callPackage ../development/libraries/libxnd { };
+
+  libz = callPackage ../development/libraries/libz { };
+
+  libzbc = callPackage ../os-specific/linux/libzbc { };
+
+  libzbd = callPackage ../os-specific/linux/libzbd { };
+
+  lifeograph = callPackage ../applications/editors/lifeograph { };
+
+  limitcpu = callPackage ../tools/misc/limitcpu { };
+
+  lineselect = callPackage ../tools/misc/lineselect { };
+
+  link-grammar = callPackage ../tools/text/link-grammar { };
+
+  linuxptp = callPackage ../os-specific/linux/linuxptp { };
+
+  linuxdoc-tools = callPackage ../tools/text/sgml/linuxdoc-tools { };
+
+  lisgd = callPackage ../tools/inputmethods/lisgd { };
+
+  lite = callPackage ../applications/editors/lite { };
+
+  lite-xl = callPackage ../applications/editors/lite-xl {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  loadwatch = callPackage ../tools/system/loadwatch { };
+
+  loccount = callPackage ../development/tools/misc/loccount { };
+
+  long-shebang = callPackage ../misc/long-shebang { };
+
+  lssecret = callPackage ../misc/lssecret {};
+
+  lowdown = callPackage ../tools/typesetting/lowdown { };
+
+  numatop = callPackage ../os-specific/linux/numatop { };
+
+  numworks-udev-rules = callPackage ../os-specific/linux/numworks-udev-rules { };
+
+  num-utils = callPackage ../tools/text/num-utils { };
+
+  iio-sensor-proxy = callPackage ../os-specific/linux/iio-sensor-proxy { };
+
+  ipvsadm = callPackage ../os-specific/linux/ipvsadm { };
+
+  ir-standard-fonts = callPackage ../data/fonts/ir-standard-fonts { };
+
+  kaggle = with python3Packages; toPythonApplication kaggle;
+
+  lynis = callPackage ../tools/security/lynis { };
+
+  maigret = callPackage ../tools/security/maigret { };
+
+  maliit-framework = libsForQt5.callPackage ../applications/misc/maliit-framework { };
+
+  maliit-keyboard = libsForQt5.callPackage ../applications/misc/maliit-keyboard { };
+
+  mandown = callPackage ../tools/misc/mandown { };
+
+  mantra = callPackage ../tools/security/mantra { };
+
+  mapcidr = callPackage ../tools/misc/mapcidr { };
+
+  maple-mono = (callPackage ../data/fonts/maple-font { }).Mono;
+  maple-mono-NF = (callPackage ../data/fonts/maple-font { }).NF;
+  maple-mono-SC-NF = (callPackage ../data/fonts/maple-font { }).SC-NF;
+  maple-mono-otf = (callPackage ../data/fonts/maple-font { }).opentype;
+  maple-mono-woff2 = (callPackage ../data/fonts/maple-font { }).woff2;
+  maple-mono-autohint = (callPackage ../data/fonts/maple-font { }).autohint;
+
+  marl = callPackage ../development/libraries/marl { };
+
+  marlin-calc = callPackage ../tools/misc/marlin-calc { };
+
+  marp-cli = callPackage ../tools/typesetting/marp { };
+
+  masscan = callPackage ../tools/security/masscan { };
+
+  massren = callPackage ../tools/misc/massren { };
+
+  mat2 = with python3.pkgs; toPythonApplication mat2;
+
+  maxcso = callPackage ../tools/archivers/maxcso { };
+
+  measureme = callPackage ../development/tools/rust/measureme { };
+
+  medusa = callPackage ../tools/security/medusa { };
+
+  megasync = libsForQt5.callPackage ../applications/misc/megasync {
+    ffmpeg = ffmpeg_4;
+  };
+
+  megacmd = callPackage ../applications/misc/megacmd { };
+
+  merriweather = callPackage ../data/fonts/merriweather { };
+
+  merriweather-sans = callPackage ../data/fonts/merriweather-sans { };
+
+  # while building documentation meson may want to run binaries for host
+  # which needs an emulator
+  # example of an error which this fixes
+  # [Errno 8] Exec format error: './gdk3-scan'
+  mesonEmulatorHook =
+    makeSetupHook
+      {
+        name = "mesonEmulatorHook";
+        substitutions = {
+          crossFile = writeText "cross-file.conf" ''
+              [binaries]
+              exe_wrapper = ${lib.escapeShellArg (stdenv.targetPlatform.emulator pkgs)}
+            '';
+        };
+      }
+      # The throw is moved into the `makeSetupHook` derivation, so that its
+      # outer level, but not its outPath can still be evaluated if the condition
+      # doesn't hold. This ensures that splicing still can work correctly.
+      (if (!stdenv.hostPlatform.canExecute stdenv.targetPlatform) then
+        ../by-name/me/meson/emulator-hook.sh
+       else
+         throw "mesonEmulatorHook may only be added to nativeBuildInputs when the target binaries can't be executed; however you are attempting to use it in a situation where ${stdenv.hostPlatform.config} can execute ${stdenv.targetPlatform.config}. Consider only adding mesonEmulatorHook according to a conditional based canExecute in your package expression.");
+
+  meson-tools = callPackage ../misc/meson-tools { };
+
+  metabase = callPackage ../servers/metabase {
+    jdk11 = jdk11_headless;
+  };
+
+  micropad = callPackage ../applications/office/micropad {
+    electron = electron_27;
+  };
+
+  midicsv = callPackage ../tools/audio/midicsv { };
+
+  miniscript = callPackage ../applications/blockchains/miniscript { };
+
+  miniserve = callPackage ../tools/misc/miniserve { };
+
+  mkspiffs = callPackage ../tools/filesystems/mkspiffs { };
+
+  mkspiffs-presets = recurseIntoAttrs (callPackages ../tools/filesystems/mkspiffs/presets.nix { });
+
+  mlarchive2maildir = callPackage ../applications/networking/mailreaders/mlarchive2maildir { };
+
+  mmctl = callPackage ../tools/misc/mmctl {
+    # mmctl tests currently fail with go1.21. See
+    # https://mattermost.atlassian.net/browse/MM-55465
+    buildGoModule = buildGo120Module;
+  };
+
+  moar = callPackage ../tools/misc/moar { };
+
+  mobilizon = callPackage ../servers/mobilizon {
+    elixir = elixir_1_15;
+    beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_15; });
+    mobilizon-frontend = callPackage ../servers/mobilizon/frontend.nix { };
+  };
+
+  molly-brown = callPackage ../servers/gemini/molly-brown { };
+
+  monetdb = callPackage ../servers/sql/monetdb { };
+
+  monado = callPackage ../applications/graphics/monado {
+    inherit (gst_all_1) gstreamer gst-plugins-base;
+  };
+
+  mons = callPackage ../tools/misc/mons { };
+
+  monsoon = callPackage ../tools/security/monsoon { };
+
+  moodle-dl = callPackage ../tools/networking/moodle-dl { };
+
+  moon-phases = callPackage ../tools/misc/moon-phases { };
+
+  moonraker = callPackage ../servers/moonraker { };
+
+  morsel = callPackage ../tools/text/morsel { };
+
+  mousetweaks = callPackage ../applications/accessibility/mousetweaks { };
+
+  mp3blaster = callPackage ../applications/audio/mp3blaster { };
+
+  mp3cat = callPackage ../tools/audio/mp3cat { };
+
+  mp3fs = callPackage ../tools/filesystems/mp3fs { };
+
+  mpdas = callPackage ../tools/audio/mpdas { };
+
+  mpdcron = callPackage ../tools/audio/mpdcron { };
+
+  mpdris2 = callPackage ../tools/audio/mpdris2 { };
+
+  mpd-discord-rpc = callPackage ../tools/audio/mpd-discord-rpc { };
+
+  mpd-mpris = callPackage ../tools/audio/mpd-mpris { };
+
+  mpd-notification = callPackage ../tools/audio/mpd-notification { };
+
+  mpd-sima = python3Packages.callPackage ../tools/audio/mpd-sima { };
+
+  mpris-scrobbler = callPackage ../tools/audio/mpris-scrobbler { };
+
+  mpd-touch-screen-gui = callPackage ../applications/audio/mpd-touch-screen-gui { };
+
+  mq-cli = callPackage ../tools/system/mq-cli { };
+
+  mrkd = callPackage ../tools/text/mrkd { };
+
+  naproche = callPackage ../applications/science/logic/naproche { };
+
+  nautilus-open-any-terminal = callPackage ../tools/misc/nautilus-open-any-terminal { };
+
+  n2n = callPackage ../tools/networking/n2n { };
+
+  nest-cli = callPackage ../development/tools/nest-cli { };
+
+  nextdns = callPackage ../applications/networking/nextdns { };
+
+  nexttrace = callPackage ../tools/networking/nexttrace { };
+
+  ngadmin = callPackage ../applications/networking/ngadmin { };
+
+  nfdump = callPackage ../tools/networking/nfdump { };
+
+  nfstrace = callPackage ../tools/networking/nfstrace { };
+
+  nixel = callPackage ../tools/nix/nixel { };
+
+  nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { };
+
+  nix-template = callPackage ../tools/package-management/nix-template {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  nltk-data = callPackage ../tools/text/nltk_data { };
+
+  seaborn-data = callPackage ../tools/misc/seaborn-data { };
+
+  nodepy-runtime = with python3.pkgs; toPythonApplication nodepy-runtime;
+
+  nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
+
+  nostr-rs-relay = callPackage ../servers/nostr-rs-relay { };
+
+  notemap = callPackage ../tools/networking/notemap { };
+
+  noteshrink = callPackage ../tools/misc/noteshrink { };
+
+  noti = callPackage ../tools/misc/noti {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  notify = callPackage ../tools/misc/notify { };
+
+  notifymuch = callPackage ../applications/misc/notifymuch { };
+
+  nmh = callPackage ../tools/networking/nmh { };
+
+  npins = callPackage ../tools/nix/npins { };
+
+  nrsc5 = callPackage ../applications/misc/nrsc5 { };
+
+  nsync = callPackage ../development/libraries/nsync { };
+
+  nsz = with python3.pkgs; toPythonApplication nsz;
+
+  nwipe = callPackage ../tools/security/nwipe { };
+
+  nx2elf = callPackage ../tools/compression/nx2elf { };
+
+  nx-libs = callPackage ../tools/X11/nx-libs { };
+
+  nyx = callPackage ../tools/networking/nyx { };
+
+  oci-cli = callPackage ../tools/admin/oci-cli { };
+
+  oci-seccomp-bpf-hook = callPackage ../os-specific/linux/oci-seccomp-bpf-hook { };
+
+  ocrmypdf = with python3.pkgs; toPythonApplication ocrmypdf;
+
+  ocrfeeder = callPackage ../applications/graphics/ocrfeeder { };
+
+  onboard = callPackage ../applications/misc/onboard { };
+
+  oneshot = callPackage ../tools/networking/oneshot { };
+
+  orjail = callPackage ../tools/security/orjail { };
+
+  online-judge-template-generator = python3Packages.callPackage ../tools/misc/online-judge-template-generator { };
+
+  online-judge-tools = with python3.pkgs; toPythonApplication online-judge-tools;
+
+  onnxruntime = callPackage ../development/libraries/onnxruntime {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  xkbd = callPackage ../applications/misc/xkbd { };
+
+  libpsm2 = callPackage ../os-specific/linux/libpsm2 { };
+
+  optar = callPackage ../tools/graphics/optar { };
+
+  oni2 = callPackage ../applications/editors/oni2 { };
+
+  obinskit = callPackage ../applications/misc/obinskit { };
+
+  ockam = callPackage ../tools/networking/ockam {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  odoo = callPackage ../applications/finance/odoo { };
+  odoo15 = callPackage ../applications/finance/odoo/odoo15.nix { };
+
+  odafileconverter = libsForQt5.callPackage ../applications/graphics/odafileconverter { };
+
+  oil-buku = callPackage ../applications/misc/oil-buku { };
+
+  ondir = callPackage ../tools/misc/ondir { };
+
+  opam-publish = callPackage ../development/tools/ocaml/opam-publish { };
+
+  opencomposite = callPackage ../development/libraries/opencomposite { };
+
+  opencomposite-helper = callPackage ../development/libraries/opencomposite/helper.nix { };
+
+  osdlyrics = callPackage ../applications/audio/osdlyrics { };
+
+  ossutil = callPackage ../tools/admin/ossutil { };
+
+  ospd-openvas = callPackage ../tools/security/ospd-openvas { };
+
+  osv-detector = callPackage ../tools/security/osv-detector { };
+
+  osv-scanner = callPackage ../tools/security/osv-scanner { };
+
+  otf2bdf = callPackage ../applications/misc/otf2bdf { };
+
+  pastel = callPackage ../applications/misc/pastel {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  inherit (ocamlPackages) patdiff;
+
+  patool = with python3Packages; toPythonApplication patool;
+
+  pbgopy = callPackage ../tools/text/pbgopy { };
+
+  pbzx = callPackage ../tools/compression/pbzx { };
+
+  pc = callPackage ../tools/misc/pc { };
+
+  pcb2gcode = callPackage ../tools/misc/pcb2gcode { };
+
+  pcp = callPackage ../tools/misc/pcp { };
+
+  persepolis = python3Packages.callPackage ../tools/networking/persepolis {
+    wrapQtAppsHook = qt5.wrapQtAppsHook;
+  };
+
+  pev = callPackage ../development/tools/analysis/pev { };
+
+  phd2 = callPackage ../applications/science/astronomy/phd2 { };
+
+  phoronix-test-suite = callPackage ../tools/misc/phoronix-test-suite { };
+
+  photon = callPackage ../tools/networking/photon { };
+
+  photofield = callPackage ../servers/photofield { };
+
+  photoprism = callPackage ../servers/photoprism { };
+
+  piglit = callPackage ../tools/graphics/piglit { };
+
+  pika = callPackage ../applications/graphics/pika { };
+
+  pkg = callPackage ../tools/package-management/pkg { };
+
+  playerctl = callPackage ../tools/audio/playerctl { };
+
+  pn = callPackage ../tools/text/pn { };
+
+  pocket-casts = callPackage ../applications/audio/pocket-casts {
+    electron = electron_27;
+  };
+
+  portal = callPackage ../tools/misc/portal { };
+
+  pouf = callPackage ../tools/misc/pouf { };
+
+  poweralertd = callPackage ../tools/misc/poweralertd { };
+
+  ps_mem = callPackage ../tools/system/ps_mem { };
+
+  pscale = callPackage ../development/tools/pscale { };
+
+  pulsarctl = callPackage ../tools/admin/pulsarctl { };
+
+  psstop = callPackage ../tools/system/psstop { };
+
+  precice = callPackage ../development/libraries/precice { };
+
+  precice-config-visualizer = callPackage ../tools/misc/precice-config-visualizer { };
+
+  proxmox-backup-client = callPackage ../applications/backup/proxmox-backup-client { };
+
+  pueue = darwin.apple_sdk_11_0.callPackage ../applications/misc/pueue {
+    inherit (darwin.apple_sdk_11_0) Libsystem;
+    inherit (darwin.apple_sdk_11_0.frameworks) SystemConfiguration;
+  };
+
+  pixcat = with python3Packages; toPythonApplication pixcat;
+
+  pixiecore = callPackage ../tools/networking/pixiecore { };
+
+  waitron = callPackage ../tools/networking/waitron { };
+
+  pyCA = callPackage ../applications/video/pyca { };
+
+  pyznap = python3Packages.callPackage ../tools/backup/pyznap { };
+
+  procs = darwin.apple_sdk_11_0.callPackage ../tools/admin/procs {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+    inherit (darwin.apple_sdk_11_0) Libsystem;
+  };
+
+  procyon = callPackage ../tools/misc/procyon { };
+
+  profetch = callPackage ../tools/misc/profetch { };
+
+  psrecord = python3Packages.callPackage ../tools/misc/psrecord { };
+
+  pyenv = callPackage ../development/tools/pyenv { };
+
+  r53-ddns = callPackage ../applications/networking/r53-ddns { };
+
+  rare = python3Packages.callPackage ../games/rare { };
+
+  rblake2sum = callPackage ../tools/security/rblake2sum {
+      inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rblake3sum = callPackage ../tools/security/rblake3sum {
+      inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  reg = callPackage ../tools/virtualization/reg { };
+
+  retool = callPackage ../applications/misc/retool { };
+
+  rex = callPackage ../tools/system/rex { };
+
+  river = callPackage ../applications/window-managers/river { };
+
+  rivercarro = callPackage ../applications/misc/rivercarro { };
+
+  river-luatile = callPackage ../applications/misc/river-luatile{ };
+
+  rmapi = callPackage ../applications/misc/remarkable/rmapi { };
+
+  rmate-sh = callPackage ../tools/misc/rmate-sh { };
+
+  rmview = libsForQt5.callPackage ../applications/misc/remarkable/rmview { };
+
+  rm-improved = callPackage ../applications/misc/rm-improved { };
+
+  remarkable-mouse = python3Packages.callPackage ../applications/misc/remarkable/remarkable-mouse { };
+
+  restream = callPackage ../applications/misc/remarkable/restream { };
+
+  ropgadget = with python3Packages; toPythonApplication ropgadget;
+
+  scour = with python3Packages; toPythonApplication scour;
+
+  see = callPackage ../tools/misc/see { };
+
+  s2png = callPackage ../tools/graphics/s2png { };
+
+  sfz = callPackage ../tools/misc/sfz { };
+
+  sgp4 = callPackage ../development/libraries/sgp4 { };
+
+  shab = callPackage ../tools/text/shab { };
+
+  sheldon = callPackage ../tools/misc/sheldon {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  shell-hist = callPackage ../tools/misc/shell-hist { };
+
+  shellhub-agent = callPackage ../applications/networking/shellhub-agent { };
+
+  shellclear = callPackage ../tools/security/shellclear { };
+
+  shellnoob = callPackage ../tools/security/shellnoob { };
+
+  sheesy-cli = callPackage ../tools/security/sheesy-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  simdjson = callPackage ../development/libraries/simdjson { };
+
+  shisho = callPackage ../tools/security/shisho { };
+
+  sigslot = callPackage ../development/libraries/sigslot { };
+
+  siglo = callPackage ../applications/misc/siglo { };
+
+  simg2img = callPackage ../tools/filesystems/simg2img { };
+
+  snazy = callPackage ../development/tools/snazy { };
+
+  snippetpixie = callPackage ../tools/text/snippetpixie { };
+
+  snowcat = callPackage ../tools/security/snowcat { };
+
+  socklog = callPackage ../tools/system/socklog { };
+
+  soju = callPackage ../applications/networking/soju { };
+
+  spacevim = callPackage ../applications/editors/spacevim { };
+
+  srvc = callPackage ../applications/version-management/srvc { };
+
+  ssmsh = callPackage ../tools/admin/ssmsh { };
+
+  stacs = callPackage ../tools/security/stacs { };
+
+  stagit = callPackage ../development/tools/stagit { };
+
+  starboard = callPackage ../applications/networking/cluster/starboard { };
+
+  statserial = callPackage ../tools/misc/statserial { };
+
+  steampipe = callPackage ../tools/misc/steampipe { };
+
+  step-ca = callPackage ../tools/security/step-ca {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  step-cli = callPackage ../tools/security/step-cli { };
+
+  step-kms-plugin = callPackage ../tools/security/step-kms-plugin { };
+
+  string-machine = callPackage ../applications/audio/string-machine { };
+
+  stripe-cli = callPackage ../tools/admin/stripe-cli { };
+
+  bash-supergenpass = callPackage ../tools/security/bash-supergenpass { };
+
+  swappy = callPackage ../applications/misc/swappy { gtk = gtk3; };
+
+  swapspace = callPackage ../tools/admin/swapspace { };
+
+  swego = callPackage ../servers/swego { };
+
+  sydbox = callPackage ../os-specific/linux/sydbox { };
+
+  synth = callPackage ../tools/misc/synth {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security;
+  };
+
+  syscall_limiter = callPackage ../os-specific/linux/syscall_limiter { };
+
+  skeema = callPackage ../tools/system/skeema { };
+
+  syslogng = callPackage ../tools/system/syslog-ng { };
+
+  svt-av1 = callPackage ../tools/video/svt-av1 { };
+
+  inherit (callPackages ../servers/rainloop { })
+    rainloop-community
+    rainloop-standard;
+
+  rav1e = callPackage ../tools/video/rav1e {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  raven-reader = callPackage ../applications/networking/newsreaders/raven-reader { };
+
+  razergenie = libsForQt5.callPackage ../applications/misc/razergenie { };
+
+  replay-sorcery = callPackage ../tools/video/replay-sorcery { };
+
+  recyclarr = callPackage ../tools/video/recyclarr { };
+
+  tsduck = callPackage ../tools/video/tsduck { };
+
+  turso-cli = callPackage ../development/tools/turso-cli {};
+
+  ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security;
+  };
+
+  ripe-atlas-tools = callPackage ../tools/networking/ripe-atlas-tools { };
+
+  roundcube = callPackage ../servers/roundcube { };
+
+  roundcubePlugins = dontRecurseIntoAttrs (callPackage ../servers/roundcube/plugins { });
+
+  routersploit = callPackage ../tools/security/routersploit { };
+
+  routinator = callPackage ../servers/routinator {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rsbep = callPackage ../tools/backup/rsbep { };
+
+  rsbkb = callPackage ../tools/text/rsbkb { };
+
+  rsign2 = callPackage ../tools/security/rsign2 { };
+
+  rsyslog = callPackage ../tools/system/rsyslog {
+    withHadoop = false; # Currently Broken
+    withKsi = false; # Currently Broken
+  };
+
+  rsyslog-light = rsyslog.override {
+    withKrb5 = false;
+    withSystemd = false;
+    withJemalloc = false;
+    withMysql = false;
+    withPostgres = false;
+    withDbi = false;
+    withNetSnmp = false;
+    withUuid = false;
+    withCurl = false;
+    withGnutls = false;
+    withGcrypt = false;
+    withLognorm = false;
+    withMaxminddb = false;
+    withOpenssl = false;
+    withRelp = false;
+    withKsi = false;
+    withLogging = false;
+    withNet = false;
+    withHadoop = false;
+    withRdkafka = false;
+    withMongo = false;
+    withCzmq = false;
+    withRabbitmq = false;
+    withHiredis = false;
+  };
+
+  rtrtr = callPackage ../servers/rtrtr {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  xlogo = callPackage ../tools/X11/xlogo { };
+
+  xmlbeans = callPackage ../tools/misc/xmlbeans { };
+
+  xmlsort = perlPackages.XMLFilterSort;
+
+  xmousepasteblock = callPackage ../tools/X11/xmousepasteblock { };
+
+  mcrypt = callPackage ../tools/misc/mcrypt { };
+
+  mongoaudit = callPackage ../tools/security/mongoaudit { };
+
+  mongodb-compass = callPackage ../tools/misc/mongodb-compass { };
+
+  mongodb-tools = callPackage ../tools/misc/mongodb-tools { };
+
+  moosefs = callPackage ../tools/filesystems/moosefs { };
+
+  mountain-duck = callPackage ../tools/filesystems/mountain-duck { };
+
+  mox = callPackage ../servers/mail/mox { };
+
+  mozlz4a = callPackage ../tools/compression/mozlz4a { };
+
+  msr-tools = callPackage ../os-specific/linux/msr-tools { };
+
+  mstflint = callPackage ../tools/misc/mstflint { };
+
+  msldapdump = callPackage ../tools/security/msldapdump { };
+
+  mslink = callPackage ../tools/misc/mslink { };
+
+  mceinject = callPackage ../os-specific/linux/mceinject { };
+
+  mcelog = callPackage ../os-specific/linux/mcelog {
+    util-linux = util-linuxMinimal;
+  };
+
+  sqldef = callPackage ../development/tools/sqldef { };
+
+  sqlint = callPackage ../development/tools/sqlint { };
+
+  squawk = callPackage ../development/tools/squawk { };
+
+  antibody = callPackage ../shells/zsh/antibody { };
+
+  antidote = callPackage ../shells/zsh/antidote { };
+
+  antigen = callPackage ../shells/zsh/antigen { };
+
+  apparix = callPackage ../tools/misc/apparix { };
+
+  apc-temp-fetch = with python3.pkgs; callPackage ../tools/networking/apc-temp-fetch { };
+
+  arping = callPackage ../tools/networking/arping { };
+
+  arpoison = callPackage ../tools/networking/arpoison { };
+
+  asciidoc = callPackage ../tools/typesetting/asciidoc {
+    inherit (python3.pkgs) pygments matplotlib numpy aafigure recursivePthLoader;
+    w3m = w3m-batch;
+    enableStandardFeatures = false;
+  };
+
+  asciidoc-full = asciidoc.override {
+    enableStandardFeatures = true;
+  };
+
+  asciidoc-full-with-plugins = asciidoc.override {
+    enableStandardFeatures = true;
+    enableExtraPlugins = true;
+  };
+
+  asciidoctor = callPackage ../tools/typesetting/asciidoctor { };
+
+  asciidoctor-with-extensions = callPackage ../tools/typesetting/asciidoctor-with-extensions { };
+
+  asciidoctorj = callPackage ../tools/typesetting/asciidoctorj { };
+
+  asunder = callPackage ../applications/audio/asunder { };
+
+  autossh = callPackage ../tools/networking/autossh { };
+
+  assh = callPackage ../tools/networking/assh { };
+
+  b2sum = callPackage ../tools/security/b2sum {
+    inherit (llvmPackages) openmp;
+  };
+
+  bacula = callPackage ../tools/backup/bacula {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
+  };
+
+  bacon = callPackage ../development/tools/bacon {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  bats = callPackage ../development/interpreters/bats { };
+
+  bbe = callPackage ../tools/misc/bbe { };
+
+  bkcrack = callPackage ../tools/security/bkcrack {
+    inherit (llvmPackages) openmp;
+  };
+
+  bdsync = callPackage ../tools/backup/bdsync { };
+
+  beamerpresenter = beamerpresenter-mupdf;
+
+  beamerpresenter-mupdf = qt6Packages.callPackage ../applications/office/beamerpresenter {
+    useMupdf = true;
+    usePoppler = false;
+  };
+
+  beamerpresenter-poppler = qt6Packages.callPackage ../applications/office/beamerpresenter {
+    useMupdf = false;
+    usePoppler = true;
+  };
+
+  beanstalkd = callPackage ../servers/beanstalkd { };
+
+  bee = callPackage ../applications/networking/bee/bee.nix {
+    version = "release";
+  };
+
+  bee-unstable = bee.override {
+    version = "unstable";
+  };
+
+  bee-clef = callPackage ../applications/networking/bee/bee-clef.nix { };
+
+  beetsPackages = lib.recurseIntoAttrs (callPackage ../tools/audio/beets { });
+  inherit (beetsPackages) beets beets-unstable;
+
+  bento4 = callPackage ../tools/video/bento4 { };
+
+  bepasty = callPackage ../tools/misc/bepasty { };
+
+  bettercap = callPackage ../tools/security/bettercap { };
+
+  bfs = callPackage ../tools/system/bfs { };
+
+  bevelbar = callPackage ../tools/X11/bevelbar { };
+
+  bgs = callPackage ../tools/X11/bgs { };
+
+  bibclean = callPackage ../tools/typesetting/bibclean { };
+
+  biber = callPackage ../tools/typesetting/biber { };
+
+  biber-ms = callPackage ../tools/typesetting/biber-ms { };
+
+  biblatex-check = callPackage ../tools/typesetting/biblatex-check { };
+
+  binlore = callPackage ../development/tools/analysis/binlore { };
+
+  birdfont = callPackage ../tools/misc/birdfont { };
+  xmlbird = callPackage ../tools/misc/birdfont/xmlbird.nix { stdenv = gccStdenv; };
+
+  blueberry = callPackage ../tools/bluetooth/blueberry { };
+
+  blueman = callPackage ../tools/bluetooth/blueman { };
+
+  bluetuith = callPackage ../tools/bluetooth/bluetuith { };
+
+  bmrsa = callPackage ../tools/security/bmrsa/11.nix { };
+
+  bogofilter = callPackage ../tools/misc/bogofilter { };
+
+  bom = callPackage ../tools/admin/bom { };
+
+  bomber-go = callPackage ../development/tools/bomber-go { };
+
+  bomutils = callPackage ../tools/archivers/bomutils { };
+
+  boofuzz= callPackage ../tools/security/boofuzz { };
+
+  briar-desktop = callPackage ../applications/networking/instant-messengers/briar-desktop { };
+
+  bsdbuild = callPackage ../development/tools/misc/bsdbuild { };
+
+  bsdiff = callPackage ../tools/compression/bsdiff { };
+
+  btar = callPackage ../tools/backup/btar { };
+
+  bumpver = callPackage ../applications/version-management/bumpver { };
+
+  bup = callPackage ../tools/backup/bup { };
+
+  bupstash = darwin.apple_sdk_11_0.callPackage ../tools/backup/bupstash { };
+
+  burp = callPackage ../tools/backup/burp { };
+
+  buku = callPackage ../applications/misc/buku { };
+
+  byzanz = callPackage ../applications/video/byzanz { };
+
+  algolia-cli = callPackage ../development/tools/algolia-cli { };
+
+  anydesk = callPackage ../applications/networking/remote/anydesk { };
+
+  anystyle-cli = callPackage ../tools/misc/anystyle-cli { };
+
+  atool = callPackage ../tools/archivers/atool { };
+
+  bash_unit = callPackage ../tools/misc/bash_unit { };
+
+  boltbrowser = callPackage ../tools/misc/boltbrowser { };
+
+  bsc = callPackage ../tools/compression/bsc {
+    inherit (llvmPackages) openmp;
+  };
+
+  bzip2 = callPackage ../tools/compression/bzip2 { };
+
+  bzip2_1_1 = callPackage ../tools/compression/bzip2/1_1.nix { };
+
+  bzip3 = callPackage ../tools/compression/bzip3 {
+    stdenv = clangStdenv;
+  };
+
+  cabextract = callPackage ../tools/archivers/cabextract { };
+
+  cadaver = callPackage ../tools/networking/cadaver { };
+
+  davix = callPackage ../tools/networking/davix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  davix-copy = davix.override { enableThirdPartyCopy = true; };
+
+  cantata = libsForQt5.callPackage ../applications/audio/cantata { };
+
+  cantoolz = callPackage ../tools/networking/cantoolz { };
+
+  can-utils = callPackage ../os-specific/linux/can-utils { };
+
+  cannelloni = callPackage ../os-specific/linux/cannelloni { };
+
+  caudec = callPackage ../applications/audio/caudec { };
+
+  ccd2iso = callPackage ../tools/cd-dvd/ccd2iso { };
+
+  ccid = callPackage ../tools/security/ccid { };
+
+  ccrypt = callPackage ../tools/security/ccrypt { };
+
+  ccze = callPackage ../tools/misc/ccze { };
+
+  cdecl = callPackage ../development/tools/cdecl { };
+
+  cdi2iso = callPackage ../tools/cd-dvd/cdi2iso { };
+
+  cdist = python3Packages.callPackage ../tools/admin/cdist { };
+
+  cdimgtools = callPackage ../tools/cd-dvd/cdimgtools { };
+
+  cdpr = callPackage ../tools/networking/cdpr { };
+
+  cdrdao = callPackage ../tools/cd-dvd/cdrdao {
+    inherit (darwin.apple_sdk.frameworks) CoreServices IOKit;
+  };
+
+  cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
+
+  cdrtools = callPackage ../tools/cd-dvd/cdrtools {
+    stdenv = if stdenv.isDarwin then overrideLibcxx llvmPackages_14.stdenv else stdenv;
+    inherit (darwin.apple_sdk.frameworks) Carbon IOKit;
+  };
+
+  cemu-ti = qt5.callPackage ../applications/science/math/cemu-ti { };
+
+  cider = callPackage ../applications/audio/cider { };
+
+  iat = callPackage ../tools/cd-dvd/iat { };
+
+  isolyzer = callPackage ../tools/cd-dvd/isolyzer { };
+
+  isomd5sum = callPackage ../tools/cd-dvd/isomd5sum { };
+
+  mdf2iso = callPackage ../tools/cd-dvd/mdf2iso { };
+
+  nrg2iso = callPackage ../tools/cd-dvd/nrg2iso { };
+
+  ceph-csi = callPackage ../tools/filesystems/ceph-csi { };
+
+  libceph = ceph.lib;
+  inherit (callPackages ../tools/filesystems/ceph {
+    lua = lua5_4;
+    fmt = fmt_8;
+  })
+    ceph
+    ceph-client;
+  ceph-dev = ceph;
+
+  cfdg = callPackage ../tools/graphics/cfdg { };
+
+  cglm = callPackage ../development/libraries/cglm { };
+
+  cgreen = callPackage ../development/libraries/cgreen { };
+
+  chain-bench = callPackage ../tools/security/chain-bench { };
+
+  chainsaw = callPackage ../tools/security/chainsaw { };
+
+  checkinstall = callPackage ../tools/package-management/checkinstall { };
+
+  checkmake = callPackage ../development/tools/checkmake { };
+
+  cherrybomb = callPackage ../tools/security/cherrybomb { };
+
+  chit = callPackage ../development/tools/chit { };
+
+  chkrootkit = callPackage ../tools/security/chkrootkit { };
+
+  chrony = callPackage ../tools/networking/chrony { };
+
+  chunkfs = callPackage ../tools/filesystems/chunkfs { };
+
+  chunksync = callPackage ../tools/backup/chunksync { };
+
+  cicero-tui = callPackage ../tools/misc/cicero-tui { };
+
+  cilium-cli = callPackage ../applications/networking/cluster/cilium { };
+
+  cjdns = callPackage ../tools/networking/cjdns { };
+  cjdns-tools = callPackage ../tools/admin/cjdns-tools { };
+
+  cjson = callPackage ../development/libraries/cjson { };
+
+  cksfv = callPackage ../tools/networking/cksfv { };
+
+  clementine = libsForQt5.callPackage ../applications/audio/clementine {
+    gst_plugins =
+      with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav ];
+    protobuf = protobuf_21;
+  };
+
+  mellowplayer = libsForQt5.callPackage ../applications/audio/mellowplayer { };
+
+  ciopfs = callPackage ../tools/filesystems/ciopfs { };
+
+  circleci-cli = callPackage ../development/tools/misc/circleci-cli { };
+
+  circus = with python310Packages; toPythonApplication circus;
+
+  cirrus-cli = callPackage ../development/tools/continuous-integration/cirrus-cli { };
+
+  cirrusgo = callPackage ../tools/security/cirrusgo { };
+
+  inherit (callPackage ../applications/networking/remote/citrix-workspace { })
+    citrix_workspace_23_02_0
+    citrix_workspace_23_07_0
+    citrix_workspace_23_09_0
+    citrix_workspace_23_11_0
+  ;
+  citrix_workspace = citrix_workspace_23_11_0;
+
+  clima = callPackage ../tools/text/clima { };
+
+  cmigemo = callPackage ../tools/text/cmigemo { };
+
+  cmospwd = callPackage ../tools/security/cmospwd { };
+
+  cmst = libsForQt5.callPackage ../tools/networking/cmst { };
+
+  cmt = callPackage ../applications/audio/cmt { };
+
+  crlfsuite = callPackage ../tools/security/crlfsuite { };
+
+  crlfuzz = callPackage ../tools/security/crlfuzz { };
+
+  hedgedoc = callPackage ../servers/web-apps/hedgedoc { };
+
+  colord = callPackage ../tools/misc/colord { };
+
+  colord-gtk = callPackage ../tools/misc/colord-gtk { };
+
+  colord-gtk4 = colord-gtk.override { withGtk4 = true; };
+
+  colordiff = callPackage ../tools/text/colordiff { };
+
+  connect = callPackage ../tools/networking/connect { };
+
+  conspy = callPackage ../os-specific/linux/conspy { };
+
+  connmanFull = connman.override {
+    # TODO: Why is this in `connmanFull` and not the default build? See TODO in
+    # nixos/modules/services/networking/connman.nix (near the assertions)
+    enableNetworkManagerCompatibility = true;
+    enableHh2serialGps = true;
+    enableL2tp = true;
+    enableIospm = true;
+    enableTist = true;
+  };
+
+  connmanMinimal = connman.override {
+    # enableDatafiles = false; # If disabled, configuration and data files are not installed
+    # enableEthernet = false; # If disabled no ethernet connection can be performed
+    # enableWifi = false; # If disabled no WiFi connection can be performed
+    enableBluetooth = false;
+    enableClient = false;
+    enableDundee = false;
+    enableGadget = false;
+    enableLoopback = false;
+    enableNeard = false;
+    enableOfono = false;
+    enableOpenconnect = false;
+    enableOpenvpn = false;
+    enablePacrunner = false;
+    enablePolkit = false;
+    enablePptp = false;
+    enableStats = false;
+    enableTools = false;
+    enableVpnc = false;
+    enableWireguard = false;
+    enableWispr = false;
+  };
+
+  convertlit = callPackage ../tools/text/convertlit { };
+
+  collectd = callPackage ../tools/system/collectd {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  collectd-data = callPackage ../tools/system/collectd/data.nix { };
+
+  colormake = callPackage ../development/tools/build-managers/colormake { };
+
+  cpuminer = callPackage ../tools/misc/cpuminer { };
+
+  crabz = callPackage ../tools/compression/crabz { };
+
+  ethash = callPackage ../development/libraries/ethash { };
+
+  cuetools = callPackage ../tools/cd-dvd/cuetools { };
+
+  u3-tool = callPackage ../tools/filesystems/u3-tool { };
+
+  unifdef = callPackage ../development/tools/misc/unifdef { };
+
+  unify = with python3Packages; toPythonApplication unify;
+
+  unionfs-fuse = callPackage ../tools/filesystems/unionfs-fuse { };
+
+  unparam = callPackage ../tools/misc/unparam { };
+
+  inherit (nodePackages) uppy-companion;
+
+  usb-modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
+  usb-modeswitch-data = callPackage ../development/tools/misc/usb-modeswitch/data.nix { };
+
+  usbsdmux = callPackage ../development/tools/misc/usbsdmux { };
+
+  usbview = callPackage ../tools/misc/usbview { };
+
+  usbimager = callPackage ../tools/misc/usbimager { };
+
+  uwuify = callPackage ../tools/misc/uwuify { };
+
+  anthy = callPackage ../tools/inputmethods/anthy { };
+
+  evdevremapkeys = callPackage ../tools/inputmethods/evdevremapkeys { };
+
+  evsieve = callPackage ../tools/inputmethods/evsieve { };
+
+  eyedropper = callPackage ../applications/graphics/eyedropper { };
+
+  persistent-evdev = python3Packages.callPackage ../servers/persistent-evdev { };
+
+  evscript = callPackage ../tools/inputmethods/evscript { };
+
+  keyd = callPackage ../tools/inputmethods/keyd { };
+
+  keymapper = callPackage ../tools/inputmethods/keymapper { };
+
+  twitch-tui = callPackage ../applications/networking/instant-messengers/twitch-tui {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security CoreServices SystemConfiguration;
+  };
+
+  gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { stdenv = gcc10StdenvCompat; };
+
+  kime = callPackage ../tools/inputmethods/kime { };
+
+  libpinyin = callPackage ../development/libraries/libpinyin { };
+
+  inherit (import ../development/libraries/libsbsms pkgs)
+    libsbsms
+    libsbsms_2_0_2
+    libsbsms_2_3_0
+  ;
+
+  libskk = callPackage ../development/libraries/libskk {
+    inherit (gnome) gnome-common;
+  };
+
+  m17-cxx-demod = callPackage ../applications/radio/m17-cxx-demod { };
+
+  m17n_db = callPackage ../tools/inputmethods/m17n-db { };
+
+  m17n_lib = callPackage ../tools/inputmethods/m17n-lib { };
+
+  libotf = callPackage ../tools/inputmethods/m17n-lib/otf.nix { };
+
+  netbird = callPackage ../tools/networking/netbird {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa IOKit Kernel UserNotifications WebKit;
+  };
+
+  netbird-ui = netbird.override {
+    ui = true;
+  };
+
+  netevent = callPackage ../tools/inputmethods/netevent { };
+
+  netplan = callPackage ../tools/admin/netplan { };
+
+  skktools = callPackage ../tools/inputmethods/skk/skktools { };
+  skk-dicts = callPackage ../tools/inputmethods/skk/skk-dicts { };
+
+  libkkc-data = callPackage ../data/misc/libkkc-data { };
+
+  libkkc = callPackage ../tools/inputmethods/libkkc { };
+
+  ibus = callPackage ../tools/inputmethods/ibus { };
+
+  ibus-engines = recurseIntoAttrs {
+    anthy = callPackage ../tools/inputmethods/ibus-engines/ibus-anthy { };
+
+    bamboo = callPackage ../tools/inputmethods/ibus-engines/ibus-bamboo { };
+
+    hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul { };
+
+    kkc = callPackage ../tools/inputmethods/ibus-engines/ibus-kkc { };
+
+    libpinyin = callPackage ../tools/inputmethods/ibus-engines/ibus-libpinyin { };
+
+    libthai = callPackage ../tools/inputmethods/ibus-engines/ibus-libthai { };
+
+    m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n { };
+
+    mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
+      stdenv = clangStdenv;
+      protobuf = pkgs.protobuf_21.overrideDerivation (_: { stdenv = clangStdenv; });
+    };
+
+    openbangla-keyboard = libsForQt5.callPackage ../applications/misc/openbangla-keyboard { withIbusSupport = true; };
+
+    rime = callPackage ../tools/inputmethods/ibus-engines/ibus-rime { };
+
+    table = callPackage ../tools/inputmethods/ibus-engines/ibus-table { };
+
+    table-chinese = callPackage ../tools/inputmethods/ibus-engines/ibus-table-chinese {
+      ibus-table = ibus-engines.table;
+    };
+
+    table-others = callPackage ../tools/inputmethods/ibus-engines/ibus-table-others {
+      ibus-table = ibus-engines.table;
+    };
+
+    uniemoji = callPackage ../tools/inputmethods/ibus-engines/ibus-uniemoji { };
+
+    typing-booster-unwrapped = callPackage ../tools/inputmethods/ibus-engines/ibus-typing-booster { };
+
+    typing-booster = callPackage ../tools/inputmethods/ibus-engines/ibus-typing-booster/wrapper.nix {
+      typing-booster = ibus-engines.typing-booster-unwrapped;
+    };
+  };
+
+  ibus-with-plugins = callPackage ../tools/inputmethods/ibus/wrapper.nix { };
+
+  ibus-theme-tools = callPackage ../tools/misc/ibus-theme-tools { };
+
+  interception-tools = callPackage ../tools/inputmethods/interception-tools { };
+  interception-tools-plugins = recurseIntoAttrs {
+    caps2esc = callPackage ../tools/inputmethods/interception-tools/caps2esc.nix { };
+    dual-function-keys = callPackage ../tools/inputmethods/interception-tools/dual-function-keys.nix { };
+  };
+
+  age = callPackage ../tools/security/age { };
+
+  agebox = callPackage ../tools/security/agebox { };
+
+  age-plugin-ledger = callPackage ../tools/security/age-plugin-ledger {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  age-plugin-tpm = callPackage ../tools/security/age-plugin-tpm { };
+
+  age-plugin-yubikey = darwin.apple_sdk_11_0.callPackage ../tools/security/age-plugin-yubikey {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation PCSC IOKit;
+  };
+
+  artim-dark = callPackage ../data/themes/artim-dark { };
+
+  bbin = callPackage ../development/tools/bbin { };
+
+  blacken-docs = callPackage ../tools/misc/blacken-docs { };
+
+  bore = callPackage ../tools/networking/bore {
+    inherit (darwin) Libsystem;
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
+  brotli = callPackage ../tools/compression/brotli { };
+
+  biodiff = callPackage ../development/tools/biodiff { };
+
+  biome = callPackage ../development/tools/biome { };
+
+  biosdevname = callPackage ../tools/networking/biosdevname { };
+
+  bluetooth_battery = python3Packages.callPackage ../applications/misc/bluetooth_battery { };
+
+  boa = callPackage ../development/web/boa { };
+
+  bombardier = callPackage ../tools/networking/bombardier { };
+
+  caeml = callPackage ../applications/networking/mailreaders/caeml { };
+
+  calyx-vpn = libsForQt5.callPackage ../tools/networking/bitmask-vpn {
+    provider = "calyx";
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  cask-server = libsForQt5.callPackage ../applications/misc/cask-server { };
+
+  cc2538-bsl = callPackage ../tools/misc/cc2538-bsl { };
+
+  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true; };
+  code-browser-gtk2 = callPackage ../applications/editors/code-browser { withGtk2 = true; };
+  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk3 = true; };
+
+  certdump = callPackage ../tools/security/certdump { };
+
+  certstrap = callPackage ../tools/security/certstrap { };
+
+  cfssl = callPackage ../tools/security/cfssl { };
+
+  cfs-zen-tweaks = callPackage ../os-specific/linux/cfs-zen-tweaks { };
+
+  chafa = callPackage ../tools/misc/chafa {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  changetower = callPackage ../tools/networking/changetower { };
+
+  chatblade = callPackage ../applications/misc/chatblade { };
+
+  checkbashisms = callPackage ../development/tools/misc/checkbashisms { };
+
+  checkmate = callPackage ../development/tools/checkmate { };
+
+  circup = callPackage ../development/tools/circup { };
+
+  civetweb = callPackage ../development/libraries/civetweb { };
+
+  ckb-next = libsForQt5.callPackage ../tools/misc/ckb-next { };
+
+  clamav = darwin.apple_sdk_11_0.callPackage ../tools/security/clamav {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation;
+  };
+
+  client-ip-echo = callPackage ../servers/misc/client-ip-echo { };
+
+  cloc = callPackage ../tools/misc/cloc { };
+
+  clolcat = callPackage ../tools/misc/clolcat { };
+
+  cloog = callPackage ../development/libraries/cloog {
+    isl = isl_0_14;
+  };
+
+  cloog_0_18_0 = callPackage ../development/libraries/cloog/0.18.0.nix {
+    isl = isl_0_11;
+  };
+
+  cloogppl = callPackage ../development/libraries/cloog-ppl { };
+
+  cloud-utils = callPackage ../tools/misc/cloud-utils { };
+
+  cloudlist = callPackage ../tools/security/cloudlist { };
+
+  cmdpack = callPackages ../tools/misc/cmdpack { };
+
+  cobalt = callPackage ../applications/misc/cobalt {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  cobang = python3Packages.callPackage ../applications/misc/cobang {
+    gst-plugins-good = gst_all_1.gst-plugins-good.override { gtkSupport = true; };
+  };
+
+  cocoapods = callPackage ../development/tools/cocoapods { };
+
+  cocoapods-beta = lowPrio (callPackage ../development/tools/cocoapods { beta = true; });
+
+  cocom = callPackage ../tools/networking/cocom {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  codeberg-pages = callPackage ../development/tools/continuous-integration/codeberg-pages { };
+
+  codebraid = callPackage ../tools/misc/codebraid { };
+
+  codemov = callPackage ../tools/misc/codemov { };
+
+  codevis = callPackage ../tools/misc/codevis { };
+
+  compass = callPackage ../development/tools/compass { };
+
+  cone = callPackage ../development/compilers/cone {
+    llvmPackages = llvmPackages_13;
+  };
+
+  conda = callPackage ../tools/package-management/conda { };
+
+  conduktor = callPackage ../applications/misc/conduktor { };
+
+  console-bridge = callPackage ../development/libraries/console-bridge { };
+
+  convbin = callPackage ../tools/misc/convbin { };
+
+  convimg = callPackage ../tools/misc/convimg { };
+
+  convfont = callPackage ../tools/misc/convfont { };
+
+  convmv = callPackage ../tools/misc/convmv { };
+
+  convoy = callPackage ../tools/filesystems/convoy { };
+
+  cpcfs = callPackage ../tools/filesystems/cpcfs { };
+
+  coreutils =  callPackage ../tools/misc/coreutils { };
+
+  # The coreutils above are built with dependencies from
+  # bootstrapping. We cannot override it here, because that pulls in
+  # openssl from the previous stage as well.
+  coreutils-full = callPackage ../tools/misc/coreutils { minimal = false; };
+  coreutils-prefixed = coreutils.override { withPrefix = true; singleBinary = false; };
+
+  corkscrew = callPackage ../tools/networking/corkscrew { };
+
+  cowpatty = callPackage ../tools/security/cowpatty { };
+
+  cpio = callPackage ../tools/archivers/cpio { };
+
+  cpufetch = callPackage ../tools/misc/cpufetch { };
+
+  crackmapexec = callPackage ../tools/security/crackmapexec { };
+
+  crackxls = callPackage ../tools/security/crackxls { };
+
+  crd2pulumi = callPackage ../development/tools/crd2pulumi { };
+
+  create-cycle-app = nodePackages.create-cycle-app;
+
+  createrepo_c = callPackage ../tools/package-management/createrepo_c { };
+
+  cringify = callPackage ../tools/text/cringify { };
+
+  cromfs = callPackage ../tools/archivers/cromfs {
+    stdenv = gcc10StdenvCompat;
+  };
+
+  cron = callPackage ../tools/system/cron { };
+
+  ctlptl = callPackage ../development/tools/ctlptl { };
+
+  dumpnar = callPackage ../tools/archivers/dumpnar { };
+
+  snooze = callPackage ../tools/system/snooze { };
+
+  cudaPackages_10_0 = callPackage ./cuda-packages.nix { cudaVersion = "10.0"; };
+  cudaPackages_10_1 = callPackage ./cuda-packages.nix { cudaVersion = "10.1"; };
+  cudaPackages_10_2 = callPackage ./cuda-packages.nix { cudaVersion = "10.2"; };
+  cudaPackages_10 = recurseIntoAttrs cudaPackages_10_2;
+
+  cudaPackages_11_0 = callPackage ./cuda-packages.nix { cudaVersion = "11.0"; };
+  cudaPackages_11_1 = callPackage ./cuda-packages.nix { cudaVersion = "11.1"; };
+  cudaPackages_11_2 = callPackage ./cuda-packages.nix { cudaVersion = "11.2"; };
+  cudaPackages_11_3 = callPackage ./cuda-packages.nix { cudaVersion = "11.3"; };
+  cudaPackages_11_4 = callPackage ./cuda-packages.nix { cudaVersion = "11.4"; };
+  cudaPackages_11_5 = callPackage ./cuda-packages.nix { cudaVersion = "11.5"; };
+  cudaPackages_11_6 = callPackage ./cuda-packages.nix { cudaVersion = "11.6"; };
+  cudaPackages_11_7 = callPackage ./cuda-packages.nix { cudaVersion = "11.7"; };
+  cudaPackages_11_8 = callPackage ./cuda-packages.nix { cudaVersion = "11.8"; };
+  cudaPackages_11 = recurseIntoAttrs cudaPackages_11_8;
+
+  cudaPackages_12_0 = callPackage ./cuda-packages.nix { cudaVersion = "12.0"; };
+  cudaPackages_12_1 = callPackage ./cuda-packages.nix { cudaVersion = "12.1"; };
+  cudaPackages_12_2 = callPackage ./cuda-packages.nix { cudaVersion = "12.2"; };
+  cudaPackages_12_3 = callPackage ./cuda-packages.nix { cudaVersion = "12.3"; };
+  cudaPackages_12 = recurseIntoAttrs cudaPackages_12_0;
+
+  # Use the older cudaPackages for tensorflow and jax, as determined by cudnn
+  # compatibility: https://www.tensorflow.org/install/source#gpu
+  cudaPackagesGoogle = cudaPackages_11;
+
+  # TODO: try upgrading once there is a cuDNN release supporting CUDA 12. No
+  # such cuDNN release as of 2023-01-10.
+  cudaPackages = cudaPackages_11;
+
+  # TODO: move to alias
+  cudatoolkit = cudaPackages.cudatoolkit;
+  cudatoolkit_11 = cudaPackages_11.cudatoolkit;
+
+  curie = callPackage ../data/fonts/curie { };
+
+  curlFull = curl.override {
+    ldapSupport = true;
+    gsaslSupport = true;
+    rtmpSupport = true;
+    pslSupport = true;
+  };
+
+  curlHTTP3 = curl.override {
+    openssl = quictls;
+    http3Support = true;
+  };
+
+  curl = curlMinimal.override ({
+    idnSupport = true;
+    zstdSupport = true;
+  } // lib.optionalAttrs (!stdenv.hostPlatform.isStatic) {
+    brotliSupport = true;
+  });
+
+  curlMinimal = callPackage ../tools/networking/curl { };
+
+  curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
+
+  curl-impersonate = darwin.apple_sdk_11_0.callPackage ../tools/networking/curl-impersonate { };
+  inherit (curl-impersonate) curl-impersonate-ff curl-impersonate-chrome;
+
+  curlie = callPackage ../tools/networking/curlie { };
+
+  trurl = callPackage ../tools/networking/trurl { };
+
+  curv = callPackage ../applications/graphics/curv { };
+
+  cunit = callPackage ../tools/misc/cunit { };
+  bcunit = callPackage ../tools/misc/bcunit { };
+
+  curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
+
+  tcp-cutter = callPackage ../tools/networking/tcp-cutter { };
+
+  cwebbin = callPackage ../development/tools/misc/cwebbin { };
+
+  cve-bin-tool = python3Packages.callPackage ../tools/security/cve-bin-tool { };
+
+  cvs-fast-export = callPackage ../applications/version-management/cvs-fast-export { };
+
+  dadadodo = callPackage ../tools/text/dadadodo { };
+
+  daemon = callPackage ../tools/system/daemon { };
+
+  daemonize = callPackage ../tools/system/daemonize { };
+
+  danger-gitlab = callPackage ../applications/version-management/danger-gitlab { };
+
+  daq = callPackage ../applications/networking/ids/daq { };
+
+  dar = callPackage ../tools/backup/dar {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+
+  darkhttpd = callPackage ../servers/http/darkhttpd { };
+
+  darkstat = callPackage ../tools/networking/darkstat { };
+
+  dav1d = callPackage ../development/libraries/dav1d { };
+
+  davfs2 = callPackage ../tools/filesystems/davfs2 { };
+
+  dbeaver = callPackage ../applications/misc/dbeaver { };
+
+  dbench = callPackage ../development/tools/misc/dbench { };
+
+  dclxvi = callPackage ../development/libraries/dclxvi { };
+
+  dconf2nix = callPackage ../development/tools/haskell/dconf2nix { };
+
+  dcraw = callPackage ../tools/graphics/dcraw { };
+
+  dcs = callPackage ../tools/text/dcs { };
+
+  dcfldd = callPackage ../tools/system/dcfldd { };
+
+  debian-devscripts = callPackage ../tools/misc/debian-devscripts { };
+
+  debian-goodies = callPackage ../applications/misc/debian-goodies { };
+
+  debootstrap = callPackage ../tools/misc/debootstrap { };
+
+  debugedit = callPackage ../development/tools/misc/debugedit { };
+
+  deer = callPackage ../shells/zsh/zsh-deer { };
+
+  deno = callPackage ../development/web/deno { };
+
+  deqp-runner = callPackage ../tools/graphics/deqp-runner { };
+
+  detox = callPackage ../tools/misc/detox { };
+
+  devilspie2 = callPackage ../applications/misc/devilspie2 {
+    gtk = gtk3;
+  };
+
+  dex = callPackage ../tools/X11/dex { };
+
+  ddccontrol = callPackage ../tools/misc/ddccontrol { };
+
+  ddccontrol-db = callPackage ../data/misc/ddccontrol-db { };
+
+  ddcui = libsForQt5.callPackage ../applications/misc/ddcui { };
+
+  ddcutil = callPackage ../tools/misc/ddcutil { };
+
+  ddclient = callPackage ../tools/networking/ddclient { };
+
+  dd_rescue = callPackage ../tools/system/dd_rescue { };
+
+  ddh = callPackage ../tools/system/ddh { };
+
+  ddrescue = callPackage ../tools/system/ddrescue { };
+
+  ddrescueview = callPackage ../tools/system/ddrescueview { };
+
+  ddrutility = callPackage ../tools/system/ddrutility { };
+
+  inherit (callPackages ../applications/networking/p2p/deluge { })
+    deluge-gtk
+    deluged
+    deluge;
+
+  deluge-2_x = deluge;
+
+  der-ascii = callPackage ../tools/security/der-ascii { };
+
+  desktop-file-utils = callPackage ../tools/misc/desktop-file-utils { };
+
+  dfc  = callPackage ../tools/system/dfc { };
+
+  dfrs  = callPackage ../tools/system/dfrs { };
+
+  dev86 = callPackage ../development/compilers/dev86 { };
+
+  diskrsync = callPackage ../tools/backup/diskrsync { };
+
+  djbdns = callPackage ../tools/networking/djbdns { };
+
+  dnscrypt-proxy = callPackage ../tools/networking/dnscrypt-proxy { };
+
+  dnscrypt-wrapper = callPackage ../tools/networking/dnscrypt-wrapper { };
+
+  dnscontrol = callPackage ../applications/networking/dnscontrol { };
+
+  dnsenum = callPackage ../tools/security/dnsenum { };
+
+  dnsmasq = callPackage ../tools/networking/dnsmasq { };
+
+  dnsmon-go = callPackage ../tools/networking/dnsmon-go { };
+
+  dnsmonster = callPackage ../tools/networking/dnsmonster { };
+
+  dnspeep = callPackage ../tools/security/dnspeep { };
+
+  dnsproxy = callPackage ../tools/networking/dnsproxy { };
+
+  dnsperf = callPackage ../tools/networking/dnsperf { };
+
+  dnsrecon = callPackage ../tools/security/dnsrecon { };
+
+  dnstop = callPackage ../tools/networking/dnstop { };
+
+  dnsviz = python3Packages.callPackage ../tools/networking/dnsviz { };
+
+  dnsx = callPackage ../tools/security/dnsx { };
+
+  dhcpdump = callPackage ../tools/networking/dhcpdump { };
+
+  dhcpcd = callPackage ../tools/networking/dhcpcd { };
+
+  dhcping = callPackage ../tools/networking/dhcping { };
+
+  dotacat = callPackage ../tools/misc/dotacat { };
+
+  di = callPackage ../tools/system/di { };
+
+  diction = callPackage ../tools/text/diction { };
+
+  diffoci = callPackage ../tools/misc/diffoci { };
+
+  diffoscope = callPackage ../tools/misc/diffoscope {
+    jdk = jdk8;
+  };
+
+  diffoscopeMinimal = diffoscope.override {
+    enableBloat = false;
+  };
+
+  diffr = callPackage ../tools/text/diffr {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  diffsitter = callPackage ../tools/text/diffsitter { };
+
+  diffstat = callPackage ../tools/text/diffstat { };
+
+  difftastic = callPackage ../tools/text/difftastic { };
+
+  diffutils = callPackage ../tools/text/diffutils { };
+
+  dsp = callPackage ../tools/audio/dsp { };
+
+  dirdiff = callPackage ../tools/text/dirdiff { };
+
+  dwdiff = callPackage ../applications/misc/dwdiff { };
+
+  picoscope = callPackage ../applications/science/electronics/picoscope { };
+
+  picotts = callPackage ../tools/audio/picotts { };
+
+  wgetpaste = callPackage ../tools/text/wgetpaste { };
+
+  dismap = callPackage ../tools/security/dismap { };
+
+  dismember = callPackage ../tools/security/dismember { };
+
+  dirvish  = callPackage ../tools/backup/dirvish { };
+
+  dleyna-connector-dbus = callPackage ../development/libraries/dleyna-connector-dbus { };
+
+  dleyna-core = callPackage ../development/libraries/dleyna-core { };
+
+  dleyna-renderer = callPackage ../development/libraries/dleyna-renderer { };
+
+  dleyna-server = callPackage ../development/libraries/dleyna-server { };
+
+  dmd = callPackage ../development/compilers/dmd ({
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  } // lib.optionalAttrs stdenv.isLinux {
+    # https://github.com/NixOS/nixpkgs/pull/206907#issuecomment-1527034123
+    stdenv = gcc11Stdenv;
+  });
+
+  dmg2img = callPackage ../tools/misc/dmg2img { };
+
+  docbook2odf = callPackage ../tools/typesetting/docbook2odf { };
+
+  doas = callPackage ../tools/security/doas { };
+
+  doas-sudo-shim = callPackage ../tools/security/doas-sudo-shim { };
+
+  docbook2x = callPackage ../tools/typesetting/docbook2x { };
+
+  docbook2mdoc = callPackage ../tools/misc/docbook2mdoc { };
+
+  docear = callPackage ../applications/office/docear { };
+
+  dockbarx = callPackage ../applications/misc/dockbarx { };
+
+  doctave = callPackage ../applications/misc/doctave {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  dog = callPackage ../tools/system/dog { };
+
+  dogdns = callPackage ../tools/networking/dogdns {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  dq = callPackage ../tools/networking/dq { };
+
+  dool = callPackage ../tools/system/dool { };
+
+  dosfstools = callPackage ../tools/filesystems/dosfstools { };
+
+  dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
+
+  dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
+
+  domoticz = callPackage ../servers/domoticz { };
+
+  dorkscout = callPackage ../tools/security/dorkscout { };
+
+  downonspot = callPackage ../applications/misc/downonspot { };
+
+  sl1-to-photon = python3Packages.callPackage ../applications/misc/sl1-to-photon { };
+
+  drive = callPackage ../applications/networking/drive { };
+
+  driftnet = callPackage ../tools/networking/driftnet { };
+
+  driftctl = callPackage ../applications/networking/cluster/driftctl { };
+
+  eks-node-viewer = callPackage ../applications/networking/cluster/eks-node-viewer { };
+
+  drill = callPackage ../tools/networking/drill {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  drone = callPackage ../development/tools/continuous-integration/drone { };
+  drone-oss = callPackage ../development/tools/continuous-integration/drone {
+    enableUnfree = false;
+  };
+
+  drone-cli = callPackage ../development/tools/continuous-integration/drone-cli { };
+
+  drone-runner-exec = callPackage ../development/tools/continuous-integration/drone-runner-exec { };
+
+  drone-runner-docker = callPackage ../development/tools/continuous-integration/drone-runner-docker { };
+
+  drone-runner-ssh = callPackage ../development/tools/continuous-integration/drone-runner-ssh { };
+
+  dropbear = callPackage ../tools/networking/dropbear { };
+
+  dsview = qt6Packages.callPackage ../applications/science/electronics/dsview { };
+
+  dtach = callPackage ../tools/misc/dtach { };
+
+  dtc = callPackage ../development/compilers/dtc { };
+
+  dt-schema = callPackage ../development/tools/dt-schema { };
+
+  dub = callPackage ../development/tools/build-managers/dub { };
+
+  duc = callPackage ../tools/misc/duc { };
+
+  duff = callPackage ../tools/filesystems/duff {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  dump_syms = callPackage ../development/tools/dump_syms {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  dumpasn1 = callPackage ../tools/security/dumpasn1 { };
+
+  dumptorrent = callPackage ../tools/misc/dumptorrent { };
+
+  duo-unix = callPackage ../tools/security/duo-unix { };
+
+  dupe-krill = callPackage ../tools/filesystems/dupe-krill { };
+
+  duplicacy = callPackage ../tools/backup/duplicacy { };
+
+  duplicati = callPackage ../tools/backup/duplicati { };
+
+  duplicity = callPackage ../tools/backup/duplicity { };
+
+  duply = callPackage ../tools/backup/duply { };
+
+  dvd-vr = callPackage ../tools/cd-dvd/dvd-vr { };
+
+  dvdisaster = callPackage ../tools/cd-dvd/dvdisaster { };
+
+  dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
+
+  dvgrab = callPackage ../tools/video/dvgrab { };
+
+  dvtm = callPackage ../tools/misc/dvtm {
+    # if you prefer a custom config, write the config.h in dvtm.config.h
+    # and enable
+    # customConfig = builtins.readFile ./dvtm.config.h;
+  };
+
+  dvtm-unstable = callPackage ../tools/misc/dvtm/unstable.nix { };
+
+  erofs-utils = callPackage ../tools/filesystems/erofs-utils { };
+
+  e2tools = callPackage ../tools/filesystems/e2tools { };
+
+  e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
+
+  easyrsa = callPackage ../tools/networking/easyrsa { };
+
+  easysnap = callPackage ../tools/backup/easysnap { };
+
+  ebook_tools = callPackage ../tools/text/ebook-tools { };
+
+  ecryptfs = callPackage ../tools/security/ecryptfs { };
+
+  ecryptfs-helper = callPackage ../tools/security/ecryptfs/helper.nix { };
+
+  edgetpu-compiler = callPackage ../development/libraries/science/robotics/edgetpu-compiler { };
+
+  edid-decode = callPackage ../tools/misc/edid-decode { };
+
+  edid-generator = callPackage ../tools/misc/edid-generator { };
+
+  edir = callPackage ../tools/misc/edir { };
+
+  editres = callPackage ../tools/graphics/editres { };
+
+  edit = callPackage ../applications/editors/edit { };
+
+  edk2 = callPackage ../development/compilers/edk2 { };
+
+  edk2-uefi-shell = callPackage ../tools/misc/edk2-uefi-shell { };
+
+  edl = callPackage ../development/embedded/edl { };
+
+  edlib = callPackage ../development/libraries/science/biology/edlib { };
+
+  eff = callPackage ../development/interpreters/eff { };
+
+  eflite = callPackage ../applications/audio/eflite { };
+
+  eid-mw = callPackage ../tools/security/eid-mw {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  emote = callPackage ../tools/inputmethods/emote { };
+
+  engauge-digitizer = libsForQt5.callPackage ../applications/science/math/engauge-digitizer { };
+
+  epub2txt2 = callPackage ../tools/text/epub2txt2 { };
+
+  epubcheck = callPackage ../tools/text/epubcheck { };
+
+  evil-winrm = callPackage ../tools/security/evil-winrm { };
+
+  evtx = callPackage ../tools/security/evtx { };
+
+  luckybackup = libsForQt5.callPackage ../tools/backup/luckybackup {
+    ssh = openssh;
+  };
+
+  kics = callPackage ../tools/admin/kics { };
+
+  kramdown-asciidoc = callPackage ../tools/typesetting/kramdown-asciidoc { };
+
+  lychee = callPackage ../tools/networking/lychee {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  magic-vlsi = callPackage ../applications/science/electronics/magic-vlsi { };
+
+  mcrcon = callPackage ../tools/networking/mcrcon { };
+
+  mozillavpn = qt6Packages.callPackage ../tools/networking/mozillavpn { };
+
+  mozwire = callPackage ../tools/networking/mozwire {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  pax = callPackage ../tools/archivers/pax {
+    inherit (pkgs.darwin.apple_sdk.libs) utmp;
+  };
+
+  rage = callPackage ../tools/security/rage {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  rar2fs = callPackage ../tools/filesystems/rar2fs { };
+
+  rocmPackages = rocmPackages_5;
+  rocmPackages_5 = recurseIntoAttrs (callPackage ../development/rocm-modules/5 { });
+
+  rune = callPackage ../development/interpreters/rune { };
+
+  s9fes = callPackage ../development/interpreters/s9fes { };
+
+  s-tar = callPackage ../tools/archivers/s-tar { };
+
+  solo2-cli = callPackage ../tools/security/solo2-cli {
+    inherit (darwin.apple_sdk.frameworks) PCSC IOKit CoreFoundation AppKit;
+  };
+
+  sonota = callPackage ../tools/misc/sonota { };
+
+  sonobuoy = callPackage ../applications/networking/cluster/sonobuoy { };
+
+  soupault = callPackage ../tools/typesetting/soupault { };
+
+  stratisd = callPackage ../tools/filesystems/stratisd { };
+
+  stratis-cli = callPackage ../tools/filesystems/stratis-cli { };
+
+  strawberry = libsForQt5.callPackage ../applications/audio/strawberry { };
+
+  schleuder = callPackage ../tools/security/schleuder { };
+
+  schleuder-cli = callPackage ../tools/security/schleuder/cli { };
+
+  tealdeer = callPackage ../tools/misc/tealdeer {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  teamocil = callPackage ../tools/misc/teamocil { };
+
+  the-way = callPackage ../development/tools/the-way { };
+
+  timeline = callPackage ../applications/office/timeline { };
+
+  tsm-client = callPackage ../tools/backup/tsm-client { };
+  tsm-client-withGui = callPackage ../tools/backup/tsm-client { enableGui = true; };
+
+  tracker = callPackage ../development/libraries/tracker { };
+
+  tracker-miners = callPackage ../development/libraries/tracker-miners { };
+
+  tracy = callPackage ../development/tools/tracy { };
+
+  trivy = callPackage ../tools/admin/trivy { };
+
+  trompeloeil = callPackage ../development/libraries/trompeloeil { };
+
+  updog = callPackage ../tools/networking/updog { };
+
+  uudeview = callPackage ../tools/misc/uudeview { };
+
+  uusi = haskell.lib.compose.justStaticExecutables haskellPackages.uusi;
+
+  uutils-coreutils = callPackage ../tools/misc/uutils-coreutils {
+    inherit (python3Packages) sphinx;
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  uutils-coreutils-noprefix = uutils-coreutils.override { prefix = null; };
+
+  volctl = callPackage ../tools/audio/volctl { };
+
+  volk = if (stdenv.isDarwin && stdenv.isAarch64) then
+    (callPackage ../development/libraries/volk/2.5.0.nix { })
+  else
+    (callPackage ../development/libraries/volk { })
+  ;
+
+  vorta = libsForQt5.callPackage ../applications/backup/vorta { };
+
+  vowpal-wabbit = callPackage ../applications/science/machine-learning/vowpal-wabbit { };
+
+  vt-cli = callPackage ../tools/security/vt-cli { };
+
+  wakeonlan = callPackage ../tools/networking/wakeonlan { };
+
+  wallutils = callPackage ../tools/graphics/wallutils { };
+
+  wayback = callPackage ../tools/misc/wayback { };
+
+  worker-build = callPackage ../development/tools/worker-build {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  inherit (nodePackages) wrangler;
+
+  wrangler_1 = callPackage ../development/tools/wrangler_1 {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security;
+  };
+
+  snowflake = callPackage ../tools/networking/snowflake { };
+
+  wsl-open = callPackage ../tools/misc/wsl-open { };
+
+  wsl-vpnkit = callPackage ../tools/networking/wsl-vpnkit { };
+
+  xkcdpass = with python3Packages; toPythonApplication xkcdpass;
+
+  xjobs = callPackage ../tools/misc/xjobs { };
+
+  xob = callPackage ../tools/X11/xob { };
+
+  z-lua = callPackage ../tools/misc/z-lua { };
+
+  zabbix-cli = callPackage ../tools/misc/zabbix-cli { };
+
+  zabbixctl = callPackage ../tools/misc/zabbixctl { };
+
+  zee = callPackage ../applications/editors/zee {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  zeek = darwin.apple_sdk_11_0.callPackage ../applications/networking/ids/zeek { };
+
+  zeekscript = callPackage ../tools/security/zeekscript { };
+
+  zoekt = callPackage ../tools/text/zoekt { };
+
+  zonemaster-cli = perlPackages.ZonemasterCLI;
+
+  zotero-translation-server = callPackage ../tools/misc/zotero-translation-server { };
+
+  zoxide = callPackage ../tools/misc/zoxide { };
+
+  zzuf = callPackage ../tools/security/zzuf { };
+
+  ### DEVELOPMENT / EMSCRIPTEN
+
+  buildEmscriptenPackage = callPackage ../development/em-modules/generic { };
+
+  carp = callPackage ../development/compilers/carp { };
+
+  cholmod-extra = callPackage ../development/libraries/science/math/cholmod-extra { };
+
+  choose = callPackage ../tools/text/choose { };
+
+  d2 = callPackage ../tools/text/d2 { };
+
+  ddev = callPackage ../applications/virtualization/ddev { };
+
+  easeprobe = callPackage ../tools/misc/easeprobe { };
+
+  emscripten = callPackage ../development/compilers/emscripten {
+    llvmPackages = llvmPackages_17;
+  };
+
+  emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
+
+  emscriptenStdenv = stdenv // { mkDerivation = buildEmscriptenPackage; };
+
+  efibootmgr = callPackage ../tools/system/efibootmgr { };
+
+  efivar = callPackage ../tools/system/efivar { };
+
+  eget = callPackage ../tools/misc/eget { };
+
+  evemu = callPackage ../tools/system/evemu { };
+
+  # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
+  # When updating make sure to update all plugins or they will break!
+  elk7Version = "7.17.10";
+
+  elasticsearch7 = callPackage ../servers/search/elasticsearch/7.x.nix {
+    util-linux = util-linuxMinimal;
+    jre_headless = jdk11_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  elasticsearch = elasticsearch7;
+
+  elasticsearchPlugins = recurseIntoAttrs (
+    callPackage ../servers/search/elasticsearch/plugins.nix {}
+  );
+
+  elasticsearch-curator = callPackage ../tools/admin/elasticsearch-curator { };
+
+  embree = callPackage ../development/libraries/embree { };
+  embree2 = callPackage ../development/libraries/embree/2.x.nix { };
+
+  emborg = python3Packages.callPackage ../development/python-modules/emborg { };
+
+  emblem = callPackage ../applications/graphics/emblem { };
+
+  emem = callPackage ../applications/misc/emem { };
+
+  empty = callPackage ../tools/misc/empty { };
+
+  emulsion = callPackage ../applications/graphics/emulsion {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreGraphics CoreServices Foundation OpenGL;
+  };
+
+  emulsion-palette = callPackage ../applications/graphics/emulsion-palette { };
+
+  emv = callPackage ../tools/misc/emv { };
+
+  enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse { };
+
+  enc = callPackage ../tools/security/enc { };
+
+  endlessh = callPackage ../servers/endlessh { };
+
+  endlessh-go = callPackage ../servers/endlessh-go { };
+
+  eris-go = callPackage ../servers/eris-go { };
+
+  ericw-tools = callPackage ../applications/misc/ericw-tools { };
+
+  cryfs = callPackage ../tools/filesystems/cryfs { };
+
+  encfs = callPackage ../tools/filesystems/encfs {
+    tinyxml2 = tinyxml-2;
+  };
+
+  enscript = callPackage ../tools/text/enscript { };
+
+  ensemble-chorus = callPackage ../applications/audio/ensemble-chorus { stdenv = gcc8Stdenv; };
+
+  entr = callPackage ../tools/misc/entr { };
+
+  envchain = callPackage ../tools/misc/envchain { inherit (darwin.apple_sdk.frameworks) Security; };
+
+  eot_utilities = callPackage ../tools/misc/eot-utilities { };
+
+  eplot = callPackage ../tools/graphics/eplot { };
+
+  epstool = callPackage ../tools/graphics/epstool { };
+
+  escrotum = callPackage ../tools/graphics/escrotum { };
+
+  esshader = callPackage ../tools/graphics/esshader { };
+
+  etcher = callPackage ../tools/misc/etcher {
+    electron = electron_19;
+  };
+
+  ethercalc = callPackage ../servers/web-apps/ethercalc { };
+
+  ethtool = callPackage ../tools/misc/ethtool { };
+
+  ets = callPackage ../tools/misc/ets { };
+
+  ettercap = callPackage ../applications/networking/sniffers/ettercap { };
+
+  evcc = callPackage ../servers/home-automation/evcc { };
+
+  eventstat = callPackage ../os-specific/linux/eventstat { };
+
+  evillimiter = python3Packages.callPackage ../tools/networking/evillimiter { };
+
+  evtest = callPackage ../applications/misc/evtest { };
+
+  evtest-qt = libsForQt5.callPackage ../applications/misc/evtest-qt { };
+
+  eva = callPackage ../tools/misc/eva { };
+
+  exactaudiocopy = callPackage ../applications/audio/exact-audio-copy { };
+
+  exempi = callPackage ../development/libraries/exempi { };
+
+  executor = with python3Packages; toPythonApplication executor;
+
+  exif = callPackage ../tools/graphics/exif { };
+
+  exifprobe = callPackage ../tools/graphics/exifprobe { };
+
+  exiftags = callPackage ../tools/graphics/exiftags { };
+
+  exiftool = perlPackages.ImageExifTool;
+
+  ext4magic = callPackage ../tools/filesystems/ext4magic { };
+
+  extract_url = callPackage ../applications/misc/extract_url { };
+
+  extundelete = callPackage ../tools/filesystems/extundelete { };
+
+  expect = callPackage ../tools/misc/expect { };
+
+  expected-lite = callPackage ../development/libraries/expected-lite { };
+
+  exportarr = callPackage ../servers/monitoring/prometheus/exportarr { };
+
+  expliot = callPackage ../tools/security/expliot { };
+
+  f2fs-tools = callPackage ../tools/filesystems/f2fs-tools { };
+
+  Fabric = with python3Packages; toPythonApplication fabric;
+
+  fail2ban = callPackage ../tools/security/fail2ban { };
+
+  fakeroot = callPackage ../tools/system/fakeroot { };
+
+  fakeroute = callPackage ../tools/networking/fakeroute { };
+
+  fakechroot = callPackage ../tools/system/fakechroot { };
+
+  fancy-motd = callPackage ../tools/system/fancy-motd { };
+
+  fastpbkdf2 = callPackage ../development/libraries/fastpbkdf2 { };
+
+  fanficfare = callPackage ../tools/text/fanficfare { };
+
+  fastd = callPackage ../tools/networking/fastd { };
+
+  fatsort = callPackage ../tools/filesystems/fatsort { };
+
+  chewing-editor = libsForQt5.callPackage ../applications/misc/chewing-editor { };
+
+  fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { };
+
+  fcitx5-with-addons = libsForQt5.callPackage ../tools/inputmethods/fcitx5/with-addons.nix { };
+
+  fcitx5-bamboo = callPackage ../tools/inputmethods/fcitx5/fcitx5-bamboo.nix { };
+
+  fcitx5-chinese-addons = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix { };
+
+  fcitx5-mozc = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-mozc.nix {
+    abseil-cpp = abseil-cpp.override {
+      cxxStandard = "17";
+    };
+  };
+
+  fcitx5-skk = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-skk.nix { };
+
+  fcitx5-skk-qt = fcitx5-skk.override {
+    enableQt = true;
+  };
+
+  fcitx5-unikey = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-unikey.nix { };
+
+  fcitx5-configtool = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-configtool.nix { };
+
+  fcitx5-anthy = callPackage ../tools/inputmethods/fcitx5/fcitx5-anthy.nix { };
+
+  fcitx5-chewing = callPackage ../tools/inputmethods/fcitx5/fcitx5-chewing.nix { };
+
+  fcitx5-lua = callPackage ../tools/inputmethods/fcitx5/fcitx5-lua.nix { lua = lua5_3; };
+
+  fcitx5-m17n = callPackage ../tools/inputmethods/fcitx5/fcitx5-m17n.nix { };
+
+  fcitx5-openbangla-keyboard = libsForQt5.callPackage ../applications/misc/openbangla-keyboard { withFcitx5Support = true; };
+
+  fcitx5-gtk = callPackage ../tools/inputmethods/fcitx5/fcitx5-gtk.nix { };
+
+  fcitx5-hangul = callPackage ../tools/inputmethods/fcitx5/fcitx5-hangul.nix { };
+
+  fcitx5-rime = callPackage ../tools/inputmethods/fcitx5/fcitx5-rime.nix { };
+
+  fcitx5-table-extra = callPackage ../tools/inputmethods/fcitx5/fcitx5-table-extra.nix { };
+
+  fcitx5-table-other = callPackage ../tools/inputmethods/fcitx5/fcitx5-table-other.nix { };
+
+  fcppt = callPackage ../development/libraries/fcppt { };
+
+  fcrackzip = callPackage ../tools/security/fcrackzip { };
+
+  fcron = callPackage ../tools/system/fcron { };
+
+  fdm = callPackage ../tools/networking/fdm { };
+
+  fdtools = callPackage ../tools/misc/fdtools { };
+
+  featherpad = qt5.callPackage ../applications/editors/featherpad { };
+
+  fend = callPackage ../tools/misc/fend { };
+
+  ferm = callPackage ../tools/networking/ferm { };
+
+  feroxbuster = callPackage ../tools/security/feroxbuster {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ffsend = callPackage ../tools/misc/ffsend {
+    inherit (darwin.apple_sdk.frameworks) Security AppKit;
+  };
+
+  fgallery = callPackage ../tools/graphics/fgallery { };
+
+  flannel = callPackage ../tools/networking/flannel { };
+  cni-plugin-flannel = callPackage ../tools/networking/flannel/plugin.nix { };
+
+  flashbench = callPackage ../os-specific/linux/flashbench { };
+
+  flatpak = callPackage ../development/libraries/flatpak { };
+
+  flatpak-builder = callPackage ../development/tools/flatpak-builder {
+    binutils = binutils-unwrapped;
+  };
+
+  fltrdr = callPackage ../tools/misc/fltrdr {
+    icu = icu63;
+  };
+
+  fluent-bit = darwin.apple_sdk_11_0.callPackage ../tools/misc/fluent-bit { };
+
+  fluent-reader = callPackage ../applications/networking/feedreaders/fluent-reader { };
+
+  flux = callPackage ../development/compilers/flux { };
+
+  fido2luks = callPackage ../tools/security/fido2luks { };
+
+  fierce = callPackage ../tools/security/fierce { };
+
+  figlet = callPackage ../tools/misc/figlet { };
+
+  file = callPackage ../tools/misc/file {
+    inherit (windows) libgnurx;
+  };
+
+  filegive = callPackage ../tools/networking/filegive { };
+
+  fileschanged = callPackage ../tools/misc/fileschanged { };
+
+  filet = callPackage ../applications/misc/filet { };
+
+  findex = callPackage ../applications/misc/findex { };
+
+  findomain = callPackage ../tools/networking/findomain { };
+
+  findutils = callPackage ../tools/misc/findutils { };
+
+  findup = callPackage ../tools/misc/findup { };
+
+  fingerprintx = callPackage ../tools/security/fingerprintx { };
+
+  bsd-finger = callPackage ../tools/networking/bsd-finger { };
+  bsd-fingerd = bsd-finger.override({ buildClient = false; });
+
+  iprange = callPackage ../applications/networking/firehol/iprange.nix { };
+
+  firehol = callPackage ../applications/networking/firehol { };
+
+  fio = callPackage ../tools/system/fio { };
+
+  flamerobin = callPackage ../applications/misc/flamerobin { };
+
+  flashrom = callPackage ../tools/misc/flashrom { };
+
+  flashrom-stable = callPackage ../tools/misc/flashrom-stable { };
+
+  flent = python3Packages.callPackage ../applications/networking/flent { };
+
+  flexoptix-app = callPackage ../tools/misc/flexoptix-app { };
+
+  flpsed = callPackage ../applications/editors/flpsed { };
+
+  fluentd = callPackage ../tools/misc/fluentd { };
+
+  flvstreamer = callPackage ../tools/networking/flvstreamer { };
+
+  frr = callPackage ../servers/frr { };
+
+  gemstash = callPackage ../development/tools/gemstash { };
+
+  hmetis = pkgsi686Linux.callPackage ../applications/science/math/hmetis { };
+
+  libbsd = callPackage ../development/libraries/libbsd { };
+
+  libbladeRF = callPackage ../development/libraries/libbladeRF { };
+
+  libbtbb = callPackage ../development/libraries/libbtbb {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  lp_solve = callPackage ../applications/science/math/lp_solve {
+    inherit (darwin) cctools autoSignDarwinBinariesHook;
+  };
+
+  fabric-installer = callPackage ../tools/games/minecraft/fabric-installer { };
+
+  faraday-agent-dispatcher = callPackage ../tools/security/faraday-agent-dispatcher { };
+
+  faraday-cli = callPackage ../tools/security/faraday-cli { };
+
+  farge = callPackage ../tools/misc/farge { };
+
+  fastlane = callPackage ../tools/admin/fastlane { };
+
+  fatresize = callPackage ../tools/filesystems/fatresize { };
+
+  fdk_aac = callPackage ../development/libraries/fdk-aac { };
+
+  fdk-aac-encoder = callPackage ../applications/audio/fdkaac { };
+
+  fead = callPackage ../applications/misc/fead { };
+
+  feedgnuplot = callPackage ../tools/graphics/feedgnuplot { };
+
+  fermyon-spin = callPackage ../development/tools/fermyon-spin { };
+
+  fbcat = callPackage ../tools/misc/fbcat { };
+
+  fbjni = callPackage ../development/libraries/fbjni { };
+
+  fbv = callPackage ../tools/graphics/fbv { };
+
+  fbvnc = callPackage ../tools/admin/fbvnc { };
+
+  fim = callPackage ../tools/graphics/fim { };
+
+  flac123 = callPackage ../applications/audio/flac123 { };
+
+  flamegraph = callPackage ../development/tools/flamegraph { };
+
+  flawfinder = callPackage ../development/tools/flawfinder { };
+
+  flintlock = callPackage ../applications/virtualization/flintlock { };
+
+  flip-link = callPackage ../development/tools/flip-link { };
+
+  flips = callPackage ../tools/compression/flips { };
+
+  flowblade = callPackage ../applications/video/flowblade { };
+
+  fontfor = callPackage ../tools/misc/fontfor { };
+
+  fontforge = lowPrio (callPackage ../tools/misc/fontforge {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+    python = python3;
+  });
+  fontforge-gtk = fontforge.override {
+    withSpiro = true;
+    withGTK = true;
+    gtk3 = gtk3-x11;
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
+  fontforge-fonttools = callPackage ../tools/misc/fontforge/fontforge-fonttools.nix { };
+
+  fontmatrix = libsForQt5.callPackage ../applications/graphics/fontmatrix { };
+
+  foremost = callPackage ../tools/system/foremost { };
+
+  forktty = callPackage ../os-specific/linux/forktty { };
+
+  fortran-fpm = callPackage ../tools/package-management/fortran-fpm { };
+
+  fortune = callPackage ../tools/misc/fortune { };
+
+  fox = callPackage ../development/libraries/fox {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  fox_1_6 = callPackage ../development/libraries/fox/fox-1.6.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  fpart = callPackage ../tools/misc/fpart { };
+
+  fpattern = callPackage ../development/libraries/fpattern { };
+
+  fping = callPackage ../tools/networking/fping { };
+
+  fpm = callPackage ../tools/package-management/fpm { };
+
+  fprintd = callPackage ../tools/security/fprintd { };
+
+  fprintd-tod = callPackage ../tools/security/fprintd/tod.nix { };
+
+  ferdi = callPackage ../applications/networking/instant-messengers/ferdi {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
+
+  ferdium = callPackage ../applications/networking/instant-messengers/ferdium {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
+
+  fq = callPackage ../development/tools/fq { };
+
+  franz = callPackage ../applications/networking/instant-messengers/franz {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
+
+  freac = callPackage ../applications/audio/freac { };
+
+  freebind = callPackage ../tools/networking/freebind { };
+
+  freeipmi = callPackage ../tools/system/freeipmi { };
+
+  freetalk = callPackage ../applications/networking/instant-messengers/freetalk { };
+
+  freetds = callPackage ../development/libraries/freetds { };
+
+  freetube = callPackage ../applications/video/freetube { };
+
+  freeze = callPackage ../tools/security/freeze { };
+
+  freqtweak = callPackage ../applications/audio/freqtweak {
+    wxGTK = wxGTK32;
+  };
+
+  frescobaldi = python3Packages.callPackage ../misc/frescobaldi { };
+
+  freshfetch = callPackage ../tools/misc/freshfetch {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreFoundation DiskArbitration Foundation IOKit;
+  };
+
+  frigate = callPackage ../applications/video/frigate { };
+
+  frostwire = callPackage ../applications/networking/p2p/frostwire { };
+  frostwire-bin = callPackage ../applications/networking/p2p/frostwire/frostwire-bin.nix { };
+
+  ftgl = callPackage ../development/libraries/ftgl { };
+
+  ftop = callPackage ../os-specific/linux/ftop { };
+
+  ftxui = callPackage ../development/libraries/ftxui { };
+
+  fsarchiver = callPackage ../tools/archivers/fsarchiver { };
+
+  fstl = qt5.callPackage ../applications/graphics/fstl { };
+
+  fswebcam = callPackage ../os-specific/linux/fswebcam { };
+
+  fulcio = callPackage ../tools/security/fulcio { };
+
+  fuseiso = callPackage ../tools/filesystems/fuseiso { };
+
+  fusuma = callPackage ../tools/inputmethods/fusuma { };
+
+  fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb { });
+
+  inherit (fdbPackages)
+    foundationdb71
+  ;
+
+  foundationdb = foundationdb71;
+
+  fuse-7z-ng = callPackage ../tools/filesystems/fuse-7z-ng { };
+
+  fuse-archive = callPackage ../tools/filesystems/fuse-archive { };
+
+  fuse-ext2 = darwin.apple_sdk_11_0.callPackage ../tools/filesystems/fuse-ext2 { };
+
+  fuse-overlayfs = callPackage ../tools/filesystems/fuse-overlayfs { };
+
+  fusee-interfacee-tk = callPackage ../applications/misc/fusee-interfacee-tk { };
+
+  fusee-launcher = callPackage ../development/tools/fusee-launcher { };
+
+  fusee-nano = callPackage ../development/tools/fusee-nano { };
+
+  fverb = callPackage ../applications/audio/fverb { };
+
+  fwknop = callPackage ../tools/security/fwknop {
+    texinfo = texinfo6_7; # Uses @setcontentsaftertitlepage, removed in 6.8.
+  };
+
+  elastic = callPackage ../applications/misc/elastic { };
+
+  exfat = callPackage ../tools/filesystems/exfat { };
+
+  exfatprogs = callPackage ../tools/filesystems/exfatprogs { };
+
+  dos2unix = callPackage ../tools/text/dos2unix { };
+
+  uni2ascii = callPackage ../tools/text/uni2ascii { };
+
+  uniscribe = callPackage ../tools/text/uniscribe { };
+
+  calcoo = callPackage ../applications/misc/calcoo { };
+
+  galculator = callPackage ../applications/misc/galculator {
+    gtk = gtk3;
+  };
+
+  fornalder = callPackage ../applications/version-management/fornalder { };
+
+  galen = callPackage ../development/tools/galen { };
+
+  gallery-dl = python3Packages.callPackage ../applications/misc/gallery-dl { };
+
+  gandi-cli = python3Packages.callPackage ../tools/networking/gandi-cli { };
+
+  gandom-fonts = callPackage ../data/fonts/gandom-fonts { };
+
+  gaphor = python3Packages.callPackage ../tools/misc/gaphor { };
+
+  inherit (callPackage ../tools/filesystems/garage {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  })
+    garage
+      garage_0_8 garage_0_9
+      garage_0_8_4 garage_0_9_0;
+
+  garmin-plugin = callPackage ../applications/misc/garmin-plugin { };
+
+  garmintools = callPackage ../development/libraries/garmintools { };
+
+  gau = callPackage ../tools/security/gau { };
+
+  gauge = callPackage ../development/tools/gauge { };
+
+  gawk = callPackage ../tools/text/gawk {
+    inherit (darwin) locale;
+  };
+
+  gawk-with-extensions = callPackage ../tools/text/gawk/gawk-with-extensions.nix {
+    extensions = gawkextlib.full;
+  };
+  gawkextlib = callPackage ../tools/text/gawk/gawkextlib.nix { };
+
+  gawkInteractive = gawk.override { interactive = true; };
+
+  gatk = callPackage ../applications/science/biology/gatk {} ;
+
+  gbdfed = callPackage ../tools/misc/gbdfed {
+    gtk = gtk2-x11;
+  };
+
+  gcfflasher = callPackage ../applications/misc/gcfflasher { };
+
+  gdmap = callPackage ../tools/system/gdmap { };
+
+  gdtoolkit = callPackage ../development/tools/gdtoolkit { };
+
+  gef = callPackage ../development/tools/misc/gef { };
+
+  gelasio = callPackage ../data/fonts/gelasio { };
+
+  gemget = callPackage ../tools/networking/gemget { };
+
+  gen-oath-safe = callPackage ../tools/security/gen-oath-safe { };
+
+  genext2fs = callPackage ../tools/filesystems/genext2fs { };
+
+  gengetopt = callPackage ../development/tools/misc/gengetopt { };
+
+  genimage = callPackage ../tools/filesystems/genimage { };
+
+  genmap = callPackage ../applications/science/biology/genmap { };
+
+  geonkick = callPackage ../applications/audio/geonkick { };
+
+  gerrit = callPackage ../applications/version-management/gerrit { };
+
+  geteltorito = callPackage ../tools/misc/geteltorito { };
+
+  getmail6 = callPackage ../tools/networking/getmail6 { };
+
+  getopt = callPackage ../tools/misc/getopt { };
+
+  getoptions = callPackage ../tools/misc/getoptions { };
+
+  gexiv2 = callPackage ../development/libraries/gexiv2 { };
+
+  gftp = callPackage ../applications/networking/ftp/gftp {
+    gtk = gtk2;
+  };
+
+  gfs2-utils = callPackage ../tools/filesystems/gfs2-utils { };
+
+  gfbgraph = callPackage ../development/libraries/gfbgraph { };
+
+  ggobi = callPackage ../tools/graphics/ggobi { };
+
+  ggshield = callPackage ../tools/security/ggshield { };
+
+  ghost = callPackage ../tools/security/ghost { };
+
+  ghostunnel = callPackage ../tools/networking/ghostunnel { };
+
+  ghz = callPackage ../tools/networking/ghz { };
+
+  gi-crystal = callPackage ../development/tools/gi-crystal { };
+
+  gibberish-detector = with python3Packages; toPythonApplication gibberish-detector;
+
+  gibo = callPackage ../tools/misc/gibo { };
+
+  gifsicle = callPackage ../tools/graphics/gifsicle { };
+
+  gifski = callPackage ../tools/graphics/gifski { };
+
+  github-backup = callPackage ../tools/misc/github-backup { };
+
+  github-runner = callPackage ../development/tools/continuous-integration/github-runner {
+     inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  gitkraken = callPackage ../applications/version-management/gitkraken { };
+
+  gitlab = callPackage ../applications/version-management/gitlab { };
+  gitlab-ee = callPackage ../applications/version-management/gitlab {
+    gitlabEnterprise = true;
+  };
+
+  gitlab-clippy = callPackage ../development/tools/rust/gitlab-clippy { };
+
+  gitlab-container-registry = callPackage ../applications/version-management/gitlab/gitlab-container-registry { };
+
+  gitlab-pages = callPackage ../applications/version-management/gitlab/gitlab-pages { };
+
+  gitlab-runner = callPackage ../development/tools/continuous-integration/gitlab-runner {
+    buildGoModule = buildGo120Module;
+  };
+
+  gitlab-shell = callPackage ../applications/version-management/gitlab/gitlab-shell { };
+
+  gitlab-triage = callPackage ../applications/version-management/gitlab-triage { };
+
+  gitlab-workhorse = callPackage ../applications/version-management/gitlab/gitlab-workhorse { };
+
+  gitlab-elasticsearch-indexer = callPackage ../applications/version-management/gitlab/gitlab-elasticsearch-indexer { };
+
+  gitleaks = callPackage ../tools/security/gitleaks { };
+
+  gitaly = callPackage ../applications/version-management/gitlab/gitaly { };
+
+  gitqlient = libsForQt5.callPackage ../applications/version-management/gitqlient { };
+
+  gogs = callPackage ../applications/version-management/gogs { };
+
+  git-latexdiff = callPackage ../tools/typesetting/git-latexdiff { };
+
+  gitea = callPackage ../applications/version-management/gitea { };
+
+  gitea-actions-runner = callPackage ../development/tools/continuous-integration/gitea-actions-runner { };
+
+  forgejo = callPackage ../applications/version-management/forgejo { };
+
+  forgejo-actions-runner = callPackage ../development/tools/continuous-integration/forgejo-actions-runner { };
+
+  gokart = callPackage ../development/tools/gokart { };
+
+  gl2ps = callPackage ../development/libraries/gl2ps { };
+
+  glusterfs = callPackage ../tools/filesystems/glusterfs { };
+
+  glmark2 = callPackage ../tools/graphics/glmark2 { };
+
+  glogg = libsForQt5.callPackage ../tools/text/glogg { };
+
+  glxinfo = callPackage ../tools/graphics/glxinfo { };
+
+  gmrender-resurrect = callPackage ../tools/networking/gmrender-resurrect {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav;
+  };
+
+  gnirehtet = callPackage ../tools/networking/gnirehtet { };
+
+  gnome-builder = callPackage ../applications/editors/gnome-builder { };
+
+  gnome-desktop = callPackage ../development/libraries/gnome-desktop { };
+
+  gnome-decoder = callPackage ../applications/graphics/gnome-decoder {
+     inherit (gst_all_1) gstreamer gst-plugins-base;
+     gst-plugins-bad = gst_all_1.gst-plugins-bad.override { enableZbar = true; };
+  };
+
+  gnome-epub-thumbnailer = callPackage ../applications/misc/gnome-epub-thumbnailer { };
+
+  gnome-extension-manager = callPackage ../applications/misc/gnome-extension-manager { };
+
+  gnome-feeds = callPackage ../applications/networking/feedreaders/gnome-feeds { };
+
+  gnome-frog = callPackage ../applications/misc/gnome-frog { };
+
+  gnome-keysign = callPackage ../tools/security/gnome-keysign { };
+
+  gnome-secrets = callPackage ../applications/misc/gnome-secrets { };
+
+  gnome-solanum = callPackage ../applications/misc/gnome-solanum { };
+
+  gnome-podcasts = callPackage ../applications/audio/gnome-podcasts { };
+
+  gnome-photos = callPackage ../applications/graphics/gnome-photos { };
+
+  gnome-randr = callPackage ../tools/wayland/gnome-randr { };
+
+  gnome-resources = callPackage ../tools/system/gnome-resources { };
+
+  gnuapl = callPackage ../development/interpreters/gnu-apl { };
+
+  gnu-shepherd = callPackage ../misc/gnu-shepherd { };
+
+  dapl = callPackage ../development/interpreters/dzaima-apl {
+    buildNativeImage = false;
+    stdenv = stdenvNoCC;
+    jdk = jre;
+  };
+  dapl-native = callPackage ../development/interpreters/dzaima-apl {
+    buildNativeImage = true;
+    jdk = graalvm-ce;
+  };
+
+  gnucap = callPackage ../applications/science/electronics/gnucap { };
+
+  gnu-cim = callPackage ../development/compilers/gnu-cim { };
+
+  gnu-cobol = callPackage ../development/compilers/gnu-cobol { };
+
+  gnuclad = callPackage ../applications/graphics/gnuclad { };
+
+  gnufdisk = callPackage ../tools/system/fdisk {
+    guile = guile_1_8;
+  };
+
+  gnugrep = callPackage ../tools/text/gnugrep { };
+
+  gnulib = callPackage ../development/tools/gnulib { };
+
+  gnupatch = callPackage ../tools/text/gnupatch { };
+
+  gnupg1orig = callPackage ../tools/security/gnupg/1.nix { };
+  gnupg1compat = callPackage ../tools/security/gnupg/1compat.nix { };
+  gnupg1 = gnupg1compat;    # use config.packageOverrides if you prefer original gnupg1
+
+  gnupg22 = callPackage ../tools/security/gnupg/22.nix {
+    pinentry = if stdenv.isDarwin then pinentry_mac else pinentry-gtk2;
+    libgcrypt = libgcrypt_1_8;
+  };
+
+  gnupg24 = callPackage ../tools/security/gnupg/24.nix {
+    pinentry = if stdenv.isDarwin then pinentry_mac else pinentry-gtk2;
+  };
+  gnupg = gnupg24;
+
+  gnupg-pkcs11-scd = callPackage ../tools/security/gnupg-pkcs11-scd { };
+
+  gnuplot = libsForQt5.callPackage ../tools/graphics/gnuplot {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  gnuplot_qt = gnuplot.override { withQt = true; };
+
+  # must have AquaTerm installed separately
+  gnuplot_aquaterm = gnuplot.override { aquaterm = true; };
+
+  gnu-pw-mgr = callPackage ../tools/security/gnu-pw-mgr { };
+
+  gnused = callPackage ../tools/text/gnused { };
+
+  gnutar = callPackage ../tools/archivers/gnutar { };
+
+  goaccess = callPackage ../tools/misc/goaccess { };
+
+  gocryptfs = callPackage ../tools/filesystems/gocryptfs { };
+
+  godot_4 = callPackage ../development/tools/godot/4 { };
+
+  godot3 = callPackage ../development/tools/godot/3 { };
+
+  godot3-export-templates = callPackage ../development/tools/godot/3/export-templates.nix { };
+
+  godot3-headless = callPackage ../development/tools/godot/3/headless.nix { };
+
+  godot3-debug-server = callPackage ../development/tools/godot/3/debug-server.nix { };
+
+  godot3-server = callPackage ../development/tools/godot/3/server.nix { };
+
+  godot3-mono = callPackage ../development/tools/godot/3/mono {};
+
+  godot3-mono-export-templates = callPackage ../development/tools/godot/3/mono/export-templates.nix { };
+
+  godot3-mono-headless = callPackage ../development/tools/godot/3/mono/headless.nix { };
+
+  godot3-mono-debug-server = callPackage ../development/tools/godot/3/mono/debug-server.nix { };
+
+  godot3-mono-server = callPackage ../development/tools/godot/3/mono/server.nix { };
+
+  goeland = callPackage ../applications/networking/feedreaders/goeland { };
+
+  go-mtpfs = callPackage ../tools/filesystems/go-mtpfs { };
+
+  goofys = callPackage ../tools/filesystems/goofys { };
+
+  go-sct = callPackage ../tools/X11/go-sct { };
+
+  # rename to upower-notify?
+  go-upower-notify = callPackage ../tools/misc/upower-notify { };
+
+  goattracker = callPackage ../applications/audio/goattracker { };
+
+  goattracker-stereo = callPackage ../applications/audio/goattracker {
+    isStereo = true;
+  };
+
+  google-app-engine-go-sdk = callPackage ../development/tools/google-app-engine-go-sdk { };
+
+  google-authenticator = callPackage ../os-specific/linux/google-authenticator { };
+
+  google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk {
+    python = python3;
+  };
+  google-cloud-sdk-gce = google-cloud-sdk.override {
+    python = python3;
+    with-gce = true;
+  };
+
+  google-cloud-bigtable-tool = callPackage ../tools/misc/google-cloud-bigtable-tool { };
+
+  google-cloud-sql-proxy = callPackage ../tools/misc/google-cloud-sql-proxy { };
+
+  google-fonts = callPackage ../data/fonts/google-fonts { };
+
+  google-clasp = callPackage ../development/tools/google-clasp { };
+
+  google-compute-engine = with python38.pkgs; toPythonApplication google-compute-engine;
+
+  google-guest-oslogin = callPackage ../tools/virtualization/google-guest-oslogin { };
+
+  google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { };
+
+  google-java-format = callPackage ../development/tools/google-java-format { };
+
+  google-guest-agent = callPackage ../tools/virtualization/google-guest-agent { };
+
+  google-guest-configs = callPackage ../tools/virtualization/google-guest-configs { };
+
+  gdown = with python3Packages; toPythonApplication gdown;
+
+  gopro = callPackage ../tools/video/gopro { };
+
+  goreleaser = callPackage ../tools/misc/goreleaser { };
+
+  goreplay = callPackage ../tools/networking/goreplay { };
+
+  gost = callPackage ../tools/networking/gost {
+    buildGoModule = buildGo119Module; # go 1.20 build failure
+  };
+
+  gource = callPackage ../applications/version-management/gource { };
+
+  govc = callPackage ../tools/virtualization/govc { };
+
+  goverlay = callPackage ../tools/graphics/goverlay {
+    inherit (qt5) wrapQtAppsHook;
+    inherit (plasma5Packages) breeze-qt5;
+  };
+
+  gpart = callPackage ../tools/filesystems/gpart { };
+
+  gparted = callPackage ../tools/misc/gparted { };
+
+  gpt2tc = callPackage ../tools/text/gpt2tc { };
+
+  gptcommit = callPackage ../development/tools/gptcommit {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  gptman = callPackage ../tools/system/gptman { };
+
+  ldmtool = callPackage ../tools/misc/ldmtool { };
+
+  gphotos-sync = callPackage ../tools/backup/gphotos-sync { };
+
+  gpodder = callPackage ../applications/audio/gpodder { };
+
+  gpp = callPackage ../development/tools/gpp { };
+
+  gnuastro = callPackage ../applications/science/astronomy/gnuastro { };
+
+  gpredict = callPackage ../applications/science/astronomy/gpredict {
+    hamlib = hamlib_4;
+  };
+
+  gprof2dot = with python3Packages; toPythonApplication gprof2dot;
+
+  gprojector = callPackage ../applications/science/astronomy/gprojector { };
+
+  gptfdisk = callPackage ../tools/system/gptfdisk { };
+
+  gql = callPackage ../applications/version-management/gql { };
+
+  grafterm = callPackage ../tools/misc/grafterm { };
+
+  gradience = callPackage ../applications/misc/gradience { };
+
+  grafx2 = callPackage ../applications/graphics/grafx2 { };
+
+  grails = callPackage ../development/web/grails { jdk = null; };
+
+  graylog-5_0 = callPackage ../tools/misc/graylog/5.0.nix { };
+
+  graylog-5_1 = callPackage ../tools/misc/graylog/5.1.nix { };
+
+  graylogPlugins = recurseIntoAttrs (
+    callPackage ../tools/misc/graylog/plugins.nix { }
+  );
+
+  graphviz = callPackage ../tools/graphics/graphviz {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  graphviz-nox = callPackage ../tools/graphics/graphviz {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+    withXorg = false;
+  };
+
+  grass-sass = callPackage ../tools/misc/grass-sass { };
+
+  gridtracker = callPackage ../applications/radio/gridtracker { };
+
+  grig = callPackage ../applications/radio/grig { };
+
+  grin = callPackage ../tools/text/grin { };
+
+  gyb = callPackage ../tools/backup/gyb { };
+
+  halftone = callPackage ../applications/graphics/halftone { };
+
+  halloy = callPackage ../applications/networking/irc/halloy { };
+
+  harminv = callPackage ../development/libraries/science/chemistry/harminv { };
+
+  igrep = callPackage ../tools/text/igrep {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ripgrep = callPackage ../tools/text/ripgrep {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ripgrep-all = callPackage ../tools/text/ripgrep-all {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  grive2 = callPackage ../tools/filesystems/grive2 { };
+
+  groff = callPackage ../tools/text/groff { };
+
+  gromit-mpx = callPackage ../tools/graphics/gromit-mpx {
+    gtk = gtk3;
+    libappindicator = libappindicator-gtk3;
+  };
+
+  gron = callPackage ../development/tools/gron { };
+
+  groonga = callPackage ../servers/search/groonga { };
+
+  grpcurl = callPackage ../tools/networking/grpcurl { };
+
+  grpc_cli = callPackage ../tools/networking/grpc_cli { };
+
+  grpc-gateway = callPackage ../development/tools/grpc-gateway { };
+
+  grpcui = callPackage ../tools/networking/grpcui { };
+
+  grpc-tools = callPackage ../development/tools/misc/grpc-tools { };
+
+  grpc-client-cli = callPackage ../development/tools/misc/grpc-client-cli { };
+
+  grub2 = callPackage ../tools/misc/grub/default.nix { };
+
+  grub2_efi = grub2.override {
+    efiSupport = true;
+  };
+
+  grub2_light = grub2.override {
+    zfsSupport = false;
+  };
+
+  grub2_xen = grub2.override {
+    xenSupport = true;
+  };
+
+  grub2_pvgrub_image = callPackage ../tools/misc/grub/pvgrub_image { };
+
+  grub4dos = callPackage ../tools/misc/grub4dos {
+    stdenv = stdenv_32bit;
+  };
+
+  gruut = with python3.pkgs; toPythonApplication gruut;
+
+  gruut-ipa = with python3.pkgs; toPythonApplication gruut-ipa;
+
+  gx = callPackage ../tools/package-management/gx { };
+  gx-go = callPackage ../tools/package-management/gx/go { };
+
+  efitools = callPackage ../tools/security/efitools { };
+
+  sbctl = callPackage ../tools/security/sbctl { };
+
+  sbsigntool = callPackage ../tools/security/sbsigntool { };
+
+  sonic-server = callPackage ../servers/search/sonic-server { };
+
+  gsmartcontrol = callPackage ../tools/misc/gsmartcontrol { };
+
+  gsmlib = callPackage ../development/libraries/gsmlib
+    { autoreconfHook = buildPackages.autoreconfHook269; };
+
+  gssdp = callPackage ../development/libraries/gssdp { };
+
+  gssdp_1_6 = callPackage ../development/libraries/gssdp/1.6.nix { };
+
+  gssdp-tools = callPackage ../development/libraries/gssdp/tools.nix { };
+
+  grype = callPackage ../tools/security/grype { };
+
+  gt5 = callPackage ../tools/system/gt5 { };
+
+  gtest = callPackage ../development/libraries/gtest { };
+
+  gbenchmark = callPackage ../development/libraries/gbenchmark { };
+
+  gkraken = callPackage ../tools/system/gkraken { };
+
+  gtkdatabox = callPackage ../development/libraries/gtkdatabox { };
+
+  gtdialog = callPackage ../development/libraries/gtdialog { };
+
+  gtkd = callPackage ../development/libraries/gtkd { dcompiler = ldc; };
+
+  gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
+
+  gtkperf = callPackage ../development/tools/misc/gtkperf { };
+
+  gtkradiant = callPackage ../applications/misc/gtkradiant { };
+
+  gtk-frdp = callPackage ../development/libraries/gtk-frdp { };
+
+  gtk-vnc = callPackage ../tools/admin/gtk-vnc { };
+
+  gup = callPackage ../development/tools/build-managers/gup { };
+
+  gupnp = callPackage ../development/libraries/gupnp { };
+
+  gupnp_1_6 = callPackage ../development/libraries/gupnp/1.6.nix { };
+
+  gupnp-av = callPackage ../development/libraries/gupnp-av { };
+
+  gupnp-dlna = callPackage ../development/libraries/gupnp-dlna { };
+
+  gupnp-igd = callPackage ../development/libraries/gupnp-igd { };
+
+  gupnp-tools = callPackage ../tools/networking/gupnp-tools { };
+
+  gvm-tools = with python3.pkgs; toPythonApplication gvm-tools;
+
+  gvpe = callPackage ../tools/networking/gvpe { };
+
+  gvolicon = callPackage ../tools/audio/gvolicon { };
+
+  gvproxy = callPackage ../tools/networking/gvproxy { };
+
+  gzip = callPackage ../tools/compression/gzip { };
+
+  gzrt = callPackage ../tools/compression/gzrt { };
+
+  httplab = callPackage ../tools/networking/httplab { };
+
+  lucky-cli = callPackage ../development/web/lucky-cli { };
+
+  mac-fdisk = callPackage ../tools/system/mac-fdisk { };
+
+  partclone = callPackage ../tools/backup/partclone { };
+
+  partimage = callPackage ../tools/backup/partimage { };
+
+  pdisk = callPackage ../tools/system/pdisk {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
+  };
+
+  pgf_graphics = callPackage ../tools/graphics/pgf { };
+
+  pgbackrest = callPackage ../tools/backup/pgbackrest { };
+
+  pgformatter = callPackage ../development/tools/pgformatter { };
+
+  pgloader = callPackage ../development/tools/pgloader { };
+
+  pgtop = callPackage ../development/tools/pgtop { };
+
+  pigz = callPackage ../tools/compression/pigz { };
+
+  pixz = callPackage ../tools/compression/pixz { };
+
+  plog = callPackage ../development/libraries/plog {};
+
+  plplot = callPackage ../development/libraries/plplot {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  pxattr = callPackage ../tools/archivers/pxattr { };
+
+  pxz = callPackage ../tools/compression/pxz { };
+
+  haguichi = callPackage ../tools/networking/haguichi { };
+
+  hans = callPackage ../tools/networking/hans { };
+
+  h2 = callPackage ../servers/h2 { };
+
+  h5utils = callPackage ../tools/misc/h5utils {
+    libmatheval = null;
+    hdf4 = null;
+  };
+
+  haproxy = callPackage ../tools/networking/haproxy { };
+
+  hackertyper = callPackage ../tools/misc/hackertyper { };
+
+  hackneyed = callPackage ../data/icons/hackneyed { };
+
+  haveged = callPackage ../tools/security/haveged { };
+
+  habitat = callPackage ../applications/networking/cluster/habitat { };
+
+  hashcash = callPackage ../tools/security/hashcash { };
+
+  hashcat = callPackage ../tools/security/hashcat {
+    inherit (darwin.apple_sdk.frameworks) Foundation IOKit Metal OpenCL;
+  };
+
+  hashcat-utils = callPackage ../tools/security/hashcat-utils { };
+
+  hashrat = callPackage ../tools/security/hashrat { };
+
+  hash_extender = callPackage ../tools/security/hash_extender { };
+
+  hash-identifier = callPackage ../tools/security/hash-identifier { };
+
+  hash-slinger = callPackage ../tools/security/hash-slinger { };
+
+  haskell-language-server = callPackage ../development/tools/haskell/haskell-language-server/withWrapper.nix { };
+
+  hassil = with python3Packages; toPythonApplication hassil;
+
+  hasmail = callPackage ../applications/networking/mailreaders/hasmail { };
+
+  haste-client = callPackage ../tools/misc/haste-client { };
+
+  haste-server = callPackage ../servers/haste-server { };
+
+  hatch = python3Packages.callPackage ../development/tools/hatch { };
+
+  hal-hardware-analyzer = libsForQt5.callPackage ../applications/science/electronics/hal-hardware-analyzer { };
+
+  half = callPackage ../development/libraries/half { };
+
+  halibut = callPackage ../tools/typesetting/halibut { };
+
+  halide = callPackage ../development/compilers/halide {
+    llvmPackages = llvmPackages_16;
+  };
+
+  hareThirdParty = recurseIntoAttrs (callPackage ./hare-third-party.nix { });
+
+  ham = pkgs.perlPackages.ham;
+
+  hamsket = callPackage ../applications/networking/instant-messengers/hamsket { };
+
+  hardinfo = callPackage ../tools/system/hardinfo { };
+
+  harmonia = callPackage ../tools/package-management/harmonia { };
+
+  hayagriva = callPackage ../tools/typesetting/hayagriva { };
+
+  hcl2json = callPackage ../applications/misc/hcl2json { };
+
+  hcledit = callPackage ../tools/text/hcledit { };
+
+  hcxtools = callPackage ../tools/security/hcxtools { };
+
+  hcxdumptool = callPackage ../tools/security/hcxdumptool { };
+
+  hdapsd = callPackage ../os-specific/linux/hdapsd { };
+
+  hdaps-gl = callPackage ../tools/misc/hdaps-gl { };
+
+  hddfancontrol = callPackage ../tools/system/hddfancontrol { };
+
+  hddtemp = callPackage ../tools/misc/hddtemp { };
+
+  hdf4 = callPackage ../tools/misc/hdf4 { };
+
+  hdf5 = callPackage ../tools/misc/hdf5 {
+    fortranSupport = false;
+    fortran = gfortran;
+  };
+
+  hdf5_1_10 = callPackage ../tools/misc/hdf5/1.10.nix { };
+
+  hdf5-mpi = hdf5.override { mpiSupport = true; };
+
+  hdf5-cpp = hdf5.override { cppSupport = true; };
+
+  hdf5-fortran = hdf5.override { fortranSupport = true; };
+
+  hdf5-threadsafe = hdf5.override { threadsafe = true; };
+
+  hdf5-blosc = callPackage ../development/libraries/hdf5-blosc { };
+
+  hdfview = callPackage ../tools/misc/hdfview { };
+
+  hecate = callPackage ../applications/editors/hecate { };
+
+  heaptrack = libsForQt5.callPackage ../development/tools/profiling/heaptrack { };
+
+  heatshrink = callPackage ../tools/compression/heatshrink { };
+
+  heimdall = libsForQt5.callPackage ../tools/misc/heimdall { };
+
+  heimdall-gui = heimdall.override { enableGUI = true; };
+
+  headscale = callPackage ../servers/headscale { };
+
+  health = callPackage ../applications/misc/health { };
+
+  healthchecks = callPackage ../servers/web-apps/healthchecks { };
+
+  heisenbridge = callPackage ../servers/heisenbridge { };
+
+  helio-workstation = callPackage ../applications/audio/helio-workstation { };
+
+  hevea = callPackage ../tools/typesetting/hevea { };
+
+  hex = callPackage ../tools/misc/hex { };
+
+  hexd = callPackage ../tools/misc/hexd { };
+  pixd = callPackage ../tools/misc/pixd { };
+
+  hexgui = callPackage ../games/hexgui { };
+
+  hey = callPackage ../tools/networking/hey { };
+
+  heygpt = callPackage ../tools/llm/heygpt { };
+
+  hhpc = callPackage ../tools/misc/hhpc { };
+
+  hiera-eyaml = callPackage ../tools/system/hiera-eyaml { };
+
+  hivemind = callPackage ../applications/misc/hivemind { };
+
+  hobbits = libsForQt5.callPackage ../tools/graphics/hobbits { };
+
+  hfsprogs = callPackage ../tools/filesystems/hfsprogs { };
+
+  highlight = callPackage ../tools/text/highlight ({
+    lua = lua5;
+  });
+
+  hockeypuck = callPackage ../servers/hockeypuck/server.nix { };
+
+  hockeypuck-web = callPackage ../servers/hockeypuck/web.nix { };
+
+  holochain-launcher = callPackage ../applications/misc/holochain-launcher { };
+
+  homesick = callPackage ../tools/misc/homesick { };
+
+  honcho = callPackage ../tools/system/honcho { };
+
+  horst = callPackage ../tools/networking/horst { };
+
+  host = bind.host;
+
+  hostess = callPackage ../development/tools/hostess { };
+
+  hostname-debian = callPackage ../tools/networking/hostname-debian { };
+
+  hotdoc = python3Packages.callPackage ../development/tools/hotdoc { };
+
+  hotpatch = callPackage ../development/libraries/hotpatch { };
+
+  hotspot = libsForQt5.callPackage ../development/tools/analysis/hotspot { };
+
+  hpccm = with python3Packages; toPythonApplication hpccm;
+
+  hping = callPackage ../tools/networking/hping { };
+
+  hqplayer-desktop = libsForQt5.callPackage ../applications/audio/hqplayer-desktop { };
+
+  html-proofer = callPackage ../tools/misc/html-proofer { };
+
+  htmlq = callPackage ../development/tools/htmlq {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  htpdate = callPackage ../tools/networking/htpdate { };
+
+  http-prompt = callPackage ../tools/networking/http-prompt { };
+
+  http-getter = callPackage ../applications/networking/flent/http-getter.nix { };
+
+  httpdirfs = callPackage ../tools/filesystems/httpdirfs { };
+
+  httpdump = callPackage ../tools/security/httpdump { };
+
+  httpie = with python3Packages; toPythonApplication httpie;
+
+  httping = callPackage ../tools/networking/httping { };
+
+  httplz = callPackage ../tools/networking/httplz { };
+
+  httpfs2 = callPackage ../tools/filesystems/httpfs { };
+
+  httprobe = callPackage ../tools/networking/httprobe { };
+
+  httpstat = callPackage ../tools/networking/httpstat { };
+
+  httptunnel = callPackage ../tools/networking/httptunnel { };
+
+  httpx = callPackage ../tools/security/httpx { };
+
+  hue-plus = libsForQt5.callPackage ../applications/misc/hue-plus { };
+
+  hurl = callPackage ../tools/networking/hurl { };
+
+  hubicfuse = callPackage ../tools/filesystems/hubicfuse { };
+
+  humanfriendly = with python3Packages; toPythonApplication humanfriendly;
+
+  hwinfo = callPackage ../tools/system/hwinfo { };
+
+  hw-probe = perlPackages.callPackage ../tools/system/hw-probe { };
+
+  hybridreverb2 = callPackage ../applications/audio/hybridreverb2 { };
+
+  hylafaxplus = callPackage ../servers/hylafaxplus {
+    # libtiff >= 4.6 dropped many executables needed by hylafaxplus
+    libtiff = libtiff_4_5;
+  };
+
+  hyphen = callPackage ../development/libraries/hyphen { };
+
+  i2c-tools = callPackage ../os-specific/linux/i2c-tools { };
+
+  i2p = callPackage ../tools/networking/i2p { };
+
+  i2pd = callPackage ../tools/networking/i2pd { };
+
+  iannix = libsForQt5.callPackage ../applications/audio/iannix { };
+
+  iaito = libsForQt5.callPackage ../tools/security/iaito { };
+
+  jamulus = libsForQt5.callPackage ../applications/audio/jamulus { };
+
+  ultrablue-server = callPackage ../os-specific/linux/ultrablue-server { };
+
+  ibm-sw-tpm2 = callPackage ../tools/security/ibm-sw-tpm2 { };
+
+  ibniz = callPackage ../tools/graphics/ibniz { };
+
+  icebreaker = callPackage ../servers/icebreaker { };
+
+  icecast = callPackage ../servers/icecast { };
+
+  icemon = libsForQt5.callPackage ../applications/networking/icemon { };
+
+  icepeak = haskell.lib.compose.justStaticExecutables haskellPackages.icepeak;
+
+  iceshelf = callPackage ../tools/backup/iceshelf { };
+
+  darkice = callPackage ../tools/audio/darkice { };
+
+  bc-decaf = callPackage ../development/libraries/bc-decaf { };
+
+  deckmaster = callPackage ../applications/misc/deckmaster { };
+
+  deco = callPackage ../applications/misc/deco { };
+
+  decoder = callPackage ../tools/security/decoder { };
+
+  icoutils = callPackage ../tools/graphics/icoutils { };
+
+  idutils = callPackage ../tools/misc/idutils { };
+
+  idle3tools = callPackage ../tools/system/idle3tools { };
+
+  ifcopenshell = with python3Packages; toPythonApplication ifcopenshell;
+
+  iftop = callPackage ../tools/networking/iftop { };
+
+  ifwifi = callPackage ../tools/networking/ifwifi {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ifuse = callPackage ../tools/filesystems/ifuse { };
+  ideviceinstaller = callPackage ../tools/misc/ideviceinstaller { };
+  idevicerestore = callPackage ../tools/misc/idevicerestore { };
+
+  inherit (callPackages ../tools/filesystems/irods rec {
+    stdenv = llvmPackages_13.libcxxStdenv;
+    libcxx = llvmPackages_13.libcxx;
+    boost = boost178.override { inherit stdenv; };
+    fmt = fmt_8.override { inherit stdenv; };
+    nanodbc_llvm = nanodbc.override { inherit stdenv; };
+    avro-cpp_llvm = avro-cpp.override { inherit stdenv boost; };
+  })
+    irods
+    irods-icommands;
+
+  ignite = callPackage ../applications/virtualization/ignite { };
+
+  igmpproxy = callPackage ../tools/networking/igmpproxy { };
+
+  ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
+    inherit (haskellPackages) ghcWithPackages;
+
+    jupyter = python3.withPackages (ps: [ ps.jupyter ps.notebook ]);
+
+    packages = config.ihaskell.packages or (_: []);
+  };
+
+  ijq = callPackage ../development/tools/ijq { };
+
+  iruby = callPackage ../applications/editors/jupyter-kernels/iruby { };
+
+  ike-scan = callPackage ../tools/security/ike-scan { };
+
+  ilspycmd = callPackage ../development/tools/ilspycmd {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  imapsync = callPackage ../tools/networking/imapsync { };
+
+  imgur-screenshot = callPackage ../tools/graphics/imgur-screenshot { };
+
+  imgurbash2 = callPackage ../tools/graphics/imgurbash2 { };
+
+  in-formant = qt6Packages.callPackage ../applications/audio/in-formant { };
+
+  inadyn = callPackage ../tools/networking/inadyn { };
+
+  incron = callPackage ../tools/system/incron { };
+
+  indexed-bzip2 = with python3Packages; toPythonApplication indexed-bzip2;
+
+  industrializer = callPackage ../applications/audio/industrializer { };
+
+  inetutils = callPackage ../tools/networking/inetutils { };
+
+  inferno = callPackage ../development/tools/inferno { };
+
+  infisical = callPackage ../development/tools/infisical { };
+
+  inform6 = darwin.apple_sdk_11_0.callPackage ../development/compilers/inform6 { };
+
+  inform7 = callPackage ../development/compilers/inform7 { };
+
+  infamousPlugins = callPackage ../applications/audio/infamousPlugins { };
+
+  innernet = callPackage ../tools/networking/innernet {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  innoextract = callPackage ../tools/archivers/innoextract { };
+
+  input-remapper = python3Packages.callPackage ../tools/inputmethods/input-remapper { };
+
+  input-utils = callPackage ../os-specific/linux/input-utils { };
+
+  inql = callPackage ../tools/security/inql { };
+
+  intel-media-sdk = callPackage ../development/libraries/intel-media-sdk { };
+
+  intermodal = callPackage ../tools/misc/intermodal { };
+
+  internetarchive = with python3Packages; toPythonApplication internetarchive;
+
+  invidious = callPackage ../servers/invidious {
+    # needs a specific version of lsquic
+    lsquic = callPackage ../servers/invidious/lsquic.nix { };
+    # normally video.js is downloaded at build time
+    videojs = callPackage ../servers/invidious/videojs.nix { };
+  };
+
+  invoice2data  = callPackage ../tools/text/invoice2data  { };
+
+  inxi = callPackage ../tools/system/inxi { };
+
+  iodine = callPackage ../tools/networking/iodine { };
+
+  ioc-scan = callPackage ../tools/security/ioc-scan { };
+
+  ioccheck = callPackage ../tools/security/ioccheck { };
+
+  iocextract = with python3Packages; toPythonApplication iocextract;
+
+  ioping = callPackage ../tools/system/ioping { };
+
+  ior = callPackage ../tools/system/ior { };
+
+  ioztat = callPackage ../tools/filesystems/ioztat { };
+
+  ip2location = callPackage ../tools/networking/ip2location { };
+
+  ip2unix = callPackage ../tools/networking/ip2unix { };
+
+  ipad_charge = callPackage ../tools/misc/ipad_charge { };
+
+  iperf2 = callPackage ../tools/networking/iperf/2.nix { };
+  iperf3 = callPackage ../tools/networking/iperf/3.nix { };
+  iperf = iperf3;
+
+  iperf3d = callPackage ../tools/networking/iperf3d { };
+
+  ipfetch = callPackage ../tools/networking/ipfetch { };
+
+  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
+
+  ipfs-upload-client = callPackage ../applications/networking/ipfs-upload-client { };
+
+  ipget = callPackage ../applications/networking/ipget { };
+
+  i-pi = with python3Packages; toPythonApplication i-pi;
+
+  iptsd = callPackage ../applications/misc/iptsd { };
+
+  ipmitool = callPackage ../tools/system/ipmitool { };
+
+  ipmiutil = callPackage ../tools/system/ipmiutil { };
+
+  ipatool = callPackage ../applications/misc/ipatool { };
+
+  ipmicfg = callPackage ../applications/misc/ipmicfg { };
+
+  ipmiview = callPackage ../applications/misc/ipmiview { };
+
+  ipcalc = callPackage ../tools/networking/ipcalc { };
+
+  netmask = callPackage ../tools/networking/netmask { };
+
+  netifd = callPackage ../tools/networking/netifd { };
+
+  ipinfo = callPackage ../tools/networking/ipinfo { };
+
+  ipscan = callPackage ../tools/security/ipscan { };
+  # ipscan is commonly known under the name angryipscanner
+  angryipscanner = ipscan;
+
+  ipv6calc = callPackage ../tools/networking/ipv6calc { };
+
+  ipxe = callPackage ../tools/misc/ipxe { };
+
+  irker = callPackage ../servers/irker { };
+
+  iroh = callPackage ../applications/networking/iroh { };
+
+  irrd = callPackage ../servers/misc/irrd { };
+
+  ised = callPackage ../tools/misc/ised { };
+
+  isl = isl_0_20;
+  isl_0_11 = callPackage ../development/libraries/isl/0.11.1.nix { };
+  isl_0_14 = callPackage ../development/libraries/isl/0.14.1.nix { };
+  isl_0_17 = callPackage ../development/libraries/isl/0.17.1.nix { };
+  isl_0_20 = callPackage ../development/libraries/isl/0.20.0.nix { };
+  isl_0_24 = callPackage ../development/libraries/isl/0.24.0.nix { };
+
+  ispike = callPackage ../development/libraries/science/robotics/ispike { };
+
+  isrcsubmit = callPackage ../tools/audio/isrcsubmit { };
+
+  isync = callPackage ../tools/networking/isync {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  itm-tools = callPackage ../development/tools/misc/itm-tools { };
+
+  ite-backlight = callPackage ../misc/ite-backlight { };
+
+  iwgtk = callPackage ../tools/networking/iwgtk { };
+
+  ix = callPackage ../tools/misc/ix { };
+
+  jaaa = callPackage ../applications/audio/jaaa { };
+
+  jackett = callPackage ../servers/jackett { };
+
+  jade = callPackage ../tools/text/sgml/jade { };
+
+  jadx = callPackage ../tools/security/jadx { };
+
+  jamesdsp = libsForQt5.callPackage ../applications/audio/jamesdsp { };
+  jamesdsp-pulse = libsForQt5.callPackage ../applications/audio/jamesdsp {
+    usePipewire = false;
+    usePulseaudio = true;
+  };
+
+  jaq = callPackage ../development/tools/jaq { };
+
+  jasmin-compiler = callPackage ../development/compilers/jasmin-compiler { };
+
+  jazzy = callPackage ../development/tools/jazzy { };
+
+  jc = with python3Packages; toPythonApplication jc;
+
+  jcli = callPackage ../development/tools/misc/jcli { };
+
+  jd-cli = callPackage ../tools/security/jd-cli { };
+
+  jd-diff-patch = callPackage ../development/tools/jd-diff-patch { };
+
+  jd-gui = callPackage ../tools/security/jd-gui { };
+
+  jdiskreport = callPackage ../tools/misc/jdiskreport { };
+
+  jekyll = callPackage ../applications/misc/jekyll { };
+
+  jello = with python3Packages; toPythonApplication jello;
+
+  jen = callPackage ../tools/text/jen { };
+
+  jet = callPackage ../development/tools/jet { };
+
+  jf = callPackage ../development/tools/jf { };
+
+  jfmt = callPackage ../development/tools/jfmt { };
+
+  jfsutils = callPackage ../tools/filesystems/jfsutils { };
+
+  jhead = callPackage ../tools/graphics/jhead { };
+
+  jid = callPackage ../development/tools/jid { };
+
+  jing = res.jing-trang;
+  jing-trang = callPackage ../tools/text/xml/jing-trang {
+    jdk_headless = jdk8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  jira-cli-go = callPackage ../development/tools/jira-cli-go { };
+
+  jirafeau = callPackage ../servers/web-apps/jirafeau { };
+
+  jitterentropy = callPackage ../development/libraries/jitterentropy { };
+
+  jl = haskellPackages.jl;
+
+  jless = callPackage ../development/tools/jless {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  stalwart-mail = callPackage ../servers/mail/stalwart { };
+
+  jmespath = callPackage ../development/tools/jmespath { };
+
+  juicefs = callPackage ../tools/filesystems/juicefs { };
+
+  juicity = callPackage ../tools/networking/juicity { };
+
+  jmtpfs = callPackage ../tools/filesystems/jmtpfs { };
+
+  jnettop = callPackage ../tools/networking/jnettop { };
+
+  jsvc = callPackage ../tools/system/jsvc { };
+
+  junkie = callPackage ../tools/networking/junkie { };
+
+  just = callPackage ../development/tools/just { };
+
+  go-jira = callPackage ../applications/misc/go-jira { };
+
+  john = callPackage ../tools/security/john { };
+
+  joomscan = callPackage ../tools/security/joomscan { };
+
+  joplin = nodePackages.joplin;
+
+  joplin-desktop = callPackage ../applications/misc/joplin-desktop { };
+
+  jot = callPackage ../applications/misc/jot { };
+
+  jotdown = callPackage ../tools/text/jotdown { };
+
+  journaldriver = callPackage ../tools/misc/journaldriver { };
+
+  jp = callPackage ../development/tools/jp { };
+
+  jp2a = callPackage ../applications/misc/jp2a { };
+
+  jpeg-archive = callPackage ../applications/graphics/jpeg-archive { };
+
+  jpegexiforient = callPackage ../tools/graphics/jpegexiforient { };
+
+  jpeginfo = callPackage ../applications/graphics/jpeginfo { };
+
+  jpegoptim = callPackage ../applications/graphics/jpegoptim { };
+
+  jpegrescan = callPackage ../applications/graphics/jpegrescan { };
+
+  jpylyzer = with python3Packages; toPythonApplication jpylyzer;
+
+  jq = callPackage ../development/tools/jq { };
+
+  jiq = callPackage ../development/tools/misc/jiq { };
+
+  jql = callPackage ../development/tools/jql { };
+
+  jqp = callPackage ../development/tools/jqp { };
+
+  jo = callPackage ../development/tools/jo { };
+
+  jrnl = callPackage ../applications/misc/jrnl { };
+
+  jsawk = callPackage ../tools/text/jsawk { };
+
+  jsbeautifier = with python3Packages; toPythonApplication jsbeautifier;
+
+  jscoverage = callPackage ../development/tools/misc/jscoverage { };
+
+  jsduck = callPackage ../development/tools/jsduck { };
+
+  jsluice = callPackage ../tools/security/jsluice { };
+
+  json-schema-for-humans = with python3Packages; toPythonApplication json-schema-for-humans;
+
+  jsonfmt = callPackage ../development/tools/misc/jsonfmt { };
+
+  jsonwatch = callPackage ../tools/misc/jsonwatch {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  jsubfinder = callPackage ../tools/security/jsubfinder { };
+
+  jtag-remote-server = callPackage ../development/embedded/jtag-remote-server { };
+
+  jtc = callPackage ../development/tools/jtc { };
+
+  jumpapp = callPackage ../tools/X11/jumpapp { };
+
+  jove = callPackage ../applications/editors/jove { };
+
+  jugglinglab = callPackage ../tools/misc/jugglinglab { };
+
+  jupp = callPackage ../applications/editors/jupp { };
+
+  jupyter = callPackage ../applications/editors/jupyter { };
+
+  jupyter-all = jupyter.override {
+    definitions = {
+      clojure = clojupyter.definition;
+      octave = octave-kernel.definition;
+      # wolfram = wolfram-for-jupyter-kernel.definition; # unfree
+    };
+  };
+
+  jupyter-console = callPackage ../applications/editors/jupyter/console.nix { };
+
+  jupyter-kernel = callPackage ../applications/editors/jupyter/kernel.nix { };
+
+  justify = callPackage ../tools/text/justify { };
+
+  jwhois = callPackage ../tools/networking/jwhois { };
+
+  k2pdfopt = callPackage ../applications/misc/k2pdfopt { };
+
+  kargo = callPackage ../tools/misc/kargo { };
+
+  kazam = callPackage ../applications/video/kazam { };
+
+  kalibrate-rtl = callPackage ../applications/radio/kalibrate-rtl { };
+
+  kalibrate-hackrf = callPackage ../applications/radio/kalibrate-hackrf { };
+
+  wrapKakoune = kakoune: attrs: callPackage ../applications/editors/kakoune/wrapper.nix (attrs // { inherit kakoune; });
+  kakounePlugins = recurseIntoAttrs (callPackage ../applications/editors/kakoune/plugins { });
+
+  kakoune-unwrapped = callPackage ../applications/editors/kakoune { };
+  kakoune = wrapKakoune kakoune-unwrapped {
+    plugins = [ ];  # override with the list of desired plugins
+  };
+  kakouneUtils = callPackage ../applications/editors/kakoune/plugins/kakoune-utils.nix { };
+
+  kaffeine = libsForQt5.callPackage ../applications/video/kaffeine { };
+
+  kak-lsp = callPackage ../tools/misc/kak-lsp {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration;
+  };
+
+  kakoune-cr = callPackage ../tools/misc/kakoune-cr { crystal = crystal_1_2; };
+
+  kaniko = callPackage ../applications/networking/cluster/kaniko { };
+
+  katana = callPackage ../tools/security/katana { };
+
+  kbdd = callPackage ../applications/window-managers/kbdd { };
+
+  kbs2 = callPackage ../tools/security/kbs2 {
+    inherit (darwin.apple_sdk.frameworks) AppKit SystemConfiguration;
+  };
+
+  kdash = callPackage ../development/tools/kdash {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  kdoctor = callPackage ../development/tools/kdoctor { };
+
+  kdbplus = pkgsi686Linux.callPackage ../applications/misc/kdbplus { };
+
+  kdigger = callPackage ../tools/security/kdigger { };
+
+  kdiskmark = libsForQt5.callPackage ../tools/filesystems/kdiskmark { };
+
+  keepalived = callPackage ../tools/networking/keepalived { };
+
+  keepwn = callPackage ../tools/security/keepwn { };
+
+  kestrel = callPackage ../tools/security/kestrel { };
+
+  kexec-tools = callPackage ../os-specific/linux/kexec-tools {
+    # clangStdenv fails with
+    # purgatory/arch/i386/entry32-16.S:23:2: error: unknown directive
+    #  .arch i386
+    #  ^
+    # purgatory/arch/i386/entry32-16.S:115:11: error: unknown token in expression
+    #  ljmp %cs:*(realdest - entry16)
+    #           ^
+    # make: *** [Makefile:128: purgatory/arch/i386/entry32-16.o] Error 1
+    stdenv = gccStdenv;
+  };
+
+  keepkey_agent = with python3Packages; toPythonApplication keepkey_agent;
+
+  keepmenu = callPackage ../applications/misc/keepmenu { };
+
+  kent = callPackage ../applications/science/biology/kent { };
+
+  keybase = darwin.apple_sdk_11_0.callPackage ../tools/security/keybase {
+    # Reasoning for the inherited apple_sdk.frameworks:
+    # 1. specific compiler errors about: AVFoundation, AudioToolbox, MediaToolbox
+    # 2. the rest are added from here: https://github.com/keybase/client/blob/68bb8c893c5214040d86ea36f2f86fbb7fac8d39/go/chat/attachments/preview_darwin.go#L7
+    #      #cgo LDFLAGS: -framework AVFoundation -framework CoreFoundation -framework ImageIO -framework CoreMedia  -framework Foundation -framework CoreGraphics -lobjc
+    #    with the exception of CoreFoundation, due to the warning in https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/darwin/apple-sdk/frameworks.nix#L25
+    inherit (darwin.apple_sdk_11_0.frameworks) AVFoundation AudioToolbox ImageIO CoreMedia Foundation CoreGraphics MediaToolbox;
+  };
+
+  kbfs = callPackage ../tools/security/keybase/kbfs.nix { };
+
+  keybase-gui = callPackage ../tools/security/keybase/gui.nix { };
+
+  keychain = callPackage ../tools/misc/keychain { };
+
+  keyfuzz = callPackage ../tools/inputmethods/keyfuzz { };
+
+  keyscope = callPackage ../tools/security/keyscope {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation IOKit Security;
+  };
+
+  keystore-explorer = callPackage ../applications/misc/keystore-explorer {
+    jdk = jdk11;
+  };
+
+  kluctl = callPackage ../applications/networking/cluster/kluctl { };
+
+  kibi = callPackage ../applications/editors/kibi { };
+
+  kio-fuse = libsForQt5.callPackage ../tools/filesystems/kio-fuse { };
+
+  kismet = callPackage ../applications/networking/sniffers/kismet { };
+
+  kiterunner = callPackage ../tools/security/kiterunner { };
+
+  klick = callPackage ../applications/audio/klick { };
+
+  klystrack = callPackage ../applications/audio/klystrack { };
+
+  knit = callPackage ../development/tools/build-managers/knit { };
+
+  knockpy = callPackage ../tools/security/knockpy { };
+
+  knowsmore = callPackage ../tools/security/knowsmore { };
+
+  kool = callPackage ../development/tools/misc/kool { };
+
+  kore = callPackage ../development/web/kore {
+    openssl = openssl_1_1;
+  };
+
+  krakenx = callPackage ../tools/system/krakenx { };
+
+  partition-manager = libsForQt5.callPackage ../tools/misc/partition-manager { };
+
+  kpcli = callPackage ../tools/security/kpcli { };
+
+  kphotoalbum = libsForQt5.callPackage ../applications/graphics/kphotoalbum { };
+
+  kratos = callPackage ../applications/misc/kratos { };
+
+  krename = libsForQt5.callPackage ../applications/misc/krename { };
+
+  krunner-pass = libsForQt5.callPackage ../tools/security/krunner-pass { };
+
+  krunner-translator = libsForQt5.callPackage ../tools/misc/krunner-translator { };
+
+  krunvm = callPackage ../applications/virtualization/krunvm {
+    inherit (darwin) sigtool;
+  };
+
+  kronometer = libsForQt5.callPackage ../tools/misc/kronometer { };
+
+  krop = callPackage ../applications/graphics/krop { };
+
+  kdiff3 = libsForQt5.callPackage ../tools/text/kdiff3 { };
+
+  kube-router = callPackage ../applications/networking/cluster/kube-router {
+    buildGoModule = buildGo120Module;
+  };
+
+  kubedock = callPackage ../development/tools/kubedock { };
+
+  kubepug = callPackage ../development/tools/kubepug { };
+
+  kubeshark = callPackage ../applications/networking/cluster/kubeshark { };
+
+  kubergrunt = callPackage ../applications/networking/cluster/kubergrunt { };
+
+  kubo-migrator-all-fs-repo-migrations = callPackage ../applications/networking/kubo-migrator/all-migrations.nix { };
+  kubo-migrator-unwrapped = callPackage ../applications/networking/kubo-migrator/unwrapped.nix { };
+  kubo-migrator = callPackage ../applications/networking/kubo-migrator { };
+
+  kwalletcli = libsForQt5.callPackage ../tools/security/kwalletcli { };
+
+  peruse = libsForQt5.callPackage ../tools/misc/peruse { };
+
+  ksmoothdock = libsForQt5.callPackage ../applications/misc/ksmoothdock { };
+
+  kstars = libsForQt5.callPackage ../applications/science/astronomy/kstars { };
+
+  kytea = callPackage ../tools/text/kytea { };
+
+  kyverno = callPackage ../applications/networking/cluster/kyverno { };
+
+  k6 = callPackage ../development/tools/k6 { };
+
+  l2md = callPackage ../tools/text/l2md { };
+
+  lalezar-fonts = callPackage ../data/fonts/lalezar-fonts { };
+
+  lalrpop = callPackage ../development/tools/lalrpop { };
+
+  last-resort = callPackage ../data/fonts/last-resort { };
+
+  ldc = callPackage ../development/compilers/ldc { };
+
+  ligo =
+    let ocaml_p = ocaml-ng.ocamlPackages_4_14_janeStreet_0_15.overrideScope (self: super: {
+      zarith = super.zarith.overrideAttrs (o: {
+        src = fetchzip {
+          url = "https://github.com/ocaml/Zarith/archive/refs/tags/release-1.12.tar.gz";
+          hash = "sha256-SQegsMc1+UIod8XeJDE+H5q1huNDQI8CUh7IsHOoVMs=";
+        };
+      });
+    }); in
+    callPackage ../development/compilers/ligo {
+    coq = coq_8_13.override {
+      customOCamlPackages = ocaml_p;
+    };
+    ocamlPackages = ocaml_p;
+  };
+
+  lego = callPackage ../tools/admin/lego { };
+
+  leocad = libsForQt5.callPackage ../applications/graphics/leocad { };
+
+  lha = callPackage ../tools/archivers/lha { };
+
+  lhasa = callPackage ../tools/compression/lhasa { };
+
+  libcsptr = callPackage ../development/libraries/libcsptr { };
+
+  libgovirt = callPackage ../applications/virtualization/libgovirt { };
+
+  libscrypt = callPackage ../development/libraries/libscrypt { };
+
+  libcloudproviders = callPackage ../development/libraries/libcloudproviders { };
+
+  libcoap = callPackage ../applications/networking/libcoap {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  libcryptui = callPackage ../development/libraries/libcryptui {
+    autoreconfHook = buildPackages.autoreconfHook269;
+    gtk3 = if stdenv.isDarwin then gtk3-x11 else gtk3;
+  };
+
+  libshumate = callPackage ../development/libraries/libshumate { };
+
+  libsmartcols = callPackage ../development/libraries/libsmartcols { };
+
+  libsmi = callPackage ../development/libraries/libsmi { };
+
+  libgen-cli = callPackage ../tools/misc/libgen-cli { };
+
+  libpff = callPackage ../tools/misc/libpff {};
+
+  licensor = callPackage ../tools/misc/licensor { };
+
+  lesspipe = callPackage ../tools/misc/lesspipe { };
+
+  liquidsoap = callPackage ../tools/audio/liquidsoap/full.nix {
+    ffmpeg = ffmpeg-full;
+  };
+
+  linuxwave = callPackage ../tools/audio/linuxwave { };
+
+  littlefs-fuse = callPackage ../tools/filesystems/littlefs-fuse { };
+
+  lksctp-tools = callPackage ../os-specific/linux/lksctp-tools { };
+
+  lldpd = callPackage ../tools/networking/lldpd { };
+
+  llm = with python3Packages; toPythonApplication llm;
+
+  lnav = callPackage ../tools/misc/lnav { };
+
+  lnch = callPackage ../tools/misc/lnch { };
+
+  lnx = callPackage ../servers/search/lnx {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
+  };
+
+  loadlibrary = callPackage ../tools/misc/loadlibrary { };
+
+  loc = callPackage ../development/misc/loc { };
+
+  lockfileProgs = callPackage ../tools/misc/lockfile-progs { };
+
+  loganalyzer = libsForQt5.callPackage ../development/tools/loganalyzer { };
+
+  logstash7 = callPackage ../tools/misc/logstash/7.x.nix {
+    # https://www.elastic.co/support/matrix#logstash-and-jvm
+    jre = jdk11_headless;
+  };
+  logstash7-oss = callPackage ../tools/misc/logstash/7.x.nix {
+    enableUnfree = false;
+    # https://www.elastic.co/support/matrix#logstash-and-jvm
+    jre = jdk11_headless;
+  };
+  logstash = logstash7;
+
+  logstash-contrib = callPackage ../tools/misc/logstash/contrib.nix { };
+
+  lolcat = callPackage ../tools/misc/lolcat { };
+
+  lottieconverter = callPackage ../tools/misc/lottieconverter { };
+
+  loudgain = callPackage ../tools/audio/loudgain/default.nix { };
+
+  lpcnetfreedv = callPackage ../development/libraries/lpcnetfreedv { };
+
+  lsd = callPackage ../tools/misc/lsd { };
+
+  lsdvd = callPackage ../tools/cd-dvd/lsdvd { };
+
+  lsyncd = callPackage ../applications/networking/sync/lsyncd {
+    inherit (darwin) xnu;
+    lua = lua5_2_compat;
+  };
+
+  lttoolbox = callPackage ../applications/misc/lttoolbox { };
+
+  ltwheelconf = callPackage ../applications/misc/ltwheelconf { };
+
+  lunatask = callPackage ../applications/misc/lunatask { };
+
+  lvmsync = callPackage ../tools/backup/lvmsync { };
+
+  kapp = callPackage ../tools/networking/kapp { };
+
+  kdbg = libsForQt5.callPackage ../development/tools/misc/kdbg { };
+
+  kristall = libsForQt5.callPackage ../applications/networking/browsers/kristall { };
+
+  lagrange = callPackage ../applications/networking/browsers/lagrange {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+  lagrange-tui = lagrange.override { enableTUI = true; };
+
+  kzipmix = pkgsi686Linux.callPackage ../tools/compression/kzipmix { };
+
+  ma1sd = callPackage ../servers/ma1sd { };
+
+  mailcatcher = callPackage ../development/web/mailcatcher { };
+
+  makebootfat = callPackage ../tools/misc/makebootfat { };
+
+  mani = callPackage ../development/tools/mani { };
+
+  manifest-tool = callPackage ../development/tools/manifest-tool { };
+
+  mask = callPackage ../development/tools/mask { };
+
+  maskromtool = qt6Packages.callPackage ../tools/graphics/maskromtool { };
+
+  mastotool = callPackage ../tools/misc/mastotool { };
+
+  mathpix-snipping-tool = callPackage ../tools/misc/mathpix-snipping-tool { };
+
+  matrix-conduit = callPackage ../servers/matrix-conduit { };
+
+  matrix-sliding-sync = callPackage ../servers/matrix-synapse/sliding-sync { };
+
+  matrix-synapse = callPackage ../servers/matrix-synapse/wrapper.nix { };
+  matrix-synapse-unwrapped = callPackage ../servers/matrix-synapse/default.nix { };
+  matrix-synapse-plugins = recurseIntoAttrs matrix-synapse-unwrapped.plugins;
+  matrix-synapse-tools = recurseIntoAttrs matrix-synapse-unwrapped.tools;
+
+  matrix-appservice-irc = callPackage ../servers/matrix-synapse/matrix-appservice-irc { };
+
+  matrix-appservice-slack = callPackage ../servers/matrix-synapse/matrix-appservice-slack {
+    matrix-sdk-crypto-nodejs = matrix-sdk-crypto-nodejs-0_1_0-beta_3;
+    nodejs = nodejs_18;
+  };
+
+  matrix-appservice-discord = callPackage ../servers/matrix-appservice-discord {
+    matrix-sdk-crypto-nodejs = matrix-sdk-crypto-nodejs-0_1_0-beta_3;
+  };
+
+  matrix-corporal = callPackage ../servers/matrix-corporal { };
+
+  matrix-hookshot = callPackage ../servers/matrix-synapse/matrix-hookshot { };
+
+  maubot = with python3Packages; toPythonApplication maubot;
+
+  mautrix-discord = callPackage ../servers/mautrix-discord { };
+
+  mautrix-facebook = callPackage ../servers/mautrix-facebook { };
+
+  mautrix-googlechat = callPackage ../servers/mautrix-googlechat { };
+
+  mautrix-signal = recurseIntoAttrs (callPackage ../servers/mautrix-signal { });
+
+  mautrix-telegram = recurseIntoAttrs (callPackage ../servers/mautrix-telegram { });
+
+  mautrix-whatsapp = callPackage ../servers/mautrix-whatsapp { };
+
+  mcfly = callPackage ../tools/misc/mcfly { };
+
+  m2r = with python3Packages; toPythonApplication m2r;
+
+  md2gemini = with python3.pkgs; toPythonApplication md2gemini;
+
+  mdbook = callPackage ../tools/text/mdbook {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-emojicodes = callPackage ../tools/text/mdbook-emojicodes { };
+
+  mdbook-epub = callPackage ../tools/text/mdbook-epub {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-cmdrun = callPackage ../tools/text/mdbook-cmdrun { };
+
+  mdbook-d2 = callPackage ../tools/text/mdbook-d2 { };
+
+  mdbook-pagetoc = callPackage ../tools/text/mdbook-pagetoc { };
+
+  mdbook-graphviz = callPackage ../tools/text/mdbook-graphviz {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-i18n-helpers = callPackage ../tools/text/mdbook-i18n-helpers { };
+
+  mdbook-katex = callPackage ../tools/text/mdbook-katex {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-kroki-preprocessor = callPackage ../tools/text/mdbook-kroki-preprocessor { };
+
+  mdbook-linkcheck = callPackage ../tools/text/mdbook-linkcheck {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  mdbook-open-on-gh = callPackage ../tools/text/mdbook-open-on-gh { };
+
+  mdbook-man = callPackage ../tools/text/mdbook-man { };
+
+  mdbook-mermaid = callPackage ../tools/text/mdbook-mermaid {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-pdf = callPackage ../tools/text/mdbook-pdf {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-plantuml = callPackage ../tools/text/mdbook-plantuml {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-toc = callPackage ../tools/text/mdbook-toc {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-admonish = callPackage ../tools/text/mdbook-admonish {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdbook-footnote = callPackage ../tools/text/mdbook-footnote {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mdcat = callPackage ../tools/text/mdcat {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+    inherit (python3Packages) ansi2html;
+  };
+
+  medfile = callPackage ../development/libraries/medfile {
+    hdf5 = hdf5.override { usev110Api = true; };
+  };
+
+  meilisearch = callPackage ../servers/search/meilisearch {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+  };
+
+  memtester = callPackage ../tools/system/memtester { };
+
+  mesa-demos = callPackage ../tools/graphics/mesa-demos { };
+
+  mhonarc = perlPackages.MHonArc;
+
+  minica = callPackage ../tools/security/minica { };
+
+  minidlna = callPackage ../tools/networking/minidlna { };
+
+  miniplayer = callPackage ../applications/audio/miniplayer { };
+
+  minipro = callPackage ../tools/misc/minipro { };
+
+  minisign = callPackage ../tools/security/minisign { };
+
+  ministat = callPackage ../tools/misc/ministat { };
+
+  minizign = callPackage ../tools/security/minizign { };
+
+  mitm6 = callPackage ../tools/security/mitm6 { };
+
+  mjolnir = callPackage ../servers/mjolnir {
+    matrix-sdk-crypto-nodejs = matrix-sdk-crypto-nodejs-0_1_0-beta_3;
+  };
+
+  mmutils = callPackage ../tools/X11/mmutils { };
+
+  mmv = callPackage ../tools/misc/mmv { };
+
+  mmv-go = callPackage ../tools/misc/mmv-go { };
+
+  mob = callPackage ../applications/misc/mob { };
+
+  most = callPackage ../tools/misc/most { };
+
+  motion = callPackage ../applications/video/motion { };
+
+  mozphab = callPackage ../applications/misc/mozphab { };
+
+  mtail = callPackage ../servers/monitoring/mtail { };
+
+  mujmap = callPackage ../applications/networking/mujmap {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  multitail = callPackage ../tools/misc/multitail { };
+
+  mvebu64boot = callPackage ../tools/misc/mvebu64boot { };
+
+  mx-puppet-discord = callPackage ../servers/mx-puppet-discord { };
+
+  mx-takeover = callPackage ../tools/security/mx-takeover { };
+
+  mxt-app = callPackage ../misc/mxt-app { };
+
+  naabu = callPackage ../tools/security/naabu { };
+
+  nagstamon = callPackage ../tools/misc/nagstamon {
+    pythonPackages = python3Packages;
+  };
+
+  nanoemoji = python3Packages.callPackage ../tools/misc/nanoemoji { };
+
+  nagelfar = callPackage ../development/tools/nagelfar { };
+
+  nats-top = callPackage ../tools/system/nats-top { };
+
+  natscli = callPackage ../tools/system/natscli { };
+
+  nsc = callPackage ../tools/system/nsc { };
+
+  nbench = callPackage ../tools/misc/nbench { };
+
+  nbtscanner = callPackage ../tools/security/nbtscanner {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  nbutools = callPackage ../tools/security/nbutools { };
+
+  ncrack = callPackage ../tools/security/ncrack { };
+
+  nerdctl = callPackage ../applications/networking/cluster/nerdctl { };
+
+  netdata = callPackage ../tools/system/netdata {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
+    protobuf = protobuf_21;
+  };
+  netdataCloud = netdata.override {
+    withCloud = !stdenv.isDarwin;
+    withCloudUi = true;
+  };
+  # Exposed here so the bots can auto-upgrade it
+  netdata-go-plugins = callPackage ../tools/system/netdata/go.d.plugin.nix { };
+
+  netsurf = recurseIntoAttrs (callPackage ../applications/networking/browsers/netsurf { });
+  netsurf-browser = netsurf.browser;
+
+  netperf = callPackage ../applications/networking/netperf { };
+
+  netsniff-ng = callPackage ../tools/networking/netsniff-ng { };
+
+  networkminer = callPackage ../tools/security/networkminer { };
+
+  nixpacks = callPackage ../applications/virtualization/nixpacks { };
+
+  nkeys = callPackage ../tools/system/nkeys { };
+
+  nyxt = callPackage ../applications/networking/browsers/nyxt { };
+
+  nfpm = callPackage ../tools/package-management/nfpm { };
+
+  nginx-config-formatter = callPackage ../tools/misc/nginx-config-formatter { };
+
+  ninka = callPackage ../development/tools/misc/ninka { };
+
+  nixnote2 = libsForQt5.callPackage ../applications/misc/nixnote2 { };
+
+  nodenv = callPackage ../development/tools/nodenv { };
+
+  nodejs = hiPrio nodejs_20;
+  nodejs-slim = nodejs-slim_20;
+  corepack = hiPrio corepack_20;
+
+  nodejs_18 = callPackage ../development/web/nodejs/v18.nix { };
+  nodejs-slim_18 = callPackage ../development/web/nodejs/v18.nix { enableNpm = false; };
+  corepack_18 = hiPrio (callPackage ../development/web/nodejs/corepack.nix { nodejs = nodejs_18; });
+
+  nodejs_20 = callPackage ../development/web/nodejs/v20.nix { };
+  nodejs-slim_20 = callPackage ../development/web/nodejs/v20.nix { enableNpm = false; };
+  corepack_20 = hiPrio (callPackage ../development/web/nodejs/corepack.nix { nodejs = nodejs_20; });
+
+  nodejs_21 = callPackage ../development/web/nodejs/v21.nix { };
+  nodejs-slim_21 = callPackage ../development/web/nodejs/v21.nix { enableNpm = false; };
+  corepack_21 = hiPrio (callPackage ../development/web/nodejs/corepack.nix { nodejs = nodejs_21; });
+
+  # Update this when adding the newest nodejs major version!
+  nodejs_latest = nodejs_21;
+  nodejs-slim_latest = nodejs-slim_21;
+  corepack_latest = hiPrio corepack_21;
+
+  buildNpmPackage = callPackage ../build-support/node/build-npm-package { };
+
+  npmHooks = callPackage ../build-support/node/build-npm-package/hooks { };
+
+  inherit (callPackages ../build-support/node/fetch-npm-deps { })
+    fetchNpmDeps prefetch-npm-deps;
+
+  nodePackages_latest = dontRecurseIntoAttrs nodejs_latest.pkgs // { __attrsFailEvaluation = true; };
+
+  nodePackages = dontRecurseIntoAttrs nodejs.pkgs // { __attrsFailEvaluation = true; };
+
+  node2nix = nodePackages.node2nix;
+
+  notesnook = callPackage ../applications/misc/notesnook { };
+
+  oddjob = callPackage ../os-specific/linux/oddjob { };
+
+  openipmi = callPackage ../tools/system/openipmi { };
+
+  ox = callPackage ../applications/editors/ox { };
+
+  oxigraph = callPackage ../servers/oxigraph {
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  file-rename = callPackage ../tools/filesystems/file-rename { };
+
+  kcollectd = libsForQt5.callPackage ../tools/misc/kcollectd { };
+
+  kea = callPackage ../tools/networking/kea { };
+
+  keama = callPackage ../tools/networking/keama { };
+
+  ktailctl = libsForQt5.callPackage ../applications/networking/ktailctl {};
+
+  iredis = callPackage ../tools/admin/iredis { };
+
+  ispell = callPackage ../tools/text/ispell { };
+
+  iodash = callPackage ../development/libraries/iodash { };
+
+  jbofihe = callPackage ../tools/text/jbofihe { };
+
+  jbrowse = callPackage ../applications/science/biology/jbrowse { };
+
+  jumanpp = callPackage ../tools/text/jumanpp { };
+
+  jump = callPackage ../tools/system/jump { };
+
+  latex2html = callPackage ../tools/misc/latex2html { };
+
+  lazycli = callPackage ../tools/misc/lazycli { };
+
+  lavat = callPackage ../tools/misc/lavat { };
+
+  lcdf-typetools = callPackage ../tools/misc/lcdf-typetools { };
+
+  lcsync = callPackage ../applications/networking/sync/lcsync { };
+
+  ldapdomaindump = with python3Packages; toPythonApplication ldapdomaindump;
+
+  ldapmonitor = callPackage ../tools/security/ldapmonitor { };
+
+  ldapnomnom = callPackage ../tools/security/ldapnomnom { };
+
+  ldapvi = callPackage ../tools/misc/ldapvi { };
+
+  ldeep = callPackage ../tools/security/ldeep { };
+
+  ldns = callPackage ../development/libraries/ldns { };
+
+  leafpad = callPackage ../applications/editors/leafpad { };
+
+  l3afpad = callPackage ../applications/editors/l3afpad { };
+
+  leanify = callPackage ../tools/misc/leanify { };
+
+  leatherman = callPackage ../development/libraries/leatherman { };
+
+  lact = callPackage ../tools/system/lact { };
+
+  ledit = callPackage ../tools/misc/ledit { };
+
+  ledmon = callPackage ../tools/system/ledmon { };
+
+  leela = callPackage ../tools/graphics/leela { };
+
+  lemmeknow = callPackage ../tools/misc/lemmeknow { };
+
+  lemmy-help = callPackage ../tools/misc/lemmy-help { };
+
+  lerpn = callPackage ../tools/misc/lerpn { };
+
+  lethe = callPackage ../tools/security/lethe {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  lftp = callPackage ../tools/networking/lftp { };
+
+  libck = callPackage ../development/libraries/libck { };
+
+  libcork = callPackage ../development/libraries/libcork { };
+
+  libconfig = callPackage ../development/libraries/libconfig { };
+
+  libcmis = callPackage ../development/libraries/libcmis { };
+
+  libee = callPackage ../development/libraries/libee { };
+
+  libepc = callPackage ../development/libraries/libepc { };
+
+  liberfa = callPackage ../development/libraries/liberfa { };
+
+  libestr = callPackage ../development/libraries/libestr { };
+
+  libevdev = callPackage ../development/libraries/libevdev { };
+
+  liberio = callPackage ../development/libraries/liberio { };
+
+  libevdevplus = callPackage ../development/libraries/libevdevplus { };
+
+  libfann = callPackage ../development/libraries/libfann { };
+
+  libfsm = callPackage ../development/libraries/libfsm { };
+
+  libgaminggear = callPackage ../development/libraries/libgaminggear { };
+
+  libhandy = callPackage ../development/libraries/libhandy { };
+
+  # Needed for apps that still depend on the unstable verison of the library (not libhandy-1)
+  libhandy_0 = callPackage ../development/libraries/libhandy/0.x.nix { };
+
+  libgmpris = callPackage ../development/libraries/libgmpris { };
+
+  libgumath = callPackage ../development/libraries/libgumath { };
+
+  libinsane = callPackage ../development/libraries/libinsane { };
+
+  libint = callPackage ../development/libraries/libint { };
+  libintPsi4 = callPackage ../development/libraries/libint {
+    enableFortran = false;
+    enableSSE = false;
+    maxAm = 6;
+    eriDeriv = 2;
+    eri3Deriv = 2;
+    eri2Deriv = 2;
+    eriAm = [ 6 5 4 ];
+    eri3Am = [ 6 5 4 ];
+    eri2Am = [ 6 5 4 ];
+    eriOptAm = [ 3 2 2 ];
+    eri3OptAm = [ 3 2 2 ];
+    eri2OptAm = [ 3 2 2 ];
+    enableOneBody = true;
+    oneBodyDerivOrd = 2;
+    enableGeneric = false;
+    enableContracted = false;
+    cartGaussOrd = "standard";
+    shGaussOrd = "gaussian";
+    eri2PureSh = false;
+    eri3PureSh = false;
+  };
+
+  libipfix = callPackage ../development/libraries/libipfix { };
+
+  libirc = libsForQt5.callPackage ../development/libraries/libirc { };
+
+  libircclient = callPackage ../development/libraries/libircclient { };
+
+  libiscsi = callPackage ../development/libraries/libiscsi { };
+
+  libisds = callPackage ../development/libraries/libisds { };
+
+  libite = callPackage ../development/libraries/libite { };
+
+  liblangtag = callPackage ../development/libraries/liblangtag {
+    inherit (gnome) gnome-common;
+  };
+
+  liblouis = callPackage ../development/libraries/liblouis { };
+
+  liboauth = callPackage ../development/libraries/liboauth { };
+
+  libr3 = callPackage ../development/libraries/libr3 { };
+
+  libraspberrypi = callPackage ../development/libraries/libraspberrypi { };
+
+  libsidplayfp = callPackage ../development/libraries/libsidplayfp { };
+
+  libspf2 = callPackage ../development/libraries/libspf2 { };
+
+  libsrs2 = callPackage ../development/libraries/libsrs2 { };
+
+  libtermkey = callPackage ../development/libraries/libtermkey { };
+
+  libtelnet = callPackage ../development/libraries/libtelnet { };
+
+  libtirpc = callPackage ../development/libraries/ti-rpc { };
+
+  libtickit = callPackage ../development/libraries/libtickit { };
+
+  libtins = callPackage ../development/libraries/libtins { };
+
+  libtree = callPackage ../development/tools/misc/libtree { };
+
+  libshout = callPackage ../development/libraries/libshout { };
+
+  libqb = callPackage ../development/libraries/libqb { };
+
+  libqmi = callPackage ../development/libraries/libqmi { };
+
+  libqrtr-glib = callPackage ../development/libraries/libqrtr-glib { };
+
+  libmbim = callPackage ../development/libraries/libmbim { };
+
+  libmongocrypt = darwin.apple_sdk_11_0.callPackage ../development/libraries/libmongocrypt { };
+
+  libmesode = callPackage ../development/libraries/libmesode { };
+
+  libmsym = callPackage ../development/libraries/science/chemistry/libmsym { };
+
+  libnabo = callPackage ../development/libraries/libnabo { };
+
+  libngspice = callPackage ../development/libraries/libngspice { };
+
+  libnixxml = callPackage ../development/libraries/libnixxml { };
+
+  libplctag = callPackage ../development/libraries/libplctag { };
+
+  libpointmatcher = callPackage ../development/libraries/libpointmatcher { };
+
+  libportal = callPackage ../development/libraries/libportal { };
+  libportal-gtk3 = libportal.override { variant = "gtk3"; };
+  libportal-gtk4 = libportal.override { variant = "gtk4"; };
+  libportal-qt5 = libportal.override { variant = "qt5"; };
+
+  libmicrodns = callPackage ../development/libraries/libmicrodns { };
+
+  libnids = callPackage ../tools/networking/libnids { };
+
+  rtorrent = callPackage ../applications/networking/p2p/rakshasa-rtorrent {
+    libtorrent = callPackage ../applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix { };
+  };
+
+  jesec-rtorrent = callPackage ../applications/networking/p2p/jesec-rtorrent {
+    libtorrent = callPackage ../applications/networking/p2p/jesec-rtorrent/libtorrent.nix { };
+  };
+
+  libmpack = callPackage ../development/libraries/libmpack { };
+
+  libiberty = callPackage ../development/libraries/libiberty { };
+
+  libucl = callPackage ../development/libraries/libucl { };
+
+  libxc = callPackage ../development/libraries/libxc { };
+
+  libxcomp = callPackage ../development/libraries/libxcomp { };
+
+  libxl = callPackage ../development/libraries/libxl { };
+
+  libx86emu = callPackage ../development/libraries/libx86emu { };
+
+  libzim = callPackage ../development/libraries/libzim { };
+
+
+  libzmf = callPackage ../development/libraries/libzmf { };
+
+  libreddit = callPackage ../servers/libreddit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  librespeed-cli = callPackage ../tools/misc/librespeed-cli { };
+
+  libreswan = callPackage ../tools/networking/libreswan { };
+
+  librest = callPackage ../development/libraries/librest { };
+
+  librest_1_0 = callPackage ../development/libraries/librest/1.0.nix { };
+
+  libwebsockets = callPackage ../development/libraries/libwebsockets { };
+
+  libyafaray = callPackage ../tools/graphics/libyafaray { };
+
+  licensee = callPackage ../tools/package-management/licensee { };
+
+  lidarr = callPackage ../servers/lidarr { };
+
+  limesuite = callPackage ../applications/radio/limesuite {
+    inherit (darwin.apple_sdk.frameworks) GLUT;
+  };
+
+  limesurvey = callPackage ../servers/limesurvey { };
+
+  linux-exploit-suggester = callPackage ../tools/security/linux-exploit-suggester { };
+
+  linux-gpib = callPackage ../applications/science/electronics/linux-gpib/user.nix { };
+
+  linuxquota = callPackage ../tools/misc/linuxquota { };
+
+  lipl = callPackage ../tools/misc/lipl { };
+
+  liquidctl = with python3Packages; toPythonApplication liquidctl;
+
+  lmp = callPackage ../tools/security/lmp { };
+
+  localproxy = callPackage ../applications/networking/localproxy { };
+
+  localstack = with python3Packages; toPythonApplication localstack;
+
+  localtime = callPackage ../tools/system/localtime { };
+
+  log4j-detect = callPackage ../tools/security/log4j-detect { };
+
+  log4j-scan = callPackage ../tools/security/log4j-scan { };
+
+  log4j-sniffer = callPackage ../tools/security/log4j-sniffer { };
+
+  log4j-vuln-scanner = callPackage ../tools/security/log4j-vuln-scanner { };
+
+  log4jcheck = callPackage ../tools/security/log4jcheck { };
+
+  log4shell-detector = callPackage ../tools/security/log4shell-detector { };
+
+  logcheck = callPackage ../tools/system/logcheck { };
+
+  logmap = callPackage ../tools/security/logmap { };
+
+  logmein-hamachi = callPackage ../tools/networking/logmein-hamachi { };
+
+  logkeys = callPackage ../tools/security/logkeys { };
+
+  logrotate = callPackage ../tools/system/logrotate { };
+
+  logstalgia = callPackage ../tools/graphics/logstalgia { };
+
+  lokalise2-cli = callPackage ../tools/misc/lokalise2-cli { };
+
+  loki = callPackage ../development/libraries/loki { };
+
+  longview = callPackage ../servers/monitoring/longview { };
+
+  lorien = callPackage ../applications/graphics/lorien { };
+
+  lout = callPackage ../tools/typesetting/lout { };
+
+  lr = callPackage ../tools/system/lr { };
+
+  lrzip = callPackage ../tools/compression/lrzip { };
+
+  lsb-release = callPackage ../os-specific/linux/lsb-release { };
+
+  # lsh installs `bin/nettle-lfib-stream' and so does Nettle.  Give the
+  # former a lower priority than Nettle.
+  lsh = lowPrio (callPackage ../tools/networking/lsh { });
+
+  lshw = callPackage ../tools/system/lshw { };
+
+  lunatic = callPackage ../development/interpreters/lunatic { };
+
+  lux = callPackage ../tools/video/lux { };
+
+  lv = callPackage ../tools/text/lv { };
+
+  lv_img_conv = callPackage ../development/tools/lv_img_conv  {
+    inherit (darwin.apple_sdk.frameworks) CoreText;
+  };
+
+  lwc = callPackage ../tools/misc/lwc { };
+
+  lxc = callPackage ../os-specific/linux/lxc {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+  lxcfs = callPackage ../os-specific/linux/lxcfs { };
+
+  lxd = callPackage ../tools/admin/lxd/wrapper.nix { };
+  lxd-unwrapped = callPackage ../tools/admin/lxd { };
+
+  lxd-image-server = callPackage ../tools/virtualization/lxd-image-server { };
+
+  lzfse = callPackage ../tools/compression/lzfse { };
+
+  lzham = callPackage ../tools/compression/lzham { };
+
+  lzip = callPackage ../tools/compression/lzip { };
+
+  plzip = callPackage ../tools/compression/plzip { };
+
+  lziprecover = callPackage ../tools/compression/lziprecover { };
+
+  xz = callPackage ../tools/compression/xz { };
+
+  lz4 = callPackage ../tools/compression/lz4 { };
+
+  lzbench = callPackage ../tools/compression/lzbench { };
+
+  lzop = callPackage ../tools/compression/lzop { };
+
+  lzwolf = callPackage ../games/lzwolf { SDL2_mixer = SDL2_mixer_2_0; };
+
+  macchanger = callPackage ../os-specific/linux/macchanger { };
+
+  macchina = callPackage ../tools/misc/macchina { };
+
+  madlang = haskell.lib.compose.justStaticExecutables haskellPackages.madlang;
+
+  maeparser = callPackage ../development/libraries/maeparser { };
+
+  mailcheck = callPackage ../applications/networking/mailreaders/mailcheck { };
+
+  maildrop = callPackage ../tools/networking/maildrop { };
+
+  mailhog = callPackage ../servers/mail/mailhog { };
+
+  mailnag = callPackage ../applications/networking/mailreaders/mailnag {
+    availablePlugins = {
+      # More are listed here: https://github.com/pulb/mailnag/#desktop-integration
+      # Use the attributes here as arguments to `plugins` list
+      goa = callPackage ../applications/networking/mailreaders/mailnag/goa-plugin.nix { };
+    };
+  };
+  mailnagWithPlugins = mailnag.withPlugins(
+    builtins.attrValues mailnag.availablePlugins
+  );
+  bubblemail = callPackage ../applications/networking/mailreaders/bubblemail { };
+
+  mailpit = callPackage ../servers/mail/mailpit {
+    libtool = if stdenv.isDarwin then darwin.cctools else libtool;
+  };
+
+  mailsend = callPackage ../tools/networking/mailsend { };
+
+  mailutils = callPackage ../tools/networking/mailutils {
+    sasl = gsasl;
+  };
+
+  matrix-sdk-crypto-nodejs = callPackage ../development/libraries/matrix-sdk-crypto-nodejs { };
+  matrix-sdk-crypto-nodejs-0_1_0-beta_3 = callPackage ../development/libraries/matrix-sdk-crypto-nodejs/beta3.nix { };
+
+  email = callPackage ../tools/networking/email { };
+
+  maim = callPackage ../tools/graphics/maim { };
+
+  mairix = callPackage ../tools/text/mairix { };
+
+  makemkv = libsForQt5.callPackage ../applications/video/makemkv { };
+
+  makerpm = callPackage ../development/tools/makerpm { };
+
+  makefile2graph = callPackage ../development/tools/analysis/makefile2graph { };
+
+  man = man-db;
+
+  man-db = callPackage ../tools/misc/man-db { };
+
+  mandoc = callPackage ../tools/misc/mandoc { };
+
+  mangareader = libsForQt5.callPackage ../applications/graphics/mangareader { };
+
+  mangohud = callPackage ../tools/graphics/mangohud {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+    mangohud32 = pkgsi686Linux.mangohud;
+    inherit (python3Packages) mako;
+  };
+
+  manix = callPackage ../tools/nix/manix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  marktext = callPackage ../applications/misc/marktext { };
+
+  mars-mips = callPackage ../development/tools/mars-mips { };
+
+  maui-shell = libsForQt5.callPackage ../applications/window-managers/maui-shell { };
+
+  mawk = callPackage ../tools/text/mawk { };
+
+  mb2md = callPackage ../tools/text/mb2md { };
+
+  mbox = callPackage ../tools/security/mbox { };
+
+  mbuffer = callPackage ../tools/misc/mbuffer { };
+
+  mdsh = callPackage ../development/tools/documentation/mdsh { };
+
+  mecab =
+    let
+      mecab-nodic = callPackage ../tools/text/mecab/nodic.nix { };
+    in
+    callPackage ../tools/text/mecab {
+      mecab-ipadic = callPackage ../tools/text/mecab/ipadic.nix {
+        inherit mecab-nodic;
+      };
+    };
+
+  mediawiki = callPackage ../servers/web-apps/mediawiki { };
+
+  mediawriter = callPackage ../tools/system/mediawriter { };
+
+  memtier-benchmark = callPackage ../tools/networking/memtier-benchmark { };
+
+  memtest86-efi = callPackage ../tools/misc/memtest86-efi { };
+
+  memtest86plus = callPackage ../tools/misc/memtest86+ { };
+
+  mbutil = python3Packages.callPackage ../applications/misc/mbutil { };
+
+  mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
+
+  mcron = callPackage ../tools/system/mcron { };
+
+  mcstatus = with python3Packages; toPythonApplication mcstatus;
+
+  mdbtools = callPackage ../tools/misc/mdbtools { };
+
+  mdk = callPackage ../development/tools/mdk { };
+
+  mdk4 = callPackage ../tools/networking/mdk4 { };
+
+  mdp = callPackage ../applications/misc/mdp { };
+
+  megacli = callPackage ../tools/misc/megacli { };
+
+  megatools = callPackage ../tools/networking/megatools { };
+
+  memo = callPackage ../applications/misc/memo { };
+
+  mencal = callPackage ../applications/misc/mencal { } ;
+
+  metamorphose2 = callPackage ../applications/misc/metamorphose2 { };
+
+  metar = callPackage ../applications/misc/metar { };
+
+  mfcuk = callPackage ../tools/security/mfcuk { };
+
+  mfoc = callPackage ../tools/security/mfoc { };
+
+  microbin = callPackage ../servers/microbin { };
+
+  microdnf = callPackage ../tools/package-management/microdnf { };
+
+  microplane = callPackage ../tools/misc/microplane { };
+
+  microserver = callPackage ../servers/microserver { };
+
+  midisheetmusic = callPackage ../applications/audio/midisheetmusic { };
+
+  mikutter = callPackage ../applications/networking/instant-messengers/mikutter { };
+
+  mimeo = callPackage ../tools/misc/mimeo { };
+
+  mimetic = callPackage ../development/libraries/mimetic { };
+
+  minio-client = callPackage ../tools/networking/minio-client { };
+
+  minio-certgen = callPackage ../tools/security/minio-certgen { };
+
+  minissdpd = callPackage ../tools/networking/minissdpd { };
+
+  miniupnpc = callPackage ../tools/networking/miniupnpc { };
+
+  miniupnpd = callPackage ../tools/networking/miniupnpd { };
+
+  miniball = callPackage ../development/libraries/miniball { };
+
+  minijail = callPackage ../tools/system/minijail { };
+
+  minijail-tools = python3.pkgs.callPackage ../tools/system/minijail/tools.nix { };
+
+  minilibx = callPackage ../development/libraries/minilibx { };
+
+  minixml = callPackage ../development/libraries/minixml { };
+
+  mir-qualia = callPackage ../tools/text/mir-qualia {
+    pythonPackages = python3Packages;
+  };
+
+  mirakurun = callPackage ../applications/video/mirakurun { };
+
+  miredo = callPackage ../tools/networking/miredo { };
+
+  mirrorbits = callPackage ../servers/mirrorbits { };
+
+  mitmproxy = with python3Packages; toPythonApplication mitmproxy;
+
+  mitmproxy2swagger = callPackage ../tools/security/mitmproxy2swagger { };
+
+  mjpegtools = callPackage ../tools/video/mjpegtools { };
+
+  mjpegtoolsFull = mjpegtools.override {
+    withMinimal = false;
+  };
+
+  mkclean = callPackage ../applications/video/mkclean { };
+
+  mkcue = callPackage ../tools/cd-dvd/mkcue { };
+
+  mkp224o = callPackage ../tools/security/mkp224o { };
+
+  mkpasswd = hiPrio (callPackage ../tools/security/mkpasswd { });
+
+  mkrand = callPackage ../tools/security/mkrand { };
+
+  mktemp = callPackage ../tools/security/mktemp { };
+
+  mktorrent = callPackage ../tools/misc/mktorrent { };
+
+  mloader = callPackage ../tools/misc/mloader { };
+
+  mmake = callPackage ../tools/misc/mmake { };
+
+  mmixware = callPackage ../development/tools/mmixware { };
+
+  modemmanager = callPackage ../tools/networking/modemmanager { };
+
+  modem-manager-gui = callPackage ../applications/networking/modem-manager-gui { };
+
+  modsecurity_standalone = callPackage ../tools/security/modsecurity { };
+
+  modsecurity-crs = callPackage ../tools/security/modsecurity-crs { };
+
+  molecule = with python3Packages; toPythonApplication molecule;
+
+  molly-guard = callPackage ../os-specific/linux/molly-guard { };
+
+  molotov = callPackage ../applications/video/molotov { };
+
+  moneyplex = callPackage ../applications/office/moneyplex { };
+
+  monit = callPackage ../tools/system/monit { };
+
+  monocraft = callPackage ../data/fonts/monocraft { };
+
+  monolith = callPackage ../tools/backup/monolith {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  moreutils = callPackage ../tools/misc/moreutils {
+    docbook-xsl = docbook_xsl;
+  };
+
+  mole = callPackage ../tools/networking/mole { };
+
+  morgen = callPackage ../applications/office/morgen {
+    electron = electron_25; # blank screen with electron_26
+  };
+
+  mosh = callPackage ../tools/networking/mosh { };
+
+  motrix = callPackage ../tools/networking/motrix { };
+
+  mount-zip = callPackage ../tools/filesystems/mount-zip { };
+
+  mpage = callPackage ../tools/text/mpage { };
+
+  mprime = callPackage ../tools/misc/mprime { };
+
+  mpw = callPackage ../tools/security/mpw { };
+
+  mqtt_cpp = callPackage ../development/libraries/mqtt_cpp { };
+
+  mr = callPackage ../applications/version-management/mr { };
+
+  mrsh = callPackage ../shells/mrsh { };
+
+  mrtg = callPackage ../tools/misc/mrtg { };
+
+  mscgen = callPackage ../tools/graphics/mscgen { };
+
+  msfpc = callPackage ../tools/security/msfpc { };
+
+  melt = callPackage ../tools/security/melt { };
+
+  metabigor = callPackage ../tools/security/metabigor { };
+
+  metasploit = callPackage ../tools/security/metasploit { };
+
+  mhost = callPackage ../applications/networking/mhost {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ms-sys = callPackage ../tools/misc/ms-sys { };
+
+  mtdutils = callPackage ../tools/filesystems/mtdutils { };
+
+  mtools = callPackage ../tools/filesystems/mtools { };
+
+  mtr = callPackage ../tools/networking/mtr { };
+
+  mtr-exporter = callPackage ../tools/networking/mtr-exporter { };
+
+  mtr-gui = callPackage ../tools/networking/mtr { withGtk = true; };
+
+  mtx = callPackage ../tools/backup/mtx { };
+
+  mt-st = callPackage ../tools/backup/mt-st { };
+
+  mubeng = callPackage ../tools/networking/mubeng { };
+
+  muffet = callPackage ../tools/networking/muffet { };
+
+  multipass = libsForQt5.callPackage ../tools/virtualization/multipass { };
+
+  multitime = callPackage ../tools/misc/multitime { };
+
+  sta = callPackage ../tools/misc/sta { };
+
+  multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in {
+    multitrandata = callPackage ../tools/text/multitran/data { };
+
+    libbtree = callPackage ../tools/text/multitran/libbtree { };
+
+    libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
+
+    libfacet = callPackage ../tools/text/multitran/libfacet { };
+
+    libmtquery = callPackage ../tools/text/multitran/libmtquery { };
+
+    mtutils = callPackage ../tools/text/multitran/mtutils { };
+  });
+
+  munge = callPackage ../tools/security/munge { };
+
+  mutagen = callPackage ../tools/misc/mutagen { };
+
+  mutagen-compose = callPackage ../tools/misc/mutagen-compose { };
+
+  mycli = callPackage ../tools/admin/mycli { };
+
+  mycrypto = callPackage ../applications/blockchains/mycrypto { };
+
+  mydumper = callPackage ../tools/backup/mydumper { };
+
+  mylvmbackup = callPackage ../tools/backup/mylvmbackup { };
+
+  mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
+
+  mysqltuner = callPackage ../tools/misc/mysqltuner { };
+
+  mytetra = libsForQt5.callPackage ../applications/office/mytetra { };
+
+  nabi = callPackage ../tools/inputmethods/nabi { };
+
+  nahid-fonts = callPackage ../data/fonts/nahid-fonts { };
+
+  namazu = callPackage ../tools/text/namazu { };
+
+  nasty = callPackage ../tools/security/nasty { };
+
+  nat-traverse = callPackage ../tools/networking/nat-traverse { };
+
+  navi = callPackage ../applications/misc/navi { };
+
+  navilu-font = callPackage ../data/fonts/navilu { stdenv = stdenvNoCC; };
+
+  nbd = callPackage ../tools/networking/nbd { };
+  xnbd = callPackage ../tools/networking/xnbd { };
+
+  ndjbdns = callPackage ../tools/networking/ndjbdns { };
+
+  ndppd = callPackage ../applications/networking/ndppd { };
+
+  nearcore = callPackage ../applications/blockchains/nearcore { };
+
+  nebula = callPackage ../tools/networking/nebula { };
+
+  nemiver = callPackage ../development/tools/nemiver { };
+
+  neo-cowsay = callPackage ../tools/misc/neo-cowsay { };
+
+  neofetch = callPackage ../tools/misc/neofetch { };
+
+  nerdfix = callPackage ../tools/text/nerdfix { };
+
+  nerdfonts = callPackage ../data/fonts/nerdfonts { };
+
+  netatalk = callPackage ../tools/filesystems/netatalk { };
+
+  netavark = callPackage ../tools/networking/netavark { };
+
+  netcdf = callPackage ../development/libraries/netcdf { };
+
+  netcdf-mpi = netcdf.override {
+    hdf5 = hdf5-mpi.override { usev110Api = true; };
+  };
+
+  netcdfcxx4 = callPackage ../development/libraries/netcdf-cxx4 { };
+
+  netcdffortran = callPackage ../development/libraries/netcdf-fortran {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+
+  networking-ts-cxx = callPackage ../development/libraries/networking-ts-cxx { };
+
+  nco = callPackage ../development/libraries/nco { };
+
+  ncftp = callPackage ../tools/networking/ncftp { };
+
+  ncgopher = callPackage ../applications/networking/ncgopher { };
+
+  ncompress = callPackage ../tools/compression/ncompress { };
+
+  ndisc6 = callPackage ../tools/networking/ndisc6 { };
+
+  netassert = callPackage ../tools/networking/netassert { };
+
+  netboot = callPackage ../tools/networking/netboot { };
+
+  netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { };
+
+  inherit (callPackage ../servers/web-apps/netbox { })
+    netbox netbox_3_5 netbox_3_6;
+
+  netbox2netshot = callPackage ../tools/admin/netbox2netshot { };
+
+  netcat = libressl.nc;
+
+  netcat-gnu = callPackage ../tools/networking/netcat { };
+
+  netcat-openbsd = callPackage ../tools/networking/netcat-openbsd { };
+
+  netdiscover = callPackage ../tools/networking/netdiscover { };
+
+  nethogs = callPackage ../tools/networking/nethogs { };
+
+  nethoscope = callPackage ../tools/networking/nethoscope { };
+
+  netkittftp = callPackage ../tools/networking/netkit/tftp { };
+
+  netlify-cli = callPackage ../development/web/netlify-cli { };
+
+  netlistsvg = callPackage ../applications/science/logic/netlistsvg { };
+
+  netpbm = callPackage ../tools/graphics/netpbm { };
+
+  netrw = callPackage ../tools/networking/netrw { };
+
+  netselect = callPackage ../tools/networking/netselect { };
+
+  networkmanager = callPackage ../tools/networking/networkmanager { };
+
+  networkmanager-iodine = callPackage ../tools/networking/networkmanager/iodine { };
+
+  networkmanager-openvpn = callPackage ../tools/networking/networkmanager/openvpn { };
+
+  networkmanager-l2tp = callPackage ../tools/networking/networkmanager/l2tp { };
+
+  networkmanager-vpnc = callPackage ../tools/networking/networkmanager/vpnc { };
+
+  networkmanager-openconnect = callPackage ../tools/networking/networkmanager/openconnect { };
+
+  networkmanager-fortisslvpn = callPackage ../tools/networking/networkmanager/fortisslvpn { };
+
+  networkmanager_strongswan = callPackage ../tools/networking/networkmanager/strongswan { };
+
+  networkmanager-sstp = callPackage ../tools/networking/networkmanager/sstp { };
+
+  networkmanagerapplet = callPackage ../tools/networking/networkmanager/applet { };
+
+  libnma = callPackage ../tools/networking/networkmanager/libnma { };
+
+  libnma-gtk4 = libnma.override { withGtk4 = true; };
+
+  networkmanager_dmenu = callPackage ../tools/networking/networkmanager/dmenu  { };
+
+  nm-tray = libsForQt5.callPackage ../tools/networking/networkmanager/tray.nix { };
+
+  newsboat = callPackage ../applications/networking/feedreaders/newsboat {
+    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+  };
+
+  grocy = callPackage ../servers/grocy { };
+
+  inherit (callPackage ../servers/nextcloud {})
+    nextcloud25 nextcloud26 nextcloud27 nextcloud28;
+
+  nextcloud25Packages = throw "Nextcloud25 is EOL!";
+  nextcloud26Packages = callPackage ../servers/nextcloud/packages {
+    apps = lib.importJSON ../servers/nextcloud/packages/26.json;
+  };
+  nextcloud27Packages = callPackage ../servers/nextcloud/packages {
+    apps = lib.importJSON ../servers/nextcloud/packages/27.json;
+  };
+  nextcloud28Packages = callPackage ../servers/nextcloud/packages {
+    apps = lib.importJSON ../servers/nextcloud/packages/28.json;
+  };
+
+  nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
+
+  nextcloud-news-updater = callPackage ../servers/nextcloud/news-updater.nix { };
+
+  nextcloud-notify_push = callPackage ../servers/nextcloud/notify_push.nix { };
+
+  ndstool = callPackage ../tools/archivers/ndstool { };
+
+  nfs-ganesha = callPackage ../servers/nfs-ganesha { };
+
+  nflz = callPackage ../misc/nflz { };
+
+  ngrep = callPackage ../tools/networking/ngrep { };
+
+  ngrok = callPackage ../tools/networking/ngrok { };
+
+  nifi = callPackage ../servers/web-apps/nifi { };
+
+  noip = callPackage ../tools/networking/noip { };
+
+  inherit (callPackage ../applications/networking/cluster/nomad { })
+    nomad
+    nomad_1_4
+    nomad_1_5
+    nomad_1_6
+    nomad_1_7
+    ;
+
+  nomad-autoscaler = callPackage ../applications/networking/cluster/nomad-autoscaler { };
+
+  nomad-driver-podman = callPackage ../applications/networking/cluster/nomad-driver-podman { };
+
+  nomad-pack = callPackage ../applications/networking/cluster/nomad-pack { };
+
+  nova = callPackage ../applications/networking/cluster/nova { };
+
+  nomino = callPackage ../tools/misc/nomino { };
+
+  nb = callPackage ../tools/misc/nb { };
+
+  nbqa = callPackage ../tools/misc/nbqa { };
+
+  kb = callPackage ../tools/misc/kb { };
+
+  notable = callPackage ../applications/misc/notable { };
+
+  npm-check = callPackage ../development/tools/npm-check { };
+
+  nth = with python3Packages; toPythonApplication name-that-hash;
+
+  ntlmrecon = callPackage ../tools/security/ntlmrecon { };
+
+  numberstation = callPackage ../applications/misc/numberstation { };
+
+  nvchecker = with python3Packages; toPythonApplication nvchecker;
+
+  nvfetcher = haskell.lib.compose.justStaticExecutables haskellPackages.nvfetcher;
+
+
+  miller = callPackage ../tools/text/miller { };
+
+  milu = callPackage ../applications/misc/milu { };
+
+  mkgmap = callPackage ../applications/misc/mkgmap { };
+
+  mkgmap-splitter = callPackage ../applications/misc/mkgmap/splitter { };
+
+  mpack = callPackage ../tools/networking/mpack { };
+
+  mtm = callPackage ../tools/misc/mtm { };
+
+  op-geth = callPackage ../applications/blockchains/optimism/geth.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  optimism = callPackage ../applications/blockchains/optimism { };
+
+  pa_applet = callPackage ../tools/audio/pa-applet { };
+
+  pandoc-acro = python3Packages.callPackage ../tools/misc/pandoc-acro { };
+
+  pandoc-imagine = python3Packages.callPackage ../tools/misc/pandoc-imagine { };
+
+  pandoc-include = python3Packages.callPackage ../tools/misc/pandoc-include { };
+
+  pandoc-drawio-filter = python3Packages.callPackage ../tools/misc/pandoc-drawio-filter { };
+
+  pandoc-katex = callPackage ../tools/misc/pandoc-katex { };
+
+  pandoc-plantuml-filter = python3Packages.callPackage ../tools/misc/pandoc-plantuml-filter { };
+
+  # pandoc-*nos is a filter suite, where pandoc-xnos has all functionality and the others are used for only specific functionality
+  pandoc-eqnos = python3Packages.callPackage ../tools/misc/pandoc-eqnos { };
+  pandoc-fignos = python3Packages.callPackage ../tools/misc/pandoc-fignos { };
+  pandoc-secnos = python3Packages.callPackage ../tools/misc/pandoc-secnos { };
+  pandoc-tablenos = python3Packages.callPackage ../tools/misc/pandoc-tablenos { };
+
+  panicparse = callPackage ../tools/misc/panicparse {};
+
+  panoply = callPackage ../tools/misc/panoply { };
+
+  patray = callPackage ../tools/audio/patray { };
+
+  pathvector = callPackage ../tools/networking/pathvector { };
+
+  pasystray = callPackage ../tools/audio/pasystray { };
+
+  pcmsolver = callPackage ../development/libraries/pcmsolver { };
+
+  pegasus-frontend = libsForQt5.callPackage ../games/pegasus-frontend {};
+
+  pgbadger = perlPackages.callPackage ../tools/misc/pgbadger { };
+
+  pffft = callPackage ../development/libraries/pffft { };
+
+  phash = callPackage ../development/libraries/phash { };
+
+  pnmixer = callPackage ../tools/audio/pnmixer { };
+
+  present-cli = callPackage ../tools/misc/present-cli { };
+
+  pulsemixer = callPackage ../tools/audio/pulsemixer { };
+
+  pwsafe = callPackage ../applications/misc/pwsafe { };
+
+  pw-viz = callPackage ../applications/misc/pw-viz { };
+
+  napi-rs-cli = callPackage ../development/tools/napi-rs-cli { };
+
+  neil = callPackage ../development/tools/neil { };
+
+  niff = callPackage ../tools/package-management/niff { };
+
+  nifskope = libsForQt5.callPackage ../tools/graphics/nifskope { };
+
+  nilfs-utils = callPackage ../tools/filesystems/nilfs-utils { };
+
+  nitrogen = callPackage ../tools/X11/nitrogen { };
+
+  smart-wallpaper = callPackage ../tools/X11/smart-wallpaper { };
+
+  nms = callPackage ../tools/misc/nms { };
+
+  nomachine-client = callPackage ../tools/admin/nomachine-client { };
+
+  notify-desktop = callPackage ../tools/misc/notify-desktop { };
+
+  nkf = callPackage ../tools/text/nkf { };
+
+  nlopt = callPackage ../development/libraries/nlopt { octave = null; };
+
+  npapi_sdk = callPackage ../development/libraries/npapi-sdk { };
+
+  npiet = callPackage ../development/interpreters/npiet { };
+
+  npth = callPackage ../development/libraries/npth { };
+
+  nmap = callPackage ../tools/security/nmap { };
+
+  nmap-formatter = callPackage ../tools/security/nmap-formatter { };
+
+  nmapsi4 = libsForQt5.callPackage ../tools/security/nmap/qt.nix { };
+
+  noise-repellent = callPackage ../applications/audio/noise-repellent { };
+
+  noisetorch = callPackage ../applications/audio/noisetorch { };
+
+  notary = callPackage ../tools/security/notary { };
+
+  notation = callPackage ../tools/security/notation { };
+
+  notify-osd = callPackage ../applications/misc/notify-osd { };
+
+  notes = qt6Packages.callPackage ../applications/office/notes {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  notes-up = callPackage ../applications/office/notes-up { };
+
+  notify-osd-customizable = callPackage ../applications/misc/notify-osd-customizable { };
+
+  nox = callPackage ../tools/package-management/nox { };
+
+  nq = callPackage ../tools/system/nq { };
+
+  nsjail = callPackage ../tools/security/nsjail {
+    protobuf = protobuf_21;
+  };
+
+  nss_pam_ldapd = callPackage ../tools/networking/nss-pam-ldapd { };
+
+  ntfs3g = callPackage ../tools/filesystems/ntfs-3g {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration;
+  };
+
+  # ntfsprogs are merged into ntfs-3g
+  ntfsprogs = pkgs.ntfs3g;
+
+  ntfy = callPackage ../tools/misc/ntfy { };
+
+  ntfy-sh = callPackage ../tools/misc/ntfy-sh { };
+
+  ntirpc = callPackage ../development/libraries/ntirpc { };
+
+  ntopng = callPackage ../tools/networking/ntopng { };
+
+  ntp = callPackage ../tools/networking/ntp { };
+
+  numdiff = callPackage ../tools/text/numdiff { };
+
+  numlockx = callPackage ../tools/X11/numlockx { };
+
+  nurl = callPackage ../tools/misc/nurl { };
+
+  nttcp = callPackage ../tools/networking/nttcp { };
+
+  ntttcp = callPackage ../tools/networking/ntttcp { };
+
+  nuttcp = callPackage ../tools/networking/nuttcp { };
+
+  nssmdns = callPackage ../tools/networking/nss-mdns { };
+
+  nvfancontrol = callPackage ../tools/misc/nvfancontrol {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+  };
+
+  nvimpager = callPackage ../tools/misc/nvimpager { };
+
+  nwdiag = with python3Packages; toPythonApplication nwdiag;
+
+  nxdomain = python3.pkgs.callPackage ../tools/networking/nxdomain { };
+
+  nxpmicro-mfgtools = callPackage ../development/tools/misc/nxpmicro-mfgtools { };
+
+  nyancat = callPackage ../tools/misc/nyancat { };
+
+  nylon = callPackage ../tools/networking/nylon { };
+
+  nym = callPackage ../applications/networking/nym {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+
+  nzbget = callPackage ../tools/networking/nzbget { };
+
+  nzbhydra2 = callPackage ../servers/nzbhydra2 {
+    # You need Java (at least 8, at most 15)
+    # https://github.com/theotherp/nzbhydra2/issues/697
+    # https://github.com/theotherp/nzbhydra2/#how-to-run
+    jre = openjdk11;
+  };
+
+  oapi-codegen = callPackage ../tools/networking/oapi-codegen { };
+
+  oath-toolkit = callPackage ../tools/security/oath-toolkit { };
+
+  oatpp = callPackage ../development/libraries/oatpp { };
+
+  obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
+
+  obexd = callPackage ../tools/bluetooth/obexd { };
+
+  obfs4 = callPackage ../tools/networking/obfs4 { };
+
+  ocproxy = callPackage ../tools/networking/ocproxy { };
+
+  ocserv = callPackage ../tools/networking/ocserv { };
+
+  octofetch = callPackage ../tools/misc/octofetch {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  oha = callPackage ../tools/networking/oha { };
+
+  onetun = callPackage ../tools/networking/onetun {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  onthespot = libsForQt5.callPackage ../applications/misc/onthespot { };
+
+  opencorsairlink = callPackage ../tools/misc/opencorsairlink { };
+
+  openfpgaloader = callPackage ../development/embedded/fpga/openfpgaloader { };
+
+  openfortivpn = callPackage ../tools/networking/openfortivpn { };
+
+  opensnitch = callPackage ../tools/networking/opensnitch/daemon.nix { };
+
+  opensnitch-ui = libsForQt5.callPackage ../tools/networking/opensnitch/ui.nix { };
+
+  obexfs = callPackage ../tools/bluetooth/obexfs { };
+
+  obexftp = callPackage ../tools/bluetooth/obexftp { };
+
+  objconv = callPackage ../development/tools/misc/objconv { };
+
+  odpic = callPackage ../development/libraries/odpic { };
+
+  odt2txt = callPackage ../tools/text/odt2txt { };
+
+  odyssey = callPackage ../tools/misc/odyssey { };
+
+  offensive-azure = callPackage ../tools/security/offensive-azure { };
+
+  offlineimap = callPackage ../tools/networking/offlineimap { };
+
+  offzip = callPackage ../tools/compression/offzip { };
+
+  ofono-phonesim = libsForQt5.callPackage ../development/tools/ofono-phonesim { };
+
+  ogdf = callPackage ../development/libraries/ogdf { };
+
+  oh-my-posh = callPackage ../development/tools/oh-my-posh { };
+
+  oh-my-zsh = callPackage ../shells/zsh/oh-my-zsh { };
+
+  ola = callPackage ../applications/misc/ola {
+    protobuf = protobuf_21;
+  };
+
+  olive-editor = qt6Packages.callPackage ../applications/video/olive-editor {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+
+  ombi = callPackage ../servers/ombi { };
+
+  ome_zarr = with python3Packages; toPythonApplication ome-zarr;
+
+  omping = callPackage ../applications/networking/omping { };
+
+  onefetch = callPackage ../tools/misc/onefetch {
+    inherit (darwin) libresolv;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  onioncircuits = callPackage ../tools/security/onioncircuits { };
+
+  onlykey-agent = callPackage ../tools/security/onlykey-agent { };
+
+  onlykey-cli = callPackage ../tools/security/onlykey-cli { };
+
+  onlykey = callPackage ../tools/security/onlykey { node_webkit = nwjs; };
+
+  ooniprobe-cli = callPackage ../tools/networking/ooniprobe-cli {
+    buildGoModule = buildGo120Module;
+  };
+
+  openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { jre = pkgs.jre_headless; };
+  openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { jre = pkgs.jre_headless; };
+
+  openboard = libsForQt5.callPackage ../applications/graphics/openboard { };
+
+  opencc = callPackage ../tools/text/opencc { };
+
+  opencl-info = callPackage ../tools/system/opencl-info { };
+
+  opencryptoki = callPackage ../tools/security/opencryptoki { };
+
+  opendbx = callPackage ../development/libraries/opendbx { };
+
+  opendht = callPackage ../development/libraries/opendht  {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  opendkim = callPackage ../development/libraries/opendkim { };
+
+  opendylan = callPackage ../development/compilers/opendylan {
+    opendylan-bootstrap = opendylan_bin;
+  };
+
+  openfec = callPackage ../development/libraries/openfec { };
+
+  ophis = python3Packages.callPackage ../development/compilers/ophis { };
+
+  opendylan_bin = callPackage ../development/compilers/opendylan/bin.nix { };
+
+  open-ecard = callPackage ../tools/security/open-ecard { };
+
+  open-interpreter = callPackage ../tools/llm/open-interpreter { };
+
+  openjade = callPackage ../tools/text/sgml/openjade { };
+
+  openhantek6022 = libsForQt5.callPackage ../applications/science/electronics/openhantek6022 { };
+
+  openimagedenoise = callPackage ../development/libraries/openimagedenoise { };
+
+  openmvg = callPackage ../applications/science/misc/openmvg {
+    inherit (llvmPackages) openmp;
+  };
+
+  openmvs = callPackage ../applications/science/misc/openmvs {
+    inherit (llvmPackages) openmp;
+  };
+
+  openntpd = callPackage ../tools/networking/openntpd { };
+
+  openntpd_nixos = openntpd.override {
+    privsepUser = "ntp";
+    privsepPath = "/var/empty";
+  };
+
+  openobex = callPackage ../tools/bluetooth/openobex { };
+
+  openresolv = callPackage ../tools/networking/openresolv { };
+
+  openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
+
+  openrgb-with-all-plugins = openrgb.withPlugins [
+    openrgb-plugin-effects
+    openrgb-plugin-hardwaresync
+  ];
+
+  openrgb-plugin-effects = libsForQt5.callPackage ../applications/misc/openrgb-plugins/effects { };
+
+  openrgb-plugin-hardwaresync = libsForQt5.callPackage ../applications/misc/openrgb-plugins/hardwaresync { };
+
+  opensbi = callPackage ../misc/opensbi { };
+
+  opensc = callPackage ../tools/security/opensc {
+    inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
+  };
+
+  openseachest = callPackage ../tools/system/openseachest { };
+
+  opensm = callPackage ../tools/networking/opensm { };
+
+  tinyssh = callPackage ../tools/networking/tinyssh { };
+
+  tinystatus = callPackage ../tools/networking/tinystatus { };
+
+  toastify = darwin.apple_sdk_11_0.callPackage ../tools/misc/toastify {};
+
+  tuc = callPackage ../tools/text/tuc { };
+
+  opensshPackages = dontRecurseIntoAttrs (callPackage ../tools/networking/openssh {});
+
+  openssh = opensshPackages.openssh.override {
+    etcDir = "/etc/ssh";
+  };
+
+  openssh_hpn = opensshPackages.openssh_hpn.override {
+    etcDir = "/etc/ssh";
+  };
+
+  openssh_gssapi = opensshPackages.openssh_gssapi.override {
+    etcDir = "/etc/ssh";
+  };
+
+  ssh-copy-id = callPackage ../tools/networking/openssh/copyid.nix { };
+
+  opensp = callPackage ../tools/text/sgml/opensp { };
+
+  opentofu = callPackage ../applications/networking/cluster/opentofu { };
+
+  opentrack = libsForQt5.callPackage ../applications/misc/opentrack { };
+
+  opentracker = callPackage ../applications/networking/p2p/opentracker { };
+
+  alttpr-opentracker = callPackage ../tools/games/opentracker { };
+
+  opentsdb = callPackage ../tools/misc/opentsdb { };
+
+  inherit (callPackages ../tools/networking/openvpn {})
+    openvpn;
+
+  openvpn3 = callPackage ../tools/networking/openvpn3 { };
+
+  openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
+
+  openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix {
+    stdenv = clangStdenv;
+  };
+
+  oq = callPackage ../development/tools/oq { };
+
+  out-of-tree = callPackage ../development/tools/out-of-tree { };
+
+  oppai-ng = callPackage ../tools/misc/oppai-ng { };
+
+  operator-sdk = callPackage ../development/tools/operator-sdk { };
+
+  oscclip = callPackage ../tools/misc/oscclip { };
+
+  oui = callPackage ../tools/networking/oui { };
+
+  owncast = callPackage ../servers/owncast { };
+
+  owntracks-recorder = callPackage ../servers/owntracks-recorder { };
+
+  update-dotdee = with python3Packages; toPythonApplication update-dotdee;
+
+  update-nix-fetchgit = haskell.lib.compose.justStaticExecutables haskellPackages.update-nix-fetchgit;
+
+  update-resolv-conf = callPackage ../tools/networking/openvpn/update-resolv-conf.nix { };
+
+  update-systemd-resolved = callPackage ../tools/networking/openvpn/update-systemd-resolved.nix { };
+
+  opae = callPackage ../development/libraries/opae { };
+
+  open-pdf-sign = callPackage ../tools/misc/open-pdf-sign { };
+
+  opentelemetry-collector = callPackage ../tools/misc/opentelemetry-collector { };
+  opentelemetry-collector-contrib = callPackage ../tools/misc/opentelemetry-collector/contrib.nix { };
+
+  openvswitch = callPackage ../os-specific/linux/openvswitch { };
+
+  openvswitch-lts = callPackage ../os-specific/linux/openvswitch/lts.nix { };
+
+  optifinePackages = callPackage ../tools/games/minecraft/optifine { };
+
+  optifine = optifinePackages.optifine-latest;
+
+  optipng = callPackage ../tools/graphics/optipng { };
+
+  olsrd = callPackage ../tools/networking/olsrd { };
+
+  oonf-olsrd2 = callPackage ../tools/networking/oonf-olsrd2 { };
+
+  opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { };
+  opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { };
+
+  orangefs = callPackage ../tools/filesystems/orangefs {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  org-stats = callPackage ../tools/misc/org-stats { };
+
+  orz = callPackage ../tools/compression/orz { };
+
+  os-prober = callPackage ../tools/misc/os-prober { };
+
+  oshka = callPackage ../development/tools/oshka { };
+
+  osl = libsForQt5.callPackage ../development/compilers/osl {
+    boost = boost179;
+    libclang = llvmPackages_15.libclang;
+    clang =
+      if stdenv.cc.libcxx != null
+      then (overrideLibcxx llvmPackages_15.stdenv).cc
+      else clang_15;
+    llvm = llvm_15;
+  };
+
+  osqp = callPackage ../development/libraries/science/math/osqp { };
+
+  ossec-agent = callPackage ../tools/security/ossec/agent.nix { };
+
+  ossec-server = callPackage ../tools/security/ossec/server.nix { };
+
+  osslsigncode = callPackage ../development/tools/osslsigncode { };
+
+  ostree = callPackage ../tools/misc/ostree { };
+
+  ostree-rs-ext = callPackage ../tools/misc/ostree-rs-ext { };
+
+  otel-cli = callPackage ../tools/misc/otel-cli { };
+
+  otfcc = callPackage ../tools/misc/otfcc { };
+
+  otpclient = callPackage ../applications/misc/otpclient { };
+
+  otpw = callPackage ../os-specific/linux/otpw { };
+
+  ovftool = callPackage ../tools/virtualization/ovftool { };
+
+  overcommit = callPackage ../development/tools/overcommit { };
+
+  overmind = callPackage ../applications/misc/overmind { };
+
+  oxker = callPackage ../applications/misc/oxker { };
+
+  oxlint = callPackage ../development/tools/oxlint { };
+
+  ovh-ttyrec = callPackage ../tools/misc/ovh-ttyrec { };
+
+  ovito = libsForQt5.callPackage ../applications/graphics/ovito {
+    inherit (darwin.apple_sdk.frameworks) VideoDecodeAcceleration;
+  };
+
+  oxefmsynth = callPackage ../applications/audio/oxefmsynth { };
+
+  oxidized = callPackage ../tools/admin/oxidized { };
+
+  oxipng = callPackage ../tools/graphics/oxipng { };
+
+  payload_dumper = callPackage ../tools/archivers/payload_dumper { };
+
+  payload-dumper-go = callPackage ../tools/archivers/payload-dumper-go { };
+
+  p2pvc = callPackage ../applications/video/p2pvc { };
+
+  p3x-onenote = callPackage ../applications/office/p3x-onenote { };
+
+  p4c = callPackage ../development/compilers/p4c {
+    protobuf = protobuf_21;
+  };
+
+  p7zip = callPackage ../tools/archivers/p7zip { };
+
+  packagekit = callPackage ../tools/package-management/packagekit { };
+
+  packetdrill = callPackage ../tools/networking/packetdrill { };
+
+  pacman = callPackage ../tools/package-management/pacman { };
+
+  paco = callPackage ../development/compilers/paco { };
+
+  padthv1 = libsForQt5.callPackage ../applications/audio/padthv1 { };
+
+  padbuster = callPackage ../tools/security/padbuster { };
+
+  page = callPackage ../tools/misc/page { };
+
+  PageEdit = libsForQt5.callPackage ../applications/office/PageEdit { };
+
+  pagefind = libsForQt5.callPackage ../applications/misc/pagefind { };
+
+  paging-calculator  = callPackage ../development/tools/paging-calculator { };
+
+  pagmo2 = callPackage ../development/libraries/pagmo2 { };
+
+  paho-mqtt-c = callPackage ../development/libraries/paho-mqtt-c { };
+
+  paho-mqtt-cpp = callPackage ../development/libraries/paho-mqtt-cpp { };
+
+  pakcs = callPackage ../development/compilers/pakcs {
+    # Doesn't compile with GHC 9.0 due to whitespace syntax changes
+    # see also https://github.com/NixOS/nixpkgs/issues/166108
+    haskellPackages = haskell.packages.ghc810;
+  };
+
+  pal = callPackage ../tools/misc/pal { };
+
+  pandoc = callPackage ../development/tools/pandoc { };
+
+  pandoc-lua-filters = callPackage ../tools/misc/pandoc-lua-filters { };
+
+  pamtester = callPackage ../tools/security/pamtester { };
+
+  paperless-ngx = callPackage ../applications/office/paperless-ngx { };
+
+  paperoni = callPackage ../tools/text/paperoni { };
+
+  paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { };
+
+  papeer = callPackage ../tools/text/papeer { };
+
+  papertrail = callPackage ../tools/text/papertrail { };
+
+  pappl = callPackage ../applications/printing/pappl { };
+
+  par2cmdline = callPackage ../tools/networking/par2cmdline { };
+
+  parallel = callPackage ../tools/misc/parallel { };
+
+  parallel-full = callPackage ../tools/misc/parallel/wrapper.nix { };
+
+  parastoo-fonts = callPackage ../data/fonts/parastoo-fonts { };
+
+  parcellite = callPackage ../tools/misc/parcellite {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  parrot = callPackage ../applications/audio/parrot {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  patchutils = callPackage ../tools/text/patchutils { };
+
+  patchutils_0_3_3 = callPackage ../tools/text/patchutils/0.3.3.nix { };
+
+  patchutils_0_4_2 = callPackage ../tools/text/patchutils/0.4.2.nix { };
+
+  parted = callPackage ../tools/misc/parted { };
+
+  passh = callPackage ../tools/networking/passh { };
+
+  paulstretch = callPackage ../applications/audio/paulstretch { };
+
+  pazi = callPackage ../tools/misc/pazi { };
+
+  peep = callPackage ../tools/misc/peep { };
+
+  pell = callPackage ../applications/misc/pell { };
+
+  perccli = callPackage ../tools/misc/perccli { };
+
+  perceptualdiff = callPackage ../tools/graphics/perceptualdiff { };
+
+  percona-server_8_0 = callPackage ../servers/sql/percona-server/8.0.x.nix {
+    inherit (darwin) cctools developer_cmds DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    boost = boost177; # Configure checks for specific version.
+    icu = icu69;
+    protobuf = protobuf_21;
+  };
+  percona-xtrabackup = percona-xtrabackup_8_0;
+  percona-xtrabackup_8_0 = callPackage ../tools/backup/percona-xtrabackup/8_0.nix {
+    boost = boost177;
+  };
+
+  pick = callPackage ../tools/misc/pick { };
+
+  pipe-rename = callPackage ../tools/misc/pipe-rename { };
+
+  pipecontrol = libsForQt5.callPackage ../applications/audio/pipecontrol { };
+
+  pipectl = callPackage ../tools/misc/pipectl { };
+
+  pitivi = callPackage ../applications/video/pitivi { };
+
+  prism = callPackage ../applications/video/prism { };
+
+  pulumi = callPackage ../tools/admin/pulumi { };
+
+  pulumiPackages = recurseIntoAttrs (
+    callPackage ../tools/admin/pulumi-packages { }
+  );
+
+  pulumi-bin = callPackage ../tools/admin/pulumi-bin { };
+
+  p0f = callPackage ../tools/security/p0f { };
+
+  pngloss = callPackage ../tools/graphics/pngloss { };
+
+  pngout = callPackage ../tools/graphics/pngout { };
+
+  patch = gnupatch;
+
+  patchage = callPackage ../applications/audio/patchage { };
+
+  patchance = python3Packages.callPackage ../applications/audio/patchance { };
+
+  patatt = callPackage ../development/tools/patatt { };
+
+  pcapfix = callPackage ../tools/networking/pcapfix { };
+
+  pbzip2 = callPackage ../tools/compression/pbzip2 { };
+
+  pcimem = callPackage ../os-specific/linux/pcimem { };
+
+  pciutils = callPackage ../tools/system/pciutils {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  otpauth = callPackage ../tools/security/otpauth { };
+
+  pcsclite = callPackage ../tools/security/pcsclite {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  pcscliteWithPolkit = pcsclite.override {
+    pname = "pcsclite-with-polkit";
+    polkitSupport = true;
+  };
+
+  pcsctools = callPackage ../tools/security/pcsctools { };
+
+  pcsc-cyberjack = callPackage ../tools/security/pcsc-cyberjack { };
+
+  pcsc-safenet = callPackage ../tools/security/pcsc-safenet { };
+
+  pcsc-scm-scl011 = callPackage ../tools/security/pcsc-scm-scl011 { };
+  ifdnfc = callPackage ../tools/security/ifdnfc { };
+
+  pdd = python3Packages.callPackage ../tools/misc/pdd { };
+
+  pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
+
+  pdfcrack = callPackage ../tools/security/pdfcrack { };
+
+  pdfposter = callPackage ../applications/misc/pdfposter { };
+
+  pdfsandwich = callPackage ../tools/typesetting/pdfsandwich { };
+
+  pdftag = callPackage ../tools/graphics/pdftag { };
+
+  pdf2svg = callPackage ../tools/graphics/pdf2svg { };
+
+  pdftoipe = callPackage ../tools/graphics/pdftoipe { };
+
+  pdfminer = with python3Packages; toPythonApplication pdfminer-six;
+
+  pdf-quench = callPackage ../applications/misc/pdf-quench { };
+
+  pdf-sign = callPackage ../tools/graphics/pdf-sign { };
+
+  pdfarranger = callPackage ../applications/misc/pdfarranger { };
+
+  briss = callPackage ../tools/graphics/briss { };
+
+  brickd = callPackage ../servers/brickd { };
+
+  bully = callPackage ../tools/networking/bully { };
+
+  pcapc = callPackage ../tools/networking/pcapc { };
+
+  pdm = callPackage ../tools/package-management/pdm { };
+
+  pdnsd = callPackage ../tools/networking/pdnsd { };
+
+  peco = callPackage ../tools/text/peco { };
+
+  percollate = callPackage ../tools/text/percollate { };
+
+  pg_activity = callPackage ../development/tools/database/pg_activity { };
+
+  pg_checksums = callPackage ../development/tools/database/pg_checksums { };
+
+  pg_flame = callPackage ../tools/misc/pg_flame { };
+
+  pg_top = callPackage ../tools/misc/pg_top { };
+
+  pgagroal = callPackage ../development/tools/database/pgagroal { };
+
+  pgcenter = callPackage ../tools/misc/pgcenter { };
+
+  pgmetrics = callPackage ../tools/misc/pgmetrics { };
+
+  pgsync = callPackage ../development/tools/database/pgsync { };
+
+  pdsh = callPackage ../tools/networking/pdsh {
+    rsh = true;          # enable internal rsh implementation
+    ssh = openssh;
+  };
+
+  pfetch = callPackage ../tools/misc/pfetch { };
+
+  pfetch-rs = callPackage ../tools/misc/pfetch-rs { };
+
+  pfstools = libsForQt5.callPackage ../tools/graphics/pfstools { };
+
+  phoc = callPackage ../applications/misc/phoc {
+    wlroots = wlroots_0_16;
+  };
+
+  phockup = callPackage ../applications/misc/phockup { };
+
+  phodav = callPackage ../tools/networking/phodav { };
+
+  photon-rss = callPackage ../applications/networking/feedreaders/photon { };
+
+  pim6sd = callPackage ../servers/pim6sd { };
+
+  piper-phonemize = callPackage ../development/libraries/piper-phonemize { };
+  piper-train = callPackage ../tools/audio/piper/train.nix { };
+  piper-tts = callPackage ../tools/audio/piper { };
+
+  phosh = callPackage ../applications/window-managers/phosh { };
+
+  phosh-mobile-settings = callPackage ../applications/window-managers/phosh/phosh-mobile-settings.nix { };
+
+  piknik = callPackage ../tools/networking/piknik { };
+
+  pinentry = libsForQt5.callPackage ../tools/security/pinentry { };
+
+  pinentry-curses = (lib.getOutput "curses" pinentry);
+  pinentry-emacs = (lib.getOutput "emacs" pinentry);
+  pinentry-gtk2 = (lib.getOutput "gtk2" pinentry);
+  pinentry-qt = (lib.getOutput "qt" pinentry);
+  pinentry-gnome = (lib.getOutput "gnome3" pinentry);
+
+  pinentry_mac = callPackage ../tools/security/pinentry/mac.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  pinentry-bemenu = callPackage ../tools/security/pinentry-bemenu { };
+
+  pinentry-rofi = callPackage ../tools/security/pinentry-rofi { };
+
+  pingtcp = callPackage ../tools/networking/pingtcp { };
+
+  pingu = callPackage ../tools/networking/pingu { };
+
+  pinnwand = callPackage ../servers/pinnwand { };
+
+  pinsel = callPackage ../tools/misc/pinsel { };
+
+  piping-server-rust = callPackage ../servers/piping-server-rust {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  pirate-get = callPackage ../tools/networking/pirate-get { };
+
+  pipr = callPackage ../applications/misc/pipr { };
+
+  pipreqs = callPackage ../tools/misc/pipreqs { };
+
+  pius = callPackage ../tools/security/pius { };
+
+  pixiewps = callPackage ../tools/networking/pixiewps { };
+
+  pinyin-tool = callPackage ../tools/text/pinyin-tool {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  pk2cmd = callPackage ../tools/misc/pk2cmd { };
+
+  plantuml = callPackage ../tools/misc/plantuml { };
+
+  plantuml-c4 = callPackage ../tools/misc/plantuml/plantuml-c4.nix { };
+
+  plantuml-server = callPackage ../tools/misc/plantuml-server { };
+
+  plan9port = darwin.apple_sdk_11_0.callPackage ../tools/system/plan9port {
+    inherit (darwin.apple_sdk_11_0.frameworks) Carbon Cocoa IOKit Metal QuartzCore;
+    inherit (darwin) DarwinTools;
+  };
+
+  platformioPackages = dontRecurseIntoAttrs (callPackage ../development/embedded/platformio { });
+  platformio = if stdenv.isLinux then platformioPackages.platformio-chrootenv else platformioPackages.platformio-core;
+  platformio-core = platformioPackages.platformio-core;
+
+  platinum-searcher = callPackage ../tools/text/platinum-searcher { };
+
+  playbar2 = libsForQt5.callPackage ../applications/audio/playbar2 { };
+
+  playwright = with python3Packages; toPythonApplication playwright;
+
+  playwright-driver = callPackage ../development/web/playwright/driver.nix { };
+  playwright-test = callPackage ../development/web/playwright-test/wrapped.nix { };
+
+  please = callPackage ../tools/security/please { };
+
+  plecost = callPackage ../tools/security/plecost { };
+
+  plujain-ramp = callPackage ../applications/audio/plujain-ramp { };
+
+  inherit (callPackage ../servers/plik { })
+    plik plikd;
+
+  plex = callPackage ../servers/plex { };
+
+  plexRaw = callPackage ../servers/plex/raw.nix { };
+
+  psitransfer = callPackage ../servers/psitransfer { };
+
+  tab = callPackage ../tools/text/tab { };
+
+  tabview = with python3Packages; toPythonApplication tabview;
+
+  tautulli = python3Packages.callPackage ../servers/tautulli { };
+
+  pleroma = callPackage ../servers/pleroma {
+    elixir = elixir_1_14;
+    beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_14; });
+  };
+
+  plfit = callPackage ../tools/misc/plfit {
+    python = null;
+  };
+
+  ploticus = callPackage ../tools/graphics/ploticus { };
+
+  plotinus = callPackage ../tools/misc/plotinus { };
+
+  plots = callPackage ../applications/misc/plots { };
+
+  plotutils = callPackage ../tools/graphics/plotutils { };
+
+  plowshare = callPackage ../tools/misc/plowshare { };
+
+  pm2 = nodePackages.pm2;
+
+  pmenu = callPackage ../tools/X11/pmenu { };
+
+  pngcheck = callPackage ../tools/graphics/pngcheck { };
+
+  pngcrush = callPackage ../tools/graphics/pngcrush { };
+
+  pngnq = callPackage ../tools/graphics/pngnq { };
+
+  pngoptimizer = callPackage ../tools/graphics/pngoptimizer { };
+
+  pngtoico = callPackage ../tools/graphics/pngtoico { };
+
+  pngpaste = callPackage ../os-specific/darwin/pngpaste {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
+  };
+
+  pngtools = callPackage ../tools/graphics/pngtools { };
+
+  pngpp = callPackage ../development/libraries/png++ { };
+
+  pngquant = callPackage ../tools/graphics/pngquant { };
+
+  po4a = perlPackages.Po4a;
+
+  poac = callPackage ../development/tools/poac {
+    inherit (llvmPackages_14) stdenv;
+  };
+
+  podiff = callPackage ../tools/text/podiff { };
+
+  pocketbase = callPackage ../servers/pocketbase { };
+
+  podman = callPackage ../applications/virtualization/podman { };
+
+  podman-compose = python3Packages.callPackage ../applications/virtualization/podman-compose { };
+
+  podman-tui = callPackage ../applications/virtualization/podman-tui { };
+
+  podman-desktop = callPackage ../applications/virtualization/podman-desktop {};
+
+  pods = callPackage ../applications/virtualization/pods { };
+
+  pod2mdoc = callPackage ../tools/misc/pod2mdoc { };
+
+  poedit = callPackage ../tools/text/poedit {
+    wxGTK32 = wxGTK32.override { withWebKit = true; };
+  };
+
+  polaris = callPackage ../servers/polaris { };
+
+  polaris-web = callPackage ../servers/polaris/web.nix { };
+
+  polipo = callPackage ../servers/polipo { };
+
+  polkit_gnome = callPackage ../tools/security/polkit-gnome { };
+
+  poly2tri-c = callPackage ../development/libraries/poly2tri-c { };
+
+  polypane = callPackage ../applications/networking/browsers/polypane { };
+
+  pomsky = callPackage ../tools/text/pomsky { };
+
+  ponysay = callPackage ../tools/misc/ponysay { };
+
+  popfile = callPackage ../tools/text/popfile { };
+
+  poretools = callPackage ../applications/science/biology/poretools { };
+
+  porsmo = callPackage ../applications/misc/porsmo { };
+
+  pantum-driver = callPackage ../misc/drivers/pantum-driver { };
+
+  posteid-seed-extractor = callPackage ../tools/security/posteid-seed-extractor { };
+
+  postscript-lexmark = callPackage ../misc/drivers/postscript-lexmark { };
+
+  povray = callPackage ../tools/graphics/povray { };
+
+  power-profiles-daemon = callPackage ../os-specific/linux/power-profiles-daemon { };
+
+  ppl = callPackage ../development/libraries/ppl { };
+
+  pplite = callPackage ../development/libraries/pplite { };
+
+  ppp = callPackage ../tools/networking/ppp { };
+
+  pptp = callPackage ../tools/networking/pptp { };
+
+  pptpd = callPackage ../tools/networking/pptpd { };
+
+  pre-commit = callPackage ../tools/misc/pre-commit { };
+
+  pre-commit-hook-ensure-sops = callPackage ../tools/misc/pre-commit-hook-ensure-sops { };
+
+  pretender = callPackage ../tools/security/pretender { };
+
+  prettierd = callPackage ../development/tools/prettierd { };
+
+  pretty-simple = callPackage ../development/tools/pretty-simple { };
+
+  prettyping = callPackage ../tools/networking/prettyping { };
+
+  pritunl-client = callPackage ../tools/networking/pritunl-client { };
+
+  pritunl-ssh = callPackage ../tools/networking/pritunl-ssh { };
+
+  profile-cleaner = callPackage ../tools/misc/profile-cleaner { };
+
+  profile-sync-daemon = callPackage ../tools/misc/profile-sync-daemon { };
+
+  projectable = callPackage ../applications/file-managers/projectable { };
+
+  projectlibre = callPackage ../applications/misc/projectlibre {
+    jre = jre8;
+    jdk = jdk8;
+  };
+
+  projectm = libsForQt5.callPackage ../applications/audio/projectm { };
+
+  proot = callPackage ../tools/system/proot { };
+
+  protoscope = callPackage ../development/tools/protoscope { };
+
+  prototypejs = callPackage ../development/libraries/prototypejs { };
+
+  proxmark3 = libsForQt5.callPackage ../tools/security/proxmark3/default.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation AppKit;
+  };
+
+  proxychains = callPackage ../tools/networking/proxychains { };
+
+  proxychains-ng = callPackage ../tools/networking/proxychains-ng { };
+
+  proxify = callPackage ../tools/networking/proxify { };
+
+  proxysql = callPackage ../servers/sql/proxysql { };
+
+  prs = callPackage ../tools/security/prs { };
+
+  psw = callPackage ../tools/misc/psw { };
+
+  pws = callPackage ../tools/misc/pws { };
+
+  cntlm = callPackage ../tools/networking/cntlm { };
+
+  cnping = callPackage ../tools/networking/cnping { };
+
+  past-time = callPackage ../tools/misc/past-time { };
+
+  pastebinit = callPackage ../tools/misc/pastebinit { };
+
+  pmacct = callPackage ../tools/networking/pmacct { };
+
+  pmix = callPackage ../development/libraries/pmix { };
+
+  polygraph = callPackage ../tools/networking/polygraph { };
+
+  pr-tracker = callPackage ../servers/pr-tracker { };
+
+  progress = callPackage ../tools/misc/progress { };
+
+  ps3-disc-dumper = callPackage ../tools/games/ps3-disc-dumper { };
+
+  ps3iso-utils = callPackage ../tools/games/ps3iso-utils { };
+
+  ps3netsrv = callPackage ../servers/ps3netsrv { };
+
+  pscircle = callPackage ../os-specific/linux/pscircle { };
+
+  psitop = callPackage ../applications/system/psitop { };
+
+  psmisc = callPackage ../os-specific/linux/psmisc { };
+
+  pssh = callPackage ../tools/networking/pssh { };
+
+  pspg = callPackage ../tools/misc/pspg { };
+
+  pstoedit = callPackage ../tools/graphics/pstoedit { };
+
+  psutils = callPackage ../tools/typesetting/psutils { };
+
+  psudohash = callPackage ../tools/security/psudohash { };
+
+  psensor = callPackage ../tools/system/psensor {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+  };
+
+  pubs = callPackage ../tools/misc/pubs { };
+
+  pulldown-cmark = callPackage ../tools/typesetting/pulldown-cmark { };
+
+  pulumictl = callPackage ../development/tools/pulumictl { };
+
+  pure-prompt = callPackage ../shells/zsh/pure-prompt { };
+
+  pv = callPackage ../tools/misc/pv { };
+
+  pwgen = callPackage ../tools/security/pwgen { };
+
+  pwgen-secure = callPackage ../tools/security/pwgen-secure { };
+
+  pwnat = callPackage ../tools/networking/pwnat { };
+
+  pwndbg = callPackage ../development/tools/misc/pwndbg { };
+
+  pwninit = callPackage ../development/tools/misc/pwninit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  pycflow2dot = with python3.pkgs; toPythonApplication pycflow2dot;
+
+  pydf = callPackage ../applications/misc/pydf { };
+
+  pyinfra = with python3Packages; toPythonApplication pyinfra;
+
+  pylint = with python3Packages; toPythonApplication pylint;
+
+  pympress = callPackage ../applications/office/pympress { };
+
+  pyocd = with python3Packages; toPythonApplication pyocd;
+
+  pypass = with python3Packages; toPythonApplication pypass;
+
+  teapot = callPackage ../applications/office/teapot { };
+
+  ticktick = callPackage ../applications/office/ticktick { };
+
+  pyditz = callPackage ../applications/misc/pyditz {
+    pythonPackages = python3Packages;
+  };
+
+  py-spy = darwin.apple_sdk_11_0.callPackage ../development/tools/py-spy { };
+
+  pydeps = with python3Packages; toPythonApplication pydeps;
+
+  pysentation = callPackage ../applications/misc/pysentation { };
+
+  python-launcher = callPackage ../development/tools/misc/python-launcher { };
+
+  pytrainer = callPackage ../applications/misc/pytrainer { };
+
+  pywal = with python3Packages; toPythonApplication pywal;
+
+  pystring = callPackage ../development/libraries/pystring { };
+
+  raysession = python3Packages.callPackage ../applications/audio/raysession {};
+
+  revolt-desktop = callPackage ../applications/networking/instant-messengers/revolt-desktop { };
+
+  rbw = callPackage ../tools/security/rbw { };
+
+  remarshal = with python3Packages; toPythonApplication remarshal;
+
+  rehex = darwin.apple_sdk_11_0.callPackage ../applications/editors/rehex {
+    inherit (darwin.apple_sdk_11_0.frameworks) Carbon Cocoa IOKit;
+  };
+
+  rio = callPackage ../applications/terminal-emulators/rio { };
+
+  rig = callPackage ../tools/misc/rig { };
+
+  ripdrag = callPackage ../tools/misc/ripdrag { };
+
+  riseup-vpn = libsForQt5.callPackage ../tools/networking/bitmask-vpn {
+    provider = "riseup";
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  rnm = callPackage ../tools/filesystems/rnm { };
+
+  rocket = libsForQt5.callPackage ../tools/graphics/rocket { };
+
+  rtabmap = libsForQt5.callPackage ../applications/video/rtabmap/default.nix {
+    pcl = pcl.override { vtk = vtkWithQt5; };
+  };
+
+  rtaudio = callPackage ../development/libraries/audio/rtaudio {
+    jack = libjack2;
+    inherit (darwin.apple_sdk.frameworks) CoreAudio;
+  };
+
+  rtmidi = callPackage ../development/libraries/audio/rtmidi {
+    jack = libjack2;
+    inherit (darwin.apple_sdk.frameworks) CoreMIDI CoreAudio CoreServices;
+  };
+
+  openmpi = callPackage ../development/libraries/openmpi { };
+
+  ouch = callPackage ../tools/compression/ouch { };
+
+  outils = callPackage ../tools/misc/outils { };
+
+  mpi = openmpi; # this attribute should used to build MPI applications
+  mpiCheckPhaseHook = callPackage ../build-support/setup-hooks/mpi-check-hook { };
+
+  ucc = callPackage ../development/libraries/ucc { };
+
+  ucx = callPackage ../development/libraries/ucx { };
+
+  openmodelica = recurseIntoAttrs (callPackage ../applications/science/misc/openmodelica {});
+
+  prowlarr = callPackage ../servers/prowlarr { };
+
+  qarte = libsForQt5.callPackage ../applications/video/qarte { };
+
+  qdrant = darwin.apple_sdk_11_0.callPackage ../servers/search/qdrant {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+  };
+
+  qlcplus = libsForQt5.callPackage ../applications/misc/qlcplus { };
+
+  qlog = qt6Packages.callPackage ../applications/radio/qlog { };
+
+  qnial = callPackage ../development/interpreters/qnial { };
+
+  quickbms = pkgsi686Linux.callPackage ../tools/archivers/quickbms { };
+
+  q-text-as-data = callPackage ../tools/misc/q-text-as-data { };
+
+  qalculate-gtk = callPackage ../applications/science/math/qalculate-gtk { };
+
+  qalculate-qt = qt6Packages.callPackage ../applications/science/math/qalculate-qt { };
+
+  qastools = libsForQt5.callPackage ../tools/audio/qastools { };
+
+  qdigidoc = libsForQt5.callPackage ../tools/security/qdigidoc { } ;
+
+  qgrep = callPackage ../tools/text/qgrep {
+    inherit (darwin.apple_sdk.frameworks) CoreServices CoreFoundation;
+  };
+
+  qhull = callPackage ../development/libraries/qhull { };
+
+  qjournalctl = libsForQt5.callPackage ../applications/system/qjournalctl { };
+
+  qjoypad = libsForQt5.callPackage ../tools/misc/qjoypad { };
+
+  qmk = callPackage ../tools/misc/qmk { };
+
+  qmk_hid = callPackage ../tools/misc/qmk_hid { };
+
+  qmarkdowntextedit = libsForQt5.callPackage  ../development/libraries/qmarkdowntextedit { };
+
+  qodem = callPackage ../tools/networking/qodem { };
+
+  qosmic = libsForQt5.callPackage ../applications/graphics/qosmic { };
+
+  qovery-cli = callPackage ../tools/admin/qovery-cli { };
+
+  qownnotes = qt6Packages.callPackage ../applications/office/qownnotes {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
+
+  qpdf = callPackage ../development/libraries/qpdf { };
+
+  qprint = callPackage ../tools/text/qprint { };
+
+  qrcp = callPackage ../tools/networking/qrcp { };
+
+  qrscan = callPackage ../tools/misc/qrscan { };
+
+  qtikz = libsForQt5.callPackage ../applications/graphics/ktikz { };
+
+  qtspim = libsForQt5.callPackage ../development/tools/misc/qtspim { };
+
+  quadrafuzz = callPackage ../applications/audio/quadrafuzz { };
+
+  quickfix = callPackage ../development/libraries/quickfix { };
+
+  quickjs = callPackage ../development/interpreters/quickjs { };
+
+  quickserve = callPackage ../tools/networking/quickserve { };
+
+  quictls = callPackage ../development/libraries/quictls { };
+
+  quicktun = callPackage ../tools/networking/quicktun { };
+
+  quickwit = callPackage ../servers/search/quickwit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  quilt = callPackage ../development/tools/quilt { };
+
+  raider = callPackage ../applications/misc/raider { };
+
+  railway = callPackage ../development/tools/railway {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  quota = if stdenv.isLinux then linuxquota else unixtools.quota;
+
+  qvge = libsForQt5.callPackage ../applications/graphics/qvge { };
+
+  qview = libsForQt5.callPackage ../applications/graphics/qview { };
+
+  wayback_machine_downloader = callPackage ../applications/networking/wayback_machine_downloader { };
+
+  wiggle = callPackage ../development/tools/wiggle { };
+
+  radamsa = callPackage ../tools/security/radamsa { };
+
+  radarr = callPackage ../servers/radarr { };
+
+  radeon-profile = libsForQt5.callPackage ../tools/misc/radeon-profile { };
+
+  radsecproxy = callPackage ../tools/networking/radsecproxy { };
+
+  radvd = callPackage ../tools/networking/radvd { };
+
+  rain = callPackage ../development/tools/rain { };
+
+  rainbowstream = with python3.pkgs; toPythonApplication rainbowstream;
+
+  rambox = callPackage ../applications/networking/instant-messengers/rambox { };
+
+  ramfetch = callPackage ../tools/misc/ramfetch { };
+
+  rapidgzip = with python3Packages; toPythonApplication rapidgzip;
+
+  rar = callPackage ../tools/archivers/rar { };
+
+  rarcrack = callPackage ../tools/security/rarcrack { };
+
+  rare-regex = callPackage ../tools/text/rare-regex { };
+
+  ratman = callPackage ../tools/networking/ratman { };
+
+  ratarmount = with python3Packages; toPythonApplication ratarmount;
+
+  ratools = callPackage ../tools/networking/ratools { };
+
+  ratt = callPackage ../applications/misc/ratt { };
+
+  rc-9front = callPackage ../shells/rc-9front { };
+
+  rcon = callPackage ../tools/networking/rcon { };
+
+  rconc = callPackage ../tools/networking/rconc { };
+
+  rdap = callPackage ../tools/networking/rdap { };
+
+  rdbtools = callPackage ../development/tools/rdbtools { python = python3; };
+
+  rdma-core = callPackage ../os-specific/linux/rdma-core { };
+
+  rdrview = callPackage ../tools/networking/rdrview { };
+
+  real_time_config_quick_scan = callPackage ../applications/audio/real_time_config_quick_scan { };
+
+  realesrgan-ncnn-vulkan = callPackage ../tools/graphics/realesrgan-ncnn-vulkan { };
+
+  react-native-debugger = callPackage ../development/tools/react-native-debugger { };
+
+  readarr = callPackage ../servers/readarr { };
+
+  read-edid = callPackage ../os-specific/linux/read-edid { };
+
+  readstat = callPackage ../applications/science/math/readstat { };
+
+  redir = callPackage ../tools/networking/redir { };
+
+  redmine = callPackage ../applications/version-management/redmine { };
+
+  redpanda-client = callPackage ../servers/redpanda { };
+
+  redpanda-server = redpanda-client.server;
+
+  redsocks = callPackage ../tools/networking/redsocks { };
+
+  renpy = callPackage ../development/interpreters/renpy { };
+
+  rep = callPackage ../development/tools/rep { };
+
+  repseek = callPackage ../applications/science/biology/repseek { };
+
+  reredirect = callPackage ../tools/misc/reredirect { };
+
+  retext = qt6Packages.callPackage ../applications/editors/retext { };
+
+  rewrk = callPackage ../tools/networking/rewrk { };
+
+  inherit (callPackage ../tools/security/rekor { })
+    rekor-cli
+    rekor-server;
+
+  rhai-doc = callPackage ../development/tools/misc/rhai-doc { };
+
+  rich-cli = callPackage ../misc/rich-cli { };
+
+  richgo = callPackage ../development/tools/richgo {  };
+
+  risor = callPackage ../development/interpreters/risor { };
+
+  rlci = callPackage ../development/interpreters/rlci { };
+
+  rst2pdf = with python3Packages; toPythonApplication rst2pdf;
+
+  rstcheck = with python3Packages; toPythonApplication rstcheck;
+
+  rstfmt = callPackage ../development/tools/rstfmt { };
+
+  rt = callPackage ../servers/rt { };
+
+  rtmpdump = callPackage ../tools/video/rtmpdump { };
+  rtmpdump_gnutls = rtmpdump.override { gnutlsSupport = true; opensslSupport = false; };
+
+  rtptools = callPackage ../tools/networking/rtptools { };
+
+  rtss = callPackage ../development/tools/misc/rtss { };
+
+  realvnc-vnc-viewer = callPackage ../tools/admin/realvnc-vnc-viewer { };
+
+  re-isearch = callPackage ../applications/search/re-isearch { };
+
+  reason-shell = callPackage ../applications/science/misc/reason-shell { };
+
+  reaverwps = callPackage ../tools/networking/reaver-wps { };
+
+  reaverwps-t6x = callPackage ../tools/networking/reaver-wps-t6x { };
+
+  rx = callPackage ../applications/graphics/rx { };
+
+  qt-box-editor = libsForQt5.callPackage ../applications/misc/qt-box-editor { };
+
+  readability-cli = callPackage ../tools/text/readability-cli { };
+
+  recutils = callPackage ../tools/misc/recutils { };
+
+  recoll = libsForQt5.callPackage ../applications/search/recoll { };
+
+  redoc-cli = callPackage ../development/tools/redoc-cli { };
+
+  reflex = callPackage ../development/tools/reflex { };
+
+  reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
+
+  reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
+
+  relic = callPackage ../development/tools/relic { };
+
+  remind = callPackage ../tools/misc/remind { };
+
+  remmina = darwin.apple_sdk_11_0.callPackage ../applications/networking/remote/remmina { };
+
+  rename = callPackage ../tools/misc/rename { };
+
+  renameutils = callPackage ../tools/misc/renameutils { };
+
+  renderdoc = libsForQt5.callPackage ../development/tools/renderdoc { };
+
+  repgrep = callPackage ../tools/text/repgrep { };
+
+  replace = callPackage ../tools/text/replace { };
+
+  resvg = callPackage ../tools/graphics/resvg { };
+
+  reckon = callPackage ../tools/text/reckon { };
+
+  recoverjpeg = callPackage ../tools/misc/recoverjpeg { };
+
+  reftools = callPackage ../development/tools/reftools { };
+
+  redwax-tool = callPackage ../tools/security/redwax-tool { };
+
+  regpg = callPackage ../tools/security/regpg { };
+
+  remote-touchpad = callPackage ../tools/inputmethods/remote-touchpad { };
+
+  remote-exec = python3Packages.callPackage ../tools/misc/remote-exec { };
+
+  reposurgeon = callPackage ../applications/version-management/reposurgeon { };
+
+  reptor = with python3.pkgs; toPythonApplication reptor;
+
+  reptyr = callPackage ../os-specific/linux/reptyr { };
+
+  rescuetime = libsForQt5.callPackage ../applications/misc/rescuetime { };
+
+  inherit (callPackage ../development/misc/resholve { })
+    resholve;
+
+  restool = callPackage ../os-specific/linux/restool { };
+
+  reuse = with python3.pkgs; toPythonApplication reuse;
+
+  reveal-md = callPackage ../tools/text/reveal-md { };
+
+  rewritefs = callPackage ../os-specific/linux/rewritefs { };
+
+  rdiff-backup = callPackage ../tools/backup/rdiff-backup { };
+
+  rdfind = callPackage ../tools/filesystems/rdfind { };
+
+  rhash = callPackage ../tools/security/rhash { };
+
+  rhoas = callPackage ../tools/admin/rhoas { };
+
+  riemann_c_client = callPackage ../tools/misc/riemann-c-client { };
+  riemann-tools = callPackage ../tools/misc/riemann-tools { };
+
+  ripmime = callPackage ../tools/networking/ripmime { };
+
+  rkflashtool = callPackage ../tools/misc/rkflashtool { };
+
+  rkvm = callPackage ../tools/misc/rkvm { };
+
+  rkrlv2 = callPackage ../applications/audio/rkrlv2 { };
+
+  rmlint = callPackage ../tools/misc/rmlint {
+    inherit (python3Packages) sphinx;
+  };
+
+  rmw = callPackage ../tools/misc/rmw { };
+
+  rng-tools = callPackage ../tools/security/rng-tools { };
+
+  rnnoise = callPackage ../development/libraries/rnnoise { };
+
+  # Use `apple_sdk_11_0` because `apple_sdk.libs` does not provide `simd`
+  rnnoise-plugin = darwin.apple_sdk_11_0.callPackage ../development/libraries/rnnoise-plugin {
+    inherit (darwin.apple_sdk_11_0.frameworks) WebKit MetalKit CoreAudioKit;
+    inherit (darwin.apple_sdk_11_0.libs) simd;
+  };
+
+  rnote = callPackage ../applications/graphics/rnote {
+    inherit (gst_all_1) gstreamer;
+    inherit (darwin.apple_sdk.frameworks) AudioUnit;
+  };
+
+  rnp = callPackage ../tools/security/rnp { };
+
+  rnr = callPackage ../tools/text/rnr { };
+
+  rnv = callPackage ../tools/text/xml/rnv { };
+
+  roam-research = callPackage ../applications/office/roam-research { };
+
+  rosie = callPackage ../tools/text/rosie { };
+
+  rounded-mgenplus = callPackage ../data/fonts/rounded-mgenplus { };
+
+  roundup = callPackage ../tools/misc/roundup { };
+
+  routino = callPackage ../tools/misc/routino { };
+
+  rq = callPackage ../development/tools/rq { };
+
+  rsnapshot = callPackage ../tools/backup/rsnapshot { };
+
+  rlwrap = callPackage ../tools/misc/rlwrap { };
+
+  rmtrash = callPackage ../tools/misc/rmtrash { };
+
+  roc-toolkit = callPackage ../development/libraries/audio/roc-toolkit { };
+
+  rockbox-utility = libsForQt5.callPackage ../tools/misc/rockbox-utility { };
+
+  rosegarden = libsForQt5.callPackage ../applications/audio/rosegarden { };
+
+  rosenpass = callPackage ../tools/networking/rosenpass  { };
+
+  rosenpass-tools = callPackage ../tools/networking/rosenpass/tools.nix  { };
+
+  rot8 = callPackage ../tools/misc/rot8 { };
+
+  rowhammer-test = callPackage ../tools/system/rowhammer-test { };
+
+  rpPPPoE = callPackage ../tools/networking/rp-pppoe { };
+
+  rpi-imager = libsForQt5.callPackage ../tools/misc/rpi-imager { };
+
+  rpiboot = callPackage ../development/misc/rpiboot { };
+
+  rpm = callPackage ../tools/package-management/rpm {
+    python = python3;
+    lua = lua5_4;
+  };
+
+  rpm-ostree = callPackage ../tools/misc/rpm-ostree {
+    gperf = gperf_3_0;
+  };
+
+  rpm2targz = callPackage ../tools/archivers/rpm2targz { };
+
+  rpmextract = callPackage ../tools/archivers/rpmextract { };
+
+  rrdtool = callPackage ../tools/misc/rrdtool { };
+
+  rscw = callPackage ../applications/radio/rscw { };
+
+  rset = callPackage ../tools/admin/rset { };
+
+  rshijack = callPackage ../tools/networking/rshijack { };
+
+  rshim-user-space = callPackage ../tools/misc/rshim-user-space { };
+
+  rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { };
+
+  rslint = callPackage ../development/tools/rslint { };
+
+  rss-bridge-cli = callPackage ../applications/misc/rss-bridge-cli { };
+
+  rss2email = callPackage ../applications/networking/feedreaders/rss2email {
+    pythonPackages = python3Packages;
+  };
+
+  feed2imap-go = callPackage ../applications/networking/feedreaders/feed2imap-go { };
+
+  rsstail = callPackage ../applications/networking/feedreaders/rsstail { };
+
+  rtz = callPackage ../tools/misc/rtz { };
+
+  rubber = callPackage ../tools/typesetting/rubber { };
+
+  rubocop = rubyPackages.rubocop;
+
+  ruby-lsp = rubyPackages.ruby-lsp;
+
+  runningx = callPackage ../tools/X11/runningx { };
+
+  rund = callPackage ../development/tools/rund { };
+
+  runme = callPackage ../development/tools/misc/runme { };
+
+  runzip = callPackage ../tools/archivers/runzip { };
+
+  unzoo = callPackage ../tools/archivers/unzoo { };
+
+  ruplacer = callPackage ../tools/text/ruplacer {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rust-code-analysis = callPackage ../development/tools/rust-code-analysis { };
+
+  rust-motd = callPackage ../tools/misc/rust-motd {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rust-petname = callPackage ../tools/text/rust-petname { };
+
+  rustcat = callPackage ../tools/networking/rustcat {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rustdesk = callPackage ../applications/networking/remote/rustdesk { };
+
+  rustfilt = callPackage ../development/tools/rust/rustfilt { };
+
+  rustscan = callPackage ../tools/security/rustscan {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rustdesk-server = callPackage ../servers/rustdesk-server {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rustypaste = callPackage ../servers/rustypaste { };
+
+  rustypaste-cli = callPackage ../tools/misc/rustypaste-cli { };
+
+  rustywind = callPackage ../development/tools/misc/rustywind { };
+
+  rw = callPackage ../tools/misc/rw { };
+
+  rwc = callPackage ../tools/system/rwc { };
+
+  rwedid = callPackage ../tools/video/rwedid { };
+
+  rxp = callPackage ../tools/text/xml/rxp { };
+
+  rzip = callPackage ../tools/compression/rzip { };
+
+  s-tui = callPackage ../tools/system/s-tui { };
+
+  s3backer = callPackage ../tools/filesystems/s3backer { };
+
+  s3bro = callPackage ../tools/admin/s3bro { };
+
+  s3fs = darwin.apple_sdk_11_0.callPackage ../tools/filesystems/s3fs { };
+
+  s3cmd = python3Packages.callPackage ../tools/networking/s3cmd { };
+
+  s3rs = callPackage ../tools/networking/s3rs {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  s3-credentials = with python3Packages; toPythonApplication s3-credentials;
+
+  s4cmd = callPackage ../tools/networking/s4cmd { };
+
+  s5 = callPackage ../tools/security/s5 { };
+
+  s5cmd = callPackage ../tools/networking/s5cmd { };
+
+  sacad = callPackage ../tools/misc/sacad { };
+
+  sad = callPackage ../tools/text/sad { };
+
+  safecopy = callPackage ../tools/system/safecopy { };
+
+  sacd = callPackage ../tools/cd-dvd/sacd { };
+
+  safe = callPackage ../tools/security/safe { };
+
+  safety-cli = with python3.pkgs; toPythonApplication safety;
+
+  safe-rm = callPackage ../tools/system/safe-rm { };
+
+  safecloset = callPackage ../applications/misc/safecloset { };
+
+  safeeyes = callPackage ../applications/misc/safeeyes { };
+
+  sagoin = callPackage ../tools/misc/sagoin { };
+
+  sahel-fonts = callPackage ../data/fonts/sahel-fonts { };
+
+  saldl = callPackage ../tools/networking/saldl { };
+
+  salt = callPackage ../tools/admin/salt { };
+
+  samim-fonts = callPackage ../data/fonts/samim-fonts { };
+
+  saml2aws = callPackage ../tools/security/saml2aws {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  sammler = callPackage ../tools/security/sammler { };
+
+  samplicator = callPackage ../tools/networking/samplicator { };
+
+  sanctity = callPackage ../tools/misc/sanctity { };
+
+  sandboxfs = callPackage ../tools/filesystems/sandboxfs { };
+
+  sanjuuni = callPackage ../tools/graphics/sanjuuni { };
+
+  sasquatch = callPackage ../tools/filesystems/sasquatch { };
+
+  sasview = libsForQt5.callPackage ../applications/science/misc/sasview { };
+
+  sbs = callPackage ../tools/X11/sbs { };
+
+  schemes = callPackage ../applications/misc/schemes { };
+
+  scanbd = callPackage ../tools/graphics/scanbd { };
+
+  scdl = callPackage ../tools/misc/scdl { };
+
+  scorecard = callPackage ../tools/security/scorecard { };
+
+  scream = callPackage ../applications/audio/scream { };
+
+  screen = callPackage ../tools/misc/screen {
+    inherit (darwin.apple_sdk.libs) utmp;
+  };
+
+  scrcpy = callPackage ../misc/scrcpy { };
+
+  screen-message = callPackage ../tools/X11/screen-message { };
+
+  screenkey = callPackage ../applications/video/screenkey { };
+
+  scrub = callPackage ../tools/misc/scrub { };
+
+  scfbuild = python3.pkgs.callPackage ../tools/misc/scfbuild { };
+
+  scraper = callPackage ../tools/text/scraper { };
+
+  scriptaculous = callPackage ../development/libraries/scriptaculous { };
+
+  script-directory = callPackage ../tools/misc/script-directory { };
+
+  scrot = callPackage ../tools/graphics/scrot { };
+
+  scrypt = callPackage ../tools/security/scrypt { };
+
+  sd = callPackage ../tools/text/sd {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  sd-mux-ctrl = callPackage ../tools/misc/sd-mux-ctrl { };
+
+  sd-switch = callPackage ../os-specific/linux/sd-switch { };
+
+  sdate = callPackage ../tools/misc/sdate { };
+
+  sdat2img = callPackage ../tools/filesystems/sdat2img { };
+
+  sdcv = callPackage ../applications/misc/sdcv { };
+
+  sdl-jstest = callPackage ../tools/misc/sdl-jstest { };
+
+  senpai = callPackage ../applications/networking/irc/senpai { };
+
+  skim = callPackage ../tools/misc/skim { };
+
+  seashells = callPackage ../applications/misc/seashells { };
+
+  seaweedfs = callPackage ../applications/networking/seaweedfs { };
+
+  sec = callPackage ../tools/admin/sec { };
+
+  seccure = callPackage ../tools/security/seccure { };
+
+  secp256k1 = callPackage ../tools/security/secp256k1 { };
+
+  securefs = darwin.apple_sdk_11_0.callPackage ../tools/filesystems/securefs { };
+
+  seehecht = callPackage ../tools/text/seehecht { };
+
+  selectdefaultapplication = libsForQt5.callPackage ../applications/misc/selectdefaultapplication { };
+
+  semantic-release = callPackage ../development/tools/semantic-release {
+    inherit (darwin) cctools;
+  };
+
+  semgrep = python3.pkgs.callPackage ../tools/security/semgrep { };
+  semgrep-core = callPackage ../tools/security/semgrep/semgrep-core.nix { };
+
+  setroot = callPackage  ../tools/X11/setroot { };
+
+  setserial = callPackage ../tools/system/setserial { };
+
+  setzer = callPackage ../applications/editors/setzer { };
+
+  seqdiag = with python3Packages; toPythonApplication seqdiag;
+
+  sequoia-sq = callPackage ../tools/security/sequoia-sq { };
+
+  sequoia-sqv = callPackage ../tools/security/sequoia-sqv { };
+
+  sequoia-sqop = callPackage ../tools/security/sequoia-sqop { };
+
+  sequoia-chameleon-gnupg = callPackage ../tools/security/sequoia-chameleon-gnupg { };
+
+  servefile = python2.pkgs.callPackage ../tools/networking/servefile { };
+
+  sewer = callPackage ../tools/admin/sewer { };
+
+  sexpp = callPackage ../development/libraries/sexpp { };
+
+  sfeed = callPackage ../tools/misc/sfeed { };
+
+  sftpman = callPackage ../tools/filesystems/sftpman { };
+
+  sftpgo = callPackage ../servers/sftpgo { };
+
+  screenfetch = callPackage ../tools/misc/screenfetch { };
+
+  sg3_utils = callPackage ../tools/system/sg3_utils { };
+
+  sha1collisiondetection = callPackage ../tools/security/sha1collisiondetection { };
+
+  shadowsocks-libev = callPackage ../tools/networking/shadowsocks-libev { };
+
+  shadered = callPackage ../development/tools/shadered { };
+
+  go-shadowsocks2 = callPackage ../tools/networking/go-shadowsocks2 { };
+
+  shabnam-fonts = callPackage ../data/fonts/shabnam-fonts { };
+
+  shadowsocks-rust = callPackage ../tools/networking/shadowsocks-rust {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+
+  shadowsocks-v2ray-plugin = callPackage ../tools/networking/shadowsocks-v2ray-plugin { };
+
+  sharutils = callPackage ../tools/archivers/sharutils { };
+
+  shell2http = callPackage ../servers/misc/shell2http { };
+
+  shelldap = callPackage ../tools/misc/shelldap { };
+
+  shellify = haskellPackages.shellify.bin;
+
+  shellspec = callPackage ../tools/misc/shellspec { };
+
+  schema2ldif = callPackage ../tools/text/schema2ldif { };
+
+  schemacrawler = callPackage ../development/tools/schemacrawler { };
+
+  sharedown = callPackage ../tools/misc/sharedown { };
+
+  shen-sbcl = callPackage ../development/interpreters/shen-sbcl { };
+
+  shen-sources = callPackage ../development/interpreters/shen-sources { };
+
+  shiv = with python3Packages; toPythonApplication shiv;
+
+  shim-unsigned = callPackage ../tools/misc/shim { };
+
+  shocco = callPackage ../tools/text/shocco { };
+
+  shopify-cli = callPackage ../development/web/shopify-cli { };
+
+  shopify-themekit = callPackage ../development/web/shopify-themekit { };
+
+  shorewall = callPackage ../tools/networking/shorewall { };
+
+  shotwell = callPackage ../applications/graphics/shotwell { };
+
+  shout = nodePackages.shout;
+
+  showmethekey = callPackage ../applications/video/showmethekey { };
+
+  shrikhand = callPackage ../data/fonts/shrikhand { };
+
+  shunit2 = callPackage ../tools/misc/shunit2 { };
+
+  sic = callPackage ../applications/networking/irc/sic { };
+
+  siege = callPackage ../tools/networking/siege { };
+
+  sieve-connect = callPackage ../applications/networking/sieve-connect { };
+
+  sigal = callPackage ../applications/misc/sigal { };
+
+  sigi = callPackage ../applications/misc/sigi { };
+
+  sigil = libsForQt5.callPackage ../applications/editors/sigil { };
+
+  signalbackup-tools = darwin.apple_sdk_11_0.callPackage
+    ../applications/networking/instant-messengers/signalbackup-tools { };
+
+  signald = callPackage ../applications/networking/instant-messengers/signald { };
+
+  signaldctl = callPackage ../applications/networking/instant-messengers/signaldctl { };
+
+  signal-cli = callPackage ../applications/networking/instant-messengers/signal-cli { };
+
+  inherit (callPackage ../applications/networking/instant-messengers/signal-desktop {}) signal-desktop signal-desktop-beta;
+
+  slither-analyzer = with python3Packages; toPythonApplication slither-analyzer;
+
+  sigma-cli = callPackage ../tools/security/sigma-cli { };
+
+  signify = callPackage ../tools/security/signify { };
+
+  # aka., pgp-tools
+  signing-party = callPackage ../tools/security/signing-party { };
+
+  sigtop = callPackage ../tools/backup/sigtop { };
+
+  silc_client = callPackage ../applications/networking/instant-messengers/silc-client { };
+
+  silc_server = callPackage ../servers/silc-server { };
+
+  sile = callPackage ../tools/typesetting/sile {
+    lua = lua5_3;
+  };
+
+  silenthound = callPackage ../tools/security/silenthound { };
+
+  silice = callPackage ../development/compilers/silice { };
+
+  silver-searcher = callPackage ../tools/text/silver-searcher { };
+
+  simple-mtpfs = callPackage ../tools/filesystems/simple-mtpfs { };
+
+  simplotask = callPackage ../tools/admin/simplotask { };
+
+  simpleproxy = callPackage ../tools/networking/simpleproxy { };
+
+  simplescreenrecorder = libsForQt5.callPackage ../applications/video/simplescreenrecorder { };
+
+  sipexer = callPackage ../tools/networking/sipexer { };
+
+  sipsak = callPackage ../tools/networking/sipsak { };
+
+  sipvicious = python3Packages.callPackage ../tools/security/sipvicious { };
+
+  siril = callPackage ../applications/science/astronomy/siril { };
+
+  sisco.lv2 = callPackage ../applications/audio/sisco.lv2 { };
+
+  sixpair = callPackage ../tools/misc/sixpair { };
+
+  sketchybar = darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/sketchybar {
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit Carbon CoreAudio CoreWLAN CoreVideo DisplayServices IOKit MediaRemote SkyLight;
+  };
+
+  sketchybar-app-font = callPackage ../data/fonts/sketchybar-app-font { };
+
+  skippy-xd = callPackage ../tools/X11/skippy-xd { };
+
+  sks = callPackage ../servers/sks {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_12;
+  };
+
+  skydns = callPackage ../servers/skydns { };
+
+  sing-box = callPackage ../tools/networking/sing-box { };
+
+  sing-geosite = callPackage ../data/misc/sing-geosite { };
+
+  sing-geoip = callPackage ../data/misc/sing-geoip { };
+
+  sipcalc = callPackage ../tools/networking/sipcalc { };
+
+  skribilo = callPackage ../tools/typesetting/skribilo { };
+
+  skytemple = callPackage ../applications/misc/skytemple { };
+
+  sleuthkit = callPackage ../tools/system/sleuthkit { };
+
+  slides = callPackage ../applications/misc/slides { };
+
+  slippy = callPackage ../applications/misc/slippy { };
+
+  slirp4netns = callPackage ../tools/networking/slirp4netns { };
+
+  slowlorust = callPackage ../tools/networking/slowlorust {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  slsa-verifier = callPackage ../tools/security/slsa-verifier { };
+
+  slsnif = callPackage ../tools/misc/slsnif { };
+
+  slstatus = callPackage ../applications/misc/slstatus {
+    conf = config.slstatus.conf or null;
+  };
+
+  smartdns = callPackage ../tools/networking/smartdns { };
+
+  smartmontools = callPackage ../tools/system/smartmontools {
+    inherit (darwin.apple_sdk.frameworks) IOKit ApplicationServices;
+  };
+
+  smarty3 = callPackage ../development/libraries/smarty3 { };
+  smarty3-i18n = callPackage ../development/libraries/smarty3-i18n { };
+
+  smbnetfs = callPackage ../tools/filesystems/smbnetfs { };
+
+  smenu = callPackage ../tools/misc/smenu { };
+
+  boost-sml = callPackage ../development/libraries/boost-ext/boost-sml { };
+
+  smu = callPackage ../tools/text/smu { };
+
+  smug = callPackage ../tools/misc/smug { };
+
+  smpq = callPackage ../applications/misc/smpq { };
+
+  sn0int = callPackage ../tools/security/sn0int { };
+
+  snabb = callPackage ../tools/networking/snabb { };
+
+  snallygaster = callPackage ../tools/security/snallygaster { };
+
+  snapcast = darwin.apple_sdk_11_0.callPackage ../applications/audio/snapcast {
+    inherit (darwin.apple_sdk_11_0.frameworks) IOKit AudioToolbox;
+    pulseaudioSupport = config.pulseaudio or stdenv.isLinux;
+  };
+
+  snapdragon-profiler = callPackage ../tools/graphics/snapdragon-profiler { };
+
+  snet = callPackage ../tools/networking/snet { };
+
+  sng = callPackage ../tools/graphics/sng { };
+
+  snmpcheck = callPackage ../tools/networking/snmpcheck { };
+
+  sniffglue = callPackage ../tools/networking/sniffglue { };
+
+  snobol4 = callPackage ../development/interpreters/snobol4 { };
+
+  snort = callPackage ../applications/networking/ids/snort { };
+
+  so = callPackage ../development/tools/so {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  soapui = callPackage ../applications/networking/soapui {
+    jdk = if stdenv.isDarwin
+      then (jdk11.override { enableJavaFX = true; })
+      else jdk11;
+  };
+
+  sockdump = callPackage ../tools/networking/sockdump { };
+
+  spglib = callPackage ../development/libraries/spglib {
+    inherit (llvmPackages) openmp;
+  };
+
+  spicy = callPackage ../development/tools/spicy { };
+
+  spire = callPackage ../tools/security/spire { };
+  # to match naming of other package repositories
+  spire-agent = spire.agent;
+  spire-server = spire.server;
+
+  spoof-mac = python3Packages.callPackage ../tools/networking/spoof-mac { };
+
+  ssh-askpass-fullscreen = callPackage ../tools/networking/ssh-askpass-fullscreen { };
+
+  sshed = callPackage ../tools/networking/sshed { };
+
+  sshguard = callPackage ../tools/security/sshguard { };
+
+  sshping = callPackage ../tools/networking/sshping { };
+
+  ssh-chat = callPackage ../applications/networking/instant-messengers/ssh-chat { };
+
+  ssh-to-age = callPackage ../tools/security/ssh-to-age { };
+
+  ssh-to-pgp = callPackage ../tools/security/ssh-to-pgp { };
+
+  suricata = callPackage ../applications/networking/ids/suricata {
+    python = python3;
+    libbpf = libbpf_0;
+  };
+
+  sof-firmware = callPackage ../os-specific/linux/firmware/sof-firmware { };
+
+  softhsm = callPackage ../tools/security/softhsm {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  sonar-scanner-cli = callPackage ../tools/security/sonar-scanner-cli { };
+
+  snapshot = callPackage ../applications/graphics/snapshot { };
+
+  solvespace = callPackage ../applications/graphics/solvespace { };
+
+  sonarr = callPackage ../servers/sonarr { };
+
+  sonata = callPackage ../applications/audio/sonata { };
+
+  sony-headphones-client = callPackage ../applications/audio/sony-headphones-client { };
+
+  soundconverter = callPackage ../applications/audio/soundconverter { };
+
+  soundkonverter = libsForQt5.soundkonverter;
+
+  soundwireserver = callPackage ../applications/audio/soundwireserver { };
+
+  sozu = callPackage ../servers/sozu { };
+
+  spacer = callPackage ../tools/misc/spacer { };
+
+  sparrow-unwrapped = callPackage ../applications/blockchains/sparrow {
+    openimajgrabber = callPackage ../applications/blockchains/sparrow/openimajgrabber.nix {};
+    openjdk = openjdk.override { enableJavaFX = true; };
+  };
+
+  sparrow = callPackage ../applications/blockchains/sparrow/fhsenv.nix { };
+
+  sparsehash = callPackage ../development/libraries/sparsehash { };
+
+  spectre-meltdown-checker = callPackage ../tools/security/spectre-meltdown-checker { };
+
+  spiped = callPackage ../tools/networking/spiped { };
+
+  sqlite3-to-mysql = callPackage ../tools/misc/sqlite3-to-mysql { };
+
+  sqls = callPackage ../applications/misc/sqls { };
+
+  stdman = callPackage ../data/documentation/stdman { };
+
+  stderred = callPackage ../tools/misc/stderred { };
+
+  steck = callPackage ../servers/pinnwand/steck.nix { };
+
+  stenc = callPackage ../tools/backup/stenc { };
+
+  stm32loader = with python3Packages; toPythonApplication stm32loader;
+
+  storcli = callPackage ../tools/misc/storcli { };
+
+  stremio = qt5.callPackage ../applications/video/stremio { };
+
+  sunwait = callPackage ../applications/misc/sunwait { };
+
+  surface-control = callPackage ../applications/misc/surface-control { };
+
+  syntex = callPackage ../tools/graphics/syntex { };
+
+  synapse-admin = callPackage ../tools/admin/synapse-admin { };
+
+  sl = callPackage ../tools/misc/sl { };
+
+  socat = callPackage ../tools/networking/socat { };
+
+  sockperf = callPackage ../tools/networking/sockperf { };
+
+  softnet = callPackage ../tools/networking/softnet { };
+
+  solaar = callPackage ../applications/misc/solaar { };
+
+  solanum = callPackage ../servers/irc/solanum {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  solc-select = with python3Packages; toPythonApplication solc-select;
+
+  sourceHighlight = callPackage ../tools/text/source-highlight { };
+
+  somebar = callPackage ../applications/misc/somebar { };
+
+  spacebar = callPackage ../os-specific/darwin/spacebar {
+    inherit (darwin.apple_sdk.frameworks)
+      Carbon Cocoa ScriptingBridge SkyLight;
+  };
+
+  speech-denoiser = callPackage ../applications/audio/speech-denoiser { };
+
+  splot = haskell.lib.compose.justStaticExecutables haskellPackages.splot;
+
+  spotdl = callPackage ../tools/audio/spotdl { };
+
+  squashfsTools = callPackage ../tools/filesystems/squashfs { };
+
+  squashfs-tools-ng = darwin.apple_sdk_11_0.callPackage ../tools/filesystems/squashfs-tools-ng { };
+
+  squashfuse = callPackage ../tools/filesystems/squashfuse { };
+
+  srt-live-server = callPackage ../applications/video/srt-live-server { };
+
+  srt-to-vtt-cl = callPackage ../tools/cd-dvd/srt-to-vtt-cl { };
+
+  srtrelay = callPackage ../applications/video/srtrelay { };
+
+  srsran = callPackage ../applications/radio/srsran {  };
+
+  sourcehut = callPackage ../applications/version-management/sourcehut { };
+
+  sshfs-fuse = callPackage ../tools/filesystems/sshfs-fuse { };
+  sshfs = sshfs-fuse; # added 2017-08-14
+
+  sshlatex = callPackage ../tools/typesetting/sshlatex { };
+
+  sshuttle = callPackage ../tools/security/sshuttle { };
+
+  inherit (callPackages ../tools/misc/sshx { })
+    sshx
+    sshx-server;
+
+  ssldump = callPackage ../tools/networking/ssldump { };
+
+  sslsplit = callPackage ../tools/networking/sslsplit { };
+
+  sstp = callPackage ../tools/networking/sstp { };
+
+  strip-nondeterminism = perlPackages.strip-nondeterminism;
+
+  structorizer = callPackage ../applications/graphics/structorizer { };
+
+  su-exec = callPackage ../tools/security/su-exec { };
+
+  subberthehut = callPackage ../tools/misc/subberthehut { };
+
+  subedit = callPackage ../tools/text/subedit { };
+
+  subsurface = libsForQt5.callPackage ../applications/misc/subsurface { };
+
+  sudo = callPackage ../tools/security/sudo { };
+
+  sudo-rs = callPackage ../tools/security/sudo-rs { };
+
+  suidChroot = callPackage ../tools/system/suid-chroot { };
+
+  sundtek = callPackage ../misc/drivers/sundtek { };
+
+  sunxi-tools = callPackage ../development/tools/sunxi-tools { };
+
+  sumorobot-manager = python3Packages.callPackage ../applications/science/robotics/sumorobot-manager { };
+
+  supertag = callPackage ../tools/filesystems/supertag { };
+
+  supertux-editor = callPackage ../applications/editors/supertux-editor { };
+
+  svgbob = callPackage ../tools/graphics/svgbob { };
+
+  svgcleaner = callPackage ../tools/graphics/svgcleaner { };
+
+  svu = callPackage ../tools/misc/svu { };
+
+  ssb = callPackage ../tools/security/ssb { };
+
+  ssb-patchwork = callPackage ../applications/networking/ssb-patchwork { };
+
+  ssdeep = callPackage ../tools/security/ssdeep { };
+
+  ssh-ident = callPackage ../tools/networking/ssh-ident { };
+
+  sshpass = callPackage ../tools/networking/sshpass { };
+
+  sslscan = callPackage ../tools/security/sslscan {
+    openssl = openssl.override { withZlib = true; };
+  };
+
+  sslmate = callPackage ../development/tools/sslmate { };
+
+  sslmate-agent = callPackage ../development/tools/sslmate-agent { };
+
+  sshocker = callPackage ../tools/security/sshocker { };
+
+  sshoogr = callPackage ../tools/networking/sshoogr { };
+
+  ssocr = callPackage ../applications/misc/ssocr { };
+
+  sss-cli = callPackage ../tools/security/sss-cli { };
+
+  ssss = callPackage ../tools/security/ssss { };
+
+  stabber = callPackage ../misc/stabber { };
+
+  stacer = libsForQt5.callPackage ../tools/system/stacer { };
+
+  starcharts = callPackage ../servers/misc/starcharts { };
+
+  staticjinja = with python3.pkgs; toPythonApplication staticjinja;
+
+  stevenblack-blocklist  = callPackage ../tools/networking/stevenblack-blocklist { };
+
+  stress = callPackage ../tools/system/stress { };
+
+  stress-ng = callPackage ../tools/system/stress-ng { };
+
+  stressapptest = callPackage ../tools/system/stressapptest { };
+
+  stoken = callPackage ../tools/security/stoken (config.stoken or {});
+
+  storeBackup = callPackage ../tools/backup/store-backup { };
+
+  stow = callPackage ../tools/misc/stow { };
+  xstow = callPackage ../tools/misc/xstow { };
+
+  stun = callPackage ../tools/networking/stun { };
+
+  stunnel = callPackage ../tools/networking/stunnel { };
+
+  stuntman = callPackage ../tools/networking/stuntman { };
+
+  stutter = haskell.lib.compose.justStaticExecutables haskellPackages.stutter;
+
+  strongswan    = callPackage ../tools/networking/strongswan { };
+  strongswanTNC = strongswan.override { enableTNC = true; };
+  strongswanNM  = strongswan.override { enableNetworkManager = true; };
+
+  stylish = callPackage ../applications/misc/stylish { };
+
+  stylish-haskell = haskell.lib.compose.justStaticExecutables haskellPackages.stylish-haskell;
+
+  su = shadow.su;
+
+  subjs = callPackage ../tools/security/subjs { };
+
+  subsonic = callPackage ../servers/misc/subsonic { };
+
+  subfinder = callPackage ../tools/networking/subfinder { };
+
+  subzerod = with python3Packages; toPythonApplication subzerod;
+
+  suckit = callPackage ../tools/networking/suckit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  surfraw = callPackage ../tools/networking/surfraw { };
+
+  swagger-cli = callPackage ../tools/networking/swagger-cli { };
+
+  swagger-codegen = callPackage ../tools/networking/swagger-codegen { };
+
+  swagger-codegen3 = callPackage ../tools/networking/swagger-codegen3 { };
+
+  swaggerhole = callPackage ../tools/security/swaggerhole { };
+
+  swapview = callPackage ../os-specific/linux/swapview { };
+
+  swc = callPackage ../development/tools/swc { };
+
+  swtpm = callPackage ../tools/security/swtpm { };
+
+  svnfs = callPackage ../tools/filesystems/svnfs { };
+
+  svtplay-dl = callPackage ../tools/misc/svtplay-dl { };
+
+  sycl-info = callPackage ../development/libraries/sycl-info { };
+
+  symengine = callPackage ../development/libraries/symengine { };
+
+  synaesthesia = callPackage ../applications/audio/synaesthesia { };
+
+  sysbench = callPackage ../development/tools/misc/sysbench { };
+
+  systemc = callPackage ../applications/science/electronics/systemc { };
+
+  system-config-printer = callPackage ../tools/misc/system-config-printer {
+    autoreconfHook = buildPackages.autoreconfHook269;
+    libxml2 = libxml2Python;
+  };
+
+  systembus-notify = callPackage ../applications/misc/systembus-notify { };
+
+  stricat = callPackage ../tools/security/stricat { };
+
+  staruml = callPackage ../tools/misc/staruml { };
+
+  stone-phaser = callPackage ../applications/audio/stone-phaser { };
+
+  systrayhelper = callPackage ../tools/misc/systrayhelper { };
+
+  syft = callPackage ../tools/admin/syft { };
+
+  Sylk = callPackage ../applications/networking/Sylk { };
+
+  privoxy = callPackage ../tools/networking/privoxy {
+    w3m = w3m-batch;
+  };
+
+  swaks = callPackage ../tools/networking/swaks { };
+
+  swiftbar = callPackage ../os-specific/darwin/swiftbar { };
+
+  swiften = callPackage ../development/libraries/swiften { };
+
+  squeekboard = callPackage ../applications/accessibility/squeekboard { };
+
+  sx = callPackage ../tools/X11/sx { };
+
+  systemdgenie = libsForQt5.callPackage ../applications/system/systemdgenie { };
+
+  t = callPackage ../tools/misc/t { };
+
+  tabnine = callPackage ../development/tools/tabnine { };
+
+  tab-rs = callPackage ../tools/misc/tab-rs {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  tagtime = callPackage ../applications/misc/tagtime { };
+
+  tailer = callPackage ../tools/misc/tailer { };
+
+  inherit (callPackages ../applications/networking/taler { })
+    taler-exchange taler-merchant;
+
+  tandoor-recipes = callPackage ../applications/misc/tandoor-recipes { };
+
+  tango = callPackage ../applications/misc/tango { };
+
+  tangram = callPackage ../applications/networking/instant-messengers/tangram { };
+
+  t1utils = callPackage ../tools/misc/t1utils { };
+
+  talkfilters = callPackage ../misc/talkfilters { };
+
+  znapzend = callPackage ../tools/backup/znapzend { };
+
+  tar2ext4 = callPackage ../tools/filesystems/tar2ext4 { };
+
+  targetcli = callPackage ../os-specific/linux/targetcli { };
+
+  target-isns = callPackage ../os-specific/linux/target-isns { };
+
+  tarlz = callPackage ../tools/archivers/tarlz { };
+
+  tarsnap = callPackage ../tools/backup/tarsnap { };
+
+  tarsnapper = callPackage ../tools/backup/tarsnapper { };
+
+  tarantool = callPackage ../servers/tarantool { };
+
+  tarssh = callPackage ../servers/tarssh { };
+
+  tartan = callPackage ../development/tools/analysis/tartan { };
+
+  tartube = callPackage ../applications/video/tartube { };
+
+  tartube-yt-dlp = callPackage ../applications/video/tartube {
+    youtube-dl = yt-dlp;
+  };
+
+  tayga = callPackage ../tools/networking/tayga { };
+
+  tcb = callPackage ../tools/security/tcb { };
+
+  tcpcrypt = callPackage ../tools/security/tcpcrypt { };
+
+  tcptraceroute = callPackage ../tools/networking/tcptraceroute { };
+
+  tboot = callPackage ../tools/security/tboot { };
+
+  tagutil = callPackage ../applications/audio/tagutil { };
+
+  tcpdump = callPackage ../tools/networking/tcpdump { };
+
+  tcpflow = callPackage ../tools/networking/tcpflow { };
+
+  tcpkali = callPackage ../applications/networking/tcpkali { };
+
+  tcpreplay = callPackage ../tools/networking/tcpreplay {
+    inherit (darwin.apple_sdk.frameworks) Carbon CoreServices;
+  };
+
+  tdns-cli = callPackage ../tools/networking/tdns-cli { };
+
+  tea = callPackage ../tools/misc/tea { };
+
+  teavpn2 = callPackage ../tools/networking/teavpn2 { };
+
+  inherit (nodePackages) teck-programmer;
+
+  ted = callPackage ../tools/typesetting/ted { };
+
+  teamviewer = libsForQt5.callPackage ../applications/networking/remote/teamviewer { };
+
+  teehee = callPackage ../applications/editors/teehee { };
+
+  teip = callPackage ../tools/text/teip { };
+
+  telegraf = callPackage ../servers/monitoring/telegraf { };
+
+  teleport_12 = callPackage ../servers/teleport/12 {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
+  };
+  teleport_13 = callPackage ../servers/teleport/13 {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
+  };
+  teleport_14 = callPackage ../servers/teleport/14 {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
+  };
+  teleport = teleport_14;
+
+  telepresence = callPackage ../tools/networking/telepresence {
+    pythonPackages = python3Packages;
+  };
+
+  telepresence2 = callPackage ../tools/networking/telepresence2 { };
+
+  teler = callPackage ../tools/security/teler { };
+
+  telescope = callPackage ../applications/networking/browsers/telescope { };
+
+  termcolor = callPackage ../development/libraries/termcolor { };
+
+  termscp = callPackage ../tools/networking/termscp {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation Security;
+  };
+
+  termius = callPackage ../applications/networking/termius { };
+
+  termplay = callPackage ../tools/misc/termplay { };
+
+  tetrd = callPackage ../applications/networking/tetrd { };
+
+  tewisay = callPackage ../tools/misc/tewisay { };
+
+  texmacs = libsForQt5.callPackage ../applications/editors/texmacs {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    extraFonts = true;
+  };
+
+  texmaker = libsForQt5.callPackage ../applications/editors/texmaker { };
+
+  texstudio = qt6Packages.callPackage ../applications/editors/texstudio { };
+
+  textadept = libsForQt5.callPackage ../applications/editors/textadept { };
+
+  texworks = qt6Packages.callPackage ../applications/editors/texworks { };
+
+  tf2pulumi = callPackage ../development/tools/tf2pulumi { };
+
+  thc-hydra = callPackage ../tools/security/thc-hydra { };
+
+  thc-ipv6 = callPackage ../tools/security/thc-ipv6 { };
+
+  thedesk = callPackage ../applications/misc/thedesk { };
+
+  theharvester = callPackage ../tools/security/theharvester { };
+
+  thelounge = callPackage ../applications/networking/irc/thelounge { };
+
+  theLoungePlugins = with lib; let
+    pkgs = filterAttrs (name: _: hasPrefix "thelounge-" name) nodePackages;
+    getPackagesWithPrefix = prefix: mapAttrs' (name: pkg: nameValuePair (removePrefix ("thelounge-" + prefix + "-") name) pkg)
+      (filterAttrs (name: _: hasPrefix ("thelounge-" + prefix + "-") name) pkgs);
+  in
+  recurseIntoAttrs {
+    plugins = recurseIntoAttrs (getPackagesWithPrefix "plugin");
+    themes = recurseIntoAttrs (getPackagesWithPrefix "theme");
+  };
+
+  thefuck = python3Packages.callPackage ../tools/misc/thefuck { };
+
+  theme-sh = callPackage ../tools/misc/theme-sh { };
+
+  thiefmd = callPackage ../applications/editors/thiefmd { };
+
+  thin-provisioning-tools = callPackage ../tools/misc/thin-provisioning-tools {  };
+
+  thinkpad-scripts = python3.pkgs.callPackage ../tools/misc/thinkpad-scripts { };
+
+  threatest = callPackage ../tools/security/threatest {  };
+
+  threema-desktop = callPackage ../applications/networking/instant-messengers/threema-desktop { };
+
+  thumbdrives = callPackage ../applications/system/thumbdrives { };
+
+  tidy-viewer = callPackage ../tools/text/tidy-viewer { };
+
+  tiled = libsForQt5.callPackage ../applications/editors/tiled { };
+
+  tiledb = callPackage ../development/libraries/tiledb { };
+
+  timemachine = callPackage ../applications/audio/timemachine { };
+
+  timelapse-deflicker = callPackage ../applications/graphics/timelapse-deflicker { };
+
+  timelens = callPackage ../applications/video/timelens { };
+
+  timetrap = callPackage ../applications/office/timetrap { };
+
+  timetagger = callPackage ../servers/timetagger { };
+
+  timetagger_cli = callPackage ../tools/misc/timetagger_cli { };
+
+  timezonemap = callPackage ../development/libraries/timezonemap { };
+
+  tzupdate = callPackage ../applications/misc/tzupdate { };
+
+  tinc = callPackage ../tools/networking/tinc { };
+
+  tie = callPackage ../development/tools/misc/tie { };
+
+  tidb = callPackage ../servers/tidb { };
+
+  tikzit = libsForQt5.callPackage ../tools/typesetting/tikzit { };
+
+  tinc_pre = callPackage ../tools/networking/tinc/pre.nix { };
+
+  tinycbor = callPackage ../development/libraries/tinycbor { };
+
+  tinyfecvpn = callPackage ../tools/networking/tinyfecvpn { };
+
+  tinyobjloader = callPackage ../development/libraries/tinyobjloader { };
+
+  tinyprog = callPackage ../development/embedded/fpga/tinyprog { };
+
+  tinyproxy = callPackage ../tools/networking/tinyproxy { };
+
+  time-decode = callPackage ../tools/misc/time-decode { };
+
+  timer = callPackage ../tools/misc/timer { };
+
+  tio = callPackage ../tools/misc/tio { };
+
+  tiv = callPackage ../applications/misc/tiv { };
+
+  tkman = callPackage ../tools/misc/tkman { };
+
+  tldr = callPackage ../tools/misc/tldr { };
+
+  tldr-hs = haskellPackages.tldr;
+
+  tlsclient = callPackage ../tools/admin/tlsclient { };
+
+  tlsx = callPackage ../tools/security/tlsx { };
+
+  tmate = callPackage ../tools/misc/tmate { };
+
+  tmate-ssh-server = callPackage ../servers/tmate-ssh-server { };
+
+  tml = callPackage ../tools/text/tml { };
+
+  tmpwatch = callPackage ../tools/misc/tmpwatch  { };
+
+  tmpmail = callPackage ../applications/networking/tmpmail { };
+
+  tmux = callPackage ../tools/misc/tmux { };
+
+  tmux-cssh = callPackage ../tools/misc/tmux-cssh { };
+
+  tmuxp = callPackage ../tools/misc/tmuxp { };
+
+  tmuxinator = callPackage ../tools/misc/tmuxinator { };
+
+  tmux-mem-cpu-load = callPackage ../tools/misc/tmux-mem-cpu-load { };
+
+  tmux-sessionizer = callPackage ../tools/misc/tmux-sessionizer {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tmux-xpanes = callPackage ../tools/misc/tmux-xpanes { };
+
+  tmuxPlugins = recurseIntoAttrs (callPackage ../misc/tmux-plugins {
+    pkgs = pkgs.__splicedPackages;
+  });
+
+  tmsu = callPackage ../tools/filesystems/tmsu { };
+
+  tncattach = callPackage ../applications/radio/tncattach { };
+
+  to-html = callPackage ../tools/text/to-html { };
+
+  toilet = callPackage ../tools/misc/toilet { };
+
+  tokei = callPackage ../development/tools/misc/tokei {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tokio-console = callPackage ../development/tools/tokio-console { };
+
+  toml2json = callPackage ../development/tools/toml2json { };
+
+  toml2nix = callPackage ../development/tools/toml2nix { };
+
+  topfew = callPackage ../tools/text/topfew { };
+
+  topfew-rs = callPackage ../tools/text/topfew-rs { };
+
+  topgrade = callPackage ../tools/misc/topgrade {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation;
+  };
+
+  topiary = callPackage ../development/tools/misc/topiary { };
+
+  todo = callPackage ../tools/misc/todo { };
+
+  toolbox = callPackage ../applications/virtualization/toolbox { };
+
+  tor = callPackage ../tools/security/tor { };
+
+  tor-browser = callPackage ../applications/networking/browsers/tor-browser { };
+
+  touchegg = callPackage ../tools/inputmethods/touchegg { };
+
+  torrent7z = callPackage ../tools/archivers/torrent7z { };
+
+  torsocks = callPackage ../tools/security/tor/torsocks.nix { };
+
+  toss = callPackage ../tools/networking/toss { };
+
+  tox-node = callPackage ../tools/networking/tox-node { };
+
+  toxvpn = callPackage ../tools/networking/toxvpn { };
+
+  toybox = darwin.apple_sdk_11_0.callPackage ../tools/misc/toybox { };
+
+  trackma = callPackage ../tools/misc/trackma { };
+
+  trackma-curses = trackma.override { withCurses = true; };
+
+  trackma-gtk = trackma.override { withGTK = true; };
+
+  trackma-qt = trackma.override { withQT = true; };
+
+  tran = callPackage ../tools/networking/tran { };
+
+  trayscale = callPackage ../applications/networking/trayscale { };
+
+  tpmmanager = libsForQt5.callPackage ../applications/misc/tpmmanager { };
+
+  tpm-quote-tools = callPackage ../tools/security/tpm-quote-tools { };
+
+  tpm-tools = callPackage ../tools/security/tpm-tools { };
+
+  tpm-luks = callPackage ../tools/security/tpm-luks { };
+
+  tpm2-abrmd = callPackage ../tools/security/tpm2-abrmd { };
+
+  tpm2-pkcs11 = callPackage ../misc/tpm2-pkcs11 { };
+
+  tpm2-tools = callPackage ../tools/security/tpm2-tools { };
+
+  trezor-udev-rules = callPackage ../os-specific/linux/trezor-udev-rules { };
+
+  trezorctl = with python3Packages; toPythonApplication trezor;
+
+  trezord = callPackage ../servers/trezord {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+    buildGoModule = buildGo120Module;
+  };
+
+  trezor_agent = with python3Packages; toPythonApplication trezor_agent;
+
+  trezor-suite = callPackage ../applications/blockchains/trezor-suite { };
+
+  trunk = callPackage ../development/tools/trunk {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  trunk-io = callPackage ../development/tools/trunk-io { };
+
+  trunk-ng = callPackage ../by-name/tr/trunk-ng/package.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  tthsum = callPackage ../applications/misc/tthsum { };
+
+  ttdl = callPackage ../applications/misc/ttdl { };
+
+  ttp = with python3.pkgs; toPythonApplication ttp;
+
+  trace-cmd = callPackage ../os-specific/linux/trace-cmd { };
+
+  kernelshark = libsForQt5.callPackage ../os-specific/linux/trace-cmd/kernelshark.nix { };
+
+  traceroute = callPackage ../tools/networking/traceroute { };
+
+  tracebox = callPackage ../tools/networking/tracebox { stdenv = gcc10StdenvCompat; };
+
+  tracee = callPackage ../tools/security/tracee {
+    clang = clang_14;
+  };
+
+  tracefilegen = callPackage ../development/tools/analysis/garcosim/tracefilegen { };
+
+  tracefilesim = callPackage ../development/tools/analysis/garcosim/tracefilesim { };
+
+  transifex-client = python39.pkgs.callPackage ../tools/text/transifex-client { };
+
+  transifex-cli = callPackage ../applications/misc/transifex-cli { };
+
+  translatelocally = callPackage ../applications/misc/translatelocally { };
+
+  translate-shell = callPackage ../applications/misc/translate-shell { };
+
+  translatepy = with python3.pkgs; toPythonApplication translatepy;
+
+  trash-cli = callPackage ../tools/misc/trash-cli { };
+
+  trashy = callPackage ../tools/misc/trashy { };
+
+  trdl-client = callPackage ../tools/misc/trdl-client { };
+
+  trenchbroom = libsForQt5.callPackage ../applications/misc/trenchbroom { };
+
+  trickle = callPackage ../tools/networking/trickle { };
+
+  node-manta = callPackage ../tools/admin/manta { };
+
+  triton = callPackage ../tools/admin/triton { };
+
+  triggerhappy = callPackage ../tools/inputmethods/triggerhappy { };
+
+  inherit (callPackage ../applications/office/trilium {})
+    trilium-desktop
+    trilium-server
+    ;
+
+  trippy = callPackage ../tools/networking/trippy { };
+
+  trousers = callPackage ../tools/security/trousers { };
+
+  trueseeing = callPackage ../tools/security/trueseeing { };
+
+  trx = callPackage ../tools/audio/trx { };
+
+  tryton = callPackage ../applications/office/tryton { };
+
+  trytond = with python3Packages; toPythonApplication trytond;
+
+  tun2socks = callPackage ../tools/networking/tun2socks { };
+
+  tuntox = callPackage ../tools/networking/tuntox { };
+
+  tunwg = callPackage ../tools/networking/tunwg { };
+
+  ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
+
+  ttfautohint = libsForQt5.callPackage ../tools/misc/ttfautohint {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+  ttfautohint-nox = ttfautohint.override { enableGUI = false; };
+
+  tty-clock = callPackage ../tools/misc/tty-clock { };
+
+  tty-share = callPackage ../applications/misc/tty-share { };
+
+  ttyplot = callPackage ../tools/misc/ttyplot { };
+
+  ttygif = callPackage ../tools/misc/ttygif { };
+
+  ttylog = callPackage ../tools/misc/ttylog { };
+
+  twm = callPackage ../tools/misc/twm {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  txtpbfmt = callPackage ../development/tools/txtpbfmt { };
+
+  ipbt = callPackage ../tools/misc/ipbt { };
+
+  tuckr = callPackage ../applications/misc/tuckr { };
+
+  tuhi = callPackage ../applications/misc/tuhi { };
+
+  tui-journal = callPackage ../applications/misc/tui-journal { };
+
+  tuir = callPackage ../applications/misc/tuir { };
+
+  tuifeed = callPackage ../applications/networking/feedreaders/tuifeed {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  russ = callPackage ../applications/networking/feedreaders/russ { };
+
+  tunnelto = callPackage ../tools/networking/tunnelto {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tuptime = callPackage ../tools/system/tuptime { };
+
+  turbo = callPackage ../tools/misc/turbo {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security IOKit CoreServices CoreFoundation;
+  };
+
+  turses = callPackage ../applications/networking/instant-messengers/turses { };
+
+  tutanota-desktop = callPackage ../applications/networking/mailreaders/tutanota-desktop { };
+
+  tv = callPackage ../tools/text/tv { };
+
+  tvm = callPackage ../development/compilers/tvm { };
+
+  oysttyer = callPackage ../applications/networking/instant-messengers/oysttyer { };
+
+  ttfb = callPackage ../development/tools/ttfb { };
+
+  twilight = callPackage ../tools/graphics/twilight {
+    libX11 = xorg.libX11;
+  };
+
+  twitch-chat-downloader = python3Packages.callPackage ../applications/misc/twitch-chat-downloader { };
+
+  twitch-dl = callPackage ../tools/misc/twitch-dl { };
+
+  twitterBootstrap = callPackage ../development/web/twitter-bootstrap { };
+
+  twspace-crawler = callPackage ../tools/misc/twspace-crawler { };
+
+  twspace-dl = callPackage ../tools/misc/twspace-dl { };
+
+  twtxt = python3Packages.callPackage ../applications/networking/twtxt { };
+
+  twurl = callPackage ../tools/misc/twurl { };
+
+  txt2man = callPackage ../tools/misc/txt2man { };
+
+  txt2tags = callPackage ../tools/text/txt2tags { };
+
+  txtw = callPackage ../tools/misc/txtw { };
+
+  tydra = callPackage ../tools/misc/tydra { };
+
+  typesense = callPackage ../servers/search/typesense { };
+
+  typos = callPackage ../development/tools/typos { };
+
+  typstfmt = callPackage ../tools/typesetting/typstfmt { };
+
+  typst-live = callPackage ../tools/typesetting/typst-live { };
+
+  tz = callPackage ../tools/misc/tz { };
+
+  u9fs = callPackage ../servers/u9fs { };
+
+  ua = callPackage ../tools/networking/ua { };
+
+  uair = callPackage ../tools/misc/uair { };
+
+  ubidump = python3Packages.callPackage ../tools/filesystems/ubidump { };
+
+  ubi_reader = callPackage ../tools/filesystems/ubi_reader { };
+
+  ubpm = libsForQt5.callPackage ../applications/misc/ubpm { };
+
+  ubridge = callPackage ../tools/networking/ubridge { };
+
+  ubertooth = callPackage ../applications/radio/ubertooth { };
+
+  ucarp = callPackage ../servers/ucarp { };
+
+  ucl = callPackage ../development/libraries/ucl { };
+
+  ucspi-tcp = callPackage ../tools/networking/ucspi-tcp { };
+
+  udftools = callPackage ../tools/filesystems/udftools { };
+
+  udp2raw = callPackage ../tools/networking/udp2raw { };
+
+  udpreplay = callPackage ../tools/networking/udpreplay { };
+
+  udpt = callPackage ../servers/udpt { };
+
+  udptunnel = callPackage ../tools/networking/udptunnel { };
+
+  udpx = callPackage ../tools/security/udpx { };
+
+  uftrace = callPackage ../development/tools/uftrace { };
+
+  uftpd = callPackage ../servers/ftp/uftpd {};
+
+  uget = callPackage ../tools/networking/uget { };
+
+  uget-integrator = callPackage ../tools/networking/uget-integrator { };
+
+  ugrep = callPackage ../tools/text/ugrep { };
+
+  ugs = callPackage ../tools/misc/ugs { };
+
+  uhk-agent = callPackage ../os-specific/linux/uhk-agent { };
+
+  uhk-udev-rules = callPackage ../os-specific/linux/uhk-udev-rules { };
+
+  uif2iso = callPackage ../tools/cd-dvd/uif2iso { };
+
+  uivonim = callPackage ../applications/editors/uivonim { };
+
+  ulid = callPackage ../tools/misc/ulid { };
+
+  umlet = callPackage ../tools/misc/umlet { };
+
+  unetbootin = libsForQt5.callPackage ../tools/cd-dvd/unetbootin { };
+
+  unfs3 = callPackage ../servers/unfs3 { };
+
+  unfurl = callPackage ../tools/text/unfurl { };
+
+  unixbench = callPackage ../development/tools/misc/unixbench { };
+
+  unoconv = callPackage ../tools/text/unoconv { };
+
+  unrtf = callPackage ../tools/text/unrtf { };
+
+  unrpa = with python3Packages; toPythonApplication unrpa;
+
+  untex = callPackage ../tools/text/untex { };
+
+  untrunc-anthwlock = callPackage ../tools/video/untrunc-anthwlock { };
+
+  unzrip = callPackage ../tools/compression/unzrip { };
+
+  up = callPackage ../tools/misc/up { };
+
+  upbound = callPackage ../development/tools/upbound { };
+
+  upterm = callPackage ../tools/misc/upterm { };
+
+  upx = callPackage ../tools/compression/upx { };
+
+  uq = callPackage ../misc/uq { };
+
+  uqmi = callPackage ../tools/networking/uqmi { };
+
+  urdfdom = callPackage ../development/libraries/urdfdom { };
+
+  urdfdom-headers = callPackage ../development/libraries/urdfdom-headers { };
+
+  urlencode = callPackage ../tools/misc/urlencode {};
+
+  uriparser = callPackage ../development/libraries/uriparser { };
+
+  urlscan = callPackage ../applications/misc/urlscan { };
+
+  urlview = callPackage ../applications/misc/urlview { };
+
+  url-parser = callPackage ../tools/misc/url-parser { };
+
+  urn-timer = callPackage ../tools/misc/urn-timer { };
+
+  ursadb = callPackage ../servers/ursadb { };
+
+  usbmuxd = callPackage ../tools/misc/usbmuxd { };
+
+  usbmuxd2 = callPackage ../tools/misc/usbmuxd2 { };
+
+  usort = with python3Packages; toPythonApplication usort;
+
+  ustreamer = callPackage ../applications/video/ustreamer { };
+
+  usync = callPackage ../applications/misc/usync { };
+
+  uwc = callPackage ../tools/text/uwc { };
+
+  uwsgi = callPackage ../servers/uwsgi { };
+
+  uwufetch = callPackage ../tools/misc/uwufetch { };
+
+  v2ray = callPackage ../tools/networking/v2ray { };
+
+  v2raya = callPackage ../tools/networking/v2raya { };
+
+  v2ray-domain-list-community = callPackage ../data/misc/v2ray-domain-list-community { };
+
+  v2ray-geoip = callPackage ../data/misc/v2ray-geoip { };
+
+  vacuum = libsForQt5.callPackage ../applications/networking/instant-messengers/vacuum {};
+
+  validator-nu = callPackage ../tools/text/validator-nu { };
+
+  vampire = callPackage ../applications/science/logic/vampire { };
+
+  variety = callPackage ../applications/misc/variety { };
+
+  vdmfec = callPackage ../applications/backup/vdmfec { };
+
+  vk-bootstrap = callPackage ../development/libraries/vk-bootstrap { };
+
+  vk-cli = callPackage ../applications/networking/instant-messengers/vk-cli { };
+
+  vk-messenger = callPackage ../applications/networking/instant-messengers/vk-messenger { };
+
+  volatility3 = callPackage ../tools/security/volatility3 { };
+
+  vbetool = callPackage ../tools/system/vbetool { };
+
+  vcsi = callPackage ../tools/video/vcsi { };
+
+  vde2 = callPackage ../tools/networking/vde2 { };
+
+  vboot_reference = callPackage ../tools/system/vboot_reference { };
+
+  vcftools = callPackage ../applications/science/biology/vcftools { };
+
+  vcmi = libsForQt5.callPackage ../games/vcmi { };
+
+  vcsh = callPackage ../applications/version-management/vcsh { };
+
+  vcs_query = callPackage ../tools/misc/vcs_query { };
+
+  vcstool = callPackage ../development/tools/vcstool { };
+
+  vectorscan = callPackage ../development/libraries/vectorscan { };
+
+  verco = callPackage ../applications/version-management/verco { };
+
+  verilator = callPackage ../applications/science/electronics/verilator { };
+
+  verilog = callPackage ../applications/science/electronics/verilog { };
+
+  versus = callPackage ../applications/networking/versus { };
+
+  vexctl = callPackage ../tools/security/vexctl { };
+
+  vgrep = callPackage ../tools/text/vgrep { };
+
+  vhd2vl = callPackage ../applications/science/electronics/vhd2vl { };
+
+  vhdl-ls = callPackage ../development/tools/language-servers/vhdl-ls { };
+
+  video2midi = callPackage ../tools/audio/video2midi {
+    pythonPackages = python3Packages;
+  };
+
+  video-trimmer = callPackage ../applications/video/video-trimmer { };
+
+  via = callPackage ../tools/misc/via { };
+
+  vial = callPackage ../tools/misc/vial { };
+
+  viking = callPackage ../applications/misc/viking { };
+
+  vim-vint = callPackage ../development/tools/vim-vint { };
+
+  vimer = callPackage ../tools/misc/vimer { };
+
+  vimpager = callPackage ../tools/misc/vimpager { };
+  vimpager-latest = callPackage ../tools/misc/vimpager/latest.nix { };
+
+  vimwiki-markdown = python3Packages.callPackage ../tools/misc/vimwiki-markdown { };
+
+  visidata = (newScope python3Packages) ../applications/misc/visidata {
+  };
+
+  vit = callPackage ../applications/misc/vit { };
+
+  viu = callPackage ../tools/graphics/viu { };
+
+  vix = callPackage ../tools/misc/vix { };
+
+  vkbasalt = callPackage ../tools/graphics/vkbasalt {
+    vkbasalt32 = pkgsi686Linux.vkbasalt;
+  };
+
+  vkbasalt-cli = callPackage ../tools/graphics/vkbasalt-cli { };
+
+  vkmark = callPackage ../tools/graphics/vkmark { };
+
+  vncrec = callPackage ../tools/video/vncrec { };
+
+  vo-amrwbenc = callPackage ../development/libraries/vo-amrwbenc { };
+
+  vo-aacenc = callPackage ../development/libraries/vo-aacenc { };
+
+  vobcopy = callPackage ../tools/cd-dvd/vobcopy { };
+
+  vobsub2srt = callPackage ../tools/cd-dvd/vobsub2srt { };
+
+  void = callPackage ../tools/misc/void { };
+
+  volume_key = callPackage ../development/libraries/volume-key { };
+
+  vorbisgain = callPackage ../tools/misc/vorbisgain { };
+
+  vpnc = callPackage ../tools/networking/vpnc { };
+
+  vpnc-scripts = callPackage ../tools/networking/vpnc-scripts { };
+
+  vpn-slice = python3Packages.callPackage ../tools/networking/vpn-slice { };
+
+  vp = callPackage ../applications/misc/vp {
+    # Enable next line for console graphics. Note that
+    # it requires `sixel` enabled terminals such as mlterm
+    # or xterm -ti 340
+    SDL = SDL_sixel;
+  };
+
+  vtm = callPackage ../tools/misc/vtm { };
+
+  witness = callPackage ../tools/security/witness { };
+
+  openconnectPackages = callPackage ../tools/networking/openconnect { };
+
+  inherit (openconnectPackages) openconnect openconnect_openssl;
+
+  globalprotect-openconnect = libsForQt5.callPackage ../tools/networking/globalprotect-openconnect { };
+
+  ding-libs = callPackage ../tools/misc/ding-libs { };
+
+  sssd = callPackage ../os-specific/linux/sssd {
+    inherit (perlPackages) Po4a;
+  };
+
+  sentry-cli = callPackage ../development/tools/sentry-cli {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  sentry-native = callPackage ../development/libraries/sentry-native { };
+
+  twilio-cli = callPackage ../development/tools/twilio-cli { };
+
+  waifu2x-converter-cpp = callPackage ../tools/graphics/waifu2x-converter-cpp {
+    inherit (darwin.apple_sdk.frameworks) OpenCL;
+  };
+
+  wakapi = callPackage ../tools/misc/wakapi { };
+
+  wakatime = callPackage ../tools/misc/wakatime { };
+
+  wambo = callPackage ../development/tools/wambo { };
+
+  weather = callPackage ../applications/misc/weather { };
+
+  wego = callPackage ../applications/misc/wego { };
+
+  wal_e = callPackage ../tools/backup/wal-e { };
+
+  wander = callPackage ../tools/admin/wander { };
+
+  watchexec = callPackage ../tools/misc/watchexec {
+    inherit (darwin.apple_sdk.frameworks) Cocoa AppKit;
+  };
+
+  watchlog = callPackage ../tools/misc/watchlog { };
+
+  watchman = callPackage ../development/tools/watchman {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
+  };
+
+  wavefunctioncollapse = callPackage ../tools/graphics/wavefunctioncollapse { };
+
+  wbox = callPackage ../tools/networking/wbox { };
+
+  webassemblyjs-cli = nodePackages."@webassemblyjs/cli-1.11.1";
+  webassemblyjs-repl = nodePackages."@webassemblyjs/repl-1.11.1";
+  wasm-strip = nodePackages."@webassemblyjs/wasm-strip";
+  wasm-text-gen = nodePackages."@webassemblyjs/wasm-text-gen-1.11.1";
+  wast-refmt = nodePackages."@webassemblyjs/wast-refmt-1.11.1";
+
+  wasm-bindgen-cli = callPackage ../development/tools/wasm-bindgen-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+    nodejs = nodejs_latest;
+  };
+
+  wasm-tools = callPackage ../tools/misc/wasm-tools { };
+
+  wasmedge = darwin.apple_sdk_11_0.callPackage ../development/tools/wasmedge {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation;
+  };
+
+  wasmi = callPackage ../development/tools/wasmi { };
+
+  wasmserve = callPackage ../development/tools/wasmserve {};
+
+  welkin = callPackage ../tools/graphics/welkin { };
+
+  wemux = callPackage ../tools/misc/wemux { };
+
+  wf-recorder = callPackage ../applications/video/wf-recorder { };
+
+  whatip = callPackage ../tools/networking/whatip { };
+
+  whatsapp-chat-exporter = callPackage ../tools/misc/whatsapp-chat-exporter { };
+
+  whatweb = callPackage ../tools/security/whatweb { };
+
+  whipper = callPackage ../applications/audio/whipper { };
+
+  whitebophir = callPackage ../servers/web-apps/whitebophir { };
+
+  whois = callPackage ../tools/networking/whois { };
+
+  wifish = callPackage ../tools/networking/wifish { };
+
+  wifite2 = callPackage ../tools/networking/wifite2 { };
+
+  wimboot = callPackage ../tools/misc/wimboot { };
+
+  wit-bindgen = callPackage ../tools/misc/wit-bindgen { };
+
+  wire = callPackage ../development/tools/wire { };
+
+  wireguard-tools = callPackage ../tools/networking/wireguard-tools { };
+
+  wireguard-vanity-address = callPackage ../tools/networking/wireguard-vanity-address {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  wireproxy = callPackage ../tools/networking/wireproxy { };
+
+  wiringpi = callPackage ../os-specific/linux/wiringpi { };
+
+  wg-friendly-peer-names = callPackage ../tools/networking/wg-friendly-peer-names { };
+
+  wg-netmanager = callPackage ../tools/networking/wg-netmanager {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  wgautomesh = callPackage ../tools/networking/wgautomesh { };
+
+  woff2 = callPackage ../development/web/woff2 { };
+
+  woodpecker-agent = callPackage ../development/tools/continuous-integration/woodpecker/agent.nix { };
+
+  woodpecker-cli = callPackage ../development/tools/continuous-integration/woodpecker/cli.nix { };
+
+  woodpecker-pipeline-transform = callPackage ../development/tools/continuous-integration/woodpecker-pipeline-transform { };
+
+  woodpecker-plugin-git = callPackage ../development/tools/continuous-integration/woodpecker-plugin-git { };
+
+  woodpecker-server = callPackage ../development/tools/continuous-integration/woodpecker/server.nix {
+    woodpecker-frontend = callPackage ../development/tools/continuous-integration/woodpecker/frontend.nix { };
+  };
+
+  woof = callPackage ../tools/misc/woof { };
+
+  wootility = callPackage ../tools/misc/wootility { };
+
+  wormhole-william = callPackage ../tools/networking/wormhole-william { };
+
+  wpscan = callPackage ../tools/security/wpscan { };
+
+  write-good = callPackage ../tools/text/write-good { };
+
+  wsmancli = callPackage ../tools/system/wsmancli { };
+
+  wstunnel = haskell.lib.compose.justStaticExecutables haskellPackages.wstunnel;
+
+  wolfebin = callPackage ../tools/networking/wolfebin { };
+
+  wthrr = callPackage ../applications/misc/wthrr { };
+
+  xautoclick = callPackage ../applications/misc/xautoclick { };
+
+  xl2tpd = callPackage ../tools/networking/xl2tpd { };
+
+  xlights = callPackage ../applications/misc/xlights/default.nix { };
+
+  xe = callPackage ../tools/system/xe { };
+
+
+  xray = callPackage ../tools/networking/xray { };
+
+  xteve = callPackage ../servers/xteve { };
+
+  termbook = callPackage ../tools/text/termbook { };
+
+  testdisk = libsForQt5.callPackage ../tools/system/testdisk { };
+
+  testdisk-qt = testdisk.override { enableQt = true; };
+
+  textql = callPackage ../development/tools/textql { };
+
+  html2text = callPackage ../tools/text/html2text { };
+
+  html-tidy = callPackage ../tools/text/html-tidy { };
+
+  html-xml-utils = callPackage ../tools/text/xml/html-xml-utils { };
+
+  htmldoc = callPackage ../tools/typesetting/htmldoc {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration Foundation;
+  };
+
+  htmltest = callPackage ../development/tools/htmltest { };
+
+  rcm = callPackage ../tools/misc/rcm { };
+
+  td = callPackage ../tools/misc/td { };
+
+  tdfgo = callPackage ../tools/misc/tdfgo { };
+
+  tftp-hpa = callPackage ../tools/networking/tftp-hpa { };
+
+  tigervnc = callPackage ../tools/admin/tigervnc { };
+
+  tightvnc = callPackage ../tools/admin/tightvnc {
+    fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
+      xorg.fontbhlucidatypewriter75dpi ];
+  };
+
+  time = callPackage ../tools/misc/time { };
+
+  tweet-hs = haskell.lib.compose.justStaticExecutables haskellPackages.tweet-hs;
+
+  tweeny = callPackage ../development/libraries/tweeny { };
+
+  tkgate = callPackage ../applications/science/electronics/tkgate/1.x.nix { };
+
+  tm = callPackage ../tools/system/tm { };
+
+  tradcpp = callPackage ../development/tools/tradcpp { };
+
+  traitor = callPackage ../tools/security/traitor { };
+
+  tre = callPackage ../development/libraries/tre { };
+
+  tremor-rs = darwin.apple_sdk_11_0.callPackage ../tools/misc/tremor-rs {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+  };
+
+  tremor-language-server = callPackage ../tools/misc/tremor-rs/ls.nix { };
+
+  truecrack = callPackage ../tools/security/truecrack { };
+  truecrack-cuda = truecrack.override { cudaSupport = true; };
+
+  ts = callPackage ../tools/system/ts { };
+
+  ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
+
+  ttwatch = callPackage ../tools/misc/ttwatch { };
+
+  turbovnc = callPackage ../tools/admin/turbovnc {
+    # fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc xorg.fontbhlucidatypewriter75dpi ];
+    libjpeg_turbo = libjpeg_turbo.override { enableJava = true; };
+  };
+
+  udunits = callPackage ../development/libraries/udunits { };
+
+  ufmt = with python3Packages; toPythonApplication ufmt;
+
+  uftp = callPackage ../servers/uftp { };
+
+  uhttpmock = callPackage ../development/libraries/uhttpmock { };
+
+  uim = callPackage ../tools/inputmethods/uim {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  uhub = callPackage ../servers/uhub { };
+
+  unclutter = callPackage ../tools/misc/unclutter { };
+
+  unclutter-xfixes = callPackage ../tools/misc/unclutter-xfixes { };
+
+  unbound = callPackage ../tools/networking/unbound { };
+
+  unbound-with-systemd = unbound.override {
+    withSystemd = true;
+  };
+
+  unbound-full = unbound.override {
+    python = python3;
+    withSystemd = true;
+    withPythonModule = true;
+    withDoH = true;
+    withECS = true;
+    withDNSCrypt = true;
+    withDNSTAP = true;
+    withTFO = true;
+    withRedis = true;
+  };
+
+  unicorn = callPackage ../development/libraries/unicorn {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+    inherit (darwin) cctools;
+  };
+
+  units = callPackage ../tools/misc/units {
+    enableCurrenciesUpdater = true;
+    pythonPackages = python3Packages;
+  };
+
+  unittest-cpp = callPackage ../development/libraries/unittest-cpp { };
+
+  unnaturalscrollwheels = callPackage ../tools/inputmethods/unnaturalscrollwheels { };
+
+  unrar = callPackage ../tools/archivers/unrar { };
+
+  unrar-wrapper = python3Packages.callPackage ../tools/archivers/unrar-wrapper { };
+
+  uptime-kuma = callPackage ../servers/monitoring/uptime-kuma { };
+
+  vul = callPackage ../applications/misc/vul { };
+
+  xar = callPackage ../tools/compression/xar { };
+
+  xarchive = callPackage ../tools/archivers/xarchive { };
+
+  xarchiver = callPackage ../tools/archivers/xarchiver { };
+
+  xbanish = callPackage ../tools/X11/xbanish { };
+
+  xbrightness = callPackage ../tools/X11/xbrightness { };
+
+  xdg-launch = callPackage ../applications/misc/xdg-launch { };
+
+  xdp-tools = callPackage ../tools/networking/xdp-tools {
+    llvmPackages = llvmPackages_14;
+  };
+
+  xkbvalidate = callPackage ../tools/X11/xkbvalidate { };
+
+  xkeysnail = callPackage ../tools/X11/xkeysnail { };
+
+  xfstests = callPackage ../tools/misc/xfstests { };
+
+  xprompt = callPackage ../tools/X11/xprompt { };
+
+  xprintidle = callPackage ../tools/X11/xprintidle { };
+
+  xprintidle-ng = callPackage ../tools/X11/xprintidle-ng { };
+
+  xssstate = callPackage ../tools/X11/xssstate { };
+
+  xscast = callPackage ../applications/video/xscast { };
+
+  xsettingsd = callPackage ../tools/X11/xsettingsd { };
+
+  xsensors = callPackage ../os-specific/linux/xsensors { };
+
+  xspim = callPackage ../development/tools/misc/xspim { };
+
+  xcrawl3r = callPackage ../tools/security/xcrawl3r { };
+
+  xcruiser = callPackage ../applications/misc/xcruiser { };
+
+  xwallpaper = callPackage ../tools/X11/xwallpaper { };
+
+  gxkb = callPackage ../applications/misc/gxkb { };
+
+  xxkb = callPackage ../applications/misc/xxkb { };
+
+  ugarit = callPackage ../tools/backup/ugarit {
+    inherit (chickenPackages_4) eggDerivation fetchegg;
+  };
+
+  ugarit-manifest-maker = callPackage ../tools/backup/ugarit-manifest-maker {
+    inherit (chickenPackages_4) eggDerivation fetchegg;
+  };
+
+  ulogd = callPackage ../os-specific/linux/ulogd { };
+
+  unar = callPackage ../tools/archivers/unar {
+    inherit (darwin.apple_sdk.frameworks) Foundation AppKit;
+    stdenv = clangStdenv;
+  };
+
+  unp = callPackage ../tools/archivers/unp { };
+
+  unshield = callPackage ../tools/archivers/unshield { };
+
+  unzip = callPackage ../tools/archivers/unzip { };
+
+  unzipNLS = lowPrio (unzip.override { enableNLS = true; });
+
+  undmg = callPackage ../tools/archivers/undmg { };
+
+  uptimed = callPackage ../tools/system/uptimed { };
+
+  upwork = callPackage ../applications/misc/upwork { };
+
+  urjtag = callPackage ../tools/misc/urjtag { };
+
+  urlhunter = callPackage ../tools/security/urlhunter { };
+
+  urlwatch = callPackage ../tools/networking/urlwatch { };
+
+  vals = callPackage ../tools/security/vals { };
+
+  valum = callPackage ../development/web/valum { };
+
+  inherit (callPackages ../servers/varnish { })
+    varnish60 varnish74;
+  inherit (callPackages ../servers/varnish/packages.nix { })
+    varnish60Packages varnish74Packages;
+
+  varnishPackages = varnish74Packages;
+  varnish = varnishPackages.varnish;
+
+  hitch = callPackage ../servers/hitch { };
+
+  veracrypt = callPackage ../applications/misc/veracrypt {
+    wxGTK = wxGTK32;
+  };
+
+  veryfasttree = callPackage ../applications/science/biology/veryfasttree { };
+
+  viceroy = callPackage ../development/tools/viceroy {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  vlan = callPackage ../tools/networking/vlan { };
+
+  vmtouch = callPackage ../tools/misc/vmtouch { };
+
+  vncdo = with python3Packages; toPythonApplication vncdo;
+
+  volumeicon = callPackage ../tools/audio/volumeicon { };
+
+  waf = callPackage ../development/tools/build-managers/waf { };
+  # An alias to work around the splicing incidents
+  # Related:
+  # https://github.com/NixOS/nixpkgs/issues/204303
+  # https://github.com/NixOS/nixpkgs/issues/211340
+  # https://github.com/NixOS/nixpkgs/issues/227327
+  wafHook = waf.hook;
+
+  waf-tester = callPackage ../tools/security/waf-tester { };
+
+  wagyu = callPackage ../tools/misc/wagyu {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  wakelan = callPackage ../tools/networking/wakelan { };
+
+  wavemon = callPackage ../tools/networking/wavemon { };
+
+  wdfs = callPackage ../tools/filesystems/wdfs { };
+
+  web-eid-app = libsForQt5.callPackage ../tools/security/web-eid-app { };
+
+  wdiff = callPackage ../tools/text/wdiff { };
+
+  wdisplays = callPackage ../tools/graphics/wdisplays { };
+
+  weaviate = callPackage ../servers/search/weaviate { };
+
+  webalizer = callPackage ../tools/networking/webalizer { };
+
+  webmesh = callPackage ../servers/webmesh { };
+
+  wget = callPackage ../tools/networking/wget { };
+
+  wget2 = callPackage ../tools/networking/wget2 { };
+
+  wgpu-utils = callPackage ../tools/graphics/wgpu-utils {
+    inherit (darwin.apple_sdk.frameworks) QuartzCore;
+  };
+
+  wg-bond = callPackage ../applications/networking/wg-bond { };
+
+  wgcf = callPackage ../applications/networking/wgcf { };
+
+  which = callPackage ../tools/system/which { };
+
+  whsniff = callPackage ../applications/networking/sniffers/whsniff { };
+
+  wiiuse = callPackage ../development/libraries/wiiuse {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation IOBluetooth;
+  };
+
+  wipefreespace = callPackage ../tools/filesystems/wipefreespace { };
+
+  woeusb = callPackage ../tools/misc/woeusb { };
+
+  woeusb-ng = callPackage ../tools/misc/woeusb-ng { };
+
+  wslu = callPackage ../tools/system/wslu { };
+
+  chase = callPackage ../tools/system/chase { };
+
+  wimlib = callPackage ../tools/archivers/wimlib { };
+
+  wipe = callPackage ../tools/security/wipe { };
+
+  wireguard-go = callPackage ../tools/networking/wireguard-go { };
+
+  wkhtmltopdf = libsForQt5.callPackage ../tools/graphics/wkhtmltopdf { };
+
+  wkhtmltopdf-bin = callPackage ../tools/graphics/wkhtmltopdf-bin {
+    openssl = openssl_1_1;
+  };
+
+  wml = callPackage ../development/web/wml { };
+
+  wol = callPackage ../tools/networking/wol { };
+
+  wolf-shaper = callPackage ../applications/audio/wolf-shaper { };
+
+  wpgtk = callPackage ../tools/X11/wpgtk { };
+
+  wrap = callPackage ../tools/text/wrap { };
+
+  wring = nodePackages.wring;
+
+  wrk = callPackage ../tools/networking/wrk { };
+
+  wrk2 = callPackage ../tools/networking/wrk2 { };
+
+  wsysmon = callPackage ../tools/system/wsysmon { };
+
+  wuzz = callPackage ../tools/networking/wuzz { };
+
+  wv = callPackage ../tools/misc/wv { };
+
+  wv2 = callPackage ../tools/misc/wv2 { };
+
+  wvkbd = callPackage ../applications/accessibility/wvkbd { };
+
+  wyrd = callPackage ../tools/misc/wyrd {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14_unsafe_string;
+  };
+
+  x86info = callPackage ../os-specific/linux/x86info { };
+
+  x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
+
+  xbursttools = callPackage ../tools/misc/xburst-tools {
+    # It needs a cross compiler for mipsel to build the firmware it will
+    # load into the Ben Nanonote
+    gccCross = pkgsCross.ben-nanonote.buildPackages.gccWithoutTargetLibc;
+    autoconf = buildPackages.autoconf269;
+  };
+
+  clipnotify = callPackage ../tools/misc/clipnotify { };
+
+  clipboard-jh = callPackage ../tools/misc/clipboard-jh { };
+
+  clipbuzz = callPackage ../tools/misc/clipbuzz { };
+
+  xclip = callPackage ../tools/misc/xclip { };
+
+  xcur2png = callPackage ../tools/graphics/xcur2png { };
+
+  xcwd = callPackage ../tools/X11/xcwd { };
+
+  xtitle = callPackage ../tools/misc/xtitle { };
+
+  xdelta = callPackage ../tools/compression/xdelta { };
+  xdeltaUnstable = callPackage ../tools/compression/xdelta/unstable.nix { };
+
+  xdot = with python3Packages; toPythonApplication xdot;
+
+  xdummy = callPackage ../tools/misc/xdummy { };
+
+  xdg-ninja = callPackage ../tools/misc/xdg-ninja { };
+
+  xdxf2slob = callPackage ../tools/misc/xdxf2slob { };
+
+  xe-guest-utilities = callPackage ../tools/virtualization/xe-guest-utilities { };
+
+  xflux = callPackage ../tools/misc/xflux { };
+  xflux-gui = python3Packages.callPackage ../tools/misc/xflux/gui.nix { };
+
+  xfsdump = callPackage ../tools/filesystems/xfsdump { };
+
+  xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
+  libxfs = xfsprogs.dev;
+
+  xml2 = callPackage ../tools/text/xml/xml2 { };
+
+  xmlformat = callPackage ../tools/text/xml/xmlformat { };
+
+  xmlroff = callPackage ../tools/typesetting/xmlroff { };
+
+  xmloscopy = callPackage ../tools/text/xml/xmloscopy { };
+
+  xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
+
+  xmlto = callPackage ../tools/typesetting/xmlto {
+    w3m = w3m-batch;
+  };
+
+  xiccd = callPackage ../tools/misc/xiccd { };
+
+  xidlehook = callPackage ../tools/X11/xidlehook {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  xprite-editor = callPackage ../tools/misc/xprite-editor {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  xq-xml = callPackage ../tools/text/xml/xq { };
+
+  xsecurelock = callPackage ../tools/X11/xsecurelock { };
+
+  xsel = callPackage ../tools/misc/xsel { };
+
+  xsv = callPackage ../tools/text/xsv {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  xtreemfs = callPackage ../tools/filesystems/xtreemfs {
+    boost = boost179;
+  };
+
+  xurls = callPackage ../tools/text/xurls { };
+
+  xxv = callPackage ../tools/misc/xxv { };
+
+  xvfb-run = callPackage ../tools/misc/xvfb-run {
+    inherit (texFunctions) fontsConf;
+
+    # xvfb-run is used by a bunch of things to run tests
+    # and doesn't support hardware accelerated rendering
+    # so remove it from the rebuild heavy path for mesa
+    xorgserver = xorg.xorgserver.overrideAttrs(old: {
+      buildInputs = lib.filter (pkg: lib.getName pkg != "mesa") old.buildInputs;
+      configureFlags = old.configureFlags ++ [
+        "--disable-glamor"
+        "--disable-glx"
+        "--disable-dri"
+        "--disable-dri2"
+        "--disable-dri3"
+      ];
+    });
+  };
+
+  xvkbd = callPackage ../tools/X11/xvkbd { };
+
+  xwinmosaic = callPackage ../tools/X11/xwinmosaic { };
+
+  xwinwrap = callPackage ../tools/X11/xwinwrap { };
+
+  yajsv = callPackage ../tools/misc/yajsv { };
+
+  yallback = callPackage ../development/tools/analysis/yallback { };
+
+  yapf = with python3Packages; toPythonApplication yapf;
+
+  yarn = callPackage ../development/tools/yarn  { };
+
+  yarn-berry = callPackage ../development/tools/yarn-berry { };
+
+  yarn2nix-moretea = callPackage ../development/tools/yarn2nix-moretea/yarn2nix { pkgs = pkgs.__splicedPackages; };
+
+  inherit (yarn2nix-moretea)
+    yarn2nix
+    mkYarnPackage
+    mkYarnModules
+    fixup_yarn_lock;
+
+  yarr = callPackage ../applications/networking/feedreaders/yarr { };
+
+  yascreen = callPackage ../development/libraries/yascreen { };
+
+  yasr = callPackage ../applications/audio/yasr { };
+
+  yank = callPackage ../tools/misc/yank { };
+
+  yamlfix = with python3Packages; toPythonApplication yamlfix;
+
+  yamlfmt = callPackage ../development/tools/yamlfmt { };
+
+  yamllint = with python3Packages; toPythonApplication yamllint;
+
+  yamlpath = callPackage ../development/tools/yamlpath { };
+
+  yaml-merge = callPackage ../tools/text/yaml-merge { };
+
+  yeshup = callPackage ../tools/system/yeshup { };
+
+  ytfzf = callPackage ../tools/misc/ytfzf { };
+
+  # To expose more packages for Yi, override the extraPackages arg.
+  yi = callPackage ../applications/editors/yi/wrapper.nix {
+    haskellPackages = haskell.packages.ghc810;
+  };
+
+  yj = callPackage ../development/tools/yj { };
+
+  yaydl = callPackage ../tools/video/yaydl {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  yx = callPackage ../tools/text/yx { };
+
+  zarchive = callPackage ../tools/archivers/zarchive { };
+
+  zprint = callPackage ../development/tools/zprint { };
+
+  yle-dl = callPackage ../tools/misc/yle-dl { };
+
+  you-get = callPackage ../tools/misc/you-get { };
+
+  zasm = callPackage ../development/compilers/zasm { };
+
+  zbackup = callPackage ../tools/backup/zbackup {
+    protobuf = protobuf_21;
+  };
+
+  zbar = libsForQt5.callPackage ../tools/graphics/zbar {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  zbctl = callPackage ../tools/admin/zbctl { };
+
+  zdelta = callPackage ../tools/compression/zdelta { };
+
+  zed = callPackage ../development/tools/zed { };
+
+  zellij = callPackage ../tools/misc/zellij {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
+  };
+
+  zenith = callPackage ../tools/system/zenith {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  # Nvidia support does not require any propietary libraries, so CI can build it.
+  # Note that when enabling this unconditionally, non-nvidia users will always have an empty "GPU" section.
+  zenith-nvidia = callPackage ../tools/system/zenith {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+    nvidiaSupport = true;
+  };
+
+  zerotierone = callPackage ../tools/networking/zerotierone { };
+
+  zerofree = callPackage ../tools/filesystems/zerofree { };
+
+  zet = callPackage ../tools/text/zet { };
+
+  zfp = callPackage ../tools/compression/zfp { };
+
+  zfs-autobackup = callPackage ../tools/backup/zfs-autobackup { };
+
+  zfsbackup = callPackage ../tools/backup/zfsbackup { };
+
+  zfstools = callPackage ../tools/filesystems/zfstools { };
+
+  zfsnap = callPackage ../tools/backup/zfsnap { };
+
+  zpool-auto-expand-partitions = callPackage ../tools/filesystems/zpool-auto-expand-partitions { };
+
+  zile = callPackage ../applications/editors/zile { };
+
+  zinnia = callPackage ../tools/inputmethods/zinnia { };
+  tegaki-zinnia-japanese = callPackage ../tools/inputmethods/tegaki-zinnia-japanese { };
+
+  zim-tools = callPackage ../tools/text/zim-tools { };
+
+  zimfw = callPackage ../shells/zsh/zimfw { };
+
+  zld = callPackage ../development/tools/zld { };
+
+  par = callPackage ../tools/text/par { };
+
+  zip = callPackage ../tools/archivers/zip { };
+
+  zincsearch = callPackage ../servers/search/zincsearch {
+    buildGoModule = buildGo120Module;
+  };
+
+  zkfuse = callPackage ../tools/filesystems/zkfuse { };
+
+  zpaq = callPackage ../tools/archivers/zpaq { };
+  zpaqd = callPackage ../tools/archivers/zpaq/zpaqd.nix { };
+
+  zplug = callPackage ../shells/zsh/zplug { };
+
+  zps = callPackage ../tools/system/zps { };
+
+  zi = callPackage ../shells/zsh/zi { };
+
+  zinit = callPackage ../shells/zsh/zinit {} ;
+
+  zint = qt6Packages.callPackage ../development/libraries/zint { };
+
+  zs-apc-spdu-ctl = callPackage ../tools/networking/zs-apc-spdu-ctl { };
+
+  zs-wait4host = callPackage ../tools/networking/zs-wait4host { };
+
+  zstxtns-utils = callPackage ../tools/text/zstxtns-utils { };
+
+  zsh-abbr = callPackage ../shells/zsh/zsh-abbr { };
+
+  zsh-autoenv = callPackage ../tools/misc/zsh-autoenv { };
+
+  zsh-autopair = callPackage ../shells/zsh/zsh-autopair { };
+
+  zsh-bd = callPackage ../shells/zsh/zsh-bd { };
+
+  zsh-better-npm-completion = callPackage ../shells/zsh/zsh-better-npm-completion { };
+
+  zsh-clipboard = callPackage ../shells/zsh/zsh-clipboard { };
+
+  zsh-defer = callPackage ../shells/zsh/zsh-defer { };
+
+  zsh-edit = callPackage ../shells/zsh/zsh-edit { };
+
+  zsh-git-prompt = callPackage ../shells/zsh/zsh-git-prompt { };
+
+  zsh-history = callPackage ../shells/zsh/zsh-history { };
+
+  zsh-history-search-multi-word = callPackage ../shells/zsh/zsh-history-search-multi-word { };
+
+  zsh-history-substring-search = callPackage ../shells/zsh/zsh-history-substring-search { };
+
+  zsh-navigation-tools = callPackage ../tools/misc/zsh-navigation-tools { };
+
+  zsh-nix-shell = callPackage ../shells/zsh/zsh-nix-shell { };
+
+  zsh-syntax-highlighting = callPackage ../shells/zsh/zsh-syntax-highlighting { };
+
+  zsh-system-clipboard = callPackage ../shells/zsh/zsh-system-clipboard { };
+
+  zsh-f-sy-h = callPackage ../shells/zsh/zsh-f-sy-h { };
+
+  zsh-fast-syntax-highlighting = callPackage ../shells/zsh/zsh-fast-syntax-highlighting { };
+
+  zsh-forgit = callPackage ../shells/zsh/zsh-forgit { };
+
+  zsh-fzf-tab = callPackage ../shells/zsh/zsh-fzf-tab { };
+
+  zsh-autocomplete = callPackage ../shells/zsh/zsh-autocomplete { };
+
+  zsh-autosuggestions = callPackage ../shells/zsh/zsh-autosuggestions { };
+
+  zsh-powerlevel10k = callPackage ../shells/zsh/zsh-powerlevel10k { };
+
+  zsh-powerlevel9k = callPackage ../shells/zsh/zsh-powerlevel9k { };
+
+  zsh-command-time = callPackage ../shells/zsh/zsh-command-time { };
+
+  zsh-fzf-history-search = callPackage ../shells/zsh/zsh-fzf-history-search { };
+
+  zsh-vi-mode = callPackage ../shells/zsh/zsh-vi-mode { };
+
+  zsh-you-should-use = callPackage ../shells/zsh/zsh-you-should-use { };
+
+  zsh-z = callPackage ../shells/zsh/zsh-z { };
+
+  zssh = callPackage ../tools/networking/zssh { };
+
+  zstd = callPackage ../tools/compression/zstd {
+    cmake = buildPackages.cmakeMinimal;
+  };
+
+  zsv = callPackage ../development/tools/zsv { };
+
+  zsync = callPackage ../tools/compression/zsync { };
+
+  zxing = callPackage ../tools/graphics/zxing { };
+
+  zkar = callPackage ../tools/security/zkar { };
+
+  zlint = callPackage ../tools/security/zlint { };
+
+  zmap = callPackage ../tools/security/zmap { };
+
+  zmusic = callPackage ../development/libraries/zmusic { };
+
+  zpool-iostat-viz = callPackage ../tools/filesystems/zpool-iostat-viz { };
+
+
+  ### SHELLS
+
+  runtimeShell = "${runtimeShellPackage}${runtimeShellPackage.shellPath}";
+  runtimeShellPackage = bash;
+
+  agdsn-zsh-config = callPackage ../shells/zsh/agdsn-zsh-config { };
+
+  any-nix-shell = callPackage ../shells/any-nix-shell { };
+
+  nix-your-shell = callPackage ../shells/nix-your-shell { };
+
+  bash = lowPrio (callPackage ../shells/bash/5.nix { });
+  # WARNING: this attribute is used by nix-shell so it shouldn't be removed/renamed
+  bashInteractive = callPackage ../shells/bash/5.nix {
+    interactive = true;
+    withDocs = true;
+  };
+  bashInteractiveFHS = callPackage ../shells/bash/5.nix {
+    interactive = true;
+    withDocs = true;
+    forFHSEnv = true;
+  };
+
+  bash-completion = callPackage ../shells/bash/bash-completion { };
+
+  gradle-completion = callPackage ../shells/zsh/gradle-completion { };
+
+  nix-bash-completions = callPackage ../shells/bash/nix-bash-completions { };
+
+  yarn-bash-completion = callPackage ../shells/bash/yarn-completion { };
+
+  blesh = callPackage ../shells/bash/blesh { };
+
+  undistract-me = callPackage ../shells/bash/undistract-me { };
+
+  carapace = callPackage ../shells/carapace { };
+
+  dash = callPackage ../shells/dash { };
+
+  dasht = callPackage ../tools/misc/dasht { };
+
+  dashing = callPackage ../tools/misc/dashing { };
+
+  es = callPackage ../shells/es { };
+
+  fish = callPackage ../shells/fish { };
+
+  wrapFish = callPackage ../shells/fish/wrapper.nix { };
+
+  fishPlugins = recurseIntoAttrs (callPackage ../shells/fish/plugins { });
+
+  fzf-git-sh = callPackage ../shells/fzf-git-sh { };
+
+  hishtory = callPackage ../shells/hishtory { };
+
+  ion = callPackage ../shells/ion { };
+
+  jush = callPackage ../shells/jush { };
+
+  ksh = callPackage ../shells/ksh { };
+
+  liquidprompt = callPackage ../shells/liquidprompt { };
+
+  murex = callPackage ../shells/murex { };
+
+  oh = callPackage ../shells/oh { };
+
+  oil = callPackage ../shells/oil { };
+
+  oksh = callPackage ../shells/oksh { };
+
+  loksh = callPackage ../shells/loksh { };
+
+  scponly = callPackage ../shells/scponly { };
+
+  rush = callPackage ../shells/rush { };
+
+  xonsh = callPackage ../shells/xonsh/wrapper.nix { };
+  xonsh-unwrapped = callPackage ../shells/xonsh { };
+
+  zsh = callPackage ../shells/zsh { };
+
+  nix-zsh-completions = callPackage ../shells/zsh/nix-zsh-completions { };
+
+  zsh-completions = callPackage ../shells/zsh/zsh-completions { };
+
+  zsh-prezto = callPackage ../shells/zsh/zsh-prezto { };
+
+  yash = callPackage ../shells/yash { };
+
+  grml-zsh-config = callPackage ../shells/zsh/grml-zsh-config { };
+
+  powerline = with python3Packages; toPythonApplication powerline;
+
+  ### DEVELOPMENT / COMPILERS
+
+  temurin-bin-21 = javaPackages.compiler.temurin-bin.jdk-21;
+  temurin-jre-bin-21 = javaPackages.compiler.temurin-bin.jre-21;
+
+  temurin-bin-20 = javaPackages.compiler.temurin-bin.jdk-20;
+  temurin-jre-bin-20 = javaPackages.compiler.temurin-bin.jre-20;
+
+  temurin-bin-19 = javaPackages.compiler.temurin-bin.jdk-19;
+  temurin-jre-bin-19 = javaPackages.compiler.temurin-bin.jre-19;
+
+  temurin-bin-18 = javaPackages.compiler.temurin-bin.jdk-18;
+  temurin-jre-bin-18 = javaPackages.compiler.temurin-bin.jre-18;
+
+  temurin-bin-17 = javaPackages.compiler.temurin-bin.jdk-17;
+  temurin-jre-bin-17 = javaPackages.compiler.temurin-bin.jre-17;
+
+  temurin-bin-16 = javaPackages.compiler.temurin-bin.jdk-16;
+  temurin-bin-11 = javaPackages.compiler.temurin-bin.jdk-11;
+  temurin-jre-bin-11 = javaPackages.compiler.temurin-bin.jre-11;
+  temurin-bin-8 = javaPackages.compiler.temurin-bin.jdk-8;
+  temurin-jre-bin-8 = javaPackages.compiler.temurin-bin.jre-8;
+
+  temurin-bin = temurin-bin-19;
+  temurin-jre-bin = temurin-jre-bin-19;
+
+  semeru-bin-17 = javaPackages.compiler.semeru-bin.jdk-17;
+  semeru-jre-bin-17 = javaPackages.compiler.semeru-bin.jre-17;
+  semeru-bin-16 = javaPackages.compiler.semeru-bin.jdk-16;
+  semeru-jre-bin-16 = javaPackages.compiler.semeru-bin.jre-16;
+  semeru-bin-11 = javaPackages.compiler.semeru-bin.jdk-11;
+  semeru-jre-bin-11 = javaPackages.compiler.semeru-bin.jre-11;
+  semeru-bin-8 = javaPackages.compiler.semeru-bin.jdk-8;
+  semeru-jre-bin-8 = javaPackages.compiler.semeru-bin.jre-8;
+
+  semeru-bin = semeru-bin-17;
+  semeru-jre-bin = semeru-jre-bin-17;
+
+  adoptopenjdk-bin-17-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk17-linux.nix { inherit stdenv lib; };
+  adoptopenjdk-bin-17-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk17-darwin.nix { inherit lib; };
+
+  adoptopenjdk-hotspot-bin-16 = javaPackages.compiler.adoptopenjdk-16.jdk-hotspot;
+  adoptopenjdk-jre-hotspot-bin-16 = javaPackages.compiler.adoptopenjdk-16.jre-hotspot;
+  adoptopenjdk-openj9-bin-16 = javaPackages.compiler.adoptopenjdk-16.jdk-openj9;
+  adoptopenjdk-jre-openj9-bin-16 = javaPackages.compiler.adoptopenjdk-16.jre-openj9;
+
+  adoptopenjdk-hotspot-bin-15 = javaPackages.compiler.adoptopenjdk-15.jdk-hotspot;
+  adoptopenjdk-jre-hotspot-bin-15 = javaPackages.compiler.adoptopenjdk-15.jre-hotspot;
+  adoptopenjdk-openj9-bin-15 = javaPackages.compiler.adoptopenjdk-15.jdk-openj9;
+  adoptopenjdk-jre-openj9-bin-15 = javaPackages.compiler.adoptopenjdk-15.jre-openj9;
+
+  adoptopenjdk-hotspot-bin-11 = javaPackages.compiler.adoptopenjdk-11.jdk-hotspot;
+  adoptopenjdk-jre-hotspot-bin-11 = javaPackages.compiler.adoptopenjdk-11.jre-hotspot;
+  adoptopenjdk-openj9-bin-11 = javaPackages.compiler.adoptopenjdk-11.jdk-openj9;
+  adoptopenjdk-jre-openj9-bin-11 = javaPackages.compiler.adoptopenjdk-11.jre-openj9;
+
+  adoptopenjdk-hotspot-bin-8 = javaPackages.compiler.adoptopenjdk-8.jdk-hotspot;
+  adoptopenjdk-jre-hotspot-bin-8 = javaPackages.compiler.adoptopenjdk-8.jre-hotspot;
+  adoptopenjdk-openj9-bin-8 = javaPackages.compiler.adoptopenjdk-8.jdk-openj9;
+  adoptopenjdk-jre-openj9-bin-8 = javaPackages.compiler.adoptopenjdk-8.jre-openj9;
+
+  adoptopenjdk-bin = adoptopenjdk-hotspot-bin-11;
+  adoptopenjdk-jre-bin = adoptopenjdk-jre-hotspot-bin-11;
+
+  adoptopenjdk-icedtea-web = callPackage ../development/compilers/adoptopenjdk-icedtea-web {
+    jdk = jdk8;
+  };
+
+  alan = callPackage ../development/compilers/alan { };
+
+  alan_2 = callPackage ../development/compilers/alan/2.nix { };
+
+  alarm-clock-applet = callPackage ../tools/misc/alarm-clock-applet { };
+
+  ante = callPackage ../development/compilers/ante { };
+
+  armips = callPackage ../development/compilers/armips {
+    stdenv = gcc10Stdenv;
+  };
+
+  arachne-pnr = callPackage ../development/compilers/arachne-pnr { };
+
+  asciigraph = callPackage ../tools/text/asciigraph { };
+
+  autocorrect = callPackage ../tools/text/autocorrect {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  as31 = callPackage ../development/compilers/as31 { };
+
+  asl = callPackage ../development/compilers/asl { };
+
+  aspectj = callPackage ../development/compilers/aspectj { };
+
+  atasm = callPackage ../development/compilers/atasm { };
+
+  ats = callPackage ../development/compilers/ats { };
+  ats2 = callPackage ../development/compilers/ats2 { };
+
+  ats-acc = callPackage ../development/tools/ats-acc { };
+
+  august = callPackage ../development/compilers/august { };
+
+  avra = callPackage ../development/compilers/avra { };
+
+  ballerina = callPackage ../development/compilers/ballerina {
+    openjdk = openjdk17_headless;
+  };
+
+  bfc = callPackage ../development/compilers/bfc { };
+
+  bigloo = callPackage ../development/compilers/bigloo { };
+
+  binaryen = callPackage ../development/compilers/binaryen {
+    nodejs = nodejs-slim;
+    inherit (python3Packages) filecheck;
+  };
+
+  blueprint-compiler = callPackage ../development/compilers/blueprint { };
+
+  bluespec = callPackage ../development/compilers/bluespec {
+    gmp-static = gmp.override { withStatic = true; };
+  };
+
+  bun = callPackage ../development/web/bun { };
+
+  cakelisp = callPackage ../development/compilers/cakelisp { };
+
+  ciao = callPackage ../development/compilers/ciao { };
+
+  codon = callPackage ../development/compilers/codon {
+    inherit (llvmPackages_14) lld stdenv;
+  };
+
+  colm = callPackage ../development/compilers/colm { };
+
+  colmap = libsForQt5.callPackage ../applications/science/misc/colmap { inherit (config) cudaSupport; };
+  colmapWithCuda = colmap.override { cudaSupport = true; };
+
+  chickenPackages_4 = recurseIntoAttrs (callPackage ../development/compilers/chicken/4 { });
+  chickenPackages_5 = recurseIntoAttrs (callPackage ../development/compilers/chicken/5 { });
+  chickenPackages = dontRecurseIntoAttrs chickenPackages_5;
+
+  inherit (chickenPackages_5)
+    fetchegg
+    eggDerivation
+    chicken
+    egg2nix;
+
+  cc65 = callPackage ../development/compilers/cc65 { };
+
+  cdb = callPackage ../development/tools/database/cdb {
+    stdenv = gccStdenv;
+  };
+
+  chez = callPackage ../development/compilers/chez {
+    inherit (darwin) cctools;
+  };
+
+  chez-racket = callPackage ../development/compilers/chez-racket { };
+
+  chez-srfi = callPackage ../development/chez-modules/chez-srfi { };
+
+  chez-mit = callPackage ../development/chez-modules/chez-mit { };
+
+  chez-scmutils = callPackage ../development/chez-modules/chez-scmutils { };
+
+  chez-matchable = callPackage ../development/chez-modules/chez-matchable { };
+
+  libclang = llvmPackages.libclang;
+  clang-manpages = llvmPackages.clang-manpages;
+
+  clang-sierraHack = clang.override {
+    name = "clang-wrapper-with-reexport-hack";
+    bintools = darwin.binutils.override {
+      useMacosReexportHack = true;
+    };
+  };
+
+  clang = llvmPackages.clang;
+  clang_6  = llvmPackages_6.clang;
+  clang_8  = llvmPackages_8.clang;
+  clang_9  = llvmPackages_9.clang;
+  clang_10 = llvmPackages_10.clang;
+  clang_11 = llvmPackages_11.clang;
+  clang_12 = llvmPackages_12.clang;
+  clang_13 = llvmPackages_13.clang;
+  clang_14 = llvmPackages_14.clang;
+  clang_15 = llvmPackages_15.clang;
+  clang_16 = llvmPackages_16.clang;
+  clang_17 = llvmPackages_17.clang;
+
+  clang-tools = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_14;
+  };
+
+  clang-tools_6 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_6;
+  };
+
+  clang-tools_8 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_8;
+  };
+
+  clang-tools_9 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_9;
+  };
+
+  clang-tools_10 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_10;
+  };
+
+  clang-tools_11 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_11;
+  };
+
+  clang-tools_12 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_12;
+  };
+
+  clang-tools_13 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_13;
+  };
+
+  clang-tools_14 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_14;
+  };
+
+  clang-tools_15 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_15;
+  };
+
+  clang-tools_16 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_16;
+  };
+
+  clang-tools_17 = callPackage ../development/tools/clang-tools {
+    llvmPackages = llvmPackages_17;
+  };
+
+  clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer {
+    llvmPackages = llvmPackages_14;
+    inherit (llvmPackages_14) clang;
+  };
+
+  clazy = callPackage ../development/tools/analysis/clazy {
+    llvmPackages = llvmPackages_14;
+    stdenv = llvmPackages_14.stdenv;
+  };
+
+  #Use this instead of stdenv to build with clang
+  clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
+  clang-sierraHack-stdenv = overrideCC stdenv buildPackages.clang-sierraHack;
+  libcxxStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.libcxxStdenv;
+
+  clean = callPackage ../development/compilers/clean { };
+
+  clickable = python3Packages.callPackage ../development/tools/clickable { };
+
+  closurecompiler = callPackage ../development/compilers/closure { };
+
+  cmdstan = callPackage ../development/compilers/cmdstan { };
+
+  coffeescript = callPackage ../development/compilers/coffeescript { };
+
+  comby = callPackage ../development/tools/comby { };
+
+  inherit (coqPackages_8_17) compcert;
+
+  computecpp-unwrapped = callPackage ../development/compilers/computecpp { };
+  computecpp = wrapCCWith rec {
+    cc = computecpp-unwrapped;
+    extraPackages = [
+      llvmPackages.compiler-rt
+    ];
+    extraBuildCommands = ''
+      wrap compute $wrapper $ccPath/compute
+      wrap compute++ $wrapper $ccPath/compute++
+      export named_cc=compute
+      export named_cxx=compute++
+
+      rsrc="$out/resource-root"
+      mkdir -p "$rsrc/lib"
+      ln -s "${cc}/lib" "$rsrc/include"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+  };
+
+  copper = callPackage ../development/compilers/copper { };
+
+  corretto11 = javaPackages.compiler.corretto11;
+  corretto17 = javaPackages.compiler.corretto17;
+  corretto19 = javaPackages.compiler.corretto19;
+
+  cotton = callPackage ../development/tools/cotton {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  critcl = callPackage ../development/compilers/critcl {
+    tcllib = tcllib.override { withCritcl = false; };
+  };
+
+  inherit (darwin.apple_sdk_11_0.callPackage ../development/compilers/crystal { })
+    crystal_1_2
+    crystal_1_7
+    crystal_1_8
+    crystal_1_9
+    crystal;
+
+  crystal2nix = callPackage ../development/compilers/crystal2nix { };
+
+  crystalline = callPackage ../development/tools/language-servers/crystalline {
+    llvmPackages = llvmPackages_15;
+  };
+
+  icr = callPackage ../development/tools/icr { };
+
+  scry = callPackage ../development/tools/scry { crystal = crystal_1_2; };
+
+  dasm = callPackage ../development/compilers/dasm { };
+
+  dbmate = callPackage ../development/tools/database/dbmate { };
+
+  dbmonster = callPackage ../tools/security/dbmonster { };
+
+  devpi-client = python3Packages.callPackage ../development/tools/devpi-client { };
+
+  devpi-server = python3Packages.callPackage ../development/tools/devpi-server { };
+
+  dictu = callPackage ../development/compilers/dictu { };
+
+  eli = callPackage ../development/compilers/eli { };
+
+  erg = callPackage ../development/compilers/erg { };
+
+  elm2nix = haskell.lib.compose.justStaticExecutables haskellPackages.elm2nix;
+
+  elmPackages = recurseIntoAttrs (callPackage ../development/compilers/elm { });
+
+  apache-flex-sdk = callPackage ../development/compilers/apache-flex-sdk { };
+
+  fasm = pkgsi686Linux.callPackage ../development/compilers/fasm {
+    inherit (stdenv) isx86_64;
+  };
+  fasm-bin = callPackage ../development/compilers/fasm/bin.nix { };
+
+  fasmg = callPackage ../development/compilers/fasmg { };
+
+  fbc = if stdenv.hostPlatform.isDarwin then
+    callPackage ../development/compilers/fbc/mac-bin.nix { }
+  else
+    callPackage ../development/compilers/fbc { };
+
+  filecheck = with python3Packages; toPythonApplication filecheck;
+
+  firrtl = callPackage ../development/compilers/firrtl { };
+
+  flasm = callPackage ../development/compilers/flasm { };
+
+  flyctl = callPackage ../development/web/flyctl { };
+
+  fluidd = callPackage ../applications/misc/fluidd { };
+
+  flutterPackages =
+    recurseIntoAttrs (callPackage ../development/compilers/flutter { });
+  flutter-unwrapped = flutterPackages.stable;
+  flutter = flutterPackages.wrapFlutter flutter-unwrapped;
+
+  fnm = callPackage ../development/tools/fnm {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation Security;
+  };
+
+  fnlfmt = callPackage ../development/tools/fnlfmt { };
+
+  fpc = callPackage ../development/compilers/fpc { };
+
+  g203-led = callPackage ../tools/misc/g203-led { };
+
+  gambit = callPackage ../development/compilers/gambit { };
+  gambit-unstable = callPackage ../development/compilers/gambit/unstable.nix { };
+  gambit-support = callPackage ../development/compilers/gambit/gambit-support.nix { };
+  gerbil = callPackage ../development/compilers/gerbil { };
+  gerbil-unstable = callPackage ../development/compilers/gerbil/unstable.nix { };
+  gerbil-support = callPackage ../development/compilers/gerbil/gerbil-support.nix { };
+  gerbilPackages-unstable = pkgs.gerbil-support.gerbilPackages-unstable; # NB: don't recurseIntoAttrs for (unstable!) libraries
+  glow-lang = pkgs.gerbilPackages-unstable.glow-lang;
+
+  gbforth = callPackage ../development/compilers/gbforth { };
+
+  default-gcc-version =
+    if (with stdenv.targetPlatform; isVc4 || libc == "relibc") then 6
+    else 12;
+  gcc = pkgs.${"gcc${toString default-gcc-version}"};
+  gccFun = callPackage ../development/compilers/gcc;
+  gcc-unwrapped = gcc.cc;
+
+  wrapNonDeterministicGcc = stdenv: ccWrapper:
+    if ccWrapper.isGNU then ccWrapper.overrideAttrs(old: {
+      env = old.env // {
+        cc = old.env.cc.override {
+          reproducibleBuild = false;
+          profiledCompiler = with stdenv; (!isDarwin && hostPlatform.isx86);
+        };
+      };
+    }) else ccWrapper;
+
+  gccStdenv =
+    if stdenv.cc.isGNU
+    then stdenv
+    else stdenv.override {
+      cc = buildPackages.gcc;
+      allowedRequisites = null;
+      # Remove libcxx/libcxxabi, and add clang for AS if on darwin (it uses
+      # clang's internal assembler).
+      extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc;
+    };
+
+  gcc49Stdenv = overrideCC gccStdenv buildPackages.gcc49;
+  gcc6Stdenv = overrideCC gccStdenv buildPackages.gcc6;
+  gcc7Stdenv = overrideCC gccStdenv buildPackages.gcc7;
+  gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8;
+  gcc9Stdenv = overrideCC gccStdenv buildPackages.gcc9;
+  gcc10Stdenv = overrideCC gccStdenv buildPackages.gcc10;
+  gcc11Stdenv = overrideCC gccStdenv buildPackages.gcc11;
+  gcc12Stdenv = overrideCC gccStdenv buildPackages.gcc12;
+  gcc13Stdenv = overrideCC gccStdenv buildPackages.gcc13;
+
+  # Meant for packages that fail with newer than gcc10.
+  gcc10StdenvCompat = if stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11" then gcc10Stdenv else stdenv;
+
+  # This is not intended for use in nixpkgs but for providing a faster-running
+  # compiler to nixpkgs users by building gcc with reproducibility-breaking
+  # profile-guided optimizations
+  fastStdenv = overrideCC gccStdenv (wrapNonDeterministicGcc gccStdenv buildPackages.gcc_latest);
+
+  wrapCCMulti = cc:
+    if stdenv.targetPlatform.system == "x86_64-linux" then let
+      # Binutils with glibc multi
+      bintools = cc.bintools.override {
+        libc = glibc_multi;
+      };
+    in lowPrio (wrapCCWith {
+      cc = cc.cc.override {
+        stdenv = overrideCC stdenv (wrapCCWith {
+          cc = cc.cc;
+          inherit bintools;
+          libc = glibc_multi;
+        });
+        profiledCompiler = false;
+        enableMultilib = true;
+      };
+      libc = glibc_multi;
+      inherit bintools;
+      extraBuildCommands = ''
+        echo "dontMoveLib64=1" >> $out/nix-support/setup-hook
+      '';
+  }) else throw "Multilib ${cc.name} not supported for ‘${stdenv.targetPlatform.system}’";
+
+  wrapClangMulti = clang:
+    if stdenv.targetPlatform.system == "x86_64-linux" then
+      callPackage ../development/compilers/llvm/multi.nix {
+        inherit clang;
+        gcc32 = pkgsi686Linux.gcc;
+        gcc64 = pkgs.gcc;
+      }
+    else throw "Multilib ${clang.cc.name} not supported for '${stdenv.targetPlatform.system}'";
+
+  gcc_multi = wrapCCMulti gcc;
+  clang_multi = wrapClangMulti clang;
+
+  gccMultiStdenv = overrideCC stdenv buildPackages.gcc_multi;
+  clangMultiStdenv = overrideCC stdenv buildPackages.clang_multi;
+  multiStdenv = if stdenv.cc.isClang then clangMultiStdenv else gccMultiStdenv;
+
+  gcc_debug = lowPrio (wrapCC (gcc.cc.overrideAttrs {
+    dontStrip = true;
+  }));
+
+  gccCrossLibcStdenv = overrideCC stdenv buildPackages.gccWithoutTargetLibc;
+
+  crossLibcStdenv =
+    if stdenv.hostPlatform.useLLVM or false || stdenv.hostPlatform.isDarwin
+    then overrideCC stdenv buildPackages.llvmPackages.clangNoLibc
+    else gccCrossLibcStdenv;
+
+  # The GCC used to build libc for the target platform. Normal gccs will be
+  # built with, and use, that cross-compiled libc.
+  gccWithoutTargetLibc = assert stdenv.targetPlatform != stdenv.hostPlatform; let
+    libcCross1 = binutilsNoLibc.libc;
+    in wrapCCWith {
+      cc = gccFun {
+        # copy-pasted
+        inherit noSysDirs;
+        majorMinorVersion = toString default-gcc-version;
+
+        reproducibleBuild = true;
+        profiledCompiler = false;
+
+        isl = if !stdenv.isDarwin then isl_0_20 else null;
+
+        withoutTargetLibc = true;
+        langCC = false;
+        libcCross = libcCross1;
+        targetPackages.stdenv.cc.bintools = binutilsNoLibc;
+        enableShared =
+          stdenv.targetPlatform.hasSharedLibraries
+
+          # temporarily disabled due to breakage;
+          # see https://github.com/NixOS/nixpkgs/pull/243249
+          && !stdenv.targetPlatform.isWindows
+          && !(stdenv.targetPlatform.useLLVM or false)
+        ;
+      };
+      bintools = binutilsNoLibc;
+      libc = libcCross1;
+      extraPackages = [];
+  };
+
+  inherit (callPackage ../development/compilers/gcc/all.nix { inherit noSysDirs; })
+    gcc48 gcc49 gcc6 gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc13;
+
+  gcc_latest = gcc13;
+
+  # Use the same GCC version as the one from stdenv by default
+  gfortran = wrapCC (gcc.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran48 = wrapCC (gcc48.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran49 = wrapCC (gcc49.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran6 = wrapCC (gcc6.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran7 = wrapCC (gcc7.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran8 = wrapCC (gcc8.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran9 = wrapCC (gcc9.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran10 = wrapCC (gcc10.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran11 = wrapCC (gcc11.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran12 = wrapCC (gcc12.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  gfortran13 = wrapCC (gcc13.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
+  libgccjit = gcc.cc.override {
+    name = "libgccjit";
+    langFortran = false;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+    langJit = true;
+    enableLTO = false;
+  };
+
+  gcj = gcj6;
+  gcj6 = wrapCC (gcc6.cc.override {
+    name = "gcj";
+    langJava = true;
+    langFortran = false;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+    inherit zip unzip zlib boehmgc gettext pkg-config perl;
+    inherit (gnome2) libart_lgpl;
+  });
+
+  gnat = gnat12;
+
+  gnat11 = wrapCC (gcc11.cc.override {
+    name = "gnat";
+    langC = true;
+    langCC = false;
+    langAda = true;
+    profiledCompiler = false;
+    # As per upstream instructions building a cross compiler
+    # should be done with a (native) compiler of the same version.
+    # If we are cross-compiling GNAT, we may as well do the same.
+    gnat-bootstrap =
+      if stdenv.hostPlatform == stdenv.targetPlatform
+         && stdenv.buildPlatform == stdenv.hostPlatform
+      then buildPackages.gnat-bootstrap11
+      else buildPackages.gnat11;
+  });
+
+  gnat12 = wrapCC (gcc12.cc.override {
+    name = "gnat";
+    langC = true;
+    langCC = false;
+    langAda = true;
+    profiledCompiler = false;
+    # As per upstream instructions building a cross compiler
+    # should be done with a (native) compiler of the same version.
+    # If we are cross-compiling GNAT, we may as well do the same.
+    gnat-bootstrap =
+      if stdenv.hostPlatform == stdenv.targetPlatform
+         && stdenv.buildPlatform == stdenv.hostPlatform
+      then buildPackages.gnat-bootstrap12
+      else buildPackages.gnat12;
+    stdenv =
+      if stdenv.hostPlatform == stdenv.targetPlatform
+         && stdenv.buildPlatform == stdenv.hostPlatform
+         && stdenv.buildPlatform.isDarwin
+         && stdenv.buildPlatform.isx86_64
+      then overrideCC stdenv gnat-bootstrap12
+      else stdenv;
+  });
+
+  gnat13 = wrapCC (gcc13.cc.override {
+    name = "gnat";
+    langC = true;
+    langCC = false;
+    langAda = true;
+    profiledCompiler = false;
+    # As per upstream instructions building a cross compiler
+    # should be done with a (native) compiler of the same version.
+    # If we are cross-compiling GNAT, we may as well do the same.
+    gnat-bootstrap =
+      if stdenv.hostPlatform == stdenv.targetPlatform
+         && stdenv.buildPlatform == stdenv.hostPlatform
+      then buildPackages.gnat-bootstrap12
+      else buildPackages.gnat13;
+    stdenv =
+      if stdenv.hostPlatform == stdenv.targetPlatform
+         && stdenv.buildPlatform == stdenv.hostPlatform
+         && stdenv.buildPlatform.isDarwin
+         && stdenv.buildPlatform.isx86_64
+      then overrideCC stdenv gnat-bootstrap12
+      else stdenv;
+  });
+
+  gnat-bootstrap = gnat-bootstrap12;
+  gnat-bootstrap11 = wrapCC (callPackage ../development/compilers/gnat-bootstrap { majorVersion = "11"; });
+  gnat-bootstrap12 = wrapCCWith ({
+    cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "12"; };
+  } // lib.optionalAttrs (stdenv.hostPlatform.isDarwin) {
+    bintools = bintoolsDualAs;
+  });
+
+  gnu-smalltalk = callPackage ../development/compilers/gnu-smalltalk { };
+
+  gccgo = wrapCC (gcc.cc.override {
+    name = "gccgo";
+    langCC = true; #required for go.
+    langC = true;
+    langGo = true;
+    langJit = true;
+    profiledCompiler = false;
+  } // {
+    # not supported on darwin: https://github.com/golang/go/issues/463
+    meta.broken = stdenv.hostPlatform.isDarwin;
+  });
+
+  gccgo12 = wrapCC (gcc12.cc.override {
+    name = "gccgo";
+    langCC = true; #required for go.
+    langC = true;
+    langGo = true;
+    langJit = true;
+    profiledCompiler = false;
+  } // {
+    # not supported on darwin: https://github.com/golang/go/issues/463
+    meta.broken = stdenv.hostPlatform.isDarwin;
+  });
+
+  gccgo13 = wrapCC (gcc13.cc.override {
+    name = "gccgo";
+    langCC = true; #required for go.
+    langC = true;
+    langGo = true;
+    langJit = true;
+    profiledCompiler = false;
+  } // {
+    # not supported on darwin: https://github.com/golang/go/issues/463
+    meta.broken = stdenv.hostPlatform.isDarwin;
+  });
+
+  ghdl = ghdl-mcode;
+
+  ghdl-mcode = callPackage ../development/compilers/ghdl {
+    backend = "mcode";
+  };
+
+  ghdl-llvm = callPackage ../development/compilers/ghdl {
+    backend = "llvm";
+    inherit (llvmPackages_15) llvm;
+  };
+
+  gcl_2_6_13_pre = callPackage ../development/compilers/gcl/2.6.13-pre.nix { };
+
+  gcc-arm-embedded-6 = callPackage ../development/compilers/gcc-arm-embedded/6 { };
+  gcc-arm-embedded-7 = callPackage ../development/compilers/gcc-arm-embedded/7 { };
+  gcc-arm-embedded-8 = callPackage ../development/compilers/gcc-arm-embedded/8 { };
+  gcc-arm-embedded-9 = callPackage ../development/compilers/gcc-arm-embedded/9 { };
+  gcc-arm-embedded-10 = callPackage ../development/compilers/gcc-arm-embedded/10 { };
+  gcc-arm-embedded-11 = callPackage ../development/compilers/gcc-arm-embedded/11 { };
+  gcc-arm-embedded-12 = callPackage ../development/compilers/gcc-arm-embedded/12 { };
+  gcc-arm-embedded-13 = callPackage ../development/compilers/gcc-arm-embedded/13 { };
+  gcc-arm-embedded = gcc-arm-embedded-12;
+
+  # It would be better to match the default gcc so that there are no linking errors
+  # when using C/C++ libraries in D packages, but right now versions >= 12 are broken.
+  gdc = gdc11;
+  gdc11 = wrapCC (gcc11.cc.override {
+    name = "gdc";
+    langCC = false;
+    langC = false;
+    langD = true;
+    profiledCompiler = false;
+  });
+
+  gforth = callPackage ../development/compilers/gforth { };
+
+  gleam = callPackage ../development/compilers/gleam {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  gmqcc = callPackage ../development/compilers/gmqcc { };
+
+  gtk-server = callPackage ../development/interpreters/gtk-server { };
+
+  # Haskell and GHC
+
+  haskell = callPackage ./haskell-packages.nix { };
+
+  haskellPackages = dontRecurseIntoAttrs
+    # JS backend is only available for GHC >= 9.6
+    (if stdenv.hostPlatform.isGhcjs
+     then haskell.packages.native-bignum.ghc96
+     # Prefer native-bignum to avoid linking issues with gmp
+     else if stdenv.hostPlatform.isStatic
+     then haskell.packages.native-bignum.ghc94
+     else haskell.packages.ghc94)
+  // { __recurseIntoDerivationForReleaseJobs = true; };
+
+  # haskellPackages.ghc is build->host (it exposes the compiler used to build the
+  # set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more
+  # consistent with the gcc, gnat, clang etc. derivations
+  #
+  # We use targetPackages.haskellPackages.ghc if available since this also has
+  # the withPackages wrapper available. In the final cross-compiled package set
+  # however, targetPackages won't be populated, so we need to fall back to the
+  # plain, cross-compiled compiler (which is only theoretical at the moment).
+  ghc = targetPackages.haskellPackages.ghc or
+    # Prefer native-bignum to avoid linking issues with gmp
+    (if stdenv.targetPlatform.isStatic
+       then haskell.compiler.native-bignum.ghc94
+       else haskell.compiler.ghc94);
+
+  alex = haskell.lib.compose.justStaticExecutables haskellPackages.alex;
+
+  happy = haskell.lib.compose.justStaticExecutables haskellPackages.happy;
+
+  hscolour = haskell.lib.compose.justStaticExecutables haskellPackages.hscolour;
+
+  cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install;
+
+  stack = haskell.lib.compose.justStaticExecutables haskellPackages.stack;
+
+  hlint = haskell.lib.compose.justStaticExecutables haskellPackages.hlint;
+
+  krank = haskell.lib.compose.justStaticExecutables haskellPackages.krank;
+
+  stylish-cabal = haskell.lib.compose.justStaticExecutables haskellPackages.stylish-cabal;
+
+  lhs2tex = haskellPackages.lhs2tex;
+
+  all-cabal-hashes = callPackage ../data/misc/hackage { };
+
+  purescript = callPackage ../development/compilers/purescript/purescript { };
+
+  psc-package = callPackage ../development/compilers/purescript/psc-package { };
+
+  purescript-psa = nodePackages.purescript-psa;
+
+  purenix = haskell.lib.compose.justStaticExecutables haskellPackages.purenix;
+
+  spago = callPackage ../development/tools/purescript/spago { };
+
+  pulp = nodePackages.pulp;
+
+  pscid = nodePackages.pscid;
+
+  coreboot-toolchain = recurseIntoAttrs (callPackage ../development/tools/misc/coreboot-toolchain { });
+
+  remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
+
+  remarkable2-toolchain = callPackage ../development/tools/misc/remarkable/remarkable2-toolchain { };
+
+  spicedb     = callPackage ../servers/spicedb { };
+  spicedb-zed = callPackage ../servers/spicedb/zed.nix { };
+
+  tacacsplus = callPackage ../servers/tacacsplus { };
+
+  tamarin-prover =
+    (haskellPackages.callPackage ../applications/science/logic/tamarin-prover {
+      # NOTE: do not use the haskell packages 'graphviz' and 'maude'
+      inherit maude which;
+      graphviz = graphviz-nox;
+    });
+
+  inherit (callPackage ../development/compilers/haxe {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  })
+    haxe_4_2
+    haxe_4_1
+    haxe_4_0
+    ;
+
+  haxe = haxe_4_2;
+  haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { });
+  inherit (haxePackages) hxcpp;
+
+  hop = callPackage ../development/compilers/hop { };
+
+  hop-cli = callPackage ../tools/admin/hop-cli {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration;
+  };
+
+  falcon = callPackage ../development/interpreters/falcon {
+    stdenv = gcc10Stdenv;
+  };
+
+  fsharp = callPackage ../development/compilers/fsharp { };
+
+  fstar = callPackage ../development/compilers/fstar {
+    z3 = z3_4_8_5;
+  };
+
+  dotnetPackages = recurseIntoAttrs (callPackage ./dotnet-packages.nix {});
+
+  glslang = callPackage ../development/compilers/glslang { };
+
+  gnostic = callPackage ../development/compilers/gnostic { };
+
+  go-junit-report = callPackage ../development/tools/go-junit-report { };
+
+  gobang = callPackage ../development/tools/database/gobang {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
+  };
+
+  goblob = callPackage ../tools/security/goblob { };
+
+  gogetdoc = callPackage ../development/tools/gogetdoc { };
+
+  gox = callPackage ../development/tools/gox { };
+
+  goxlr-utility = callPackage ../tools/audio/goxlr-utility {};
+
+  gprolog = callPackage ../development/compilers/gprolog { };
+
+  gwe = callPackage ../tools/misc/gwe {
+    nvidia_x11 = linuxPackages.nvidia_x11;
+  };
+
+  gwt240 = callPackage ../development/compilers/gwt/2.4.0.nix { };
+
+  hvm = darwin.apple_sdk_11_0.callPackage ../development/compilers/hvm { };
+
+  iay = callPackage ../tools/misc/iay {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security Foundation Cocoa;
+  };
+
+  idrisPackages = dontRecurseIntoAttrs (callPackage ../development/idris-modules {
+    idris-no-deps = haskellPackages.idris;
+    pkgs = pkgs.__splicedPackages;
+  });
+
+  idris = idrisPackages.with-packages [ idrisPackages.base ] ;
+
+  idris2 = callPackage ../development/compilers/idris2 { };
+
+  inherit (callPackage ../development/tools/database/indradb { })
+    indradb-server
+    indradb-client;
+
+  instawow = callPackage ../games/instawow/default.nix { };
+
+  intel-graphics-compiler = callPackage ../development/compilers/intel-graphics-compiler { };
+
+  intercal = callPackage ../development/compilers/intercal { };
+
+  irony-server = callPackage ../development/tools/irony-server {
+    # The repository of irony to use -- must match the version of the employed emacs
+    # package.  Wishing we could merge it into one irony package, to avoid this issue,
+    # but its emacs-side expression is autogenerated, and we can't hook into it (other
+    # than peek into its version).
+    inherit (emacs.pkgs.melpaStablePackages) irony;
+  };
+
+  heptagon = callPackage ../development/compilers/heptagon { };
+
+  holo-build = callPackage ../tools/package-management/holo-build { };
+
+  hugs = callPackage ../development/interpreters/hugs { };
+
+  inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21;
+  openjfx = openjfx17;
+
+  openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap;
+  openjdk8 = javaPackages.compiler.openjdk8;
+  openjdk8_headless = javaPackages.compiler.openjdk8.headless;
+  jdk8 = openjdk8;
+  jdk8_headless = openjdk8_headless;
+  jre8 = openjdk8.jre;
+  jre8_headless = openjdk8_headless.jre;
+
+  openjdk11-bootstrap = javaPackages.compiler.openjdk11-bootstrap;
+  openjdk11 = javaPackages.compiler.openjdk11;
+  openjdk11_headless = javaPackages.compiler.openjdk11.headless;
+  jdk11 = openjdk11;
+  jdk11_headless = openjdk11_headless;
+
+  openjdk17-bootstrap = javaPackages.compiler.openjdk17-bootstrap;
+  openjdk17 = javaPackages.compiler.openjdk17;
+  openjdk17_headless = javaPackages.compiler.openjdk17.headless;
+  jdk17 = openjdk17;
+  jdk17_headless = openjdk17_headless;
+
+  openjdk16-bootstrap = javaPackages.compiler.openjdk16-bootstrap;
+
+  openjdk19 = javaPackages.compiler.openjdk19;
+  openjdk19_headless = javaPackages.compiler.openjdk19.headless;
+  jdk19 = openjdk19;
+  jdk19_headless = openjdk19_headless;
+
+  openjdk20 = javaPackages.compiler.openjdk20;
+  openjdk20_headless = javaPackages.compiler.openjdk20.headless;
+  jdk20 = openjdk20;
+  jdk20_headless = openjdk20_headless;
+
+  openjdk21 = javaPackages.compiler.openjdk21;
+  openjdk21_headless = javaPackages.compiler.openjdk21.headless;
+  jdk21 = openjdk21;
+  jdk21_headless = openjdk21_headless;
+
+  /* default JDK */
+  jdk = jdk19;
+  jdk_headless = jdk19_headless;
+
+  # Since the introduction of the Java Platform Module System in Java 9, Java
+  # no longer ships a separate JRE package.
+  #
+  # If you are building a 'minimal' system/image, you are encouraged to use
+  # 'jre_minimal' to build a bespoke JRE containing only the modules you need.
+  #
+  # For a general-purpose system, 'jre' defaults to the full JDK:
+  jre = jdk;
+  jre_headless = jdk_headless;
+
+  jre17_minimal = callPackage ../development/compilers/openjdk/jre.nix {
+    jdk = jdk17;
+  };
+  jre_minimal = callPackage ../development/compilers/openjdk/jre.nix { };
+
+  openjdk = jdk;
+  openjdk_headless = jdk_headless;
+
+  graalvmCEPackages =
+    recurseIntoAttrs (callPackage ../development/compilers/graalvm/community-edition { });
+  graalvm-ce = graalvmCEPackages.graalvm-ce;
+  buildGraalvmNativeImage = (callPackage ../build-support/build-graalvm-native-image {
+    graalvmDrv = graalvm-ce;
+  }).override;
+
+  openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
+
+  lingua-franca = callPackage ../development/compilers/lingua-franca { };
+
+  openspin = callPackage ../development/compilers/openspin { };
+
+  oraclejdk = jdkdistro true false;
+
+  oraclejdk8 = oraclejdk8distro true false;
+
+  oraclejre = lowPrio (jdkdistro false false);
+
+  oraclejre8 = lowPrio (oraclejdk8distro false false);
+
+  jrePlugin = jre8Plugin;
+
+  jre8Plugin = lowPrio (oraclejdk8distro false true);
+
+  jdkdistro = oraclejdk8distro;
+
+  oraclejdk8distro = installjdk: pluginSupport:
+    (callPackage ../development/compilers/oraclejdk/jdk8-linux.nix {
+      inherit installjdk pluginSupport;
+    });
+
+  oraclejdk11 = callPackage ../development/compilers/oraclejdk/jdk11-linux.nix { };
+
+  jasmin = callPackage ../development/compilers/jasmin { };
+
+  java-service-wrapper = callPackage ../tools/system/java-service-wrapper { };
+
+  jna = callPackage ../development/java-modules/jna { };
+
+  javacard-devkit = pkgsi686Linux.callPackage ../development/compilers/javacard-devkit { };
+
+  juniper = callPackage ../development/compilers/juniper { };
+
+  julia-lts = julia_16-bin;
+  julia-stable = julia_19;
+  julia = julia-stable;
+
+  julia_16-bin = callPackage ../development/compilers/julia/1.6-bin.nix { };
+  julia_18-bin = callPackage ../development/compilers/julia/1.8-bin.nix { };
+  julia_19-bin = callPackage ../development/compilers/julia/1.9-bin.nix { };
+
+  julia_18 = callPackage ../development/compilers/julia/1.8.nix { };
+  julia_19 = callPackage ../development/compilers/julia/1.9.nix { };
+
+  julia-lts-bin = julia_16-bin;
+  julia-stable-bin = julia_19-bin;
+  julia-bin = julia-stable-bin;
+
+  jwasm =  callPackage ../development/compilers/jwasm { };
+
+  kind2 = darwin.apple_sdk_11_0.callPackage ../development/compilers/kind2 { };
+
+  kingstvis = callPackage ../applications/science/electronics/kingstvis { };
+
+  knightos-genkfs = callPackage ../development/tools/knightos/genkfs { };
+
+  regenkfs = callPackage ../development/tools/knightos/regenkfs { };
+
+  knightos-kcc = callPackage ../development/tools/knightos/kcc { };
+
+  knightos-kimg = callPackage ../development/tools/knightos/kimg { };
+
+  knightos-kpack = callPackage ../development/tools/knightos/kpack { };
+
+  knightos-mkrom = callPackage ../development/tools/knightos/mkrom { };
+
+  remkrom = callPackage ../development/tools/knightos/remkrom { };
+
+  knightos-patchrom = callPackage ../development/tools/knightos/patchrom { };
+
+  knightos-mktiupgrade = callPackage ../development/tools/knightos/mktiupgrade { };
+
+  knightos-scas = callPackage ../development/tools/knightos/scas { };
+
+  knightos-z80e = callPackage ../development/tools/knightos/z80e { };
+
+  koka = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage ../development/compilers/koka { });
+
+  kotlin = callPackage ../development/compilers/kotlin { };
+  kotlin-native = callPackage ../development/compilers/kotlin/native.nix { };
+
+  lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
+    fpc = fpc;
+  };
+
+  lazarus-qt = libsForQt5.callPackage ../development/compilers/fpc/lazarus.nix {
+    fpc = fpc;
+    withQt = true;
+  };
+
+  lessc = nodePackages.less;
+
+  liquibase = callPackage ../development/tools/database/liquibase { };
+
+  lizardfs = callPackage ../tools/filesystems/lizardfs { };
+
+  lobster = callPackage ../development/compilers/lobster {
+    inherit (darwin.apple_sdk.frameworks)
+      CoreFoundation Cocoa AudioToolbox OpenGL Foundation ForceFeedback;
+  };
+
+  lld = llvmPackages.lld;
+  lld_6 = llvmPackages_6.lld;
+  lld_8 = llvmPackages_8.lld;
+  lld_9 = llvmPackages_9.lld;
+  lld_10 = llvmPackages_10.lld;
+  lld_11 = llvmPackages_11.lld;
+  lld_12 = llvmPackages_12.lld;
+  lld_13 = llvmPackages_13.lld;
+  lld_14 = llvmPackages_14.lld;
+  lld_15 = llvmPackages_15.lld;
+  lld_16 = llvmPackages_16.lld;
+  lld_17 = llvmPackages_17.lld;
+
+  lldb = lldb_14;
+  lldb_6 = llvmPackages_6.lldb;
+  lldb_8 = llvmPackages_8.lldb;
+  lldb_9 = llvmPackages_9.lldb;
+  lldb_10 = llvmPackages_10.lldb;
+  lldb_11 = llvmPackages_11.lldb;
+  lldb_12 = llvmPackages_12.lldb;
+  lldb_13 = llvmPackages_13.lldb;
+  lldb_14 = llvmPackages_14.lldb;
+  lldb_15 = llvmPackages_15.lldb;
+  lldb_16 = llvmPackages_16.lldb;
+  lldb_17 = llvmPackages_17.lldb;
+
+  llvm = llvmPackages.llvm;
+  llvm_6  = llvmPackages_6.llvm;
+  llvm_8  = llvmPackages_8.llvm;
+  llvm_9  = llvmPackages_9.llvm;
+  llvm_10 = llvmPackages_10.llvm;
+  llvm_11 = llvmPackages_11.llvm;
+  llvm_12 = llvmPackages_12.llvm;
+  llvm_13 = llvmPackages_13.llvm;
+  llvm_14 = llvmPackages_14.llvm;
+  llvm_15 = llvmPackages_15.llvm;
+  llvm_16 = llvmPackages_16.llvm;
+  llvm_17 = llvmPackages_17.llvm;
+
+  libllvm = llvmPackages.libllvm;
+  llvm-manpages = llvmPackages.llvm-manpages;
+
+  llvmPackages = let
+    # This returns the minimum supported version for the platform. The
+    # assumption is that or any later version is good.
+    choose = platform:
+      /**/ if platform.isDarwin then 16
+      else if platform.isFreeBSD then 12
+      else if platform.isAndroid then 12
+      else if platform.isLinux then 16
+      else if platform.isWasm then 16
+      else 14;
+    # We take the "max of the mins". Why? Since those are lower bounds of the
+    # supported version set, this is like intersecting those sets and then
+    # taking the min bound of that.
+    minSupported = toString (lib.trivial.max (choose stdenv.hostPlatform) (choose
+      stdenv.targetPlatform));
+  in pkgs.${"llvmPackages_${minSupported}"};
+
+  llvmPackages_6 = recurseIntoAttrs (callPackage ../development/compilers/llvm/6 {
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_6.tools;
+    targetLlvm = targetPackages.llvmPackages_6.llvm or llvmPackages_6.llvm;
+    targetLlvmLibraries = targetPackages.llvmPackages_6.libraries or llvmPackages_6.libraries;
+  });
+
+  llvmPackages_8 = recurseIntoAttrs (callPackage ../development/compilers/llvm/8 {
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_8.tools;
+    targetLlvm = targetPackages.llvmPackages_8.llvm or llvmPackages_8.llvm;
+    targetLlvmLibraries = targetPackages.llvmPackages_8.libraries or llvmPackages_8.libraries;
+  });
+
+  llvmPackages_9 = recurseIntoAttrs (callPackage ../development/compilers/llvm/9 {
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_9.tools;
+    targetLlvm = targetPackages.llvmPackages_9.llvm or llvmPackages_9.llvm;
+    targetLlvmLibraries = targetPackages.llvmPackages_9.libraries or llvmPackages_9.libraries;
+  });
+
+  llvmPackages_10 = recurseIntoAttrs (callPackage ../development/compilers/llvm/10 {
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_10.tools;
+    targetLlvm = targetPackages.llvmPackages_10.llvm or llvmPackages_10.llvm;
+    targetLlvmLibraries = targetPackages.llvmPackages_10.libraries or llvmPackages_10.libraries;
+  });
+
+  llvmPackages_11 = recurseIntoAttrs (callPackage ../development/compilers/llvm/11 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_11.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_11.libraries or llvmPackages_11.libraries;
+    targetLlvm = targetPackages.llvmPackages_11.llvm or llvmPackages_11.llvm;
+  }));
+
+  llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_12.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
+    targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm;
+  }));
+
+  llvmPackages_13 = recurseIntoAttrs (callPackage ../development/compilers/llvm/13 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_13.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_13.libraries or llvmPackages_13.libraries;
+    targetLlvm = targetPackages.llvmPackages_13.llvm or llvmPackages_13.llvm;
+  }));
+
+  llvmPackages_14 = recurseIntoAttrs (callPackage ../development/compilers/llvm/14 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_14.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries;
+    targetLlvm = targetPackages.llvmPackages_14.llvm or llvmPackages_14.llvm;
+  }));
+
+  llvmPackages_15 = recurseIntoAttrs (callPackage ../development/compilers/llvm/15 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_15.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_15.libraries or llvmPackages_15.libraries;
+    targetLlvm = targetPackages.llvmPackages_15.llvm or llvmPackages_15.llvm;
+  }));
+
+  llvmPackages_16 = recurseIntoAttrs (callPackage ../development/compilers/llvm/16 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_16.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_16.libraries or llvmPackages_16.libraries;
+    targetLlvm = targetPackages.llvmPackages_16.llvm or llvmPackages_16.llvm;
+  }));
+
+  llvmPackages_17 = recurseIntoAttrs (callPackage ../development/compilers/llvm/17 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_17.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_17.libraries or llvmPackages_17.libraries;
+    targetLlvm = targetPackages.llvmPackages_17.llvm or llvmPackages_17.llvm;
+  }));
+
+  lorri = callPackage ../tools/misc/lorri {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  lunarml = callPackage ../development/compilers/lunarml { };
+
+  manticore = callPackage ../development/compilers/manticore { };
+
+  marst = callPackage ../development/compilers/marst { };
+
+  mercury = callPackage ../development/compilers/mercury {
+    jdk_headless = openjdk8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  microscheme = callPackage ../development/compilers/microscheme { };
+
+  minimacy = callPackage ../development/compilers/minimacy { };
+
+  mint = callPackage ../development/compilers/mint { crystal = crystal_1_2; };
+
+  mitama-cpp-result = callPackage ../development/libraries/mitama-cpp-result { };
+
+  mitscheme = callPackage ../development/compilers/mit-scheme {
+    texinfo = texinfo6;
+  };
+
+  mitschemeX11 = mitscheme.override {
+    enableX11 = true;
+  };
+
+  miranda = callPackage ../development/compilers/miranda { };
+
+  mlkit = callPackage ../development/compilers/mlkit {};
+
+  inherit (callPackage ../development/compilers/mlton {})
+    mlton20130715
+    mlton20180207Binary
+    mlton20180207
+    mlton20210107
+    mltonHEAD;
+
+  mlton = mlton20210107;
+
+  mono = mono6;
+
+  mono4 = lowPrio (callPackage ../development/compilers/mono/4.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  });
+
+  mono5 = callPackage ../development/compilers/mono/5.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  mono6 = callPackage ../development/compilers/mono/6.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
+
+  roslyn = callPackage ../development/compilers/roslyn { };
+
+  msbuild = callPackage ../development/tools/build-managers/msbuild { };
+
+  mosml = callPackage ../development/compilers/mosml { };
+
+  mozart2 = callPackage ../development/compilers/mozart {
+    emacs = emacs-nox;
+    jre_headless = jre8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  mozart2-binary = callPackage ../development/compilers/mozart/binary.nix { };
+
+  muonlang = callPackage ../development/compilers/muonlang { };
+
+  inherit (callPackages ../development/compilers/nim
+                        { inherit (darwin) Security;  }
+          ) nim-unwrapped-1 nim-unwrapped-2 nim1 nim2;
+  nim = nim2;
+  buildNimPackage = callPackage ../development/compilers/nim/build-nim-package.nix { };
+  nimOverrides = callPackage ./nim-overrides.nix { };
+
+  neko = callPackage ../development/compilers/neko { };
+
+  nextpnr = callPackage ../development/compilers/nextpnr { };
+
+  nextpnrWithGui = libsForQt5.callPackage ../development/compilers/nextpnr {
+    enableGui = true;
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+  };
+
+  acme = callPackage ../development/compilers/acme { };
+
+  nasm = callPackage ../development/compilers/nasm { };
+
+  nasmfmt = callPackage ../development/tools/nasmfmt { };
+
+  nqc = callPackage ../development/compilers/nqc { };
+
+  nvidia_cg_toolkit = callPackage ../development/compilers/nvidia-cg-toolkit { };
+
+  obliv-c = callPackage ../development/compilers/obliv-c {
+    stdenv = gcc10StdenvCompat;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
+
+  ocaml-ng = callPackage ./ocaml-packages.nix { } // { __attrsFailEvaluation = true; };
+  ocaml = ocamlPackages.ocaml;
+
+  ocamlPackages = recurseIntoAttrs ocaml-ng.ocamlPackages;
+
+  ocaml-crunch = ocamlPackages.crunch.bin;
+
+  inherit (ocamlPackages)
+    ocamlformat # latest version
+    ocamlformat_0_19_0 ocamlformat_0_20_0 ocamlformat_0_20_1 ocamlformat_0_21_0
+    ocamlformat_0_22_4 ocamlformat_0_23_0 ocamlformat_0_24_1 ocamlformat_0_25_1
+    ocamlformat_0_26_0 ocamlformat_0_26_1;
+
+  inherit (ocamlPackages) odig;
+
+  orc = callPackage ../development/compilers/orc { };
+
+  orocos-kdl = callPackage ../development/libraries/orocos-kdl { };
+
+  ber_metaocaml = callPackage ../development/compilers/ocaml/ber-metaocaml.nix { };
+
+  ocaml_make = callPackage ../development/ocaml-modules/ocamlmake { };
+
+  ocaml-top = callPackage ../development/tools/ocaml/ocaml-top { };
+
+  ocsigen-i18n = callPackage ../development/tools/ocaml/ocsigen-i18n { };
+
+  opaline = callPackage ../development/tools/ocaml/opaline { };
+
+  opam = callPackage ../development/tools/ocaml/opam {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  opam-installer = callPackage ../development/tools/ocaml/opam/installer.nix { };
+
+  opam2json = callPackage ../development/tools/ocaml/opam2json { };
+
+  wrapWatcom = callPackage ../development/compilers/open-watcom/wrapper.nix { };
+  open-watcom-v2-unwrapped = callPackage ../development/compilers/open-watcom/v2.nix { };
+  open-watcom-v2 = wrapWatcom open-watcom-v2-unwrapped { };
+  open-watcom-bin-unwrapped = callPackage ../development/compilers/open-watcom/bin.nix { };
+  open-watcom-bin = wrapWatcom open-watcom-bin-unwrapped { };
+
+  passerine = callPackage ../development/compilers/passerine { };
+
+  pforth = callPackage ../development/compilers/pforth { };
+
+  picat = callPackage ../development/compilers/picat { };
+
+  ponyc = callPackage ../development/compilers/ponyc {
+    # Upstream pony no longer supports GCC
+    stdenv = llvmPackages.stdenv;
+  };
+
+  blaze = callPackage ../development/libraries/blaze { };
+
+  pony-corral = callPackage ../development/compilers/ponyc/pony-corral.nix { };
+
+  prqlc = callPackage ../development/tools/database/prqlc { };
+
+  qbe = callPackage ../development/compilers/qbe { };
+
+  rasm = callPackage ../development/compilers/rasm { };
+
+  replibyte = callPackage ../development/tools/database/replibyte {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rgbds = callPackage ../development/compilers/rgbds { };
+
+  rml = callPackage ../development/compilers/rml { };
+
+  rgxg = callPackage ../tools/text/rgxg { };
+
+  rtags = callPackage ../development/tools/rtags {
+    inherit (darwin) apple_sdk;
+  };
+
+  wrapRustcWith = { rustc-unwrapped, ... } @ args: callPackage ../build-support/rust/rustc-wrapper args;
+  wrapRustc = rustc-unwrapped: wrapRustcWith { inherit rustc-unwrapped; };
+
+  rust_1_74 = callPackage ../development/compilers/rust/1_74.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
+    llvm_16 = llvmPackages_16.libllvm;
+  };
+  rust = rust_1_74;
+
+  mrustc = callPackage ../development/compilers/mrustc { };
+  mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { };
+  mrustc-bootstrap = callPackage ../development/compilers/mrustc/bootstrap.nix {
+    openssl = openssl_1_1;
+  };
+
+  rustPackages_1_74 = rust_1_74.packages.stable;
+  rustPackages = rustPackages_1_74;
+
+  inherit (rustPackages) cargo cargo-auditable cargo-auditable-cargo-wrapper clippy rustc rustPlatform;
+
+  # https://github.com/NixOS/nixpkgs/issues/89426
+  rustc-wasm32 = wrapRustc ((rustc.unwrapped.override {
+    stdenv = stdenv.override {
+      targetPlatform = lib.systems.elaborate {
+        # lib.systems.elaborate won't recognize "unknown" as the last component.
+        config = "wasm32-unknown-wasi";
+        rust.rustcTarget = "wasm32-unknown-unknown";
+      };
+    };
+  }).overrideAttrs (old: {
+    configureFlags = old.configureFlags ++ ["--set=build.docs=false"];
+  }));
+
+  makeRustPlatform = callPackage ../development/compilers/rust/make-rust-platform.nix { };
+
+  buildRustCrate = callPackage ../build-support/rust/build-rust-crate { };
+  buildRustCrateHelpers = callPackage ../build-support/rust/build-rust-crate/helpers.nix { };
+
+  cargo2junit = callPackage ../development/tools/rust/cargo2junit { };
+
+  cargo-espflash = callPackage ../development/tools/rust/cargo-espflash {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  cargo-web = callPackage ../development/tools/rust/cargo-web {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  cargo-flamegraph = callPackage ../development/tools/rust/cargo-flamegraph {
+    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (linuxPackages) perf;
+  };
+
+  defaultCrateOverrides = callPackage ../build-support/rust/default-crate-overrides.nix { };
+
+  cargo-about = callPackage ../development/tools/rust/cargo-about { };
+  cargo-all-features = callPackage ../development/tools/rust/cargo-all-features { };
+  cargo-apk = callPackage ../development/tools/rust/cargo-apk { };
+  cargo-audit = callPackage ../development/tools/rust/cargo-audit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-benchcmp = callPackage ../development/tools/rust/cargo-benchcmp { };
+  cargo-binstall = callPackage ../development/tools/rust/cargo-binstall { };
+  cargo-bisect-rustc = callPackage ../development/tools/rust/cargo-bisect-rustc {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-bitbake = callPackage ../development/tools/rust/cargo-bitbake { };
+  cargo-c = callPackage ../development/tools/rust/cargo-c {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+  cargo-clone = callPackage ../development/tools/rust/cargo-clone {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+  cargo-codspeed = callPackage ../development/tools/rust/cargo-codspeed {
+    rustPlatform = makeRustPlatform {
+      stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+      inherit rustc cargo;
+    };
+  };
+  cargo-component = callPackage ../development/tools/rust/cargo-component { };
+  cargo-cranky = callPackage ../development/tools/rust/cargo-cranky { };
+  cargo-criterion = callPackage ../development/tools/rust/cargo-criterion { };
+  cargo-cyclonedx = callPackage ../development/tools/rust/cargo-cyclonedx {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration CoreFoundation;
+  };
+  cargo-deadlinks = callPackage ../development/tools/rust/cargo-deadlinks {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-deb = callPackage ../development/tools/rust/cargo-deb { };
+  cargo-deps = callPackage ../development/tools/rust/cargo-deps { };
+  cargo-docset = callPackage ../development/tools/rust/cargo-docset { };
+  cargo-duplicates = callPackage ../development/tools/rust/cargo-duplicates { };
+  cargo-edit = callPackage ../development/tools/rust/cargo-edit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-leptos = callPackage ../development/tools/rust/cargo-leptos { };
+  cargo-kcov = callPackage ../development/tools/rust/cargo-kcov { };
+  cargo-graph = callPackage ../development/tools/rust/cargo-graph { };
+  cargo-guppy = callPackage ../development/tools/rust/cargo-guppy { };
+  cargo-hack = callPackage ../development/tools/rust/cargo-hack { };
+  cargo-license = callPackage ../development/tools/rust/cargo-license { };
+  cargo-llvm-cov = callPackage ../development/tools/rust/cargo-llvm-cov { };
+  cargo-llvm-lines = callPackage ../development/tools/rust/cargo-llvm-lines { };
+  cargo-local-registry = callPackage ../development/tools/rust/cargo-local-registry { };
+  cargo-lock = callPackage ../development/tools/rust/cargo-lock { };
+  cargo-machete = callPackage ../development/tools/rust/cargo-machete { };
+  cargo-outdated = callPackage ../development/tools/rust/cargo-outdated {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security SystemConfiguration;
+  };
+  cargo-pgx_0_6_1 = callPackage ../development/tools/rust/cargo-pgx/0_6_1.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-pgx_0_7_1 = callPackage ../development/tools/rust/cargo-pgx/0_7_1.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-pgx_0_7_4 = callPackage ../development/tools/rust/cargo-pgx/0_7_4.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-pgx = cargo-pgx_0_7_4;
+  buildPgxExtension = callPackage ../development/tools/rust/cargo-pgx/buildPgxExtension.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-pgrx = callPackage ../development/tools/rust/cargo-pgrx/default.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  buildPgrxExtension = callPackage ../development/tools/rust/cargo-pgrx/buildPgrxExtension.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-release = callPackage ../development/tools/rust/cargo-release { };
+  cargo-rr = callPackage ../development/tools/rust/cargo-rr { };
+  cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-update = callPackage ../development/tools/rust/cargo-update { };
+
+  cargo-asm = callPackage ../development/tools/rust/cargo-asm {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-bazel = callPackage ../development/tools/rust/cargo-bazel {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-binutils = callPackage ../development/tools/rust/cargo-binutils { };
+  cargo-bloat = callPackage ../development/tools/rust/cargo-bloat { };
+  cargo-bolero = callPackage ../development/tools/rust/cargo-bolero { };
+  cargo-bundle = callPackage ../development/tools/rust/cargo-bundle { };
+  cargo-bundle-licenses = callPackage ../development/tools/rust/cargo-bundle-licenses { };
+  cargo-cache = callPackage ../development/tools/rust/cargo-cache {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-careful = callPackage ../development/tools/rust/cargo-careful { };
+  cargo-chef = callPackage ../development/tools/rust/cargo-chef { };
+  cargo-crev = callPackage ../development/tools/rust/cargo-crev {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration CoreFoundation;
+  };
+  cargo-cross = callPackage ../development/tools/rust/cargo-cross { };
+  cargo-deny = callPackage ../development/tools/rust/cargo-deny { };
+  cargo-depgraph = callPackage ../development/tools/rust/cargo-depgraph { };
+  cargo-dephell = callPackage ../development/tools/rust/cargo-dephell { };
+  cargo-diet = callPackage ../development/tools/rust/cargo-diet { };
+  cargo-dist = callPackage ../development/tools/rust/cargo-dist { };
+  cargo-espmonitor = callPackage ../development/tools/rust/cargo-espmonitor { };
+  cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
+  cargo-hakari = callPackage ../development/tools/rust/cargo-hakari { };
+  cargo-feature = callPackage ../development/tools/rust/cargo-feature { };
+  cargo-fund = callPackage ../development/tools/rust/cargo-fund {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
+  cargo-geiger = callPackage ../development/tools/rust/cargo-geiger { };
+
+  cargo-hf2 = callPackage ../development/tools/rust/cargo-hf2 {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+  cargo-info = callPackage ../development/tools/rust/cargo-info { };
+  cargo-inspect = callPackage ../development/tools/rust/cargo-inspect {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-insta = callPackage ../development/tools/rust/cargo-insta { };
+  cargo-lambda = callPackage ../development/tools/rust/cargo-lambda {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+  cargo-limit = callPackage ../development/tools/rust/cargo-limit { };
+  cargo-make = callPackage ../development/tools/rust/cargo-make { };
+  cargo-modules = callPackage ../development/tools/rust/cargo-modules { };
+  cargo-mommy = callPackage ../development/tools/rust/cargo-mommy { };
+  cargo-msrv = callPackage ../development/tools/rust/cargo-msrv {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-mutants = callPackage ../development/tools/rust/cargo-mutants { };
+
+  cargo-ndk = callPackage ../development/tools/rust/cargo-ndk {
+    inherit (darwin.apple_sdk.frameworks) CoreGraphics Foundation;
+  };
+
+  cargo-nextest = callPackage ../development/tools/rust/cargo-nextest { };
+  cargo-play = callPackage ../development/tools/rust/cargo-play { };
+  cargo-profiler = callPackage ../development/tools/rust/cargo-profiler { };
+  cargo-raze = callPackage ../development/tools/rust/cargo-raze {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-rdme = callPackage ../by-name/ca/cargo-rdme/package.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-readme = callPackage ../development/tools/rust/cargo-readme { };
+  cargo-risczero = callPackage ../development/tools/rust/cargo-risczero { };
+  cargo-run-bin = callPackage ../development/tools/rust/cargo-run-bin {};
+  cargo-semver-checks = callPackage ../development/tools/rust/cargo-semver-checks { };
+
+  cargo-show-asm = callPackage ../development/tools/rust/cargo-show-asm { };
+  cargo-shuttle = callPackage ../development/tools/rust/cargo-shuttle { };
+
+  cargo-sort = callPackage ../development/tools/rust/cargo-sort { };
+  cargo-spellcheck = callPackage ../development/tools/rust/cargo-spellcheck {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+  cargo-supply-chain = callPackage ../development/tools/rust/cargo-supply-chain { };
+  cargo-sweep = callPackage ../development/tools/rust/cargo-sweep { };
+  cargo-sync-readme = callPackage ../development/tools/rust/cargo-sync-readme { };
+  cargo-tally = callPackage ../development/tools/rust/cargo-tally { };
+  cargo-temp = callPackage ../development/tools/rust/cargo-temp { };
+  cargo-toml-lint = callPackage ../development/tools/rust/cargo-toml-lint { };
+  cargo-udeps = callPackage ../development/tools/rust/cargo-udeps {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration;
+  };
+  cargo-ui = callPackage ../development/tools/rust/cargo-ui { };
+  cargo-unused-features = callPackage ../development/tools/rust/cargo-unused-features { };
+
+  cargo-tauri = callPackage ../development/tools/rust/cargo-tauri { };
+  cargo-mobile2 = callPackage ../development/tools/rust/cargo-mobile2 { };
+
+  cargo-valgrind = callPackage ../development/tools/rust/cargo-valgrind { };
+  cargo-vet = callPackage ../development/tools/rust/cargo-vet {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-wasi = callPackage ../development/tools/rust/cargo-wasi {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-watch = callPackage ../development/tools/rust/cargo-watch {
+    inherit (darwin.apple_sdk.frameworks) Foundation Cocoa;
+  };
+  cargo-wipe = callPackage ../development/tools/rust/cargo-wipe { };
+  cargo-workspaces = callPackage ../development/tools/rust/cargo-workspaces { };
+  cargo-xbuild = callPackage ../development/tools/rust/cargo-xbuild { };
+  cargo-generate = callPackage ../development/tools/rust/cargo-generate { };
+  cargo-bootimage = callPackage ../development/tools/rust/bootimage { };
+
+  cargo-whatfeatures = callPackage ../development/tools/rust/cargo-whatfeatures {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  cargo-public-api = callPackage ../development/tools/rust/cargo-public-api { };
+
+  cargo-zigbuild = callPackage ../development/tools/rust/cargo-zigbuild { };
+
+  cauwugo = callPackage ../development/tools/rust/cauwugo { };
+
+  crate2nix = callPackage ../development/tools/rust/crate2nix { };
+
+  critcmp = callPackage ../development/tools/rust/critcmp { };
+
+  devspace = callPackage ../development/tools/misc/devspace { };
+
+  djlint = callPackage ../development/tools/djlint { };
+
+  leptosfmt = callPackage ../development/tools/rust/leptosfmt { };
+
+  maturin = callPackage ../development/tools/rust/maturin {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  panamax = callPackage ../development/tools/rust/panamax { };
+
+  ograc = callPackage ../development/tools/rust/ograc { };
+
+  opensmalltalk-vm = callPackage ../development/compilers/opensmalltalk-vm { };
+
+  opensycl = darwin.apple_sdk_11_0.callPackage ../development/compilers/opensycl { };
+  opensyclWithRocm = opensycl.override { rocmSupport = true; };
+
+  pest-ide-tools = callPackage ../development/tools/misc/pest-ide-tools { };
+
+  ravedude = callPackage ../development/tools/rust/ravedude { };
+
+  ra-multiplex = callPackage ../development/tools/rust/ra-multiplex {};
+
+  rhack = callPackage ../development/tools/rust/rhack { };
+  roogle = callPackage ../development/tools/rust/roogle { };
+  rustfmt = rustPackages.rustfmt;
+  rust-analyzer-unwrapped = callPackage ../development/tools/rust/rust-analyzer {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+  rust-analyzer = callPackage ../development/tools/rust/rust-analyzer/wrapper.nix { };
+  rust-audit-info = callPackage ../development/tools/rust/rust-audit-info { };
+  rust-bindgen-unwrapped = callPackage ../development/tools/rust/bindgen/unwrapped.nix { };
+  rust-bindgen = callPackage ../development/tools/rust/bindgen { };
+  rust-cbindgen = callPackage ../development/tools/rust/cbindgen {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  rust-script = callPackage ../development/tools/rust/rust-script { };
+  rustup = callPackage ../development/tools/rust/rustup {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+  rustup-toolchain-install-master = callPackage ../development/tools/rust/rustup-toolchain-install-master {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  rusty-man = callPackage ../development/tools/rust/rusty-man { };
+  rustycli = callPackage ../development/tools/rust/rustycli { };
+  specr-transpile = callPackage ../development/tools/rust/specr-transpile { };
+  typeshare = callPackage ../development/tools/rust/typeshare { };
+
+  sagittarius-scheme = callPackage ../development/compilers/sagittarius-scheme { };
+
+  roswell = callPackage ../development/tools/roswell { };
+
+  scala_2_10 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.10"; jre = jdk8; };
+  scala_2_11 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.11"; jre = jdk8; };
+  scala_2_12 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.12"; };
+  scala_2_13 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.13"; };
+  scala_3 = callPackage ../development/compilers/scala { };
+
+  scala = scala_2_13;
+  scala-runners = callPackage ../development/compilers/scala-runners {
+    coursier = coursier.override { jre = jdk8; };
+  };
+
+  scalafix = callPackage ../development/tools/scalafix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  scalafmt = callPackage ../development/tools/scalafmt { };
+
+  scryer-prolog = callPackage ../development/compilers/scryer-prolog { };
+
+  seren = callPackage ../applications/networking/instant-messengers/seren { };
+
+  serialdv = callPackage ../development/libraries/serialdv {  };
+
+  serpent = callPackage ../development/compilers/serpent { };
+
+  shmig = callPackage ../development/tools/database/shmig { };
+
+  sleek = callPackage ../development/tools/database/sleek { };
+
+  smlfmt = callPackage ../development/tools/smlfmt { };
+
+  # smlnjBootstrap should be redundant, now that smlnj works on Darwin natively
+  smlnjBootstrap = callPackage ../development/compilers/smlnj/bootstrap.nix { };
+  smlnj = callPackage ../development/compilers/smlnj {
+    inherit (darwin) Libsystem;
+  };
+
+  smlpkg = callPackage ../tools/package-management/smlpkg { };
+
+  solc = callPackage ../development/compilers/solc { };
+
+  souffle = callPackage ../development/compilers/souffle { };
+
+  spasm-ng = callPackage ../development/compilers/spasm-ng { };
+
+  spirv-llvm-translator = callPackage ../development/compilers/spirv-llvm-translator { };
+
+  sqldeveloper = callPackage ../development/tools/database/sqldeveloper {
+    jdk = oraclejdk;
+  };
+
+  sqlfluff = callPackage ../development/tools/database/sqlfluff { };
+
+  sqlx-cli = callPackage ../development/tools/rust/sqlx-cli {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation Security;
+  };
+
+  squeak = callPackage ../development/compilers/squeak {
+    stdenv = clangStdenv;
+  };
+
+  squirrel-sql = callPackage ../development/tools/database/squirrel-sql {
+    drivers = [ jtds_jdbc mssql_jdbc mysql_jdbc postgresql_jdbc ];
+  };
+
+  surrealdb-migrations = callPackage ../development/tools/database/surrealdb-migrations {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  stalin = callPackage ../development/compilers/stalin { };
+
+  stanc = callPackage ../development/compilers/stanc {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14_janeStreet_0_15;
+  };
+
+  metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
+
+  svd2rust = callPackage ../development/tools/rust/svd2rust { };
+
+  svdtools = callPackage ../development/embedded/svdtools { };
+
+  swiftPackages = recurseIntoAttrs (callPackage ../development/compilers/swift { });
+  inherit (swiftPackages) swift swiftpm sourcekit-lsp swift-format;
+
+  swiftpm2nix = callPackage ../development/tools/swiftpm2nix { };
+
+  swiProlog = callPackage ../development/compilers/swi-prolog {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  swiPrologWithGui = swiProlog.override { withGui = true; };
+
+  tbb_2020_3 = callPackage ../development/libraries/tbb/2020_3.nix { };
+  tbb_2021_8 = callPackage ../development/libraries/tbb { };
+  # many packages still fail with latest version
+  tbb = tbb_2020_3;
+
+  terra = callPackage ../development/compilers/terra {
+    llvmPackages = llvmPackages_11;
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Cocoa Foundation;
+  };
+
+  teyjus = callPackage ../development/compilers/teyjus {
+    inherit (ocamlPackages) buildDunePackage;
+  };
+
+  thrust = callPackage ../development/tools/thrust {
+    gconf = gnome2.GConf;
+  };
+
+  tinycc = darwin.apple_sdk_11_0.callPackage ../development/compilers/tinycc { };
+
+  tinygo = callPackage ../development/compilers/tinygo {
+    llvmPackages = llvmPackages_16;
+    wasi-libc = pkgsCross.wasi32.wasilibc;
+  };
+
+  tinyscheme = callPackage ../development/interpreters/tinyscheme { };
+
+  tbox = callPackage ../development/libraries/tbox { };
+
+  typescript = callPackage ../development/compilers/typescript { };
+
+  bupc = callPackage ../development/compilers/bupc { };
+
+  ubports-click = python3Packages.callPackage ../development/tools/click { };
+
+  uasm = callPackage ../development/compilers/uasm { };
+
+  urn = callPackage ../development/compilers/urn { };
+
+  urweb = callPackage ../development/compilers/urweb {
+    icu = icu67;
+  };
+
+  urbackup-client = callPackage ../applications/backup/urbackup-client { };
+
+  vlang = callPackage ../development/compilers/vlang { };
+
+  vala-lint = callPackage ../development/tools/vala-lint { };
+
+  vcard = python3Packages.toPythonApplication python3Packages.vcard;
+
+  inherit (callPackage ../development/compilers/vala { })
+    vala_0_48
+    vala_0_54
+    vala_0_56
+    vala;
+
+  vyper = with python3Packages; toPythonApplication vyper;
+
+  wazero = callPackage ../development/interpreters/wazero { };
+
+  wcc = callPackage ../development/compilers/wcc { };
+
+  wla-dx = callPackage ../development/compilers/wla-dx { };
+
+  wrapCCWith =
+    { cc
+    , # This should be the only bintools runtime dep with this sort of logic. The
+      # Others should instead delegate to the next stage's choice with
+      # `targetPackages.stdenv.cc.bintools`. This one is different just to
+      # provide the default choice, avoiding infinite recursion.
+      # See the bintools attribute for the logic and reasoning. We need to provide
+      # a default here, since eval will hit this function when bootstrapping
+      # stdenv where the bintools attribute doesn't exist, but will never actually
+      # be evaluated -- callPackage ends up being too eager.
+      bintools ? pkgs.bintools
+    , libc ? bintools.libc
+    , # libc++ from the default LLVM version is bound at the top level, but we
+      # want the C++ library to be explicitly chosen by the caller, and null by
+      # default.
+      libcxx ? null
+    , extraPackages ? lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) ((threadsCrossFor cc.version).package)
+    , nixSupport ? {}
+    , ...
+    } @ extraArgs:
+      callPackage ../build-support/cc-wrapper (let self = {
+    nativeTools = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeTools or false;
+    nativeLibc = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeLibc or false;
+    nativePrefix = stdenv.cc.nativePrefix or "";
+    noLibc = !self.nativeLibc && (self.libc == null);
+
+    isGNU = cc.isGNU or false;
+    isClang = cc.isClang or false;
+
+    inherit cc bintools libc libcxx extraPackages nixSupport zlib;
+  } // extraArgs; in self);
+
+  wrapCC = cc: wrapCCWith {
+    inherit cc;
+  };
+
+  wrapBintoolsWith =
+    { bintools
+    , libc ? if stdenv.targetPlatform != stdenv.hostPlatform then libcCross else stdenv.cc.libc
+    , ...
+    } @ extraArgs:
+      callPackage ../build-support/bintools-wrapper (let self = {
+    nativeTools = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeTools or false;
+    nativeLibc = stdenv.targetPlatform == stdenv.hostPlatform && stdenv.cc.nativeLibc or false;
+    nativePrefix = stdenv.cc.nativePrefix or "";
+
+    noLibc = (self.libc == null);
+
+    inherit bintools libc;
+    inherit (darwin) postLinkSignHook signingUtils;
+  } // extraArgs; in self);
+
+  yaml-language-server = callPackage  ../development/tools/language-servers/yaml-language-server { };
+
+  # prolog
+  yap = callPackage ../development/compilers/yap { };
+
+  yasm = callPackage ../development/compilers/yasm { };
+
+  yosys = callPackage ../development/compilers/yosys { };
+  yosys-bluespec = callPackage ../development/compilers/yosys/plugins/bluespec.nix { };
+  yosys-ghdl = callPackage ../development/compilers/yosys/plugins/ghdl.nix { };
+  yosys-synlig = callPackage ../development/compilers/yosys/plugins/synlig.nix { };
+  yosys-symbiflow = callPackage ../development/compilers/yosys/plugins/symbiflow.nix { };
+
+  z88dk = callPackage ../development/compilers/z88dk { };
+
+  zulip = callPackage ../applications/networking/instant-messengers/zulip { };
+
+  zulip-term = callPackage ../applications/networking/instant-messengers/zulip-term { };
+
+  zulu8 = callPackage ../development/compilers/zulu/8.nix { };
+  zulu11 = callPackage ../development/compilers/zulu/11.nix { };
+  zulu17 = callPackage ../development/compilers/zulu/17.nix { };
+  zulu21 = callPackage ../development/compilers/zulu/21.nix { };
+  zulu = zulu21;
+
+  ### DEVELOPMENT / INTERPRETERS
+
+  acl2 = callPackage ../development/interpreters/acl2 { };
+  acl2-minimal = callPackage ../development/interpreters/acl2 { certifyBooks = false; };
+
+  angelscript = callPackage ../development/interpreters/angelscript { };
+
+  anko = callPackage ../development/interpreters/anko { };
+
+  babashka-unwrapped = callPackage ../development/interpreters/babashka { };
+  babashka = callPackage ../development/interpreters/babashka/wrapped.nix { };
+
+  # BQN interpreters and compilers
+
+  mbqn = callPackage ../development/interpreters/bqn/mlochbaum-bqn { };
+
+  cbqn = cbqn-bootstrap.phase2;
+  cbqn-replxx = cbqn-bootstrap.phase2-replxx;
+  cbqn-standalone = cbqn-bootstrap.phase0;
+  cbqn-standalone-replxx = cbqn-bootstrap.phase0-replxx;
+
+  # Below, the classic self-bootstrapping process
+  cbqn-bootstrap = lib.dontRecurseIntoAttrs {
+    # Use clang to compile CBQN if we aren't already.
+    # CBQN's upstream primarily targets and tests clang which means using gcc
+    # will result in slower binaries and on some platforms failing/broken builds.
+    # See https://github.com/dzaima/CBQN/issues/12.
+    #
+    # Known issues:
+    #
+    # * CBQN using gcc is broken at runtime on i686 due to
+    #   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58416,
+    # * CBQN uses some CPP macros gcc doesn't like for aarch64.
+    stdenv = if !stdenv.cc.isClang then clangStdenv else stdenv;
+
+    mbqn-source = buildPackages.mbqn.src;
+
+    phase0 = callPackage ../development/interpreters/bqn/cbqn {
+      inherit (cbqn-bootstrap) mbqn-source stdenv;
+      genBytecode = false;
+      bqn-path = null;
+    };
+
+    phase0-replxx = callPackage ../development/interpreters/bqn/cbqn {
+      inherit (cbqn-bootstrap) mbqn-source stdenv;
+      genBytecode = false;
+      bqn-path = null;
+      enableReplxx = true;
+    };
+
+    phase1 = callPackage ../development/interpreters/bqn/cbqn {
+      inherit (cbqn-bootstrap) mbqn-source stdenv;
+      genBytecode = true;
+      bqn-path = "${buildPackages.cbqn-bootstrap.phase0}/bin/cbqn";
+    };
+
+    phase2 = callPackage ../development/interpreters/bqn/cbqn {
+      inherit (cbqn-bootstrap) mbqn-source stdenv;
+      genBytecode = true;
+      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+    };
+
+    phase2-replxx = callPackage ../development/interpreters/bqn/cbqn {
+      inherit (cbqn-bootstrap) mbqn-source stdenv;
+      genBytecode = true;
+      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      enableReplxx = true;
+    };
+  };
+
+  dbqn = callPackage ../development/interpreters/bqn/dzaima-bqn {
+    buildNativeImage = false;
+    stdenv = stdenvNoCC;
+    jdk = jre;
+  };
+  dbqn-native = callPackage ../development/interpreters/bqn/dzaima-bqn {
+    buildNativeImage = true;
+    jdk = graalvm-ce;
+  };
+
+  chibi = callPackage ../development/interpreters/chibi { };
+
+  ceptre = callPackage ../development/interpreters/ceptre { };
+
+  cg3 = callPackage ../development/interpreters/cg3 { };
+
+  cling = callPackage ../development/interpreters/cling { };
+
+  clips = callPackage ../development/interpreters/clips { };
+
+  cliscord = callPackage ../misc/cliscord {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  dart-sass-embedded = callPackage ../misc/dart-sass-embedded { };
+
+  clojupyter = callPackage ../applications/editors/jupyter-kernels/clojupyter {
+    jre = jre8;
+  };
+
+  inherit (callPackage ../applications/editors/jupyter-kernels/xeus-cling { })
+    cpp11-kernel cpp14-kernel cpp17-kernel cpp2a-kernel;
+  xeus-cling = callPackage ../applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix { };
+
+  clojure = callPackage ../development/interpreters/clojure {
+    # set this to an LTS version of java
+    jdk = jdk21;
+  };
+
+  clojure-lsp = callPackage ../development/tools/misc/clojure-lsp { };
+
+  clooj = callPackage ../development/interpreters/clojure/clooj.nix { };
+
+  dhall = haskell.lib.compose.justStaticExecutables haskellPackages.dhall;
+
+  dhall-bash = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-bash;
+
+  dhall-docs = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-docs;
+
+  dhall-lsp-server = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-lsp-server;
+
+  dhall-json = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-json;
+
+  dhall-nix = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-nix;
+
+  dhall-nixpkgs = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-nixpkgs;
+
+  dhall-yaml = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-yaml;
+
+  dhallPackages = recurseIntoAttrs (callPackage ./dhall-packages.nix { });
+
+  duktape = callPackage ../development/interpreters/duktape { };
+
+  duckscript = callPackage ../development/tools/rust/duckscript {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  evcxr = callPackage ../development/interpreters/evcxr {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  beam = callPackage ./beam-packages.nix { };
+  beam_nox = callPackage ./beam-packages.nix { beam = beam_nox; wxSupport = false; };
+  beam_minimal = callPackage ./beam-packages.nix {
+    beam = beam_minimal;
+    wxSupport = false;
+    systemdSupport = false;
+  };
+
+  inherit (beam.interpreters)
+    erlang erlang_26 erlang_25 erlang_24
+    erlang_odbc erlang_javac erlang_odbc_javac
+    elixir elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10
+    elixir-ls;
+
+  erlang_nox = beam_nox.interpreters.erlang;
+
+  inherit (beam.packages.erlang)
+    erlang-ls erlfmt elvis-erlang
+    rebar rebar3 rebar3WithPlugins
+    fetchHex
+    lfe lfe_2_1;
+  beamPackages = beam.packages.erlang // { __attrsFailEvaluation = true; };
+
+  expr = callPackage ../development/interpreters/expr { };
+
+  genemichaels = callPackage ../development/tools/rust/genemichaels { };
+
+  gnudatalanguage = callPackage ../development/interpreters/gnudatalanguage {
+    inherit (llvmPackages) openmp;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    # MPICH currently build on Darwin
+    mpi = mpich;
+  };
+
+  gpython = callPackage ../development/interpreters/gpython { };
+
+  graphql-client = callPackage ../development/tools/graphql-client {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  graphqlmap = callPackage ../tools/security/graphqlmap { };
+
+  graphqurl = callPackage ../tools/networking/graphqurl { };
+
+  groovy = callPackage ../development/interpreters/groovy { };
+
+  inherit (callPackages ../applications/networking/cluster/hadoop {})
+    hadoop_3_3
+    hadoop_3_2
+    hadoop2;
+  hadoop3 = hadoop_3_3;
+  hadoop = hadoop3;
+
+  hashlink = callPackage ../development/interpreters/hashlink { };
+
+  io = callPackage ../development/interpreters/io { };
+
+  ivy = callPackage ../development/interpreters/ivy { };
+
+  j = callPackage ../development/interpreters/j {
+    stdenv = clangStdenv;
+  };
+
+  jacinda = haskell.lib.compose.justStaticExecutables haskellPackages.jacinda;
+
+  janet = callPackage ../development/interpreters/janet { };
+
+  jpm = callPackage ../development/interpreters/janet/jpm.nix { };
+
+  jelly = callPackage ../development/interpreters/jelly { };
+
+  jimtcl = callPackage ../development/interpreters/jimtcl { };
+
+  jmeter = callPackage ../applications/networking/jmeter { };
+
+  joker = callPackage ../development/interpreters/joker { };
+
+  davmail = callPackage ../applications/networking/davmail {
+    zulu = zulu11;
+  };
+
+  kamilalisp = callPackage ../development/interpreters/kamilalisp { };
+
+  kanif = callPackage ../applications/networking/cluster/kanif { };
+
+  kona = callPackage ../development/interpreters/kona { };
+
+  konf = callPackage ../development/tools/konf { };
+
+  lambda-lisp = callPackage ../development/interpreters/lambda-lisp { };
+  lambda-lisp-blc = lambda-lisp;
+
+  lolcode = callPackage ../development/interpreters/lolcode { };
+
+  love_0_10 = callPackage ../development/interpreters/love/0.10.nix { };
+  love_11 = callPackage ../development/interpreters/love/11.nix { };
+  love = love_11;
+
+  wabt = callPackage ../development/tools/wabt { };
+
+  zuo = callPackage ../development/interpreters/zuo { };
+
+  ### LUA interpreters
+  emilua = callPackage ../development/interpreters/emilua { };
+
+  luaInterpreters = callPackage ./../development/interpreters/lua-5 { };
+  inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat lua5_4 lua5_4_compat luajit_2_1 luajit_2_0 luajit_openresty;
+
+  lua5 = lua5_2_compat;
+  lua = lua5;
+
+  lua51Packages = recurseIntoAttrs lua5_1.pkgs;
+  lua52Packages = recurseIntoAttrs lua5_2.pkgs;
+  lua53Packages = recurseIntoAttrs lua5_3.pkgs;
+  lua54Packages = recurseIntoAttrs lua5_4.pkgs;
+  luajitPackages = recurseIntoAttrs luajit.pkgs;
+
+  luaPackages = lua52Packages;
+
+  luajit = luajit_2_1;
+
+  luarocks = luaPackages.luarocks;
+  luarocks-nix = luaPackages.luarocks-nix;
+
+  luarocks-packages-updater = callPackage ../development/lua-modules/updater {
+    inherit (python3Packages) buildPythonApplication ;
+  };
+
+
+  luau = callPackage ../development/interpreters/luau { };
+
+  lune = callPackage ../development/interpreters/lune { };
+
+  toluapp = callPackage ../development/tools/toluapp {
+    lua = lua5_1; # doesn't work with any other :(
+  };
+
+  ### END OF LUA
+
+  ### CuboCore
+  CuboCore = recurseIntoAttrs (import ./cubocore-packages.nix {
+    inherit newScope lxqt lib libsForQt5;
+  });
+
+  ### End of CuboCore
+
+  maude = callPackage ../development/interpreters/maude { };
+
+  me_cleaner = callPackage ../tools/misc/me_cleaner { };
+
+  mesos-dns = callPackage ../servers/mesos-dns { };
+
+  metamath = callPackage ../development/interpreters/metamath { };
+
+  minder = callPackage ../applications/misc/minder { };
+
+  mujs = callPackage ../development/interpreters/mujs { };
+
+  nelua = callPackage ../development/interpreters/nelua { };
+
+  nextflow = callPackage ../development/interpreters/nextflow { };
+
+  ngn-k = callPackage ../development/interpreters/ngn-k { };
+
+  oak = callPackage ../development/interpreters/oak { };
+
+  obb = callPackage ../development/interpreters/clojure/obb.nix { };
+
+  octave = callPackage ../development/interpreters/octave { };
+
+  octaveFull = octave.override {
+    enableQt = true;
+  };
+
+  octave-kernel = callPackage ../applications/editors/jupyter-kernels/octave { };
+
+  octavePackages = recurseIntoAttrs octave.pkgs;
+
+  pachyderm = callPackage ../applications/networking/cluster/pachyderm { };
+
+
+  # PHP interpreters, packages and extensions.
+  #
+  # Set default PHP interpreter, extensions and packages
+  php = php82;
+  phpExtensions = php.extensions;
+  phpPackages = php.packages;
+
+  # Import PHP83 interpreter, extensions and packages
+  php83 = callPackage ../development/interpreters/php/8.3.nix {
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    pcre2 = pcre2.override {
+      withJitSealloc = false; # See https://bugs.php.net/bug.php?id=78927 and https://bugs.php.net/bug.php?id=78630
+    };
+  };
+  php83Extensions = recurseIntoAttrs php83.extensions;
+  php83Packages = recurseIntoAttrs php83.packages;
+
+  # Import PHP82 interpreter, extensions and packages
+  php82 = callPackage ../development/interpreters/php/8.2.nix {
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    pcre2 = pcre2.override {
+      withJitSealloc = false; # See https://bugs.php.net/bug.php?id=78927 and https://bugs.php.net/bug.php?id=78630
+    };
+  };
+  php82Extensions = recurseIntoAttrs php82.extensions;
+  php82Packages = recurseIntoAttrs php82.packages;
+
+  # Import PHP81 interpreter, extensions and packages
+  php81 = callPackage ../development/interpreters/php/8.1.nix {
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    pcre2 = pcre2.override {
+      withJitSealloc = false; # See https://bugs.php.net/bug.php?id=78927 and https://bugs.php.net/bug.php?id=78630
+    };
+  };
+  php81Extensions = recurseIntoAttrs php81.extensions;
+  php81Packages = recurseIntoAttrs php81.packages;
+
+  phpactor = callPackage ../development/tools/phpactor { };
+
+  picoc = callPackage ../development/interpreters/picoc { };
+
+  picolisp = callPackage ../development/interpreters/picolisp { };
+
+  polyml = callPackage ../development/compilers/polyml { };
+  polyml56 = callPackage ../development/compilers/polyml/5.6.nix { };
+  polyml57 = callPackage ../development/compilers/polyml/5.7.nix { };
+
+  # Python interpreters. All standard library modules are included except for tkinter, which is
+  # available as `pythonPackages.tkinter` and can be used as any other Python package.
+  # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md
+  python2 = python27;
+  python3 = python311;
+
+  # pythonPackages further below, but assigned here because they need to be in sync
+  python2Packages = dontRecurseIntoAttrs python27Packages;
+  python3Packages = dontRecurseIntoAttrs python311Packages;
+
+  pypy = pypy2;
+  pypy2 = pypy27;
+  pypy3 = pypy39;
+
+  # Python interpreter that is build with all modules, including tkinter.
+  # These are for compatibility and should not be used inside Nixpkgs.
+  python2Full = python2.override {
+    self = python2Full;
+    pythonAttr = "python2Full";
+    x11Support = true;
+  };
+  python27Full = python27.override {
+    self = python27Full;
+    pythonAttr = "python27Full";
+    x11Support = true;
+  };
+  python3Full = python3.override {
+    self = python3Full;
+    pythonAttr = "python3Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python38Full = python38.override {
+    self = python38Full;
+    pythonAttr = "python38Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python39Full = python39.override {
+    self = python39Full;
+    pythonAttr = "python39Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python310Full = python310.override {
+    self = python310Full;
+    pythonAttr = "python310Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python311Full = python311.override {
+    self = python311Full;
+    pythonAttr = "python311Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python312Full = python312.override {
+    self = python312Full;
+    pythonAttr = "python312Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python313Full = python313.override {
+    self = python313Full;
+    pythonAttr = "python313Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
+
+  pythonInterpreters = callPackage ./../development/interpreters/python { };
+  inherit (pythonInterpreters) python27 python38 python39 python310 python311 python312 python313 python3Minimal pypy27 pypy310 pypy39 rustpython;
+
+  # List of extensions with overrides to apply to all Python package sets.
+  pythonPackagesExtensions = [ ];
+  # Python package sets.
+  python27Packages = python27.pkgs // { __attrsFailEvaluation = true; };
+  python38Packages = python38.pkgs // { __attrsFailEvaluation = true; };
+  python39Packages = python39.pkgs // { __attrsFailEvaluation = true; };
+  python310Packages = recurseIntoAttrs python310.pkgs // { pythonPackages = python310.pkgs // { __attrsFailEvaluation = true; }; };
+  python311Packages = recurseIntoAttrs python311.pkgs // { pythonPackages = python311.pkgs // { __attrsFailEvaluation = true; }; };
+  python312Packages = python312.pkgs // { __attrsFailEvaluation = true; };
+  python313Packages = python313.pkgs // { __attrsFailEvaluation = true; };
+  pypyPackages = pypy.pkgs // { __attrsFailEvaluation = true; };
+  pypy2Packages = pypy2.pkgs // { __attrsFailEvaluation = true; };
+  pypy27Packages = pypy27.pkgs // { __attrsFailEvaluation = true; };
+  pypy3Packages = pypy3.pkgs // { __attrsFailEvaluation = true; };
+  pypy39Packages = pypy39.pkgs // { __attrsFailEvaluation = true; };
+  pypy310Packages = pypy310.pkgs // { __attrsFailEvaluation = true; };
+
+  py3c = callPackage ../development/libraries/py3c { };
+
+  pythonManylinuxPackages = callPackage ./../development/interpreters/python/manylinux { };
+
+  pythonCondaPackages = callPackage ./../development/interpreters/python/conda { };
+
+  update-python-libraries = callPackage ../development/interpreters/python/update-python-libraries { };
+
+  # Should eventually be moved inside Python interpreters.
+  python-setup-hook = buildPackages.callPackage ../development/interpreters/python/setup-hook.nix { };
+
+  pythonDocs = recurseIntoAttrs (callPackage ../development/interpreters/python/cpython/docs {});
+
+  check-jsonschema = callPackage ../development/tools/check-jsonschema { };
+
+  pypi-mirror = callPackage ../development/tools/pypi-mirror { };
+
+  svg2tikz = with python3.pkgs; toPythonApplication svg2tikz;
+
+  svg2pdf = callPackage ../tools/graphics/svg2pdf { };
+
+  pew = callPackage ../development/tools/pew { };
+
+  poetry = callPackage ../tools/package-management/poetry { };
+
+  poetryPlugins = recurseIntoAttrs poetry.plugins;
+
+  poetry2conda = callPackage ../tools/package-management/poetry2conda { };
+
+  pip-audit = callPackage ../development/tools/pip-audit { };
+
+  pipenv = callPackage ../development/tools/pipenv { };
+
+  pipx = with python3.pkgs; toPythonApplication pipx;
+
+  pipewire = callPackage ../development/libraries/pipewire {
+    # ffmpeg depends on SDL2 which depends on pipewire by default.
+    # Break the cycle by depending on ffmpeg-headless.
+    # Pipewire only uses libavcodec (via an SPA plugin), which isn't
+    # affected by the *-headless changes.
+    ffmpeg = ffmpeg-headless;
+  };
+
+  pipewire_0_2 = callPackage ../development/libraries/pipewire/0.2.nix { };
+  wireplumber = callPackage ../development/libraries/pipewire/wireplumber.nix { };
+
+  pw-volume = callPackage ../tools/audio/pw-volume { };
+
+  pyradio = callPackage ../applications/audio/pyradio { };
+
+  racket = callPackage ../development/interpreters/racket {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+  racket_7_9 = callPackage ../development/interpreters/racket/racket_7_9.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+  racket-minimal = callPackage ../development/interpreters/racket/minimal.nix { };
+
+  rakudo = callPackage ../development/interpreters/rakudo { };
+  moarvm = callPackage ../development/interpreters/rakudo/moarvm.nix {
+    inherit (darwin) cctools-port;
+    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+  };
+  nqp = callPackage  ../development/interpreters/rakudo/nqp.nix { };
+  zef = callPackage ../development/interpreters/rakudo/zef.nix { };
+
+  rascal = callPackage ../development/interpreters/rascal { };
+
+  red = callPackage ../development/interpreters/red { };
+
+  regexploit = callPackage ../tools/security/regexploit { };
+
+  regextester = callPackage ../applications/misc/regextester { };
+
+  inherit (ocamlPackages) reason;
+
+  buildRubyGem = callPackage ../development/ruby-modules/gem {
+    inherit (darwin) libobjc;
+  };
+  defaultGemConfig = callPackage ../development/ruby-modules/gem-config {
+    inherit (darwin) DarwinTools cctools autoSignDarwinBinariesHook;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+  bundix = callPackage ../development/ruby-modules/bundix { };
+  bundler = callPackage ../development/ruby-modules/bundler { };
+  bundlerEnv = callPackage ../development/ruby-modules/bundler-env { };
+  bundlerApp = callPackage ../development/ruby-modules/bundler-app { };
+  bundlerUpdateScript = callPackage ../development/ruby-modules/bundler-update-script { };
+
+  bundler-audit = callPackage ../tools/security/bundler-audit { };
+
+  sol2 = callPackage ../development/libraries/sol2 { };
+
+  solargraph = rubyPackages.solargraph;
+
+  rbenv = callPackage ../development/ruby-modules/rbenv { };
+
+  rubyfmt = darwin.apple_sdk_11_0.callPackage ../development/tools/rubyfmt {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation Security;
+    inherit (darwin) libobjc;
+  };
+
+  inherit (callPackage ../development/interpreters/ruby {
+    inherit (darwin) libobjc libunwind;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  })
+    mkRubyVersion
+    mkRuby
+    ruby_2_7
+    ruby_3_1
+    ruby_3_2
+    ruby_3_3;
+
+  ruby = ruby_3_1;
+  rubyPackages = rubyPackages_3_1;
+
+  rubyPackages_2_7 = recurseIntoAttrs ruby_2_7.gems;
+  rubyPackages_3_1 = recurseIntoAttrs ruby_3_1.gems;
+  rubyPackages_3_2 = recurseIntoAttrs ruby_3_2.gems;
+  rubyPackages_3_3 = recurseIntoAttrs ruby_3_3.gems;
+
+  mruby = callPackage ../development/compilers/mruby { };
+
+  samplebrain = libsForQt5.callPackage ../applications/audio/samplebrain { };
+
+  scsh = callPackage ../development/interpreters/scsh { };
+
+  scheme48 = callPackage ../development/interpreters/scheme48 { };
+
+  scheme-bytestructures = callPackage ../development/scheme-modules/scheme-bytestructures { };
+
+  smiley-sans = callPackage ../data/fonts/smiley-sans { };
+
+  inherit (callPackages ../applications/networking/cluster/spark { })
+    spark_3_5 spark_3_4 spark_3_3;
+  spark3 = spark_3_5;
+  spark = spark3;
+
+  sparkleshare = callPackage ../applications/version-management/sparkleshare { };
+
+  spark2014 = callPackage ../development/libraries/ada/spark2014 { };
+
+  spidermonkey_78 = callPackage ../development/interpreters/spidermonkey/78.nix {
+    inherit (darwin) libobjc;
+  };
+  spidermonkey_91 = callPackage ../development/interpreters/spidermonkey/91.nix {
+    inherit (darwin) libobjc;
+  };
+  spidermonkey_102 = callPackage ../development/interpreters/spidermonkey/102.nix {
+    inherit (darwin) libobjc;
+  };
+  spidermonkey_115 = callPackage ../development/interpreters/spidermonkey/115.nix {
+    inherit (darwin) libobjc;
+  };
+
+  ssm-session-manager-plugin = callPackage ../applications/networking/cluster/ssm-session-manager-plugin { };
+
+  starlark = callPackage ../development/interpreters/starlark { };
+
+  starlark-rust = callPackage ../development/interpreters/starlark-rust { };
+
+  supercollider = libsForQt5.callPackage ../development/interpreters/supercollider {
+    fftw = fftwSinglePrec;
+  };
+
+  supercollider_scel = supercollider.override { useSCEL = true; };
+
+  supercolliderPlugins = recurseIntoAttrs {
+    sc3-plugins = callPackage ../development/interpreters/supercollider/plugins/sc3-plugins.nix {
+      fftw = fftwSinglePrec;
+    };
+  };
+
+  supercollider-with-plugins = callPackage ../development/interpreters/supercollider/wrapper.nix {
+    plugins = [];
+  };
+
+  supercollider-with-sc3-plugins = supercollider-with-plugins.override {
+    plugins = with supercolliderPlugins; [ sc3-plugins ];
+  };
+
+  taktuk = callPackage ../applications/networking/cluster/taktuk { };
+
+  tcl = tcl-8_6;
+  tcl-8_5 = callPackage ../development/interpreters/tcl/8.5.nix { };
+  tcl-8_6 = callPackage ../development/interpreters/tcl/8.6.nix { };
+
+  tclreadline = callPackage ../development/interpreters/tclreadline { };
+
+  eltclsh = callPackage ../development/tools/eltclsh { };
+
+  waagent = callPackage ../applications/networking/cluster/waagent { };
+
+  wapm-cli = callPackage ../tools/package-management/wapm/cli {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  wasm = ocamlPackages.wasm;
+
+  wasm3 = callPackage ../development/interpreters/wasm3 { };
+
+  yaegi = callPackage ../development/interpreters/yaegi { };
+
+  yex-lang = callPackage ../development/interpreters/yex-lang { };
+
+  ### DEVELOPMENT / MISC
+
+  inherit (callPackage ../development/misc/h3 { }) h3_3 h3_4;
+
+  h3 = h3_3;
+
+  amtk = callPackage ../development/libraries/amtk { };
+
+  avrlibc      = callPackage ../development/misc/avr/libc { };
+  avrlibcCross = callPackage ../development/misc/avr/libc {
+    stdenv = crossLibcStdenv;
+  };
+
+  avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
+
+  cppreference-doc = callPackage ../development/misc/cppreference-doc { };
+
+  sourceFromHead = callPackage ../build-support/source-from-head-fun.nix { };
+
+  jruby = callPackage ../development/interpreters/jruby { };
+
+  jython = callPackage ../development/interpreters/jython { };
+
+  gImageReader = callPackage ../applications/misc/gImageReader { };
+
+  gimme-aws-creds = callPackage ../tools/admin/gimme-aws-creds { };
+
+  gimoji = callPackage ../applications/misc/gimoji { };
+
+  guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { };
+
+  # Needed for autogen
+  guile_2_0 = callPackage ../development/interpreters/guile/2.0.nix { };
+
+  guile_2_2 = callPackage ../development/interpreters/guile/2.2.nix { };
+
+  guile_3_0 = callPackage ../development/interpreters/guile/3.0.nix { };
+
+  guile = guile_3_0;
+
+  guile-cairo = callPackage ../development/guile-modules/guile-cairo { };
+
+  guile-commonmark = callPackage ../development/guile-modules/guile-commonmark { };
+
+  guile-config = callPackage ../development/guile-modules/guile-config { };
+
+  guile-fibers = callPackage ../development/guile-modules/guile-fibers { };
+
+  guile-gcrypt = callPackage ../development/guile-modules/guile-gcrypt { };
+
+  guile-git = callPackage ../development/guile-modules/guile-git { };
+
+  guile-gnutls = callPackage ../development/guile-modules/guile-gnutls { };
+
+  guile-json = callPackage ../development/guile-modules/guile-json { };
+
+  guile-lib = callPackage ../development/guile-modules/guile-lib { };
+
+  guile-ncurses = callPackage ../development/guile-modules/guile-ncurses { };
+
+  guile-opengl = callPackage ../development/guile-modules/guile-opengl { };
+
+  guile-reader = callPackage ../development/guile-modules/guile-reader { };
+
+  guile-sdl = callPackage ../development/guile-modules/guile-sdl {
+    guile = guile_2_2;
+  };
+
+  guile-sdl2 = callPackage ../development/guile-modules/guile-sdl2 { };
+
+  guile-sqlite3 = callPackage ../development/guile-modules/guile-sqlite3 { };
+
+  guile-ssh = callPackage ../development/guile-modules/guile-ssh { };
+
+  guile-xcb = callPackage ../development/guile-modules/guile-xcb {
+    guile = guile_2_2;
+  };
+
+  inav-blackbox-tools = callPackage ../tools/misc/inav-blackbox-tools { };
+
+  infracost = callPackage ../tools/misc/infracost { };
+
+  jetbrains-toolbox = callPackage ../applications/misc/jetbrains-toolbox { };
+
+  msp430GccSupport = callPackage ../development/misc/msp430/gcc-support.nix { };
+
+  msp430Newlib      = callPackage ../development/misc/msp430/newlib.nix { };
+  msp430NewlibCross = callPackage ../development/misc/msp430/newlib.nix {
+    newlib = newlibCross;
+  };
+
+  mspds = callPackage ../development/misc/msp430/mspds { };
+  mspds-bin = callPackage ../development/misc/msp430/mspds/binary.nix { };
+
+  mspdebug = callPackage ../development/misc/msp430/mspdebug.nix { };
+
+  vc4-newlib = callPackage ../development/misc/vc4/newlib.nix { };
+
+  or1k-newlib = callPackage ../development/misc/or1k/newlib.nix { };
+
+  rappel = callPackage ../development/misc/rappel { };
+
+  pharo = callPackage ../development/pharo { };
+
+  protege-distribution = callPackage ../development/web/protege-distribution { };
+
+  publii = callPackage ../development/web/publii {};
+
+  umr = callPackage ../development/misc/umr {
+    llvmPackages = llvmPackages_14;
+  };
+
+  refurb = callPackage ../development/tools/refurb { };
+
+  srandrd = callPackage ../tools/X11/srandrd { };
+
+  sratoolkit = callPackage ../applications/science/biology/sratoolkit { };
+
+  srecord = callPackage ../development/tools/misc/srecord { };
+
+  srelay = callPackage ../tools/networking/srelay { };
+
+  xidel = callPackage ../tools/text/xidel { };
+
+  asdf-vm = callPackage ../tools/misc/asdf-vm { };
+
+  rtx = callPackage ../tools/misc/rtx {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  ### DEVELOPMENT / TOOLS
+
+  abi-compliance-checker = callPackage ../development/tools/misc/abi-compliance-checker { };
+
+  abi-dumper = callPackage ../development/tools/misc/abi-dumper { };
+
+  abuild = callPackage ../development/tools/abuild { };
+
+  actionlint = callPackage ../development/tools/analysis/actionlint { };
+
+  adreaper = callPackage ../tools/security/adreaper { };
+
+  adtool = callPackage ../tools/admin/adtool { };
+
+  aeron = callPackage ../servers/aeron { };
+
+  inherit (callPackage ../development/tools/alloy { })
+    alloy5
+    alloy6
+    alloy;
+
+  altair = callPackage ../development/tools/altair-graphql-client { };
+
+  ameba = callPackage ../development/tools/ameba { };
+
+  anybadge = with python3Packages; toPythonApplication anybadge;
+
+  apgdiff = callPackage ../development/tools/database/apgdiff { };
+
+  apkg = callPackage ../tools/package-management/apkg { };
+
+  augeas = callPackage ../tools/system/augeas { };
+
+  autoadb = callPackage ../misc/autoadb { };
+
+  ansible = ansible_2_15;
+  ansible_2_15 = python3Packages.toPythonApplication python3Packages.ansible-core;
+  ansible_2_14 = python3Packages.toPythonApplication (python3Packages.ansible-core.overridePythonAttrs (oldAttrs: rec {
+    version = "2.14.6";
+    src = oldAttrs.src.override {
+      inherit version;
+      hash = "sha256-DN2w30VFYZgfHFQdt6xTmNXp3kUuofAYR6y9Ax/X0rI=";
+    };
+  }));
+  ansible_2_13 = python3Packages.toPythonApplication (python3Packages.ansible-core.overridePythonAttrs (oldAttrs: rec {
+    version = "2.13.10";
+    src = oldAttrs.src.override {
+      inherit version;
+      hash = "sha256-1LQKSq+GDe9sLJ6K1SAfhoPj59fY4hRjxtWepPixLfc=";
+    };
+  }));
+
+  ansible-doctor = callPackage ../tools/admin/ansible/doctor.nix { };
+
+  dbus-test-runner = callPackage ../development/tools/dbus-test-runner { };
+
+  doq = callPackage ../development/tools/misc/doq { };
+
+  espup = callPackage ../development/tools/espup { };
+
+  karma-runner = callPackage ../development/tools/karma-runner { };
+
+  teller = callPackage ../development/tools/teller { };
+
+  yakut = python3Packages.callPackage ../development/tools/misc/yakut { };
+
+  ### DEVELOPMENT / TOOLS / LANGUAGE-SERVERS
+
+  ansible-language-server = callPackage ../development/tools/language-servers/ansible-language-server { };
+
+  beancount-language-server = callPackage ../development/tools/language-servers/beancount-language-server { };
+
+  buf-language-server = callPackage ../development/tools/language-servers/buf-language-server { };
+
+  ccls = callPackage ../development/tools/language-servers/ccls {
+    llvmPackages = llvmPackages_14;
+  };
+
+  docker-compose-language-service = callPackage ../development/tools/language-servers/docker-compose-language-service { };
+
+  dockerfile-language-server-nodejs = callPackage ../development/tools/language-servers/dockerfile-language-server-nodejs { };
+
+  dot-language-server = callPackage ../development/tools/language-servers/dot-language-server { };
+
+  emmet-ls = callPackage ../development/tools/language-servers/emmet-ls { };
+
+  emmet-language-server = callPackage ../development/tools/language-servers/emmet-language-server { };
+
+  fortls = python3.pkgs.callPackage ../development/tools/language-servers/fortls { };
+
+  fortran-language-server = python3.pkgs.callPackage ../development/tools/language-servers/fortran-language-server { };
+
+  glslls = callPackage ../development/tools/language-servers/glslls { };
+
+  gopls = callPackage ../development/tools/language-servers/gopls { };
+
+  helm-ls = callPackage ../development/tools/language-servers/helm-ls { };
+
+  javascript-typescript-langserver = callPackage ../development/tools/language-servers/javascript-typescript-langserver { };
+
+  jdt-language-server = callPackage ../development/tools/language-servers/jdt-language-server { };
+
+  jsonnet-language-server = callPackage ../development/tools/language-servers/jsonnet-language-server { };
+
+  kotlin-language-server = callPackage ../development/tools/language-servers/kotlin-language-server { };
+
+  lua-language-server = darwin.apple_sdk_11_0.callPackage ../development/tools/language-servers/lua-language-server {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation Foundation;
+    inherit (darwin) ditto;
+  };
+
+  metals = callPackage ../development/tools/language-servers/metals { };
+
+  millet = callPackage ../development/tools/language-servers/millet { };
+
+  neocmakelsp = callPackage ../development/tools/language-servers/neocmakelsp { };
+
+  nil = callPackage ../development/tools/language-servers/nil { };
+
+  nixd = callPackage ../development/tools/language-servers/nixd {
+    llvmPackages = llvmPackages_16;
+    nix = nixVersions.nix_2_16;
+  };
+
+  openscad-lsp = callPackage ../development/tools/language-servers/openscad-lsp { };
+
+  perlnavigator = callPackage ../development/tools/language-servers/perlnavigator { };
+
+  postgres-lsp = callPackage ../development/tools/language-servers/postgres-lsp { };
+
+  pylyzer = callPackage ../development/tools/language-servers/pylyzer { };
+
+  rnix-lsp = callPackage ../development/tools/language-servers/rnix-lsp {
+    nix = nixVersions.nix_2_15;
+  };
+
+  ruff-lsp = python3Packages.callPackage ../development/tools/language-servers/ruff-lsp { };
+
+  rune-languageserver = callPackage ../development/tools/language-servers/rune-languageserver { };
+
+  svls = callPackage ../development/tools/language-servers/svls { };
+
+  typst-lsp = callPackage ../development/tools/language-servers/typst-lsp { };
+
+  vala-language-server = callPackage ../development/tools/language-servers/vala-language-server { };
+
+  verible = callPackage ../development/tools/language-servers/verible { };
+
+  vscode-langservers-extracted = callPackage ../development/tools/language-servers/vscode-langservers-extracted { };
+
+  zls = callPackage ../development/tools/language-servers/zls { };
+
+  ansible-later = callPackage ../tools/admin/ansible/later.nix { };
+
+  ansible-lint = callPackage ../tools/admin/ansible/lint.nix { };
+
+  antlr2 = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
+  antlr3_4 = callPackage ../development/tools/parsing/antlr/3.4.nix { };
+  antlr3_5 = callPackage ../development/tools/parsing/antlr/3.5.nix { };
+  antlr3 = antlr3_5;
+
+  inherit (callPackages ../development/tools/parsing/antlr/4.nix { })
+    antlr4_8
+    antlr4_9
+    antlr4_10
+    antlr4_11
+    antlr4_12
+    antlr4_13;
+
+  antlr4 = antlr4_13;
+
+  antlr = antlr4;
+
+  apacheAnt = callPackage ../development/tools/build-managers/apache-ant { };
+  ant = apacheAnt;
+
+  apacheKafka = apacheKafka_3_5;
+  apacheKafka_2_8 = callPackage ../servers/apache-kafka { majorVersion = "2.8"; };
+  apacheKafka_3_0 = callPackage ../servers/apache-kafka { majorVersion = "3.0"; };
+  apacheKafka_3_1 = callPackage ../servers/apache-kafka { majorVersion = "3.1"; };
+  apacheKafka_3_2 = callPackage ../servers/apache-kafka { majorVersion = "3.2"; };
+  apacheKafka_3_3 = callPackage ../servers/apache-kafka { majorVersion = "3.3"; };
+  apacheKafka_3_4 = callPackage ../servers/apache-kafka { majorVersion = "3.4"; };
+  apacheKafka_3_5 = callPackage ../servers/apache-kafka { majorVersion = "3.5"; };
+
+  kt = callPackage ../tools/misc/kt { };
+
+  argbash = callPackage ../development/tools/misc/argbash { };
+
+  arpa2cm = callPackage ../development/tools/build-managers/arpa2cm { };
+
+  arpa2common = callPackage ../development/libraries/arpa2common { };
+
+  asn2quickder = python3Packages.callPackage ../development/tools/asn2quickder { };
+
+  astyle = callPackage ../development/tools/misc/astyle { };
+
+  automaticcomponenttoolkit = callPackage ../development/tools/misc/automaticcomponenttoolkit { };
+
+  aviator = callPackage ../development/tools/misc/aviator { };
+
+  awf = callPackage ../development/tools/misc/awf { };
+
+  aws-adfs = with python3Packages; toPythonApplication aws-adfs;
+
+  electron-source = callPackage ../development/tools/electron { };
+
+  inherit (callPackages ../development/tools/electron/binary { })
+    electron-bin
+    electron_10-bin
+    electron_11-bin
+    electron_12-bin
+    electron_13-bin
+    electron_14-bin
+    electron_15-bin
+    electron_16-bin
+    electron_17-bin
+    electron_18-bin
+    electron_19-bin
+    electron_20-bin
+    electron_21-bin
+    electron_22-bin
+    electron_23-bin
+    electron_24-bin
+    electron_25-bin
+    electron_26-bin
+    electron_27-bin
+    electron_28-bin;
+
+  electron_10 = electron_10-bin;
+  electron_11 = electron_11-bin;
+  electron_12 = electron_12-bin;
+  electron_13 = electron_13-bin;
+  electron_14 = electron_14-bin;
+  electron_15 = electron_15-bin;
+  electron_16 = electron_16-bin;
+  electron_17 = electron_17-bin;
+  electron_18 = electron_18-bin;
+  electron_19 = electron_19-bin;
+  electron_20 = electron_20-bin;
+  electron_21 = electron_21-bin;
+  electron_22 = electron_22-bin;
+  electron_23 = electron_23-bin;
+  electron_24 = electron_24-bin;
+  electron_25 = electron_25-bin;
+  electron_26 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_26 then electron-source.electron_26 else electron_26-bin;
+  electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin;
+  electron_28 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_28 then electron-source.electron_28 else electron_28-bin;
+  electron = electron_28;
+
+  autobuild = callPackage ../development/tools/misc/autobuild { };
+
+  autoconf = autoconf271;
+
+  autoconf-archive = callPackage ../development/tools/misc/autoconf-archive { };
+
+  autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
+  autoconf264 = callPackage ../development/tools/misc/autoconf/2.64.nix { };
+  autoconf269 = callPackage ../development/tools/misc/autoconf/2.69.nix { };
+  autoconf271 = callPackage ../development/tools/misc/autoconf { };
+
+  acr  = callPackage ../development/tools/misc/acr { };
+
+  autocutsel = callPackage ../tools/X11/autocutsel{ };
+
+  automake = automake116x;
+
+  automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
+
+  automake115x = callPackage ../development/tools/misc/automake/automake-1.15.x.nix { };
+
+  automake116x = callPackage ../development/tools/misc/automake/automake-1.16.x.nix { };
+
+  avrdude = callPackage ../development/embedded/avrdude { };
+
+  b4 = callPackage ../development/tools/b4 { };
+
+  babeltrace = callPackage ../development/tools/misc/babeltrace { };
+
+  bam = callPackage ../development/tools/build-managers/bam { };
+
+  bandit = with python3Packages; toPythonApplication bandit;
+
+  bazel = bazel_6;
+
+  bazel_4 = callPackage ../development/tools/build-managers/bazel/bazel_4 {
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
+    buildJdk = jdk11_headless;
+    buildJdkName = "java11";
+    runJdk = jdk11_headless;
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else gcc10StdenvCompat;
+    bazel_self = bazel_4;
+  };
+
+  bazel_5 = callPackage ../development/tools/build-managers/bazel/bazel_5 {
+    inherit (darwin) cctools sigtool;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
+    buildJdk = jdk11_headless;
+    runJdk = jdk11_headless;
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    bazel_self = bazel_5;
+  };
+
+  bazel_6 = darwin.apple_sdk_11_0.callPackage ../development/tools/build-managers/bazel/bazel_6 {
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation CoreServices Foundation;
+    buildJdk = jdk11_headless;
+    runJdk = jdk11_headless;
+    stdenv = if stdenv.isDarwin then
+      darwin.apple_sdk_11_0.stdenv else
+      if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    bazel_self = bazel_6;
+  };
+
+  bazel-buildtools = callPackage ../development/tools/build-managers/bazel/buildtools { };
+  buildifier = bazel-buildtools;
+  buildozer = bazel-buildtools;
+  unused_deps = bazel-buildtools;
+
+  bazel-remote = callPackage ../development/tools/build-managers/bazel/bazel-remote { };
+
+  bazel-watcher = callPackage ../development/tools/bazel-watcher { };
+
+  bazel-gazelle = callPackage ../development/tools/bazel-gazelle { };
+
+  bazel-kazel = callPackage ../development/tools/bazel-kazel { };
+
+  bazelisk = callPackage ../development/tools/bazelisk { };
+
+  rebazel = callPackage ../development/tools/rebazel {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  buildBazelPackage = darwin.apple_sdk_11_0.callPackage ../build-support/build-bazel-package { };
+
+  bear = callPackage ../development/tools/build-managers/bear { };
+
+  bingrep = callPackage ../development/tools/analysis/bingrep { };
+
+  binutils-unwrapped = callPackage ../development/tools/misc/binutils {
+    autoreconfHook = autoreconfHook269;
+    # FHS sys dirs presumably only have stuff for the build platform
+    noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs;
+  };
+  binutils-unwrapped-all-targets = callPackage ../development/tools/misc/binutils {
+    autoreconfHook = if targetPlatform.isiOS then autoreconfHook269 else autoreconfHook;
+    # FHS sys dirs presumably only have stuff for the build platform
+    noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs;
+    withAllTargets = true;
+  };
+  binutils = wrapBintoolsWith {
+    bintools = binutils-unwrapped;
+  };
+  binutils_nogold = lowPrio (wrapBintoolsWith {
+    bintools = binutils-unwrapped.override {
+      enableGold = false;
+    };
+  });
+  binutilsNoLibc = wrapBintoolsWith {
+    bintools = binutils-unwrapped;
+    libc = preLibcCrossHeaders;
+  };
+
+  libbfd = callPackage ../development/tools/misc/binutils/libbfd.nix { };
+
+  libopcodes = callPackage ../development/tools/misc/binutils/libopcodes.nix { };
+
+  # Held back 2.38 release. Remove once all dependencies are ported to 2.39.
+  binutils-unwrapped_2_38 = callPackage ../development/tools/misc/binutils/2.38 {
+    autoreconfHook = autoreconfHook269;
+    # FHS sys dirs presumably only have stuff for the build platform
+    noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs;
+  };
+
+  libbfd_2_38 = callPackage ../development/tools/misc/binutils/2.38/libbfd.nix {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  libopcodes_2_38 = callPackage ../development/tools/misc/binutils/2.38/libopcodes.nix {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  # Here we select the default bintools implementations to be used.  Note when
+  # cross compiling these are used not for this stage but the *next* stage.
+  # That is why we choose using this stage's target platform / next stage's
+  # host platform.
+  #
+  # Because this is the *next* stages choice, it's a bit non-modular to put
+  # here. In theory, bootstraping is supposed to not be a chain but at tree,
+  # where each stage supports many "successor" stages, like multiple possible
+  # futures. We don't have a better alternative, but with this downside in
+  # mind, please be judicious when using this attribute. E.g. for building
+  # things in *this* stage you should use probably `stdenv.cc.bintools` (from a
+  # default or alternate `stdenv`), at build time, and try not to "force" a
+  # specific bintools at runtime at all.
+  #
+  # In other words, try to only use this in wrappers, and only use those
+  # wrappers from the next stage.
+  bintools-unwrapped = let
+    inherit (stdenv.targetPlatform) linker;
+  in     if linker == "lld"     then llvmPackages.bintools-unwrapped
+    else if linker == "cctools" then darwin.binutils-unwrapped
+    else if linker == "bfd"     then binutils-unwrapped
+    else if linker == "gold"    then binutils-unwrapped.override { enableGoldDefault = true; }
+    else null;
+  bintoolsNoLibc = wrapBintoolsWith {
+    bintools = bintools-unwrapped;
+    libc = preLibcCrossHeaders;
+  };
+  bintools = wrapBintoolsWith {
+    bintools = bintools-unwrapped;
+  };
+
+  bintoolsDualAs = wrapBintoolsWith {
+    bintools = darwin.binutilsDualAs-unwrapped;
+    wrapGas = true;
+  };
+
+  bison = callPackage ../development/tools/parsing/bison { };
+
+  bisoncpp = callPackage ../development/tools/parsing/bisonc++ { };
+
+  black = with python3Packages; toPythonApplication black;
+
+  blackfire = callPackage ../development/tools/misc/blackfire { };
+
+  black-macchiato = with python3Packages; toPythonApplication black-macchiato;
+
+  blackmagic = callPackage ../development/embedded/blackmagic { };
+
+  bloaty = callPackage ../development/tools/bloaty { };
+
+  bloomrpc = callPackage ../development/web/bloomrpc { };
+
+  bloop = callPackage ../development/tools/build-managers/bloop { };
+
+  bossa = callPackage ../development/embedded/bossa { };
+
+  bossa-arduino = callPackage ../development/embedded/bossa/arduino.nix { };
+
+  bob = callPackage ../development/tools/build-managers/bob { };
+
+  buck = callPackage ../development/tools/build-managers/buck { };
+
+  buck2 = callPackage ../development/tools/build-managers/buck2 { };
+
+  build2 = callPackage ../development/tools/build-managers/build2 {
+    # Break cycle by using self-contained toolchain for bootstrapping
+    build2 = buildPackages.callPackage ../development/tools/build-managers/build2/bootstrap.nix { };
+  };
+
+  # Dependency of build2, must also break cycle for this
+  libbutl = callPackage ../development/libraries/libbutl {
+    build2 = build2.bootstrap;
+  };
+
+  libbpkg = callPackage ../development/libraries/libbpkg { };
+  libodb = callPackage ../development/libraries/libodb { };
+  libodb-sqlite = callPackage ../development/libraries/libodb-sqlite { };
+  bdep = callPackage ../development/tools/build-managers/build2/bdep.nix { };
+
+  bore-cli = callPackage ../tools/networking/bore-cli/default.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  bpkg = callPackage ../development/tools/build-managers/build2/bpkg.nix { };
+
+  buildkite-agent = callPackage ../development/tools/continuous-integration/buildkite-agent { };
+
+  buildkite-agent-metrics = callPackage ../servers/monitoring/buildkite-agent-metrics { };
+
+  buildkite-cli = callPackage ../development/tools/continuous-integration/buildkite-cli { };
+
+  buildkite-test-collector-rust  = callPackage ../development/tools/continuous-integration/buildkite-test-collector-rust {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  bump = callPackage ../development/tools/github/bump { };
+
+  libbpf = callPackage ../os-specific/linux/libbpf { };
+  libbpf_0 = callPackage ../os-specific/linux/libbpf/0.x.nix { };
+
+  bundlewrap = with python3.pkgs; toPythonApplication bundlewrap;
+
+  bpftools = callPackage ../os-specific/linux/bpftools { };
+
+  bcc = callPackage ../os-specific/linux/bcc {
+    llvmPackages = llvmPackages_16;
+  };
+
+  bpftrace = callPackage ../os-specific/linux/bpftrace {
+    llvmPackages = llvmPackages_16;
+  };
+
+  bpm-tools = callPackage ../tools/audio/bpm-tools { };
+
+  byacc = callPackage ../development/tools/parsing/byacc { };
+
+  cadre = callPackage ../development/tools/cadre { };
+
+  carto = callPackage ../development/tools/carto { };
+
+  catnip = callPackage ../tools/audio/catnip { };
+
+  catnip-gtk4 = callPackage ../tools/audio/catnip-gtk4 { };
+
+  cbrowser = callPackage ../development/tools/misc/cbrowser { };
+
+  cc-tool = callPackage ../development/embedded/cc-tool { };
+
+  ccache = callPackage ../development/tools/misc/ccache { };
+
+  # Wrapper that works as gcc or g++
+  # It can be used by setting in nixpkgs config like this, for example:
+  #    replaceStdenv = { pkgs }: pkgs.ccacheStdenv;
+  # But if you build in chroot, you should have that path in chroot
+  # If instantiated directly, it will use $HOME/.ccache as the cache directory,
+  # i.e. /homeless-shelter/.ccache using the Nix daemon.
+  # You should specify a different directory using an override in
+  # packageOverrides to set extraConfig.
+  #
+  # Example using Nix daemon (i.e. multiuser Nix install or on NixOS):
+  #    packageOverrides = pkgs: {
+  #     ccacheWrapper = pkgs.ccacheWrapper.override {
+  #       extraConfig = ''
+  #         export CCACHE_COMPRESS=1
+  #         export CCACHE_DIR=/var/cache/ccache
+  #         export CCACHE_UMASK=007
+  #       '';
+  #     };
+  # You can use a different directory, but whichever directory you choose
+  # should be owned by user root, group nixbld with permissions 0770.
+  ccacheWrapper = makeOverridable ({ extraConfig, cc }:
+    cc.override {
+      cc = ccache.links {
+        inherit extraConfig;
+        unwrappedCC = cc.cc;
+      };
+    }) {
+      extraConfig = "";
+      inherit (stdenv) cc;
+    };
+
+  ccacheStdenv = lowPrio (makeOverridable ({ stdenv, ... } @ extraArgs:
+    overrideCC stdenv (buildPackages.ccacheWrapper.override ({
+      inherit (stdenv) cc;
+    } // lib.optionalAttrs (builtins.hasAttr "extraConfig" extraArgs) {
+      extraConfig = extraArgs.extraConfig;
+    }))) {
+      inherit stdenv;
+    });
+
+  cccc = callPackage ../development/tools/analysis/cccc { };
+
+  cgdb = callPackage ../development/tools/misc/cgdb { };
+
+  cheat = callPackage ../applications/misc/cheat { };
+
+  matter-compiler = callPackage ../development/compilers/matter-compiler { };
+
+  cfr = callPackage ../development/tools/java/cfr { };
+
+  cfripper = callPackage ../tools/security/cfripper { };
+
+  checkra1n = callPackage ../development/mobile/checkra1n { };
+
+  checkstyle = callPackage ../development/tools/analysis/checkstyle { };
+
+  chromedriver = callPackage ../development/tools/selenium/chromedriver { };
+
+  chromium-xorg-conf = callPackage ../os-specific/linux/chromium-xorg-conf { };
+
+  chrpath = callPackage ../development/tools/misc/chrpath { };
+
+  chruby = callPackage ../development/tools/misc/chruby { rubies = null; };
+
+  chruby-fish = callPackage ../development/tools/misc/chruby-fish { };
+
+  cl-launch = callPackage ../development/tools/misc/cl-launch { };
+
+  clean-css-cli = callPackage ../development/tools/clean-css-cli { };
+
+  cloud-nuke = callPackage ../development/tools/cloud-nuke { };
+
+  cloudcompare = libsForQt5.callPackage ../applications/graphics/cloudcompare { };
+
+  cloudlog = callPackage ../applications/radio/cloudlog { };
+
+  cloudflare-warp = callPackage ../tools/networking/cloudflare-warp { };
+
+  cloudfoundry-cli = callPackage ../applications/networking/cluster/cloudfoundry-cli { };
+
+  clpm = callPackage ../development/tools/clpm { };
+
+  coan = callPackage ../development/tools/analysis/coan { };
+
+  coder = callPackage ../development/tools/coder { };
+
+  compile-daemon = callPackage ../development/tools/compile-daemon { };
+
+  complexity = callPackage ../development/tools/misc/complexity { };
+
+  complgen = callPackage ../development/tools/misc/complgen { };
+
+  conan = callPackage ../development/tools/build-managers/conan { };
+
+  cookiecutter = with python3Packages; toPythonApplication cookiecutter;
+
+  cordova = callPackage ../development/mobile/cordova { };
+
+  corrosion = callPackage ../development/tools/build-managers/corrosion { };
+
+  corundum = callPackage ../development/tools/corundum { };
+
+  confluencepot = callPackage ../servers/confluencepot { };
+
+  confluent-platform = callPackage ../servers/confluent-platform { };
+
+  ctags = callPackage ../development/tools/misc/ctags { };
+
+  ctagsWrapped = callPackage ../development/tools/misc/ctags/wrapped.nix { };
+
+  ctodo = callPackage ../applications/misc/ctodo { };
+
+  cubiomes-viewer = libsForQt5.callPackage ../applications/misc/cubiomes-viewer { };
+
+  ctmg = callPackage ../tools/security/ctmg { };
+
+  # can't use override - it triggers infinite recursion
+  cmakeMinimal = callPackage ../by-name/cm/cmake/package.nix {
+    isMinimalBuild = true;
+  };
+
+  cmakeCurses = cmake.override {
+    uiToolkits = [ "ncurses" ];
+  };
+
+  cmakeWithGui = cmake.override {
+    uiToolkits = [ "ncurses" "qt5" ];
+  };
+
+  cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
+
+  cobra-cli = callPackage ../development/tools/cobra-cli { };
+
+  cmake-language-server = python3Packages.callPackage ../development/tools/misc/cmake-language-server {
+    inherit cmake cmake-format;
+  };
+
+  # Does not actually depend on Qt 5
+  inherit (plasma5Packages) extra-cmake-modules;
+
+  coccinelle = callPackage ../development/tools/misc/coccinelle { };
+
+  cpptest = callPackage ../development/libraries/cpptest { };
+
+  cppi = callPackage ../development/tools/misc/cppi { };
+
+  cproto = callPackage ../development/tools/misc/cproto { };
+
+  cflow = callPackage ../development/tools/misc/cflow { };
+
+  cov-build = callPackage ../development/tools/analysis/cov-build { };
+
+  cppcheck = callPackage ../development/tools/analysis/cppcheck { };
+
+  cpplint = callPackage ../development/tools/analysis/cpplint { };
+
+  credstash = with python3Packages; toPythonApplication credstash;
+
+  creduce = callPackage ../development/tools/misc/creduce {
+    inherit (llvmPackages_8) llvm libclang;
+  };
+
+  cscope = callPackage ../development/tools/misc/cscope { };
+
+  csmith = callPackage ../development/tools/misc/csmith { };
+
+  inherit (nodePackages) csslint;
+
+  css-html-js-minify = with python3Packages; toPythonApplication css-html-js-minify;
+
+  cvehound = callPackage ../development/tools/analysis/cvehound { };
+
+  cvise = python3Packages.callPackage ../development/tools/misc/cvise {
+    # cvise keeps up with fresh llvm releases and supports wide version range
+    inherit (llvmPackages_14) llvm libclang;
+  };
+
+  cwltool = callPackage ../applications/science/misc/cwltool { };
+
+  dbt = with python3Packages; toPythonApplication dbt-core;
+
+  dprint = callPackage ../development/tools/dprint {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation Security;
+  };
+
+  devbox = callPackage ../development/tools/devbox { };
+
+  libcxx = llvmPackages.libcxx;
+  libcxxabi = llvmPackages.libcxxabi;
+
+  librarian-puppet-go = callPackage ../development/tools/librarian-puppet-go { };
+
+  libgcc = stdenv.cc.cc.libgcc or null;
+
+  # This is for e.g. LLVM libraries on linux.
+  gccForLibs =
+    if stdenv.targetPlatform == stdenv.hostPlatform && targetPackages.stdenv.cc.isGNU
+    # Can only do this is in the native case, otherwise we might get infinite
+    # recursion if `targetPackages.stdenv.cc.cc` itself uses `gccForLibs`.
+      then targetPackages.stdenv.cc.cc
+    else gcc.cc;
+
+  libstdcxx5 = callPackage ../development/libraries/gcc/libstdc++/5.nix { };
+
+  libsigrok = callPackage ../development/tools/libsigrok {
+    python = python3;
+  };
+
+  libsigrokdecode = callPackage ../development/tools/libsigrokdecode { };
+
+  sqlcl = callPackage ../development/tools/database/sqlcl { };
+
+  sigrok-firmware-fx2lafw = callPackage ../development/tools/sigrok-firmware-fx2lafw { };
+
+  cli11 = callPackage ../development/tools/misc/cli11 { };
+
+  datree = callPackage ../development/tools/datree { };
+
+  detekt = callPackage ../development/tools/detekt { };
+
+  dcadec = callPackage ../development/tools/dcadec { };
+
+  dejagnu = callPackage ../development/tools/misc/dejagnu { };
+
+  devd = callPackage ../development/tools/devd { };
+
+  devtodo = callPackage ../development/tools/devtodo { };
+
+  dfeet = callPackage ../development/tools/misc/d-feet { };
+
+  d-spy = callPackage ../development/tools/misc/d-spy { };
+
+  dfu-programmer = callPackage ../development/tools/misc/dfu-programmer { };
+
+  dfu-util = callPackage ../development/tools/misc/dfu-util { };
+
+  ddd = callPackage ../development/tools/misc/ddd { };
+
+  lattice-diamond = callPackage ../development/embedded/fpga/lattice-diamond { };
+
+  direvent = callPackage ../development/tools/misc/direvent { };
+
+  distcc = callPackage ../development/tools/misc/distcc {
+    libiberty_static = libiberty.override { staticBuild = true; };
+  };
+
+  # distccWrapper: wrapper that works as gcc or g++
+  # It can be used by setting in nixpkgs config like this, for example:
+  #    replaceStdenv = { pkgs }: pkgs.distccStdenv;
+  # But if you build in chroot, a default 'nix' will create
+  # a new net namespace, and won't have network access.
+  # You can use an override in packageOverrides to set extraConfig:
+  #    packageOverrides = pkgs: {
+  #     distccWrapper = pkgs.distccWrapper.override {
+  #       extraConfig = ''
+  #         DISTCC_HOSTS="myhost1 myhost2"
+  #       '';
+  #     };
+  #
+  distccWrapper = makeOverridable ({ extraConfig ? "" }:
+    wrapCC (distcc.links extraConfig)) { };
+  distccStdenv = lowPrio (overrideCC stdenv buildPackages.distccWrapper);
+
+  distccMasquerade = if stdenv.isDarwin
+    then null
+    else callPackage ../development/tools/misc/distcc/masq.nix {
+      gccRaw = gcc.cc;
+      binutils = binutils;
+    };
+
+  dive = callPackage ../development/tools/dive { };
+
+  dioxus-cli = callPackage ../development/tools/rust/dioxus-cli { };
+
+  doclifter = callPackage ../development/tools/misc/doclifter { };
+
+  docutils = with python3Packages; toPythonApplication (
+    docutils.overridePythonAttrs (attrs: rec {
+      version = "0.20.1";
+      src = attrs.src.override {
+        inherit version;
+        hash = "sha256-8IpOJ2w6FYOobc4+NKuj/gTQK7ot1R7RYQYkToqSPjs=";
+      };
+    })
+  );
+
+  doctl = callPackage ../development/tools/doctl { };
+
+  doit = with python3Packages; toPythonApplication doit;
+
+  dolt = callPackage ../servers/sql/dolt { };
+
+  dot2tex = with python3.pkgs; toPythonApplication dot2tex;
+
+  doxygen = darwin.apple_sdk_11_0.callPackage ../development/tools/documentation/doxygen {
+    qt5 = null;
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
+  };
+
+  doxygen_gui = lowPrio (doxygen.override { inherit qt5; });
+
+  drake = callPackage ../development/tools/build-managers/drake { };
+
+  drip = callPackage ../development/tools/drip { };
+
+  drm_info = callPackage ../development/tools/drm_info { };
+
+  drush = callPackage ../development/tools/misc/drush { };
+
+  dura = callPackage ../development/tools/misc/dura {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  dwfv = callPackage ../applications/science/electronics/dwfv { };
+
+  dwz = callPackage ../development/tools/misc/dwz { };
+
+  eask = callPackage ../development/tools/eask { };
+
+  easypdkprog = callPackage ../development/embedded/easypdkprog { };
+
+  eclint = callPackage ../development/tools/eclint { };
+
+  editorconfig-checker = callPackage ../development/tools/misc/editorconfig-checker { };
+
+  editorconfig-core-c = callPackage ../development/tools/misc/editorconfig-core-c { };
+
+  edb = libsForQt5.callPackage ../development/tools/misc/edb { };
+
+  eggdbus = callPackage ../development/tools/misc/eggdbus { };
+
+  effitask = callPackage ../applications/misc/effitask { };
+
+  efm-langserver = callPackage ../development/tools/efm-langserver { };
+
+  egypt = callPackage ../development/tools/analysis/egypt { };
+
+  electron-fiddle = callPackage ../development/tools/electron-fiddle { };
+
+  elf2uf2-rs = darwin.apple_sdk_11_0.callPackage ../development/embedded/elf2uf2-rs {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation DiskArbitration Foundation;
+  };
+
+  elfinfo = callPackage ../development/tools/misc/elfinfo { };
+
+  elfkickers = callPackage ../development/tools/misc/elfkickers { };
+
+  elfutils = callPackage ../development/tools/misc/elfutils { };
+
+  eliot-tree = callPackage ../development/tools/eliot-tree { };
+
+  emma = callPackage ../development/tools/analysis/emma { };
+
+  ent-go = callPackage ../development/tools/ent { };
+
+  epm = callPackage ../development/tools/misc/epm { };
+
+  eresi = callPackage ../development/tools/analysis/eresi { };
+
+  evmdis = callPackage ../development/tools/analysis/evmdis { };
+
+  eweb = callPackage ../development/tools/literate-programming/eweb { };
+
+  explain = callPackage ../development/tools/explain { };
+
+  ezno = callPackage ../development/tools/misc/ezno { };
+
+  func = callPackage ../applications/networking/cluster/func { };
+
+  funnelweb = callPackage ../development/tools/literate-programming/funnelweb { };
+
+  license_finder = callPackage ../development/tools/license_finder { };
+
+  license-scanner = callPackage ../development/tools/license-scanner { };
+
+  Literate = callPackage ../development/tools/literate-programming/Literate { };
+
+  md-tangle = callPackage ../development/tools/literate-programming/md-tangle { };
+
+  # NOTE: Override and set useIcon = false to use Awk instead of Icon.
+  noweb = callPackage ../development/tools/literate-programming/noweb { };
+
+  nuweb = callPackage ../development/tools/literate-programming/nuweb { };
+
+  eztrace = callPackage ../development/tools/profiling/EZTrace { };
+
+  faas-cli = callPackage ../development/tools/faas-cli { };
+
+  fastddsgen = callPackage ../development/tools/fastddsgen { };
+
+  fastgron = callPackage ../development/tools/fastgron { };
+
+  fatcat = callPackage ../development/tools/fatcat { };
+
+  findbugs = callPackage ../development/tools/analysis/findbugs { };
+
+  findnewest = callPackage ../development/tools/misc/findnewest { };
+
+  firebase-tools = callPackage ../development/tools/firebase-tools { };
+
+  flootty = callPackage ../development/tools/flootty { };
+
+  fffuu = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage ../tools/misc/fffuu { });
+
+  ffuf = callPackage ../tools/security/ffuf { };
+
+  flow = callPackage ../development/tools/analysis/flow {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  fly = callPackage ../development/tools/continuous-integration/fly { };
+
+  foreman = callPackage ../tools/system/foreman { };
+  goreman = callPackage ../tools/system/goreman { };
+
+  fprettify = callPackage ../development/tools/fprettify { };
+
+  framac = callPackage ../development/tools/analysis/frama-c { };
+
+  frame = callPackage ../development/libraries/frame { };
+
+  framesh = callPackage ../applications/blockchains/framesh { };
+
+  frp = callPackage ../tools/networking/frp { };
+
+  fsatrace = callPackage ../development/tools/misc/fsatrace { };
+
+  fswatch = callPackage ../development/tools/misc/fswatch {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  fsearch = callPackage ../tools/misc/fsearch { };
+
+  fujprog = callPackage ../development/embedded/fpga/fujprog {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  fundoc = callPackage ../development/tools/fundoc { };
+
+  funzzy = callPackage ../development/tools/misc/funzzy { };
+
+  futuresql = libsForQt5.callPackage ../development/libraries/futuresql { };
+
+  fzf-make = callPackage ../development/tools/misc/fzf-make { };
+
+  gede = libsForQt5.callPackage ../development/tools/misc/gede { };
+
+  gdbgui = python3Packages.callPackage ../development/tools/misc/gdbgui { };
+
+  pifpaf = callPackage ../development/tools/pifpaf { };
+
+  pmd = callPackage ../development/tools/analysis/pmd {
+    openjdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  jdepend = callPackage ../development/tools/analysis/jdepend {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  flex_2_5_35 = callPackage ../development/tools/parsing/flex/2.5.35.nix { };
+  flex = callPackage ../development/tools/parsing/flex { };
+
+  re-flex = callPackage ../development/tools/parsing/re-flex { };
+
+  flexibee = callPackage ../applications/office/flexibee { };
+
+  flexcpp = callPackage ../development/tools/parsing/flexc++ { };
+
+  geis = callPackage ../development/libraries/geis { };
+
+  gi-docgen = callPackage ../development/tools/documentation/gi-docgen { };
+
+  git2-cpp = callPackage ../development/libraries/git2-cpp { };
+
+  github-release = callPackage ../development/tools/github/github-release { };
+
+  global = callPackage ../development/tools/misc/global { };
+
+  gnatcoll-db2ada = callPackage ../development/libraries/ada/gnatcoll/db.nix {
+    component = "gnatcoll_db2ada";
+  };
+
+  gnatinspect = callPackage ../development/libraries/ada/gnatcoll/db.nix {
+    component = "gnatinspect";
+  };
+
+  gnome-doc-utils = callPackage ../development/tools/documentation/gnome-doc-utils { };
+
+  gnome-desktop-testing = callPackage ../development/tools/gnome-desktop-testing { };
+
+  gnome-firmware = callPackage ../applications/misc/gnome-firmware { };
+
+  gnome-tecla = callPackage ../applications/misc/gnome-tecla { };
+
+  gnome-usage = callPackage ../applications/misc/gnome-usage { };
+
+  gnome-inform7 = callPackage ../applications/editors/gnome-inform7 { };
+
+  gnome-latex = callPackage ../applications/editors/gnome-latex { };
+
+  gnome-network-displays = callPackage ../applications/networking/gnome-network-displays { };
+
+  gnome-multi-writer = callPackage ../applications/misc/gnome-multi-writer { };
+
+  gnome-online-accounts = callPackage ../development/libraries/gnome-online-accounts { };
+
+  gnome-video-effects = callPackage ../development/libraries/gnome-video-effects { };
+
+  gnum4 = callPackage ../development/tools/misc/gnum4 { };
+  m4 = gnum4;
+
+  om4 = callPackage ../development/tools/misc/om4 { };
+
+  gnumake = callPackage ../development/tools/build-managers/gnumake { };
+  gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { };
+
+  go-licenses = callPackage ../development/tools/misc/go-licenses  { };
+
+  gob2 = callPackage ../development/tools/misc/gob2 { };
+
+  gocd-agent = callPackage ../development/tools/continuous-integration/gocd-agent { };
+
+  gocd-server = callPackage ../development/tools/continuous-integration/gocd-server { };
+
+  gopatch = callPackage ../development/tools/misc/gopatch { };
+
+  gotify-server = callPackage ../servers/gotify { };
+
+  gotty = callPackage ../servers/gotty { };
+
+  gprbuild-boot = callPackage ../development/tools/build-managers/gprbuild/boot.nix { };
+
+  gprbuild = callPackage ../development/tools/build-managers/gprbuild { };
+
+  gputils = callPackage ../development/embedded/gputils { };
+
+  gpuvis = callPackage ../development/tools/misc/gpuvis { };
+
+  gqlint = callPackage ../development/tools/gqlint { };
+
+  gradle-packages = import ../development/tools/build-managers/gradle {
+    inherit jdk11 jdk17 jdk21;
+  };
+  gradleGen = gradle-packages.gen;
+  gradle_6 = callPackage gradle-packages.gradle_6 { };
+  gradle_7 = callPackage gradle-packages.gradle_7 { };
+  gradle_8 = callPackage gradle-packages.gradle_8 { };
+  gradle = gradle_8;
+
+  grcov = callPackage ../development/tools/misc/grcov { };
+
+  gperf = callPackage ../development/tools/misc/gperf { };
+  # 3.1 changed some parameters from int to size_t, leading to mismatches.
+  gperf_3_0 = callPackage ../development/tools/misc/gperf/3.0.x.nix { };
+
+  grail = callPackage ../development/libraries/grail { };
+
+  graphene-hardened-malloc = callPackage ../development/libraries/graphene-hardened-malloc { };
+
+  graphene = callPackage ../development/libraries/graphene { };
+
+  griffe = with python3Packages; toPythonApplication griffe;
+
+  gtk-doc = callPackage ../development/tools/documentation/gtk-doc { };
+
+  gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
+
+  crowdin-cli = callPackage ../tools/text/crowdin-cli { };
+
+  gtranslator = callPackage ../tools/text/gtranslator { };
+
+  gtree = callPackage ../tools/text/gtree { };
+
+  guff = callPackage ../tools/graphics/guff { };
+
+  guile-hall = callPackage ../development/tools/guile/guile-hall { };
+
+  gwrap = callPackage ../development/tools/guile/g-wrap {
+    guile = guile_2_2;
+  };
+
+  hadolint = haskell.lib.compose.justStaticExecutables haskellPackages.hadolint;
+
+  halfempty = callPackage ../development/tools/halfempty { };
+
+  hcloud = callPackage ../development/tools/hcloud { };
+
+  hclfmt = callPackage ../development/tools/hclfmt { };
+
+  help2man = callPackage ../development/tools/misc/help2man { };
+
+  heroku = callPackage ../development/tools/heroku { };
+
+  highlight-assertions = callPackage ../development/tools/misc/highlight-assertions { };
+
+  confluent-cli = callPackage ../development/tools/confluent-cli { };
+
+  html-minifier = callPackage ../development/tools/html-minifier { };
+
+  htmlhint = callPackage ../development/tools/htmlhint { };
+
+  htmlunit-driver = callPackage ../development/tools/selenium/htmlunit-driver { };
+
+  hyenae = callPackage ../tools/networking/hyenae { };
+
+  iaca_2_1 = callPackage ../development/tools/iaca/2.1.nix { };
+  iaca_3_0 = callPackage ../development/tools/iaca/3.0.nix { };
+  iaca = iaca_3_0;
+
+  icestorm = callPackage ../development/embedded/fpga/icestorm { };
+
+  icmake = callPackage ../development/tools/build-managers/icmake { };
+
+  iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils { };
+
+  ikos = callPackage ../development/tools/analysis/ikos {
+    inherit (llvmPackages_14) stdenv clang llvm;
+    tbb = tbb_2021_8;
+  };
+
+  img = callPackage ../development/tools/img { };
+
+  include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
+    llvmPackages = llvmPackages_17;
+  };
+
+  indent = callPackage ../development/tools/misc/indent { };
+
+  inotify-tools = callPackage ../development/tools/misc/inotify-tools { };
+
+  intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools { };
+
+  insomnia = callPackage ../development/web/insomnia { };
+
+  ihp-new = callPackage ../development/web/ihp-new { };
+
+  iozone = callPackage ../development/tools/misc/iozone { };
+
+  itstool = callPackage ../development/tools/misc/itstool { };
+
+  jacoco = callPackage ../development/tools/analysis/jacoco { };
+
+  jake = callPackage ../development/tools/jake { };
+
+  inherit (callPackage ../development/tools/build-managers/jam { })
+    jam
+    ftjam;
+
+  javacc = callPackage ../development/tools/parsing/javacc {
+    # Upstream doesn't support anything newer than Java 8.
+    # https://github.com/javacc/javacc/blob/c708628423b71ce8bc3b70143fa5b6a2b7362b3a/README.md#building-javacc-from-source
+    jdk = jdk8;
+    jre = jre8;
+  };
+
+  jbake = callPackage ../development/tools/jbake { };
+
+  jbang = callPackage ../development/tools/jbang { };
+
+  jikespg = callPackage ../development/tools/parsing/jikespg { };
+
+  jenkins = callPackage ../development/tools/continuous-integration/jenkins { };
+
+  jenkins-job-builder = with python3Packages; toPythonApplication jenkins-job-builder;
+
+  jpexs = callPackage ../development/tools/jpexs { };
+
+  k0sctl = callPackage ../applications/networking/cluster/k0sctl { };
+
+  k2tf = callPackage ../development/tools/misc/k2tf { };
+
+  kafka-delta-ingest = callPackage ../development/tools/kafka-delta-ingest { };
+
+  kamid = callPackage ../servers/ftp/kamid { };
+
+  karate = callPackage ../development/tools/karate { };
+
+  kati = callPackage ../development/tools/build-managers/kati { };
+
+  kafkactl = callPackage ../development/tools/kafkactl { };
+
+  kcat = callPackage ../development/tools/kcat { };
+
+  kcc = libsForQt5.callPackage ../applications/graphics/kcc { };
+
+  kcgi = callPackage ../development/web/kcgi { };
+
+  kcov = callPackage ../development/tools/analysis/kcov { };
+
+  kind = callPackage ../development/tools/kind { };
+
+  khronos-ocl-icd-loader = callPackage ../development/libraries/khronos-ocl-icd-loader {  };
+
+  ko = callPackage ../development/tools/ko { };
+
+  konstraint = callPackage ../development/tools/konstraint { };
+
+  krankerl = callPackage ../development/tools/krankerl { };
+
+  krew = callPackage ../development/tools/krew { };
+
+  kube-bench = callPackage ../tools/security/kube-bench { };
+
+  kube-hunter = callPackage ../tools/security/kube-hunter { };
+
+  kubeaudit = callPackage ../tools/security/kubeaudit { };
+
+  kubectx = callPackage ../development/tools/kubectx { };
+
+  kube-linter = callPackage ../development/tools/kube-linter { };
+
+  kube-prompt = callPackage ../development/tools/kube-prompt { };
+
+  kubeclarity = callPackage ../tools/security/kubeclarity { };
+
+  kubemq-community = callPackage ../servers/kubemq-community { };
+
+  kubeone = callPackage ../applications/networking/cluster/kubeone { };
+
+  kubeprompt = callPackage ../development/tools/kubeprompt { };
+
+  kubernetes-polaris = callPackage ../tools/security/kubernetes-polaris { };
+
+  kubescape = callPackage ../tools/security/kubescape { };
+
+  kubesec = callPackage ../tools/security/kubesec { };
+
+  kubespy = callPackage ../applications/networking/cluster/kubespy { };
+
+  kubeswitch = callPackage ../development/tools/kubeswitch { };
+
+  kubie = callPackage ../development/tools/kubie {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  kustomize = callPackage ../development/tools/kustomize { };
+
+  kustomize_3 = callPackage ../development/tools/kustomize/3.nix { };
+
+  kustomize_4 = callPackage ../development/tools/kustomize/4.nix { };
+
+  kustomize-sops = callPackage ../development/tools/kustomize/kustomize-sops.nix { };
+
+  ktlint = callPackage ../development/tools/ktlint { };
+
+  kythe = callPackage ../development/tools/kythe { };
+
+  lazygit = callPackage ../development/tools/lazygit { };
+
+  laminar = callPackage ../development/tools/continuous-integration/laminar { };
+
+  lcov = callPackage ../development/tools/analysis/lcov { };
+
+  leiningen = callPackage ../development/tools/build-managers/leiningen { };
+
+  lemon = callPackage ../development/tools/parsing/lemon { };
+
+  lenmus = callPackage ../applications/misc/lenmus { };
+
+  lightningcss = callPackage ../development/tools/lightningcss { };
+
+  libtool = libtool_2;
+
+  libtool_1_5 = callPackage ../development/tools/misc/libtool { };
+
+  libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
+
+  libwhich = callPackage ../development/tools/misc/libwhich { };
+
+  libwtk-sdl2 = callPackage ../development/libraries/libwtk-sdl2 { };
+
+  linuxkit = callPackage ../development/tools/misc/linuxkit {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa Virtualization;
+    inherit (darwin) sigtool;
+  };
+
+  listenbrainz-mpd = callPackage ../applications/audio/listenbrainz-mpd  {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration CoreFoundation;
+  };
+
+  lit = with python3Packages; toPythonApplication lit;
+
+  litecli = callPackage ../development/tools/database/litecli { };
+
+  litefs = callPackage ../development/tools/database/litefs { };
+
+  litestream = callPackage ../development/tools/database/litestream { };
+
+  ls-lint = callPackage ../development/tools/ls-lint { };
+
+  lsof = callPackage ../development/tools/misc/lsof { };
+
+  ltrace = callPackage ../development/tools/misc/ltrace { };
+
+  lttng-tools = callPackage ../development/tools/misc/lttng-tools { };
+
+  lttng-ust = callPackage ../development/tools/misc/lttng-ust { };
+
+  lttng-ust_2_12 = callPackage ../development/tools/misc/lttng-ust/2.12.nix { };
+
+  lttv = callPackage ../development/tools/misc/lttv { };
+
+  luaformatter = callPackage ../development/tools/luaformatter
+    (lib.optionalAttrs (stdenv.cc.isClang && lib.versionOlder stdenv.cc.version "9") {
+      stdenv = overrideCC stdenv llvmPackages_9.clang;
+    });
+
+  lurk = callPackage ../development/tools/lurk { };
+
+  lutgen = callPackage ../applications/graphics/lutgen { };
+
+  maizzle = callPackage ../development/tools/maizzle { };
+
+  malt = callPackage ../development/tools/profiling/malt { };
+
+  marksman = callPackage ../development/tools/marksman { };
+
+  massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { };
+
+  mastodon-archive = callPackage ../tools/backup/mastodon-archive { };
+
+  math-preview = callPackage ../tools/text/math-review { };
+
+  maven = maven3;
+  maven3 = callPackage ../development/tools/build-managers/apache-maven { };
+
+  mavproxy = python3Packages.callPackage ../applications/science/robotics/mavproxy { };
+
+  go-md2man = callPackage ../development/tools/misc/go-md2man { };
+
+  mage = callPackage ../development/tools/build-managers/mage { };
+
+  mbed-cli = callPackage ../development/tools/mbed-cli { };
+
+  mdl = callPackage ../development/tools/misc/mdl { };
+
+  meraki-cli = python3Packages.callPackage ../tools/admin/meraki-cli { };
+
+  mermerd = callPackage ../development/tools/database/mermerd { };
+
+  python-matter-server = with python3Packages; toPythonApplication (
+    python-matter-server.overridePythonAttrs (oldAttrs: {
+      propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ oldAttrs.passthru.optional-dependencies.server;
+    })
+  );
+
+  minify = callPackage ../development/web/minify { };
+
+  minizinc = callPackage ../development/tools/minizinc { };
+  minizincide = libsForQt5.callPackage ../development/tools/minizinc/ide.nix { };
+
+  mkcert = callPackage ../development/tools/misc/mkcert { };
+
+  mkdocs = with python3Packages; toPythonApplication mkdocs;
+
+  mmtf-cpp = callPackage ../development/libraries/science/chemistry/mmtf-cpp { };
+
+  mockgen = callPackage ../development/tools/mockgen { };
+
+  mockoon = callPackage ../tools/networking/mockoon { };
+
+  modd = callPackage ../development/tools/modd { };
+
+  mold = callPackage ../development/tools/mold {
+    stdenv = if stdenv.isDarwin then overrideLibcxx darwin.apple_sdk_11_0.llvmPackages_16.stdenv else stdenv;
+    tbb = tbb_2021_8;
+  };
+
+  mold-wrapped = wrapBintoolsWith {
+    bintools = mold;
+    extraBuildCommands = ''
+      wrap ${targetPackages.stdenv.cc.bintools.targetPrefix}ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${mold}/bin/ld.mold
+      wrap ${targetPackages.stdenv.cc.bintools.targetPrefix}mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${mold}/bin/mold
+    '';
+  };
+
+  moon = callPackage ../development/tools/build-managers/moon/default.nix { };
+
+  msgpack-tools = callPackage ../development/tools/msgpack-tools { };
+
+  msgpuck = callPackage ../development/libraries/msgpuck { };
+
+  msitools = callPackage ../development/tools/misc/msitools { };
+
+  haskell-ci = haskell.lib.compose.justStaticExecutables haskellPackages.haskell-ci;
+
+  neoload = callPackage ../development/tools/neoload {
+    licenseAccepted = (config.neoload.accept_license or false);
+    fontsConf = makeFontsConf {
+      fontDirectories = [
+        dejavu_fonts.minimal
+      ];
+    };
+  };
+
+  nailgun = callPackage ../development/tools/nailgun { };
+
+  nap = callPackage ../development/tools/nap { };
+
+  nex = callPackage ../development/tools/parsing/nex { };
+
+  ninja = callPackage ../development/tools/build-managers/ninja { };
+
+  nimbo = with python3Packages; callPackage ../applications/misc/nimbo { };
+
+  gn = callPackage ../development/tools/build-managers/gn { };
+  gn1924 = callPackage ../development/tools/build-managers/gn/rev1924.nix { };
+
+  nixbang = callPackage ../development/tools/misc/nixbang {
+    pythonPackages = python3Packages;
+  };
+
+  nix-bisect = callPackage ../development/tools/misc/nix-bisect { };
+
+  nix-build-uncached = callPackage ../development/tools/misc/nix-build-uncached { };
+
+  nexus = callPackage ../development/tools/repository-managers/nexus {
+    jre_headless = jre8_headless;
+  };
+
+  nmrpflash = callPackage ../development/embedded/nmrpflash { };
+
+  norminette = callPackage ../development/tools/norminette { };
+
+  nwjs = callPackage ../development/tools/nwjs { };
+
+  nwjs-sdk = callPackage ../development/tools/nwjs {
+    sdk = true;
+  };
+
+  nrf5-sdk = callPackage ../development/libraries/nrf5-sdk { };
+
+  nrfutil = callPackage ../development/tools/misc/nrfutil { };
+
+  obelisk = callPackage ../development/tools/ocaml/obelisk { menhir = ocamlPackages.menhir; };
+
+  obuild = callPackage ../development/tools/ocaml/obuild { };
+
+  omake = callPackage ../development/tools/ocaml/omake { };
+
+  omniorb = callPackage ../development/tools/omniorb { };
+
+  openai = with python3Packages; toPythonApplication openai;
+
+  openai-whisper = with python3.pkgs; toPythonApplication openai-whisper;
+
+  openai-whisper-cpp = darwin.apple_sdk_11_0.callPackage ../tools/audio/openai-whisper-cpp {
+    inherit (darwin.apple_sdk_11_0.frameworks) Accelerate CoreGraphics CoreML CoreVideo;
+  };
+
+  opengrok = callPackage ../development/tools/misc/opengrok { };
+
+  openocd = callPackage ../development/embedded/openocd { };
+
+  openocd-rp2040 = openocd.overrideAttrs (old: {
+    pname = "openocd-rp2040";
+    src = fetchFromGitHub {
+      owner = "raspberrypi";
+      repo = "openocd";
+      rev = "4d87f6dcae77d3cbcd8ac3f7dc887adf46ffa504";
+      hash = "sha256-bBqVoHsnNoaC2t8hqcduI8GGlO0VDMUovCB0HC+rxvc=";
+      # openocd disables the vendored libraries that use submodules and replaces them with nix versions.
+      # this works out as one of the submodule sources seems to be flakey.
+      fetchSubmodules = false;
+    };
+    nativeBuildInputs = old.nativeBuildInputs ++ [
+      autoreconfHook
+    ];
+  });
+
+  oprofile = callPackage ../development/tools/profiling/oprofile {
+    libiberty_static = libiberty.override { staticBuild = true; };
+  };
+
+  package-project-cmake = callPackage ../development/tools/package-project-cmake { };
+
+  pactorio = callPackage ../development/tools/pactorio {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  pahole = callPackage ../development/tools/misc/pahole { };
+
+  panopticon = callPackage ../development/tools/analysis/panopticon { };
+
+  parinfer-rust = callPackage ../development/tools/parinfer-rust { };
+
+  parse-cli-bin = callPackage ../development/tools/parse-cli-bin { };
+
+  patchelf = if with stdenv.buildPlatform; isAarch64 && isMusl then
+    patchelf_0_13
+  else
+    patchelfStable;
+  patchelf_0_13 = callPackage ../development/tools/misc/patchelf/0.13.nix {
+    patchelf = patchelfStable;
+  };
+  patchelfStable = callPackage ../development/tools/misc/patchelf { };
+
+  patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });
+
+  patsh = callPackage ../development/tools/misc/patsh { };
+
+  pax-rs = callPackage ../development/tools/pax-rs { };
+
+  perfect-hash = callPackage ../development/tools/misc/perfect-hash { };
+
+  peg = callPackage ../development/tools/parsing/peg { };
+
+  pgcli = with pkgs.python3Packages; toPythonApplication pgcli;
+
+  picotool = callPackage ../development/tools/picotool { };
+
+  planus = callPackage ../development/tools/misc/planus { };
+
+  pmccabe = callPackage ../development/tools/misc/pmccabe { };
+
+  pkgconf-unwrapped = libpkgconf;
+
+  pkgconf = callPackage ../build-support/pkg-config-wrapper {
+    pkg-config = pkgconf-unwrapped;
+    baseBinName = "pkgconf";
+  };
+
+  pkg-config-unwrapped = callPackage ../development/tools/misc/pkg-config { };
+  pkg-config = callPackage ../build-support/pkg-config-wrapper {
+    pkg-config = pkg-config-unwrapped;
+  };
+
+  pkg-configUpstream = lowPrio (pkg-config.override (old: {
+    pkg-config = old.pkg-config.override {
+      vanilla = true;
+    };
+  }));
+
+  pnpm-lock-export = callPackage ../development/web/pnpm-lock-export { };
+
+  portableService = callPackage ../build-support/portable-service { };
+
+  polar = callPackage ../tools/misc/polar { };
+
+  inherit (nodePackages) postcss-cli;
+
+  postiats-utilities = callPackage ../development/tools/postiats-utilities { };
+
+  postman = callPackage ../development/web/postman { };
+
+  pprof = callPackage ../development/tools/profiling/pprof { };
+
+  pqrs = callPackage ../development/tools/pqrs { };
+
+  pyprof2calltree = with python3Packages; toPythonApplication pyprof2calltree;
+
+  prelink = callPackage ../development/tools/misc/prelink { };
+
+  premake3 = callPackage ../development/tools/misc/premake/3.nix { };
+
+  premake4 = callPackage ../development/tools/misc/premake { };
+
+  premake5 = callPackage ../development/tools/misc/premake/5.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  premake = premake4;
+
+  process-compose = callPackage ../applications/misc/process-compose { };
+
+  process-viewer = callPackage ../applications/misc/process-viewer { };
+
+  procodile = callPackage ../tools/system/procodile { };
+
+  protox = callPackage ../development/tools/misc/protox { };
+
+  proxmove = callPackage ../tools/admin/proxmove { };
+
+  pry = callPackage ../development/tools/pry { };
+
+  pup = callPackage ../development/tools/pup { };
+
+  puppet-bolt = callPackage ../tools/admin/puppet/puppet-bolt { };
+
+  puppet-lint = callPackage ../development/tools/puppet/puppet-lint { };
+
+  puppeteer-cli = callPackage ../tools/graphics/puppeteer-cli { };
+
+  pyrseas = callPackage ../development/tools/database/pyrseas { };
+
+  pycritty = with python3Packages; toPythonApplication pycritty;
+
+  pylint-exit = callPackage ../development/tools/pylint-exit { };
+
+  qc = callPackage ../development/tools/qc { };
+
+  qtcreator = qt6Packages.callPackage ../development/tools/qtcreator {
+    inherit (linuxPackages) perf;
+    stdenv = llvmPackages.stdenv;
+  };
+
+  qxmledit = libsForQt5.callPackage ../applications/editors/qxmledit {} ;
+
+  r10k = callPackage ../tools/system/r10k { };
+
+  radare2 = callPackage ../development/tools/analysis/radare2 ({
+    lua = lua5;
+  } // (config.radare or {}));
+
+  ran = callPackage ../servers/http/ran { };
+
+  rathole = callPackage ../tools/networking/rathole {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  retry = callPackage ../tools/system/retry { };
+
+  rizin = pkgs.callPackage ../development/tools/analysis/rizin { };
+
+  rizinPlugins = recurseIntoAttrs rizin.plugins;
+
+  cutter = qt6.callPackage ../development/tools/analysis/rizin/cutter.nix { };
+
+  cutterPlugins = recurseIntoAttrs cutter.plugins;
+
+  ragel = ragelStable;
+
+  randoop = callPackage ../development/tools/analysis/randoop { };
+
+  inherit (callPackages ../development/tools/parsing/ragel { }) ragelStable ragelDev;
+
+  hammer = callPackage ../development/tools/parsing/hammer { };
+
+  rcodesign = darwin.apple_sdk_11_0.callPackage ../development/tools/rcodesign {};
+
+  rdocker = callPackage ../development/tools/rdocker { };
+
+  react-static = callPackage ../development/tools/react-static { };
+
+  redis-dump = callPackage ../development/tools/redis-dump { };
+
+  redis-plus-plus = callPackage ../development/libraries/redis-plus-plus { };
+
+  redisinsight = callPackage ../development/tools/redisinsight { };
+
+  redo = callPackage ../development/tools/build-managers/redo { };
+
+  redo-apenwarr = callPackage ../development/tools/build-managers/redo-apenwarr { };
+
+  redo-c = callPackage ../development/tools/build-managers/redo-c { };
+
+  redo-sh = callPackage ../development/tools/build-managers/redo-sh { };
+
+  regclient = callPackage ../development/tools/regclient { };
+  inherit (regclient) regbot regctl regsync;
+
+  regex-cli = callPackage ../development/tools/misc/regex-cli { };
+
+  reno = callPackage ../development/tools/reno { };
+
+  re2c = callPackage ../development/tools/parsing/re2c { };
+
+  remake = callPackage ../development/tools/build-managers/remake { };
+
+  replace-secret = callPackage ../build-support/replace-secret/replace-secret.nix { };
+
+  replacement = callPackage ../development/tools/misc/replacement { };
+
+  inherit (callPackage ../development/tools/replay-io { })
+    replay-io replay-node-cli;
+
+  requestly = callPackage ../tools/networking/requestly { };
+
+  reshape = callPackage ../development/tools/reshape { } ;
+
+  retdec = callPackage ../development/tools/analysis/retdec {
+    stdenv = gcc8Stdenv;
+  };
+  retdec-full = retdec.override {
+    withPEPatterns = true;
+  };
+
+  reviewdog = callPackage ../development/tools/misc/reviewdog { };
+
+  revive = callPackage ../development/tools/revive { };
+
+  riff = callPackage ../development/tools/misc/riff { };
+
+  riffdiff = callPackage ../tools/text/riffdiff {};
+
+  rman = callPackage ../development/tools/misc/rman { };
+
+  rnginline = with python3Packages; toPythonApplication rnginline;
+
+  rolespec = callPackage ../development/tools/misc/rolespec { };
+
+  rr = callPackage ../development/tools/analysis/rr { };
+
+  rsass = callPackage ../development/tools/misc/rsass { };
+
+  rsonpath = callPackage ../development/tools/misc/rsonpath { };
+
+  rufo = callPackage ../development/tools/rufo { };
+
+  rye = darwin.apple_sdk_11_0.callPackage ../development/tools/rye {
+    inherit (darwin.apple_sdk_11_0) Libsystem;
+    inherit (darwin.apple_sdk_11_0.frameworks) SystemConfiguration;
+  };
+
+  samurai = callPackage ../development/tools/build-managers/samurai { };
+
+  muon = callPackage ../development/tools/build-managers/muon { };
+  muonStandalone = muon.override {
+    embedSamurai = true;
+    buildDocs = false;
+  };
+
+  saleae-logic = callPackage ../development/tools/misc/saleae-logic { };
+
+  saleae-logic-2 = callPackage ../development/tools/misc/saleae-logic-2 { };
+
+  samply = callPackage ../development/tools/misc/samply { };
+
+  sauce-connect = callPackage ../development/tools/sauce-connect { };
+
+  sawjap = callPackage ../development/tools/java/sawjap { };
+
+  sbomnix = python3.pkgs.callPackage ../tools/security/sbomnix { };
+
+  sd-local = callPackage ../development/tools/sd-local { };
+
+  seer = libsForQt5.callPackage ../development/tools/misc/seer { };
+
+  selenium-server-standalone = callPackage ../development/tools/selenium/server { };
+
+  selendroid = callPackage ../development/tools/selenium/selendroid { };
+
+  sem = callPackage ../development/tools/sem { };
+
+  semver-tool = callPackage ../development/tools/misc/semver-tool { };
+
+  semantik = libsForQt5.callPackage ../applications/office/semantik { };
+
+  sca2d = callPackage ../development/tools/sca2d {  };
+
+  scons = scons_4_5_2;
+  scons_3_1_2 = callPackage ../development/tools/build-managers/scons/3.1.2.nix { };
+  scons_4_1_0 = callPackage ../development/tools/build-managers/scons/4.1.0.nix { };
+  scons_4_5_2 = callPackage ../development/tools/build-managers/scons/4.5.2.nix { };
+
+  mill = callPackage ../development/tools/build-managers/mill { };
+
+  sbt = callPackage ../development/tools/build-managers/sbt { };
+  sbt-with-scala-native = callPackage ../development/tools/build-managers/sbt/scala-native.nix { };
+  simpleBuildTool = sbt;
+
+  sbt-extras = callPackage ../development/tools/build-managers/sbt-extras { };
+
+  scala-cli = callPackage ../development/tools/build-managers/scala-cli { };
+
+  scc = callPackage ../development/tools/misc/scc { };
+
+  scss-lint = callPackage ../development/tools/scss-lint { };
+
+  segger-ozone = callPackage ../development/tools/misc/segger-ozone { };
+
+  selene = callPackage ../development/tools/selene { };
+
+  shadowenv = callPackage ../tools/misc/shadowenv {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  shake = haskell.lib.compose.justStaticExecutables haskellPackages.shake;
+
+  shallot = callPackage ../tools/misc/shallot { };
+
+  inherit (callPackage ../development/tools/build-managers/shards { })
+    shards_0_17
+    shards;
+
+  shellcheck = callPackage ../development/tools/shellcheck {
+    inherit (__splicedPackages.haskellPackages) ShellCheck;
+  };
+
+
+  # Minimal shellcheck executable for package checks.
+  # Use shellcheck which does not include docs, as
+  # pandoc takes long to build and documentation isn't needed for just running the cli
+  shellcheck-minimal = haskell.lib.compose.justStaticExecutables shellcheck.unwrapped;
+
+  shellharden = callPackage ../development/tools/shellharden { };
+
+  schemaspy = callPackage ../development/tools/database/schemaspy { };
+
+  scenebuilder = callPackage ../development/tools/scenebuilder { };
+
+  scenic-view = callPackage ../development/tools/scenic-view { };
+
+  shncpd = callPackage ../tools/networking/shncpd { };
+
+  sigrok-cli = callPackage ../development/tools/sigrok-cli { };
+
+  silicon = callPackage ../tools/misc/silicon {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreText Security;
+  };
+
+  simpleTpmPk11 = callPackage ../tools/security/simple-tpm-pk11 { };
+
+  slimerjs = callPackage ../development/tools/slimerjs { };
+
+  slint-lsp = callPackage ../development/tools/misc/slint-lsp {
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit CoreGraphics CoreServices CoreText Foundation OpenGL;
+  };
+
+  sloccount = callPackage ../development/tools/misc/sloccount { };
+
+  sloc = nodePackages.sloc;
+
+  smatch = callPackage ../development/tools/analysis/smatch { };
+
+  smc = callPackage ../tools/misc/smc { };
+
+  snakemake = callPackage ../applications/science/misc/snakemake { };
+
+  snore = callPackage ../tools/misc/snore { };
+
+  snyk = callPackage ../development/tools/analysis/snyk { };
+
+  snzip = callPackage ../tools/archivers/snzip { };
+
+  snowman = qt5.callPackage ../development/tools/analysis/snowman { };
+
+  sparse = callPackage ../development/tools/analysis/sparse {
+    llvm = llvm_14;
+  };
+
+  speedtest-cli = with python3Packages; toPythonApplication speedtest-cli;
+
+  spicy-parser-generator = callPackage ../development/tools/parsing/spicy { };
+
+  spin = callPackage ../development/tools/analysis/spin { };
+
+  spirv-headers = callPackage ../development/libraries/spirv-headers { };
+  spirv-tools = callPackage ../development/tools/spirv-tools { };
+
+  splint = callPackage ../development/tools/analysis/splint {
+    flex = flex_2_5_35;
+  };
+
+  spoofer = callPackage ../tools/networking/spoofer {
+    protobuf = protobuf_21;
+  };
+
+  spoofer-gui = callPackage ../tools/networking/spoofer {
+    withGUI = true;
+    protobuf = protobuf_21;
+  };
+
+  spooles = callPackage ../development/libraries/science/math/spooles { };
+
+  spr = callPackage ../development/tools/spr {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  spruce = callPackage ../development/tools/misc/spruce { };
+
+  sqlboiler-crdb = callPackage ../development/tools/database/sqlboiler-crdb { };
+
+  sqlc = callPackage ../development/tools/database/sqlc { };
+
+  sqlcheck = callPackage ../development/tools/database/sqlcheck { };
+
+  sqlcmd = callPackage ../development/tools/database/sqlcmd { };
+
+  sqlitebrowser = libsForQt5.callPackage ../development/tools/database/sqlitebrowser { };
+
+  sqlite-utils = with python3Packages; toPythonApplication sqlite-utils;
+
+  sqlite-web = callPackage ../development/tools/database/sqlite-web { };
+
+  sqlmap = with python3Packages; toPythonApplication sqlmap;
+
+  sqlpage = callPackage ../servers/sqlpage { };
+
+  src-cli = callPackage ../development/tools/misc/src-cli { };
+
+  sselp = callPackage ../tools/X11/sselp{ };
+
+  statix = callPackage ../tools/nix/statix { };
+
+  stm32cubemx = callPackage ../development/embedded/stm32/stm32cubemx { };
+
+  stm32flash = callPackage ../development/embedded/stm32/stm32flash { };
+
+  stm8flash = callPackage ../development/embedded/stm8/stm8flash { };
+
+  strace = callPackage ../development/tools/misc/strace { };
+
+  strace-analyzer = callPackage ../development/tools/misc/strace-analyzer { };
+
+  stylelint = callPackage ../development/tools/analysis/stylelint { };
+
+  stylua = callPackage ../development/tools/stylua { };
+
+  summon = callPackage ../development/tools/summon { };
+
+  supabase-cli = callPackage ../development/tools/supabase-cli { };
+
+  surge-cli = callPackage ../development/tools/surge-cli { };
+
+  svlint = callPackage ../development/tools/analysis/svlint { };
+
+  swarm = callPackage ../development/tools/analysis/swarm { };
+
+  swiftformat = callPackage ../development/tools/swiftformat { };
+
+  symfony-cli = callPackage ../development/tools/symfony-cli { };
+
+  swiftshader = callPackage ../development/libraries/swiftshader { };
+
+  systemfd = callPackage ../development/tools/systemfd { };
+
+  swig1 = callPackage ../development/tools/misc/swig { };
+  swig2 = callPackage ../development/tools/misc/swig/2.x.nix { };
+  swig3 = callPackage ../development/tools/misc/swig/3.x.nix { };
+  swig4 = callPackage ../development/tools/misc/swig/4.nix { };
+  swig = swig3;
+  swigWithJava = swig;
+
+  c2ffi = callPackage ../development/tools/misc/c2ffi { };
+
+  c0 = callPackage ../development/compilers/c0 {
+    stdenv = if stdenv.isDarwin then gccStdenv else stdenv;
+  };
+
+  c3c = callPackage ../development/compilers/c3c { };
+
+  swfmill = callPackage ../tools/video/swfmill { };
+
+  swftools = callPackage ../tools/video/swftools {
+    stdenv = gccStdenv;
+  };
+
+  szyszka = callPackage ../tools/misc/szyszka { };
+
+  taplo = callPackage ../development/tools/taplo {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  taoup = callPackage ../tools/misc/taoup { };
+
+  tarmac = callPackage ../development/tools/tarmac {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tcptrack = callPackage ../development/tools/misc/tcptrack { };
+
+  teensy-cmake-macros = callPackage ../development/embedded/teensy-cmake-macros { };
+
+  teensyduino = arduino-core.override { withGui = true; withTeensyduino = true; };
+
+  teensy-loader-cli = callPackage ../development/embedded/teensy-loader-cli { };
+
+  tytools = libsForQt5.callPackage ../development/embedded/tytools { };
+
+  terracognita = callPackage ../development/tools/misc/terracognita { };
+
+  terraform-lsp = callPackage ../development/tools/misc/terraform-lsp { };
+  terraform-ls = callPackage ../development/tools/misc/terraform-ls { };
+
+  terraformer = callPackage ../development/tools/misc/terraformer { };
+
+  terramate = callPackage ../development/tools/misc/terramate { };
+
+  terrascan = callPackage ../tools/security/terrascan { };
+
+  terser = callPackage ../development/tools/misc/terser { };
+
+  tesh = callPackage ../tools/text/tesh {};
+
+  texinfo413 = callPackage ../development/tools/misc/texinfo/4.13a.nix { };
+  texinfo4 = texinfo413;
+  texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { };
+  texinfo6_5 = callPackage ../development/tools/misc/texinfo/6.5.nix { }; # needed for allegro
+  texinfo6_7 = callPackage ../development/tools/misc/texinfo/6.7.nix { }; # needed for gpm, iksemel and fwknop
+  texinfo6 = callPackage ../development/tools/misc/texinfo/6.8.nix { };
+  texinfo7 = callPackage ../development/tools/misc/texinfo/7.0.nix { };
+  texinfo = texinfo7;
+  texinfoInteractive = texinfo.override { interactive = true; };
+
+  texi2html = callPackage ../development/tools/misc/texi2html { };
+
+  texi2mdoc = callPackage ../tools/misc/texi2mdoc { };
+
+  texlab = callPackage ../development/tools/misc/texlab {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+
+  time-ghc-modules = callPackage ../development/tools/time-ghc-modules { };
+
+  tflint = callPackage ../development/tools/analysis/tflint { };
+
+  tflint-plugins = recurseIntoAttrs (
+    callPackage ../development/tools/analysis/tflint-plugins { }
+  );
+
+  tfsec = callPackage ../development/tools/analysis/tfsec { };
+
+  todoist = callPackage ../applications/misc/todoist { };
+
+  todoist-electron = callPackage ../applications/misc/todoist-electron { };
+
+  toil = callPackage ../applications/science/misc/toil { };
+
+  travis = callPackage ../development/tools/misc/travis { };
+
+  tree-sitter = makeOverridable (callPackage ../development/tools/parsing/tree-sitter) {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+
+  tree-sitter-grammars = recurseIntoAttrs tree-sitter.builtGrammars;
+
+  trellis = callPackage ../development/embedded/fpga/trellis { };
+
+  ttags = callPackage ../development/tools/misc/ttags { };
+
+  ttyd = callPackage ../servers/ttyd { };
+
+  turbogit = callPackage ../development/tools/turbogit {
+    libgit2 = libgit2_1_3_0;
+  };
+
+  tweak = callPackage ../applications/editors/tweak { };
+
+  typical = callPackage ../development/tools/misc/typical { };
+
+  tyson = callPackage ../development/tools/misc/tyson { };
+
+  uddup = callPackage ../tools/security/uddup { };
+
+  udis86 = callPackage  ../development/tools/udis86 { };
+
+  uefi-firmware-parser = callPackage ../development/tools/analysis/uefi-firmware-parser { };
+
+  uhd = callPackage ../applications/radio/uhd { };
+  uhdMinimal = uhd.override {
+    enableUtils = false;
+    enablePythonApi = false;
+  };
+
+  uisp = callPackage ../development/embedded/uisp { };
+
+  wch-isp = callPackage ../development/embedded/wch-isp { };
+
+  uncrustify = callPackage ../development/tools/misc/uncrustify { };
+
+  universal-ctags = callPackage ../development/tools/misc/universal-ctags { };
+
+  unused = callPackage ../development/tools/misc/unused { };
+
+  vagrant = callPackage ../development/tools/vagrant { };
+
+  bashdb = callPackage ../development/tools/misc/bashdb { };
+
+  gdb = callPackage ../development/tools/misc/gdb {
+    guile = null;
+  };
+
+  gdbHostCpuOnly = gdb.override { hostCpuOnly = true; };
+
+  gf = callPackage ../development/tools/misc/gf { };
+
+  java-language-server = callPackage ../development/tools/java/java-language-server { };
+
+  jprofiler = callPackage ../development/tools/java/jprofiler {
+    jdk = jdk11;
+  };
+
+  jhiccup = callPackage ../development/tools/java/jhiccup { };
+
+  valgrind = callPackage ../development/tools/analysis/valgrind {
+    inherit (buildPackages.darwin) xnu bootstrap_cmds cctools;
+  };
+  valgrind-light = res.valgrind.override { gdb = null; };
+
+  qcachegrind = libsForQt5.callPackage ../development/tools/analysis/qcachegrind { };
+
+  visualvm = callPackage ../development/tools/java/visualvm { };
+
+  volta = callPackage ../development/tools/volta { };
+
+  vultr = callPackage ../development/tools/vultr { };
+
+  vultr-cli = callPackage ../development/tools/vultr-cli { };
+
+  vulnix = callPackage ../tools/security/vulnix { };
+
+  vtable-dumper = callPackage ../development/tools/misc/vtable-dumper { };
+
+  wails = callPackage ../development/tools/wails { };
+
+  wasmer-pack = callPackage ../development/tools/misc/wasmer-pack { };
+
+  whatsapp-for-linux = callPackage ../applications/networking/instant-messengers/whatsapp-for-linux { };
+
+  whatstyle = callPackage ../development/tools/misc/whatstyle {
+    inherit (llvmPackages) clang-unwrapped;
+  };
+
+  watson-ruby = callPackage ../development/tools/misc/watson-ruby { };
+
+  web-ext = callPackage ../development/tools/web-ext { };
+
+  webdis = callPackage ../development/tools/database/webdis { };
+
+  xmake = callPackage ../development/tools/build-managers/xmake {
+    lua = lua5_4;
+  };
+
+  xc3sprog = callPackage ../development/embedded/xc3sprog { };
+
+  xcb-imdkit = callPackage ../development/libraries/xcb-imdkit { };
+
+  xcode-install = callPackage ../development/tools/xcode-install { };
+
+  xcodebuild = callPackage ../development/tools/xcbuild/wrapper.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices CoreGraphics ImageIO;
+  };
+  xcodebuild6 = xcodebuild.override { stdenv = llvmPackages_6.stdenv; };
+  xcbuild = xcodebuild;
+  xcbuildHook = makeSetupHook {
+    name = "xcbuild-hook";
+    propagatedBuildInputs = [ xcbuild ];
+  } ../development/tools/xcbuild/setup-hook.sh  ;
+
+  # xcbuild with llvm 6
+  xcbuild6Hook = makeSetupHook {
+    name = "xcbuild6-hook";
+    propagatedBuildInputs = [ xcodebuild6 ];
+  } ../development/tools/xcbuild/setup-hook.sh  ;
+
+  xcpretty = callPackage ../development/tools/xcpretty { };
+
+  xeus = callPackage ../development/libraries/xeus { };
+
+  xeus-zmq = callPackage ../development/libraries/xeus-zmq { };
+
+  xmlindent = callPackage ../development/web/xmlindent { };
+
+  xpwn = callPackage ../development/mobile/xpwn { };
+
+  xxdiff = libsForQt5.callPackage ../development/tools/misc/xxdiff { };
+
+  xxe-pe = callPackage ../applications/editors/xxe-pe { };
+
+  xxdiff-tip = xxdiff;
+
+  xxgdb = callPackage ../development/tools/misc/xxgdb { };
+
+  yaml2json = callPackage ../development/tools/yaml2json { };
+
+  yams = callPackage ../applications/audio/yams { };
+
+  ycmd = callPackage ../development/tools/misc/ycmd {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    python = python3;
+  };
+
+  yo = callPackage ../development/tools/yo { };
+
+  yodl = callPackage ../development/tools/misc/yodl { };
+
+  yq = python3.pkgs.toPythonApplication python3.pkgs.yq;
+
+  yq-go = callPackage ../development/tools/yq-go { };
+
+  ytt = callPackage ../development/tools/ytt { };
+
+  zydis = callPackage ../development/libraries/zydis { };
+
+  grabserial = callPackage ../development/tools/grabserial { };
+
+  mypy = with python3Packages; toPythonApplication mypy;
+
+  mypy-protobuf = with python3Packages; toPythonApplication mypy-protobuf;
+
+  nsis = callPackage ../development/tools/nsis { };
+
+  tockloader = callPackage ../development/tools/misc/tockloader { };
+
+  zon2nix = callPackage ../tools/nix/zon2nix { };
+
+  ztags = callPackage ../development/tools/misc/ztags { };
+
+  ### DEVELOPMENT / LIBRARIES
+
+  a52dec = callPackage ../development/libraries/a52dec { };
+
+  aalib = callPackage ../development/libraries/aalib { };
+
+  abseil-cpp_202103 = callPackage ../development/libraries/abseil-cpp/202103.nix {
+    # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib.
+    stdenv = if stdenv.isDarwin && stdenv.isx86_64
+      then overrideSDK stdenv { darwinMinVersion = "10.13"; }
+      else stdenv;
+  };
+  abseil-cpp_202206 = callPackage ../development/libraries/abseil-cpp/202206.nix {
+    # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib.
+    stdenv = if stdenv.isDarwin && stdenv.isx86_64
+      then overrideSDK stdenv { darwinMinVersion = "10.13"; }
+      else stdenv;
+  };
+  abseil-cpp_202301 = callPackage ../development/libraries/abseil-cpp/202301.nix {
+    # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib.
+    stdenv = if stdenv.isDarwin && stdenv.isx86_64
+      then overrideSDK stdenv { darwinMinVersion = "10.13"; }
+      else stdenv;
+  };
+  abseil-cpp_202308 = callPackage ../development/libraries/abseil-cpp/202308.nix {
+    # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib.
+    stdenv = if stdenv.isDarwin && stdenv.isx86_64
+      then overrideSDK stdenv { darwinMinVersion = "10.13"; }
+      else stdenv;
+  };
+  abseil-cpp = abseil-cpp_202301;
+
+  accountsservice = callPackage ../development/libraries/accountsservice { };
+
+  acl = callPackage ../development/libraries/acl { };
+
+  acltoolkit = callPackage ../tools/security/acltoolkit { };
+
+  acsccid = callPackage ../tools/security/acsccid { };
+
+  activemq = callPackage ../development/libraries/apache-activemq { };
+
+  adns = callPackage ../development/libraries/adns { };
+
+  adslib = callPackage ../development/libraries/adslib { };
+
+  afflib = callPackage ../development/libraries/afflib { };
+
+  aften = callPackage ../development/libraries/aften { };
+
+  alure = callPackage ../development/libraries/alure { };
+
+  alure2 = callPackage ../development/libraries/alure2 { };
+
+  agg = callPackage ../development/libraries/agg { };
+
+  agkozak-zsh-prompt = callPackage ../shells/zsh/agkozak-zsh-prompt { };
+
+  alass = callPackage ../applications/video/alass { };
+
+  allegro = allegro4;
+  allegro4 = callPackage ../development/libraries/allegro { };
+  allegro5 = callPackage ../development/libraries/allegro/5.nix { };
+
+  amdvlk = callPackage ../development/libraries/amdvlk { };
+
+  amf-headers = callPackage ../development/libraries/amf-headers { };
+
+  aml = callPackage ../development/libraries/aml { };
+
+  amrnb = callPackage ../development/libraries/amrnb { };
+
+  amrwb = callPackage ../development/libraries/amrwb { };
+
+  ansi2html = with python3.pkgs; toPythonApplication ansi2html;
+
+  antic = callPackage ../development/libraries/antic { };
+
+  anttweakbar = callPackage ../development/libraries/AntTweakBar { };
+
+  appstream = callPackage ../development/libraries/appstream { };
+
+  appstream-glib = callPackage ../development/libraries/appstream-glib { };
+
+  apr = callPackage ../development/libraries/apr {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  aprutil = callPackage ../development/libraries/apr-util { };
+
+  aravis = callPackage ../development/libraries/aravis { };
+
+  arb = callPackage ../development/libraries/arb { };
+
+  argparse = callPackage ../development/libraries/argparse { };
+
+  argp-standalone = callPackage ../development/libraries/argp-standalone { };
+
+  aribb25 = callPackage ../development/libraries/aribb25 {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  armadillo = callPackage ../development/libraries/armadillo { };
+
+  arrayfire = callPackage ../development/libraries/arrayfire {
+    cudaPackages = cudaPackages_12;
+  };
+
+  arrow-cpp = callPackage ../development/libraries/arrow-cpp { };
+
+  arrow-glib = callPackage ../development/libraries/arrow-glib { };
+
+  arsenal = callPackage ../tools/security/arsenal { };
+
+  assimp = callPackage ../development/libraries/assimp { };
+
+  asio_1_10 = callPackage ../development/libraries/asio/1.10.nix { };
+  asio = callPackage ../development/libraries/asio { };
+
+  asmjit = callPackage ../development/libraries/asmjit { };
+
+  aspell = callPackage ../development/libraries/aspell { };
+
+  aspellDicts = recurseIntoAttrs (callPackages ../development/libraries/aspell/dictionaries.nix {});
+
+  aspellWithDicts = callPackage ../development/libraries/aspell/aspell-with-dicts.nix {
+    aspell = aspell.override { searchNixProfiles = false; };
+  };
+
+  attr = callPackage ../development/libraries/attr { };
+
+  at-spi2-core = callPackage ../development/libraries/at-spi2-core { };
+
+  # Not moved to aliases while we decide if we should split the package again.
+  at-spi2-atk = at-spi2-core;
+
+  aqbanking = callPackage ../development/libraries/aqbanking { };
+
+  aubio = callPackage ../development/libraries/aubio { };
+
+  audiality2 = callPackage ../development/libraries/audiality2 { };
+
+  audiofile = callPackage ../development/libraries/audiofile {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreServices;
+  };
+
+  aws-c-auth = callPackage ../development/libraries/aws-c-auth { };
+
+  aws-c-cal = callPackage ../development/libraries/aws-c-cal {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  aws-c-common = callPackage ../development/libraries/aws-c-common { };
+
+  aws-c-compression = callPackage ../development/libraries/aws-c-compression { };
+
+  aws-c-event-stream = callPackage ../development/libraries/aws-c-event-stream { };
+
+  aws-c-http = callPackage ../development/libraries/aws-c-http { };
+
+  aws-c-io = callPackage ../development/libraries/aws-c-io {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  aws-c-mqtt = callPackage ../development/libraries/aws-c-mqtt { };
+
+  aws-c-s3 = callPackage ../development/libraries/aws-c-s3 { };
+
+  aws-c-sdkutils = callPackage ../development/libraries/aws-c-sdkutils { };
+
+  aws-checksums = callPackage ../development/libraries/aws-checksums { };
+
+  aws-crt-cpp = callPackage ../development/libraries/aws-crt-cpp { };
+
+  aws-sdk-cpp = callPackage ../development/libraries/aws-sdk-cpp {
+    inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox;
+  };
+
+  ayatana-ido = callPackage ../development/libraries/ayatana-ido { };
+
+  ayatana-webmail = callPackage ../applications/networking/mailreaders/ayatana-webmail { };
+
+  azmq = callPackage ../development/libraries/azmq { };
+
+  babl = callPackage ../development/libraries/babl { };
+
+  backward-cpp = callPackage ../development/libraries/backward-cpp { };
+
+  bamf = callPackage ../development/libraries/bamf { };
+
+  inherit (callPackages ../development/libraries/bashup-events { }) bashup-events32 bashup-events44;
+
+  bcg729 = callPackage ../development/libraries/bcg729 { };
+
+  bctoolbox = callPackage ../development/libraries/bctoolbox { };
+
+  bc-soci = callPackage ../development/libraries/soci/bc-soci.nix { };
+
+  bearssl = callPackage ../development/libraries/bearssl { };
+
+  beecrypt = callPackage ../development/libraries/beecrypt { };
+
+  belcard = callPackage ../development/libraries/belcard { };
+
+  belr = callPackage ../development/libraries/belr { };
+
+  bencode = callPackage ../development/libraries/bencode { };
+
+  bencodetools = callPackage ../development/libraries/bencodetools { };
+
+  beignet = callPackage ../development/libraries/beignet {
+    inherit (llvmPackages_6) libllvm libclang;
+  };
+
+  belle-sip = callPackage ../development/libraries/belle-sip { };
+
+
+  bicpl = callPackage ../development/libraries/science/biology/bicpl { };
+
+  bicgl = callPackage ../development/libraries/science/biology/bicgl { inherit (darwin.apple_sdk.frameworks) GLUT; };
+
+  # TODO(@Ericson2314): Build bionic libc from source
+  bionic = if stdenv.hostPlatform.useAndroidPrebuilt
+    then pkgs."androidndkPkgs_${stdenv.hostPlatform.ndkVer}".libraries
+    else callPackage ../os-specific/linux/bionic-prebuilt { };
+
+
+  bobcat = callPackage ../development/libraries/bobcat { };
+
+  boehmgc = callPackage ../development/libraries/boehm-gc { };
+
+  boolstuff = callPackage ../development/libraries/boolstuff { };
+
+  inherit (callPackage ../development/libraries/boost { inherit (buildPackages) boost-build; })
+    boost175
+    boost177
+    boost178
+    boost179
+    boost180
+    boost181
+    boost182
+    boost183
+  ;
+
+  boost = boost181;
+
+  boost_process = callPackage ../development/libraries/boost-process { };
+
+  bosh-cli = callPackage ../applications/networking/cluster/bosh-cli { };
+
+  botan2 = callPackage ../development/libraries/botan/2.0.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  botan3 = callPackage ../development/libraries/botan/3.0.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  box2d = callPackage ../development/libraries/box2d { };
+
+  boxfort = callPackage ../development/libraries/boxfort { };
+
+  brunsli = callPackage ../development/libraries/brunsli { };
+
+  buddy = callPackage ../development/libraries/buddy { };
+
+  buildkit-nix = callPackage ../applications/virtualization/buildkit-nix { };
+
+  bulletml = callPackage ../development/libraries/bulletml { };
+
+  bwidget = callPackage ../development/libraries/bwidget { };
+
+  bzrtp = callPackage ../development/libraries/bzrtp { };
+
+  c-ares = callPackage ../development/libraries/c-ares { };
+
+  c-aresMinimal = callPackage ../development/libraries/c-ares {
+    withCMake = false;
+  };
+
+  c-blosc = callPackage ../development/libraries/c-blosc { };
+
+  # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
+  # ghc94: https://discourse.haskell.org/t/facing-mmap-4096-bytes-at-nil-cannot-allocate-memory-youre-not-alone/6259
+  cachix = haskell.lib.justStaticExecutables haskell.packages.ghc94.cachix;
+
+  calcium = callPackage ../development/libraries/calcium { };
+
+  cubeb = callPackage ../development/libraries/audio/cubeb {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio CoreServices;
+  };
+
+  hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };
+
+  hci = callPackage ../development/tools/continuous-integration/hci { };
+
+  isa-l = callPackage ../development/libraries/isa-l { };
+
+  niv = lib.getBin (haskell.lib.compose.justStaticExecutables haskellPackages.niv);
+
+  ormolu = haskellPackages.ormolu.bin;
+
+  capnproto = callPackage ../development/libraries/capnproto { };
+
+  capnproto-java = callPackage ../development/tools/capnproto-java { };
+
+  capnproto-rust = callPackage ../development/tools/capnproto-rust { };
+
+  captive-browser = callPackage ../applications/networking/browsers/captive-browser { };
+
+  catboost = callPackage ../development/libraries/catboost {
+    # catboost requires clang 12+ for build
+    # after bumping the default version of llvm, check for compatibility with the cuda backend and pin it.
+    inherit (llvmPackages_12) stdenv;
+
+    # https://github.com/catboost/catboost/issues/2540
+    cudaPackages = cudaPackages_11;
+  };
+
+  ndn-cxx = callPackage ../development/libraries/ndn-cxx { };
+
+  ndn-tools = callPackage ../tools/networking/ndn-tools { };
+
+  nfd = callPackage ../servers/nfd { };
+
+  cddlib = callPackage ../development/libraries/cddlib { };
+
+  cdk-go = callPackage ../tools/security/cdk-go { };
+
+  cdo = callPackage ../development/libraries/cdo { };
+
+  cista = callPackage ../development/libraries/cista { };
+
+  cjose = callPackage ../development/libraries/cjose { };
+
+  scmccid = callPackage ../development/libraries/scmccid { };
+
+  ccrtp = callPackage ../development/libraries/ccrtp { };
+
+  cctag = callPackage ../development/libraries/cctag {
+    tbb = tbb_2021_8;
+  };
+
+  cctz = callPackage ../development/libraries/cctz {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  ceedling = callPackage ../development/tools/ceedling { };
+
+  celt = callPackage ../development/libraries/celt { };
+  celt_0_7 = callPackage ../development/libraries/celt/0.7.nix { };
+  celt_0_5_1 = callPackage ../development/libraries/celt/0.5.1.nix { };
+
+  cegui = callPackage ../development/libraries/cegui { };
+
+  certbot = python3.pkgs.toPythonApplication python3.pkgs.certbot;
+
+  certbot-full = certbot.withPlugins (cp: with cp; [
+    certbot-dns-cloudflare
+    certbot-dns-google
+    certbot-dns-ovh
+    certbot-dns-rfc2136
+    certbot-dns-route53
+  ]);
+
+  caf = callPackage ../development/libraries/caf { };
+
+  # CGAL 5 has API changes
+  cgal_4 = callPackage ../development/libraries/CGAL/4.nix { };
+  cgal_5 = callPackage ../development/libraries/CGAL { };
+  cgal = cgal_4;
+
+  cgui = callPackage ../development/libraries/cgui { };
+
+  charls = callPackage ../development/libraries/charls { };
+
+  check = callPackage ../development/libraries/check {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  chipmunk = callPackage ../development/libraries/chipmunk { };
+
+  chmlib = callPackage ../development/libraries/chmlib { };
+
+  chromaprint = callPackage ../development/libraries/chromaprint { };
+
+  cl = callPackage ../development/libraries/cl { };
+
+  clanlib = callPackage ../development/libraries/clanlib { };
+
+  clap = callPackage ../development/libraries/clap { };
+
+  classads = callPackage ../development/libraries/classads { };
+
+  clfft = callPackage ../development/libraries/clfft { };
+
+  clipp  = callPackage ../development/libraries/clipp { };
+
+  clipper = callPackage ../development/libraries/clipper { };
+
+  clipper2 = callPackage ../development/libraries/clipper2 { };
+
+  cln = callPackage ../development/libraries/cln { };
+
+  clucene_core_2 = callPackage ../development/libraries/clucene-core/2.x.nix { };
+
+  clucene_core = clucene_core_2;
+
+  clutter = callPackage ../development/libraries/clutter { };
+
+  clutter-gst = callPackage ../development/libraries/clutter-gst {
+  };
+
+  clutter-gtk = callPackage ../development/libraries/clutter-gtk { };
+
+  cminpack = callPackage ../development/libraries/cminpack { };
+
+  cmocka = callPackage ../development/libraries/cmocka { };
+
+  cmrt = callPackage ../development/libraries/cmrt { };
+
+  codecserver = callPackage ../applications/audio/codecserver {
+    protobuf = protobuf_21;
+  };
+
+  coeurl = callPackage ../development/libraries/coeurl { };
+
+  coercer = callPackage ../tools/security/coercer { };
+
+  cogl = callPackage ../development/libraries/cogl {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+  };
+
+  coin3d = callPackage ../development/libraries/coin3d { };
+
+  soxt = callPackage ../development/libraries/soxt { };
+
+  CoinMP = callPackage ../development/libraries/CoinMP { };
+
+  coinlive = callPackage ../tools/misc/coinlive {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  cointop = callPackage ../applications/misc/cointop { };
+
+  collada-dom = callPackage ../development/libraries/collada-dom { };
+
+  coloquinte = callPackage ../development/libraries/science/electronics/coloquinte { };
+
+  cog = callPackage ../development/web/cog { };
+
+  inherit (cosmopolitan) cosmocc;
+
+  python-cosmopolitan = callPackage ../development/interpreters/python-cosmopolitan { };
+
+  ctpp2 = callPackage ../development/libraries/ctpp2 { };
+
+  ctpl = callPackage ../development/libraries/ctpl { };
+
+  cppe = callPackage ../development/libraries/science/chemistry/cppe { };
+
+  cppdb = callPackage ../development/libraries/cppdb { };
+
+  cpp-utilities = callPackage ../development/libraries/cpp-utilities { };
+
+  cpp-hocon = callPackage ../development/libraries/cpp-hocon { };
+
+  cpp-ipfs-http-client = callPackage ../development/libraries/cpp-ipfs-http-client { };
+
+  cpp-netlib = callPackage ../development/libraries/cpp-netlib { };
+
+  cpp-jwt = callPackage ../development/libraries/cpp-jwt { };
+
+  ctranslate2 = callPackage ../development/libraries/ctranslate2 rec {
+    stdenv = if withCUDA then gcc11Stdenv else pkgs.stdenv;
+    withCUDA = pkgs.config.cudaSupport;
+    withCuDNN = withCUDA && (cudaPackages ? cudnn);
+    cudaPackages = pkgs.cudaPackages;
+  };
+
+  ubus = callPackage ../development/libraries/ubus { };
+
+  uci = callPackage ../development/libraries/uci { };
+
+  uclient = callPackage ../development/libraries/uclient { };
+
+  ustream-ssl = callPackage ../development/libraries/ustream-ssl { ssl_implementation = openssl; };
+
+  ustream-ssl-wolfssl = callPackage ../development/libraries/ustream-ssl { ssl_implementation = wolfssl; };
+
+  ustream-ssl-mbedtls = callPackage ../development/libraries/ustream-ssl { ssl_implementation = mbedtls_2; };
+
+  uri = callPackage ../development/libraries/uri { };
+
+  cppcms = callPackage ../development/libraries/cppcms { };
+
+  cppcodec = callPackage ../development/libraries/cppcodec { };
+
+  cppunit = callPackage ../development/libraries/cppunit { };
+
+  cpputest = callPackage ../development/libraries/cpputest { };
+
+  cracklib = callPackage ../development/libraries/cracklib { };
+
+  cre2 = callPackage ../development/libraries/cre2 { };
+
+  criterion = callPackage ../development/libraries/criterion { };
+
+  croaring = callPackage ../development/libraries/croaring { };
+
+  crocoddyl = callPackage ../development/libraries/crocoddyl { };
+
+  crossguid = callPackage ../development/libraries/crossguid { };
+
+  cryptopp = callPackage ../development/libraries/crypto++ { };
+
+  cryptominisat = callPackage ../applications/science/logic/cryptominisat { };
+
+  csdr = callPackage ../applications/radio/csdr { };
+
+  ctypes_sh = callPackage ../development/libraries/ctypes_sh { };
+
+  curlpp = callPackage ../development/libraries/curlpp { };
+
+  cutee = callPackage ../development/libraries/cutee { };
+
+  cxxtools = callPackage ../development/libraries/cxxtools { stdenv = gcc10StdenvCompat; };
+
+  cwiid = callPackage ../development/libraries/cwiid { };
+
+  cxx-prettyprint = callPackage ../development/libraries/cxx-prettyprint { };
+
+  cxxopts = callPackage ../development/libraries/cxxopts { };
+
+  cxxtest = python3Packages.callPackage ../development/libraries/cxxtest { };
+
+  cypress = callPackage ../development/web/cypress { };
+
+  cyrus_sasl = callPackage ../development/libraries/cyrus-sasl {
+    libkrb5 = if stdenv.isFreeBSD then heimdal else libkrb5;
+  };
+
+  cyrus-sasl-xoauth2 = callPackage ../development/libraries/cyrus-sasl-xoauth2 { };
+
+  # Make bdb5 the default as it is the last release under the custom
+  # bsd-like license
+  db = db5;
+  db4 = db48;
+  db48 = callPackage ../development/libraries/db/db-4.8.nix { };
+  db5 = db53;
+  db53 = callPackage ../development/libraries/db/db-5.3.nix { };
+  db6 = db60;
+  db60 = callPackage ../development/libraries/db/db-6.0.nix { };
+  db62 = callPackage ../development/libraries/db/db-6.2.nix { };
+
+  dbxml = callPackage ../development/libraries/dbxml { };
+
+  dbus = callPackage ../development/libraries/dbus { };
+  dbus_cplusplus  = callPackage ../development/libraries/dbus-cplusplus { };
+  dbus-glib       = callPackage ../development/libraries/dbus-glib { };
+  dbus_java       = callPackage ../development/libraries/java/dbus-java { };
+
+  dbus-sharp-1_0 = callPackage ../development/libraries/dbus-sharp/dbus-sharp-1.0.nix { };
+  dbus-sharp-2_0 = callPackage ../development/libraries/dbus-sharp { };
+
+  dbus-sharp-glib-1_0 = callPackage ../development/libraries/dbus-sharp-glib/dbus-sharp-glib-1.0.nix { };
+  dbus-sharp-glib-2_0 = callPackage ../development/libraries/dbus-sharp-glib { };
+
+  makeDBusConf = { suidHelper, serviceDirectories, apparmor ? "disabled" }:
+    callPackage ../development/libraries/dbus/make-dbus-conf.nix {
+      inherit suidHelper serviceDirectories apparmor;
+    };
+
+  dee = callPackage ../development/libraries/dee {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  dhex = callPackage ../applications/editors/dhex { };
+
+  double-conversion = callPackage ../development/libraries/double-conversion { };
+
+  dclib = callPackage ../development/libraries/dclib { };
+
+  digiham = callPackage ../applications/radio/digiham { };
+
+  dillo = callPackage ../applications/networking/browsers/dillo {
+    fltk = fltk13;
+  };
+
+  dillong = callPackage ../applications/networking/browsers/dillong { };
+
+  directfb = callPackage ../development/libraries/directfb { };
+
+  discordchatexporter-cli = callPackage ../tools/backup/discordchatexporter-cli { };
+
+  discord-gamesdk = callPackage ../development/libraries/discord-gamesdk { };
+
+  discord-rpc = callPackage ../development/libraries/discord-rpc {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  discord-sh = callPackage ../tools/networking/discord-sh { };
+
+  dlib = callPackage ../development/libraries/dlib { };
+
+  doctest = callPackage ../development/libraries/doctest { };
+
+  docopt_cpp = callPackage ../development/libraries/docopt_cpp { };
+
+  docopts = callPackage ../development/tools/misc/docopts { };
+
+  dotconf = callPackage ../development/libraries/dotconf { };
+
+  draco = callPackage ../development/libraries/draco {
+    tinygltf = callPackage ../development/libraries/draco/tinygltf.nix { };
+  };
+
+  # Multi-arch "drivers" which we want to build for i686.
+  driversi686Linux = recurseIntoAttrs {
+    inherit (pkgsi686Linux)
+      amdvlk
+      intel-media-driver
+      intel-vaapi-driver
+      mesa
+      libvdpau-va-gl
+      vaapiVdpau
+      beignet
+      glxinfo
+      vdpauinfo;
+  };
+
+  drogon = callPackage ../development/libraries/drogon { };
+
+  dssi = callPackage ../development/libraries/dssi { };
+
+  duckdb = callPackage ../development/libraries/duckdb { };
+
+  easyloggingpp = callPackage ../development/libraries/easyloggingpp { };
+
+  eccodes = callPackage ../development/libraries/eccodes {
+    pythonPackages = python3Packages;
+    stdenv = if stdenv.isDarwin then gccStdenv else stdenv;
+  };
+
+  eclib = callPackage ../development/libraries/eclib { };
+
+  editline = callPackage ../development/libraries/editline { };
+
+  edencommon = callPackage ../development/libraries/edencommon { };
+
+  eigen = callPackage ../development/libraries/eigen { };
+
+  eigen2 = callPackage ../development/libraries/eigen/2.0.nix { };
+
+  eigenmath = callPackage ../applications/science/math/eigenmath { };
+
+  vapoursynth = callPackage ../development/libraries/vapoursynth {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  vapoursynth-editor = libsForQt5.callPackage ../development/libraries/vapoursynth/editor.nix { };
+
+  vapoursynth-mvtools = callPackage ../development/libraries/vapoursynth-mvtools { };
+
+  vmmlib = callPackage ../development/libraries/vmmlib {
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
+  };
+
+  eglexternalplatform = callPackage ../development/libraries/eglexternalplatform { };
+
+  egl-wayland = callPackage ../development/libraries/egl-wayland { };
+
+  elastix = callPackage ../development/libraries/science/biology/elastix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  elfio = callPackage ../development/libraries/elfio { };
+
+  emanote = haskell.lib.compose.justStaticExecutables haskellPackages.emanote;
+
+  enchant2 = callPackage ../development/libraries/enchant/2.x.nix { };
+  enchant = enchant2;
+
+  enet = callPackage ../development/libraries/enet { };
+
+  entt = callPackage ../development/libraries/entt { };
+
+  epoll-shim = callPackage ../development/libraries/epoll-shim { };
+
+  libepoxy = callPackage ../development/libraries/libepoxy {
+    inherit (darwin.apple_sdk.frameworks) Carbon OpenGL;
+  };
+
+  libesmtp = callPackage ../development/libraries/libesmtp { };
+
+  liberasurecode = callPackage ../applications/misc/liberasurecode { };
+
+  example-robot-data = callPackage ../development/libraries/example-robot-data { };
+
+  exiv2 = callPackage ../development/libraries/exiv2 { };
+
+  expat = callPackage ../development/libraries/expat { };
+
+  exprtk = callPackage ../development/libraries/exprtk { };
+
+  eventlog = callPackage ../development/libraries/eventlog { };
+
+  faac = callPackage ../development/libraries/faac { };
+
+  faad2 = callPackage ../development/libraries/faad2 { };
+
+  factor-lang-scope = callPackage ../development/compilers/factor-lang/scope.nix { };
+  factor-lang = factor-lang-scope.interpreter;
+
+  fancypp = callPackage ../development/libraries/fancypp { };
+
+  far2l = callPackage ../applications/misc/far2l {
+    inherit (darwin.apple_sdk.frameworks) IOKit Carbon Cocoa AudioToolbox OpenGL System;
+  };
+
+  farbfeld = callPackage ../development/libraries/farbfeld { };
+
+  farstream = callPackage ../development/libraries/farstream {
+    inherit (gst_all_1)
+      gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad
+      gst-libav;
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  fastcdr = callPackage ../development/libraries/fastcdr { };
+
+  fbthrift = callPackage ../development/libraries/fbthrift { };
+
+  fb303 = callPackage ../development/libraries/fb303 { };
+
+  fcgi = callPackage ../development/libraries/fcgi { };
+
+  fcl = callPackage ../development/libraries/fcl { };
+
+  febio = callPackage ../development/libraries/febio { };
+
+  ffcast = callPackage ../tools/X11/ffcast { };
+
+  fflas-ffpack = callPackage ../development/libraries/fflas-ffpack { };
+
+  forge = callPackage ../development/libraries/forge { };
+
+  linbox = callPackage ../development/libraries/linbox { };
+
+  ffmpeg_4 = callPackage ../development/libraries/ffmpeg/4.nix {
+    inherit (darwin.apple_sdk.frameworks)
+      Cocoa CoreServices CoreAudio CoreMedia AVFoundation MediaToolbox
+      VideoDecodeAcceleration VideoToolbox;
+  };
+  ffmpeg_4-headless = ffmpeg_4.override {
+    ffmpegVariant = "headless";
+  };
+  ffmpeg_4-full = ffmpeg_4.override {
+    ffmpegVariant = "full";
+  };
+
+  ffmpeg_5 = callPackage ../development/libraries/ffmpeg/5.nix {
+    inherit (darwin.apple_sdk.frameworks)
+      Cocoa CoreServices CoreAudio CoreMedia AVFoundation MediaToolbox
+      VideoDecodeAcceleration VideoToolbox;
+  };
+  ffmpeg_5-headless = ffmpeg_5.override {
+    ffmpegVariant = "headless";
+  };
+  ffmpeg_5-full = ffmpeg_5.override {
+    ffmpegVariant = "full";
+  };
+
+  ffmpeg_6 = callPackage ../development/libraries/ffmpeg/6.nix {
+     inherit (darwin.apple_sdk.frameworks)
+      Cocoa CoreServices CoreAudio CoreMedia AVFoundation MediaToolbox
+      VideoDecodeAcceleration VideoToolbox;
+  };
+  ffmpeg_6-headless = ffmpeg_6.override {
+    ffmpegVariant = "headless";
+  };
+  ffmpeg_6-full = ffmpeg_6.override {
+    ffmpegVariant = "full";
+  };
+
+  # Aliases
+  # Please make sure this is updated to the latest version on the next major
+  # update to ffmpeg
+  # Packages which use ffmpeg as a library, should pin to the relevant major
+  # version number which the upstream support.
+  ffmpeg = ffmpeg_6;
+  ffmpeg-headless = ffmpeg_6-headless;
+  ffmpeg-full = ffmpeg_6-full;
+
+  ffmpegthumbnailer = callPackage ../development/libraries/ffmpegthumbnailer { };
+
+  ffmpeg-normalize = python3Packages.callPackage ../applications/video/ffmpeg-normalize { };
+
+  ffms = callPackage ../development/libraries/ffms { };
+
+  fftw = callPackage ../development/libraries/fftw { };
+  fftwSinglePrec = fftw.override { precision = "single"; };
+  fftwFloat = fftwSinglePrec; # the configure option is just an alias
+  fftwLongDouble = fftw.override { precision = "long-double"; };
+  # Need gcc >= 4.6.0 to build with FFTW with quad precision, but Darwin defaults to Clang
+  fftwQuad = fftw.override {
+    precision = "quad-precision";
+    stdenv = gccStdenv;
+  };
+  fftwMpi = fftw.override { enableMpi = true; };
+
+  filter-audio = callPackage ../development/libraries/filter-audio { };
+
+  filtron = callPackage ../servers/filtron { };
+
+  fizz = callPackage ../development/libraries/fizz { };
+
+  flann = callPackage ../development/libraries/flann { };
+
+  flatcc = callPackage ../development/libraries/flatcc { };
+
+  flint = callPackage ../development/libraries/flint { };
+
+  flite = callPackage ../development/libraries/flite { };
+
+  fltk13 = callPackage ../development/libraries/fltk {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa OpenGL;
+  };
+  fltk14 = callPackage ../development/libraries/fltk/1.4.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa OpenGL;
+  };
+  fltk13-minimal = fltk13.override {
+    withGL = false;
+    withCairo = false;
+    withPango = false;
+    withExamples = false;
+    withDocs = false;
+  };
+  fltk14-minimal = fltk14.override {
+    withGL = false;
+    withCairo = false;
+    withPango = false;
+    withExamples = false;
+    withDocs = false;
+  };
+  fltk = fltk13;
+  fltk-minimal = fltk13-minimal;
+
+  flyway = callPackage ../development/tools/flyway { };
+
+  inherit (callPackages ../development/libraries/fmt { }) fmt_8 fmt_9 fmt_10;
+
+  fmt = fmt_10;
+
+  fplll = callPackage ../development/libraries/fplll { };
+  fplll_20160331 = callPackage ../development/libraries/fplll/20160331.nix { };
+
+  freeimage = callPackage ../development/libraries/freeimage {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  freeipa = callPackage ../os-specific/linux/freeipa {
+    kerberos = krb5.override {
+      withVerto = true;
+    };
+    sasl = cyrus_sasl;
+    samba = samba4.override {
+      enableLDAP = true;
+    };
+  };
+
+  freetts = callPackage ../development/libraries/freetts {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  frog = res.languageMachines.frog;
+
+  fstrcmp = callPackage ../development/libraries/fstrcmp { };
+
+  fstrm = callPackage ../development/libraries/fstrm { };
+
+  cfitsio = callPackage ../development/libraries/science/astronomy/cfitsio { };
+
+  fontconfig = callPackage ../development/libraries/fontconfig {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
+
+  folly = callPackage ../development/libraries/folly { };
+
+  folks = callPackage ../development/libraries/folks { };
+
+  fortify-headers = callPackage ../development/libraries/fortify-headers { };
+
+  makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
+    callPackage ../development/libraries/fontconfig/make-fonts-conf.nix {
+      inherit fontconfig fontDirectories;
+    };
+
+  makeFontsCache = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
+    callPackage ../development/libraries/fontconfig/make-fonts-cache.nix {
+      inherit fontconfig fontDirectories;
+    };
+
+  f2c = callPackage ../development/tools/f2c { };
+
+  freealut = callPackage ../development/libraries/freealut { };
+
+  freeglut = callPackage ../development/libraries/freeglut { };
+
+  freenect = callPackage ../development/libraries/freenect {
+    inherit (darwin.apple_sdk.frameworks) Cocoa GLUT;
+  };
+
+  freetype = callPackage ../development/libraries/freetype { };
+
+  freexl = callPackage ../development/libraries/freexl { };
+
+  frei0r = callPackage ../development/libraries/frei0r { };
+
+  fribidi = callPackage ../development/libraries/fribidi { };
+
+  frozen = callPackage ../development/libraries/frozen { };
+
+  funambol = callPackage ../development/libraries/funambol { };
+
+  function-runner = callPackage ../development/web/function-runner { };
+
+  functionalplus = callPackage ../development/libraries/functionalplus { };
+
+  galer = callPackage ../tools/security/galer { };
+
+  gallia = callPackage ../tools/security/gallia { };
+
+  gamenetworkingsockets = callPackage ../development/libraries/gamenetworkingsockets {
+    protobuf = protobuf_21;
+  };
+
+  game-music-emu = callPackage ../development/libraries/audio/game-music-emu { };
+
+  gamin = callPackage ../development/libraries/gamin { };
+  fam = gamin; # added 2018-04-25
+
+  ganv = callPackage ../development/libraries/ganv { };
+
+  garble = callPackage ../development/tools/garble { };
+
+  gcab = callPackage ../development/libraries/gcab { };
+
+  gcovr = with python3Packages; toPythonApplication gcovr;
+
+  gcr = callPackage ../development/libraries/gcr { };
+
+  gcr_4 = callPackage ../development/libraries/gcr/4.nix { };
+
+  gdl = callPackage ../development/libraries/gdl { };
+
+  gdome2 = callPackage ../development/libraries/gdome2 { };
+
+  gdbm = callPackage ../development/libraries/gdbm { };
+
+  gecode_3 = callPackage ../development/libraries/gecode/3.nix { };
+  gecode_6 = qt5.callPackage ../development/libraries/gecode { };
+  gecode = gecode_6;
+
+  geph = recurseIntoAttrs (callPackages ../applications/networking/geph { });
+
+  gephi = callPackage ../applications/science/misc/gephi { };
+
+  gegl = callPackage ../development/libraries/gegl {
+    inherit (darwin.apple_sdk.frameworks) OpenCL;
+  };
+
+  gensio = darwin.apple_sdk_11_0.callPackage ../development/libraries/gensio { };
+
+  geoclue2 = callPackage ../development/libraries/geoclue { };
+
+  geoclue2-with-demo-agent = geoclue2.override { withDemoAgent = true; };
+
+  geocode-glib = callPackage ../development/libraries/geocode-glib { };
+
+  geocode-glib_2 = geocode-glib.override {
+    libsoup = libsoup_3;
+  };
+
+  geoipWithDatabase = makeOverridable (callPackage ../development/libraries/geoip) {
+    drvName = "geoip-tools";
+    geoipDatabase = geolite-legacy;
+  };
+
+  geogram = callPackage ../development/libraries/geogram { };
+
+  geographiclib = callPackage ../development/libraries/geographiclib { };
+
+  geoip = callPackage ../development/libraries/geoip { };
+
+  geoipjava = callPackage ../development/libraries/java/geoipjava { };
+
+  geomyidae = callPackage ../applications/networking/gopher/geomyidae { };
+
+  geos = callPackage ../development/libraries/geos {
+    stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_14.stdenv else stdenv;
+  };
+
+  geos_3_9 = callPackage ../development/libraries/geos/3.9.nix { };
+
+  geos_3_11 = callPackage ../development/libraries/geos/3.11.nix { };
+
+  getdata = callPackage ../development/libraries/getdata { };
+
+  inherit (callPackages ../development/libraries/getdns { })
+    getdns stubby;
+
+  gettext = callPackage ../development/libraries/gettext { };
+
+  gf2x = callPackage ../development/libraries/gf2x { };
+
+  gd = callPackage ../development/libraries/gd {
+    automake = automake115x;
+  };
+
+  gdal = callPackage ../development/libraries/gdal { };
+
+  gdalMinimal = callPackage ../development/libraries/gdal {
+    useMinimalFeatures = true;
+  };
+
+  gdcm = callPackage ../development/libraries/gdcm {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Cocoa;
+  };
+
+  ggz_base_libs = callPackage ../development/libraries/ggz_base_libs { };
+
+  gifticlib = callPackage ../development/libraries/science/biology/gifticlib { };
+
+  gio-sharp = callPackage ../development/libraries/gio-sharp { };
+
+  givaro = callPackage ../development/libraries/givaro { };
+  givaro_3 = callPackage ../development/libraries/givaro/3.nix { };
+  givaro_3_7 = callPackage ../development/libraries/givaro/3.7.nix { };
+
+  ghc_filesystem = callPackage ../development/libraries/ghc_filesystem { };
+
+  ghp-import = with python3Packages; toPythonApplication ghp-import;
+
+  ghcid = haskellPackages.ghcid.bin;
+
+  gr-framework = libsForQt5.callPackage ../development/libraries/gr-framework {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
+
+  graphia = libsForQt5.callPackage ../applications/science/misc/graphia { };
+
+  graphinder = callPackage ../tools/security/graphinder { };
+
+  hnswlib = callPackage ../development/libraries/hnswlib { };
+
+  httplib = callPackage ../development/libraries/httplib { };
+
+  icon-lang = callPackage ../development/interpreters/icon-lang { };
+
+  libgit2 = callPackage ../development/libraries/libgit2 {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  libgit2_1_3_0 = libgit2.overrideAttrs rec {
+    version = "1.3.0";
+    src = pkgs.fetchFromGitHub {
+      owner = "libgit2";
+      repo = "libgit2";
+      rev = "v${version}";
+      hash = "sha256-7atNkOBzX+nU1gtFQEaE+EF1L+eex+Ajhq2ocoJY920=";
+    };
+    patches = [];
+  };
+
+  libgit2_1_5 = libgit2.overrideAttrs rec {
+    version = "1.5.1";
+    src = pkgs.fetchFromGitHub {
+      owner = "libgit2";
+      repo = "libgit2";
+      rev = "v${version}";
+      hash = "sha256-KzBMwpqn6wUFhgB3KDclBS0BvZSVcasM5AG/y+L91xM=";
+    };
+    patches = [];
+  };
+
+  libgit2_1_6 = libgit2.overrideAttrs rec {
+    version = "1.6.4";
+    src = fetchFromGitHub {
+      owner = "libgit2";
+      repo = "libgit2";
+      rev = "v${version}";
+      hash = "sha256-lW3mokVKsbknVj2xsxEbeZH4IdKZ0aIgGutzenS0Eh0=";
+    };
+    patches = [ ];
+  };
+
+  libgit2-glib = callPackage ../development/libraries/libgit2-glib { };
+
+  libhsts = callPackage ../development/libraries/libhsts { };
+
+  glbinding = callPackage ../development/libraries/glbinding { };
+
+  gle = callPackage ../development/libraries/gle { };
+
+  glew = callPackage ../development/libraries/glew {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+  };
+  glew110 = callPackage ../development/libraries/glew/1.10.nix {
+    inherit (darwin.apple_sdk.frameworks) AGL OpenGL;
+  };
+  glew-egl = callPackage ../development/libraries/glew {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+    enableEGL = true;
+  };
+
+  glfw = glfw3;
+  glfw-wayland = glfw.override {
+    waylandSupport = true;
+  };
+  glfw-wayland-minecraft = callPackage ../development/libraries/glfw/3.x-wayland-minecraft.nix {};
+  glfw2 = callPackage ../development/libraries/glfw/2.x.nix { };
+  glfw3 = callPackage ../development/libraries/glfw/3.x.nix {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa Kernel OpenGL;
+  };
+
+  glibc = callPackage ../development/libraries/glibc {
+    stdenv = gccStdenv; # doesn't compile without gcc
+  };
+
+  mtrace = callPackage ../development/libraries/glibc/mtrace.nix { };
+
+  # Provided by libc on Operating Systems that use the Extensible Linker Format.
+  elf-header =
+    if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf"
+    then null
+    else elf-header-real;
+
+  elf-header-real = callPackage ../development/libraries/elf-header { };
+
+  glibc_memusage = callPackage ../development/libraries/glibc {
+    withGd = true;
+  };
+
+  # Being redundant to avoid cycles on boot. TODO: find a better way
+  glibcCross = callPackage ../development/libraries/glibc {
+    stdenv = gccCrossLibcStdenv; # doesn't compile without gcc
+    libgcc = callPackage ../development/libraries/gcc/libgcc {
+      gcc = gccCrossLibcStdenv.cc;
+      glibc = glibcCross.override { libgcc = null; };
+      stdenvNoLibs = gccCrossLibcStdenv;
+    };
+  };
+
+  muslCross = musl.override {
+    stdenv = crossLibcStdenv;
+  };
+
+  # These are used when buiding compiler-rt / libgcc, prior to building libc.
+  preLibcCrossHeaders = let
+    inherit (stdenv.targetPlatform) libc;
+  in     if stdenv.targetPlatform.isMinGW then targetPackages.windows.mingw_w64_headers or windows.mingw_w64_headers
+    else if libc == "nblibc" then targetPackages.netbsdCross.headers or netbsdCross.headers
+    else if libc == "libSystem" && stdenv.targetPlatform.isAarch64 then targetPackages.darwin.LibsystemCross or darwin.LibsystemCross
+    else null;
+
+  # We can choose:
+  libcCrossChooser = name:
+    # libc is hackily often used from the previous stage. This `or`
+    # hack fixes the hack, *sigh*.
+    /**/ if name == null then null
+    else if name == "glibc" then targetPackages.glibcCross or glibcCross
+    else if name == "bionic" then targetPackages.bionic or bionic
+    else if name == "uclibc" then targetPackages.uclibcCross or uclibcCross
+    else if name == "avrlibc" then targetPackages.avrlibcCross or avrlibcCross
+    else if name == "newlib" && stdenv.targetPlatform.isMsp430 then targetPackages.msp430NewlibCross or msp430NewlibCross
+    else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib
+    else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib
+    else if name == "newlib" then targetPackages.newlibCross or newlibCross
+    else if name == "newlib-nano" then targetPackages.newlib-nanoCross or newlib-nanoCross
+    else if name == "musl" then targetPackages.muslCross or muslCross
+    else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
+    else if name == "ucrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
+    else if name == "libSystem" then
+      if stdenv.targetPlatform.useiOSPrebuilt
+      then targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries
+      else targetPackages.darwin.LibsystemCross or (throw "don't yet have a `targetPackages.darwin.LibsystemCross for ${stdenv.targetPlatform.config}`")
+    else if name == "fblibc" then targetPackages.freebsdCross.libc or freebsdCross.libc
+    else if name == "nblibc" then targetPackages.netbsdCross.libc or netbsdCross.libc
+    else if name == "wasilibc" then targetPackages.wasilibc or wasilibc
+    else if name == "relibc" then targetPackages.relibc or relibc
+    else throw "Unknown libc ${name}";
+
+  libcCross = assert stdenv.targetPlatform != stdenv.buildPlatform; libcCrossChooser stdenv.targetPlatform.libc;
+
+  threadsCross = threadsCrossFor null;
+  threadsCrossFor = cc_version:
+    lib.optionalAttrs (stdenv.targetPlatform.isMinGW && !(stdenv.targetPlatform.useLLVM or false)) {
+      # other possible values: win32 or posix
+      model = "mcf";
+      # For win32 or posix set this to null
+      package =
+        if cc_version == null || lib.versionAtLeast cc_version "13"
+        then targetPackages.windows.mcfgthreads or windows.mcfgthreads
+        else targetPackages.windows.mcfgthreads_pre_gcc_13 or windows.mcfgthreads_pre_gcc_13;
+    };
+
+  wasilibc = callPackage ../development/libraries/wasilibc {
+    stdenv = crossLibcStdenv;
+  };
+
+  relibc = callPackage ../development/libraries/relibc { };
+
+  # Only supported on Linux and only on glibc
+  glibcLocales =
+    if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu
+    then callPackage ../development/libraries/glibc/locales.nix { }
+    else null;
+  glibcLocalesUtf8 =
+    if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu
+    then callPackage ../development/libraries/glibc/locales.nix { allLocales = false; }
+    else null;
+
+  glibcInfo = callPackage ../development/libraries/glibc/info.nix { };
+
+  glibc_multi = callPackage ../development/libraries/glibc/multi.nix {
+    # The buildPackages is required for cross-compilation. The pkgsi686Linux set
+    # has target and host always set to the same value based on target platform
+    # of the current set. We need host to be same as build to correctly get i686
+    # variant of glibc.
+    glibc32 = pkgsi686Linux.buildPackages.glibc;
+  };
+
+  glm = callPackage ../development/libraries/glm { };
+
+  glog = callPackage ../development/libraries/glog { };
+
+  gloox = callPackage ../development/libraries/gloox { };
+
+  glpk = callPackage ../development/libraries/glpk { };
+
+  glsurf = callPackage ../applications/science/math/glsurf {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14_unsafe_string;
+  };
+
+  glui = callPackage ../development/libraries/glui { };
+
+  gmime2 = callPackage ../development/libraries/gmime/2.nix { };
+  gmime3 = callPackage ../development/libraries/gmime/3.nix { };
+  gmime = gmime2;
+
+  gmm = callPackage ../development/libraries/gmm { };
+
+  gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { }; # required by older GHC versions
+  gmp5 = callPackage ../development/libraries/gmp/5.1.x.nix { };
+  gmp6 = callPackage ../development/libraries/gmp/6.x.nix { };
+  gmp = gmp6;
+  gmpxx = gmp.override { cxx = true; };
+
+  #GMP ex-satellite, so better keep it near gmp
+  mpfr = callPackage ../development/libraries/mpfr { };
+
+  mpfi = callPackage ../development/libraries/mpfi { };
+
+  mpdecimal = callPackage ../development/libraries/mpdecimal { };
+
+  mpfshell = callPackage ../development/tools/mpfshell { };
+
+  # A GMP fork
+  mpir = callPackage ../development/libraries/mpir { };
+
+  gl3w = callPackage ../development/libraries/gl3w { };
+
+  gnatcoll-core = callPackage ../development/libraries/ada/gnatcoll/core.nix { };
+
+  # gnatcoll-bindings repository
+  gnatcoll-gmp = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "gmp"; };
+  gnatcoll-iconv = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "iconv"; };
+  gnatcoll-lzma = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "lzma"; };
+  gnatcoll-omp = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "omp"; };
+  gnatcoll-python3 = callPackage ../development/libraries/ada/gnatcoll/bindings.nix {
+    component = "python3";
+    python3 = python39;
+  };
+  gnatcoll-readline = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "readline"; };
+  gnatcoll-syslog = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "syslog"; };
+  gnatcoll-zlib = callPackage ../development/libraries/ada/gnatcoll/bindings.nix { component = "zlib"; };
+
+  # gnatcoll-db repository
+  gnatcoll-postgres = callPackage ../development/libraries/ada/gnatcoll/db.nix { component = "postgres"; };
+  gnatcoll-sql = callPackage ../development/libraries/ada/gnatcoll/db.nix { component = "sql"; };
+  gnatcoll-sqlite = callPackage ../development/libraries/ada/gnatcoll/db.nix { component = "sqlite"; };
+  gnatcoll-xref = callPackage ../development/libraries/ada/gnatcoll/db.nix { component = "xref"; };
+
+  gns3Packages = dontRecurseIntoAttrs (callPackage ../applications/networking/gns3 { });
+  gns3-gui = gns3Packages.guiStable;
+  gns3-server = gns3Packages.serverStable;
+
+  gobject-introspection = callPackage ../development/libraries/gobject-introspection/wrapper.nix { };
+
+  gobject-introspection-unwrapped = callPackage ../development/libraries/gobject-introspection {
+    nixStoreDir = config.nix.storeDir or builtins.storeDir;
+    inherit (darwin) cctools;
+  };
+
+  goocanvas = callPackage ../development/libraries/goocanvas { };
+  goocanvas2 = callPackage ../development/libraries/goocanvas/2.x.nix { };
+  goocanvas3 = callPackage ../development/libraries/goocanvas/3.x.nix { };
+  goocanvasmm2 = callPackage ../development/libraries/goocanvasmm { };
+
+  gflags = callPackage ../development/libraries/gflags { };
+
+  gperftools = callPackage ../development/libraries/gperftools { };
+
+  grilo = callPackage ../development/libraries/grilo { };
+
+  grilo-plugins = callPackage ../development/libraries/grilo-plugins { };
+
+  grpc = darwin.apple_sdk_11_0.callPackage ../development/libraries/grpc {
+    stdenv = if stdenv.isDarwin && stdenv.isx86_64
+      then overrideSDK darwin.apple_sdk_11_0.stdenv { darwinMinVersion = "10.13"; }
+      else stdenv;
+  };
+
+  gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };
+
+  gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
+    callPackage = newScope (gst_all_1 // { libav = pkgs.ffmpeg-headless; });
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL Security VideoToolbox;
+  });
+
+  gusb = callPackage ../development/libraries/gusb { };
+
+  qxmpp = libsForQt5.callPackage ../development/libraries/qxmpp { };
+
+  gnet = callPackage ../development/libraries/gnet { };
+
+  gnu-config = callPackage ../development/libraries/gnu-config { };
+
+  gnu-efi = if stdenv.hostPlatform.isEfi
+              then callPackage ../development/libraries/gnu-efi { }
+            else null;
+
+  gnutls = callPackage ../development/libraries/gnutls {
+    inherit (darwin.apple_sdk.frameworks) Security;
+    util-linux = util-linuxMinimal; # break the cyclic dependency
+    autoconf = buildPackages.autoconf269;
+  };
+
+  gpac = callPackage ../applications/video/gpac { };
+
+  gpgme = callPackage ../development/libraries/gpgme { };
+
+  pgpdump = callPackage ../tools/security/pgpdump { };
+
+  pgpkeyserver-lite = callPackage ../servers/web-apps/pgpkeyserver-lite { };
+
+  pgweb = callPackage ../development/tools/database/pgweb { };
+
+  granted = callPackage ../tools/admin/granted { };
+
+  grantlee = libsForQt5.callPackage ../development/libraries/grantlee { };
+
+  gsasl = callPackage ../development/libraries/gsasl { };
+
+  gsl = callPackage ../development/libraries/gsl { };
+
+  gsl-lite = callPackage ../development/libraries/gsl-lite { };
+
+  gsm = callPackage ../development/libraries/gsm { };
+
+  gsoap = callPackage ../development/libraries/gsoap { };
+
+  gsound = callPackage ../development/libraries/gsound { };
+
+  gss = callPackage ../development/libraries/gss { };
+
+  gtkimageview = callPackage ../development/libraries/gtkimageview { };
+
+  glib = callPackage ../development/libraries/glib (let
+    glib-untested = glib.overrideAttrs { doCheck = false; };
+  in {
+    # break dependency cycles
+    # these things are only used for tests, they don't get into the closure
+    shared-mime-info = shared-mime-info.override { glib = glib-untested; };
+    desktop-file-utils = desktop-file-utils.override { glib = glib-untested; };
+    dbus = dbus.override { enableSystemd = false; };
+  });
+
+  glibmm = callPackage ../development/libraries/glibmm { };
+
+  glibmm_2_68 = callPackage ../development/libraries/glibmm/2.68.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  glib-networking = callPackage ../development/libraries/glib-networking { };
+
+  glib-testing = callPackage ../development/libraries/glib-testing { };
+
+  glirc = haskell.lib.compose.justStaticExecutables haskellPackages.glirc;
+
+  gom = callPackage ../development/libraries/gom { };
+
+  ace = callPackage ../development/libraries/ace { };
+
+  # Not moved to aliases while we decide if we should split the package again.
+  atk = at-spi2-core;
+
+  atkmm = callPackage ../development/libraries/atkmm { };
+
+  atkmm_2_36 = callPackage ../development/libraries/atkmm/2.36.nix { };
+
+  pixman = callPackage ../development/libraries/pixman { };
+
+  cairo = callPackage ../development/libraries/cairo { };
+
+  cairo-lang = callPackage ../development/compilers/cairo { };
+
+  cairomm = callPackage ../development/libraries/cairomm { };
+
+  cairomm_1_16 = callPackage ../development/libraries/cairomm/1.16.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  pango = callPackage ../development/libraries/pango {
+    harfbuzz = harfbuzz.override { withCoreText = stdenv.isDarwin; };
+  };
+
+  pangolin = callPackage ../development/libraries/pangolin {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
+  pangomm = callPackage ../development/libraries/pangomm {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  pangomm_2_48 = callPackage ../development/libraries/pangomm/2.48.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  pangomm_2_42 = callPackage ../development/libraries/pangomm/2.42.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  gdk-pixbuf = callPackage ../development/libraries/gdk-pixbuf { };
+
+  gdk-pixbuf-xlib = callPackage ../development/libraries/gdk-pixbuf/xlib.nix { };
+
+  gnome-menus = callPackage ../development/libraries/gnome-menus { };
+
+  gnote = callPackage ../applications/office/gnote { };
+
+  gtk2 = callPackage ../development/libraries/gtk/2.x.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
+  };
+
+  gtk2-x11 = gtk2.override {
+    cairo = cairo.override { x11Support = true; };
+    pango = pango.override { cairo = cairo.override { x11Support = true; }; x11Support = true; };
+    gdktarget = "x11";
+  };
+
+  gtkextra = callPackage ../development/libraries/gtkextra { };
+
+  gtk3 = callPackage ../development/libraries/gtk/3.x.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa QuartzCore;
+  };
+
+  gtk4 = callPackage ../development/libraries/gtk/4.x.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
+  };
+
+
+  # On darwin gtk uses cocoa by default instead of x11.
+  gtk3-x11 = gtk3.override {
+    cairo = cairo.override { x11Support = true; };
+    pango = pango.override { cairo = cairo.override { x11Support = true; }; x11Support = true; };
+    x11Support = true;
+  };
+
+  gtkmm2 = callPackage ../development/libraries/gtkmm/2.x.nix { };
+  gtkmm3 = callPackage ../development/libraries/gtkmm/3.x.nix { };
+  gtkmm4 = callPackage ../development/libraries/gtkmm/4.x.nix { };
+
+  gtk_engines = callPackage ../development/libraries/gtk-engines { };
+
+  gtk-engine-bluecurve = callPackage ../development/libraries/gtk-engine-bluecurve { };
+
+  gtk-engine-murrine = callPackage ../development/libraries/gtk-engine-murrine { };
+
+  gtk-sharp-2_0 = callPackage ../development/libraries/gtk-sharp/2.0.nix { };
+
+  gtk-sharp-3_0 = callPackage ../development/libraries/gtk-sharp/3.0.nix { };
+
+  gtk-sharp-beans = callPackage ../development/libraries/gtk-sharp-beans { };
+
+  gtk-mac-integration = callPackage ../development/libraries/gtk-mac-integration {
+    gtk = gtk3;
+  };
+
+  gtk-mac-integration-gtk2 = gtk-mac-integration.override {
+    gtk = gtk2;
+  };
+
+  gtk-mac-integration-gtk3 = gtk-mac-integration;
+
+  gtk-mac-bundler = callPackage ../development/tools/gtk-mac-bundler { };
+
+  gtksourceview = gtksourceview3;
+
+  gtksourceview3 = callPackage ../development/libraries/gtksourceview/3.x.nix { };
+
+  gtksourceview4 = callPackage ../development/libraries/gtksourceview/4.x.nix { };
+
+  gtksourceview5 = callPackage ../development/libraries/gtksourceview/5.x.nix { };
+
+  gtksourceviewmm = callPackage ../development/libraries/gtksourceviewmm { };
+
+  gtksourceviewmm4 = callPackage ../development/libraries/gtksourceviewmm/4.x.nix { };
+
+  gtkspell2 = callPackage ../development/libraries/gtkspell { };
+
+  gtkspell3 = callPackage ../development/libraries/gtkspell/3.nix { };
+
+  gtkspellmm = callPackage ../development/libraries/gtkspellmm { };
+
+  gtk-layer-shell = callPackage ../development/libraries/gtk-layer-shell { };
+
+  gtk4-layer-shell = callPackage ../development/libraries/gtk4-layer-shell { };
+
+  gts = callPackage ../development/libraries/gts { };
+
+  gumbo = callPackage ../development/libraries/gumbo { };
+
+  gvfs = callPackage ../development/libraries/gvfs { };
+
+  gvm-libs = callPackage ../development/libraries/gvm-libs { };
+
+  gwenhywfar = callPackage ../development/libraries/aqbanking/gwenhywfar.nix { };
+
+  hamlib = hamlib_3;
+  hamlib_3 = callPackage ../development/libraries/hamlib { };
+  hamlib_4 = callPackage ../development/libraries/hamlib/4.nix { };
+
+  heimdal = callPackage ../development/libraries/kerberos/heimdal.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  harfbuzz = callPackage ../development/libraries/harfbuzz {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreText;
+  };
+
+  harfbuzzFull = harfbuzz.override {
+    withCoreText = stdenv.isDarwin;
+    withGraphite2 = true;
+    withIcu = true;
+  };
+
+  hawknl = callPackage ../development/libraries/hawknl { };
+
+  hax11 = callPackage ../development/libraries/hax11 { };
+
+  haxor-news = callPackage ../applications/misc/haxor-news { };
+
+  hdt = callPackage ../misc/hdt { };
+
+  hfinger = callPackage ../tools/security/hfinger { };
+
+  herqq = libsForQt5.callPackage ../development/libraries/herqq { };
+
+  hidapi = callPackage ../development/libraries/hidapi {
+    inherit (darwin.apple_sdk.frameworks) Cocoa IOKit;
+  };
+
+  highfive = callPackage ../development/libraries/highfive { };
+
+  highfive-mpi = highfive.override { hdf5 = hdf5-mpi; };
+
+  hiredis = callPackage ../development/libraries/hiredis { };
+
+  hiredis-vip = callPackage ../development/libraries/hiredis-vip { };
+
+  hivex = callPackage ../development/libraries/hivex {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  hmat-oss = callPackage ../development/libraries/hmat-oss { };
+
+  hound = callPackage ../development/tools/misc/hound { };
+
+  hpp-fcl = callPackage ../development/libraries/hpp-fcl { };
+
+  hpx = callPackage ../development/libraries/hpx {
+    boost = boost179;
+    asio = asio.override { boost = boost179; };
+  };
+
+  hspell = callPackage ../development/libraries/hspell { };
+
+  hspellDicts = callPackage ../development/libraries/hspell/dicts.nix { };
+
+  hsqldb = callPackage ../development/libraries/java/hsqldb { };
+
+  hstr = callPackage ../applications/misc/hstr { };
+
+  hstsparser = callPackage ../tools/security/hstsparser { };
+
+  htmlcxx = callPackage ../development/libraries/htmlcxx { };
+
+  http-parser = callPackage ../development/libraries/http-parser { };
+
+  httpref = callPackage ../development/tools/misc/httpref { };
+
+  hubble = callPackage ../applications/networking/cluster/hubble { };
+
+  hunspell = callPackage ../development/libraries/hunspell { };
+
+  hunspellDicts = recurseIntoAttrs (callPackages ../development/libraries/hunspell/dictionaries.nix {});
+
+  hunspellDictsChromium = recurseIntoAttrs (callPackages ../development/libraries/hunspell/dictionaries-chromium.nix {});
+
+  hunspellWithDicts = dicts: callPackage ../development/libraries/hunspell/wrapper.nix { inherit dicts; };
+
+  hwloc = callPackage ../development/libraries/hwloc { };
+
+  hydra_unstable = callPackage ../development/tools/misc/hydra/unstable.nix { nix = nixVersions.nix_2_19; };
+
+  hydra-cli = callPackage ../development/tools/misc/hydra-cli { };
+
+  hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
+
+  hydra-check = with python310.pkgs; toPythonApplication hydra-check;
+
+  hyena = callPackage ../development/libraries/hyena { };
+
+  hyperscan = callPackage ../development/libraries/hyperscan { };
+
+  icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) ({
+    nativeBuildRoot = buildPackages.icu58.override { buildRootOnly = true; };
+  });
+  icu60 = callPackage ../development/libraries/icu/60.nix ({
+    nativeBuildRoot = buildPackages.icu60.override { buildRootOnly = true; };
+  });
+  icu63 = callPackage ../development/libraries/icu/63.nix ({
+    nativeBuildRoot = buildPackages.icu63.override { buildRootOnly = true; };
+  });
+  icu64 = callPackage ../development/libraries/icu/64.nix ({
+    nativeBuildRoot = buildPackages.icu64.override { buildRootOnly = true; };
+  });
+  icu66 = callPackage ../development/libraries/icu/66.nix ({
+    nativeBuildRoot = buildPackages.icu66.override { buildRootOnly = true; };
+  });
+  icu67 = callPackage ../development/libraries/icu/67.nix ({
+    nativeBuildRoot = buildPackages.icu67.override { buildRootOnly = true; };
+  });
+  icu68 = callPackage ../development/libraries/icu/68.nix ({
+    nativeBuildRoot = buildPackages.icu68.override { buildRootOnly = true; };
+  });
+  icu69 = callPackage ../development/libraries/icu/69.nix ({
+    nativeBuildRoot = buildPackages.icu69.override { buildRootOnly = true; };
+  });
+  icu70 = callPackage ../development/libraries/icu/70.nix ({
+    nativeBuildRoot = buildPackages.icu70.override { buildRootOnly = true; };
+  });
+  icu71 = callPackage ../development/libraries/icu/71.nix ({
+    nativeBuildRoot = buildPackages.icu71.override { buildRootOnly = true; };
+  });
+  icu72 = callPackage ../development/libraries/icu/72.nix ({
+    nativeBuildRoot = buildPackages.icu72.override { buildRootOnly = true; };
+  });
+  icu73 = callPackage ../development/libraries/icu/73.nix ({
+    nativeBuildRoot = buildPackages.icu72.override { buildRootOnly = true; };
+  });
+
+  icu = icu73;
+
+  id3lib = callPackage ../development/libraries/id3lib { };
+
+  idasen = with python3Packages; toPythonApplication idasen;
+
+  ikill = callPackage ../tools/misc/ikill { };
+
+  ilbc = callPackage ../development/libraries/ilbc { };
+
+  ilmbase = callPackage ../development/libraries/ilmbase { };
+
+  imgui = callPackage ../development/libraries/imgui { };
+
+  imtui = callPackage ../development/libraries/imtui { };
+
+  immer = callPackage ../development/libraries/immer { };
+
+  imv = callPackage ../applications/graphics/imv { };
+
+  iml = callPackage ../development/libraries/iml { };
+
+  imlib2 = callPackage ../development/libraries/imlib2 { };
+  imlib2Full = imlib2.override {
+    # Compilation error on Darwin with librsvg. For more information see:
+    # https://github.com/NixOS/nixpkgs/pull/166452#issuecomment-1090725613
+    svgSupport = !stdenv.isDarwin;
+    heifSupport = !stdenv.isDarwin;
+    webpSupport = true;
+    jxlSupport = true;
+    psSupport = true;
+  };
+  imlib2-nox = imlib2.override {
+    x11Support = false;
+  };
+
+  imlibsetroot = callPackage ../applications/graphics/imlibsetroot { libXinerama = xorg.libXinerama; } ;
+
+  impy = callPackage ../development/libraries/impy { };
+
+  ineffassign = callPackage ../development/tools/ineffassign { };
+
+  ijs = callPackage ../development/libraries/ijs { };
+
+  itktcl  = callPackage ../development/libraries/itktcl { };
+  incrtcl = callPackage ../development/libraries/incrtcl { };
+
+  indicator-application-gtk2 = callPackage ../development/libraries/indicator-application/gtk2.nix { };
+  indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { };
+
+  indicator-sound-switcher = callPackage ../applications/audio/indicator-sound-switcher { };
+
+  indilib = darwin.apple_sdk_11_0.callPackage ../development/libraries/science/astronomy/indilib { };
+  indi-full = callPackage ../development/libraries/science/astronomy/indilib/indi-full.nix { };
+
+  inih = callPackage ../development/libraries/inih { };
+
+  iniparser = callPackage ../development/libraries/iniparser { };
+
+  initool = callPackage ../development/tools/initool { };
+
+  intel-gmmlib = callPackage ../development/libraries/intel-gmmlib { };
+
+  intel-media-driver = callPackage ../development/libraries/intel-media-driver { };
+
+  intltool = callPackage ../development/tools/misc/intltool { };
+
+  ios-cross-compile = callPackage ../development/compilers/ios-cross-compile/9.2.nix { };
+
+  ip2location-c = callPackage ../development/libraries/ip2location-c { };
+
+  iir1 = callPackage ../development/libraries/iir1 { };
+
+  irrlicht = if !stdenv.isDarwin then
+    callPackage ../development/libraries/irrlicht { }
+  else callPackage ../development/libraries/irrlicht/mac.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL IOKit;
+  };
+
+  irrlichtmt = callPackage ../development/libraries/irrlichtmt {
+    inherit  (darwin.apple_sdk.frameworks) Cocoa Kernel;
+  };
+
+  isocodes = callPackage ../development/libraries/iso-codes { };
+
+  iso-flags = callPackage ../data/icons/iso-flags { };
+
+  isoimagewriter = libsForQt5.callPackage ../tools/misc/isoimagewriter {};
+
+  isort = with python3Packages; toPythonApplication isort;
+
+  ispc = callPackage ../development/compilers/ispc {
+    xcode = darwin.xcode_14;
+    llvmPackages = llvmPackages_15;
+  };
+
+  isso = callPackage ../servers/isso {
+    nodejs = nodejs_20;
+  };
+
+  itk_5_2 = callPackage ../development/libraries/itk/5.2.x.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  itk_5 = callPackage ../development/libraries/itk/5.x.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  itk = itk_5;
+
+  jama = callPackage ../development/libraries/jama { };
+
+  jansson = callPackage ../development/libraries/jansson { };
+
+  jarowinkler-cpp = callPackage ../development/libraries/jarowinkler-cpp { };
+
+  jbig2dec = callPackage ../development/libraries/jbig2dec { };
+
+  jbig2enc = callPackage ../development/libraries/jbig2enc { };
+
+  jcal = callPackage ../development/libraries/jcal { };
+
+  jbigkit = callPackage ../development/libraries/jbigkit { };
+
+  jefferson = callPackage ../tools/filesystems/jefferson { };
+
+  jemalloc = callPackage ../development/libraries/jemalloc { };
+
+  rust-jemalloc-sys = callPackage ../development/libraries/jemalloc/rust.nix { };
+  rust-jemalloc-sys-unprefixed = rust-jemalloc-sys.override { unprefixed = true; };
+
+  jose = callPackage ../development/libraries/jose { };
+
+  jpcre2 = callPackage ../development/libraries/jpcre2 { };
+
+  jshon = callPackage ../development/tools/parsing/jshon { };
+
+  json2hcl = callPackage ../development/tools/json2hcl { };
+
+  json2tsv = callPackage ../development/tools/json2tsv { };
+
+  json2yaml = haskell.lib.compose.justStaticExecutables haskellPackages.json2yaml;
+
+  json-glib = callPackage ../development/libraries/json-glib { };
+
+  json_c = callPackage ../development/libraries/json-c { };
+
+  jsoncpp = callPackage ../development/libraries/jsoncpp { };
+
+  json-fortran = callPackage ../development/libraries/json-fortran { };
+
+  jsonnet = callPackage ../development/compilers/jsonnet { };
+
+  jsonnet-bundler = callPackage ../development/tools/jsonnet-bundler { };
+
+  jrsonnet = callPackage ../development/compilers/jrsonnet { };
+
+  go-jsonnet = callPackage ../development/compilers/go-jsonnet { };
+
+  jsonrpc-glib = callPackage ../development/libraries/jsonrpc-glib { };
+
+  jxrlib = callPackage ../development/libraries/jxrlib { };
+
+  libjson = callPackage ../development/libraries/libjson { };
+
+  libb64 = callPackage ../development/libraries/libb64 { };
+
+  judy = callPackage ../development/libraries/judy { };
+
+  kcp = callPackage ../development/libraries/kcp { };
+
+  kddockwidgets = libsForQt5.callPackage ../development/libraries/kddockwidgets { };
+
+  keybinder = callPackage ../development/libraries/keybinder {
+    automake = automake111x;
+    lua = lua5_1;
+  };
+
+  keybinder3 = callPackage ../development/libraries/keybinder3 {
+    gtk3 = if stdenv.isDarwin then gtk3-x11 else gtk3;
+    automake = automake111x;
+  };
+
+  krb5 = callPackage ../development/libraries/kerberos/krb5.nix {
+    inherit (buildPackages.darwin) bootstrap_cmds;
+  };
+  libkrb5 = krb5.override { type = "lib"; };
+
+  kronosnet = callPackage ../development/libraries/kronosnet { };
+
+  ktextaddons = libsForQt5.callPackage ../development/libraries/ktextaddons {};
+
+  l-smash = callPackage ../development/libraries/l-smash {
+    stdenv = gccStdenv;
+  };
+
+  languageMachines = recurseIntoAttrs (import ../development/libraries/languagemachines/packages.nix {
+    inherit pkgs;
+  });
+
+  lasem = callPackage ../development/libraries/lasem { };
+
+  lasso = callPackage ../development/libraries/lasso { };
+
+  LAStools = callPackage ../development/libraries/LAStools { };
+
+  LASzip = callPackage ../development/libraries/LASzip { };
+  LASzip2 = callPackage ../development/libraries/LASzip/LASzip2.nix { };
+
+  laurel = callPackage ../servers/monitoring/laurel/default.nix { };
+
+  lcm = callPackage ../development/libraries/lcm { };
+
+  lcms = lcms2;
+
+  lcms1 = callPackage ../development/libraries/lcms { };
+
+  lcms2 = callPackage ../development/libraries/lcms2 { };
+
+  lcrq = callPackage ../development/libraries/lcrq { };
+
+  ldacbt = callPackage ../development/libraries/ldacbt { };
+
+  ldb = callPackage ../development/libraries/ldb { };
+
+  lensfun = callPackage ../development/libraries/lensfun { };
+
+  lesbar = callPackage ../applications/window-managers/lesbar { };
+
+  lesstif = callPackage ../development/libraries/lesstif { };
+
+  leveldb = callPackage ../development/libraries/leveldb { };
+
+  lmdb = callPackage ../development/libraries/lmdb { };
+
+  lmdbxx = callPackage ../development/libraries/lmdbxx { };
+
+  lemon-graph = callPackage ../development/libraries/lemon-graph { };
+
+  levmar = callPackage ../development/libraries/levmar { };
+
+  leptonica = callPackage ../development/libraries/leptonica { };
+
+  lerc = callPackage ../development/libraries/lerc { };
+
+  lib2geom = callPackage ../development/libraries/lib2geom {
+    stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_13.stdenv else stdenv;
+  };
+
+  lib3ds = callPackage ../development/libraries/lib3ds { };
+
+  lib3mf = callPackage ../development/libraries/lib3mf { };
+
+  libAfterImage = callPackage ../development/libraries/libAfterImage { };
+
+  libaacs = callPackage ../development/libraries/libaacs { };
+
+  libaal = callPackage ../development/libraries/libaal { };
+
+  libabigail = callPackage ../development/libraries/libabigail { };
+
+  libaccounts-glib = callPackage ../development/libraries/libaccounts-glib { };
+
+  libacr38u = callPackage ../tools/security/libacr38u {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  libad9361 = callPackage ../development/libraries/libad9361 { };
+
+  libadwaita = callPackage ../development/libraries/libadwaita {
+    inherit (pkgs.darwin.apple_sdk.frameworks) AppKit Foundation;
+  };
+
+  libaec = callPackage ../development/libraries/libaec { };
+
+  libagar = callPackage ../development/libraries/libagar { };
+  libagar_test = callPackage ../development/libraries/libagar/libagar_test.nix { };
+
+  libao = callPackage ../development/libraries/libao {
+    usePulseAudio = config.pulseaudio or stdenv.isLinux;
+    inherit (darwin.apple_sdk.frameworks) CoreAudio CoreServices AudioUnit;
+  };
+
+  libaosd = callPackage ../development/libraries/libaosd { };
+
+  libabw = callPackage ../development/libraries/libabw { };
+
+  libamqpcpp = callPackage ../development/libraries/libamqpcpp { };
+
+  libantlr3c = callPackage ../development/libraries/libantlr3c { };
+
+  libaom = callPackage ../development/libraries/libaom {
+    # Remove circular dependency for libavif
+    libjxl = libjxl.override { buildDocs = false; };
+  };
+
+  libappindicator-gtk2 = libappindicator.override { gtkVersion = "2"; };
+  libappindicator-gtk3 = libappindicator.override { gtkVersion = "3"; };
+  libappindicator = callPackage ../development/libraries/libappindicator { };
+
+  libayatana-appindicator = callPackage ../development/libraries/libayatana-appindicator { };
+
+  libargs = callPackage ../development/libraries/libargs { };
+
+  libarchive = callPackage ../development/libraries/libarchive { };
+
+  libarchive-qt = libsForQt5.callPackage ../development/libraries/libarchive-qt { };
+
+  libaribcaption = callPackage ../by-name/li/libaribcaption/package.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreFoundation CoreGraphics CoreText;
+  };
+
+  libasn1c = callPackage ../servers/osmocom/libasn1c/default.nix { };
+
+  libasr = callPackage ../development/libraries/libasr { };
+
+  libass = callPackage ../development/libraries/libass { };
+
+  libast = callPackage ../development/libraries/libast { };
+
+  libassuan = callPackage ../development/libraries/libassuan { };
+
+  libasyncns = callPackage ../development/libraries/libasyncns { };
+
+  libatomic_ops = callPackage ../development/libraries/libatomic_ops { };
+
+  libaudclient = callPackage ../development/libraries/libaudclient { };
+
+  libaudec = callPackage ../development/libraries/libaudec { };
+
+  libav = libav_11; # branch 11 is API-compatible with branch 10
+  libav_all = callPackages ../development/libraries/libav { };
+  inherit (libav_all) libav_0_8 libav_11 libav_12;
+
+  libavc1394 = callPackage ../development/libraries/libavc1394 { };
+
+  libavif = callPackage ../development/libraries/libavif { };
+
+  libayatana-common = callPackage ../development/libraries/libayatana-common {
+    inherit (lomiri) cmake-extras;
+  };
+
+  libb2 = callPackage ../development/libraries/libb2 { };
+
+  libbacktrace = callPackage ../development/libraries/libbacktrace { };
+
+  libbap = callPackage ../development/libraries/libbap {
+    inherit (ocaml-ng.ocamlPackages) bap ocaml findlib ctypes;
+  };
+
+  libbaseencode = callPackage ../development/libraries/libbaseencode { };
+
+  libbass = (callPackage ../development/libraries/audio/libbass { }).bass;
+  libbass_fx = (callPackage ../development/libraries/audio/libbass { }).bass_fx;
+
+  libbde = callPackage ../development/libraries/libbde { };
+
+  libbdplus = callPackage ../development/libraries/libbdplus { };
+
+  libblockdev = callPackage ../development/libraries/libblockdev { };
+
+  libblocksruntime = callPackage ../development/libraries/libblocksruntime { };
+
+  libbluray = callPackage ../development/libraries/libbluray {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration;
+  };
+
+  libbs2b = callPackage ../development/libraries/audio/libbs2b { };
+
+  libbson = callPackage ../development/libraries/libbson { };
+
+  libbytesize = callPackage ../development/libraries/libbytesize { };
+
+  libcaca = callPackage ../development/libraries/libcaca { };
+
+  libcacard = callPackage ../development/libraries/libcacard { };
+
+  libcamera = callPackage ../development/libraries/libcamera { };
+
+  libcanberra = callPackage ../development/libraries/libcanberra {
+    inherit (darwin.apple_sdk.frameworks) Carbon CoreServices AppKit;
+  };
+  libcanberra-gtk2 = pkgs.libcanberra.override {
+    gtkSupport = "gtk2";
+  };
+  libcanberra-gtk3 = pkgs.libcanberra.override {
+    gtkSupport = "gtk3";
+  };
+
+  libcanberra_kde = if (config.kde_runtime.libcanberraWithoutGTK or true)
+    then pkgs.libcanberra
+    else pkgs.libcanberra-gtk2;
+
+  libcaption = callPackage ../development/libraries/libcaption { };
+
+  libcbor = callPackage ../development/libraries/libcbor { };
+
+  libccd = callPackage ../development/libraries/libccd { };
+
+  libcec = callPackage ../development/libraries/libcec { };
+
+  libcec_platform = callPackage ../development/libraries/libcec/platform.nix { };
+
+  libcef = callPackage ../development/libraries/libcef { };
+
+  libcello = callPackage ../development/libraries/libcello { };
+
+  libcerf = callPackage ../development/libraries/libcerf { };
+
+  libcdada = callPackage ../development/libraries/libcdada { };
+
+  libcdaudio = callPackage ../development/libraries/libcdaudio { };
+
+  libcddb = callPackage ../development/libraries/libcddb { };
+
+  libcdio = callPackage ../development/libraries/libcdio {
+    inherit (darwin.apple_sdk.frameworks) Carbon IOKit;
+  };
+
+  libcdio-paranoia = callPackage ../development/libraries/libcdio-paranoia {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration IOKit;
+  };
+
+  libcdr = callPackage ../development/libraries/libcdr { lcms = lcms2; };
+
+  libchamplain = callPackage ../development/libraries/libchamplain { };
+
+  libchamplain_libsoup3 = libchamplain.override { withLibsoup3 = true; };
+
+  libchardet = callPackage ../development/libraries/libchardet { };
+
+  libchewing = callPackage ../development/libraries/libchewing { };
+
+  libchipcard = callPackage ../development/libraries/aqbanking/libchipcard.nix { };
+
+  libcrafter = callPackage ../development/libraries/libcrafter { };
+
+  libcrossguid = callPackage ../development/libraries/libcrossguid { };
+
+  libcs50 = callPackage ../development/libraries/libcs50 { };
+
+  libuchardet = callPackage ../development/libraries/libuchardet { };
+
+  libchop = callPackage ../development/libraries/libchop { };
+
+  libcifpp = callPackage ../development/libraries/libcifpp { };
+
+  libcint = callPackage ../development/libraries/libcint { };
+
+  libcli = callPackage ../development/libraries/libcli { };
+
+  libclthreads = callPackage ../development/libraries/libclthreads  { };
+
+  libclxclient = callPackage ../development/libraries/libclxclient  { };
+
+  libconfuse = callPackage ../development/libraries/libconfuse { };
+
+  libcangjie = callPackage ../development/libraries/libcangjie { };
+
+  libcollectdclient = callPackage ../development/libraries/libcollectdclient { };
+
+  libcomps = callPackage ../tools/package-management/libcomps { python = python3; };
+
+  libcpr = callPackage ../development/libraries/libcpr { };
+
+  libcredis = callPackage ../development/libraries/libcredis { };
+
+  libctb = callPackage ../development/libraries/libctb { };
+
+  libctemplate = callPackage ../development/libraries/libctemplate { };
+
+  libctl = callPackage ../development/libraries/libctl { };
+
+  libcotp = callPackage ../development/libraries/libcotp { };
+
+  libcouchbase = callPackage ../development/libraries/libcouchbase { };
+
+  libcue = callPackage ../development/libraries/libcue { };
+
+  libcutl = callPackage ../development/libraries/libcutl { };
+
+  libcxxrt = callPackage ../development/libraries/libcxxrt {
+    stdenv = if stdenv.hostPlatform.useLLVM or false
+             then overrideCC stdenv buildPackages.llvmPackages.tools.clangNoLibcxx
+             else stdenv;
+  };
+
+  libdaemon = callPackage ../development/libraries/libdaemon { };
+
+  libdatovka = callPackage ../development/libraries/libdatovka { };
+
+  libdatrie = callPackage ../development/libraries/libdatrie { };
+
+  libdazzle = callPackage ../development/libraries/libdazzle { };
+
+  libdbi = callPackage ../development/libraries/libdbi { };
+
+  libdbiDriversBase = libdbiDrivers.override {
+    libmysqlclient = null;
+    sqlite = null;
+  };
+
+  libdbiDrivers = callPackage ../development/libraries/libdbi-drivers { };
+
+  libunity = callPackage ../development/libraries/libunity { };
+
+  libdbusmenu = callPackage ../development/libraries/libdbusmenu { };
+  libdbusmenu-gtk2 = libdbusmenu.override { gtkVersion = "2"; };
+  libdbusmenu-gtk3 = libdbusmenu.override { gtkVersion = "3"; };
+
+  libdc1394 = callPackage ../development/libraries/libdc1394 {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  libde265 = callPackage ../development/libraries/libde265 { };
+
+  libdeflate = darwin.apple_sdk_11_0.callPackage ../development/libraries/libdeflate { };
+
+  libdeltachat = callPackage ../development/libraries/libdeltachat {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
+  };
+
+  libdevil = callPackage ../development/libraries/libdevil {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+  };
+
+  libdevil-nox = callPackage ../development/libraries/libdevil {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+    withXorg = false;
+  };
+
+  libdecor = callPackage ../development/libraries/libdecor { };
+
+  libdex = callPackage ../development/libraries/libdex { };
+
+  libdicom = callPackage ../development/libraries/libdicom { };
+
+  libdigidocpp = callPackage ../development/libraries/libdigidocpp { };
+
+  libdiscid = callPackage ../development/libraries/libdiscid { };
+
+  libdisplay-info = callPackage ../development/libraries/libdisplay-info { };
+
+  libdivecomputer = callPackage ../development/libraries/libdivecomputer { };
+
+  libdivsufsort = callPackage ../development/libraries/libdivsufsort { };
+
+  libdmtx = callPackage ../development/libraries/libdmtx { };
+
+  libdmapsharing = callPackage ../development/libraries/libdmapsharing { };
+
+  libdnet = callPackage ../development/libraries/libdnet { };
+
+  libdnf = callPackage ../tools/package-management/libdnf { python = python3; };
+
+  libdovi = callPackage ../development/libraries/libdovi { };
+
+  libdrm = callPackage ../development/libraries/libdrm { };
+
+  libdv = callPackage ../development/libraries/libdv { };
+
+  libdvbcsa = callPackage ../development/libraries/libdvbcsa { };
+
+  libdvbpsi = callPackage ../development/libraries/libdvbpsi { };
+
+  libdwg = callPackage ../development/libraries/libdwg { };
+
+  libdvdcss = callPackage ../development/libraries/libdvdcss {
+    inherit (darwin) IOKit;
+  };
+
+  libdvdnav = callPackage ../development/libraries/libdvdnav { };
+  libdvdnav_4_2_1 = callPackage ../development/libraries/libdvdnav/4.2.1.nix {
+    libdvdread = libdvdread_4_9_9;
+  };
+
+  libdvdread = callPackage ../development/libraries/libdvdread { };
+  libdvdread_4_9_9 = callPackage ../development/libraries/libdvdread/4.9.9.nix { };
+
+  libdwarf = callPackage ../development/libraries/libdwarf { };
+  dwarfdump = libdwarf.bin;
+  libdwarf_20210528 = callPackage ../development/libraries/libdwarf/20210528.nix { };
+
+  libe57format = callPackage ../development/libraries/libe57format { };
+
+  libeatmydata = callPackage ../development/libraries/libeatmydata { };
+
+  libeb = callPackage ../development/libraries/libeb { };
+
+  libebml = callPackage ../development/libraries/libebml { };
+
+  libebur128 = callPackage ../development/libraries/libebur128 { };
+
+  libedit = callPackage ../development/libraries/libedit { };
+
+  libei = callPackage ../development/libraries/libei { };
+
+  libelf = callPackage ../development/libraries/libelf { };
+
+  libelfin = callPackage ../development/libraries/libelfin { };
+
+  libetpan = callPackage ../development/libraries/libetpan { };
+
+  libexecinfo = callPackage ../development/libraries/libexecinfo { };
+
+  libfaketime = callPackage ../development/libraries/libfaketime { };
+
+  libfakekey = callPackage ../development/libraries/libfakekey { };
+
+  libfido2 = callPackage ../development/libraries/libfido2 {};
+
+  libfilezilla = darwin.apple_sdk_11_0.callPackage ../development/libraries/libfilezilla {
+    inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices;
+  };
+
+  libfishsound = callPackage ../development/libraries/libfishsound { };
+
+  libfm = callPackage ../development/libraries/libfm { };
+  libfm-extra = libfm.override {
+    extraOnly = true;
+  };
+
+  libfprint = callPackage ../development/libraries/libfprint { };
+
+  libfprint-tod = callPackage ../development/libraries/libfprint-tod { };
+
+  libfprint-2-tod1-goodix = callPackage ../development/libraries/libfprint-2-tod1-goodix { };
+
+  libfprint-2-tod1-goodix-550a = callPackage ../development/libraries/libfprint-2-tod1-goodix-550a { };
+
+  libfprint-2-tod1-vfs0090 = callPackage ../development/libraries/libfprint-2-tod1-vfs0090 { };
+
+  libfprint-2-tod1-elan = callPackage ../development/libraries/libfprint-2-tod1-elan { };
+
+  libfpx = callPackage ../development/libraries/libfpx { };
+
+  libgadu = callPackage ../development/libraries/libgadu { };
+
+  libgbinder = callPackage ../development/libraries/libgbinder { };
+
+  libgda = callPackage ../development/libraries/libgda { };
+
+  libgda6 = callPackage ../development/libraries/libgda/6.x.nix { };
+
+  libgdamm = callPackage ../development/libraries/libgdamm { };
+
+  libgdata = callPackage ../development/libraries/libgdata { };
+
+  libgee = callPackage ../development/libraries/libgee { };
+
+  libgepub = callPackage ../development/libraries/libgepub { };
+
+  libgig = callPackage ../development/libraries/libgig { };
+
+  libglibutil = callPackage ../development/libraries/libglibutil { };
+
+  libgnome-keyring = callPackage ../development/libraries/libgnome-keyring { };
+  libgnome-keyring3 = gnome.libgnome-keyring;
+
+  libgnome-games-support = callPackage ../development/libraries/libgnome-games-support { };
+  libgnome-games-support_2_0 = callPackage ../development/libraries/libgnome-games-support/2.0.nix { };
+
+  libgnomekbd = callPackage ../development/libraries/libgnomekbd { };
+
+  libglvnd = callPackage ../development/libraries/libglvnd { };
+
+  libgnurl = callPackage ../development/libraries/libgnurl { };
+
+  libgourou = callPackage ../development/libraries/libgourou { };
+
+  libgringotts = callPackage ../development/libraries/libgringotts { };
+
+  libgrss = callPackage ../development/libraries/libgrss {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation AppKit;
+  };
+
+  libgweather = callPackage ../development/libraries/libgweather { };
+
+  libgxps = callPackage ../development/libraries/libgxps { };
+
+  libiio = callPackage ../development/libraries/libiio {
+    inherit (darwin.apple_sdk.frameworks) CFNetwork CoreServices;
+    python = python3;
+  };
+
+  libinjection = callPackage ../development/libraries/libinjection { };
+
+  libinklevel = callPackage ../development/libraries/libinklevel { };
+
+  libkcapi = callPackage ../development/libraries/libkcapi { };
+
+  libnats-c = callPackage ../development/libraries/libnats-c { };
+
+  liburing = callPackage ../development/libraries/liburing { };
+
+  librseq = callPackage ../development/libraries/librseq { };
+
+  libseccomp = callPackage ../development/libraries/libseccomp { };
+
+  libsecret = callPackage ../development/libraries/libsecret { };
+
+  libsegfault = callPackage ../development/libraries/libsegfault { };
+
+  libserdes = callPackage ../development/libraries/libserdes { };
+
+  libserialport = callPackage ../development/libraries/libserialport { };
+
+  libsignal-protocol-c = callPackage ../development/libraries/libsignal-protocol-c { };
+
+  libsignon-glib = callPackage ../development/libraries/libsignon-glib { };
+
+  libsoundio = callPackage ../development/libraries/libsoundio {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit;
+  };
+
+  libspelling = callPackage ../development/libraries/libspelling { };
+
+  libsystemtap = callPackage ../development/libraries/libsystemtap { };
+
+  libgtop = callPackage ../development/libraries/libgtop { };
+
+  libLAS = callPackage ../development/libraries/libLAS { };
+
+  liblaxjson = callPackage ../development/libraries/liblaxjson { };
+
+  liblo = callPackage ../development/libraries/liblo { };
+
+  liblscp = callPackage ../development/libraries/liblscp { };
+
+  libe-book = callPackage ../development/libraries/libe-book { };
+
+  libemf2svg = callPackage ../development/libraries/libemf2svg { };
+
+  libev = callPackage ../development/libraries/libev { };
+
+  libevent = callPackage ../development/libraries/libevent { };
+
+  libewf = callPackage ../development/libraries/libewf { };
+
+  libexif = callPackage ../development/libraries/libexif { };
+
+  libexosip = callPackage ../development/libraries/exosip { };
+
+  libexsid = callPackage ../development/libraries/libexsid { };
+
+  libextractor = callPackage ../development/libraries/libextractor {
+    libmpeg2 = mpeg2dec;
+  };
+
+  libexttextcat = callPackage ../development/libraries/libexttextcat { };
+
+  libf2c = callPackage ../development/libraries/libf2c { };
+
+  libfabric = callPackage ../development/libraries/libfabric { };
+
+  libfive = qt6Packages.callPackage ../development/libraries/libfive {
+    python = python3;
+  };
+
+  libfixposix = callPackage ../development/libraries/libfixposix { };
+
+  libff = callPackage ../development/libraries/libff { };
+
+  libffcall = callPackage ../development/libraries/libffcall { };
+
+  libffi = callPackage ../development/libraries/libffi { };
+  libffi_3_3 = callPackage ../development/libraries/libffi/3.3.nix { };
+  libffiBoot = libffi.override {
+    doCheck = false;
+  };
+
+  libfreeaptx = callPackage ../development/libraries/libfreeaptx { };
+
+  libfreefare = callPackage ../development/libraries/libfreefare {
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+    inherit (darwin) libobjc;
+  };
+
+  libftdi = callPackage ../development/libraries/libftdi {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  libftdi1 = callPackage ../development/libraries/libftdi/1.x.nix { };
+
+  libfyaml = callPackage ../development/libraries/libfyaml { };
+
+  libgcrypt = callPackage ../development/libraries/libgcrypt { };
+
+  libgcrypt_1_8 = callPackage ../development/libraries/libgcrypt/1.8.nix { };
+
+  libgdiplus = callPackage ../development/libraries/libgdiplus {
+      inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  libgnt = callPackage ../development/libraries/libgnt { };
+
+  libgpg-error = callPackage ../development/libraries/libgpg-error { };
+
+  # https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=README;h=fd6e1a83f55696c1f7a08f6dfca08b2d6b7617ec;hb=70058cd9f944d620764e57c838209afae8a58c78#l118
+  libgpg-error-gen-posix-lock-obj = libgpg-error.override {
+    genPosixLockObjOnly = true;
+  };
+
+  libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
+
+  libgpiod = callPackage ../development/libraries/libgpiod { };
+
+  libgpod = callPackage ../development/libraries/libgpod {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  libgssglue = callPackage ../development/libraries/libgssglue { };
+
+  libgudev = callPackage ../development/libraries/libgudev { };
+
+  libguestfs-appliance = callPackage ../development/libraries/libguestfs/appliance.nix { };
+  libguestfs = callPackage ../development/libraries/libguestfs {
+    autoreconfHook = buildPackages.autoreconfHook264;
+  };
+  libguestfs-with-appliance = libguestfs.override {
+    appliance = libguestfs-appliance;
+    autoreconfHook = buildPackages.autoreconfHook264;
+  };
+
+
+  libhangul = callPackage ../development/libraries/libhangul { };
+
+  libharu = callPackage ../development/libraries/libharu { };
+
+  libhdhomerun = callPackage ../development/libraries/libhdhomerun { };
+
+  libheif = callPackage ../development/libraries/libheif { };
+
+  libhttpseverywhere = callPackage ../development/libraries/libhttpseverywhere { };
+
+  libhugetlbfs = callPackage ../development/libraries/libhugetlbfs { };
+
+  libhv = callPackage ../development/libraries/libhv {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  libhwy = callPackage ../development/libraries/libhwy { };
+
+  libHX = callPackage ../development/libraries/libHX { };
+
+  libibmad = callPackage ../development/libraries/libibmad { };
+
+  libibumad = callPackage ../development/libraries/libibumad { };
+
+  libical = callPackage ../development/libraries/libical { };
+
+  libicns = callPackage ../development/libraries/libicns { };
+
+  libieee1284 = callPackage ../development/libraries/libieee1284 { };
+
+  libimobiledevice = callPackage ../development/libraries/libimobiledevice {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation;
+  };
+
+  libimobiledevice-glue = callPackage ../development/libraries/libimobiledevice-glue { };
+
+  libindicator-gtk2 = libindicator.override { gtkVersion = "2"; };
+  libindicator-gtk3 = libindicator.override { gtkVersion = "3"; };
+  libindicator = callPackage ../development/libraries/libindicator { };
+
+  libayatana-indicator = callPackage ../development/libraries/libayatana-indicator { };
+
+  libinotify-kqueue = callPackage ../development/libraries/libinotify-kqueue { };
+
+  libiodbc = callPackage ../development/libraries/libiodbc {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  libirecovery = callPackage ../development/libraries/libirecovery { };
+
+  libivykis = callPackage ../development/libraries/libivykis { };
+
+  libkqueue = callPackage ../development/libraries/libkqueue { };
+
+  liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
+
+  liblcf = callPackage ../development/libraries/liblcf { };
+
+  liblc3 = callPackage ../development/libraries/liblc3 { };
+
+  libliftoff = callPackage ../development/libraries/libliftoff { };
+
+  liblqr1 = callPackage ../development/libraries/liblqr-1 {
+    inherit (darwin.apple_sdk.frameworks) Carbon AppKit;
+  };
+
+  liblockfile = callPackage ../development/libraries/liblockfile { };
+
+  liblogging = callPackage ../development/libraries/liblogging { };
+
+  liblognorm = callPackage ../development/libraries/liblognorm { };
+
+  libltc = callPackage ../development/libraries/libltc { };
+
+  liblxi = callPackage ../development/libraries/liblxi { };
+
+  libmaxminddb = callPackage ../development/libraries/libmaxminddb { };
+
+  libmcfp = callPackage ../development/libraries/libmcfp { };
+
+  libmcrypt = callPackage ../development/libraries/libmcrypt { };
+
+  libmediaart = callPackage ../development/libraries/libmediaart { };
+
+  libmediainfo = callPackage ../development/libraries/libmediainfo { };
+
+  libmhash = callPackage ../development/libraries/libmhash { };
+
+  libmodbus = callPackage ../development/libraries/libmodbus { };
+
+  libmtp = callPackage ../development/libraries/libmtp { };
+
+  libmypaint = callPackage ../development/libraries/libmypaint { };
+
+  libmysofa = callPackage ../development/libraries/audio/libmysofa { };
+
+  libmysqlconnectorcpp = callPackage ../development/libraries/libmysqlconnectorcpp { };
+
+  libnatpmp = callPackage ../development/libraries/libnatpmp { };
+
+  libnatspec = callPackage ../development/libraries/libnatspec { };
+
+  libndp = callPackage ../development/libraries/libndp { };
+
+  libnfc = callPackage ../development/libraries/libnfc { };
+
+  libnfs = callPackage ../development/libraries/libnfs { };
+
+  libnice = callPackage ../development/libraries/libnice { };
+
+  libnitrokey = callPackage ../development/libraries/libnitrokey { };
+
+  libnsl = callPackage ../development/libraries/libnsl { };
+
+  liboping = callPackage ../development/libraries/liboping { };
+
+  libplist = callPackage ../development/libraries/libplist { };
+
+  libqtdbusmock = libsForQt5.callPackage ../development/libraries/libqtdbusmock {
+    inherit (lomiri) cmake-extras;
+  };
+
+  libqtdbustest = libsForQt5.callPackage ../development/libraries/libqtdbustest {
+    inherit (lomiri) cmake-extras;
+  };
+
+  libre = callPackage ../development/libraries/libre {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
+  librecast = callPackage ../development/libraries/librecast { };
+
+  libredwg = callPackage ../development/libraries/libredwg { };
+
+  librem = callPackage ../development/libraries/librem { };
+
+  libremidi = callPackage ../development/libraries/libremidi {
+      inherit (darwin.apple_sdk.frameworks)
+        CoreAudio
+        CoreFoundation
+        CoreMIDI
+        CoreServices;
+  };
+
+  libremines = qt6.callPackage ../games/libremines { };
+
+  librelp = callPackage ../development/libraries/librelp { };
+
+  librepo = callPackage ../tools/package-management/librepo {
+    python = python3;
+  };
+
+  libresample = callPackage ../development/libraries/libresample { };
+
+  librevenge = callPackage ../development/libraries/librevenge { };
+
+  librime = callPackage ../development/libraries/librime { };
+
+  librsb = callPackage ../development/libraries/librsb {
+    # Taken from https://build.opensuse.org/package/view_file/science/librsb/librsb.spec
+    memHierarchy = "L3:16/64/8192K,L2:16/64/2048K,L1:8/64/16K";
+  };
+
+  librtprocess = callPackage ../development/libraries/librtprocess { };
+
+  libsamplerate = callPackage ../development/libraries/libsamplerate {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon CoreServices;
+  };
+
+  libsieve = callPackage ../development/libraries/libsieve { };
+
+  libsixel = callPackage ../development/libraries/libsixel { };
+
+  libsolv = callPackage ../development/libraries/libsolv { };
+
+  libspectre = callPackage ../development/libraries/libspectre { };
+
+  libspecbleach = callPackage ../development/libraries/audio/libspecbleach { };
+
+  libspnav = callPackage ../development/libraries/libspnav { };
+
+  libgsf = callPackage ../development/libraries/libgsf { };
+
+  # GNU libc provides libiconv so systems with glibc don't need to
+  # build libiconv separately. Additionally, Apple forked/repackaged
+  # libiconv so we use that instead of the vanilla version on that OS,
+  # and BSDs include libiconv in libc.
+  #
+  # We also provide `libiconvReal`, which will always be a standalone libiconv,
+  # just in case you want it regardless of platform.
+  libiconv =
+    if lib.elem stdenv.hostPlatform.libc [ "glibc" "musl" "nblibc" "wasilibc" ]
+      then libcIconv (if stdenv.hostPlatform != stdenv.buildPlatform
+        then libcCross
+        else stdenv.cc.libc)
+    else if stdenv.hostPlatform.isDarwin
+      then darwin.libiconv
+    else libiconvReal;
+
+  libcIconv = libc: let
+    inherit (libc) pname version;
+    libcDev = lib.getDev libc;
+  in runCommand "${pname}-iconv-${version}" { strictDeps = true; } ''
+    mkdir -p $out/include
+    ln -sv ${libcDev}/include/iconv.h $out/include
+  '';
+
+  libiconvReal = callPackage ../development/libraries/libiconv { };
+
+  iconv =
+    if lib.elem stdenv.hostPlatform.libc [ "glibc" "musl" ] then
+      lib.getBin stdenv.cc.libc
+    else if stdenv.hostPlatform.isDarwin then
+      lib.getBin darwin.libiconv
+    else
+      lib.getBin libiconvReal;
+
+  # On non-GNU systems we need GNU Gettext for libintl.
+  libintl = if stdenv.hostPlatform.libc != "glibc" then gettext else null;
+
+  libid3tag = callPackage ../development/libraries/libid3tag { };
+
+  libidn = callPackage ../development/libraries/libidn { };
+
+  libidn2 = callPackage ../development/libraries/libidn2 { };
+
+  idnkit = callPackage ../development/libraries/idnkit { };
+
+  libiec61883 = callPackage ../development/libraries/libiec61883 { };
+
+  libimagequant = callPackage ../development/libraries/libimagequant { };
+
+  libime = callPackage ../development/libraries/libime { };
+
+  libinfinity = callPackage ../development/libraries/libinfinity { };
+
+  libinput = callPackage ../development/libraries/libinput {
+    graphviz = graphviz-nox;
+  };
+
+  libinput-gestures = callPackage ../tools/inputmethods/libinput-gestures { };
+
+  libinstpatch = callPackage ../development/libraries/audio/libinstpatch { };
+
+  libipt = callPackage ../development/libraries/libipt { };
+
+  libiptcdata = callPackage ../development/libraries/libiptcdata { };
+
+  libjcat = callPackage ../development/libraries/libjcat { };
+
+  libjpeg_original = callPackage ../development/libraries/libjpeg { };
+  # also known as libturbojpeg
+  libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
+  libjpeg = libjpeg_turbo;
+  libjpeg8 = libjpeg_turbo.override { enableJpeg8 = true; };
+
+  libjson-rpc-cpp = callPackage ../development/libraries/libjson-rpc-cpp {
+    libmicrohttpd = libmicrohttpd_0_9_72;
+  };
+
+  libjwt = callPackage ../development/libraries/libjwt { };
+
+  libjxl = callPackage ../development/libraries/libjxl { };
+
+  libkate = callPackage ../development/libraries/libkate { };
+
+  libkeyfinder = callPackage ../development/libraries/audio/libkeyfinder { };
+
+  libks = callPackage ../development/libraries/libks { };
+
+  libksba = callPackage ../development/libraries/libksba { };
+
+  libksi = callPackage ../development/libraries/libksi { };
+
+  liblinear = callPackage ../development/libraries/liblinear { };
+
+  libmad = callPackage ../development/libraries/libmad { };
+
+  malcontent = callPackage ../development/libraries/malcontent { };
+
+  malcontent-ui = callPackage ../development/libraries/malcontent/ui.nix { };
+
+  libmanette = callPackage ../development/libraries/libmanette { };
+
+  libmatchbox = callPackage ../development/libraries/libmatchbox { };
+
+  libmatheval = callPackage ../development/libraries/libmatheval { };
+
+  libmatthew_java = callPackage ../development/libraries/java/libmatthew-java {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  libmatroska = callPackage ../development/libraries/libmatroska { };
+
+  libmd = callPackage ../development/libraries/libmd { };
+
+  libmemcached = callPackage ../development/libraries/libmemcached { };
+
+  libmicrohttpd_0_9_69 = callPackage ../development/libraries/libmicrohttpd/0.9.69.nix { };
+  libmicrohttpd_0_9_71 = callPackage ../development/libraries/libmicrohttpd/0.9.71.nix { };
+  libmicrohttpd_0_9_72 = callPackage ../development/libraries/libmicrohttpd/0.9.72.nix { };
+  libmicrohttpd_0_9_74 = callPackage ../development/libraries/libmicrohttpd/0.9.74.nix { };
+  libmicrohttpd = libmicrohttpd_0_9_71;
+
+  libmikmod = callPackage ../development/libraries/libmikmod {
+    inherit (darwin.apple_sdk.frameworks) CoreAudio;
+  };
+
+  libmilter = callPackage ../development/libraries/libmilter { };
+
+  libminc = callPackage ../development/libraries/libminc { };
+
+  libmkv = callPackage ../development/libraries/libmkv { };
+
+  libnut = callPackage ../development/libraries/libnut { };
+
+  libmms = callPackage ../development/libraries/libmms { };
+
+  libmowgli = callPackage ../development/libraries/libmowgli { };
+
+  libmng = callPackage ../development/libraries/libmng { };
+
+  libmnl = callPackage ../development/libraries/libmnl { };
+
+  libmodplug = callPackage ../development/libraries/libmodplug { };
+
+  libmodule = callPackage ../development/libraries/libmodule { };
+
+  libmpcdec = callPackage ../development/libraries/libmpcdec { };
+
+  libmp3splt = callPackage ../development/libraries/libmp3splt { };
+
+  libmrss = callPackage ../development/libraries/libmrss { };
+
+  libmspack = callPackage ../development/libraries/libmspack { };
+
+  libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
+
+  libmusicbrainz5 = callPackage ../development/libraries/libmusicbrainz/5.x.nix { };
+
+  libmusicbrainz = libmusicbrainz3;
+
+  libmwaw = callPackage ../development/libraries/libmwaw { };
+
+  libmx = callPackage ../development/libraries/libmx { };
+
+  libndctl = callPackage ../development/libraries/libndctl { };
+
+  libnest2d = callPackage ../development/libraries/libnest2d { };
+
+  libnet = callPackage ../development/libraries/libnet { };
+
+  libnetfilter_acct = callPackage ../development/libraries/libnetfilter_acct { };
+
+  libnetfilter_conntrack = callPackage ../development/libraries/libnetfilter_conntrack { };
+
+  libnetfilter_cthelper = callPackage ../development/libraries/libnetfilter_cthelper { };
+
+  libnetfilter_cttimeout = callPackage ../development/libraries/libnetfilter_cttimeout { };
+
+  libnetfilter_log = callPackage ../development/libraries/libnetfilter_log { };
+
+  libnetfilter_queue = callPackage ../development/libraries/libnetfilter_queue { };
+
+  libnfnetlink = callPackage ../development/libraries/libnfnetlink { };
+
+  libnftnl = callPackage ../development/libraries/libnftnl { };
+
+  libnova = callPackage ../development/libraries/science/astronomy/libnova { };
+
+  libnxml = callPackage ../development/libraries/libnxml { };
+
+  libodfgen = callPackage ../development/libraries/libodfgen { };
+
+  libofa = callPackage ../development/libraries/libofa { };
+
+  libofx = callPackage ../development/libraries/libofx { };
+
+  libogg = callPackage ../development/libraries/libogg { };
+
+  liboggz = callPackage ../development/libraries/liboggz { };
+
+  liboil = callPackage ../development/libraries/liboil { };
+
+  libomxil-bellagio = callPackage ../development/libraries/libomxil-bellagio { };
+
+  liboop = callPackage ../development/libraries/liboop { };
+
+  libopenaptx = callPackage ../development/libraries/libopenaptx { };
+
+  libopenglrecorder = callPackage ../development/libraries/libopenglrecorder { };
+
+  libopus = callPackage ../development/libraries/libopus { };
+
+  libopusenc = callPackage ../development/libraries/libopusenc { };
+
+  liboqs = callPackage ../development/libraries/liboqs { };
+
+  libosinfo = callPackage ../development/libraries/libosinfo { };
+
+  libosip = callPackage ../development/libraries/osip { };
+
+  libosmium = callPackage ../development/libraries/libosmium { };
+
+  libosmoabis = callPackage ../servers/osmocom/libosmoabis { };
+
+  libosmocore = callPackage ../servers/osmocom/libosmocore { };
+
+  libosmo-netif = callPackage ../servers/osmocom/libosmo-netif { };
+
+  libosmo-sccp = callPackage ../servers/osmocom/libosmo-sccp { };
+
+  libosmscout = libsForQt5.callPackage ../development/libraries/libosmscout { };
+
+  libotr = callPackage ../development/libraries/libotr { };
+
+  libow = callPackage ../development/libraries/libow { };
+
+  libp11 = callPackage ../development/libraries/libp11 { };
+
+  libpam-wrapper = callPackage ../development/libraries/libpam-wrapper { };
+
+  libpanel = callPackage ../development/libraries/libpanel { };
+
+  libpar2 = callPackage ../development/libraries/libpar2 { };
+
+  libpcap = callPackage ../development/libraries/libpcap { };
+
+  libpeas = callPackage ../development/libraries/libpeas { };
+  libpeas2 = callPackage ../development/libraries/libpeas/2.x.nix { };
+
+  libpg_query = callPackage ../development/libraries/libpg_query { };
+
+  libpipeline = callPackage ../development/libraries/libpipeline { };
+
+  libpgf = callPackage ../development/libraries/libpgf { };
+
+  libphonenumber = callPackage ../development/libraries/libphonenumber {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  libplacebo = callPackage ../development/libraries/libplacebo { };
+
+  libpng = callPackage ../development/libraries/libpng { };
+  libpng12 = callPackage ../development/libraries/libpng/12.nix { };
+
+  libpostal = callPackage ../development/libraries/libpostal { };
+
+  libpaper = callPackage ../development/libraries/libpaper { };
+
+  libpfm = callPackage ../development/libraries/libpfm { };
+
+  libpqxx = callPackage ../development/libraries/libpqxx { };
+  libpqxx_6 = callPackage ../development/libraries/libpqxx/6.nix { };
+
+  inherit (callPackages ../development/libraries/prometheus-client-c {
+    stdenv = gccStdenv; # Required for darwin
+  }) libprom libpromhttp;
+
+  libproxy = callPackage ../development/libraries/libproxy {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation JavaScriptCore;
+  };
+
+  libpseudo = callPackage ../development/libraries/libpseudo { };
+
+  libpsl = callPackage ../development/libraries/libpsl { };
+
+  libpst = callPackage ../development/libraries/libpst { };
+
+  libptytty = callPackage ../development/libraries/libptytty { };
+
+  libpulsar = callPackage ../development/libraries/libpulsar {
+    protobuf = protobuf_21;
+  };
+
+  libpwquality = callPackage ../development/libraries/libpwquality {
+    python = python3;
+  };
+
+  libqalculate = callPackage ../development/libraries/libqalculate { };
+
+  libqt5pas = libsForQt5.callPackage ../development/compilers/fpc/libqt5pas.nix { };
+
+  librclone = callPackage ../development/libraries/librclone { };
+
+  libroxml = callPackage ../development/libraries/libroxml { };
+
+  librsvg = callPackage ../development/libraries/librsvg {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
+  };
+
+  librsync = callPackage ../development/libraries/librsync { };
+
+  librttopo = callPackage ../development/libraries/librttopo { };
+
+  libs3 = callPackage ../development/libraries/libs3 { };
+
+  libschrift = callPackage ../development/libraries/libschrift { };
+
+  libsciter = callPackage ../development/libraries/libsciter { };
+
+  libsearpc = callPackage ../development/libraries/libsearpc { };
+
+  libsigcxx = callPackage ../development/libraries/libsigcxx { };
+
+  libsigcxx30 = callPackage ../development/libraries/libsigcxx/3.0.nix { };
+
+  libsigsegv = callPackage ../development/libraries/libsigsegv { };
+
+  libslirp = callPackage ../development/libraries/libslirp { };
+
+  libsndfile = callPackage ../development/libraries/libsndfile {
+    inherit (darwin.apple_sdk.frameworks) Carbon AudioToolbox;
+  };
+
+  libsnark = callPackage ../development/libraries/libsnark { };
+
+  libsodium = callPackage ../development/libraries/libsodium { };
+
+  libsoup = callPackage ../development/libraries/libsoup { };
+
+  libsoup_3 = callPackage ../development/libraries/libsoup/3.x.nix { };
+
+  libspectrum = callPackage ../development/libraries/libspectrum { };
+
+  libspiro = callPackage ../development/libraries/libspiro { };
+
+  libspng = callPackage ../development/libraries/libspng { };
+
+  libssh = callPackage ../development/libraries/libssh { };
+
+  libssh2 = callPackage ../development/libraries/libssh2 { };
+
+  libstartup_notification = callPackage ../development/libraries/startup-notification { };
+
+  libstemmer = callPackage ../development/libraries/libstemmer { };
+
+  libstroke = callPackage ../development/libraries/libstroke { };
+
+  libstrophe = callPackage ../development/libraries/libstrophe { };
+
+  libspatialaudio = callPackage ../development/libraries/libspatialaudio { };
+
+  libspatialindex = callPackage ../development/libraries/libspatialindex { };
+
+  libspatialite = callPackage ../development/libraries/libspatialite { };
+
+  libstatgrab = callPackage ../development/libraries/libstatgrab {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  libsvm = callPackage ../development/libraries/libsvm { };
+
+  libtar = callPackage ../development/libraries/libtar { };
+
+  libtasn1 = callPackage ../development/libraries/libtasn1 { };
+
+  libtcod = callPackage ../development/libraries/libtcod { };
+
+  libthai = callPackage ../development/libraries/libthai { };
+
+  libtheora = callPackage ../development/libraries/libtheora { };
+
+  libthreadar = callPackage ../development/libraries/libthreadar { };
+
+  libticables2 = callPackage ../development/libraries/libticables2 { };
+
+  libticalcs2 = callPackage ../development/libraries/libticalcs2 {
+    inherit (darwin) libobjc;
+  };
+
+  libticonv = callPackage ../development/libraries/libticonv { };
+
+  libtifiles2 = callPackage ../development/libraries/libtifiles2 { };
+
+  libtiff = callPackage ../development/libraries/libtiff { };
+  libtiff_4_5 = callPackage ../development/libraries/libtiff/4.5.nix { };
+
+  libtiger = callPackage ../development/libraries/libtiger { };
+
+  libtommath = callPackage ../development/libraries/libtommath { };
+
+  libtomcrypt = callPackage ../development/libraries/libtomcrypt { };
+
+  libtorrent-rasterbar-2_0_x = callPackage ../development/libraries/libtorrent-rasterbar {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+    python = python3;
+  };
+
+  libtorrent-rasterbar-1_2_x = callPackage ../development/libraries/libtorrent-rasterbar/1.2.nix {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+    python = python3;
+  };
+
+  libtorrent-rasterbar = libtorrent-rasterbar-2_0_x;
+
+  libtoxcore = callPackage ../development/libraries/libtoxcore { };
+
+  libtpms = callPackage ../tools/security/libtpms { };
+
+  libtap = callPackage ../development/libraries/libtap { };
+
+  libtsm = callPackage ../development/libraries/libtsm { };
+
+  libsv = callPackage ../development/libraries/libsv { };
+
+  libgeotiff = callPackage ../development/libraries/libgeotiff { };
+
+  libu2f-host = callPackage ../development/libraries/libu2f-host { };
+
+  libu2f-server = callPackage ../development/libraries/libu2f-server { };
+
+  libubox-nossl = callPackage ../development/libraries/libubox { };
+
+  libubox = callPackage ../development/libraries/libubox { with_ustream_ssl = true; };
+
+  libubox-wolfssl = callPackage ../development/libraries/libubox { with_ustream_ssl = true; ustream-ssl = ustream-ssl-wolfssl; };
+
+  libubox-mbedtls = callPackage ../development/libraries/libubox { with_ustream_ssl = true; ustream-ssl = ustream-ssl-mbedtls; };
+
+  libudev-zero = callPackage ../development/libraries/libudev-zero { };
+
+  libudfread = callPackage ../development/libraries/libudfread { };
+
+  libuecc = callPackage ../development/libraries/libuecc { };
+
+  libuev = callPackage ../development/libraries/libuev {};
+
+  libui = callPackage ../development/libraries/libui {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  libuinputplus = callPackage ../development/libraries/libuinputplus { };
+
+  libuiohook = callPackage ../development/libraries/libuiohook {
+    inherit (darwin.apple_sdk.frameworks) AppKit ApplicationServices Carbon;
+  };
+
+  libunistring = callPackage ../development/libraries/libunistring { };
+
+  libupnp = callPackage ../development/libraries/pupnp { };
+
+  libwhereami = callPackage ../development/libraries/libwhereami { };
+
+  giflib     = callPackage ../development/libraries/giflib { };
+
+  libunarr = callPackage ../development/libraries/libunarr { };
+
+  libunibreak = callPackage ../development/libraries/libunibreak { };
+
+  libuninameslist = callPackage ../development/libraries/libuninameslist { };
+
+  libunique = callPackage ../development/libraries/libunique { };
+  libunique3 = callPackage ../development/libraries/libunique/3.x.nix { };
+
+  liburcu = callPackage ../development/libraries/liburcu { };
+
+  libjaylink = callPackage ../development/libraries/libjaylink { };
+
+  libusb-compat-0_1 = callPackage ../development/libraries/libusb-compat/0.1.nix { };
+
+  libusb1 = callPackage ../development/libraries/libusb1 {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  libusbgx = callPackage ../development/libraries/libusbgx { };
+
+  libusbmuxd = callPackage ../development/libraries/libusbmuxd { };
+
+  libusbsio = callPackage ../development/libraries/libusbsio { };
+
+  libucontext = callPackage ../development/libraries/libucontext { };
+
+  libutempter = callPackage ../development/libraries/libutempter { };
+
+  libuldaq = callPackage ../development/libraries/libuldaq { };
+
+  libunicode = callPackage ../development/libraries/libunicode { fmt = fmt_8; };
+
+  libunwind =
+    if stdenv.isDarwin then darwin.libunwind
+    else if stdenv.hostPlatform.system == "riscv32-linux" then llvmPackages_14.libunwind
+    else callPackage ../development/libraries/libunwind { };
+
+  libuv = darwin.apple_sdk_11_0.callPackage ../development/libraries/libuv { };
+
+  libuvc = callPackage ../development/libraries/libuvc { };
+
+  libv4l = lowPrio (v4l-utils.override {
+    withUtils = false;
+  });
+
+  libva-minimal = callPackage ../development/libraries/libva { minimal = true; };
+  libva = libva-minimal.override { minimal = false; };
+  libva-utils = callPackage ../development/libraries/libva/utils.nix { };
+
+  libva1 = callPackage ../development/libraries/libva/1.nix { };
+  libva1-minimal = libva1.override { minimal = true; };
+
+  libvarlink = callPackage ../development/libraries/libvarlink { };
+
+  libvdpau = callPackage ../development/libraries/libvdpau { };
+
+  libvdwxc = callPackage ../development/libraries/science/chemistry/libvdwxc { };
+
+  libmodulemd = callPackage ../development/libraries/libmodulemd { };
+
+  libvdpau-va-gl = callPackage ../development/libraries/libvdpau-va-gl { };
+
+  libversion = callPackage ../development/libraries/libversion { };
+
+  libverto = callPackage ../development/libraries/libverto { };
+
+  libvgm = callPackage ../development/libraries/libvgm {
+    inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox;
+  };
+
+  libvirt = callPackage ../development/libraries/libvirt {
+    inherit (darwin.apple_sdk.frameworks) Carbon AppKit;
+  };
+
+  libvirt-glib = callPackage ../development/libraries/libvirt-glib { };
+
+  libvisio = callPackage ../development/libraries/libvisio { };
+
+  libvisio2svg = callPackage ../development/libraries/libvisio2svg { };
+
+  libvisual = callPackage ../development/libraries/libvisual { };
+
+  libvmaf = callPackage ../development/libraries/libvmaf { };
+
+  libvncserver = callPackage ../development/libraries/libvncserver {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  libviper = callPackage ../development/libraries/libviper { };
+
+  libviperfx = callPackage ../development/libraries/libviperfx { };
+
+  libvpx = callPackage ../development/libraries/libvpx { };
+  libvpx_1_8 = callPackage ../development/libraries/libvpx/1_8.nix { };
+
+  libvterm = callPackage ../development/libraries/libvterm { };
+  libvterm-neovim = callPackage ../development/libraries/libvterm-neovim { };
+
+  libvorbis = callPackage ../development/libraries/libvorbis { };
+
+  libvori = callPackage ../development/libraries/libvori { };
+
+  libwbxml = callPackage ../development/libraries/libwbxml { };
+
+  libwebcam = callPackage ../os-specific/linux/libwebcam { };
+
+  libwebp = callPackage ../development/libraries/libwebp { };
+
+  libwmf = callPackage ../development/libraries/libwmf { };
+
+  libwnck = callPackage ../development/libraries/libwnck { };
+  libwnck2 = callPackage ../development/libraries/libwnck/2.nix { };
+
+  libwpd = callPackage ../development/libraries/libwpd { };
+
+  libwpd_08 = callPackage ../development/libraries/libwpd/0.8.nix { };
+
+  libwps = callPackage ../development/libraries/libwps { };
+
+  libwpg = callPackage ../development/libraries/libwpg { };
+
+  libx86 = callPackage ../development/libraries/libx86 { };
+
+  libxcrypt = callPackage ../development/libraries/libxcrypt {
+    fetchurl = stdenv.fetchurlBoot;
+    perl = buildPackages.perl.override {
+      enableCrypt = false;
+      fetchurl = stdenv.fetchurlBoot;
+    };
+  };
+  libxcrypt-legacy = libxcrypt.override { enableHashes = "all"; };
+
+  libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
+
+  libxisf = callPackage ../development/libraries/science/astronomy/libxisf { };
+
+  libxkbcommon = libxkbcommon_8;
+  libxkbcommon_8 = callPackage ../development/libraries/libxkbcommon { };
+
+  libxklavier = callPackage ../development/libraries/libxklavier { };
+
+  libxls = callPackage ../development/libraries/libxls { };
+
+  libxlsxwriter = callPackage ../development/libraries/libxlsxwriter { };
+
+  libxmi = callPackage ../development/libraries/libxmi { };
+
+  libxml2 = callPackage ../development/libraries/libxml2 {
+    python = python3;
+  };
+
+  libxml2Python = let
+    inherit (python3.pkgs) libxml2;
+  in pkgs.buildEnv { # slightly hacky
+    name = "libxml2+py-${res.libxml2.version}";
+    paths = with libxml2; [ dev bin py ];
+    # Avoid update.nix conflicts with libxml2.
+    passthru = builtins.removeAttrs libxml2.passthru [ "updateScript" ];
+    # the hook to find catalogs is hidden by buildEnv
+    postBuild = ''
+      mkdir "$out/nix-support"
+      cp '${libxml2.dev}/nix-support/propagated-build-inputs' "$out/nix-support/"
+    '';
+  };
+
+  libxmlb = callPackage ../development/libraries/libxmlb { };
+
+  libxmlxx = callPackage ../development/libraries/libxmlxx { };
+  libxmlxx3 = callPackage ../development/libraries/libxmlxx/v3.nix { };
+
+  libxmp = callPackage ../development/libraries/libxmp { };
+
+  libxslt = callPackage ../development/libraries/libxslt {
+    python = python3;
+  };
+
+  libxsmm = callPackage ../development/libraries/libxsmm { };
+
+  libixp = callPackage ../development/libraries/libixp { };
+
+  libwpe = callPackage ../development/libraries/libwpe { };
+
+  libwpe-fdo = callPackage ../development/libraries/libwpe/fdo.nix { };
+
+  libyaml = callPackage ../development/libraries/libyaml { };
+
+  yaml-cpp = callPackage ../development/libraries/yaml-cpp { };
+
+  yaml-cpp_0_3 = callPackage ../development/libraries/yaml-cpp/0.3.0.nix { };
+
+  yas = callPackage ../development/libraries/yas { };
+
+  libyang = callPackage ../development/libraries/libyang { };
+
+  libcyaml = callPackage ../development/libraries/libcyaml { };
+
+  rang = callPackage ../development/libraries/rang { };
+
+  libykclient = callPackage ../development/libraries/libykclient { };
+
+  libykneomgr = callPackage ../development/libraries/libykneomgr { };
+
+  libytnef = callPackage ../development/libraries/libytnef { };
+
+  libyubikey = callPackage ../development/libraries/libyubikey { };
+
+  libyuv = callPackage ../development/libraries/libyuv { };
+
+  libzapojit = callPackage ../development/libraries/libzapojit { };
+
+  libzen = callPackage ../development/libraries/libzen { };
+
+  libzip = callPackage ../development/libraries/libzip { };
+
+  libzdb = callPackage ../development/libraries/libzdb { };
+
+  libwacom = callPackage ../development/libraries/libwacom { };
+
+  libwacom-surface = callPackage ../development/libraries/libwacom/surface.nix { };
+
+  lightning = callPackage ../development/libraries/lightning { };
+
+  lightlocker = callPackage ../misc/screensavers/light-locker { };
+
+  lightspark = callPackage ../misc/lightspark { };
+
+  opentracing-cpp = callPackage ../development/libraries/opentracing-cpp { };
+
+  ligolo-ng = callPackage ../tools/networking/ligolo-ng { };
+
+  linenoise = callPackage ../development/libraries/linenoise { };
+
+  linenoise-ng = callPackage ../development/libraries/linenoise-ng { };
+
+  lirc = callPackage ../development/libraries/lirc { };
+
+  liquid-dsp = callPackage ../development/libraries/liquid-dsp {
+    inherit (darwin) autoSignDarwinBinariesHook cctools;
+  };
+
+  liquidfun = callPackage ../development/libraries/liquidfun { };
+
+  litehtml = callPackage ../development/libraries/litehtml { };
+
+  live555 = callPackage ../development/libraries/live555 { };
+
+  llhttp = callPackage ../development/libraries/llhttp { };
+
+  log4cpp = callPackage ../development/libraries/log4cpp { };
+
+  log4cxx = callPackage ../development/libraries/log4cxx { };
+
+  log4cplus = callPackage ../development/libraries/log4cplus { };
+
+  log4shib = callPackage ../development/libraries/log4shib { };
+
+  loudmouth = callPackage ../development/libraries/loudmouth { };
+
+  lrdf = callPackage ../development/libraries/lrdf { };
+
+  luabind = callPackage ../development/libraries/luabind { lua = lua5_1; };
+
+  luabind_luajit = luabind.override { lua = luajit; };
+
+  luabridge = callPackage ../development/libraries/luabridge { };
+
+  luksmeta = callPackage ../development/libraries/luksmeta {
+    asciidoc = asciidoc-full;
+  };
+
+  lyra = callPackage ../development/libraries/lyra { };
+
+  lzlib = callPackage ../development/libraries/lzlib { };
+
+  lzo = callPackage ../development/libraries/lzo { };
+
+  opencl-clang = callPackage ../development/libraries/opencl-clang { };
+
+  magic-enum = callPackage ../development/libraries/magic-enum { };
+
+  mapnik = callPackage ../development/libraries/mapnik {
+    harfbuzz = harfbuzz.override {
+      withIcu = true;
+    };
+  };
+
+  manticoresearch = callPackage ../servers/search/manticoresearch { };
+
+  marisa = callPackage ../development/libraries/marisa { };
+
+  mathgl = callPackage ../development/libraries/mathgl { };
+
+  matio = callPackage ../development/libraries/matio { };
+
+  matterhorn = haskell.lib.compose.justStaticExecutables haskellPackages.matterhorn;
+
+  maxflow = callPackage ../development/libraries/maxflow { };
+
+  mbedtls_2 = callPackage ../development/libraries/mbedtls/2.nix { };
+  mbedtls = callPackage ../development/libraries/mbedtls/3.nix { };
+
+  mdctags = callPackage ../development/tools/misc/mdctags { };
+
+  md4c = callPackage ../development/libraries/md4c { };
+
+  mdds = callPackage ../development/libraries/mdds { };
+
+  mediastreamer = libsForQt5.callPackage ../development/libraries/mediastreamer { };
+
+  mediastreamer-openh264 = callPackage ../development/libraries/mediastreamer/msopenh264.nix { };
+
+  memorymapping = callPackage ../development/libraries/memorymapping { };
+  memorymappingHook = makeSetupHook {
+    name = "memorymapping-hook";
+    propagatedBuildInputs = [ memorymapping ];
+  } ../development/libraries/memorymapping/setup-hook.sh;
+
+  memray = callPackage ../development/tools/memray { };
+
+  memstream = callPackage ../development/libraries/memstream { };
+  memstreamHook = makeSetupHook {
+    name = "memstream-hook";
+    propagatedBuildInputs = [ memstream ];
+  } ../development/libraries/memstream/setup-hook.sh;
+
+  menu-cache = callPackage ../development/libraries/menu-cache { };
+
+  mergerfs = callPackage ../tools/filesystems/mergerfs { };
+
+  mergerfs-tools = callPackage ../tools/filesystems/mergerfs/tools.nix { };
+
+  meshoptimizer = callPackage ../development/libraries/meshoptimizer { };
+
+  mctc-lib = callPackage ../development/libraries/science/chemistry/mctc-lib { };
+
+  mstore = callPackage ../development/libraries/science/chemistry/mstore { };
+
+  multicharge = callPackage ../development/libraries/science/chemistry/multicharge { };
+
+  test-drive = callPackage ../development/libraries/test-drive { };
+
+  dftd4 = callPackage ../development/libraries/science/chemistry/dftd4 { };
+
+  simple-dftd3 = callPackage ../development/libraries/science/chemistry/simple-dftd3 { };
+
+  tblite = callPackage ../development/libraries/science/chemistry/tblite { };
+
+  toml-f = callPackage ../development/libraries/toml-f { };
+
+  fypp = python3Packages.callPackage ../development/python-modules/fypp { };
+
+  dbcsr = callPackage ../development/libraries/science/math/dbcsr { };
+
+  taco = callPackage ../development/libraries/taco { };
+
+  ## libGL/libGLU/Mesa stuff
+
+  # Default libGL implementation, should provide headers and
+  # libGL.so/libEGL.so/... to link agains them. Android NDK provides
+  # an OpenGL implementation, we can just use that.
+  libGL = if stdenv.hostPlatform.useAndroidPrebuilt then stdenv
+          else callPackage ../development/libraries/mesa/stubs.nix {
+            inherit (darwin.apple_sdk.frameworks) OpenGL;
+          };
+
+  # Default libGLU
+  libGLU = mesa_glu;
+
+  mesa = darwin.apple_sdk_11_0.callPackage ../development/libraries/mesa {
+    inherit (darwin.apple_sdk_11_0.frameworks) OpenGL;
+    inherit (darwin.apple_sdk_11_0.libs) Xplugin;
+  };
+
+  mesa_glu =  callPackage ../development/libraries/mesa-glu {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  ## End libGL/libGLU/Mesa stuff
+
+  meterbridge = callPackage ../applications/audio/meterbridge { };
+
+  mhddfs = callPackage ../tools/filesystems/mhddfs { };
+
+  microsoft-gsl = callPackage ../development/libraries/microsoft-gsl { };
+
+  microsoft-edge = callPackage (import ../applications/networking/browsers/microsoft-edge).stable { };
+  microsoft-edge-beta = callPackage (import ../applications/networking/browsers/microsoft-edge).beta { };
+  microsoft-edge-dev = callPackage (import ../applications/networking/browsers/microsoft-edge).dev { };
+
+  micronucleus = callPackage ../development/tools/misc/micronucleus { };
+
+  markdown-anki-decks = callPackage ../tools/misc/markdown-anki-decks { };
+
+  mdslides = callPackage ../tools/misc/mdslides { };
+
+  micropython = callPackage ../development/interpreters/micropython { };
+
+  MIDIVisualizer = darwin.apple_sdk_11_0.callPackage ../applications/audio/midi-visualizer {
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit Cocoa Carbon CoreAudio CoreMIDI CoreServices Kernel;
+  };
+
+  mimalloc = callPackage ../development/libraries/mimalloc { };
+
+  miniaudio = callPackage ../development/libraries/miniaudio { };
+
+  miniz = callPackage ../development/libraries/miniz { };
+
+  minizip = callPackage ../development/libraries/minizip { };
+
+  minizip-ng = callPackage ../development/libraries/minizip-ng { };
+
+  mkvtoolnix = libsForQt5.callPackage ../applications/video/mkvtoolnix {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
+
+  mkvtoolnix-cli = mkvtoolnix.override {
+    withGUI = false;
+  };
+
+  mlc = callPackage ../tools/system/mlc { };
+
+  mlt = darwin.apple_sdk_11_0.callPackage ../development/libraries/mlt { };
+
+  mlib = callPackage ../development/libraries/mlib { };
+
+  mlv-app = libsForQt5.callPackage ../applications/video/mlv-app { };
+
+  mono-addins = callPackage ../development/libraries/mono-addins { };
+
+  movine = callPackage ../development/tools/database/movine { };
+
+  movit = callPackage ../development/libraries/movit { };
+
+  moserial = callPackage ../tools/misc/moserial { };
+
+  mosquitto = callPackage ../servers/mqtt/mosquitto { };
+
+  nanomq = callPackage ../servers/mqtt/nanomq { };
+
+  mps = callPackage ../development/libraries/mps { };
+
+  libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
+
+  mpeg2dec = libmpeg2;
+
+  mqtt-benchmark = callPackage ../tools/networking/mqtt-benchmark { };
+
+  mqttmultimeter = callPackage ../tools/networking/mqttmultimeter { };
+
+  mqttui = callPackage ../tools/networking/mqttui {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  msgpack = callPackage ../development/libraries/msgpack { };
+
+  msgpack-c = callPackage ../development/libraries/msgpack-c { };
+
+  msgpack-cxx = callPackage ../development/libraries/msgpack-cxx { };
+
+  msoffcrypto-tool = with python3.pkgs; toPythonApplication msoffcrypto-tool;
+
+  msilbc = callPackage ../development/libraries/msilbc { };
+
+  mp4v2 = callPackage ../development/libraries/mp4v2 { };
+
+  libmpc = callPackage ../development/libraries/libmpc { };
+
+  mpich = callPackage ../development/libraries/mpich {
+    ch4backend = libfabric;
+  };
+
+  mstpd = callPackage ../os-specific/linux/mstpd { };
+
+  mtdev = callPackage ../development/libraries/mtdev { };
+
+  mtpfs = callPackage ../tools/filesystems/mtpfs { };
+
+  mtxclient = callPackage ../development/libraries/mtxclient { };
+
+  mu = callPackage ../tools/networking/mu { };
+
+  mueval = callPackage ../development/tools/haskell/mueval { };
+
+  mujoco = callPackage ../applications/science/robotics/mujoco { };
+
+  muparser = callPackage ../development/libraries/muparser {
+    inherit (darwin.stubs) setfile;
+  };
+
+  muparserx = callPackage ../development/libraries/muparserx { };
+
+  mutest = callPackage ../development/libraries/mutest { };
+
+  mvapich = callPackage ../development/libraries/mvapich { };
+
+  mygpoclient = with python3.pkgs; toPythonApplication mygpoclient;
+
+  mygui = callPackage ../development/libraries/mygui {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  mythes = callPackage ../development/libraries/mythes { };
+
+  nanodbc = callPackage ../development/libraries/nanodbc { };
+
+  nanoflann = callPackage ../development/libraries/nanoflann { };
+
+  nanomsg = callPackage ../development/libraries/nanomsg { };
+
+  nanosvg = callPackage ../development/libraries/nanosvg { };
+
+  nanovna-saver = libsForQt5.callPackage ../applications/science/electronics/nanovna-saver { };
+
+  nanotts = callPackage ../tools/audio/nanotts { };
+
+  ncnn = callPackage ../development/libraries/ncnn { };
+
+  ndpi = callPackage ../development/libraries/ndpi { };
+
+  nemo-qml-plugin-dbus = libsForQt5.callPackage ../development/libraries/nemo-qml-plugin-dbus { };
+
+  netflix = callPackage ../applications/video/netflix { };
+
+  nifticlib = callPackage ../development/libraries/science/biology/nifticlib { };
+
+  notify-sharp = callPackage ../development/libraries/notify-sharp { };
+
+  notcurses = callPackage ../development/libraries/notcurses { };
+
+  ncurses5 = ncurses.override {
+    abiVersion = "5";
+  };
+  ncurses6 = ncurses.override {
+    abiVersion = "6";
+  };
+  ncurses =
+    if stdenv.hostPlatform.useiOSPrebuilt
+    then null
+    else callPackage ../development/libraries/ncurses { };
+
+  ndi = callPackage ../development/libraries/ndi { };
+
+  neardal = callPackage ../development/libraries/neardal { };
+
+  neatvnc = callPackage ../development/libraries/neatvnc { };
+
+  neon = callPackage ../development/libraries/neon { };
+
+  nettle = import ../development/libraries/nettle { inherit callPackage fetchurl; };
+
+  newman = callPackage ../development/web/newman { };
+
+  newt = callPackage ../development/libraries/newt { python = python3; };
+
+  nghttp2 = callPackage ../development/libraries/nghttp2 { };
+  libnghttp2 = nghttp2.lib;
+
+  nghttp3 = callPackage ../development/libraries/nghttp3 { };
+
+  ngtcp2 = callPackage ../development/libraries/ngtcp2 { };
+  ngtcp2-gnutls = callPackage ../development/libraries/ngtcp2/gnutls.nix { };
+
+  nix-plugins = callPackage ../development/libraries/nix-plugins { };
+
+  nika-fonts = callPackage ../data/fonts/nika-fonts { };
+
+  nikto = callPackage ../tools/networking/nikto { };
+
+  nlohmann_json = callPackage ../development/libraries/nlohmann_json { };
+
+  nng = callPackage ../development/libraries/nng { };
+
+  nntp-proxy = callPackage ../applications/networking/nntp-proxy { };
+
+  non = callPackage ../applications/audio/non { };
+
+  ntl = callPackage ../development/libraries/ntl { };
+
+  nspr = callPackage ../development/libraries/nspr {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  nss_latest = callPackage ../development/libraries/nss/latest.nix { };
+  nss_esr = callPackage ../development/libraries/nss/esr.nix { };
+  nss = nss_esr;
+  nssTools = nss.tools;
+
+  nss_wrapper = callPackage ../development/libraries/nss_wrapper { };
+
+  ntbtls = callPackage ../development/libraries/ntbtls { };
+
+  ntk = callPackage ../development/libraries/audio/ntk { };
+
+  numcpp = callPackage ../development/libraries/numcpp { };
+
+  nuraft = callPackage ../development/libraries/nuraft { };
+
+  nuspell = callPackage ../development/libraries/nuspell { };
+  nuspellWithDicts = dicts: callPackage ../development/libraries/nuspell/wrapper.nix { inherit dicts; };
+
+  nv-codec-headers = callPackage ../development/libraries/nv-codec-headers { };
+  nv-codec-headers-10 = callPackage ../development/libraries/nv-codec-headers/10_x.nix { };
+  nv-codec-headers-11 = callPackage ../development/libraries/nv-codec-headers/11_x.nix { };
+  nv-codec-headers-12 = callPackage ../development/libraries/nv-codec-headers/12_x.nix { };
+
+  mkNvidiaContainerPkg = { name, containerRuntimePath, configTemplate, additionalPaths ? [] }:
+    let
+      nvidia-container-toolkit = callPackage ../applications/virtualization/nvidia-container-toolkit {
+        inherit containerRuntimePath configTemplate libnvidia-container;
+      };
+      libnvidia-container =(callPackage ../applications/virtualization/libnvidia-container { });
+    in symlinkJoin {
+      inherit name;
+      paths = [
+        libnvidia-container
+        nvidia-container-toolkit
+      ] ++ additionalPaths;
+    };
+
+  nvidia-docker = mkNvidiaContainerPkg {
+    name = "nvidia-docker";
+    containerRuntimePath = "${docker}/libexec/docker/runc";
+    configTemplate = ../applications/virtualization/nvidia-docker/config.toml;
+    additionalPaths = [ (callPackage ../applications/virtualization/nvidia-docker { }) ];
+  };
+
+  nvidia-podman = mkNvidiaContainerPkg {
+    name = "nvidia-podman";
+    containerRuntimePath = "${runc}/bin/runc";
+    configTemplate = ../applications/virtualization/nvidia-podman/config.toml;
+  };
+
+  nvidia-texture-tools = callPackage ../development/libraries/nvidia-texture-tools { };
+
+  nvidia-vaapi-driver = lib.hiPrio (callPackage ../development/libraries/nvidia-vaapi-driver { });
+
+  nvidia-optical-flow-sdk = callPackage ../development/libraries/nvidia-optical-flow-sdk { };
+
+  nvidia-system-monitor-qt = libsForQt5.callPackage ../tools/system/nvidia-system-monitor-qt { };
+
+  nvitop = callPackage ../tools/system/nvitop { };
+
+  nvtop = callPackage ../tools/system/nvtop { };
+  nvtop-amd = (callPackage ../tools/system/nvtop {
+    amd = true;
+    intel = false;
+    msm = false;
+    nvidia = false;
+  }).overrideAttrs { pname = "nvtop-amd"; };
+  nvtop-intel = (callPackage ../tools/system/nvtop {
+    amd = false;
+    intel = true;
+    msm = false;
+    nvidia = false;
+  }).overrideAttrs { pname = "nvtop-intel"; };
+  nvtop-msm = (callPackage ../tools/system/nvtop {
+    amd = false;
+    intel = false;
+    msm = true;
+    nvidia = false;
+  }).overrideAttrs { pname = "nvtop-msm"; };
+  nvtop-nvidia = (callPackage ../tools/system/nvtop {
+    amd = false;
+    intel = false;
+    msm = false;
+    nvidia = true;
+  }).overrideAttrs { pname = "nvtop-nvidia"; };
+
+  ocl-icd = callPackage ../development/libraries/ocl-icd { };
+
+  ode = callPackage ../development/libraries/ode { };
+
+  inherit (callPackages ../development/libraries/ogre { })
+    ogre_13 ogre_14;
+
+  ogre = ogre_14;
+
+  olm = callPackage ../development/libraries/olm { };
+
+  one_gadget = callPackage ../development/tools/misc/one_gadget { };
+
+  oneDNN = callPackage ../development/libraries/oneDNN { };
+
+  oneDNN_2 = callPackage ../development/libraries/oneDNN/2.nix { };
+
+  onedrive = callPackage ../applications/networking/sync/onedrive { };
+
+  oneko = callPackage ../applications/misc/oneko { };
+
+  oniguruma = callPackage ../development/libraries/oniguruma { };
+
+  oobicpl = callPackage ../development/libraries/science/biology/oobicpl { };
+
+  ookla-speedtest = callPackage ../tools/networking/ookla-speedtest { };
+
+  open62541 = callPackage ../development/libraries/open62541 { };
+
+  openalSoft = callPackage ../development/libraries/openal-soft {
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit AudioToolbox;
+  };
+  openal = openalSoft;
+
+  openbabel = openbabel3;
+
+  openbabel2 = callPackage ../development/libraries/openbabel/2.nix { };
+
+  openbabel3 = callPackage ../development/libraries/openbabel {
+    python = python3;
+  };
+
+  opencascade-occt = callPackage ../development/libraries/opencascade-occt { };
+
+  opencl-headers = callPackage ../development/libraries/opencl-headers { };
+
+  opencl-clhpp = callPackage ../development/libraries/opencl-clhpp { };
+
+  opencollada = callPackage ../development/libraries/opencollada { };
+
+  opencore-amr = callPackage ../development/libraries/opencore-amr { };
+
+  opencsg = callPackage ../development/libraries/opencsg {
+    inherit (qt5) qmake;
+    inherit (darwin.apple_sdk.frameworks) GLUT;
+  };
+
+  openct = callPackage ../development/libraries/openct { };
+
+  opencv2 = callPackage ../development/libraries/opencv {
+    inherit (darwin.apple_sdk.frameworks) AVFoundation Cocoa QTKit Accelerate;
+    ffmpeg = ffmpeg_4;
+  };
+
+  opencv3 = callPackage ../development/libraries/opencv/3.x.nix {
+    inherit (darwin.apple_sdk.frameworks)
+      AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox Accelerate;
+    ffmpeg = ffmpeg_4;
+  };
+
+  opencv4 = callPackage ../development/libraries/opencv/4.x.nix {
+    inherit (darwin.apple_sdk.frameworks)
+      AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox Accelerate;
+    pythonPackages = python3Packages;
+  };
+
+  opencv4WithoutCuda = opencv4.override {
+    enableCuda = false;
+  };
+
+  opencv = opencv4;
+
+  imath = callPackage ../development/libraries/imath { };
+
+  openexr = openexr_2;
+  openexr_2 = callPackage ../development/libraries/openexr { };
+  openexr_3 = callPackage ../development/libraries/openexr/3.nix { };
+
+  openexrid-unstable = callPackage ../development/libraries/openexrid-unstable { };
+
+  openldap = callPackage ../development/libraries/openldap {
+    openssl = openssl_legacy;
+  };
+
+  opencolorio = darwin.apple_sdk_11_0.callPackage ../development/libraries/opencolorio {
+    inherit (darwin.apple_sdk_11_0.frameworks) Carbon GLUT Cocoa;
+  };
+  opencolorio_1 = callPackage ../development/libraries/opencolorio/1.x.nix { };
+
+  opendmarc = callPackage ../development/libraries/opendmarc { };
+
+  ois = callPackage ../development/libraries/ois {
+    inherit (darwin.apple_sdk.frameworks) Cocoa IOKit Kernel;
+  };
+
+  openh264 = callPackage ../development/libraries/openh264 { };
+
+  openjpeg = callPackage ../development/libraries/openjpeg { };
+
+  openpa = callPackage ../development/libraries/openpa { };
+
+  openpgp-card-tools = callPackage ../tools/security/openpgp-card-tools {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  opensaml-cpp = callPackage ../development/libraries/opensaml-cpp { };
+
+  openscenegraph = callPackage ../development/libraries/openscenegraph {
+    inherit (darwin.apple_sdk.frameworks) AGL Accelerate Carbon Cocoa Foundation;
+  };
+
+  openslide = callPackage ../development/libraries/openslide { };
+
+  openslp = callPackage ../development/libraries/openslp { };
+
+  openstackclient = with python3Packages; toPythonApplication python-openstackclient;
+  glanceclient = with python3Packages; toPythonApplication python-glanceclient;
+  heatclient = with python3Packages; toPythonApplication python-heatclient;
+  ironicclient = with python3Packages; toPythonApplication python-ironicclient;
+  manilaclient = with python3Packages; toPythonApplication python-manilaclient;
+
+  openvdb = callPackage ../development/libraries/openvdb { };
+
+  openvr = callPackage ../development/libraries/openvr {
+    inherit (darwin.apple_sdk.frameworks) Foundation AppKit;
+  };
+
+  inherit (callPackages ../development/libraries/libressl { })
+    libressl_3_6
+    libressl_3_7
+    libressl_3_8;
+
+  libressl = libressl_3_8;
+
+  boringssl = callPackage ../development/libraries/boringssl { };
+
+  wolfssl = darwin.apple_sdk_11_0.callPackage ../development/libraries/wolfssl {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+  };
+
+  openssl = openssl_3;
+
+  openssl_legacy = openssl.override {
+    conf = ../development/libraries/openssl/3.0/legacy.cnf;
+  };
+
+  inherit (callPackages ../development/libraries/openssl { })
+    openssl_1_1
+    openssl_3
+    openssl_3_1;
+
+  opensubdiv = callPackage ../development/libraries/opensubdiv { };
+
+  opensupaplex = callPackage ../games/opensupaplex { };
+
+  openturns = callPackage ../development/libraries/openturns {
+      inherit (darwin.apple_sdk.frameworks) Accelerate;
+  };
+
+  open-wbo = callPackage ../applications/science/logic/open-wbo { };
+
+  openwsman = callPackage ../development/libraries/openwsman { };
+
+  ortp = callPackage ../development/libraries/ortp { };
+
+  openhmd = callPackage ../development/libraries/openhmd { };
+
+  openwebrx = callPackage ../applications/radio/openwebrx {
+    inherit (python3Packages)
+    buildPythonPackage buildPythonApplication setuptools pycsdr pydigiham;
+  };
+
+  optparse-bash = callPackage ../development/libraries/optparse-bash { };
+
+  oras = callPackage ../development/tools/oras { };
+
+  orcania = callPackage ../development/libraries/orcania { };
+
+  orogene = callPackage ../development/tools/misc/orogene { };
+
+  osm-gps-map = callPackage ../development/libraries/osm-gps-map { };
+
+  osmid = callPackage ../applications/audio/osmid { };
+
+  osinfo-db = callPackage ../data/misc/osinfo-db { };
+  osinfo-db-tools = callPackage ../tools/misc/osinfo-db-tools { };
+
+  pacemaker = callPackage ../misc/logging/pacemaker { };
+
+  p11-kit = callPackage ../development/libraries/p11-kit { };
+
+  paperkey = callPackage ../tools/security/paperkey { };
+
+  parsero = callPackage ../tools/security/parsero { };
+
+  pcaudiolib = callPackage ../development/libraries/pcaudiolib { };
+
+  pcg_c = callPackage ../development/libraries/pcg-c { };
+
+  pcl = libsForQt5.callPackage ../development/libraries/pcl {
+    inherit (darwin.apple_sdk.frameworks) Cocoa AGL OpenGL;
+  };
+
+  pcre = callPackage ../development/libraries/pcre { };
+  pcre16 = res.pcre.override { variant = "pcre16"; };
+  # pcre32 seems unused
+  pcre-cpp = res.pcre.override { variant = "cpp"; };
+
+  pcre2 = callPackage ../development/libraries/pcre2 { };
+
+  pdal = callPackage ../development/libraries/pdal { };
+
+  pdfhummus = libsForQt5.callPackage ../development/libraries/pdfhummus { };
+
+  pe-parse = callPackage ../development/libraries/pe-parse { };
+
+  phetch = callPackage ../applications/networking/gopher/phetch {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  inherit (callPackage ../development/libraries/physfs {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  })
+    physfs_2
+    physfs;
+
+  pico-sdk = callPackage ../development/libraries/pico-sdk { };
+
+  pinocchio = callPackage ../development/libraries/pinocchio { };
+
+  pipelight = callPackage ../tools/misc/pipelight {
+    stdenv = stdenv_32bit;
+    wine-staging = pkgsi686Linux.wine-staging;
+  };
+
+  pkcs11helper = callPackage ../development/libraries/pkcs11helper { };
+
+  pkgdiff = callPackage ../tools/misc/pkgdiff { };
+
+  pkgtop = callPackage ../tools/misc/pkgtop { };
+
+  place-cursor-at = haskell.lib.compose.justStaticExecutables haskellPackages.place-cursor-at;
+
+  platform-folders = callPackage ../development/libraries/platform-folders { };
+
+  plib = callPackage ../development/libraries/plib { };
+
+  poco = callPackage ../development/libraries/poco { };
+
+  podofo = callPackage ../development/libraries/podofo { };
+
+  podofo010 = callPackage ../development/libraries/podofo/0.10.x.nix { };
+
+  polkit = callPackage ../development/libraries/polkit { };
+
+  poppler = callPackage ../development/libraries/poppler { lcms = lcms2; };
+
+  poppler_gi = lowPrio (poppler.override {
+    introspectionSupport = true;
+  });
+
+  poppler_min = poppler.override { # TODO: maybe reduce even more
+    minimal = true;
+    suffix = "min";
+  };
+
+  poppler_utils = poppler.override {
+    suffix = "utils";
+    utils = true;
+  };
+
+  popt = callPackage ../development/libraries/popt { };
+
+  portaudio = callPackage ../development/libraries/portaudio {
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreAudio CoreServices Carbon;
+  };
+
+  portmidi = callPackage ../development/libraries/portmidi {
+    inherit (darwin.apple_sdk.frameworks) Carbon CoreAudio CoreFoundation CoreMIDI CoreServices;
+  };
+
+  presage = callPackage ../development/libraries/presage { };
+
+  present = callPackage ../misc/present { };
+
+  prime-server = callPackage ../development/libraries/prime-server { };
+
+  primecount = callPackage ../applications/science/math/primecount { };
+
+  primesieve = callPackage ../applications/science/math/primesieve { };
+
+  proj = callPackage ../development/libraries/proj {
+    stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_13.stdenv else stdenv;
+  };
+
+  proj_7 = callPackage ../development/libraries/proj/7.nix { };
+
+  proj-datumgrid = callPackage ../development/libraries/proj-datumgrid { };
+
+  proselint = callPackage ../tools/text/proselint {
+    inherit (python3Packages)
+    buildPythonApplication click future six;
+  };
+
+  prospector = callPackage ../development/tools/prospector { };
+
+  protobuf = protobuf_24;
+
+  protobuf_25 = callPackage ../development/libraries/protobuf/25.nix {
+    abseil-cpp = abseil-cpp_202308;
+  };
+  protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
+  protobuf_23 = callPackage ../development/libraries/protobuf/23.nix { };
+  protobuf_21 = callPackage ../development/libraries/protobuf/21.nix {
+    abseil-cpp = abseil-cpp_202103;
+  };
+
+  protobuf3_20 = callPackage ../development/libraries/protobuf/3.20.nix {
+    abseil-cpp = abseil-cpp_202103;
+  };
+
+  protobufc = callPackage ../development/libraries/protobufc { };
+
+  protolock = callPackage ../development/libraries/protolock { };
+
+  protozero = callPackage ../development/libraries/protozero { };
+
+  flatbuffers = callPackage ../development/libraries/flatbuffers { };
+
+  nanopb = callPackage ../development/libraries/nanopb { };
+  nanopbMalloc = callPackage ../development/libraries/nanopb { mallocBuild = true; };
+
+  gnupth = callPackage ../development/libraries/pth { };
+  pth = if stdenv.hostPlatform.isMusl then npth else gnupth;
+
+  pslib = callPackage ../development/libraries/pslib { };
+
+  pstreams = callPackage ../development/libraries/pstreams { };
+
+  pufferpanel = callPackage ../servers/pufferpanel { };
+
+  pugixml = callPackage ../development/libraries/pugixml { };
+
+  pylode = callPackage ../misc/pylode { };
+
+  python-qt = callPackage ../development/libraries/python-qt {
+    python = python3;
+    inherit (qt5) qmake qttools qtwebengine qtxmlpatterns;
+  };
+
+  pyotherside = libsForQt5.callPackage ../development/libraries/pyotherside { };
+
+  plasma-hud = callPackage ../misc/plasma-hud { };
+
+  re2 = callPackage ../development/libraries/re2 { };
+
+  qbs = libsForQt5.callPackage ../development/tools/build-managers/qbs { };
+
+  qdjango = libsForQt5.callPackage ../development/libraries/qdjango { };
+
+  qmenumodel = libsForQt5.callPackage ../development/libraries/qmenumodel {
+    inherit (lomiri) cmake-extras;
+  };
+
+  qoi = callPackage ../development/libraries/qoi { };
+
+  qolibri = libsForQt5.callPackage ../applications/misc/qolibri { };
+
+  quarto = callPackage ../development/libraries/quarto { };
+
+  quartoMinimal = callPackage ../development/libraries/quarto { rWrapper = null; python3 = null; };
+
+  qt5 = recurseIntoAttrs (makeOverridable
+    (import ../development/libraries/qt-5/5.15) {
+      inherit (__splicedPackages)
+        makeScopeWithSplicing' generateSplicesForMkScope lib fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper
+        bison cups dconf harfbuzz libGL perl gtk3 python3
+        llvmPackages_15 overrideSDK overrideLibcxx
+        darwin;
+      inherit (__splicedPackages.gst_all_1) gstreamer gst-plugins-base;
+      inherit config;
+      stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+    });
+
+  libsForQt5 = (recurseIntoAttrs (import ./qt5-packages.nix {
+    inherit lib __splicedPackages makeScopeWithSplicing' generateSplicesForMkScope pkgsHostTarget;
+  })) // { __recurseIntoDerivationForReleaseJobs = true; };
+
+  # plasma5Packages maps to the Qt5 packages set that is used to build the plasma5 desktop
+  plasma5Packages = libsForQt5;
+
+  qtEnv = qt5.env;
+  qt5Full = qt5.full;
+
+  qt6 = recurseIntoAttrs (callPackage ../development/libraries/qt-6 { });
+
+  qt6Packages = recurseIntoAttrs (import ./qt6-packages.nix {
+    inherit lib __splicedPackages makeScopeWithSplicing' generateSplicesForMkScope pkgsHostTarget;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  });
+
+  quark-engine = callPackage ../tools/security/quark-engine { };
+
+  quantlib = callPackage ../development/libraries/quantlib { };
+
+  quesoglc = callPackage ../development/libraries/quesoglc { };
+
+  quickder = callPackage ../development/libraries/quickder { };
+
+  quickmem = callPackage ../development/libraries/quickmem { };
+
+  quicksynergy = callPackage ../applications/misc/quicksynergy { };
+
+  quill = callPackage ../tools/security/quill {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  qv2ray = libsForQt5.callPackage ../applications/networking/qv2ray { };
+
+  rabbitmq-c = callPackage ../development/libraries/rabbitmq-c { };
+
+  raft-canonical = callPackage ../development/libraries/raft-canonical { };
+
+  range-v3 = callPackage ../development/libraries/range-v3 { };
+
+  rabbitmq-java-client = callPackage ../development/libraries/rabbitmq-java-client {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  rapidcheck = callPackage ../development/libraries/rapidcheck { };
+
+  rapidfuzz-cpp = callPackage ../development/libraries/rapidfuzz-cpp { };
+
+  rapidjson = callPackage ../development/libraries/rapidjson { };
+
+  rapidjson-unstable = callPackage ../development/libraries/rapidjson/unstable.nix { };
+
+  rapidxml = callPackage ../development/libraries/rapidxml { };
+
+  rapidyaml = callPackage ../development/libraries/rapidyaml {};
+
+  raul = callPackage ../development/libraries/audio/raul { };
+
+  raylib = callPackage ../development/libraries/raylib { };
+
+  readline = readline82;
+
+  readline63 = callPackage ../development/libraries/readline/6.3.nix { };
+
+  readline70 = callPackage ../development/libraries/readline/7.0.nix { };
+
+  readline82 = callPackage ../development/libraries/readline/8.2.nix { };
+
+  readmdict = with python3Packages; toPythonApplication readmdict;
+
+  readosm = callPackage ../development/libraries/readosm { };
+
+  recastnavigation = callPackage ../development/libraries/recastnavigation { };
+
+  rinutils = callPackage ../development/libraries/rinutils { };
+
+  rtrlib = callPackage ../development/libraries/rtrlib { };
+
+  kissfft = callPackage ../development/libraries/kissfft { };
+  kissfftFloat = kissfft.override {
+    datatype = "float";
+  };
+
+  lambdabot = callPackage ../development/tools/haskell/lambdabot {
+    haskellLib = haskell.lib.compose;
+  };
+
+  lambda-mod-zsh-theme = callPackage ../shells/zsh/lambda-mod-zsh-theme { };
+
+  librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
+
+  librdf_raptor2 = callPackage ../development/libraries/librdf/raptor2.nix { };
+
+  librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
+
+  librdf_redland = callPackage ../development/libraries/librdf/redland.nix { };
+  redland = librdf_redland; # added 2018-04-25
+
+  libsmf = callPackage ../development/libraries/audio/libsmf { };
+
+  lilv = callPackage ../development/libraries/audio/lilv { };
+
+  lv2 = callPackage ../development/libraries/audio/lv2 { };
+
+  lvtk = callPackage ../development/libraries/audio/lvtk { };
+
+  qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
+
+  qradiolink = callPackage ../applications/radio/qradiolink {
+    protobuf = protobuf_21;
+  };
+
+  qrupdate = callPackage ../development/libraries/qrupdate { };
+
+  qadwaitadecorations-qt6 = callPackage ../by-name/qa/qadwaitadecorations/package.nix {
+    useQt6 = true;
+  };
+
+  qgnomeplatform = libsForQt5.callPackage ../development/libraries/qgnomeplatform { };
+
+  qgnomeplatform-qt6 = qt6Packages.callPackage ../development/libraries/qgnomeplatform {
+    useQt6 = true;
+  };
+
+  randomx = darwin.apple_sdk_11_0.callPackage ../development/libraries/randomx { };
+
+  remodel = callPackage ../development/tools/remodel {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  retro-gtk = callPackage ../development/libraries/retro-gtk { };
+
+  resolv_wrapper = callPackage ../development/libraries/resolv_wrapper { };
+
+  restinio = callPackage ../development/libraries/restinio { };
+
+  restish = callPackage ../tools/networking/restish { };
+
+  rhino = callPackage ../development/libraries/java/rhino {
+    javac = jdk8;
+    jvm = jre8;
+  };
+
+  rlog = callPackage ../development/libraries/rlog { };
+
+  rlottie = callPackage ../development/libraries/rlottie { };
+
+  rocksdb = callPackage ../development/libraries/rocksdb { };
+
+  rocksdb_7_10 = rocksdb.overrideAttrs rec {
+    pname = "rocksdb";
+    version = "7.10.2";
+    src = fetchFromGitHub {
+      owner = "facebook";
+      repo = pname;
+      rev = "v${version}";
+     hash = "sha256-U2ReSrJwjAXUdRmwixC0DQXht/h/6rV8SOf5e2NozIs=";
+   };
+  };
+
+  rocksdb_6_23 = rocksdb.overrideAttrs rec {
+    pname = "rocksdb";
+    version = "6.23.3";
+    src = fetchFromGitHub {
+      owner = "facebook";
+      repo = pname;
+      rev = "v${version}";
+     hash = "sha256-SsDqhjdCdtIGNlsMj5kfiuS3zSGwcxi4KV71d95h7yk=";
+   };
+  };
+
+  rotate-backups = callPackage ../tools/backup/rotate-backups { };
+
+  rote = callPackage ../development/libraries/rote { };
+
+  round = callPackage ../applications/graphics/round { };
+
+  ronn = callPackage ../development/tools/ronn { };
+
+  router = callPackage ../servers/http/router { };
+
+  rover = callPackage ../development/tools/rover { };
+
+  rqlite = callPackage ../servers/sql/rqlite { };
+
+  rshell = python3.pkgs.callPackage ../development/embedded/rshell { };
+
+  rtlcss = callPackage ../development/libraries/rtlcss { };
+
+  rttr = callPackage ../development/libraries/rttr { };
+
+  rubberband = callPackage ../development/libraries/rubberband { };
+
+  rure = callPackage ../development/libraries/rure { };
+
+  rustc-demangle = callPackage ../development/libraries/rustc-demangle { };
+
+  rustls-ffi = callPackage ../development/libraries/rustls-ffi {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  s2geometry = callPackage ../development/libraries/s2geometry { };
+
+  safefile = callPackage ../development/libraries/safefile { };
+
+  sbc = callPackage ../development/libraries/sbc { };
+
+  schroedinger = callPackage ../development/libraries/schroedinger {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  scope-lite = callPackage ../development/libraries/scope-lite { };
+
+  SDL_classic = callPackage ../development/libraries/SDL ({
+    inherit (darwin.apple_sdk.frameworks) OpenGL CoreAudio CoreServices AudioUnit Kernel Cocoa GLUT;
+  } // lib.optionalAttrs stdenv.hostPlatform.isAndroid {
+    # libGLU doesn’t work with Android’s SDL
+    libGLU = null;
+  });
+
+  SDL_compat = callPackage ../development/libraries/SDL_compat {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  SDL = SDL_classic;
+
+  SDL_audiolib = callPackage ../development/libraries/SDL_audiolib { };
+
+  SDL_sixel = callPackage ../development/libraries/SDL_sixel { };
+
+  SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
+
+  SDL_gpu = callPackage ../development/libraries/SDL_gpu { };
+
+  SDL_image = callPackage ../development/libraries/SDL_image { };
+
+  SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
+
+  SDL_net = callPackage ../development/libraries/SDL_net { };
+
+  SDL_Pango = callPackage ../development/libraries/SDL_Pango { };
+
+  SDL_sound = callPackage ../development/libraries/SDL_sound { };
+
+  SDL_stretch= callPackage ../development/libraries/SDL_stretch { };
+
+  SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
+
+  SDL2 = callPackage ../development/libraries/SDL2 {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL;
+  };
+
+  SDL2_image = callPackage ../development/libraries/SDL2_image {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+  SDL2_image_2_0_5 = SDL2_image.override({ # Pinned for pygame, toppler
+    version = "2.0.5";
+    hash = "sha256-vdX24CZoL31+G+C2BRsgnaL0AqLdi9HEvZwlrSYxCNA";
+  });
+
+  SDL2_mixer = callPackage ../development/libraries/SDL2_mixer {
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit AudioToolbox;
+  };
+  # SDL2_mixer_2_0 pinned for lzwolf
+  SDL2_mixer_2_0 = callPackage ../development/libraries/SDL2_mixer/2_0.nix { };
+
+  SDL2_net = callPackage ../development/libraries/SDL2_net { };
+
+  SDL2_gfx = callPackage ../development/libraries/SDL2_gfx { };
+
+  SDL2_sound = callPackage ../development/libraries/SDL2_sound {
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox CoreAudio;
+  };
+
+  SDL2_ttf = callPackage ../development/libraries/SDL2_ttf { };
+
+  sdrplay = callPackage ../applications/radio/sdrplay { };
+
+  sdrpp = callPackage ../applications/radio/sdrpp {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  sigdigger = libsForQt5.callPackage ../applications/radio/sigdigger { };
+
+  sigutils = callPackage ../applications/radio/sigutils { };
+
+  sblim-sfcc = callPackage ../development/libraries/sblim-sfcc { };
+
+  selinux-sandbox = callPackage ../os-specific/linux/selinux-sandbox { };
+
+  sealcurses = callPackage ../development/libraries/sealcurses { };
+
+  seasocks = callPackage ../development/libraries/seasocks { };
+
+  semver-cpp = callPackage ../development/libraries/semver-cpp { };
+
+  serd = callPackage ../development/libraries/serd { };
+
+  serf = callPackage ../development/libraries/serf { };
+
+  sfsexp = callPackage ../development/libraries/sfsexp { };
+
+  shhmsg = callPackage ../development/libraries/shhmsg { };
+
+  shhopt = callPackage ../development/libraries/shhopt { };
+
+  shine = callPackage ../development/libraries/shine { };
+
+  graphite2 = callPackage ../development/libraries/silgraphite/graphite2.nix { };
+
+  s2n-tls = callPackage ../development/libraries/s2n-tls { };
+
+  simavr = callPackage ../development/tools/simavr {
+    avrgcc = pkgsCross.avr.buildPackages.gcc;
+    avrlibc = pkgsCross.avr.libcCross;
+    inherit (darwin.apple_sdk.frameworks) GLUT;
+  };
+
+  simgear = callPackage ../development/libraries/simgear { };
+
+  simp_le = callPackage ../tools/admin/simp_le { };
+
+  simpleitk = callPackage ../development/libraries/simpleitk { lua = lua5_4; };
+
+  sioclient = callPackage ../development/libraries/sioclient { };
+
+  sfml = callPackage ../development/libraries/sfml {
+    inherit (darwin.apple_sdk.frameworks) IOKit Foundation AppKit OpenAL;
+  };
+  csfml = callPackage ../development/libraries/csfml { };
+
+  shapelib = callPackage ../development/libraries/shapelib { };
+
+  sharness = callPackage ../development/libraries/sharness { };
+
+  shibboleth-sp = callPackage ../development/libraries/shibboleth-sp { };
+
+  skaffold = callPackage ../development/tools/skaffold { };
+
+  skjold = callPackage ../development/tools/skjold { };
+
+  skawarePackages = recurseIntoAttrs (callPackage ../development/skaware-packages { });
+
+  inherit (skawarePackages)
+    execline
+    execline-man-pages
+    mdevd
+    nsss
+    s6
+    s6-dns
+    s6-linux-init
+    s6-linux-utils
+    s6-man-pages
+    s6-networking
+    s6-networking-man-pages
+    s6-portable-utils
+    s6-portable-utils-man-pages
+    s6-rc
+    s6-rc-man-pages
+    sdnotify-wrapper
+    skalibs
+    skalibs_2_10
+    tipidee
+    utmps;
+
+  kgt = callPackage ../development/tools/kgt {
+    inherit (skawarePackages) cleanPackaging;
+  };
+
+  nettee = callPackage ../tools/networking/nettee {
+    inherit (skawarePackages) cleanPackaging;
+  };
+
+  shaq = callPackage ../tools/audio/shaq { };
+
+  slang = callPackage ../development/libraries/slang { };
+
+  slibGuile = callPackage ../development/libraries/slib {
+    scheme = guile;
+  };
+
+  smpeg = callPackage ../development/libraries/smpeg { };
+
+  smpeg2 = callPackage ../development/libraries/smpeg2 { };
+
+  snappy = callPackage ../development/libraries/snappy { };
+
+  snac2 = darwin.apple_sdk_11_0.callPackage ../servers/snac2 { };
+
+  snappymail = callPackage ../servers/snappymail { };
+
+  snow = callPackage ../tools/security/snow { };
+
+  snowcrash = callPackage ../tools/security/snowcrash { };
+
+  soapyairspy = callPackage ../applications/radio/soapyairspy {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  soapyaudio = callPackage ../applications/radio/soapyaudio {
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreAudio;
+  };
+
+  soapybladerf = callPackage ../applications/radio/soapybladerf {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  soapyhackrf = callPackage ../applications/radio/soapyhackrf {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  soapysdr = callPackage ../applications/radio/soapysdr { };
+
+  soapyremote = callPackage ../applications/radio/soapyremote { };
+
+  soapysdrplay = callPackage ../applications/radio/soapysdrplay { };
+
+  soapysdr-with-plugins = callPackage ../applications/radio/soapysdr {
+    extraPackages = [
+      limesuite
+      soapyairspy
+      soapyaudio
+      soapybladerf
+      soapyhackrf
+      soapyremote
+      soapyrtlsdr
+      soapyuhd
+    ];
+  };
+
+  soapyrtlsdr = callPackage ../applications/radio/soapyrtlsdr {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  soapyuhd = callPackage ../applications/radio/soapyuhd {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit Security;
+  };
+
+  social-engineer-toolkit = callPackage ../tools/security/social-engineer-toolkit { };
+
+  socket_wrapper = callPackage ../development/libraries/socket_wrapper { };
+
+  soco-cli = callPackage ../tools/audio/soco-cli { };
+
+  sofia_sip = callPackage ../development/libraries/sofia-sip {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
+  soil = callPackage ../development/libraries/soil {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  sokol = callPackage ../development/libraries/sokol { };
+
+  sonic = callPackage ../development/libraries/sonic { };
+
+  sonivox = callPackage ../development/libraries/sonivox { };
+
+  sope = callPackage ../development/libraries/sope { };
+
+  sord = callPackage ../development/libraries/sord { };
+
+  soundtouch = callPackage ../development/libraries/soundtouch { };
+
+  span-lite = callPackage ../development/libraries/span-lite { };
+
+  spandsp = callPackage ../development/libraries/spandsp { };
+  spandsp3 = callPackage ../development/libraries/spandsp/3.nix { };
+
+  spaceship-prompt = callPackage ../shells/zsh/spaceship-prompt { };
+
+  sparrow3d = callPackage ../development/libraries/sparrow3d {};
+
+  spdk = callPackage ../development/libraries/spdk { };
+
+  speechd = callPackage ../development/libraries/speechd { };
+
+  speech-tools = callPackage ../development/libraries/speech-tools {
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
+  };
+
+  speex = callPackage ../development/libraries/speex {
+    fftw = fftwFloat;
+  };
+
+  speexdsp = callPackage ../development/libraries/speexdsp {
+    fftw = fftwFloat;
+  };
+
+  sphinx = with python3Packages; toPythonApplication sphinx;
+
+  sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild;
+
+  sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
+
+  inherit (python3Packages) sphinxHook;
+
+  sphinxsearch = callPackage ../servers/search/sphinxsearch { };
+
+  spice = callPackage ../development/libraries/spice { };
+
+  spice-gtk = callPackage ../development/libraries/spice-gtk { };
+
+  spice-protocol = callPackage ../development/libraries/spice-protocol { };
+
+  spice-up = callPackage ../applications/office/spice-up { };
+
+  spirv-cross = callPackage ../tools/graphics/spirv-cross { };
+
+  splat = callPackage ../applications/radio/splat { };
+
+  suscan = callPackage ../applications/radio/suscan { };
+
+  suwidgets = libsForQt5.callPackage ../applications/radio/suwidgets { };
+
+  sratom = callPackage ../development/libraries/audio/sratom { };
+
+  srm = callPackage ../tools/security/srm { };
+
+  srt = callPackage ../development/libraries/srt { };
+
+  srtp = callPackage ../development/libraries/srtp { };
+
+  stargate-libcds = callPackage ../development/libraries/stargate-libcds { };
+
+  stb = callPackage ../development/libraries/stb { };
+
+  stduuid = callPackage ../development/libraries/stduuid { };
+
+  steghide = callPackage ../tools/graphics/steghide { };
+
+  stegsolve = callPackage ../tools/graphics/stegsolve { };
+
+  StormLib = callPackage ../development/libraries/StormLib { };
+
+  stxxl = callPackage ../development/libraries/stxxl { };
+
+  sv-lang = callPackage ../applications/science/electronics/sv-lang { };
+
+  sqld = callPackage ../servers/sql/sqld { };
+
+  sqlite = lowPrio (callPackage ../development/libraries/sqlite { });
+
+  unqlite = lowPrio (callPackage ../development/libraries/unqlite { });
+
+  inherit (callPackage ../development/libraries/sqlite/tools.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  }) sqlite-analyzer sqldiff;
+
+  sqlar = callPackage ../development/libraries/sqlite/sqlar.nix { };
+
+  sqlitecpp = callPackage ../development/libraries/sqlitecpp { };
+
+  sqlite-interactive = (sqlite.override { interactive = true; }).bin;
+
+  sqlite-jdbc = callPackage ../servers/sql/sqlite/jdbc { };
+
+  sregex = callPackage ../development/libraries/sregex { };
+
+  dqlite = callPackage ../development/libraries/dqlite { };
+
+  sqlcipher = callPackage ../development/libraries/sqlcipher { };
+
+  standardnotes = callPackage ../applications/editors/standardnotes { };
+
+  stfl = callPackage ../development/libraries/stfl { };
+
+  stlink = callPackage ../development/tools/misc/stlink { };
+  stlink-gui = callPackage ../development/tools/misc/stlink { withGUI = true; };
+
+  stegseek = callPackage ../tools/security/stegseek { };
+
+  streamlink = callPackage ../applications/video/streamlink { };
+  streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix { };
+
+  sub-batch = callPackage ../applications/video/sub-batch { };
+
+  subdl = callPackage ../applications/video/subdl { };
+
+  subtitleedit = callPackage ../applications/video/subtitleedit { };
+
+  subtitleeditor = callPackage ../applications/video/subtitleeditor { };
+
+  subxt = callPackage ../development/tools/subxt { };
+
+  suil = darwin.apple_sdk_11_0.callPackage ../development/libraries/audio/suil { };
+
+  sundials = callPackage ../development/libraries/sundials {
+    python = python3;
+  };
+
+  sutils = callPackage ../tools/misc/sutils { };
+
+  svrcore = callPackage ../development/libraries/svrcore { };
+
+  svxlink = libsForQt5.callPackage ../applications/radio/svxlink { };
+
+  swiftclient = with python3Packages; toPythonApplication python-swiftclient;
+
+  sword = callPackage ../development/libraries/sword { };
+
+  biblesync = callPackage ../development/libraries/biblesync { };
+
+  szip = callPackage ../development/libraries/szip { };
+
+  t1lib = callPackage ../development/libraries/t1lib { };
+
+  tachyon = callPackage ../development/libraries/tachyon {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  tageditor = libsForQt5.callPackage ../applications/audio/tageditor { };
+
+  ta-lib = callPackage ../development/libraries/ta-lib { };
+
+  taglib = callPackage ../development/libraries/taglib { };
+
+  taglib_extras = callPackage ../development/libraries/taglib-extras { };
+
+  taglib-sharp = callPackage ../development/libraries/taglib-sharp { };
+
+  tanidvr = callPackage ../applications/video/tanidvr { };
+
+  talloc = callPackage ../development/libraries/talloc { };
+
+  tagparser = callPackage ../development/libraries/tagparser { };
+
+  taskflow = callPackage ../development/libraries/taskflow { };
+
+  tclap = tclap_1_2;
+
+  tclap_1_2 = callPackage ../development/libraries/tclap/1.2.nix { };
+
+  tclap_1_4 = callPackage ../development/libraries/tclap/1.4.nix { };
+
+  tcllib = callPackage ../development/libraries/tcllib { };
+
+  tcltls = callPackage ../development/libraries/tcltls { };
+
+  tclx = callPackage ../development/libraries/tclx { };
+
+  tcl-fcgi = callPackage ../development/libraries/tcl-fcgi { };
+
+  tdb = callPackage ../development/libraries/tdb { };
+
+  tdlib = callPackage ../development/libraries/tdlib { };
+
+  tecla = callPackage ../development/libraries/tecla { };
+
+  tectonic = callPackage ../tools/typesetting/tectonic {
+    harfbuzz = harfbuzzFull;
+  };
+
+  tepl = callPackage ../development/libraries/tepl { };
+
+  termbench-pro = callPackage ../development/libraries/termbench-pro { fmt = fmt_8; };
+
+  telepathy-glib = callPackage ../development/libraries/telepathy/glib { };
+
+  telepathy-farstream = callPackage ../development/libraries/telepathy/farstream { };
+
+  termbox = callPackage ../development/libraries/termbox { };
+
+  tevent = callPackage ../development/libraries/tevent { };
+
+  tet = callPackage ../development/tools/misc/tet { };
+
+  text-engine = callPackage ../development/libraries/text-engine { };
+
+  the-foundation = callPackage ../development/libraries/the-foundation { };
+
+  theft = callPackage ../development/libraries/theft { };
+
+  thrift = callPackage ../development/libraries/thrift { };
+
+  thrift-0_10 = callPackage ../development/libraries/thrift/0.10.nix { };
+
+  tidyp = callPackage ../development/libraries/tidyp { };
+
+  tidal-hifi = callPackage ../applications/audio/tidal-hifi { };
+
+  tinycdb = callPackage ../development/libraries/tinycdb { };
+
+  tinyxml = tinyxml2;
+
+  tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
+
+  tinyxml-2 = callPackage ../development/libraries/tinyxml-2 { };
+
+  tiscamera = callPackage ../os-specific/linux/tiscamera { };
+
+  tivodecode = callPackage ../applications/video/tivodecode { };
+
+  tix = callPackage ../development/libraries/tix { };
+
+  tk = tk-8_6;
+
+  tk-8_6 = callPackage ../development/libraries/tk/8.6.nix { };
+  tk-8_5 = callPackage ../development/libraries/tk/8.5.nix { tcl = tcl-8_5; };
+
+  tkimg = callPackage ../development/libraries/tkimg { };
+
+  tkrzw = callPackage ../development/libraries/tkrzw { };
+
+  tl-expected = callPackage ../development/libraries/tl-expected { };
+
+  tnt = callPackage ../development/libraries/tnt { };
+
+  tntnet = callPackage ../development/libraries/tntnet { };
+
+  tntdb = callPackage ../development/libraries/tntdb { };
+
+  kyotocabinet = callPackage ../development/libraries/kyotocabinet { };
+
+  tomlc99 = callPackage ../development/libraries/tomlc99 { };
+
+  tomlcpp = callPackage ../development/libraries/tomlcpp { };
+
+  toml11 = callPackage ../development/libraries/toml11 { };
+
+  tomlplusplus = callPackage ../development/libraries/tomlplusplus { };
+
+  tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
+
+  tokyotyrant = callPackage ../development/libraries/tokyo-tyrant { };
+
+  totem-pl-parser = callPackage ../development/libraries/totem-pl-parser { };
+
+  tpm2-tss = callPackage ../development/libraries/tpm2-tss {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  tremor = callPackage ../development/libraries/tremor { };
+
+  triehash = callPackage ../tools/misc/triehash { };
+
+  trillian = callPackage ../tools/misc/trillian { };
+
+  twolame = callPackage ../development/libraries/twolame { };
+
+  udns = callPackage ../development/libraries/udns { };
+
+  uid_wrapper = callPackage ../development/libraries/uid_wrapper { };
+
+  umockdev = callPackage ../development/libraries/umockdev { };
+
+  unconvert = callPackage ../development/tools/unconvert { };
+
+  uncover = callPackage ../tools/security/uncover { };
+
+  unibilium = callPackage ../development/libraries/unibilium { };
+
+  unicap = callPackage ../development/libraries/unicap { };
+
+  unicon-lang = callPackage ../development/interpreters/unicon-lang { };
+
+  updfparser = callPackage ../development/libraries/updfparser { };
+
+  tsocks = callPackage ../development/libraries/tsocks { };
+
+  unixODBC = callPackage ../development/libraries/unixODBC { };
+
+  unixODBCDrivers = recurseIntoAttrs (callPackages ../development/libraries/unixODBCDrivers { });
+
+  ustr = callPackage ../development/libraries/ustr { };
+
+  usrsctp = callPackage ../development/libraries/usrsctp { };
+
+  usbredir = callPackage ../development/libraries/usbredir { };
+
+  usbrip = callPackage ../tools/security/usbrip { };
+
+  uthash = callPackage ../development/libraries/uthash { };
+
+  uthenticode = callPackage ../development/libraries/uthenticode { };
+
+  ucommon = callPackage ../development/libraries/ucommon { };
+
+  v8 = callPackage ../development/libraries/v8 (
+    let
+      stdenv' = if stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc.cc) "16"
+        then overrideLibcxx llvmPackages_15.stdenv
+        else stdenv;
+    in
+    {
+      stdenv = if stdenv'.isDarwin then overrideSDK stdenv' "11.0" else stdenv';
+    }
+  );
+
+  intel-vaapi-driver = callPackage ../development/libraries/intel-vaapi-driver { };
+
+  vaapi-intel-hybrid = callPackage ../development/libraries/vaapi-intel-hybrid { };
+
+  vaapiVdpau = callPackage ../development/libraries/vaapi-vdpau { };
+
+  vale = callPackage ../tools/text/vale { };
+
+  valhalla = callPackage ../development/libraries/valhalla {
+    boost = boost.override { enablePython = true; python = python38; };
+    protobuf = protobuf_21.override {
+      abseil-cpp = abseil-cpp_202103.override {
+        cxxStandard = "17";
+      };
+    };
+  };
+
+  vamp-plugin-sdk = callPackage ../development/libraries/audio/vamp-plugin-sdk { };
+
+  vc = callPackage ../development/libraries/vc { };
+
+  vc_0_7 = callPackage ../development/libraries/vc/0.7.nix { };
+
+  vcdimager = callPackage ../development/libraries/vcdimager { };
+
+  vcg = callPackage ../development/libraries/vcg { };
+
+  vencord = callPackage ../misc/vencord { };
+
+  vencord-web-extension = callPackage ../misc/vencord { buildWebExtension = true; };
+
+  vid-stab = callPackage ../development/libraries/vid-stab {
+    inherit (llvmPackages) openmp;
+  };
+
+  vigra = callPackage ../development/libraries/vigra {
+    hdf5 = hdf5.override { usev110Api = true; };
+  };
+
+  vkd3d = callPackage ../development/libraries/vkd3d {};
+
+  vkd3d-proton = callPackage ../development/libraries/vkd3d-proton {};
+
+  vkdisplayinfo = callPackage ../tools/graphics/vkdisplayinfo { };
+
+  vkdt = callPackage ../applications/graphics/vkdt { };
+
+  vkdt-wayland = callPackage ../applications/graphics/vkdt { glfw = glfw-wayland; };
+
+  vlock = callPackage ../misc/screensavers/vlock { };
+
+  virtualpg = callPackage ../development/libraries/virtualpg { };
+
+  vmime = callPackage ../development/libraries/vmime { };
+
+  vrb = callPackage ../development/libraries/vrb { };
+
+  vrpn = callPackage ../development/libraries/vrpn { };
+
+  vsmtp = callPackage ../servers/mail/vsmtp { };
+
+  vsqlite = callPackage ../development/libraries/vsqlite { };
+
+  vte = callPackage ../development/libraries/vte { };
+
+  vte-gtk4 = vte.override {
+    gtkVersion = "4";
+  };
+
+  vtk_9 = libsForQt5.callPackage ../development/libraries/vtk/9.x.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.libs) xpc;
+    inherit (darwin.apple_sdk.frameworks) AGL Cocoa CoreServices DiskArbitration
+                                          IOKit CFNetwork Security ApplicationServices
+                                          CoreText IOSurface ImageIO OpenGL GLUT;
+  };
+
+  vtk_9_withQt5 = vtk_9.override { enableQt = true; };
+
+  vtk = vtk_9;
+  vtkWithQt5 = vtk_9_withQt5;
+
+  vulkan-caps-viewer = libsForQt5.callPackage ../tools/graphics/vulkan-caps-viewer { };
+
+  vulkan-cts = callPackage ../tools/graphics/vulkan-cts { };
+
+  vulkan-helper = callPackage ../tools/graphics/vulkan-helper { };
+
+  vulkan-extension-layer = callPackage ../tools/graphics/vulkan-extension-layer { };
+  vulkan-headers = callPackage ../development/libraries/vulkan-headers { };
+  vulkan-loader = callPackage ../development/libraries/vulkan-loader { inherit (darwin) moltenvk; };
+  vulkan-tools = callPackage ../tools/graphics/vulkan-tools {
+    inherit (darwin) moltenvk;
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
+  };
+  vulkan-tools-lunarg = callPackage ../tools/graphics/vulkan-tools-lunarg { };
+  vulkan-utility-libraries = callPackage ../development/libraries/vulkan-utility-libraries { };
+  vulkan-validation-layers = callPackage ../development/tools/vulkan-validation-layers { };
+
+  vxl = callPackage ../development/libraries/vxl { };
+
+  waffle = callPackage ../development/libraries/waffle { };
+
+  wally-cli = callPackage ../development/tools/wally-cli { };
+  zsa-udev-rules = callPackage ../os-specific/linux/zsa-udev-rules { };
+
+  wangle = callPackage ../development/libraries/wangle { };
+
+  wapp = callPackage ../development/libraries/wapp { };
+
+  wavpack = callPackage ../development/libraries/wavpack { };
+
+  wayland = darwin.apple_sdk_11_0.callPackage ../development/libraries/wayland { };
+  wayland-scanner = wayland.bin;
+
+  wayland-protocols = callPackage ../development/libraries/wayland/protocols.nix { };
+
+  waylandpp = callPackage ../development/libraries/waylandpp {
+    graphviz = graphviz-nox;
+  };
+
+  wcslib = callPackage ../development/libraries/science/astronomy/wcslib { };
+
+  webkitgtk = callPackage ../development/libraries/webkitgtk {
+    harfbuzz = harfbuzzFull;
+    inherit (gst_all_1) gst-plugins-base gst-plugins-bad;
+    inherit (darwin) apple_sdk;
+  };
+
+  webkitgtk_4_1 = webkitgtk.override {
+    libsoup = libsoup_3;
+  };
+
+  webkitgtk_6_0 = webkitgtk.override {
+    libsoup = libsoup_3;
+    gtk3 = gtk4;
+  };
+
+  webp-pixbuf-loader = callPackage ../development/libraries/webp-pixbuf-loader { };
+
+  websocketpp = callPackage ../development/libraries/websocket++ { };
+
+  wfa2-lib = callPackage ../development/libraries/wfa2-lib { };
+
+  webrtc-audio-processing_1 = callPackage ../development/libraries/webrtc-audio-processing { };
+  webrtc-audio-processing_0_3 = callPackage ../development/libraries/webrtc-audio-processing/0.3.nix { };
+  # bump when majoring of packages have updated
+  webrtc-audio-processing = webrtc-audio-processing_0_3;
+
+  whereami = callPackage ../development/libraries/whereami { };
+
+  where-is-my-sddm-theme = libsForQt5.callPackage ../data/themes/where-is-my-sddm-theme { };
+
+  wildmidi = callPackage ../development/libraries/wildmidi {
+    inherit (darwin.apple_sdk.frameworks) OpenAL;
+  };
+
+  wiredtiger = callPackage ../development/libraries/wiredtiger { };
+
+  wlr-protocols = callPackage ../development/libraries/wlroots/protocols.nix { };
+
+  wt = wt4;
+  inherit (libsForQt5.callPackage ../development/libraries/wt { })
+    wt4;
+
+  wxformbuilder = callPackage ../development/tools/wxformbuilder { };
+
+  wxGTK31 = callPackage ../development/libraries/wxwidgets/wxGTK31.nix {
+    inherit (darwin.stubs) setfile;
+    inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit AVFoundation AVKit WebKit;
+  };
+
+  wxGTK32 = callPackage ../development/libraries/wxwidgets/wxGTK32.nix {
+    inherit (darwin.stubs) setfile;
+    inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit AVFoundation AVKit WebKit;
+  };
+
+  wxSVG = callPackage ../development/libraries/wxSVG {
+    wxGTK = wxGTK32;
+  };
+
+  wtk = callPackage ../development/libraries/wtk { };
+
+  x264 = callPackage ../development/libraries/x264 { };
+
+  x265 = callPackage ../development/libraries/x265 { };
+
+  xandikos = callPackage ../servers/xandikos { };
+
+  inherit (callPackages ../development/libraries/xapian { })
+    xapian_1_4;
+  xapian = xapian_1_4;
+
+  xapian-omega = callPackage ../development/libraries/xapian/tools/omega {
+    libmagic = file;
+  };
+
+  xavs = callPackage ../development/libraries/xavs { };
+
+  Xaw3d = callPackage ../development/libraries/Xaw3d { };
+
+  xbase = callPackage ../development/libraries/xbase { };
+
+  xcb-util-cursor = xorg.xcbutilcursor;
+  xcb-util-cursor-HEAD = callPackage ../development/libraries/xcb-util-cursor/HEAD.nix { };
+
+  xcbutilxrm = callPackage ../servers/x11/xorg/xcb-util-xrm.nix { };
+
+  xdo = callPackage ../tools/misc/xdo { };
+
+  xdiskusage = callPackage ../tools/misc/xdiskusage { };
+
+  xed = callPackage ../development/libraries/xed { };
+
+  xedit = callPackage ../applications/editors/xedit { };
+
+  xautolock = callPackage ../misc/screensavers/xautolock { };
+
+  xercesc = callPackage ../development/libraries/xercesc { };
+
+  xalanc = callPackage ../development/libraries/xalanc { };
+
+  xgboost = callPackage ../development/libraries/xgboost { };
+
+  xgboostWithCuda = xgboost.override { cudaSupport = true; };
+
+  xgeometry-select = callPackage ../tools/X11/xgeometry-select { };
+
+  xmake-core-sv = callPackage ../development/libraries/xmake-core-sv { };
+
+  xmlada = callPackage ../development/libraries/ada/xmlada { };
+
+  xmlrpc_c = callPackage ../development/libraries/xmlrpc-c { };
+
+  xmlsec = callPackage ../development/libraries/xmlsec { };
+
+  xml-security-c = callPackage ../development/libraries/xml-security-c { };
+
+  xml-tooling-c = callPackage ../development/libraries/xml-tooling-c { };
+
+  xlslib = callPackage ../development/libraries/xlslib { };
+
+  xsimd = callPackage ../development/libraries/xsimd { };
+
+  xtensor = callPackage ../development/libraries/xtensor { };
+
+  xtl = callPackage ../development/libraries/xtl { };
+
+  xvidcore = callPackage ../development/libraries/xvidcore { };
+
+  xxHash = callPackage ../development/libraries/xxHash { };
+
+  xylib = callPackage ../development/libraries/xylib { };
+
+  yajl = callPackage ../development/libraries/yajl { };
+
+  yder = callPackage ../development/libraries/yder { };
+
+  yojimbo = callPackage ../development/libraries/yojimbo { };
+
+  yubico-pam = callPackage ../development/libraries/yubico-pam { };
+
+  yubico-piv-tool = callPackage ../tools/misc/yubico-piv-tool {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  yubihsm-connector = callPackage ../tools/security/yubihsm-connector { };
+
+  yubikey-manager4 = callPackage ../tools/misc/yubikey-manager/4.nix { };
+  yubikey-manager = callPackage ../tools/misc/yubikey-manager { };
+
+  yubikey-manager-qt = libsForQt5.callPackage ../tools/misc/yubikey-manager-qt { };
+
+  yubikey-personalization = callPackage ../tools/misc/yubikey-personalization { };
+
+  yubikey-personalization-gui = libsForQt5.callPackage ../tools/misc/yubikey-personalization-gui { };
+
+  yubikey-agent = callPackage ../tools/security/yubikey-agent { };
+
+  yubikey-touch-detector = callPackage ../tools/security/yubikey-touch-detector { };
+
+  yubihsm-shell = callPackage ../tools/security/yubihsm-shell { };
+
+  yubioath-flutter = callPackage ../applications/misc/yubioath-flutter { };
+
+  yyjson = callPackage ../development/libraries/yyjson { };
+
+  zchunk = callPackage ../development/libraries/zchunk { };
+
+  zeitgeist = callPackage ../development/libraries/zeitgeist { };
+
+  zlib = callPackage ../development/libraries/zlib { };
+
+  zlib-ng = callPackage ../development/libraries/zlib-ng { };
+
+  libdynd = callPackage ../development/libraries/libdynd { };
+
+  zlog = callPackage ../development/libraries/zlog { };
+
+  zeromq4 = callPackage ../development/libraries/zeromq/4.x.nix { };
+  zeromq = zeromq4;
+
+  cppzmq = callPackage ../development/libraries/cppzmq { };
+
+  czmq = callPackage ../development/libraries/czmq { };
+
+  zmqpp = callPackage ../development/libraries/zmqpp { };
+
+  libzra = callPackage ../development/libraries/libzra { };
+
+  # requires a newer Apple SDK
+  zig_0_9 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.9.nix {
+    llvmPackages = llvmPackages_13;
+  };
+  # requires a newer Apple SDK
+  zig_0_10 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.10.nix {
+    llvmPackages = llvmPackages_15;
+  };
+  # requires a newer Apple SDK
+  zig_0_11 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.11.nix {
+    llvmPackages = llvmPackages_16;
+  };
+  zig = zig_0_11;
+
+  zig-shell-completions = callPackage ../development/compilers/zig/shell-completions.nix { };
+
+  zimlib = callPackage ../development/libraries/zimlib { };
+
+  zita-convolver = callPackage ../development/libraries/audio/zita-convolver { };
+
+  zita-alsa-pcmi = callPackage ../development/libraries/audio/zita-alsa-pcmi { };
+
+  zita-resampler = callPackage ../development/libraries/audio/zita-resampler { };
+
+  zitadel-tools = callPackage ../tools/misc/zitadel-tools { };
+
+  zix = callPackage ../development/libraries/audio/zix { };
+
+  zz = callPackage ../development/compilers/zz { };
+
+  zziplib = callPackage ../development/libraries/zziplib { };
+
+  glpng = callPackage ../development/libraries/glpng { };
+
+  gsignond = callPackage ../development/libraries/gsignond {
+    plugins = [];
+  };
+
+  gsignondPlugins = recurseIntoAttrs {
+    sasl = callPackage ../development/libraries/gsignond/plugins/sasl.nix { };
+    oauth = callPackage ../development/libraries/gsignond/plugins/oauth.nix { };
+    lastfm = callPackage ../development/libraries/gsignond/plugins/lastfm.nix { };
+    mail = callPackage ../development/libraries/gsignond/plugins/mail.nix { };
+  };
+
+  plumed = callPackage ../development/libraries/science/chemistry/plumed { };
+
+  ### DEVELOPMENT / LIBRARIES / AGDA
+
+  agdaPackages = callPackage ./agda-packages.nix {
+    inherit (haskellPackages) Agda;
+  };
+  agda = agdaPackages.agda;
+
+  ### DEVELOPMENT / LIBRARIES / BASH
+
+  bash-preexec = callPackage ../development/libraries/bash/bash-preexec { };
+
+  ### DEVELOPMENT / LIBRARIES / JAVA
+
+  commonsBcel = callPackage ../development/libraries/java/commons/bcel { };
+
+  commonsBsf = callPackage ../development/libraries/java/commons/bsf { };
+
+  commonsCompress = callPackage ../development/libraries/java/commons/compress { };
+
+  commonsDaemon = callPackage ../development/libraries/java/commons/daemon { };
+
+  commonsFileUpload = callPackage ../development/libraries/java/commons/fileupload { };
+
+  commonsLang = callPackage ../development/libraries/java/commons/lang { };
+
+  commonsLogging = callPackage ../development/libraries/java/commons/logging { };
+
+  commonsIo = callPackage ../development/libraries/java/commons/io { };
+
+  commonsMath = callPackage ../development/libraries/java/commons/math { };
+
+  fastjar = callPackage ../development/tools/java/fastjar { };
+
+  jextract = callPackage ../development/tools/java/jextract { };
+
+  httpunit = callPackage ../development/libraries/java/httpunit { };
+
+  javaCup = callPackage ../development/libraries/java/cup {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  jdom = callPackage ../development/libraries/java/jdom { };
+
+  jffi = callPackage ../development/libraries/java/jffi { };
+
+  jflex = callPackage ../development/libraries/java/jflex { };
+
+  lombok = callPackage ../development/libraries/java/lombok { };
+
+  lucene = callPackage ../development/libraries/java/lucene { };
+
+  lucenepp = callPackage ../development/libraries/lucene++ { };
+
+  mockobjects = callPackage ../development/libraries/java/mockobjects { };
+
+  saxonb = saxonb_8_8;
+
+  inherit (callPackages ../development/libraries/java/saxon {
+    jre = jre_headless;
+    jre8 = jre8_headless;
+  })
+    saxon
+    saxonb_8_8
+    saxonb_9_1
+    saxon_9-he
+    saxon-he;
+
+  smack = callPackage ../development/libraries/java/smack { };
+
+  swt = callPackage ../development/libraries/java/swt { };
+  swt_jdk8 = callPackage ../development/libraries/java/swt {
+    jdk = jdk8;
+  };
+
+
+  ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
+
+  nodehun = callPackage ../development/tools/nodehun { };
+
+  yuicompressor = callPackage ../development/tools/yuicompressor { };
+
+  ### DEVELOPMENT / BOWER MODULES (JAVASCRIPT)
+
+  buildBowerComponents = callPackage ../development/bower-modules/generic { };
+
+  ### DEVELOPMENT / GO
+
+  # the unversioned attributes should always point to the same go version
+  go = go_1_21;
+  buildGoModule = buildGo121Module;
+  buildGoPackage = buildGo121Package;
+
+  # requires a newer Apple SDK
+  go_1_19 = darwin.apple_sdk_11_0.callPackage ../development/compilers/go/1.19.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation Security;
+  };
+  buildGo119Module = darwin.apple_sdk_11_0.callPackage ../build-support/go/module.nix {
+    go = buildPackages.go_1_19;
+  };
+  buildGo119Package = darwin.apple_sdk_11_0.callPackage ../build-support/go/package.nix {
+    go = buildPackages.go_1_19;
+  };
+
+  # requires a newer Apple SDK
+  go_1_20 = darwin.apple_sdk_11_0.callPackage ../development/compilers/go/1.20.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation Security;
+  };
+  buildGo120Module = darwin.apple_sdk_11_0.callPackage ../build-support/go/module.nix {
+    go = buildPackages.go_1_20;
+  };
+  buildGo120Package = darwin.apple_sdk_11_0.callPackage ../build-support/go/package.nix {
+    go = buildPackages.go_1_20;
+  };
+
+  # requires a newer Apple SDK
+  go_1_21 = darwin.apple_sdk_11_0.callPackage ../development/compilers/go/1.21.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation Security;
+  };
+  buildGo121Module = darwin.apple_sdk_11_0.callPackage ../build-support/go/module.nix {
+    go = buildPackages.go_1_21;
+  };
+  buildGo121Package = darwin.apple_sdk_11_0.callPackage ../build-support/go/package.nix {
+    go = buildPackages.go_1_21;
+  };
+
+  go2nix = callPackage ../development/tools/go2nix { };
+
+  leaps = callPackage ../development/tools/leaps { };
+
+  ### DEVELOPMENT / JAVA MODULES
+
+  javaPackages = recurseIntoAttrs (callPackage ./java-packages.nix { });
+
+  ### DEVELOPMENT / LISP MODULES
+
+  asdf = callPackage ../development/lisp-modules/asdf {
+    texLive = null;
+  };
+
+  # QuickLisp minimal version
+  asdf_2_26 = callPackage ../development/lisp-modules/asdf/2.26.nix {
+    texLive = null;
+  };
+  # Currently most popular
+  asdf_3_1 = callPackage ../development/lisp-modules/asdf/3.1.nix {
+    texLive = null;
+  };
+  # Latest
+  asdf_3_3 = callPackage ../development/lisp-modules/asdf/3.3.nix {
+    texLive = null;
+  };
+
+  ## DEPRECATED, will be removed in a future release
+
+  clwrapperFunction = callPackage ../development/lisp-modules-obsolete/clwrapper;
+
+  wrapLisp_old = lisp: clwrapperFunction { inherit lisp; };
+
+  lispPackagesFor = clwrapper: callPackage ../development/lisp-modules-obsolete/lisp-packages.nix {
+    inherit clwrapper;
+  };
+
+  lispPackages = quicklispPackages //
+    (lispPackagesFor (wrapLisp_old sbcl)) // { __attrsFailEvaluation = true; };
+
+  quicklispPackagesFor = clwrapper: callPackage ../development/lisp-modules-obsolete/quicklisp-to-nix.nix {
+    inherit clwrapper;
+  } // { __attrsFailEvaluation = true; };
+  quicklispPackagesClisp = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp_old clisp));
+  quicklispPackagesSBCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp_old sbcl));
+  quicklispPackagesECL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp_old ecl));
+  quicklispPackagesCCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp_old ccl));
+  quicklispPackagesABCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp_old abcl));
+  quicklispPackagesGCL = dontRecurseIntoAttrs (quicklispPackagesFor (wrapLisp_old gcl));
+  quicklispPackages = quicklispPackagesSBCL;
+
+  # Alternative lisp-modules implementation
+  lispPackages_new = callPackage ../development/lisp-modules-new-obsolete/lisp-packages.nix {}
+  // { __attrsFailEvaluation = true; };
+
+  ## End of DEPRECATED
+
+  wrapLisp = callPackage ../development/lisp-modules/nix-cl.nix {};
+
+  # Armed Bear Common Lisp
+  abcl = wrapLisp {
+    pkg = callPackage ../development/compilers/abcl { };
+    faslExt = "abcl";
+  };
+
+  # Clozure Common Lisp
+  ccl = wrapLisp {
+    pkg = callPackage ../development/compilers/ccl {
+      inherit (buildPackages.darwin) bootstrap_cmds;
+    };
+    faslExt = "lx64fsl";
+  };
+
+  # Clasp Common Lisp
+  clasp-common-lisp = wrapLisp {
+    pkg = callPackage ../development/compilers/clasp { };
+    faslExt = "fasp";
+  };
+
+  # CLISP
+  clisp = wrapLisp {
+    pkg = callPackage ../development/interpreters/clisp { };
+    faslExt = "fas";
+    flags = ["-E" "UTF-8"];
+  };
+
+  wrapLispi686Linux = pkgsi686Linux.callPackage ../development/lisp-modules/nix-cl.nix {};
+
+  # CMU Common Lisp
+  cmucl_binary = wrapLispi686Linux {
+    pkg = pkgsi686Linux.callPackage ../development/compilers/cmucl/binary.nix { };
+    faslExt = "sse2f";
+    program = "lisp";
+  };
+
+  # Embeddable Common Lisp
+  ecl = wrapLisp {
+    pkg = callPackage ../development/compilers/ecl { };
+    faslExt = "fas";
+  };
+  ecl_16_1_2 = wrapLisp {
+    pkg = callPackage ../development/compilers/ecl/16.1.2.nix { };
+    faslExt = "fas";
+  };
+
+  # GNU Common Lisp
+  gcl = wrapLisp {
+    pkg = callPackage ../development/compilers/gcl {
+      gmp = gmp4;
+    };
+    faslExt = "o";
+  };
+
+  # ManKai Common Lisp
+  mkcl = wrapLisp {
+    pkg = callPackage ../development/compilers/mkcl {};
+    faslExt = "fas";
+  };
+
+  # Steel Bank Common Lisp
+  sbcl_2_3_10 = wrapLisp {
+    pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.10"; };
+    faslExt = "fasl";
+    flags = [ "--dynamic-space-size" "3000" ];
+  };
+  sbcl_2_3_11 = wrapLisp {
+    pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.11"; };
+    faslExt = "fasl";
+    flags = [ "--dynamic-space-size" "3000" ];
+  };
+  sbcl = sbcl_2_3_11;
+
+  sbclPackages = recurseIntoAttrs sbcl.pkgs;
+
+  ### DEVELOPMENT / PERL MODULES
+
+  perlInterpreters = import ../development/interpreters/perl { inherit callPackage; };
+  inherit (perlInterpreters) perl536 perl538;
+
+  perl536Packages = recurseIntoAttrs perl536.pkgs;
+  perl538Packages = recurseIntoAttrs perl538.pkgs;
+
+  perl = perl538;
+  perlPackages = perl538Packages;
+
+  ack = perlPackages.ack;
+
+  perlcritic = perlPackages.PerlCritic;
+
+  sqitchMysql = (callPackage ../development/tools/misc/sqitch {
+    mysqlSupport = true;
+  }).overrideAttrs { pname = "sqitch-mysql"; };
+
+  sqitchPg = (callPackage ../development/tools/misc/sqitch {
+    postgresqlSupport = true;
+  }).overrideAttrs { pname = "sqitch-pg"; };
+
+  ### DEVELOPMENT / R MODULES
+
+  R = darwin.apple_sdk_11_0.callPackage ../applications/science/math/R {
+    # TODO: split docs into a separate output
+    withRecommendedPackages = false;
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa Foundation;
+    inherit (darwin) libobjc;
+  };
+
+  rWrapper = callPackage ../development/r-modules/wrapper.nix {
+    recommendedPackages = with rPackages; [
+      boot class cluster codetools foreign KernSmooth lattice MASS
+      Matrix mgcv nlme nnet rpart spatial survival
+    ];
+    # Override this attribute to register additional libraries.
+    packages = [];
+  };
+
+  radianWrapper = callPackage ../development/r-modules/wrapper-radian.nix {
+    recommendedPackages = with rPackages; [
+      boot class cluster codetools foreign KernSmooth lattice MASS
+      Matrix mgcv nlme nnet rpart spatial survival
+    ];
+    radian = python3Packages.radian;
+    # Override this attribute to register additional libraries.
+    packages = [];
+    # Override this attribute if you want to expose R with the same set of
+    # packages as specified in radian
+    wrapR = false;
+  };
+
+  rstudioWrapper = libsForQt5.callPackage ../development/r-modules/wrapper-rstudio.nix {
+    recommendedPackages = with rPackages; [
+      boot class cluster codetools foreign KernSmooth lattice MASS
+      Matrix mgcv nlme nnet rpart spatial survival
+    ];
+    # Override this attribute to register additional libraries.
+    packages = [];
+  };
+
+  rstudioServerWrapper = rstudioWrapper.override { rstudio = rstudio-server; };
+
+  rPackages = (dontRecurseIntoAttrs (callPackage ../development/r-modules {
+    overrides = (config.rPackageOverrides or (_: {})) pkgs;
+  })) // { __attrsFailEvaluation = true; };
+
+  ### SERVERS
+
+  _389-ds-base = callPackage ../servers/ldap/389 { };
+
+  _5etools = callPackage ../servers/web-apps/5etools { };
+
+  adguardhome = callPackage ../servers/adguardhome { };
+
+  alerta = callPackage ../servers/monitoring/alerta/client.nix { };
+
+  alerta-server = callPackage ../servers/monitoring/alerta { };
+
+  allmark = callPackage ../servers/allmark { };
+
+  alps = callPackage ../servers/alps { };
+
+  anuko-time-tracker = callPackage ../servers/web-apps/anuko-time-tracker { };
+
+  apache-directory-server = callPackage ../servers/ldap/apache-directory-server { };
+
+  apacheHttpd_2_4 = callPackage ../servers/http/apache-httpd/2.4.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+  apacheHttpd = apacheHttpd_2_4;
+
+  apacheHttpdPackagesFor = apacheHttpd: self: let callPackage = newScope self; in {
+    inherit apacheHttpd;
+
+    mod_auth_mellon = callPackage ../servers/http/apache-modules/mod_auth_mellon { };
+
+    # Redwax collection
+    mod_ca = callPackage ../servers/http/apache-modules/mod_ca { };
+    mod_crl = callPackage ../servers/http/apache-modules/mod_crl { };
+    mod_csr = callPackage ../servers/http/apache-modules/mod_csr { };
+    mod_cspnonce = callPackage ../servers/http/apache-modules/mod_cspnonce { };
+    mod_ocsp = callPackage ../servers/http/apache-modules/mod_ocsp{ };
+    mod_scep = callPackage ../servers/http/apache-modules/mod_scep { };
+    mod_pkcs12 = callPackage ../servers/http/apache-modules/mod_pkcs12 { };
+    mod_spkac= callPackage ../servers/http/apache-modules/mod_spkac { };
+    mod_timestamp = callPackage ../servers/http/apache-modules/mod_timestamp { };
+
+    mod_dnssd = callPackage ../servers/http/apache-modules/mod_dnssd { };
+
+    mod_evasive = throw "mod_evasive is not supported on Apache httpd 2.4";
+
+    mod_perl = callPackage ../servers/http/apache-modules/mod_perl { };
+
+    mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
+
+    mod_python = callPackage ../servers/http/apache-modules/mod_python { };
+
+    mod_tile = callPackage ../servers/http/apache-modules/mod_tile { };
+
+    mod_wsgi  = self.mod_wsgi2;
+    mod_wsgi2 = throw "mod_wsgi2 has been removed since Python 2 is EOL. Use mod_wsgi3 instead";
+    mod_wsgi3 = callPackage ../servers/http/apache-modules/mod_wsgi { };
+
+    mod_itk = callPackage ../servers/http/apache-modules/mod_itk { };
+
+    mod_mbtiles = callPackage ../servers/http/apache-modules/mod_mbtiles { };
+
+    php = pkgs.php.override { inherit apacheHttpd; };
+
+    subversion = pkgs.subversion.override { httpServer = true; inherit apacheHttpd; };
+  };
+
+  apacheHttpdPackages_2_4 = recurseIntoAttrs (apacheHttpdPackagesFor apacheHttpd_2_4 apacheHttpdPackages_2_4);
+  apacheHttpdPackages = apacheHttpdPackages_2_4;
+
+  appdaemon = callPackage ../servers/home-assistant/appdaemon.nix { };
+
+  archiveopteryx = callPackage ../servers/mail/archiveopteryx {
+    openssl = openssl_1_1;
+  };
+
+  asouldocs = callPackage ../servers/asouldocs { };
+
+  atlassian-bamboo = callPackage ../servers/atlassian/bamboo.nix { };
+  atlassian-confluence = callPackage ../servers/atlassian/confluence.nix { };
+  atlassian-crowd = callPackage ../servers/atlassian/crowd.nix { };
+  atlassian-jira = callPackage ../servers/atlassian/jira.nix { };
+
+  cadvisor = callPackage ../servers/monitoring/cadvisor { };
+
+  cassandra_3_0 = callPackage ../servers/nosql/cassandra/3.0.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    python = python2;
+  };
+  cassandra_3_11 = callPackage ../servers/nosql/cassandra/3.11.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    python = python2;
+  };
+  cassandra_4 = callPackage ../servers/nosql/cassandra/4.nix {
+    # Effective Cassandra 4.0.2 there is full Java 11 support
+    #  -- https://cassandra.apache.org/doc/latest/cassandra/new/java11.html
+    jre = pkgs.jdk11_headless;
+    python = python3;
+  };
+  cassandra = cassandra_4;
+
+  cassandra-cpp-driver = callPackage ../development/libraries/cassandra-cpp-driver/default.nix { };
+
+  apache-jena = callPackage ../servers/nosql/apache-jena/binary.nix {
+    java = jre;
+  };
+
+  apache-jena-fuseki = callPackage ../servers/nosql/apache-jena/fuseki-binary.nix {
+    java = jre;
+  };
+
+  apcupsd = callPackage ../servers/apcupsd { };
+
+  inherit (callPackages ../servers/asterisk { })
+    asterisk asterisk-stable asterisk-lts
+    asterisk_18 asterisk_20;
+
+  asterisk-module-sccp = callPackage ../servers/asterisk/sccp { };
+
+  asterisk-ldap = lowPrio (asterisk.override { ldapSupport = true; });
+
+  sabnzbd = callPackage ../servers/sabnzbd { };
+
+  baserow = callPackage ../servers/baserow { };
+
+  bftpd = callPackage ../servers/ftp/bftpd { };
+
+  bind = callPackage ../servers/dns/bind { };
+  dnsutils = bind.dnsutils;
+  dig = lib.addMetaAttrs { mainProgram = "dig"; } bind.dnsutils;
+
+  bird = callPackage ../servers/bird { };
+
+  bird-lg = callPackage ../servers/bird-lg { };
+
+  birdwatcher = callPackage ../servers/birdwatcher { };
+
+  bloat = callPackage ../servers/bloat { };
+
+  bosun = callPackage ../servers/monitoring/bosun { };
+
+  cayley = callPackage ../servers/cayley { };
+
+  cgiserver = callPackage ../servers/http/cgiserver { };
+
+  charybdis = callPackage ../servers/irc/charybdis {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  clamsmtp = callPackage ../servers/mail/clamsmtp { };
+
+  clickhouse = callPackage ../servers/clickhouse {
+    llvmPackages = llvmPackages_16;
+  };
+
+  clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
+
+  clickhouse-backup = callPackage ../development/tools/database/clickhouse-backup { };
+
+  codeowners = callPackage ../development/tools/codeowners { };
+
+  couchdb3 = callPackage ../servers/http/couchdb/3.nix { };
+
+  dcnnt = python3Packages.callPackage ../servers/dcnnt { };
+
+  deconz = qt5.callPackage ../servers/deconz { };
+
+  dendrite = callPackage ../servers/dendrite { };
+
+  dex-oidc = callPackage ../servers/dex { };
+
+  dex2jar = callPackage ../development/tools/java/dex2jar { };
+
+  doh-proxy-rust = callPackage ../servers/dns/doh-proxy-rust {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  dgraph = callPackage ../servers/dgraph { };
+
+  dico = callPackage ../servers/dico { };
+
+  dict = callPackage ../servers/dict {
+    libmaa = callPackage ../servers/dict/libmaa.nix { };
+  };
+
+  dictdDBs = recurseIntoAttrs (callPackages ../servers/dict/dictd-db.nix {});
+
+  dictDBCollector = callPackage ../servers/dict/dictd-db-collector.nix { };
+
+  diod = callPackage ../servers/diod { lua = lua5_1; };
+
+  directx-headers = callPackage ../development/libraries/directx-headers { };
+
+  directx-shader-compiler = callPackage ../tools/graphics/directx-shader-compiler {
+    # https://github.com/NixOS/nixpkgs/issues/216294
+    stdenv = if stdenv.cc.isGNU && stdenv.isi686 then gcc11Stdenv else stdenv;
+  };
+
+  dkimproxy = callPackage ../servers/mail/dkimproxy { };
+
+  dmarc-metrics-exporter = callPackage ../servers/monitoring/prometheus/dmarc-metrics-exporter { };
+
+  dmlive = callPackage ../applications/video/dmlive {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  do-agent = callPackage ../servers/monitoring/do-agent { };
+
+  dodgy = with python3Packages; toPythonApplication dodgy;
+
+  dovecot = callPackage ../servers/mail/dovecot { };
+  dovecot_pigeonhole = callPackage ../servers/mail/dovecot/plugins/pigeonhole { };
+  dovecot_fts_xapian = callPackage ../servers/mail/dovecot/plugins/fts_xapian { };
+
+  dspam = callPackage ../servers/mail/dspam { };
+
+  engelsystem = callPackage ../servers/web-apps/engelsystem { php = php81; };
+
+  envoy = callPackage ../servers/http/envoy {
+    go = go_1_20;
+    jdk = openjdk11_headless;
+    gn = gn1924;
+  };
+
+  ergochat = callPackage ../servers/irc/ergochat { };
+
+  etcd = etcd_3_5;
+  etcd_3_4 = callPackage ../servers/etcd/3.4.nix { };
+  etcd_3_5 = callPackage ../servers/etcd/3.5.nix { };
+
+  ejabberd = callPackage ../servers/xmpp/ejabberd { erlang = erlang_24; };
+
+  exhaustive = callPackage ../development/tools/exhaustive { };
+
+  hyp = callPackage ../servers/http/hyp { };
+
+  peering-manager = callPackage ../servers/web-apps/peering-manager { };
+
+  podgrab = callPackage ../servers/misc/podgrab { };
+
+  portunus = callPackage ../servers/portunus { };
+
+  prosody = callPackage ../servers/xmpp/prosody {
+    withExtraLibs = [];
+    withExtraLuaPackages = _: [];
+  };
+
+  prosody-filer = callPackage ../servers/xmpp/prosody-filer { };
+
+  biboumi = callPackage ../servers/xmpp/biboumi { };
+
+  elasticmq-server-bin = callPackage ../servers/elasticmq-server-bin {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  eventstore = callPackage ../servers/nosql/eventstore { };
+
+  exabgp = callPackage ../servers/networking/exabgp { };
+
+  rustus = callPackage ../servers/networking/rustus {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  exim = callPackage ../servers/mail/exim { };
+
+  fastnetmon-advanced = callPackage ../servers/fastnetmon-advanced { };
+
+  fcgiwrap = callPackage ../servers/fcgiwrap { };
+
+  fedigroups = callPackage ../servers/fedigroups {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ferretdb = callPackage ../servers/nosql/ferretdb { };
+
+  felix = callPackage ../servers/felix { };
+
+  felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
+
+  inherit (callPackages ../servers/firebird { }) firebird_4 firebird_3 firebird_2_5 firebird;
+
+  flashmq = callPackage ../servers/mqtt/flashmq { };
+
+  freeradius = callPackage ../servers/freeradius { };
+
+  freshrss = callPackage ../servers/web-apps/freshrss { };
+
+  freeswitch = callPackage ../servers/sip/freeswitch {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
+  fusionInventory = callPackage ../servers/monitoring/fusion-inventory { };
+
+  gamehub = callPackage ../games/gamehub { };
+
+  gatling = callPackage ../servers/http/gatling { };
+
+  glabels = callPackage ../applications/graphics/glabels { };
+
+  glabels-qt = libsForQt5.callPackage ../applications/graphics/glabels-qt { };
+
+  nats-server = callPackage ../servers/nats-server { };
+
+  go-autoconfig = callPackage ../servers/go-autoconfig { };
+
+  go-cqhttp = callPackage ../servers/go-cqhttp { };
+
+  gofish = callPackage ../servers/gopher/gofish { };
+
+  grafana = callPackage ../servers/monitoring/grafana { };
+  grafanaPlugins = callPackages ../servers/monitoring/grafana/plugins { };
+
+  grafana-agent = callPackage ../servers/monitoring/grafana-agent { };
+
+  grafana-loki = callPackage ../servers/monitoring/loki { };
+  promtail = callPackage ../servers/monitoring/loki/promtail.nix { };
+
+  mimir = callPackage ../servers/monitoring/mimir { };
+
+  phlare = callPackage ../servers/monitoring/phlare { };
+
+  grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
+
+  grafana-image-renderer = callPackage ../servers/monitoring/grafana-image-renderer { };
+
+  grafana-dash-n-grab = callPackage ../servers/monitoring/grafana-dash-n-grab { };
+
+  gerbera = callPackage ../servers/gerbera { };
+
+  gobetween = callPackage ../servers/gobetween { };
+
+  gobgpd = callPackage ../servers/misc/gobgpd { };
+
+  graph-cli = callPackage ../tools/graphics/graph-cli { };
+
+  h2o = callPackage ../servers/http/h2o { };
+
+  haka = callPackage ../tools/security/haka { };
+
+  hashi-ui = callPackage ../servers/hashi-ui { };
+
+  hashi-up = callPackage ../applications/networking/cluster/hashi-up { };
+
+  hasura-graphql-engine = haskell.lib.compose.justStaticExecutables haskell.packages.ghc810.graphql-engine;
+
+  hasura-cli = callPackage ../servers/hasura/cli.nix { };
+
+  inherit (callPackage ../servers/hbase {}) hbase_2_4 hbase_2_5 hbase_3_0;
+  hbase2 = hbase_2_5;
+  hbase3 = hbase_3_0;
+  hbase = hbase2; # when updating, point to the latest stable release
+
+  headphones = callPackage ../servers/headphones { };
+
+  hiawatha = callPackage ../servers/http/hiawatha { };
+
+  hiraeth = callPackage ../servers/hiraeth { };
+
+  hoard = callPackage ../tools/misc/hoard { };
+
+  home-assistant = callPackage ../servers/home-assistant { };
+
+  buildHomeAssistantComponent = callPackage ../servers/home-assistant/build-custom-component { };
+  home-assistant-custom-components = lib.recurseIntoAttrs
+    (callPackage ../servers/home-assistant/custom-components {
+      inherit (home-assistant.python.pkgs) callPackage;
+    });
+  home-assistant-custom-lovelace-modules = lib.recurseIntoAttrs
+    (callPackage ../servers/home-assistant/custom-lovelace-modules {});
+
+  home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { };
+
+  home-assistant-component-tests = recurseIntoAttrs home-assistant.tests.components;
+
+  honk = callPackage ../servers/honk { };
+
+  hqplayerd = callPackage ../servers/hqplayerd { };
+
+  https-dns-proxy = callPackage ../servers/dns/https-dns-proxy { };
+
+  hydron = callPackage ../servers/hydron { };
+
+  hyprspace = callPackage ../applications/networking/hyprspace {
+    inherit (darwin) iproute2mac;
+  };
+
+  ic-keysmith = callPackage ../tools/security/ic-keysmith { };
+
+  icecream = callPackage ../servers/icecream { };
+
+  icingaweb2-ipl = callPackage ../servers/icingaweb2/ipl.nix { };
+  icingaweb2-thirdparty = callPackage ../servers/icingaweb2/thirdparty.nix { };
+  icingaweb2 = callPackage ../servers/icingaweb2 { };
+  icingaweb2Modules = {
+    theme-april = callPackage ../servers/icingaweb2/theme-april { };
+    theme-lsd = callPackage ../servers/icingaweb2/theme-lsd { };
+    theme-particles = callPackage ../servers/icingaweb2/theme-particles { };
+    theme-snow = callPackage ../servers/icingaweb2/theme-snow { };
+    theme-spring = callPackage ../servers/icingaweb2/theme-spring { };
+  };
+
+  inspircd = callPackage ../servers/irc/inspircd { };
+
+  inspircdMinimal = inspircd.override { extraModules = []; };
+
+  imaginary = callPackage ../servers/imaginary { };
+
+  imgproxy = callPackage ../servers/imgproxy { };
+
+  irccat = callPackage ../servers/irc/irccat { };
+
+  ircdog = callPackage ../applications/networking/irc/ircdog { };
+
+  ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
+
+  janus-gateway = callPackage ../servers/janus-gateway { };
+
+  janusgraph = callPackage ../servers/nosql/janusgraph { };
+
+  jboss = callPackage ../servers/http/jboss { };
+
+  jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
+
+  jetty = jetty_12;
+  jetty_12 = callPackage ../servers/http/jetty/12.x.nix { };
+  jetty_11 = callPackage ../servers/http/jetty/11.x.nix { };
+
+  jibri = callPackage ../servers/jibri { };
+
+  jicofo = callPackage ../servers/jicofo { };
+
+  jitsi-excalidraw = callPackage ../servers/jitsi-excalidraw { };
+
+  jigasi = callPackage ../servers/jigasi { };
+
+  jitsi-meet = callPackage ../servers/web-apps/jitsi-meet { };
+
+  jitsi-meet-prosody = callPackage ../misc/jitsi-meet-prosody { };
+
+  jitsi-videobridge = callPackage ../servers/jitsi-videobridge { };
+
+  kamailio = callPackage ../servers/sip/kamailio { };
+
+  kanidm = callPackage ../servers/kanidm { };
+
+  kapowbang = callPackage ../servers/kapowbang { };
+
+  keycloak = callPackage ../servers/keycloak { };
+
+  knot-dns = callPackage ../servers/dns/knot-dns { };
+  knot-resolver = callPackage ../servers/dns/knot-resolver {
+    systemd = systemdMinimal; # in closure already anyway
+  };
+
+  rdkafka = callPackage ../development/libraries/rdkafka { };
+
+  leafnode = callPackage ../servers/news/leafnode { };
+
+  leafnode1 = callPackage ../servers/news/leafnode/1.nix { };
+
+  lemmy-server = callPackage ../servers/web-apps/lemmy/server.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  lemmy-ui = callPackage ../servers/web-apps/lemmy/ui.nix {
+    nodejs = nodejs_18;
+  };
+
+  lightgbm = callPackage ../development/libraries/lightgbm { };
+
+  lighttpd = callPackage ../servers/http/lighttpd { };
+
+  listmonk = callPackage ../servers/mail/listmonk { };
+
+  linx-server = callPackage ../servers/web-apps/linx-server { };
+
+  livepeer = callPackage ../servers/livepeer { };
+
+  lldap = callPackage ../servers/ldap/lldap { };
+
+  lwan = callPackage ../servers/http/lwan { };
+
+  labelImg = callPackage ../applications/science/machine-learning/labelimg { };
+
+  mackerel-agent = callPackage ../servers/monitoring/mackerel-agent { };
+
+  mailmanPackages = callPackage ../servers/mail/mailman { };
+  inherit (mailmanPackages) mailman mailman-hyperkitty;
+  mailman-web = mailmanPackages.web;
+
+  mailman-rss = callPackage ../tools/misc/mailman-rss { };
+
+  listadmin = callPackage ../applications/networking/listadmin { };
+
+  maker-panel = callPackage ../tools/misc/maker-panel { };
+
+  mastodon = callPackage ../servers/mastodon {
+    nodejs-slim = nodejs-slim_20;
+    ruby = ruby_3_2;
+  };
+
+  gotosocial = callPackage ../servers/gotosocial { };
+
+  materialize = callPackage ../servers/sql/materialize {
+    inherit (buildPackages.darwin) bootstrap_cmds;
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
+  };
+
+  matrix-alertmanager = callPackage ../servers/monitoring/matrix-alertmanager { };
+
+  mattermost = callPackage ../servers/mattermost { };
+  matterircd = callPackage ../servers/mattermost/matterircd.nix { };
+  matterbridge = callPackage ../servers/matterbridge { };
+
+  mattermost-desktop = callPackage ../applications/networking/instant-messengers/mattermost-desktop { };
+
+  mbusd = callPackage ../servers/mbusd { };
+
+  memcached = callPackage ../servers/memcached { };
+
+  merecat = callPackage ../servers/http/merecat { };
+
+  meteor = callPackage ../servers/meteor { };
+
+  micronaut = callPackage ../development/tools/micronaut { };
+
+  minio = callPackage ../servers/minio { };
+  # Keep around to allow people to migrate their data from the old legacy fs format
+  # https://github.com/minio/minio/releases/tag/RELEASE.2022-10-29T06-21-33Z
+  minio_legacy_fs = callPackage ../servers/minio/legacy_fs.nix { };
+
+  mkchromecast = libsForQt5.callPackage ../applications/networking/mkchromecast { };
+
+  # Backwards compatibility.
+  mod_dnssd = apacheHttpdPackages.mod_dnssd;
+  mod_fastcgi = apacheHttpdPackages.mod_fastcgi;
+  mod_python = apacheHttpdPackages.mod_python;
+  mod_wsgi = apacheHttpdPackages.mod_wsgi;
+  mod_ca = apacheHttpdPackages.mod_ca;
+  mod_crl = apacheHttpdPackages.mod_crl;
+  mod_csr = apacheHttpdPackages.mod_csr;
+  mod_ocsp = apacheHttpdPackages.mod_ocsp;
+  mod_scep = apacheHttpdPackages.mod_scep;
+  mod_spkac = apacheHttpdPackages.mod_spkac;
+  mod_pkcs12 = apacheHttpdPackages.mod_pkcs12;
+  mod_timestamp = apacheHttpdPackages.mod_timestamp;
+
+  inherit (callPackages ../servers/mpd {
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit;
+  }) mpd mpd-small mpdWithFeatures;
+
+  libmpdclient = callPackage ../servers/mpd/libmpdclient.nix { };
+
+  mpdscribble = callPackage ../tools/misc/mpdscribble { };
+
+  mtprotoproxy = python3.pkgs.callPackage ../servers/mtprotoproxy { };
+
+  micro-httpd = callPackage ../servers/http/micro-httpd { };
+
+  miniHttpd = callPackage ../servers/http/mini-httpd { };
+
+  mlflow-server = callPackage ../servers/mlflow-server { };
+
+  mlmmj = callPackage ../servers/mail/mlmmj { };
+
+  moodle = callPackage ../servers/web-apps/moodle { };
+
+  moodle-utils = callPackage ../servers/web-apps/moodle/moodle-utils.nix { };
+
+  morty = callPackage ../servers/web-apps/morty { };
+
+  inherit (callPackage ../applications/networking/mullvad { })
+    mullvad;
+
+  mullvad-vpn = callPackage ../applications/networking/mullvad-vpn { };
+
+  mullvad-browser = callPackage ../applications/networking/browsers/mullvad-browser { };
+
+  mullvad-closest = with python3Packages; toPythonApplication mullvad-closest;
+
+  mycorrhiza = callPackage ../servers/mycorrhiza { };
+
+  napalm = with python3Packages; toPythonApplication (
+    napalm.overridePythonAttrs (attrs: {
+      # add community frontends that depend on the napalm python package
+      propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
+        napalm-hp-procurve
+      ];
+    })
+  );
+
+  nas = callPackage ../servers/nas { };
+
+  nats-streaming-server = callPackage ../servers/nats-streaming-server { };
+
+  neard = callPackage ../servers/neard { };
+
+  networkaudiod = callPackage ../servers/networkaudiod { };
+
+  unifiedpush-common-proxies = callPackage ../servers/unifiedpush-common-proxies { };
+
+  unit = callPackage ../servers/http/unit { };
+
+  ncdns = callPackage ../servers/dns/ncdns { };
+
+  nginx = nginxStable;
+
+  nginx-doc = callPackage ../data/documentation/nginx-doc { };
+
+  nginxQuic = callPackage ../servers/http/nginx/quic.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
+    withPerl = false;
+    # We don't use `with` statement here on purpose!
+    # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
+    modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
+    # Use latest boringssl to allow http3 support
+    openssl = quictls;
+  };
+
+  nginxStable = callPackage ../servers/http/nginx/stable.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
+    withPerl = false;
+    # We don't use `with` statement here on purpose!
+    # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
+    modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
+  };
+
+  nginxMainline = callPackage ../servers/http/nginx/mainline.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
+    withKTLS = true;
+    withPerl = false;
+    # We don't use `with` statement here on purpose!
+    # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
+    modules = [ nginxModules.dav nginxModules.moreheaders ];
+  };
+
+  nginxModules = recurseIntoAttrs (callPackage ../servers/http/nginx/modules.nix { });
+
+  # We should move to dynmaic modules and create a nginxFull package with all modules
+  nginxShibboleth = nginxStable.override {
+    modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders nginxModules.shibboleth ];
+  };
+
+  libmodsecurity = callPackage ../tools/security/libmodsecurity {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  ngircd = callPackage ../servers/irc/ngircd { };
+
+  nix-binary-cache = callPackage ../servers/http/nix-binary-cache { };
+
+  nix-tour = callPackage ../applications/misc/nix-tour { };
+
+  noseyparker = callPackage ../tools/security/noseyparker { };
+
+  nosqli = callPackage ../tools/security/nosqli { };
+
+  nsd = callPackage ../servers/dns/nsd (config.nsd or {});
+
+  nsq = callPackage ../servers/nsq { };
+
+  oauth2-proxy = callPackage ../servers/oauth2-proxy { };
+
+  olaris-server = callPackage ../servers/olaris { };
+
+  onagre = callPackage ../applications/misc/onagre { };
+
+  onlyoffice-documentserver = callPackage ../servers/onlyoffice-documentserver { };
+
+  outline = callPackage ../servers/web-apps/outline (lib.fix (super: {
+    yarn = yarn.override { inherit (super) nodejs; };
+    nodejs = nodejs_18;
+  }));
+
+  openbgpd = callPackage ../servers/openbgpd { };
+
+  openafs = callPackage ../servers/openafs/1.8 { };
+
+  openresty = callPackage ../servers/http/openresty {
+    withPerl = false;
+    modules = [];
+  };
+
+  opensmtpd = callPackage ../servers/mail/opensmtpd { };
+  opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { };
+  opensmtpd-filter-rspamd = callPackage ../servers/mail/opensmtpd/filter-rspamd.nix { };
+  opensmtpd-filter-dkimsign = callPackage ../servers/mail/opensmtpd/filter-dkimsign { };
+  libopensmtpd = callPackage ../servers/mail/opensmtpd/libopensmtpd { };
+
+  openxr-loader = callPackage ../development/libraries/openxr-loader { };
+
+  osrm-backend = callPackage ../servers/osrm-backend { };
+
+  oven-media-engine = callPackage ../servers/misc/oven-media-engine { };
+
+  p910nd = callPackage ../servers/p910nd { };
+
+  petidomo = callPackage ../servers/mail/petidomo { };
+
+  pict-rs = callPackage ../servers/web-apps/pict-rs { };
+
+  pict-rs_0_3 = callPackage ../servers/web-apps/pict-rs/0.3.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+    ffmpeg = ffmpeg_4;
+  };
+
+  popa3d = callPackage ../servers/mail/popa3d { };
+
+  postfix = callPackage ../servers/mail/postfix { };
+
+  postfixadmin = callPackage ../servers/postfixadmin { };
+
+  postsrsd = callPackage ../servers/mail/postsrsd { };
+
+  rspamd = callPackage ../servers/mail/rspamd { };
+
+  pfixtools = callPackage ../servers/mail/postfix/pfixtools.nix {
+    gperf = gperf_3_0;
+  };
+  pflogsumm = callPackage ../servers/mail/postfix/pflogsumm.nix { };
+
+  pomerium = callPackage ../servers/http/pomerium { };
+  pomerium-cli = callPackage ../tools/security/pomerium-cli { };
+
+  postgrey = callPackage ../servers/mail/postgrey { };
+
+  pshs = callPackage ../servers/http/pshs { };
+
+  quark = callPackage ../servers/http/quark { };
+
+  smtprelay = callPackage ../servers/mail/smtprelay { };
+
+  soft-serve = callPackage ../servers/soft-serve { };
+
+  sympa = callPackage ../servers/mail/sympa { };
+
+  syncstorage-rs = callPackage ../servers/syncstorage-rs { };
+
+  system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { });
+
+  # PulseAudio daemons
+
+  hsphfpd = callPackage ../servers/pulseaudio/hsphfpd.nix { };
+
+  pulseaudio = callPackage ../servers/pulseaudio {
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa CoreAudio;
+  };
+
+  qpaeq = libsForQt5.callPackage ../servers/pulseaudio/qpaeq.nix { };
+
+  pulseaudioFull = pulseaudio.override {
+    x11Support = true;
+    jackaudioSupport = true;
+    airtunesSupport = true;
+    bluetoothSupport = true;
+    advancedBluetoothCodecs = true;
+    remoteControlSupport = true;
+    zeroconfSupport = true;
+  };
+
+  libpulseaudio = pulseaudio.override {
+    libOnly = true;
+  };
+
+  apulse = callPackage ../misc/apulse { };
+
+  libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix { };
+
+  libcardiacarrest = callPackage ../misc/libcardiacarrest { };
+
+  easyeffects = callPackage ../applications/audio/easyeffects {
+    # Fix crashes with speexdsp effects
+    speexdsp = speexdsp.override { withFftw3 = false; };
+  };
+
+  pulseeffects-legacy = callPackage ../applications/audio/pulseeffects-legacy { };
+
+  soundux = callPackage ../applications/audio/soundux {
+    yt-dlp = yt-dlp.override { withAlias = true; };
+  };
+
+  tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
+
+  tomcat-native = callPackage ../servers/http/tomcat/tomcat-native.nix { };
+
+  pies = callPackage ../servers/pies { };
+
+  rpcbind = callPackage ../servers/rpcbind { };
+
+  rpcsvc-proto = callPackage ../tools/misc/rpcsvc-proto { };
+
+  libmysqlclient = libmysqlclient_3_3;
+  libmysqlclient_3_1 = mariadb-connector-c_3_1;
+  libmysqlclient_3_2 = mariadb-connector-c_3_2;
+  libmysqlclient_3_3 = mariadb-connector-c_3_3;
+  mariadb-connector-c = mariadb-connector-c_3_3;
+  mariadb-connector-c_3_1 = callPackage ../servers/sql/mariadb/connector-c/3_1.nix { };
+  mariadb-connector-c_3_2 = callPackage ../servers/sql/mariadb/connector-c/3_2.nix { };
+  mariadb-connector-c_3_3 = callPackage ../servers/sql/mariadb/connector-c/3_3.nix { };
+
+  mariadb-galera = callPackage ../servers/sql/mariadb/galera { };
+
+  inherit (import ../servers/sql/mariadb pkgs)
+    mariadb_105
+    mariadb_106
+    mariadb_1011
+    mariadb_110
+  ;
+  mariadb = mariadb_1011;
+  mariadb-embedded = mariadb.override { withEmbedded = true; };
+
+  mongodb = hiPrio mongodb-6_0;
+
+  mongodb-4_4 = callPackage ../servers/nosql/mongodb/4.4.nix {
+    sasl = cyrus_sasl;
+    boost = boost179.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  mongodb-5_0 = callPackage ../servers/nosql/mongodb/5.0.nix {
+    sasl = cyrus_sasl;
+    boost = boost179.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  mongodb-6_0 = darwin.apple_sdk_11_0.callPackage ../servers/nosql/mongodb/6.0.nix {
+    sasl = cyrus_sasl;
+    boost = boost178.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+    stdenv = if stdenv.isDarwin then
+      darwin.apple_sdk_11_0.stdenv.override (old: {
+        hostPlatform = old.hostPlatform // { darwinMinVersion = "10.14"; };
+        buildPlatform = old.buildPlatform // { darwinMinVersion = "10.14"; };
+        targetPlatform = old.targetPlatform // { darwinMinVersion = "10.14"; };
+      }) else
+      if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+  };
+
+  nginx-sso = callPackage ../servers/nginx-sso { };
+
+  immudb = callPackage ../servers/nosql/immudb { };
+
+  influxdb = callPackage ../servers/nosql/influxdb { };
+  influxdb2-server = callPackage ../servers/nosql/influxdb2 { };
+  influxdb2-cli = callPackage ../servers/nosql/influxdb2/cli.nix { };
+  influxdb2-token-manipulator = callPackage ../servers/nosql/influxdb2/token-manipulator.nix { };
+  influxdb2-provision = callPackage ../servers/nosql/influxdb2/provision.nix { };
+  # For backwards compatibility with older versions of influxdb2,
+  # which bundled the server and CLI into the same derivation. Will be
+  # removed in a few releases.
+  influxdb2 = callPackage ../servers/nosql/influxdb2/combined.nix { };
+
+  mysql80 = callPackage ../servers/sql/mysql/8.0.x.nix {
+    inherit (darwin) cctools developer_cmds DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+    boost = boost177; # Configure checks for specific version.
+    icu = icu69;
+    protobuf = protobuf_21;
+  };
+
+  mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
+
+  mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { };
+  jtds_jdbc = callPackage ../servers/sql/mssql/jdbc/jtds.nix { };
+
+  azuredatastudio = callPackage ../applications/misc/azuredatastudio { };
+
+  miniflux = callPackage ../servers/miniflux { };
+
+  mir = callPackage ../servers/mir { };
+
+  miriway = callPackage ../applications/window-managers/miriway { };
+
+  icinga2 = callPackage ../servers/monitoring/icinga2 { };
+
+  icinga2-agent = callPackage ../servers/monitoring/icinga2 {
+    nameSuffix = "-agent";
+    withMysql = false;
+    withNotification = false;
+    withIcingadb = false;
+  };
+
+  munin = callPackage ../servers/monitoring/munin { };
+
+  nagios = callPackage ../servers/monitoring/nagios { };
+
+  monitoring-plugins = callPackage ../servers/monitoring/plugins { };
+
+  inherit (callPackage ../servers/monitoring/plugins/labs_consol_de.nix { })
+    check-mssql-health
+    check-nwc-health
+    check-ups-health;
+
+  check-openvpn = callPackage ../servers/monitoring/plugins/openvpn.nix { };
+
+  check_smartmon = callPackage ../servers/monitoring/nagios/plugins/smartmon.nix { };
+
+  checkSSLCert = callPackage ../servers/monitoring/nagios/plugins/check_ssl_cert.nix { };
+
+  check_systemd = callPackage ../servers/monitoring/nagios/plugins/check_systemd.nix { };
+
+  check_zfs = callPackage ../servers/monitoring/nagios/plugins/zfs.nix { };
+
+  neo4j = callPackage ../servers/nosql/neo4j { };
+
+  neo4j-desktop = callPackage ../applications/misc/neo4j-desktop { };
+
+  check-esxi-hardware = callPackage ../servers/monitoring/plugins/esxi.nix { };
+
+  net-snmp = callPackage ../servers/monitoring/net-snmp { };
+
+  newrelic-sysmond = callPackage ../servers/monitoring/newrelic-sysmond { };
+
+  nullidentdmod = callPackage ../servers/identd/nullidentdmod { };
+
+  riemann = callPackage ../servers/monitoring/riemann { };
+  riemann-dash = callPackage ../servers/monitoring/riemann-dash { };
+
+  unpfs = callPackage ../servers/unpfs { };
+
+  oidentd = callPackage ../servers/identd/oidentd { };
+
+  softether = callPackage ../servers/softether { };
+
+  qboot = pkgsi686Linux.callPackage ../applications/virtualization/qboot { };
+
+  rust-hypervisor-firmware = callPackage ../applications/virtualization/rust-hypervisor-firmware { };
+
+  OVMF = callPackage ../applications/virtualization/OVMF { };
+  OVMFFull = callPackage ../applications/virtualization/OVMF {
+    secureBoot = true;
+    # CSM support is a BIOS emulation mechanism,
+    # SeaBIOS is only available on x86.
+    csmSupport = stdenv.hostPlatform.isx86;
+    httpSupport = true;
+    tpmSupport = true;
+  };
+
+  ops = callPackage ../applications/virtualization/ops { };
+
+  seabios = callPackage ../applications/virtualization/seabios { };
+
+  vmfs-tools = callPackage ../tools/filesystems/vmfs-tools { };
+
+  patroni = callPackage ../servers/sql/patroni { pythonPackages = python3Packages; };
+
+  pgbouncer = callPackage ../servers/sql/pgbouncer { };
+
+  pgcat = callPackage ../servers/sql/pgcat {};
+
+  pgpool = callPackage ../servers/sql/pgpool { };
+
+  tang = callPackage ../servers/tang {
+    asciidoc = asciidoc-full;
+  };
+
+  promscale = callPackage ../servers/monitoring/prometheus/promscale { };
+
+  timescaledb-parallel-copy = callPackage ../development/tools/database/timescaledb-parallel-copy { };
+
+  timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { };
+
+  inherit (import ../servers/sql/postgresql pkgs)
+    postgresql_12
+    postgresql_13
+    postgresql_14
+    postgresql_15
+    postgresql_16
+
+    postgresql_12_jit
+    postgresql_13_jit
+    postgresql_14_jit
+    postgresql_15_jit
+    postgresql_16_jit
+  ;
+  postgresql = postgresql_15.override { this = postgresql; };
+  postgresql_jit = postgresql_15_jit.override { this = postgresql_jit; };
+  postgresqlPackages = recurseIntoAttrs postgresql.pkgs;
+  postgresqlJitPackages = recurseIntoAttrs postgresql_jit.pkgs;
+  postgresql12Packages = recurseIntoAttrs postgresql_12.pkgs;
+  postgresql13Packages = recurseIntoAttrs postgresql_13.pkgs;
+  postgresql14Packages = recurseIntoAttrs postgresql_14.pkgs;
+  postgresql16Packages = recurseIntoAttrs postgresql_16.pkgs;
+  postgresql12JitPackages = recurseIntoAttrs postgresql_12_jit.pkgs;
+  postgresql13JitPackages = recurseIntoAttrs postgresql_13_jit.pkgs;
+  postgresql14JitPackages = recurseIntoAttrs postgresql_14_jit.pkgs;
+  postgresql15JitPackages = recurseIntoAttrs postgresql_15_jit.pkgs;
+  postgresql16JitPackages = recurseIntoAttrs postgresql_16_jit.pkgs;
+  postgresql15Packages = postgresqlPackages;
+
+  postgresql_jdbc = callPackage ../development/java-modules/postgresql_jdbc { };
+
+  postgresqlTestHook = callPackage ../build-support/setup-hooks/postgresql-test-hook { };
+
+  redshift_jdbc = callPackage ../development/java-modules/redshift_jdbc { };
+
+  liquibase_redshift_extension = callPackage ../development/java-modules/liquibase_redshift_extension { };
+
+  promql-cli = callPackage ../tools/misc/promql-cli { };
+
+  prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
+  prometheus = callPackage ../servers/monitoring/prometheus { };
+  prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
+  prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
+  prometheus-artifactory-exporter = callPackage ../servers/monitoring/prometheus/artifactory-exporter.nix { };
+  prometheus-atlas-exporter = callPackage ../servers/monitoring/prometheus/atlas-exporter.nix { };
+  prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
+  prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
+  prometheus-bird-exporter = callPackage ../servers/monitoring/prometheus/bird-exporter.nix { };
+  prometheus-bitcoin-exporter = callPackage ../servers/monitoring/prometheus/bitcoin-exporter.nix { };
+  prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
+  prometheus-cloudflare-exporter = callPackage ../servers/monitoring/prometheus/cloudflare-exporter.nix { };
+  prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
+  prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
+  prometheus-dcgm-exporter = callPackage ../servers/monitoring/prometheus/dcgm-exporter { };
+  prometheus-dnsmasq-exporter = callPackage ../servers/monitoring/prometheus/dnsmasq-exporter.nix { };
+  prometheus-dovecot-exporter = callPackage ../servers/monitoring/prometheus/dovecot-exporter.nix { };
+  prometheus-domain-exporter = callPackage ../servers/monitoring/prometheus/domain-exporter.nix { };
+  prometheus-fastly-exporter = callPackage ../servers/monitoring/prometheus/fastly-exporter.nix { };
+  prometheus-flow-exporter = callPackage ../servers/monitoring/prometheus/flow-exporter.nix { };
+  prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { };
+  prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { };
+  prometheus-graphite-exporter = callPackage ../servers/monitoring/prometheus/graphite-exporter.nix { };
+  prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
+  prometheus-idrac-exporter = callPackage ../servers/monitoring/prometheus/idrac-exporter.nix { };
+  prometheus-imap-mailstat-exporter = callPackage ../servers/monitoring/prometheus/imap-mailstat-exporter.nix { };
+  prometheus-influxdb-exporter = callPackage ../servers/monitoring/prometheus/influxdb-exporter.nix { };
+  prometheus-ipmi-exporter = callPackage ../servers/monitoring/prometheus/ipmi-exporter.nix { };
+  prometheus-jitsi-exporter = callPackage ../servers/monitoring/prometheus/jitsi-exporter.nix { };
+  prometheus-jmx-httpserver = callPackage ../servers/monitoring/prometheus/jmx-httpserver.nix {  };
+  prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
+  prometheus-junos-czerwonk-exporter = callPackage ../servers/monitoring/prometheus/junos-czerwonk-exporter.nix { };
+  prometheus-kea-exporter = callPackage ../servers/monitoring/prometheus/kea-exporter.nix { };
+  prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { };
+  prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
+  prometheus-lnd-exporter = callPackage ../servers/monitoring/prometheus/lnd-exporter.nix { };
+  prometheus-mail-exporter = callPackage ../servers/monitoring/prometheus/mail-exporter.nix { };
+  prometheus-mikrotik-exporter = callPackage ../servers/monitoring/prometheus/mikrotik-exporter.nix { };
+  prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
+  prometheus-modemmanager-exporter = callPackage ../servers/monitoring/prometheus/modemmanager-exporter.nix { };
+  prometheus-mongodb-exporter = callPackage ../servers/monitoring/prometheus/mongodb-exporter.nix { };
+  prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };
+  prometheus-nats-exporter = callPackage ../servers/monitoring/prometheus/nats-exporter.nix { };
+  prometheus-nextcloud-exporter = callPackage ../servers/monitoring/prometheus/nextcloud-exporter.nix { };
+  prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
+  prometheus-nginxlog-exporter = callPackage ../servers/monitoring/prometheus/nginxlog-exporter.nix { };
+  prometheus-node-exporter = callPackage ../servers/monitoring/prometheus/node-exporter.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
+  };
+  prometheus-nut-exporter = callPackage ../servers/monitoring/prometheus/nut-exporter.nix { };
+  prometheus-openldap-exporter = callPackage ../servers/monitoring/prometheus/openldap-exporter.nix { } ;
+  prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { };
+  prometheus-pgbouncer-exporter = callPackage ../servers/monitoring/prometheus/pgbouncer-exporter.nix { };
+  prometheus-php-fpm-exporter = callPackage ../servers/monitoring/prometheus/php-fpm-exporter.nix { };
+  prometheus-pihole-exporter = callPackage ../servers/monitoring/prometheus/pihole-exporter.nix {  };
+  prometheus-postfix-exporter = callPackage ../servers/monitoring/prometheus/postfix-exporter.nix { };
+  prometheus-postgres-exporter = callPackage ../servers/monitoring/prometheus/postgres-exporter.nix { };
+  prometheus-process-exporter = callPackage ../servers/monitoring/prometheus/process-exporter.nix { };
+  prometheus-pushgateway = callPackage ../servers/monitoring/prometheus/pushgateway.nix { };
+  prometheus-pve-exporter = callPackage ../servers/monitoring/prometheus/pve-exporter.nix { };
+  prometheus-redis-exporter = callPackage ../servers/monitoring/prometheus/redis-exporter.nix { };
+  prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { };
+  prometheus-rtl_433-exporter = callPackage ../servers/monitoring/prometheus/rtl_433-exporter.nix { };
+  prometheus-sabnzbd-exporter = callPackage ../servers/monitoring/prometheus/sabnzbd-exporter.nix { };
+  prometheus-sachet = callPackage ../servers/monitoring/prometheus/sachet.nix { };
+  prometheus-script-exporter = callPackage ../servers/monitoring/prometheus/script-exporter.nix { };
+  prometheus-shelly-exporter = callPackage ../servers/monitoring/prometheus/shelly-exporter.nix { };
+  prometheus-smartctl-exporter = callPackage ../servers/monitoring/prometheus/smartctl-exporter { };
+  prometheus-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
+  prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
+  prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
+  prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
+  prometheus-sql-exporter = callPackage ../servers/monitoring/prometheus/sql-exporter.nix { };
+  prometheus-systemd-exporter = callPackage ../servers/monitoring/prometheus/systemd-exporter.nix { };
+  prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
+  prometheus-unbound-exporter = callPackage ../servers/monitoring/prometheus/unbound-exporter.nix { };
+  prometheus-v2ray-exporter = callPackage ../servers/monitoring/prometheus/v2ray-exporter.nix { };
+  prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix { };
+  prometheus-wireguard-exporter = callPackage ../servers/monitoring/prometheus/wireguard-exporter.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  prometheus-zfs-exporter = callPackage ../servers/monitoring/prometheus/zfs-exporter.nix { };
+  prometheus-xmpp-alerts = callPackage ../servers/monitoring/prometheus/xmpp-alerts.nix { };
+
+  prometheus-cpp = callPackage ../development/libraries/prometheus-cpp { };
+
+  proximity-sort = callPackage ../tools/misc/proximity-sort { };
+
+  psql2csv = callPackage ../tools/misc/psql2csv { };
+
+  psqlodbc = callPackage ../development/libraries/psqlodbc { };
+
+  public-inbox = perlPackages.callPackage ../servers/mail/public-inbox { };
+
+  pure-ftpd = callPackage ../servers/ftp/pure-ftpd { };
+
+  spf-engine = python3.pkgs.callPackage ../servers/mail/spf-engine { };
+
+  pypiserver = with python3Packages; toPythonApplication pypiserver;
+
+  qpid-cpp = callPackage ../servers/amqp/qpid-cpp { };
+
+  qremotecontrol-server = libsForQt5.callPackage ../servers/misc/qremotecontrol-server { };
+
+  questdb = callPackage ../servers/nosql/questdb { };
+
+  rabbitmq-server = callPackage ../servers/amqp/rabbitmq-server {
+    inherit (darwin.apple_sdk.frameworks) AppKit Carbon Cocoa;
+    elixir = elixir_1_14;
+  };
+
+  radicale2 = callPackage ../servers/radicale/2.x.nix { };
+  radicale3 = callPackage ../servers/radicale/3.x.nix { };
+
+  radicale = radicale3;
+
+  qcal = callPackage ../tools/networking/qcal/default.nix { };
+
+  qcard = callPackage ../tools/networking/qcard { };
+
+  rake = callPackage ../development/tools/build-managers/rake { };
+
+  rakkess = callPackage ../development/tools/rakkess { };
+
+  redis = callPackage ../servers/nosql/redis { };
+
+  redli = callPackage ../tools/networking/redli { };
+
+  redstore = callPackage ../servers/http/redstore { };
+
+  reproxy = callPackage ../servers/reproxy { };
+
+  repro-get = callPackage ../tools/package-management/repro-get { };
+
+  restic = callPackage ../tools/backup/restic { };
+
+  restic-integrity = callPackage ../applications/backup/restic-integrity { };
+  restic-rest-server = callPackage ../tools/backup/restic/rest-server.nix { };
+
+  restya-board = callPackage ../servers/web-apps/restya-board { };
+
+  rethinkdb = callPackage ../servers/nosql/rethinkdb {
+    stdenv = clangStdenv;
+    libtool = darwin.cctools;
+    protobuf = protobuf_21;
+  };
+
+  rippled = callPackage ../servers/rippled {
+    boost = boost177;
+  };
+
+  rippled-validator-keys-tool = callPackage ../servers/rippled/validator-keys-tool.nix { };
+
+  roon-bridge = callPackage ../servers/roon-bridge { };
+
+  rpiplay = callPackage ../servers/rpiplay { };
+
+  roon-server = callPackage ../servers/roon-server { };
+
+  rustic-rs = callPackage ../tools/backup/rustic-rs {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  supervise = callPackage ../tools/system/supervise { };
+
+  spamassassin = callPackage ../servers/mail/spamassassin { };
+
+  deadpixi-sam-unstable = callPackage ../applications/editors/deadpixi-sam { };
+
+  samba4 = darwin.apple_sdk_11_0.callPackage ../servers/samba/4.x.nix { };
+
+  samba = samba4;
+
+  samba4Full = lowPrio (samba4.override {
+    enableLDAP = true;
+    enablePrinting = true;
+    enableMDNS = true;
+    enableDomainController = true;
+    enableRegedit = true;
+    enableCephFS = !stdenv.hostPlatform.isAarch64;
+  });
+
+  sambaFull = samba4Full;
+
+  sampler = callPackage ../applications/misc/sampler { };
+
+  scalr-cli = callPackage ../tools/admin/scalr-cli { };
+
+  scaphandre = callPackage ../servers/scaphandre { };
+
+  shairplay = callPackage ../servers/shairplay { avahi = avahi-compat; };
+
+  shairport-sync = callPackage ../servers/shairport-sync { };
+
+  sharing = callPackage ../servers/sharing { };
+
+  showoff = callPackage ../servers/http/showoff { };
+
+  serfdom = callPackage ../servers/serf { };
+
+  seyren = callPackage ../servers/monitoring/seyren { };
+
+  ruby-zoom = callPackage ../tools/text/ruby-zoom { };
+
+  sensu = callPackage ../servers/monitoring/sensu { };
+
+  inherit (callPackages ../servers/monitoring/sensu-go { })
+    sensu-go-agent
+    sensu-go-backend
+    sensu-go-cli;
+
+  check-wmiplus = callPackage ../servers/monitoring/plugins/wmiplus { };
+
+  shishi = callPackage ../servers/shishi {
+      pam = if stdenv.isLinux then pam else null;
+      # see also openssl, which has/had this same trick
+  };
+
+  sickgear = callPackage ../servers/sickbeard/sickgear.nix { };
+
+  sipwitch = callPackage ../servers/sip/sipwitch { };
+
+  slimserver = callPackage ../servers/slimserver { };
+
+  smcroute = callPackage ../servers/smcroute { };
+
+  snipe-it = callPackage ../servers/web-apps/snipe-it {
+    php = php81;
+  };
+
+  sogo = callPackage ../servers/web-apps/sogo { };
+
+  spacecookie =
+    haskell.lib.compose.justStaticExecutables haskellPackages.spacecookie;
+
+  spawn_fcgi = callPackage ../servers/http/spawn-fcgi { };
+
+  spring-boot-cli = callPackage ../development/tools/spring-boot-cli { };
+
+  squid = callPackage ../servers/squid { };
+
+  duckling-proxy = callPackage ../servers/duckling-proxy { };
+
+  sslh = callPackage ../servers/sslh { };
+
+  thttpd = callPackage ../servers/http/thttpd { };
+
+  static-web-server = callPackage ../servers/static-web-server { };
+
+  stone = callPackage ../servers/stone { };
+
+  storm = callPackage ../servers/computing/storm { };
+
+  surrealdb = callPackage ../servers/nosql/surrealdb {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
+  switcheroo-control = callPackage ../os-specific/linux/switcheroo-control { };
+
+  slurm = callPackage ../servers/computing/slurm { };
+
+  slurm-spank-stunnel = callPackage ../servers/computing/slurm-spank-stunnel { };
+
+  slurm-spank-x11 = callPackage ../servers/computing/slurm-spank-x11 { };
+
+  systemd-journal2gelf = callPackage ../tools/system/systemd-journal2gelf { };
+
+  tailscale = callPackage ../servers/tailscale { };
+
+  tailscale-nginx-auth = callPackage ../by-name/ta/tailscale-nginx-auth/package.nix { };
+
+  tailscale-systray = callPackage ../applications/misc/tailscale-systray { };
+
+  tailspin = callPackage ../tools/misc/tailspin { };
+
+  thanos = callPackage ../servers/monitoring/thanos { };
+
+  trafficserver = callPackage ../servers/http/trafficserver { };
+
+  inherit (callPackages ../servers/http/tomcat { })
+    tomcat9
+    tomcat10;
+
+  tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
+
+  torque = callPackage ../servers/computing/torque {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  tt-rss = callPackage ../servers/tt-rss { };
+  tt-rss-plugin-feediron = callPackage ../servers/tt-rss/plugin-feediron { };
+  tt-rss-plugin-ff-instagram = callPackage ../servers/tt-rss/plugin-ff-instagram { };
+  tt-rss-plugin-auth-ldap = callPackage ../servers/tt-rss/plugin-auth-ldap { };
+  tt-rss-theme-feedly = callPackage ../servers/tt-rss/theme-feedly { };
+
+  rss-bridge = callPackage ../servers/web-apps/rss-bridge { };
+
+  selfoss = callPackage ../servers/web-apps/selfoss { };
+
+  shaarli = callPackage ../servers/web-apps/shaarli { };
+
+  shiori = callPackage ../servers/web-apps/shiori { };
+
+  slskd = callPackage ../servers/web-apps/slskd { };
+
+  inherit (callPackages ../servers/web-apps/matomo {})
+    matomo
+    matomo-beta;
+
+  axis2 = callPackage ../servers/http/tomcat/axis2 { };
+
+  inherit (callPackages ../servers/unifi { })
+    unifiLTS
+    unifi5
+    unifi6
+    unifi7
+    unifi8;
+
+  unifi = unifi7;
+
+  unifi-protect-backup = callPackage ../applications/backup/unifi-protect-backup { };
+
+  unifi-video = callPackage ../servers/unifi-video { };
+
+  unpackerr = callPackage ../servers/unpackerr {
+    inherit (darwin.apple_sdk.frameworks) Cocoa WebKit;
+  };
+
+  unstructured-api = callPackage ../servers/unstructured-api { };
+
+  urserver = callPackage ../servers/urserver { };
+
+  uxplay = callPackage ../servers/uxplay { };
+
+  vouch-proxy = callPackage ../servers/vouch-proxy { };
+
+  victoriametrics = callPackage ../servers/nosql/victoriametrics { };
+
+  virtiofsd = callPackage ../servers/misc/virtiofsd { };
+
+  virtualenv = with python3Packages; toPythonApplication virtualenv;
+
+  virtualenv-clone = with python3Packages; toPythonApplication virtualenv-clone;
+
+  vmagent = callPackage ../servers/monitoring/vmagent { };
+
+  vsftpd = callPackage ../servers/ftp/vsftpd { };
+
+  wallabag = callPackage ../servers/web-apps/wallabag { };
+
+  webdav = callPackage ../servers/webdav { };
+
+  webdav-server-rs = callPackage ../servers/webdav-server-rs { };
+
+  webmetro = callPackage ../servers/webmetro { };
+
+  wesher = callPackage ../servers/wesher { };
+
+  wishlist = callPackage ../servers/wishlist { };
+
+  wsdd = callPackage ../servers/wsdd { };
+
+  webhook = callPackage ../servers/http/webhook { };
+
+  xinetd = callPackage ../servers/xinetd { };
+
+  zookeeper = callPackage ../servers/zookeeper { };
+
+  zookeeper_mt = callPackage ../development/libraries/zookeeper_mt { };
+
+  xqilla = callPackage ../development/tools/xqilla { };
+
+  xquartz = callPackage ../servers/x11/xquartz { };
+
+  quartz-wm = callPackage ../servers/x11/quartz-wm {
+    stdenv = clangStdenv;
+    inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
+    inherit (darwin.apple_sdk.libs) Xplugin;
+  };
+
+  xorg = let
+    # Use `lib.callPackageWith __splicedPackages` rather than plain `callPackage`
+    # so as not to have the newly bound xorg items already in scope,  which would
+    # have created a cycle.
+    overrides = lib.callPackageWith __splicedPackages ../servers/x11/xorg/overrides.nix {
+      inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa;
+      inherit (darwin.apple_sdk.libs) Xplugin;
+      inherit (buildPackages.darwin) bootstrap_cmds;
+      udev = if stdenv.isLinux then udev else null;
+      libdrm = if stdenv.isLinux then libdrm else null;
+    };
+
+    generatedPackages = lib.callPackageWith __splicedPackages ../servers/x11/xorg/default.nix { };
+
+    xorgPackages = makeScopeWithSplicing' {
+      otherSplices = generateSplicesForMkScope "xorg";
+      f = lib.extends overrides generatedPackages;
+    };
+
+  in recurseIntoAttrs xorgPackages;
+
+  xorg-autoconf = callPackage ../development/tools/misc/xorg-autoconf { };
+
+  xwayland = callPackage ../servers/x11/xorg/xwayland.nix { };
+
+  xwaylandvideobridge = libsForQt5.callPackage ../tools/wayland/xwaylandvideobridge { };
+
+  yaws = callPackage ../servers/http/yaws { };
+
+  youtrack = callPackage ../servers/jetbrains/youtrack.nix { };
+
+  zabbixFor = version: rec {
+    agent = (callPackages ../servers/monitoring/zabbix/agent.nix {}).${version};
+    proxy-mysql = (callPackages ../servers/monitoring/zabbix/proxy.nix { mysqlSupport = true; }).${version};
+    proxy-pgsql = (callPackages ../servers/monitoring/zabbix/proxy.nix { postgresqlSupport = true; }).${version};
+    proxy-sqlite = (callPackages ../servers/monitoring/zabbix/proxy.nix { sqliteSupport = true; }).${version};
+    server-mysql = (callPackages ../servers/monitoring/zabbix/server.nix { mysqlSupport = true; }).${version};
+    server-pgsql = (callPackages ../servers/monitoring/zabbix/server.nix { postgresqlSupport = true; }).${version};
+    web = (callPackages ../servers/monitoring/zabbix/web.nix {}).${version};
+
+    # backwards compatibility
+    server = server-pgsql;
+  } // lib.optionalAttrs ( version != "v40" ) {  # agent2 is not supported in v4
+    agent2 = (callPackages ../servers/monitoring/zabbix/agent2.nix {}).${version};
+  };
+
+  zabbix60 = recurseIntoAttrs (zabbixFor "v60");
+  zabbix50 = recurseIntoAttrs (zabbixFor "v50");
+  zabbix40 = dontRecurseIntoAttrs (zabbixFor "v40");
+
+  zabbix = zabbix60;
+
+  zipkin = callPackage ../servers/monitoring/zipkin { };
+
+  ### SERVERS / GEOSPATIAL
+
+  fit-trackee = callPackage ../servers/geospatial/fit-trackee { };
+
+  geoserver = callPackage ../servers/geospatial/geoserver { };
+
+  mapcache = callPackage ../servers/geospatial/mapcache { };
+
+  mapproxy = callPackage ../servers/geospatial/mapproxy { };
+
+  mapserver = callPackage ../servers/geospatial/mapserver { };
+
+  martin = callPackage ../servers/geospatial/martin {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  mbtileserver = callPackage ../servers/geospatial/mbtileserver { };
+
+  pg_featureserv = callPackage ../servers/geospatial/pg_featureserv { };
+
+  pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
+
+  t-rex = callPackage ../servers/geospatial/t-rex {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tegola = callPackage ../servers/geospatial/tegola { };
+
+  tile38 = callPackage ../servers/geospatial/tile38 { };
+
+  ### OS-SPECIFIC
+
+  airbuddy = callPackage ../os-specific/darwin/airbuddy { };
+
+  afuse = callPackage ../os-specific/linux/afuse { };
+
+  autofs5 = callPackage ../os-specific/linux/autofs { };
+
+  _915resolution = callPackage ../os-specific/linux/915resolution { };
+
+  nfs-utils = callPackage ../os-specific/linux/nfs-utils { };
+
+  acpi = callPackage ../os-specific/linux/acpi { };
+
+  acpid = callPackage ../os-specific/linux/acpid { };
+
+  acpitool = callPackage ../os-specific/linux/acpitool { };
+
+  aldente = callPackage ../os-specific/darwin/aldente { };
+
+  alfred = callPackage ../os-specific/linux/batman-adv/alfred.nix { };
+
+  alertmanager-irc-relay = callPackage ../servers/monitoring/alertmanager-irc-relay { };
+
+  alsa-utils = callPackage ../by-name/al/alsa-utils/package.nix {
+    fftw = fftwFloat;
+  };
+
+  apparency = callPackage ../os-specific/darwin/apparency { };
+
+  arm-trusted-firmware = callPackage ../misc/arm-trusted-firmware { };
+  inherit (arm-trusted-firmware)
+    buildArmTrustedFirmware
+    armTrustedFirmwareTools
+    armTrustedFirmwareAllwinner
+    armTrustedFirmwareAllwinnerH616
+    armTrustedFirmwareAllwinnerH6
+    armTrustedFirmwareQemu
+    armTrustedFirmwareRK3328
+    armTrustedFirmwareRK3399
+    armTrustedFirmwareS905
+    ;
+
+  mlxbf-bootimages = callPackage ../misc/mlxbf-bootimages { };
+
+  microcodeAmd = callPackage ../os-specific/linux/microcode/amd.nix { };
+
+  microcodeIntel = callPackage ../os-specific/linux/microcode/intel.nix { };
+
+  iucode-tool = callPackage ../os-specific/linux/microcode/iucode-tool.nix { };
+
+  inherit (callPackages ../os-specific/linux/apparmor { })
+    libapparmor apparmor-utils apparmor-bin-utils apparmor-parser apparmor-pam
+    apparmor-profiles apparmor-kernel-patches apparmorRulesFromClosure;
+
+  aseq2json = callPackage ../os-specific/linux/aseq2json { };
+
+  atop = callPackage ../os-specific/linux/atop { };
+
+  audit = callPackage ../os-specific/linux/audit { };
+
+  ath9k-htc-blobless-firmware = callPackage ../os-specific/linux/firmware/ath9k { };
+  ath9k-htc-blobless-firmware-unstable =
+    callPackage ../os-specific/linux/firmware/ath9k { enableUnstable = true; };
+
+  bartender = callPackage ../os-specific/darwin/bartender { };
+
+  b43Firmware_5_1_138 = callPackage ../os-specific/linux/firmware/b43-firmware/5.1.138.nix { };
+
+  b43Firmware_6_30_163_46 = callPackage ../os-specific/linux/firmware/b43-firmware/6.30.163.46.nix { };
+
+  b43FirmwareCutter = callPackage ../os-specific/linux/firmware/b43-firmware-cutter { };
+
+  epilys-bb = callPackage ../tools/system/epilys-bb { };
+
+  below = callPackage ../os-specific/linux/below { };
+
+  bt-fw-converter = callPackage ../os-specific/linux/firmware/bt-fw-converter { };
+
+  brillo = callPackage ../os-specific/linux/brillo { };
+
+  broadcom-bt-firmware = callPackage ../os-specific/linux/firmware/broadcom-bt-firmware { };
+
+  batctl = callPackage ../os-specific/linux/batman-adv/batctl.nix { };
+
+  beefi = callPackage ../os-specific/linux/beefi { };
+
+  blktrace = callPackage ../os-specific/linux/blktrace { };
+
+  bluez5 = callPackage ../os-specific/linux/bluez { };
+
+  bluez5-experimental = callPackage ../os-specific/linux/bluez {
+    withExperimental = true;
+  };
+
+  bluez = bluez5;
+
+  bolt = callPackage ../os-specific/linux/bolt { };
+
+  bpf-linker = callPackage ../development/tools/bpf-linker { };
+
+  bpftune = callPackage ../os-specific/linux/bpftune { };
+
+  bpfmon = callPackage ../os-specific/linux/bpfmon { };
+
+  bridge-utils = callPackage ../os-specific/linux/bridge-utils { };
+
+  busybox = callPackage ../os-specific/linux/busybox { };
+  busybox-sandbox-shell = callPackage ../os-specific/linux/busybox/sandbox-shell.nix {
+    # musl roadmap has RISC-V support projected for 1.1.20
+    busybox = if !stdenv.hostPlatform.isRiscV && !stdenv.hostPlatform.isLoongArch64 && stdenv.hostPlatform.libc != "bionic"
+              then pkgsStatic.busybox
+              else busybox;
+  };
+
+  cachefilesd = callPackage ../os-specific/linux/cachefilesd { };
+
+  cariddi = callPackage ../tools/security/cariddi { };
+
+  checkpolicy = callPackage ../os-specific/linux/checkpolicy { };
+
+  checksec = callPackage ../os-specific/linux/checksec { };
+
+  cifs-utils = callPackage ../os-specific/linux/cifs-utils { };
+
+  cm-rgb = python3Packages.callPackage ../tools/system/cm-rgb { };
+
+  cpustat = callPackage ../os-specific/linux/cpustat { };
+
+  cockroachdb = callPackage ../servers/sql/cockroachdb { };
+
+  cockroachdb-bin = callPackage ../servers/sql/cockroachdb/cockroachdb-bin.nix { };
+
+  coconutbattery = callPackage ../os-specific/darwin/coconutbattery { };
+
+  conky = callPackage ../os-specific/linux/conky ({
+    lua = lua5_4;
+    inherit (linuxPackages.nvidia_x11.settings) libXNVCtrl;
+  } // config.conky or {});
+
+  conntrack-tools = callPackage ../os-specific/linux/conntrack-tools { };
+
+  coredns = callPackage ../servers/dns/coredns { };
+
+  corerad = callPackage ../tools/networking/corerad { };
+
+  cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };
+
+  cpupower-gui = python3Packages.callPackage ../os-specific/linux/cpupower-gui {
+    inherit (pkgs) meson;
+  };
+
+  cpuset = callPackage ../os-specific/linux/cpuset {
+    pythonPackages = python3Packages;
+  };
+
+  criu = callPackage ../os-specific/linux/criu { };
+
+  cryptomator = callPackage ../tools/security/cryptomator {
+    jdk = jdk21.override { enableJavaFX = true; };
+  };
+
+  cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
+
+  cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { };
+
+  cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
+
+  crda = callPackage ../os-specific/linux/crda { };
+
+  cshatag = callPackage ../os-specific/linux/cshatag { };
+
+  # Darwin package set
+  #
+  # Even though this is a set of packages not single package, use `callPackage`
+  # not `callPackages` so the per-package callPackages don't have their
+  # `.override` clobbered. C.F. `llvmPackages` which does the same.
+  darwin = recurseIntoAttrs (callPackage ./darwin-packages.nix { });
+
+  defaultbrowser = callPackage ../os-specific/darwin/defaultbrowser {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  disk_indicator = callPackage ../os-specific/linux/disk-indicator { };
+
+  displaycal = callPackage ../applications/graphics/displaycal { };
+
+  displaylink = callPackage ../os-specific/linux/displaylink {
+    inherit (linuxPackages) evdi;
+  };
+
+  dmidecode = callPackage ../os-specific/linux/dmidecode { };
+
+  dmtcp = callPackage ../os-specific/linux/dmtcp { };
+
+  directvnc = callPackage ../os-specific/linux/directvnc { };
+
+  dmraid = callPackage ../os-specific/linux/dmraid { lvm2 = lvm2_dmeventd; };
+
+  drbd = callPackage ../os-specific/linux/drbd { };
+
+  dropwatch = callPackage ../os-specific/linux/dropwatch { };
+
+  dsd = callPackage ../applications/radio/dsd { };
+
+  dstat = callPackage ../os-specific/linux/dstat { };
+
+  esdm = callPackage ../os-specific/linux/esdm { };
+
+  evdev-proto = callPackage ../os-specific/bsd/freebsd/evdev-proto { };
+
+  fscryptctl = callPackage ../os-specific/linux/fscryptctl { };
+  # unstable until the first 1.x release
+  fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
+
+  fsverity-utils = callPackage ../os-specific/linux/fsverity-utils { };
+
+  fwanalyzer = callPackage ../tools/filesystems/fwanalyzer { };
+
+  fwupd = callPackage ../os-specific/linux/firmware/fwupd { };
+
+  fwupd-efi = callPackage ../os-specific/linux/firmware/fwupd-efi { };
+
+  firmware-manager = callPackage ../os-specific/linux/firmware/firmware-manager { };
+
+  firmware-updater = callPackage ../os-specific/linux/firmware/firmware-updater { };
+
+  fwts = callPackage ../os-specific/linux/fwts { };
+
+  gobi_loader = callPackage ../os-specific/linux/gobi_loader { };
+
+  libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
+
+  libuuid = if stdenv.isLinux
+    then util-linuxMinimal
+    else null;
+
+  light = callPackage ../os-specific/linux/light { };
+
+  lightum = callPackage ../os-specific/linux/lightum { };
+
+  ebtables = callPackage ../os-specific/linux/ebtables { };
+
+  error-inject = callPackages ../os-specific/linux/error-inject { };
+
+  extrace = callPackage ../os-specific/linux/extrace { };
+
+  facetimehd-calibration = callPackage ../os-specific/linux/firmware/facetimehd-calibration { };
+
+  facetimehd-firmware = callPackage ../os-specific/linux/firmware/facetimehd-firmware { };
+
+  fan2go = callPackage ../os-specific/linux/fan2go { };
+
+  fanctl = callPackage ../os-specific/linux/fanctl { };
+
+  fatrace = callPackage ../os-specific/linux/fatrace { };
+
+  ffado = libsForQt5.callPackage ../os-specific/linux/ffado {
+    inherit (linuxPackages) kernel;
+  };
+  libffado = ffado;
+
+  fbterm = callPackage ../os-specific/linux/fbterm { };
+
+  firejail = callPackage ../os-specific/linux/firejail { };
+
+  fnotifystat = callPackage ../os-specific/linux/fnotifystat { };
+
+  forkstat = callPackage ../os-specific/linux/forkstat { };
+
+  freefall = callPackage ../os-specific/linux/freefall {
+    inherit (linuxPackages) kernel;
+  };
+
+  fusePackages = dontRecurseIntoAttrs (callPackage ../os-specific/linux/fuse {
+    util-linux = util-linuxMinimal;
+  });
+  fuse = lowPrio (if stdenv.isDarwin then macfuse-stubs else fusePackages.fuse_2);
+  fuse3 = fusePackages.fuse_3;
+  fuse-common = hiPrio fusePackages.fuse_3.common;
+
+  fxload = callPackage ../os-specific/linux/fxload { };
+
+  gfxtablet = callPackage ../os-specific/linux/gfxtablet { };
+
+  gmailctl = callPackage ../applications/networking/gmailctl { };
+
+  gomp = callPackage ../applications/version-management/gomp { };
+
+  gomplate = callPackage ../development/tools/gomplate { };
+
+  gpm = callPackage ../servers/gpm {
+    withNcurses = false; # Keep curses disabled for lack of value
+
+    # latest 6.8 mysteriously fails to parse '@headings single':
+    #   https://lists.gnu.org/archive/html/bug-texinfo/2021-09/msg00011.html
+    texinfo = buildPackages.texinfo6_7;
+  };
+
+  gpm-ncurses = gpm.override { withNcurses = true; };
+
+  gpu-switch = callPackage ../os-specific/linux/gpu-switch { };
+
+  gradm = callPackage ../os-specific/linux/gradm { };
+
+  gt = callPackage ../os-specific/linux/gt { };
+
+  gtop = callPackage ../tools/system/gtop { };
+
+  hd-idle = callPackage ../os-specific/linux/hd-idle { };
+
+  hdparm = callPackage ../os-specific/linux/hdparm { };
+
+  health-check = callPackage ../os-specific/linux/health-check { };
+
+  hibernate = callPackage ../os-specific/linux/hibernate { };
+
+  hostapd = callPackage ../os-specific/linux/hostapd { };
+
+  htop = callPackage ../tools/system/htop {
+    inherit (darwin) IOKit;
+  };
+
+  htop-vim = callPackage ../tools/system/htop/htop-vim.nix { };
+
+  humility = callPackage ../development/tools/rust/humility {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  btop = darwin.apple_sdk_11_0.callPackage ../tools/system/btop {
+    stdenv = gcc12Stdenv;
+  };
+
+  nmon = callPackage ../os-specific/linux/nmon { };
+
+  hwdata = callPackage ../os-specific/linux/hwdata { };
+
+  i7z = qt5.callPackage ../os-specific/linux/i7z { };
+
+  pcm = callPackage ../os-specific/linux/pcm { };
+
+  ifmetric = callPackage ../os-specific/linux/ifmetric { };
+
+  ima-evm-utils = callPackage ../os-specific/linux/ima-evm-utils { };
+
+  intel2200BGFirmware = callPackage ../os-specific/linux/firmware/intel2200BGFirmware { };
+
+  intel-cmt-cat = callPackage ../os-specific/linux/intel-cmt-cat { };
+
+  intel-compute-runtime = callPackage ../os-specific/linux/intel-compute-runtime { };
+
+  intel-ocl = callPackage ../os-specific/linux/intel-ocl { };
+
+  level-zero = callPackage ../development/libraries/level-zero { };
+
+  iomelt = callPackage ../os-specific/linux/iomelt { };
+
+  iotop = callPackage ../os-specific/linux/iotop { };
+  iotop-c = callPackage ../os-specific/linux/iotop-c { };
+
+  iproute2 = callPackage ../os-specific/linux/iproute { };
+
+  ipu6-camera-bin = callPackage ../os-specific/linux/firmware/ipu6-camera-bins {};
+
+  ipu6-camera-hal = callPackage ../development/libraries/ipu6-camera-hal {};
+
+  ipu6ep-camera-bin = callPackage ../os-specific/linux/firmware/ipu6-camera-bins {
+    ipuVersion = "ipu6ep";
+  };
+
+  ipu6ep-camera-hal = callPackage ../development/libraries/ipu6-camera-hal {
+    ipu6-camera-bin = ipu6ep-camera-bin;
+  };
+
+  ivsc-firmware = callPackage ../os-specific/linux/firmware/ivsc-firmware { };
+
+  iputils = hiPrio (callPackage ../os-specific/linux/iputils { });
+  # hiPrio for collisions with inetutils (ping)
+
+  iptables = callPackage ../os-specific/linux/iptables { };
+  iptables-legacy = callPackage ../os-specific/linux/iptables { nftablesCompat = false; };
+  iptables-nftables-compat = iptables;
+
+  iptstate = callPackage ../os-specific/linux/iptstate { } ;
+
+  ipset = callPackage ../os-specific/linux/ipset { };
+
+  irqbalance = callPackage ../os-specific/linux/irqbalance { };
+
+  itpp = callPackage ../development/libraries/science/math/itpp { };
+
+  iw = callPackage ../os-specific/linux/iw { };
+
+  iwd = callPackage ../os-specific/linux/iwd { };
+
+  jool-cli = callPackage ../os-specific/linux/jool/cli.nix { };
+
+  juju = callPackage ../applications/networking/juju { };
+
+  jujuutils = callPackage ../os-specific/linux/jujuutils { };
+
+  karabiner-elements = callPackage ../os-specific/darwin/karabiner-elements { };
+
+  kbd = callPackage ../os-specific/linux/kbd { };
+
+  kbdlight = callPackage ../os-specific/linux/kbdlight { };
+
+  kinect-audio-setup = callPackage ../os-specific/linux/kinect-audio-setup { };
+
+  kmscon = callPackage ../os-specific/linux/kmscon { };
+
+  kmscube = callPackage ../os-specific/linux/kmscube { };
+
+  kmsxx = callPackage ../development/libraries/kmsxx { };
+
+  latencytop = callPackage ../os-specific/linux/latencytop { };
+
+  ldm = callPackage ../os-specific/linux/ldm { };
+
+  libaio = callPackage ../os-specific/linux/libaio { };
+
+  libajantv2 = callPackage ../development/libraries/libajantv2 { };
+
+  libargon2 = callPackage ../development/libraries/libargon2 { };
+
+  libatasmart = callPackage ../os-specific/linux/libatasmart { };
+
+  libax25 = callPackage ../development/libraries/libax25 { };
+
+  libcgroup = callPackage ../os-specific/linux/libcgroup { };
+
+  libdatachannel = callPackage ../development/libraries/libdatachannel { };
+
+  libkrun = callPackage ../development/libraries/libkrun {
+    inherit (darwin.apple_sdk.frameworks) Hypervisor;
+  };
+
+  libkrun-sev = libkrun.override { sevVariant = true; };
+
+  libkrunfw = callPackage ../development/libraries/libkrunfw { };
+
+  libnl = callPackage ../os-specific/linux/libnl { };
+
+  libnl-tiny = callPackage ../os-specific/linux/libnl-tiny { };
+
+  libtraceevent = callPackage ../os-specific/linux/libtraceevent { };
+
+  libtracefs = callPackage ../os-specific/linux/libtracefs { };
+
+  lieer = callPackage ../applications/networking/lieer { };
+
+  linuxConsoleTools = callPackage ../os-specific/linux/consoletools { };
+
+  linux-wifi-hotspot = callPackage ../os-specific/linux/linux-wifi-hotspot { };
+
+  linthesia = callPackage ../games/linthesia/default.nix { };
+
+  libreelec-dvb-firmware = callPackage ../os-specific/linux/firmware/libreelec-dvb-firmware { };
+
+  openiscsi = callPackage ../os-specific/linux/open-iscsi { };
+
+  open-isns = callPackage ../os-specific/linux/open-isns { };
+
+  osx-cpu-temp = callPackage ../os-specific/darwin/osx-cpu-temp {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  macfuse-stubs = callPackage ../os-specific/darwin/macfuse {
+    inherit (darwin) libtapi;
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration;
+  };
+
+  osxsnarf = callPackage ../os-specific/darwin/osxsnarf { };
+
+  plistwatch = callPackage ../os-specific/darwin/plistwatch { };
+
+  power-calibrate = callPackage ../os-specific/linux/power-calibrate { };
+
+  powercap = callPackage ../os-specific/linux/powercap { };
+
+  powerstat = callPackage ../os-specific/linux/powerstat { };
+
+  projecteur = libsForQt5.callPackage ../os-specific/linux/projecteur { };
+
+  smemstat = callPackage ../os-specific/linux/smemstat { };
+
+  tgpt = callPackage ../tools/misc/tgpt { };
+
+  tgt = callPackage ../tools/networking/tgt { };
+
+  lkl = callPackage ../applications/virtualization/lkl { };
+  lklWithFirewall = callPackage ../applications/virtualization/lkl { firewallSupport = true; };
+
+  inherit (callPackages ../os-specific/linux/kernel-headers { inherit (pkgsBuildBuild) elf-header; })
+    linuxHeaders makeLinuxHeaders;
+
+  klibc = callPackage ../os-specific/linux/klibc { };
+
+  klibcShrunk = lowPrio (callPackage ../os-specific/linux/klibc/shrunk.nix { });
+
+  linuxKernel = recurseIntoAttrs (callPackage ./linux-kernels.nix { });
+
+  inherit (linuxKernel) buildLinux linuxConfig kernelPatches;
+
+  linuxPackagesFor = linuxKernel.packagesFor;
+
+  hardenedLinuxPackagesFor = linuxKernel.hardenedPackagesFor;
+
+  linuxManualConfig = linuxKernel.manualConfig;
+
+  linuxPackages_custom = linuxKernel.customPackage;
+
+  # This serves as a test for linuxPackages_custom
+  linuxPackages_custom_tinyconfig_kernel = let
+    base = linuxPackages.kernel;
+    tinyLinuxPackages = linuxKernel.customPackage {
+      inherit (base) version modDirVersion src;
+      allowImportFromDerivation = false;
+      configfile = linuxConfig {
+        makeTarget = "tinyconfig";
+        src = base.src;
+      };
+    };
+    in tinyLinuxPackages.kernel;
+
+  # The current default kernel / kernel modules.
+  linuxPackages = linuxKernel.packageAliases.linux_default;
+  linux = linuxPackages.kernel;
+
+  linuxPackages_latest = linuxKernel.packageAliases.linux_latest;
+  linux_latest = linuxPackages_latest.kernel;
+
+  # Testing (rc) kernel
+  linuxPackages_testing = linuxKernel.packages.linux_testing;
+  linux_testing = linuxKernel.kernels.linux_testing;
+
+  # FIXME: Remove and alias to `linux(Packages)_testing`` after 23.11 is released
+  linuxPackages_testing_bcachefs = linuxKernel.packages.linux_testing_bcachefs;
+  linux_testing_bcachefs = linuxKernel.kernels.linux_testing_bcachefs;
+
+  # Realtime kernel
+  linuxPackages-rt = linuxKernel.packageAliases.linux_rt_default;
+  linuxPackages-rt_latest = linuxKernel.packageAliases.linux_rt_latest;
+  linux-rt = linuxPackages-rt.kernel;
+  linux-rt_latest = linuxPackages-rt_latest.kernel;
+
+  # hardened kernels
+  linuxPackages_hardened = linuxKernel.packages.linux_hardened;
+  linux_hardened = linuxPackages_hardened.kernel;
+  linuxPackages_4_19_hardened = linuxKernel.packages.linux_4_19_hardened;
+  linux_4_19_hardened = linuxPackages_4_19_hardened.kernel;
+  linuxPackages_5_4_hardened = linuxKernel.packages.linux_5_4_hardened;
+  linux_5_4_hardened = linuxKernel.kernels.linux_5_4_hardened;
+  linuxPackages_5_10_hardened = linuxKernel.packages.linux_5_10_hardened;
+  linux_5_10_hardened = linuxKernel.kernels.linux_5_10_hardened;
+  linuxPackages_5_15_hardened = linuxKernel.packages.linux_5_15_hardened;
+  linux_5_15_hardened = linuxKernel.kernels.linux_5_15_hardened;
+  linuxPackages_6_1_hardened = linuxKernel.packages.linux_6_1_hardened;
+  linux_6_1_hardened = linuxKernel.kernels.linux_6_1_hardened;
+  linuxPackages_6_5_hardened = linuxKernel.packages.linux_6_5_hardened;
+  linux_6_5_hardened = linuxKernel.kernels.linux_6_5_hardened;
+  linuxPackages_6_6_hardened = linuxKernel.packages.linux_6_6_hardened;
+  linux_6_6_hardened = linuxKernel.kernels.linux_6_6_hardened;
+
+  # GNU Linux-libre kernels
+  linuxPackages-libre = linuxKernel.packages.linux_libre;
+  linux-libre = linuxPackages-libre.kernel;
+  linuxPackages_latest-libre = linuxKernel.packages.linux_latest_libre;
+  linux_latest-libre = linuxPackages_latest-libre.kernel;
+
+  # zen-kernel
+  linuxPackages_zen = linuxKernel.packages.linux_zen;
+  linuxPackages_lqx = linuxKernel.packages.linux_lqx;
+
+  # XanMod kernel
+  linuxPackages_xanmod = linuxKernel.packages.linux_xanmod;
+  linux_xanmod = linuxKernel.kernels.linux_xanmod;
+  linuxPackages_xanmod_stable = linuxKernel.packages.linux_xanmod_stable;
+  linux_xanmod_stable = linuxKernel.kernels.linux_xanmod_stable;
+  linuxPackages_xanmod_latest = linuxKernel.packages.linux_xanmod_latest;
+  linux_xanmod_latest = linuxKernel.kernels.linux_xanmod_latest;
+
+  linux-doc = callPackage ../os-specific/linux/kernel/htmldocs.nix { };
+
+  cryptodev = linuxPackages.cryptodev;
+
+  dpdk = callPackage ../os-specific/linux/dpdk {
+    kernel = null; # dpdk modules are in linuxPackages.dpdk.kmod
+  };
+
+  keyutils = callPackage ../os-specific/linux/keyutils { };
+
+  libselinux = callPackage ../os-specific/linux/libselinux { };
+
+  libsemanage = callPackage ../os-specific/linux/libsemanage {
+    python = python3;
+  };
+
+  librasterlite2 = callPackage ../development/libraries/librasterlite2 {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  libraqm = callPackage ../development/libraries/libraqm { };
+
+  libraw = callPackage ../development/libraries/libraw { };
+
+  libraw1394 = callPackage ../development/libraries/libraw1394 { };
+
+  librealsense = darwin.apple_sdk_11_0.callPackage ../development/libraries/librealsense { };
+
+  librealsenseWithCuda = callPackage ../development/libraries/librealsense {
+    cudaSupport = true;
+    # librealsenseWithCuda doesn't build on gcc11. CUDA 11.3 is the last version
+    # to use pre-gcc11, in particular gcc9.
+    stdenv = gcc9Stdenv;
+  };
+
+  librealsenseWithoutCuda = callPackage ../development/libraries/librealsense {
+    cudaSupport = false;
+  };
+
+  librealsense-gui = callPackage ../development/libraries/librealsense {
+    enableGUI = true;
+  };
+
+  libsass = callPackage ../development/libraries/libsass { };
+
+  libsepol = callPackage ../os-specific/linux/libsepol { };
+
+  libsmbios = callPackage ../os-specific/linux/libsmbios { };
+
+  libsurvive = callPackage ../development/libraries/libsurvive { };
+
+  lm_sensors = callPackage ../os-specific/linux/lm-sensors { };
+
+  lockdep = callPackage ../os-specific/linux/lockdep { };
+
+  lsirec = callPackage ../os-specific/linux/lsirec { };
+
+  lsiutil = callPackage ../os-specific/linux/lsiutil { };
+
+  kaitai-struct-compiler = callPackage ../development/compilers/kaitai-struct-compiler { };
+
+  kmod = callPackage ../os-specific/linux/kmod { };
+
+  kmod-blacklist-ubuntu = callPackage ../os-specific/linux/kmod-blacklist-ubuntu { };
+
+  kmod-debian-aliases = callPackage ../os-specific/linux/kmod-debian-aliases { };
+
+  libcap = callPackage ../os-specific/linux/libcap { };
+
+  libcap_ng = callPackage ../os-specific/linux/libcap-ng { };
+
+  libnotify = callPackage ../development/libraries/libnotify { };
+
+  libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
+
+  lsscsi = callPackage ../os-specific/linux/lsscsi { };
+
+  lvm2 = callPackage ../os-specific/linux/lvm2/2_03.nix {
+    # break the cyclic dependency:
+    # util-linux (non-minimal) depends (optionally, but on by default) on systemd,
+    # systemd (optionally, but on by default) on cryptsetup and cryptsetup depends on lvm2
+    util-linux = util-linuxMinimal;
+  };
+
+  lvm2_dmeventd = lvm2.override {
+    enableDmeventd = true;
+    enableCmdlib = true;
+  };
+  lvm2_vdo = lvm2_dmeventd.override {
+    enableVDO = true;
+  };
+
+  maddy = callPackage ../servers/maddy { };
+
+  mbelib = callPackage ../development/libraries/audio/mbelib { };
+
+  mbpfan = callPackage ../os-specific/linux/mbpfan { };
+
+  mdadm = mdadm4;
+  mdadm4 = callPackage ../os-specific/linux/mdadm { };
+
+  mdevctl = callPackage ../os-specific/linux/mdevctl { };
+
+  metastore = callPackage ../os-specific/linux/metastore { };
+
+  minimal-bootstrap = recurseIntoAttrs (import ../os-specific/linux/minimal-bootstrap {
+    inherit (stdenv) buildPlatform hostPlatform;
+    inherit lib config;
+    fetchurl = import ../build-support/fetchurl/boot.nix {
+      inherit (stdenv.buildPlatform) system;
+    };
+    checkMeta = callPackage ../stdenv/generic/check-meta.nix { };
+  });
+  minimal-bootstrap-sources = callPackage ../os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix { };
+  make-minimal-bootstrap-sources = callPackage ../os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix {
+    inherit (stdenv) hostPlatform;
+  };
+
+  mingetty = callPackage ../os-specific/linux/mingetty { };
+
+  miraclecast = callPackage ../os-specific/linux/miraclecast { };
+
+  mkinitcpio-nfs-utils = callPackage ../os-specific/linux/mkinitcpio-nfs-utils { };
+
+  mmc-utils = callPackage ../os-specific/linux/mmc-utils { };
+
+  aggregateModules = modules:
+    callPackage ../os-specific/linux/kmod/aggregator.nix {
+      inherit (buildPackages) kmod;
+      inherit modules;
+    };
+
+  multipart-parser-c = callPackage ../development/libraries/multipart-parser-c { };
+
+  multipath-tools = callPackage ../os-specific/linux/multipath-tools { };
+
+  musl = callPackage ../os-specific/linux/musl { };
+
+  musl-fts = callPackage ../os-specific/linux/musl-fts { };
+  musl-obstack = callPackage ../os-specific/linux/musl-obstack { };
+
+  nsh = callPackage ../shells/nsh { };
+
+  nushell = darwin.apple_sdk_11_0.callPackage ../shells/nushell {
+    inherit (darwin.apple_sdk_11_0) Libsystem;
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit Security;
+  };
+
+  nushellFull = nushell.override { additionalFeatures = p: p ++ ["dataframe" "extra"]; };
+
+  nu_scripts = callPackage ../shells/nushell/nu_scripts { };
+
+  nushellPlugins = recurseIntoAttrs (callPackage ../shells/nushell/plugins {
+    inherit (darwin.apple_sdk_11_0.frameworks) IOKit CoreFoundation Foundation Security;
+  });
+
+  nettools = if stdenv.isLinux
+    then callPackage ../os-specific/linux/net-tools { }
+    else unixtools.nettools;
+
+  nftables = callPackage ../os-specific/linux/nftables { };
+
+  noah = callPackage ../os-specific/darwin/noah {
+    inherit (darwin.apple_sdk.frameworks) Hypervisor;
+  };
+
+  numactl = callPackage ../os-specific/linux/numactl { };
+
+  numad = callPackage ../os-specific/linux/numad { };
+
+  nvme-cli = callPackage ../os-specific/linux/nvme-cli { };
+
+  nvmet-cli = callPackage ../os-specific/linux/nvmet-cli { };
+
+  system76-firmware = callPackage ../os-specific/linux/firmware/system76-firmware { };
+
+  system76-keyboard-configurator = callPackage ../applications/misc/system76-keyboard-configurator { };
+
+  ocf-resource-agents = callPackage ../os-specific/linux/ocf-resource-agents { };
+
+  open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { };
+  open-vm-tools-headless = open-vm-tools.override { withX = false; };
+
+  oxtools = callPackage ../os-specific/linux/oxtools { };
+
+  air = callPackage ../development/tools/air { };
+
+  delve = callPackage ../development/tools/delve { };
+
+  dep = callPackage ../development/tools/dep { };
+
+  dep2nix = callPackage ../development/tools/dep2nix { };
+
+  easyjson = callPackage ../development/tools/easyjson { };
+
+  iferr = callPackage ../development/tools/iferr { };
+
+  gci = callPackage ../development/tools/gci { };
+
+  gcov2lcov = callPackage ../development/tools/gcov2lcov { };
+
+  ginkgo = callPackage ../development/tools/ginkgo { };
+
+  gdlv = darwin.apple_sdk_11_0.callPackage ../development/tools/gdlv {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation CoreGraphics Metal AppKit;
+  };
+
+  go-bindata = callPackage ../development/tools/go-bindata { };
+
+  go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
+
+  go-minimock = callPackage ../development/tools/go-minimock { };
+
+  go-protobuf = callPackage ../development/tools/go-protobuf { };
+
+  go-symbols = callPackage ../development/tools/go-symbols { };
+
+  go-toml = callPackage ../development/tools/go-toml { };
+
+  go-outline = callPackage ../development/tools/go-outline { };
+
+  gocode = callPackage ../development/tools/gocode { };
+
+  gocode-gomod = callPackage ../development/tools/gocode-gomod { };
+
+  goconst = callPackage ../development/tools/goconst { };
+
+  goconvey = callPackage ../development/tools/goconvey {
+    buildGoModule = buildGo120Module;
+  };
+
+  go-callvis = callPackage ../development/tools/go-callvis { };
+
+  gofumpt = callPackage ../development/tools/gofumpt { };
+
+  gotags = callPackage ../development/tools/gotags { };
+
+  go-task = callPackage ../development/tools/go-task { };
+
+  golines = callPackage ../development/tools/golines { };
+
+  golint = callPackage ../development/tools/golint { };
+
+  golangci-lint = callPackage ../development/tools/golangci-lint { };
+
+  golangci-lint-langserver = callPackage ../development/tools/golangci-lint-langserver { };
+
+  gocyclo = callPackage ../development/tools/gocyclo { };
+
+  godef = callPackage ../development/tools/godef { };
+
+  goimports-reviser = callPackage ../development/tools/goimports-reviser { };
+
+  gopkgs = callPackage ../development/tools/gopkgs { };
+
+  gosec = callPackage ../development/tools/gosec { };
+
+  gotemplate = callPackage ../development/tools/gotemplate { };
+
+  gotraceui = callPackage ../development/tools/gotraceui { };
+
+  govers = callPackage ../development/tools/govers { };
+
+  govendor = callPackage ../development/tools/govendor { };
+
+  goverview = callPackage ../tools/security/goverview { };
+
+  go-tools = callPackage ../development/tools/go-tools { };
+
+  gotest = callPackage ../development/tools/gotest { };
+
+  gotestfmt = callPackage ../development/tools/gotestfmt { };
+
+  gotools = callPackage ../development/tools/gotools { };
+
+  gotop = callPackage ../tools/system/gotop {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  go-migrate = callPackage ../development/tools/go-migrate { };
+
+  go-jet = callPackage ../development/tools/go-jet { };
+
+  go-mockery = callPackage ../development/tools/go-mockery { };
+
+  go-mod-graph-chart = callPackage ../development/tools/go-mod-graph-chart { };
+
+  gomacro = callPackage ../development/tools/gomacro {
+    buildGoModule = buildGo120Module;
+  };
+
+  gomodifytags = callPackage ../development/tools/gomodifytags { };
+
+  gops = callPackage ../development/tools/gops { };
+
+  gore = callPackage ../development/tools/gore { };
+
+  goresym = callPackage ../development/tools/goresym { };
+
+  gotests = callPackage ../development/tools/gotests { };
+
+  gotestsum = callPackage ../development/tools/gotestsum { };
+
+  gqlgenc = callPackage ../development/tools/gqlgenc { };
+
+  impl = callPackage ../development/tools/impl { };
+
+  moq = callPackage ../development/tools/moq { };
+
+  quicktemplate = callPackage ../development/tools/quicktemplate { };
+
+  linux_logo = callPackage ../tools/misc/linux-logo { };
+
+  linux-pam = callPackage ../os-specific/linux/pam { };
+
+  nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
+
+  octomap = callPackage ../development/libraries/octomap { };
+
+  odin = callPackage ../development/compilers/odin {
+    inherit (pkgs.darwin.apple_sdk_11_0) MacOSX-SDK;
+  };
+
+  odp-dpdk = callPackage ../os-specific/linux/odp-dpdk { };
+
+  odroid-xu3-bootloader = callPackage ../tools/misc/odroid-xu3-bootloader { };
+
+  ofono = callPackage ../tools/networking/ofono { };
+
+  okapi = callPackage ../development/libraries/okapi {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ols = callPackage ../development/tools/ols { };
+
+  openpam = callPackage ../development/libraries/openpam { };
+
+  openbsm = callPackage ../development/libraries/openbsm { };
+
+  pagemon = callPackage ../os-specific/linux/pagemon { };
+
+  pam = if stdenv.isLinux then linux-pam else openpam;
+
+  # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
+
+  pam_ccreds = callPackage ../os-specific/linux/pam_ccreds { };
+
+  pam_dp9ik = callPackage ../os-specific/linux/pam_dp9ik { };
+
+  pam_gnupg = callPackage ../os-specific/linux/pam_gnupg { };
+
+  pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
+
+  pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
+
+  pam_mktemp = callPackage ../os-specific/linux/pam_mktemp { };
+
+  pam_mount = callPackage ../os-specific/linux/pam_mount { };
+
+  pam_mysql = callPackage ../os-specific/linux/pam_mysql { };
+
+  pam_p11 = callPackage ../os-specific/linux/pam_p11 { };
+
+  pam_pgsql = callPackage ../os-specific/linux/pam_pgsql { };
+
+  pam_rssh = callPackage ../os-specific/linux/pam_rssh { };
+
+  pam_ssh_agent_auth = callPackage ../os-specific/linux/pam_ssh_agent_auth { };
+
+  pam_tmpdir = callPackage ../os-specific/linux/pam_tmpdir { };
+
+  pam_u2f = callPackage ../os-specific/linux/pam_u2f { };
+
+  pam_usb = callPackage ../os-specific/linux/pam_usb { };
+
+  pam_ussh = callPackage ../os-specific/linux/pam_ussh { };
+
+  paxctl = callPackage ../os-specific/linux/paxctl { };
+
+  paxtest = callPackage ../os-specific/linux/paxtest { };
+
+  pax-utils = callPackage ../os-specific/linux/pax-utils { };
+
+  pcmciaUtils = callPackage ../os-specific/linux/pcmciautils { };
+
+  pcstat = callPackage ../tools/system/pcstat { };
+
+  perf-tools = callPackage ../os-specific/linux/perf-tools { };
+
+  pgrok = callPackage ../tools/networking/pgrok { };
+
+  picoprobe-udev-rules = callPackage ../os-specific/linux/picoprobe-udev-rules { };
+
+  pipes = callPackage ../misc/screensavers/pipes { };
+
+  pipes-rs = callPackage ../misc/screensavers/pipes-rs { };
+
+  pipework = callPackage ../os-specific/linux/pipework { };
+
+  pktgen = callPackage ../os-specific/linux/pktgen { };
+
+  plymouth = callPackage ../os-specific/linux/plymouth { };
+
+  pmount = callPackage ../os-specific/linux/pmount { };
+
+  pmutils = callPackage ../os-specific/linux/pm-utils { };
+
+  policycoreutils = callPackage ../os-specific/linux/policycoreutils { };
+
+  semodule-utils = callPackage ../os-specific/linux/semodule-utils { };
+
+  pdns = callPackage ../servers/dns/pdns { };
+
+  powerdns-admin = callPackage ../applications/networking/powerdns-admin { };
+
+  dnsdist = callPackage ../servers/dns/dnsdist { };
+
+  pdns-recursor = callPackage ../servers/dns/pdns-recursor { };
+
+  powertop = callPackage ../os-specific/linux/powertop { };
+
+  pps-tools = callPackage ../os-specific/linux/pps-tools { };
+
+  procps = if stdenv.isLinux
+    then callPackage ../os-specific/linux/procps-ng { }
+    else unixtools.procps;
+
+  procdump = callPackage ../os-specific/linux/procdump { };
+
+  prototool = callPackage ../development/tools/prototool { };
+
+  qemu_kvm = lowPrio (qemu.override { hostCpuOnly = true; });
+  qemu_full = lowPrio (qemu.override { smbdSupport = true; cephSupport = true; glusterfsSupport = true; });
+
+  # See `xenPackages` source for explanations.
+  # Building with `xen` instead of `xen-slim` is possible, but makes no sense.
+  qemu_xen = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-slim; });
+  qemu_xen-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-light; });
+  qemu_xen_4_15 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_15-slim; });
+  qemu_xen_4_15-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_15-light; });
+
+  qemu_test = lowPrio (qemu.override { hostCpuOnly = true; nixosTestRunner = true; });
+
+  quick-lint-js = callPackage ../development/tools/quick-lint-js { };
+
+  linux-firmware = callPackage ../os-specific/linux/firmware/linux-firmware { };
+
+  qmk-udev-rules = callPackage ../os-specific/linux/qmk-udev-rules { };
+
+  radeontools = callPackage ../os-specific/linux/radeontools { };
+
+  radeontop = callPackage ../os-specific/linux/radeontop { };
+
+  rasdaemon = callPackage ../os-specific/linux/rasdaemon { };
+
+  raspberrypifw = callPackage ../os-specific/linux/firmware/raspberrypi { };
+  raspberrypiWirelessFirmware = callPackage ../os-specific/linux/firmware/raspberrypi-wireless { };
+
+  raspberrypi-eeprom = callPackage ../os-specific/linux/raspberrypi-eeprom { };
+
+  raspberrypi-armstubs = callPackage ../os-specific/linux/firmware/raspberrypi/armstubs.nix { };
+
+  reap = callPackage ../os-specific/linux/reap { };
+
+  rectangle = callPackage ../os-specific/darwin/rectangle { };
+
+  regionset = callPackage ../os-specific/linux/regionset { };
+
+  rfkill_udev = callPackage ../os-specific/linux/rfkill/udev.nix { };
+
+  riscv-pk = callPackage ../misc/riscv-pk { };
+
+  ristate = callPackage ../tools/misc/ristate { };
+
+  roccat-tools = callPackage ../os-specific/linux/roccat-tools { };
+
+  rojo = callPackage ../development/tools/rojo { };
+
+  mediamtx = callPackage ../servers/mediamtx { };
+
+  rtkit = callPackage ../os-specific/linux/rtkit { };
+
+  rt-tests = callPackage ../os-specific/linux/rt-tests { };
+
+  rt5677-firmware = callPackage ../os-specific/linux/firmware/rt5677 { };
+
+  rtl8192su-firmware = callPackage ../os-specific/linux/firmware/rtl8192su-firmware { };
+
+  rtl8761b-firmware = callPackage ../os-specific/linux/firmware/rtl8761b-firmware { };
+
+  rtw88-firmware = callPackage ../os-specific/linux/firmware/rtw88-firmware { };
+
+  rvvm = callPackage ../applications/virtualization/rvvm { };
+
+  s3ql = callPackage ../tools/backup/s3ql { };
+
+  sasutils = callPackage ../os-specific/linux/sasutils { };
+
+  sass = callPackage ../development/tools/sass { };
+
+  sassc = callPackage ../development/tools/sassc { };
+
+  scanmem = callPackage ../tools/misc/scanmem { };
+
+  schedtool = callPackage ../os-specific/linux/schedtool { };
+
+  sddm-chili-theme = libsForQt5.callPackage ../data/themes/chili-sddm { };
+
+  sdparm = callPackage ../os-specific/linux/sdparm { };
+
+  sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel { };
+
+  setools = callPackage ../os-specific/linux/setools { };
+
+  seturgent = callPackage ../os-specific/linux/seturgent { };
+
+  sgx-azure-dcap-client = callPackage ../os-specific/linux/sgx/azure-dcap-client { };
+
+  sgx-sdk = callPackage ../os-specific/linux/sgx/sdk { };
+
+  sgx-ssl = callPackage ../os-specific/linux/sgx/ssl { };
+
+  sgx-psw = callPackage ../os-specific/linux/sgx/psw {
+    protobuf = protobuf_21;
+  };
+
+  shadow = callPackage ../os-specific/linux/shadow { };
+
+  shortcat = callPackage ../os-specific/darwin/shortcat { };
+
+  sinit = callPackage ../os-specific/linux/sinit {
+    rcinit = "/etc/rc.d/rc.init";
+    rcshutdown = "/etc/rc.d/rc.shutdown";
+  };
+
+  skopeo = callPackage ../development/tools/skopeo { };
+
+  srisum = callPackage ../tools/misc/srisum { };
+
+  smem = callPackage ../os-specific/linux/smem { };
+
+  smimesign = callPackage ../os-specific/darwin/smimesign { };
+
+  solo5 = callPackage ../os-specific/solo5 { };
+
+  statik = callPackage ../development/tools/statik { };
+
+  statifier = callPackage ../os-specific/linux/statifier { };
+
+  steamos-devkit = callPackage ../development/tools/steamos-devkit { };
+
+  swiftdefaultapps = callPackage ../os-specific/darwin/swiftdefaultapps { };
+
+  sysdig = callPackage ../os-specific/linux/sysdig {
+    kernel = null;
+  }; # sysdig is a client, for a driver look at linuxPackagesFor
+
+  sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
+
+  sysprof = callPackage ../development/tools/profiling/sysprof { };
+
+  libsysprof-capture = callPackage ../development/tools/profiling/sysprof/capture.nix { };
+
+  sysklogd = callPackage ../os-specific/linux/sysklogd { };
+
+  syslinux = callPackage ../os-specific/linux/syslinux { };
+
+  sysstat = callPackage ../os-specific/linux/sysstat { };
+
+  systemd = callPackage ../os-specific/linux/systemd {
+    # break some cyclic dependencies
+    util-linux = util-linuxMinimal;
+    # provide a super minimal gnupg used for systemd-machined
+    gnupg = gnupg.override {
+      enableMinimal = true;
+      guiSupport = false;
+    };
+  };
+  systemdMinimal = systemd.override {
+    pname = "systemd-minimal";
+    withAcl = false;
+    withAnalyze = false;
+    withApparmor = false;
+    withAudit = false;
+    withCompression = false;
+    withCoredump = false;
+    withCryptsetup = false;
+    withRepart = false;
+    withDocumentation = false;
+    withEfi = false;
+    withFido2 = false;
+    withHostnamed = false;
+    withHomed = false;
+    withHwdb = false;
+    withImportd = false;
+    withLibBPF = false;
+    withLibidn2 = false;
+    withLocaled = false;
+    withLogind = false;
+    withMachined = false;
+    withNetworkd = false;
+    withNss = false;
+    withOomd = false;
+    withPCRE2 = false;
+    withPam = false;
+    withPolkit = false;
+    withPortabled = false;
+    withRemote = false;
+    withResolved = false;
+    withShellCompletions = false;
+    withSysupdate = false;
+    withSysusers = false;
+    withTimedated = false;
+    withTimesyncd = false;
+    withTpm2Tss = false;
+    withUserDb = false;
+    withUkify = false;
+    withBootloader = false;
+  };
+  systemdLibs = systemdMinimal.override {
+    pname = "systemd-minimal-libs";
+    buildLibsOnly = true;
+  };
+
+  udev =
+    if (with stdenv.hostPlatform; isLinux && isStatic) then libudev-zero
+    else systemdLibs;
+
+  systemd-wait = callPackage ../os-specific/linux/systemd-wait { };
+
+  sysvinit = callPackage ../os-specific/linux/sysvinit { };
+
+  sysvtools = sysvinit.override {
+    withoutInitTools = true;
+  };
+
+  # FIXME: `tcp-wrapper' is actually not OS-specific.
+  tcp_wrappers = callPackage ../os-specific/linux/tcp-wrappers { };
+
+  teck-udev-rules = callPackage ../os-specific/linux/teck-udev-rules { };
+
+  tiptop = callPackage ../os-specific/linux/tiptop { };
+
+  tpacpi-bat = callPackage ../os-specific/linux/tpacpi-bat { };
+
+  trickster = callPackage ../servers/trickster/trickster.nix { };
+
+  trinity = callPackage ../os-specific/linux/trinity { };
+
+  trino-cli = callPackage ../development/tools/database/trino-cli { };
+
+  trinsic-cli = callPackage ../tools/admin/trinsic-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  trust-dns = callPackage ../servers/dns/trust-dns { };
+
+  trustymail = callPackage ../tools/security/trustymail { };
+
+  tunctl = callPackage ../os-specific/linux/tunctl { };
+
+  twa = callPackage ../tools/networking/twa { };
+
+  twingate = callPackage ../applications/networking/twingate { };
+
+  # Upstream U-Boots:
+  inherit (callPackage ../misc/uboot {})
+    buildUBoot
+    ubootTools
+    ubootA20OlinuxinoLime
+    ubootA20OlinuxinoLime2EMMC
+    ubootBananaPi
+    ubootBananaPim3
+    ubootBananaPim64
+    ubootAmx335xEVM
+    ubootClearfog
+    ubootCubieboard2
+    ubootGuruplug
+    ubootJetsonTK1
+    ubootLibreTechCC
+    ubootNanoPCT4
+    ubootNovena
+    ubootOdroidC2
+    ubootOdroidXU3
+    ubootOlimexA64Olinuxino
+    ubootOrangePi3
+    ubootOrangePiPc
+    ubootOrangePiZeroPlus2H5
+    ubootOrangePiZero
+    ubootOrangePiZero2
+    ubootPcduino3Nano
+    ubootPine64
+    ubootPine64LTS
+    ubootPinebook
+    ubootPinebookPro
+    ubootQemuAarch64
+    ubootQemuArm
+    ubootQemuRiscv64Smode
+    ubootQemuX86
+    ubootRaspberryPi
+    ubootRaspberryPi2
+    ubootRaspberryPi3_32bit
+    ubootRaspberryPi3_64bit
+    ubootRaspberryPi4_32bit
+    ubootRaspberryPi4_64bit
+    ubootRaspberryPiZero
+    ubootRock64
+    ubootRock64v2
+    ubootRockPi4
+    ubootRockPro64
+    ubootROCPCRK3399
+    ubootSheevaplug
+    ubootSopine
+    ubootUtilite
+    ubootWandboard
+    ;
+
+  # Upstream Barebox:
+  inherit (callPackage ../misc/barebox {})
+    buildBarebox
+    bareboxTools;
+
+  uclibc-ng-cross = uclibc-ng.override {
+    stdenv = crossLibcStdenv;
+  };
+
+  # Aliases
+  uclibc = uclibc-ng;
+  uclibcCross = uclibc-ng-cross;
+
+  eudev = callPackage ../by-name/eu/eudev/package.nix {
+    util-linux = util-linuxMinimal;
+  };
+
+  libudev0-shim = callPackage ../os-specific/linux/libudev0-shim { };
+
+  udisks2 = callPackage ../os-specific/linux/udisks/2-default.nix { };
+  udisks = udisks2;
+
+  ugtrain = callPackage ../tools/misc/ugtrain { };
+
+  unscd = callPackage ../os-specific/linux/unscd { };
+
+  untie = callPackage ../os-specific/linux/untie { };
+
+  upower = callPackage ../os-specific/linux/upower { };
+
+  upscayl = callPackage ../applications/graphics/upscayl { };
+
+  usbguard = callPackage ../os-specific/linux/usbguard { };
+
+  usbguard-notifier = callPackage ../os-specific/linux/usbguard-notifier { };
+
+  usbrelay = callPackage ../os-specific/linux/usbrelay { };
+  usbrelayd = callPackage ../os-specific/linux/usbrelay/daemon.nix { };
+
+  usbtop = callPackage ../os-specific/linux/usbtop { };
+
+  usbutils = callPackage ../os-specific/linux/usbutils { };
+
+  userhosts = callPackage ../tools/networking/userhosts { };
+
+  usermount = callPackage ../os-specific/linux/usermount { };
+
+  util-linux = callPackage ../os-specific/linux/util-linux { };
+
+  util-linuxMinimal = util-linux.override {
+    nlsSupport = false;
+    ncursesSupport = false;
+    systemdSupport = false;
+    translateManpages = false;
+  };
+
+  v4l-utils = qt5.callPackage ../os-specific/linux/v4l-utils { };
+
+  v4l2-relayd = callPackage ../os-specific/linux/v4l2-relayd { };
+
+  vendir = callPackage ../development/tools/vendir { };
+
+  vndr = callPackage ../development/tools/vndr { };
+
+  vdo = callPackage ../os-specific/linux/vdo { };
+
+  windows = callPackages ../os-specific/windows {};
+
+  wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
+
+  wooting-udev-rules = callPackage ../os-specific/linux/wooting-udev-rules { };
+
+  teensy-udev-rules = callPackage ../os-specific/linux/teensy-udev-rules { };
+
+  wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant { };
+
+  wpa_supplicant_ro_ssids = wpa_supplicant.override {
+    readOnlyModeSSIDs = true;
+  };
+
+  wpa_supplicant_gui = libsForQt5.callPackage ../os-specific/linux/wpa_supplicant/gui.nix { };
+
+  xf86_input_cmt = callPackage ../os-specific/linux/xf86-input-cmt { };
+
+  xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
+
+  xf86_video_nested = callPackage ../os-specific/linux/xf86-video-nested { };
+
+  xilinx-bootgen = callPackage ../tools/misc/xilinx-bootgen { };
+
+  xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
+
+  zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
+
+  zenmonitor = callPackage ../os-specific/linux/zenmonitor { };
+
+  zfs_2_1 = callPackage ../os-specific/linux/zfs/2_1.nix {
+    configFile = "user";
+  };
+  zfsStable = callPackage ../os-specific/linux/zfs/stable.nix {
+    configFile = "user";
+  };
+  zfsUnstable = callPackage ../os-specific/linux/zfs/unstable.nix {
+    configFile = "user";
+  };
+  zfs = zfsStable;
+
+  ### DATA
+
+  _3270font = callPackage ../data/fonts/3270font { };
+
+  adapta-backgrounds = callPackage ../data/misc/adapta-backgrounds { };
+
+  adapta-gtk-theme = callPackage ../data/themes/adapta { };
+
+  adapta-kde-theme = callPackage ../data/themes/adapta-kde { };
+
+  adementary-theme = callPackage ../data/themes/adementary { };
+
+  adi1090x-plymouth-themes = callPackage ../data/themes/adi1090x-plymouth-themes { };
+
+  adwaita-qt = libsForQt5.callPackage ../data/themes/adwaita-qt { };
+
+  adwaita-qt6 = qt6Packages.callPackage ../data/themes/adwaita-qt {
+    useQt6 = true;
+  };
+
+  adw-gtk3 = callPackage ../data/themes/adw-gtk3 { };
+
+  agave = callPackage ../data/fonts/agave { };
+
+  aileron = callPackage ../data/fonts/aileron { };
+
+  alacritty-theme = callPackage ../data/themes/alacritty-theme { };
+
+  albatross = callPackage ../data/themes/albatross { };
+
+  alegreya = callPackage ../data/fonts/alegreya { };
+
+  alegreya-sans = callPackage ../data/fonts/alegreya-sans { };
+
+  alice = callPackage ../data/fonts/alice { };
+
+  alkalami = callPackage ../data/fonts/alkalami { };
+
+  amber-theme = callPackage ../data/themes/amber { };
+
+  amiri = callPackage ../data/fonts/amiri { };
+
+  anarchism = callPackage ../data/documentation/anarchism { };
+
+  ananicy = callPackage ../misc/ananicy { };
+
+  ananicy-cpp = callPackage ../misc/ananicy-cpp { };
+
+  ananicy-rules-cachyos = callPackage ../misc/ananicy-rules-cachyos { };
+
+  andagii = callPackage ../data/fonts/andagii { };
+
+  andika = callPackage ../data/fonts/andika { };
+
+  androguard = with python3.pkgs; toPythonApplication androguard;
+
+  android-udev-rules = callPackage ../os-specific/linux/android-udev-rules { };
+
+  ankacoder = callPackage ../data/fonts/ankacoder { };
+  ankacoder-condensed = callPackage ../data/fonts/ankacoder/condensed.nix { };
+
+  annapurna-sil = callPackage ../data/fonts/annapurna-sil { };
+
+  anonymousPro = callPackage ../data/fonts/anonymous-pro { };
+
+  ant-theme = callPackage ../data/themes/ant-theme/ant.nix { };
+
+  ant-bloody-theme = callPackage ../data/themes/ant-theme/ant-bloody.nix { };
+
+  dracula-theme = callPackage ../data/themes/dracula-theme { };
+
+  ant-nebula-theme = callPackage ../data/themes/ant-theme/ant-nebula.nix { };
+
+  arc-icon-theme = callPackage ../data/icons/arc-icon-theme { };
+
+  arc-kde-theme = callPackage ../data/themes/arc-kde { };
+
+  arc-theme = callPackage ../data/themes/arc { };
+
+  arkpandora_ttf = callPackage ../data/fonts/arkpandora { };
+
+  aurulent-sans = callPackage ../data/fonts/aurulent-sans { };
+
+  ayu-theme-gtk = callPackage ../data/themes/ayu-theme-gtk { };
+
+  b612  = callPackage ../data/fonts/b612 { };
+
+  babelstone-han = callPackage ../data/fonts/babelstone-han { };
+
+  baekmuk-ttf = callPackage ../data/fonts/baekmuk-ttf { };
+
+  bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
+
+  banana-cursor = callPackage ../data/icons/banana-cursor { };
+
+  barlow = callPackage ../data/fonts/barlow { };
+
+  base16-schemes = callPackage ../data/themes/base16-schemes { };
+
+  bgnet = callPackage ../data/documentation/bgnet { };
+
+  bibata-cursors = callPackage ../data/icons/bibata-cursors { attrs = python3Packages.attrs; };
+  bibata-extra-cursors = callPackage ../data/icons/bibata-cursors/extra.nix { };
+  bibata-cursors-translucent = callPackage ../data/icons/bibata-cursors/translucent.nix { };
+
+  apple-cursor = callPackage ../data/icons/apple-cursor { };
+
+  blackbird = callPackage ../data/themes/blackbird { };
+
+  blackout = callPackage ../data/fonts/blackout { };
+
+  breath-theme = libsForQt5.callPackage ../data/themes/breath-theme { };
+
+  brise = callPackage ../data/misc/brise { };
+
+  apl386 = callPackage ../data/fonts/apl386 { };
+
+  bqn386 = callPackage ../data/fonts/bqn386 { };
+
+  cacert = callPackage ../data/misc/cacert { };
+
+  caladea = callPackage ../data/fonts/caladea { };
+
+  canta-theme = callPackage ../data/themes/canta { };
+
+  cantarell-fonts = callPackage ../data/fonts/cantarell-fonts { };
+
+  capitaine-cursors = callPackage ../data/icons/capitaine-cursors { };
+
+  capitaine-cursors-themed = callPackage ../data/icons/capitaine-cursors-themed { };
+
+  carlito = callPackage ../data/fonts/carlito { };
+
+  cascadia-code = callPackage ../data/fonts/cascadia-code { };
+
+  catppuccin-cursors = callPackage ../data/icons/catppuccin-cursors { };
+
+  ccsymbols = callPackage ../data/fonts/ccsymbols { };
+
+  charis-sil = callPackage ../data/fonts/charis-sil { };
+
+  changie = callPackage ../development/tools/changie { };
+
+  cherry = callPackage ../data/fonts/cherry { };
+
+  chonburi-font = callPackage ../data/fonts/chonburi { };
+
+  chunk = callPackage ../data/fonts/chunk { };
+
+  cldr-annotations = callPackage ../data/misc/cldr-annotations { };
+
+  clearlooks-phenix = callPackage ../data/themes/clearlooks-phenix { };
+
+  cnspec = callPackage ../tools/security/cnspec { };
+
+  cnstrokeorder = callPackage ../data/fonts/cnstrokeorder { };
+
+  colloid-gtk-theme = callPackage ../data/themes/colloid-gtk-theme { };
+
+  colloid-icon-theme = callPackage ../data/icons/colloid-icon-theme { };
+
+  comfortaa = callPackage ../data/fonts/comfortaa { };
+
+  colloid-kde = libsForQt5.callPackage ../data/themes/colloid-kde { };
+
+  comic-mono = callPackage ../data/fonts/comic-mono { };
+
+  comic-neue = callPackage ../data/fonts/comic-neue { };
+
+  comic-relief = callPackage ../data/fonts/comic-relief { };
+
+  comixcursors = callPackage ../data/icons/comixcursors { };
+
+  corefonts = callPackage ../data/fonts/corefonts { };
+
+  courier-prime = callPackage ../data/fonts/courier-prime { };
+
+  cozette = callPackage ../data/fonts/cozette { };
+
+  culmus = callPackage ../data/fonts/culmus { };
+
+  clearlyU = callPackage ../data/fonts/clearlyU { };
+
+  cm_unicode = callPackage ../data/fonts/cm-unicode { };
+
+  creep = callPackage ../data/fonts/creep { };
+
+  crimson = callPackage ../data/fonts/crimson { };
+
+  crimson-pro = callPackage ../data/fonts/crimson-pro { };
+
+  dejavu_fonts = lowPrio (callPackage ../data/fonts/dejavu-fonts {});
+
+  # solve collision for nix-env before https://github.com/NixOS/nix/pull/815
+  dejavu_fontsEnv = buildEnv {
+    name = dejavu_fonts.name;
+    paths = [ dejavu_fonts.out ];
+  };
+
+  dina-font = callPackage ../data/fonts/dina { };
+
+  dm-sans = callPackage ../data/fonts/dm-sans { };
+  dns-root-data = callPackage ../data/misc/dns-root-data { };
+
+  docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
+
+  docbook_sgml_dtd_31 = callPackage ../data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix { };
+
+  docbook_sgml_dtd_41 = callPackage ../data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix { };
+
+  docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
+
+  docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
+
+  docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
+
+  docbook_xml_dtd_44 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix { };
+
+  docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
+
+  docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
+
+  inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { })
+    docbook-xsl-nons
+    docbook-xsl-ns;
+
+  # TODO: move this to aliases
+  docbook_xsl = docbook-xsl-nons;
+  docbook_xsl_ns = docbook-xsl-ns;
+
+  documentation-highlighter = callPackage ../misc/documentation-highlighter { };
+
+  mmdoc = callPackage ../tools/text/mmdoc { };
+
+  documize-community = callPackage ../servers/documize-community { };
+
+  doulos-sil = callPackage ../data/fonts/doulos-sil { };
+
+  cabin = callPackage ../data/fonts/cabin { };
+
+  camingo-code = callPackage ../data/fonts/camingo-code { };
+
+  combinatorial_designs = callPackage ../data/misc/combinatorial_designs { };
+
+  commit-mono = callPackage ../data/fonts/commit-mono { };
+
+  conway_polynomials = callPackage ../data/misc/conway_polynomials { };
+
+  cooper-hewitt = callPackage ../data/fonts/cooper-hewitt { };
+
+  d2coding = callPackage ../data/fonts/d2coding { };
+
+  dosis = callPackage ../data/fonts/dosis { };
+
+  dosemu_fonts = callPackage ../data/fonts/dosemu-fonts { };
+
+  dotcolon-fonts = callPackage ../data/fonts/dotcolon-fonts { };
+
+  dracula-icon-theme = callPackage ../data/icons/dracula-icon-theme { };
+
+  e17gtk = callPackage ../data/themes/e17gtk { };
+
+  eb-garamond = callPackage ../data/fonts/eb-garamond { };
+
+  edukai = callPackage ../data/fonts/edukai { };
+
+  eduli = callPackage ../data/fonts/eduli { };
+
+  epapirus-icon-theme = papirus-icon-theme.override { withElementary = true; };
+
+  moeli = eduli;
+
+  edusong = callPackage ../data/fonts/edusong { };
+
+  efont-unicode = callPackage ../data/fonts/efont-unicode { };
+
+  elliptic_curves = callPackage ../data/misc/elliptic_curves { };
+
+  equilux-theme = callPackage ../data/themes/equilux-theme { };
+
+  eunomia = callPackage ../data/fonts/eunomia { };
+
+  fa_1 = callPackage ../data/fonts/fa_1 { };
+
+  f1_8 = callPackage ../data/fonts/f1_8 { };
+
+  f5_6 = callPackage ../data/fonts/f5_6 { };
+
+  faba-icon-theme = callPackage ../data/icons/faba-icon-theme { };
+
+  faba-mono-icons = callPackage ../data/icons/faba-mono-icons { };
+
+  ferrum = callPackage ../data/fonts/ferrum { };
+
+  fg-virgil = callPackage ../data/fonts/fg-virgil { };
+
+  fixedsys-excelsior = callPackage ../data/fonts/fixedsys-excelsior { };
+
+  graphs = callPackage ../data/misc/graphs { };
+
+  emacs-all-the-icons-fonts = callPackage ../data/fonts/emacs-all-the-icons-fonts { };
+
+  emojione = callPackage ../data/fonts/emojione {
+    inherit (nodePackages) svgo;
+  };
+
+  emojipick = callPackage ../applications/misc/emojipick { };
+
+  encode-sans = callPackage ../data/fonts/encode-sans { };
+
+  envypn-font = callPackage ../data/fonts/envypn-font { };
+
+  ezra-sil = callPackage ../data/fonts/ezra-sil { };
+
+  fantasque-sans-mono = callPackage ../data/fonts/fantasque-sans-mono { };
+
+  fanwood = callPackage ../data/fonts/fanwood { };
+
+  fira = callPackage ../data/fonts/fira { };
+
+  fira-code = callPackage ../data/fonts/fira-code { };
+  fira-code-symbols = callPackage ../data/fonts/fira-code/symbols.nix { };
+  fira-code-nerdfont = nerdfonts.override {
+    fonts = [ "FiraCode" ];
+  };
+
+  fira-go = callPackage ../data/fonts/fira-go { };
+
+  fira-mono = callPackage ../data/fonts/fira-mono { };
+
+  flat-remix-icon-theme = callPackage ../data/icons/flat-remix-icon-theme {
+    inherit (plasma5Packages) breeze-icons;
+  };
+  flat-remix-gtk = callPackage ../data/themes/flat-remix-gtk { };
+  flat-remix-gnome = callPackage ../data/themes/flat-remix-gnome { };
+
+  fluent-gtk-theme = callPackage ../data/themes/fluent-gtk-theme { };
+
+  fluent-icon-theme = callPackage ../data/icons/fluent-icon-theme { };
+
+  font-awesome_4 = (callPackage ../data/fonts/font-awesome { }).v4;
+  font-awesome_5 = (callPackage ../data/fonts/font-awesome { }).v5;
+  font-awesome_6 = (callPackage ../data/fonts/font-awesome { }).v6;
+  font-awesome = font-awesome_6;
+
+  fraunces = callPackage ../data/fonts/fraunces { };
+
+  freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
+
+  freepats = callPackage ../data/misc/freepats { };
+
+  game-devices-udev-rules = callPackage ../os-specific/linux/game-devices-udev-rules { };
+
+  garamond-libre = callPackage ../data/fonts/garamond-libre { };
+
+  g15daemon = callPackage ../os-specific/linux/g15daemon { };
+
+  galatia-sil = callPackage ../data/fonts/galatia-sil { };
+
+  gentium = callPackage ../data/fonts/gentium { };
+
+  gentium-book-basic = callPackage ../data/fonts/gentium-book-basic { };
+
+  geolite-legacy = callPackage ../data/misc/geolite-legacy { };
+
+  gohufont = callPackage ../data/fonts/gohufont { };
+
+  gnome-user-docs = callPackage ../data/documentation/gnome-user-docs { };
+
+  gsettings-desktop-schemas = callPackage ../development/libraries/gsettings-desktop-schemas { };
+
+  gnome-icon-theme = callPackage ../data/icons/gnome-icon-theme { };
+
+  go-font = callPackage ../data/fonts/go-font { };
+
+  goudy-bookletter-1911 = callPackage ../data/fonts/goudy-bookletter-1911 { };
+
+  graphite-gtk-theme = callPackage ../data/themes/graphite-gtk-theme { };
+
+  graphite-kde-theme = libsForQt5.callPackage ../data/themes/graphite-kde-theme { };
+
+  greybird = callPackage ../data/themes/greybird { };
+
+  gruvbox-dark-gtk = callPackage ../data/themes/gruvbox-dark-gtk { };
+
+  palenight-theme = callPackage ../data/themes/gtk-theme-framework { theme = "palenight"; };
+
+  amarena-theme = callPackage ../data/themes/gtk-theme-framework { theme = "amarena"; };
+
+  gruvterial-theme = callPackage ../data/themes/gtk-theme-framework { theme = "gruvterial"; };
+
+  oceanic-theme = callPackage ../data/themes/gtk-theme-framework { theme = "oceanic"; };
+
+  spacx-gtk-theme = callPackage ../data/themes/gtk-theme-framework { theme = "spacx"; };
+
+  gruvbox-dark-icons-gtk = callPackage ../data/icons/gruvbox-dark-icons-gtk {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  gruvbox-gtk-theme = callPackage ../data/themes/gruvbox-gtk-theme { };
+
+  gubbi-font = callPackage ../data/fonts/gubbi { };
+
+  gyre-fonts = callPackage ../data/fonts/gyre { };
+
+  hack-font = callPackage ../data/fonts/hack { };
+
+  hackgen-font = callPackage ../data/fonts/hackgen { };
+
+  hackgen-nf-font = callPackage ../data/fonts/hackgen/nerdfont.nix { };
+
+  helvetica-neue-lt-std = callPackage ../data/fonts/helvetica-neue-lt-std { };
+
+  helvum = callPackage ../applications/audio/helvum { };
+
+  hetzner-kube = callPackage ../applications/networking/cluster/hetzner-kube { };
+
+  hicolor-icon-theme = callPackage ../data/icons/hicolor-icon-theme { };
+
+  hannom = callPackage ../data/fonts/hannom { };
+
+  hanazono = callPackage ../data/fonts/hanazono { };
+
+  hermit = callPackage ../data/fonts/hermit { };
+
+  hubot-sans = callPackage ../data/fonts/hubot-sans { };
+
+  humanity-icon-theme = callPackage ../data/icons/humanity-icon-theme { };
+
+  hyperscrypt-font = callPackage ../data/fonts/hyperscrypt { };
+
+  ia-writer-duospace = callPackage ../data/fonts/ia-writer-duospace { };
+
+  i-dot-ming = callPackage ../data/fonts/i-dot-ming { };
+
+  ibm-plex = callPackage ../data/fonts/ibm-plex { };
+
+  iconpack-jade = callPackage ../data/icons/iconpack-jade { };
+
+  iconpack-obsidian = callPackage ../data/icons/iconpack-obsidian { };
+
+  inconsolata = callPackage ../data/fonts/inconsolata { };
+
+  inconsolata-lgc = callPackage ../data/fonts/inconsolata/lgc.nix { };
+
+  inconsolata-nerdfont = nerdfonts.override {
+    fonts = [ "Inconsolata" ];
+  };
+
+  intel-one-mono = callPackage ../data/fonts/intel-one-mono {};
+
+  input-fonts = callPackage ../data/fonts/input-fonts { };
+
+  inriafonts = callPackage ../data/fonts/inriafonts { };
+
+  iosevka = callPackage ../data/fonts/iosevka { };
+  iosevka-bin = callPackage ../data/fonts/iosevka/bin.nix { };
+  iosevka-comfy = recurseIntoAttrs (callPackages ../data/fonts/iosevka/comfy.nix {});
+
+  ipafont = callPackage ../data/fonts/ipafont { };
+  ipaexfont = callPackage ../data/fonts/ipaexfont { };
+
+  iwona = callPackage ../data/fonts/iwona { };
+
+  jetbrains-mono = callPackage ../data/fonts/jetbrains-mono { };
+
+  jost = callPackage ../data/fonts/jost { };
+
+  joypixels = callPackage ../data/fonts/joypixels { };
+
+  junction-font = callPackage ../data/fonts/junction { };
+
+  junicode = callPackage ../data/fonts/junicode { };
+
+  julia-mono = callPackage ../data/fonts/julia-mono { };
+
+  juno-theme = callPackage ../data/themes/juno { };
+
+  kanit-font = callPackage ../data/fonts/kanit { };
+
+  kanji-stroke-order-font = callPackage ../data/fonts/kanji-stroke-order-font { };
+
+  kacst = callPackage ../data/fonts/kacst { };
+
+  kawkab-mono-font = callPackage ../data/fonts/kawkab-mono { };
+
+  kde-rounded-corners = libsForQt5.callPackage ../data/themes/kwin-decorations/kde-rounded-corners { };
+
+  khmeros = callPackage ../data/fonts/khmeros { };
+
+  knewave = callPackage ../data/fonts/knewave { };
+
+  kochi-substitute = callPackage ../data/fonts/kochi-substitute { };
+
+  kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 { };
+
+  kode-mono = callPackage ../data/fonts/kode-mono { };
+
+  kopia = callPackage ../tools/backup/kopia { };
+
+  kora-icon-theme = callPackage ../data/icons/kora-icon-theme {
+    inherit (gnome) adwaita-icon-theme;
+    inherit (libsForQt5.kdeFrameworks) breeze-icons;
+  };
+
+  koreader = callPackage ../applications/misc/koreader { };
+
+  kreative-square-fonts = callPackage ../data/fonts/kreative-square-fonts { };
+
+  la-capitaine-icon-theme = callPackage ../data/icons/la-capitaine-icon-theme {
+    inherit (plasma5Packages) breeze-icons;
+    inherit (pantheon) elementary-icon-theme;
+  };
+
+  layan-gtk-theme = callPackage ../data/themes/layan-gtk-theme { };
+
+  layan-kde = libsForQt5.callPackage ../data/themes/layan-kde { };
+
+  lao = callPackage ../data/fonts/lao { };
+
+  lato = callPackage ../data/fonts/lato { };
+
+  league-gothic = callPackage ../data/fonts/league-gothic { };
+
+  league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type { };
+
+  league-script-number-one = callPackage ../data/fonts/league-script-number-one { };
+
+  league-spartan = callPackage ../data/fonts/league-spartan { };
+
+  ledger-udev-rules = callPackage ../os-specific/linux/ledger-udev-rules { };
+
+  libGDSII = callPackage ../development/libraries/science/chemistry/libGDSII { };
+
+  inherit (callPackages ../data/fonts/liberation-fonts { })
+    liberation_ttf_v1
+    liberation_ttf_v2
+    ;
+  liberation_ttf = liberation_ttf_v2;
+
+  liberation-sans-narrow = callPackage ../data/fonts/liberation-sans-narrow { };
+
+  libevdevc = callPackage ../os-specific/linux/libevdevc { };
+
+  libgestures = callPackage ../os-specific/linux/libgestures { };
+
+  liberastika = callPackage ../data/fonts/liberastika { };
+
+  libertine = callPackage ../data/fonts/libertine { };
+
+  libertinus = callPackage ../data/fonts/libertinus { };
+
+  libratbag = callPackage ../os-specific/linux/libratbag { };
+
+  librist = callPackage ../development/libraries/librist { };
+
+  libre-baskerville = callPackage ../data/fonts/libre-baskerville { };
+
+  libre-bodoni = callPackage ../data/fonts/libre-bodoni { };
+
+  libre-caslon = callPackage ../data/fonts/libre-caslon { };
+
+  libre-franklin = callPackage ../data/fonts/libre-franklin { };
+
+  lightly-qt = libsForQt5.callPackage ../data/themes/lightly-qt { };
+
+  lightly-boehs = libsForQt5.callPackage ../data/themes/lightly-boehs { };
+
+  linden-hill = callPackage ../data/fonts/linden-hill { };
+
+  line-awesome = callPackage ../data/fonts/line-awesome { };
+
+  linearicons-free = callPackage ../data/fonts/linearicons-free { };
+
+  linja-pi-pu-lukin = callPackage ../data/fonts/linja-pi-pu-lukin { };
+
+  linja-sike = callPackage ../data/fonts/linja-sike { };
+
+  linux-manual = callPackage ../data/documentation/linux-manual { };
+
+  lklug-sinhala = callPackage ../data/fonts/lklug-sinhala { };
+
+  lmmath = callPackage ../data/fonts/lmmath { };
+
+  lmodern = callPackage ../data/fonts/lmodern { };
+
+  logiops = callPackage ../misc/drivers/logiops { };
+
+  # ltunifi and solaar both provide udev rules but solaar's rules are more
+  # up-to-date so we simply use that instead of having to maintain our own rules
+  logitech-udev-rules = solaar.udev;
+
+  # lohit-fonts.assamese lohit-fonts.bengali lohit-fonts.devanagari lohit-fonts.gujarati lohit-fonts.gurmukhi
+  # lohit-fonts.kannada lohit-fonts.malayalam lohit-fonts.marathi lohit-fonts.nepali lohit-fonts.odia
+  # lohit-fonts.tamil-classical lohit-fonts.tamil lohit-fonts.telugu
+  # lohit-fonts.kashmiri lohit-fonts.konkani lohit-fonts.maithili lohit-fonts.sindhi
+  lohit-fonts = recurseIntoAttrs ( callPackages ../data/fonts/lohit-fonts { } );
+
+  lounge-gtk-theme = callPackage ../data/themes/lounge { };
+
+  luculent = callPackage ../data/fonts/luculent { };
+
+  luna-icons = callPackage ../data/icons/luna-icons {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  lxgw-neoxihei = callPackage ../data/fonts/lxgw-neoxihei { };
+
+  lxgw-wenkai = callPackage ../data/fonts/lxgw-wenkai { };
+
+  maia-icon-theme = libsForQt5.callPackage ../data/icons/maia-icon-theme { };
+
+  mailcap = callPackage ../data/misc/mailcap { };
+
+  marathi-cursive = callPackage ../data/fonts/marathi-cursive { };
+
+  man-pages = callPackage ../data/documentation/man-pages { };
+
+  man-pages-posix = callPackage ../data/documentation/man-pages-posix { };
+
+  manrope = callPackage ../data/fonts/manrope { };
+
+  martian-mono = callPackage ../data/fonts/martian-mono { };
+
+  marwaita = callPackage ../data/themes/marwaita { };
+
+  marwaita-manjaro = callPackage ../data/themes/marwaita-manjaro { };
+
+  marwaita-peppermint = callPackage ../data/themes/marwaita-peppermint { };
+
+  marwaita-pop_os = callPackage ../data/themes/marwaita-pop_os { };
+
+  marwaita-ubuntu = callPackage ../data/themes/marwaita-ubuntu { };
+
+  matcha-gtk-theme = callPackage ../data/themes/matcha { };
+
+  materia-theme = callPackage ../data/themes/materia-theme { };
+
+  materia-kde-theme = callPackage ../data/themes/materia-kde { };
+
+  material-design-icons = callPackage ../data/fonts/material-design-icons { };
+
+  material-icons = callPackage ../data/fonts/material-icons { };
+
+  material-symbols = callPackage ../data/fonts/material-symbols { };
+
+  material-kwin-decoration = libsForQt5.callPackage ../data/themes/material-kwin-decoration { };
+
+  meslo-lg = callPackage ../data/fonts/meslo-lg { };
+
+  meslo-lgs-nf = callPackage ../data/fonts/meslo-lgs-nf { };
+
+  migmix = callPackage ../data/fonts/migmix { };
+
+  migu = callPackage ../data/fonts/migu { };
+
+  miscfiles = callPackage ../data/misc/miscfiles { };
+
+  media-player-info = callPackage ../data/misc/media-player-info { };
+
+  medio = callPackage ../data/fonts/medio { };
+
+  melete = callPackage ../data/fonts/melete { };
+
+  mno16 = callPackage ../data/fonts/mno16 { };
+
+  mnist = callPackage ../data/machine-learning/mnist { };
+
+  mobile-broadband-provider-info = callPackage ../data/misc/mobile-broadband-provider-info { };
+
+  mojave-gtk-theme = callPackage ../data/themes/mojave {
+    inherit (gnome) gnome-shell;
+  };
+
+  moka-icon-theme = callPackage ../data/icons/moka-icon-theme { };
+
+  mona-sans = callPackage ../data/fonts/mona-sans { };
+
+  monoid = callPackage ../data/fonts/monoid { };
+
+  mononoki = callPackage ../data/fonts/mononoki { };
+
+  montserrat = callPackage ../data/fonts/montserrat { };
+
+  mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
+
+  mplus-outline-fonts = recurseIntoAttrs (callPackage ../data/fonts/mplus-outline-fonts { });
+
+  mro-unicode = callPackage ../data/fonts/mro-unicode { };
+
+  mustache-spec = callPackage ../data/documentation/mustache-spec { };
+
+  mustache-tcl = callPackage ../development/libraries/mustache-tcl { };
+
+  mustache-go = callPackage ../development/tools/mustache-go { };
+
+  mustache-hpp = callPackage ../development/libraries/mustache-hpp { };
+
+  myrddin = callPackage ../development/compilers/myrddin { };
+
+  myrica = callPackage ../data/fonts/myrica { };
+
+  nacelle = callPackage ../data/fonts/nacelle { };
+
+  nafees = callPackage ../data/fonts/nafees { };
+
+  nanum = callPackage ../data/fonts/nanum {  };
+
+  nanum-gothic-coding = callPackage ../data/fonts/nanum-gothic-coding {  };
+
+  nasin-nanpa = callPackage ../data/fonts/nasin-nanpa { };
+
+  national-park-typeface = callPackage ../data/fonts/national-park { };
+
+  netease-music-tui = callPackage ../applications/audio/netease-music-tui { };
+
+  netease-cloud-music-gtk = callPackage ../applications/audio/netease-cloud-music-gtk {
+    inherit (darwin.apple_sdk.frameworks) Foundation SystemConfiguration;
+  };
+
+  nordic = libsForQt5.callPackage ../data/themes/nordic { };
+
+  nordzy-cursor-theme = callPackage ../data/icons/nordzy-cursor-theme { };
+
+  nordzy-icon-theme = callPackage ../data/icons/nordzy-icon-theme { };
+
+  noto-fonts-lgc-plus = callPackage ../by-name/no/noto-fonts/package.nix {
+    suffix = "-lgc-plus";
+    variants = [
+      "Noto Sans"
+      "Noto Serif"
+      "Noto Sans Mono"
+      "Noto Music"
+      "Noto Sans Symbols"
+      "Noto Sans Symbols 2"
+      "Noto Sans Math"
+    ];
+    longDescription = ''
+      This package provides the Noto Fonts, but only for latin, greek
+      and cyrillic scripts, as well as some extra fonts.
+    '';
+  };
+
+  nuclear = callPackage ../applications/audio/nuclear { };
+
+  nuclei = callPackage ../tools/security/nuclei { };
+
+  nullmailer = callPackage ../servers/mail/nullmailer {
+    stdenv = gccStdenv;
+  };
+
+  numix-icon-theme = callPackage ../data/icons/numix-icon-theme {
+    inherit (gnome) adwaita-icon-theme;
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  numix-icon-theme-circle = callPackage ../data/icons/numix-icon-theme-circle { };
+
+  numix-icon-theme-square = callPackage ../data/icons/numix-icon-theme-square { };
+
+  numix-cursor-theme = callPackage ../data/icons/numix-cursor-theme { };
+
+  numix-gtk-theme = callPackage ../data/themes/numix { };
+
+  numix-solarized-gtk-theme = callPackage ../data/themes/numix-solarized { };
+
+  numix-sx-gtk-theme = callPackage ../data/themes/numix-sx { };
+
+  office-code-pro = callPackage ../data/fonts/office-code-pro { };
+
+  oldstandard = callPackage ../data/fonts/oldstandard { };
+
+  oldsindhi = callPackage ../data/fonts/oldsindhi { };
+
+  omni-gtk-theme = callPackage ../data/themes/omni-gtk-theme { };
+
+  onestepback = callPackage ../data/themes/onestepback { };
+
+  open-dyslexic = callPackage ../data/fonts/open-dyslexic { };
+
+  open-sans = callPackage ../data/fonts/open-sans { };
+
+  openmoji-color = callPackage ../data/fonts/openmoji { variant = "color"; };
+
+  openmoji-black = callPackage ../data/fonts/openmoji { variant = "black"; };
+
+  openzone-cursors = callPackage ../data/themes/openzone { };
+
+  oranchelo-icon-theme = callPackage ../data/icons/oranchelo-icon-theme { };
+
+  orbitron = callPackage ../data/fonts/orbitron { };
+
+  orbuculum = callPackage ../development/embedded/orbuculum { };
+
+  orchis-theme = callPackage ../data/themes/orchis-theme { };
+
+  orion = callPackage ../data/themes/orion { };
+
+  ostrich-sans = callPackage ../data/fonts/ostrich-sans { };
+
+  overpass = callPackage ../data/fonts/overpass { };
+
+  oxygenfonts = callPackage ../data/fonts/oxygenfonts { };
+
+  paper-gtk-theme = callPackage ../data/themes/paper-gtk { };
+
+  paper-icon-theme = callPackage ../data/icons/paper-icon-theme { };
+
+  papirus-icon-theme = callPackage ../data/icons/papirus-icon-theme {
+    inherit (pantheon) elementary-icon-theme;
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  papirus-maia-icon-theme = callPackage ../data/icons/papirus-maia-icon-theme {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  papirus-folders = callPackage ../data/misc/papirus-folders { };
+
+  papirus-nord = callPackage ../data/icons/papirus-nord { };
+
+  plasma-overdose-kde-theme = callPackage ../data/themes/plasma-overdose-kde-theme { };
+
+  papis = with python3Packages; toPythonApplication papis;
+
+  paperlike-go = callPackage ../tools/misc/paperlike-go { };
+
+  paps = callPackage ../tools/misc/paps { };
+
+  pecita = callPackage ../data/fonts/pecita { };
+
+  paratype-pt-mono = callPackage ../data/fonts/paratype-pt/mono.nix { };
+  paratype-pt-sans = callPackage ../data/fonts/paratype-pt/sans.nix { };
+  paratype-pt-serif = callPackage ../data/fonts/paratype-pt/serif.nix { };
+
+  pari-galdata = callPackage ../data/misc/pari-galdata { };
+
+  pari-seadata-small = callPackage ../data/misc/pari-seadata-small { };
+
+  penna = callPackage ../data/fonts/penna { };
+
+  pitch-black = callPackage ../data/themes/pitch-black { };
+
+  plano-theme = callPackage ../data/themes/plano { };
+
+  plata-theme = callPackage ../data/themes/plata {
+    inherit (mate) marco;
+  };
+
+  poly = callPackage ../data/fonts/poly { };
+
+  polychromatic = libsForQt5.callPackage ../applications/misc/polychromatic { };
+
+  polytopes_db = callPackage ../data/misc/polytopes_db { };
+
+  pop-gtk-theme = callPackage ../data/themes/pop-gtk { };
+
+  pop-icon-theme = callPackage ../data/icons/pop-icon-theme {
+    inherit (gnome) adwaita-icon-theme;
+  };
+
+  powerline-fonts = callPackage ../data/fonts/powerline-fonts { };
+
+  powerline-symbols = callPackage ../data/fonts/powerline-symbols { };
+
+  powerline-go = callPackage ../tools/misc/powerline-go { };
+
+  powerline-rs = callPackage ../tools/misc/powerline-rs {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  prociono = callPackage ../data/fonts/prociono { };
+
+  profont = callPackage ../data/fonts/profont { };
+
+  proggyfonts = callPackage ../data/fonts/proggyfonts { };
+
+  public-sans  = callPackage ../data/fonts/public-sans { };
+
+  publicsuffix-list = callPackage ../data/misc/publicsuffix-list { };
+
+  phinger-cursors = callPackage ../data/icons/phinger-cursors { };
+
+  qogir-icon-theme = callPackage ../data/icons/qogir-icon-theme { };
+
+  qogir-kde = libsForQt5.callPackage ../data/themes/qogir-kde { };
+
+  qogir-theme = callPackage ../data/themes/qogir { };
+
+  quintom-cursor-theme = callPackage ../data/icons/quintom-cursor-theme { };
+
+  redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
+
+  rime-data = callPackage ../data/misc/rime-data { };
+
+  roapi-http = callPackage ../servers/roapi/http.nix { };
+
+  rose-pine-gtk-theme = callPackage ../data/themes/rose-pine-gtk { };
+  rose-pine-icon-theme = callPackage ../data/icons/rose-pine { };
+
+  route159 = callPackage ../data/fonts/route159 { };
+
+  ruwudu = callPackage ../data/fonts/ruwudu { };
+
+  sampradaya = callPackage ../data/fonts/sampradaya { };
+
+  sarabun-font = callPackage ../data/fonts/sarabun { };
+
+  sarasa-gothic = callPackage ../data/fonts/sarasa-gothic { };
+
+  savepagenow = callPackage ../tools/misc/savepagenow { };
+
+  scheme-manpages = callPackage ../data/documentation/scheme-manpages { };
+
+  scowl = callPackage ../data/misc/scowl { };
+
+  seshat = callPackage ../data/fonts/seshat { };
+
+  session-desktop = callPackage ../applications/networking/instant-messengers/session-desktop { };
+
+  shaderc = callPackage ../development/compilers/shaderc {
+    inherit (darwin) autoSignDarwinBinariesHook cctools;
+  };
+
+  shades-of-gray-theme = callPackage ../data/themes/shades-of-gray { };
+
+  sierra-breeze-enhanced = libsForQt5.callPackage ../data/themes/kwin-decorations/sierra-breeze-enhanced { };
+
+  simp1e-cursors = callPackage ../data/icons/simp1e-cursors { };
+
+  sjasmplus = callPackage ../development/compilers/sjasmplus { };
+
+  skeu = callPackage ../data/themes/skeu { };
+
+  sweet = callPackage ../data/themes/sweet { };
+
+  sweet-nova = callPackage ../data/themes/sweet-nova { };
+
+  shared-mime-info = callPackage ../data/misc/shared-mime-info { };
+
+  shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
+
+  scheherazade = callPackage ../data/fonts/scheherazade { version = "2.100"; };
+
+  scheherazade-new = callPackage ../data/fonts/scheherazade { };
+
+  signwriting = callPackage ../data/fonts/signwriting { };
+
+  sierra-gtk-theme = callPackage ../data/themes/sierra { };
+
+  sil-abyssinica = callPackage ../data/fonts/sil-abyssinica { };
+
+  sil-padauk = callPackage ../data/fonts/sil-padauk { };
+
+  snap7 = callPackage ../development/libraries/snap7 { };
+
+  sniglet = callPackage ../data/fonts/sniglet { };
+
+  snowblind = callPackage ../data/themes/snowblind { };
+
+  solarc-gtk-theme = callPackage ../data/themes/solarc { };
+
+  sorts-mill-goudy = callPackage ../data/fonts/sorts-mill-goudy { };
+
+  soundfont-fluid = callPackage ../data/soundfonts/fluid { };
+
+  soundfont-generaluser = callPackage ../data/soundfonts/generaluser { };
+
+  soundfont-ydp-grand = callPackage ../data/soundfonts/ydp-grand { };
+
+  spdx-license-list-data = callPackage ../data/misc/spdx-license-list-data { };
+
+  stdmanpages = callPackage ../data/documentation/std-man-pages { };
+
+  star-history = callPackage ../tools/misc/star-history {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  starfetch = callPackage ../tools/misc/starfetch { };
+
+  starry = callPackage ../tools/misc/starry { };
+
+  starship = callPackage ../tools/misc/starship {
+    inherit (darwin.apple_sdk.frameworks) Security Foundation Cocoa;
+  };
+
+  stig = callPackage ../applications/networking/p2p/stig { };
+
+  stix-otf = callPackage ../data/fonts/stix-otf { };
+
+  stix-two = callPackage ../data/fonts/stix-two { };
+
+  super-tiny-icons = callPackage ../data/icons/super-tiny-icons { };
+
+  inherit (callPackages ../data/fonts/gdouros { })
+    aegan aegyptus akkadian assyrian eemusic maya symbola textfonts unidings;
+
+  iana-etc = callPackage ../data/misc/iana-etc { };
+
+  poppler_data = callPackage ../data/misc/poppler-data { };
+
+  inherit (callPackages ../data/fonts/pretendard { })
+    pretendard
+    pretendard-gov
+    pretendard-jp
+    pretendard-std;
+
+  quattrocento = callPackage ../data/fonts/quattrocento { };
+
+  quattrocento-sans = callPackage ../data/fonts/quattrocento-sans { };
+
+  quivira = callPackage ../data/fonts/quivira { };
+
+  raleway = callPackage ../data/fonts/raleway { };
+
+  recursive = callPackage ../data/fonts/recursive { };
+
+  reversal-icon-theme = callPackage ../data/icons/reversal-icon-theme {
+    inherit (gnome) adwaita-icon-theme;
+  };
+
+  rubik = callPackage ../data/fonts/rubik { };
+
+  rhodium-libre = callPackage ../data/fonts/rhodium-libre { };
+
+  rictydiminished-with-firacode = callPackage ../data/fonts/rictydiminished-with-firacode { };
+
+  roboto = callPackage ../data/fonts/roboto { };
+
+  roboto-mono = callPackage ../data/fonts/roboto-mono { };
+
+  roboto-serif = callPackage ../data/fonts/roboto-serif { };
+
+  roboto-slab = callPackage ../data/fonts/roboto-slab { };
+
+  hasklig = callPackage ../data/fonts/hasklig { };
+
+  maligned = callPackage ../development/tools/maligned { };
+
+  inter = callPackage ../data/fonts/inter { };
+
+  open-fonts = callPackage ../data/fonts/open-fonts { };
+
+  scientifica = callPackage ../data/fonts/scientifica { };
+
+  siji = callPackage ../data/fonts/siji { };
+
+  sound-theme-freedesktop = callPackage ../data/misc/sound-theme-freedesktop { };
+
+  source-code-pro = callPackage ../data/fonts/source-code-pro { };
+
+  source-sans = callPackage ../data/fonts/source-sans { };
+  source-sans-pro = callPackage ../data/fonts/source-sans-pro { };
+
+  source-serif = callPackage ../data/fonts/source-serif { };
+  source-serif-pro = callPackage ../data/fonts/source-serif-pro { };
+
+  source-han-code-jp = callPackage ../data/fonts/source-han-code-jp { };
+
+  sourceHanPackages = dontRecurseIntoAttrs (callPackage ../data/fonts/source-han { });
+  source-han-sans = sourceHanPackages.sans;
+  source-han-serif = sourceHanPackages.serif;
+  source-han-mono = sourceHanPackages.mono;
+  source-han-sans-vf-otf = sourceHanPackages.sans-vf-otf;
+  source-han-sans-vf-ttf = sourceHanPackages.sans-vf-ttf;
+  source-han-serif-vf-otf = sourceHanPackages.serif-vf-otf;
+  source-han-serif-vf-ttf = sourceHanPackages.serif-vf-ttf;
+
+  spleen = callPackage ../data/fonts/spleen { };
+
+  stilo-themes = callPackage ../data/themes/stilo { };
+
+  sudo-font = callPackage ../data/fonts/sudo { };
+
+  inherit (callPackages ../data/fonts/tai-languages { }) tai-ahom;
+
+  takao = callPackage ../data/fonts/takao { };
+
+  taskspooler = callPackage ../tools/system/taskspooler { };
+
+  tamsyn = callPackage ../data/fonts/tamsyn { };
+
+  tamzen = callPackage ../data/fonts/tamzen { };
+
+  tango-icon-theme = callPackage ../data/icons/tango-icon-theme {
+    gtk = res.gtk2;
+  };
+
+  tau-hydrogen = callPackage ../data/icons/tau-hydrogen { };
+
+  theme-jade1 = callPackage ../data/themes/jade1 { };
+
+  theme-obsidian2 = callPackage ../data/themes/obsidian2 { };
+
+  themes = name: callPackage (../data/misc/themes + ("/" + name + ".nix")) { };
+
+  theano = callPackage ../data/fonts/theano { };
+
+  the-neue-black = callPackage ../data/fonts/the-neue-black { };
+
+  tela-circle-icon-theme = callPackage ../data/icons/tela-circle-icon-theme {
+    inherit (gnome) adwaita-icon-theme;
+    inherit (libsForQt5) breeze-icons;
+  };
+
+  tela-icon-theme = callPackage ../data/icons/tela-icon-theme { };
+
+  template-glib = callPackage ../development/libraries/template-glib { };
+
+  tempora_lgc = callPackage ../data/fonts/tempora-lgc { };
+
+  tenderness = callPackage ../data/fonts/tenderness { };
+
+  terminus_font = callPackage ../data/fonts/terminus-font { };
+
+  terminus_font_ttf = callPackage ../data/fonts/terminus-font-ttf { };
+
+  terminus-nerdfont = nerdfonts.override {
+    fonts = [ "Terminus" ];
+  };
+
+  tex-gyre = callPackages ../data/fonts/tex-gyre { };
+
+  tex-gyre-math = callPackages ../data/fonts/tex-gyre-math { };
+
+  theme-vertex = callPackage ../data/themes/vertex { };
+
+  tibetan-machine = callPackage ../data/fonts/tibetan-machine { };
+
+  times-newer-roman = callPackage ../data/fonts/times-newer-roman { };
+
+  tipa = callPackage ../data/fonts/tipa { };
+
+  ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
+
+  ttf-envy-code-r = callPackage ../data/fonts/ttf-envy-code-r { };
+
+  ttf-tw-moe = callPackage ../data/fonts/ttf-tw-moe { };
+
+  twemoji-color-font = callPackage ../data/fonts/twemoji-color-font { };
+
+  twitter-color-emoji = callPackage ../data/fonts/twitter-color-emoji { };
+
+  tzdata = callPackage ../data/misc/tzdata { };
+
+  ubuntu-themes = callPackage ../data/themes/ubuntu-themes { };
+
+  ubuntu_font_family = callPackage ../data/fonts/ubuntu-font-family { };
+
+  ucs-fonts = callPackage ../data/fonts/ucs-fonts { };
+
+  bront_fonts = callPackage ../data/fonts/bront { };
+
+  ultimate-oldschool-pc-font-pack = callPackage ../data/fonts/ultimate-oldschool-pc-font-pack { };
+
+  ultralist = callPackage ../applications/misc/ultralist { };
+
+  undefined-medium = callPackage ../data/fonts/undefined-medium { };
+
+  unfonts-core = callPackage ../data/fonts/unfonts-core { };
+
+  uni-vga = callPackage ../data/fonts/uni-vga { };
+
+  unicode-character-database = callPackage ../data/misc/unicode-character-database { };
+
+  unicode-emoji = callPackage ../data/misc/unicode-emoji { };
+
+  unihan-database = callPackage ../data/misc/unihan-database { };
+
+  unifont = callPackage ../data/fonts/unifont { };
+
+  unifont_upper = callPackage ../data/fonts/unifont_upper { };
+
+  unscii = callPackage ../data/fonts/unscii { };
+
+  utterly-nord-plasma = libsForQt5.callPackage ../data/themes/utterly-nord-plasma { };
+
+  utterly-round-plasma-style = callPackage ../data/themes/utterly-round-plasma-style { };
+
+  uw-ttyp0 = callPackage ../data/fonts/uw-ttyp0 { };
+
+  u001-font = callPackage ../data/fonts/u001 { };
+
+  vanilla-dmz = callPackage ../data/icons/vanilla-dmz { };
+
+  vdrsymbols = callPackage ../data/fonts/vdrsymbols { };
+
+  vegur = callPackage ../data/fonts/vegur { };
+
+  vegeta = callPackage ../tools/networking/vegeta { };
+
+  venta = callPackage ../data/themes/venta { };
+
+  victor-mono = callPackage ../data/fonts/victor-mono { };
+
+  vimix-cursor-theme = callPackage ../data/icons/vimix-cursor-theme { };
+
+  vimix-gtk-themes = callPackage ../data/themes/vimix {
+    inherit (gnome) gnome-shell;
+  };
+
+  vimix-icon-theme = callPackage ../data/icons/vimix-icon-theme { };
+
+  vistafonts = callPackage ../data/fonts/vista-fonts { };
+
+  vistafonts-chs = callPackage ../data/fonts/vista-fonts-chs { };
+
+  vistafonts-cht = callPackage ../data/fonts/vista-fonts-cht { };
+
+  vollkorn = callPackage ../data/fonts/vollkorn { };
+
+  weather-icons = callPackage ../data/fonts/weather-icons { };
+
+  whitesur-cursors = callPackage ../data/icons/whitesur-cursors { };
+
+  whitesur-gtk-theme = callPackage ../data/themes/whitesur {
+    inherit (gnome) gnome-shell;
+  };
+
+  whitesur-icon-theme = callPackage ../data/icons/whitesur-icon-theme { };
+
+  whitesur-kde = libsForQt5.callPackage ../data/themes/whitesur-kde { };
+
+  wireless-regdb = callPackage ../data/misc/wireless-regdb { };
+
+  work-sans  = callPackage ../data/fonts/work-sans { };
+
+  wqy_microhei = callPackage ../data/fonts/wqy-microhei { };
+
+  wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
+
+  xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
+
+  xits-math = callPackage ../data/fonts/xits-math { };
+
+  xkcd-font = callPackage ../data/fonts/xkcd-font { };
+
+  xkeyboard_config = xorg.xkeyboardconfig;
+
+  xlsx2csv = with python3Packages; toPythonApplication xlsx2csv;
+
+  xorg-rgb = callPackage ../data/misc/xorg-rgb { };
+
+  yanone-kaffeesatz = callPackage ../data/fonts/yanone-kaffeesatz { };
+
+  yaru-theme = callPackage ../data/themes/yaru { };
+
+  yaru-remix-theme = callPackage ../data/themes/yaru-remix { };
+
+  zafiro-icons = callPackage ../data/icons/zafiro-icons {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  zeal-qt5 = libsForQt5.callPackage ../data/documentation/zeal { };
+  zeal = zeal-qt5;
+  zeal-qt6 = qt6Packages.callPackage ../data/documentation/zeal {
+    qtx11extras = null; # Because it does not exist in qt6
+  };
+
+  zilla-slab = callPackage ../data/fonts/zilla-slab { };
+
+  zuki-themes = callPackage ../data/themes/zuki { };
+
+  ### APPLICATIONS / GIS
+
+  gmt = callPackage ../applications/gis/gmt {
+    inherit (darwin.apple_sdk.frameworks)
+      Accelerate CoreGraphics CoreVideo;
+  };
+
+  gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
+
+  dcw-gmt = callPackage ../applications/gis/gmt/dcw.nix { };
+
+  grass = callPackage ../applications/gis/grass {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
+
+  openorienteering-mapper = libsForQt5.callPackage ../applications/gis/openorienteering-mapper { };
+
+  qgis-ltr = callPackage ../applications/gis/qgis/ltr.nix { };
+
+  qgis = callPackage ../applications/gis/qgis { };
+
+  qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { };
+
+  saga = callPackage ../applications/gis/saga {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    inherit (libsForQt5) dxflib;
+  };
+
+  spatialite_gui = callPackage ../applications/gis/spatialite-gui {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa IOKit;
+    wxGTK = wxGTK32;
+  };
+
+  spatialite_tools = callPackage ../applications/gis/spatialite-tools { };
+
+  udig = callPackage ../applications/gis/udig { };
+
+  whitebox-tools = callPackage ../applications/gis/whitebox-tools {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  zombietrackergps = libsForQt5.callPackage ../applications/gis/zombietrackergps { };
+
+  ### APPLICATIONS
+
+  _2bwm = callPackage ../applications/window-managers/2bwm {
+    patches = config."2bwm".patches or [];
+  };
+
+  a2jmidid = callPackage ../applications/audio/a2jmidid { };
+
+  aacgain = callPackage ../applications/audio/aacgain { };
+
+  aaxtomp3 = callPackage ../applications/audio/aaxtomp3 { };
+
+  abcde = callPackage ../applications/audio/abcde {
+    inherit (python3Packages) eyeD3;
+  };
+
+  abiword = callPackage ../applications/office/abiword { };
+
+  abook = callPackage ../applications/misc/abook { };
+
+  acd-cli = callPackage ../applications/networking/sync/acd_cli {
+    inherit (python3Packages)
+      buildPythonApplication appdirs colorama python-dateutil
+      requests requests-toolbelt setuptools sqlalchemy fusepy;
+  };
+
+  acorn = callPackage ../applications/networking/cluster/acorn { };
+
+  inherit (qt6Packages.callPackage ../applications/office/activitywatch { })
+    aw-qt
+    aw-server-rust
+    aw-watcher-afk
+    aw-watcher-window;
+
+  activitywatch = callPackage ../applications/office/activitywatch/wrapper.nix { };
+
+  aw-watcher-window-wayland = callPackage ../tools/wayland/aw-watcher-window-wayland {  };
+
+  adobe-reader = pkgsi686Linux.callPackage ../applications/misc/adobe-reader { };
+
+  adl = callPackage ../applications/video/adl { };
+
+  appvm = callPackage ../applications/virtualization/appvm { };
+
+  anilibria-winmaclinux = libsForQt5.callPackage ../applications/video/anilibria-winmaclinux { };
+
+  masterpdfeditor = libsForQt5.callPackage ../applications/misc/masterpdfeditor { };
+
+  masterpdfeditor4 = libsForQt5.callPackage ../applications/misc/masterpdfeditor4 { };
+
+  master_me = callPackage ../applications/audio/master_me {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  pdfstudio2021 = callPackage ../applications/misc/pdfstudio { year = "2021"; };
+
+  pdfstudio2022 = callPackage ../applications/misc/pdfstudio { year = "2022"; };
+
+  pdfstudio2023 = callPackage ../applications/misc/pdfstudio { year = "2023"; };
+
+  pdfstudioviewer = callPackage ../applications/misc/pdfstudio { program = "pdfstudioviewer"; };
+
+  abaddon = callPackage ../applications/networking/instant-messengers/abaddon { };
+
+  acpic = callPackage ../applications/misc/acpic/default.nix { };
+
+  adguardian = callPackage ../applications/networking/adguardian { };
+
+  aeolus = callPackage ../applications/audio/aeolus { };
+  aeolus-stops = callPackage ../applications/audio/aeolus/stops.nix { };
+
+  aewan = callPackage ../applications/editors/aewan { };
+
+  agedu = callPackage ../tools/misc/agedu { };
+
+  agenda = callPackage ../applications/office/agenda { };
+
+  ahoviewer = callPackage ../applications/graphics/ahoviewer { };
+
+  airwave = libsForQt5.callPackage ../applications/audio/airwave { };
+
+  akira-unstable = callPackage ../applications/graphics/akira { };
+
+  alembic = callPackage ../development/libraries/alembic { };
+
+  alfaview = callPackage ../applications/networking/instant-messengers/alfaview { };
+
+  alchemy = callPackage ../applications/graphics/alchemy { };
+
+  alock = callPackage ../misc/screensavers/alock { };
+
+  alot = callPackage ../applications/networking/mailreaders/alot { };
+
+  alpine = callPackage ../applications/networking/mailreaders/alpine { };
+
+  msgviewer = callPackage ../applications/networking/mailreaders/msgviewer { };
+
+  amarok = libsForQt5.callPackage ../applications/audio/amarok { };
+  amarok-kf5 = amarok; # for compatibility
+
+  amfora = callPackage ../applications/networking/browsers/amfora { };
+
+  AMB-plugins = callPackage ../applications/audio/AMB-plugins { };
+
+  ams-lv2 = callPackage ../applications/audio/ams-lv2 { };
+
+  androidStudioPackages = recurseIntoAttrs
+    (callPackage ../applications/editors/android-studio { });
+  android-studio = androidStudioPackages.stable;
+
+  antfs-cli = callPackage ../applications/misc/antfs-cli { };
+
+  antimony = libsForQt5.callPackage ../applications/graphics/antimony { };
+
+  antiword = callPackage ../applications/office/antiword { };
+
+  anup = callPackage ../applications/misc/anup {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  anytone-emu = callPackage ../applications/radio/anytone-emu { };
+
+  anytype = callPackage ../applications/misc/anytype { };
+
+  ao = libfive;
+
+  apache-directory-studio = callPackage ../applications/networking/apache-directory-studio { };
+
+  apkeep = callPackage ../tools/misc/apkeep {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  apngasm = callPackage ../applications/graphics/apngasm { };
+  apngasm_2 = callPackage ../applications/graphics/apngasm/2.nix { };
+
+  appcleaner = callPackage ../applications/misc/appcleaner { };
+
+  appeditor = callPackage ../applications/misc/appeditor { };
+
+  appgate-sdp = callPackage ../applications/networking/appgate-sdp { };
+
+  apostrophe = callPackage ../applications/editors/apostrophe {
+    pythonPackages = python3Packages;
+  };
+
+  ardour = callPackage ../applications/audio/ardour { };
+  ardour_7 = callPackage ../applications/audio/ardour/7.nix { };
+
+  arelle = with python3Packages; toPythonApplication arelle;
+
+  argo = callPackage ../applications/networking/cluster/argo { };
+
+  argocd = callPackage ../applications/networking/cluster/argocd { };
+
+  argocd-autopilot = callPackage ../applications/networking/cluster/argocd-autopilot { };
+
+  argo-rollouts = callPackage ../applications/networking/cluster/argo-rollouts { };
+
+  ario = callPackage ../applications/audio/ario { };
+
+  arion = callPackage ../applications/virtualization/arion { };
+
+  arkade = callPackage ../applications/networking/cluster/arkade { };
+
+  artem = callPackage ../applications/graphics/artem { };
+
+  asuka = callPackage ../applications/networking/browsers/asuka {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  ascii-image-converter = callPackage ../applications/graphics/ascii-image-converter { };
+
+  artha = callPackage ../applications/misc/artha { };
+
+  atlassian-cli = callPackage ../applications/office/atlassian-cli { };
+
+  pulsar = callPackage ../applications/editors/pulsar { };
+
+  asap = callPackage ../tools/audio/asap { };
+
+  aseprite = callPackage ../applications/editors/aseprite { };
+
+  assign-lb-ip = callPackage ../applications/networking/cluster/assign-lb-ip { };
+
+  astroid = callPackage ../applications/networking/mailreaders/astroid {
+    vim = vim-full.override { features = "normal"; };
+    protobuf = protobuf_21;
+  };
+
+  aucatctl = callPackage ../applications/audio/aucatctl { };
+
+  audacious = libsForQt5.callPackage ../applications/audio/audacious { };
+  audacious-plugins = libsForQt5.callPackage ../applications/audio/audacious/plugins.nix {
+    # Avoid circular dependency
+    audacious = audacious.override { audacious-plugins = null; };
+  };
+  audaciousQt5 = audacious;
+
+  audacity = callPackage ../applications/audio/audacity {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreAudioKit;
+  };
+
+  audio-recorder = callPackage ../applications/audio/audio-recorder { };
+
+  auto-multiple-choice = callPackage ../applications/misc/auto-multiple-choice { };
+
+  autokey = callPackage ../applications/office/autokey { };
+
+  autotalent = callPackage ../applications/audio/autotalent { };
+
+  autotrace = callPackage ../applications/graphics/autotrace { };
+
+  av-98 = callPackage ../applications/networking/browsers/av-98 { };
+
+  avalanchego = callPackage ../applications/networking/avalanchego {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  avizo = callPackage ../applications/misc/avizo { };
+
+  avocode = callPackage ../applications/graphics/avocode { };
+
+  ax25-apps = callPackage ../applications/radio/ax25-apps { };
+
+  ax25-tools = callPackage ../applications/radio/ax25-tools { };
+
+  azpainter = callPackage ../applications/graphics/azpainter { };
+
+  bambootracker = libsForQt5.callPackage ../applications/audio/bambootracker {
+    stdenv = if stdenv.hostPlatform.isDarwin then
+      darwin.apple_sdk_11_0.stdenv
+    else
+      stdenv;
+  };
+  bambootracker-qt6 = qt6Packages.callPackage ../applications/audio/bambootracker {
+    stdenv = if stdenv.hostPlatform.isDarwin then
+      darwin.apple_sdk_11_0.stdenv
+    else
+      stdenv;
+  };
+
+  blocky = callPackage ../applications/networking/blocky { };
+
+  brutefir = callPackage ../applications/audio/brutefir { };
+
+  cheesecutter = callPackage ../applications/audio/cheesecutter { };
+
+  cutecapture = callPackage ../applications/video/cutecapture { };
+
+  milkytracker = callPackage ../applications/audio/milkytracker {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreAudio Foundation;
+  };
+
+  ptcollab = libsForQt5.callPackage ../applications/audio/ptcollab { };
+
+  schismtracker = callPackage ../applications/audio/schismtracker {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  jnetmap = callPackage ../applications/networking/jnetmap { };
+
+  jxplorer  = callPackage ../applications/networking/jxplorer {};
+
+  joincap = callPackage ../tools/security/joincap { };
+
+  json-plot = callPackage ../applications/graphics/json-plot { };
+
+  libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix {
+    boost = boost175; # fatal error: 'boost/interprocess/detail/posix_time_types_wrk.hpp' file not found
+  };
+  libbitcoin-protocol = callPackage ../tools/misc/libbitcoin/libbitcoin-protocol.nix {
+    boost = boost175;
+  };
+  libbitcoin-client   = callPackage ../tools/misc/libbitcoin/libbitcoin-client.nix {
+    boost = boost175;
+  };
+  libbitcoin-network  = callPackage ../tools/misc/libbitcoin/libbitcoin-network.nix {
+    boost = boost175;
+  };
+  libbitcoin-explorer = callPackage ../tools/misc/libbitcoin/libbitcoin-explorer.nix {
+    boost = boost175;
+  };
+
+
+  armcord = callPackage ../applications/networking/instant-messengers/armcord { };
+
+  aumix = callPackage ../applications/audio/aumix {
+    gtkGUI = false;
+  };
+
+  autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
+
+  ausweisapp = qt6Packages.callPackage ../applications/misc/ausweisapp { };
+
+  avidemux = libsForQt5.callPackage ../applications/video/avidemux { };
+
+  avrdudess = callPackage ../applications/misc/avrdudess { };
+
+  awesome = callPackage ../applications/window-managers/awesome {
+    cairo = cairo.override { xcbSupport = true; };
+    inherit (texFunctions) fontsConf;
+  };
+
+  awesomebump = libsForQt5.callPackage ../applications/graphics/awesomebump { };
+
+  inherit (gnome) baobab;
+
+  badwolf = callPackage ../applications/networking/browsers/badwolf { };
+
+  backintime-common = callPackage ../applications/networking/sync/backintime/common.nix { };
+
+  backintime-qt = libsForQt5.callPackage ../applications/networking/sync/backintime/qt.nix { };
+
+  backintime = backintime-qt;
+
+  balsa = callPackage ../applications/networking/mailreaders/balsa { };
+
+  bandwidth = callPackage ../tools/misc/bandwidth { };
+
+  banking = callPackage ../applications/office/banking { };
+
+  baresip = callPackage ../applications/networking/instant-messengers/baresip { };
+
+  barrier = libsForQt5.callPackage ../applications/misc/barrier { };
+
+  bashSnippets = callPackage ../applications/misc/bashSnippets { };
+
+  batik = callPackage ../applications/graphics/batik { };
+
+  batsignal = callPackage ../applications/misc/batsignal { };
+
+  baudline = callPackage ../applications/audio/baudline { };
+
+  bb =  callPackage ../applications/misc/bb { };
+
+  bchoppr = callPackage ../applications/audio/bchoppr { };
+
+  bespokesynth = darwin.apple_sdk_11_0.callPackage ../applications/audio/bespokesynth {
+    inherit (darwin.apple_sdk_11_0.frameworks) Accelerate Cocoa WebKit CoreServices CoreAudioKit IOBluetooth MetalKit;
+  };
+
+  bespokesynth-with-vst2 = bespokesynth.override {
+    enableVST2 = true;
+  };
+
+  bfcal = libsForQt5.callPackage ../applications/misc/bfcal { };
+
+  bibletime = libsForQt5.callPackage ../applications/misc/bibletime { };
+
+  bino3d = libsForQt5.callPackage ../applications/video/bino3d {
+    glew = glew110;
+  };
+
+  bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
+  bitlbee-plugins = callPackage ../applications/networking/instant-messengers/bitlbee/plugins.nix { };
+
+  bitlbee-discord = callPackage ../applications/networking/instant-messengers/bitlbee-discord { };
+
+  bitlbee-facebook = callPackage ../applications/networking/instant-messengers/bitlbee-facebook { };
+
+  bitlbee-steam = callPackage ../applications/networking/instant-messengers/bitlbee-steam { };
+
+  bitlbee-mastodon = callPackage ../applications/networking/instant-messengers/bitlbee-mastodon { };
+
+  bitmeter = callPackage ../applications/audio/bitmeter { };
+
+  bitscope = recurseIntoAttrs
+    (callPackage ../applications/science/electronics/bitscope/packages.nix { });
+
+  bitwig-studio3 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio3.nix { };
+  bitwig-studio4 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio4.nix {
+    libjpeg = libjpeg8;
+  };
+  bitwig-studio5 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio5.nix {
+    libjpeg = libjpeg8;
+  };
+
+  bitwig-studio = bitwig-studio5;
+
+  bgpdump = callPackage ../tools/networking/bgpdump { };
+
+  bgpq3 = callPackage ../tools/networking/bgpq3 { };
+
+  bgpq4 = callPackage ../tools/networking/bgpq4 { };
+
+  blackbox = callPackage ../applications/version-management/blackbox { };
+
+  bleachbit = callPackage ../applications/misc/bleachbit { };
+
+  blender = callPackage  ../applications/misc/blender {
+    # LLVM 11 crashes when compiling GHOST_SystemCocoa.mm
+    stdenv = if stdenv.isDarwin then llvmPackages_10.stdenv else stdenv;
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
+  };
+
+  blender-hip = blender.override { hipSupport = true; };
+
+  blflash = callPackage ../tools/misc/blflash { };
+
+  blogc = callPackage ../applications/misc/blogc { };
+
+  bloodhound = callPackage ../applications/misc/bloodhound { };
+
+  blucontrol = callPackage ../applications/misc/blucontrol/wrapper.nix {
+    inherit (haskellPackages) ghcWithPackages;
+  };
+
+  bluefish = callPackage ../applications/editors/bluefish {
+    gtk = gtk3;
+  };
+
+  bluej = callPackage ../applications/editors/bluej {
+    openjdk = openjdk17.override {
+      enableJavaFX = true;
+      openjfx = openjfx17.override { withWebKit = true; };
+    };
+  };
+
+  bluejeans-gui = callPackage ../applications/networking/instant-messengers/bluejeans { };
+
+  bluemail = callPackage ../applications/networking/mailreaders/bluemail { };
+
+  blugon = callPackage ../applications/misc/blugon { };
+
+  bombadillo = callPackage ../applications/networking/browsers/bombadillo { };
+
+  bombono = callPackage ../applications/video/bombono { };
+
+  bonzomatic = callPackage ../applications/editors/bonzomatic { };
+
+  booster = callPackage ../applications/system/booster { };
+
+  bottles = callPackage ../applications/misc/bottles/fhsenv.nix { };
+
+  bottles-unwrapped = callPackage ../applications/misc/bottles { };
+
+  buzztrax = callPackage ../applications/audio/buzztrax { };
+
+  brave = callPackage ../applications/networking/browsers/brave { };
+
+  break-time = callPackage ../applications/misc/break-time { };
+
+  breezy = with python3Packages; toPythonApplication breezy;
+
+  notmuch-bower = callPackage ../applications/networking/mailreaders/notmuch-bower { };
+
+  brig = callPackage ../applications/networking/brig { };
+
+  bristol = callPackage ../applications/audio/bristol { };
+
+  brlcad = callPackage ../applications/graphics/brlcad { };
+
+  bjumblr = callPackage ../applications/audio/bjumblr { };
+
+  bschaffl = callPackage ../applications/audio/bschaffl { };
+
+  bsequencer = callPackage ../applications/audio/bsequencer { };
+
+  bslizr = callPackage ../applications/audio/bslizr { };
+
+  bshapr = callPackage ../applications/audio/bshapr { };
+
+  bspwm = callPackage ../applications/window-managers/bspwm { };
+
+  bvi = callPackage ../applications/editors/bvi { };
+
+  bviplus = callPackage ../applications/editors/bviplus { };
+
+  caerbannog = callPackage ../applications/misc/caerbannog { };
+
+  cardo = callPackage ../data/fonts/cardo { };
+
+  cage = callPackage ../applications/window-managers/cage {
+    wlroots = wlroots_0_16;
+  };
+
+  calf = callPackage ../applications/audio/calf {
+      inherit (gnome2) libglade;
+  };
+
+  calcmysky = qt6Packages.callPackage ../applications/science/astronomy/calcmysky { };
+
+  calcurse = callPackage ../applications/misc/calcurse { };
+
+  calculix = callPackage ../applications/science/math/calculix { };
+
+  calibre = qt6Packages.callPackage ../applications/misc/calibre {
+    podofo = podofo010;
+  };
+
+  calibre-web = callPackage ../servers/calibre-web { };
+
+  # calico-felix and calico-node have not been packaged due to libbpf, linking issues
+  inherit (callPackage ../applications/networking/cluster/calico {})
+    calico-apiserver
+    calico-app-policy
+    calico-cni-plugin
+    calico-kube-controllers
+    calico-pod2daemon
+    calico-typha
+    calicoctl
+    confd-calico;
+
+  calligra = libsForQt5.callPackage ../applications/office/calligra { };
+
+  perkeep = callPackage ../applications/misc/perkeep { };
+
+  canto-curses = callPackage ../applications/networking/feedreaders/canto-curses { };
+
+  canto-daemon = callPackage ../applications/networking/feedreaders/canto-daemon { };
+
+  caprine-bin = callPackage ../applications/networking/instant-messengers/caprine-bin { };
+
+  carddav-util = callPackage ../tools/networking/carddav-util { };
+
+  cardinal = callPackage ../applications/audio/cardinal { };
+
+  carla = libsForQt5.callPackage ../applications/audio/carla { };
+
+  castor = callPackage ../applications/networking/browsers/castor { };
+
+  catfs = callPackage ../os-specific/linux/catfs { };
+
+  catgirl = callPackage ../applications/networking/irc/catgirl { };
+
+  catimg = callPackage ../tools/misc/catimg { };
+
+  catt = callPackage ../applications/video/catt { };
+
+  cava = callPackage ../applications/audio/cava { };
+
+  cavalier = callPackage ../applications/audio/cavalier { };
+
+  cb2bib = libsForQt5.callPackage ../applications/office/cb2bib { };
+
+  cbatticon = callPackage ../applications/misc/cbatticon { };
+
+  cbc = callPackage ../applications/science/math/cbc { };
+
+  cddiscid = callPackage ../applications/audio/cd-discid {
+    inherit (darwin) IOKit;
+  };
+
+  cdparanoia = cdparanoiaIII;
+
+  cdparanoiaIII = callPackage ../applications/audio/cdparanoia {
+    inherit (darwin) IOKit;
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  celeste = callPackage ../applications/networking/sync/celeste { };
+
+  cyan = callPackage ../applications/graphics/cyan { };
+
+  centerim = callPackage ../applications/networking/instant-messengers/centerim { };
+
+  chatty = callPackage ../applications/networking/instant-messengers/chatty { };
+
+  chirp = callPackage ../applications/radio/chirp { };
+
+  browsh = callPackage ../applications/networking/browsers/browsh { };
+
+  brotab = callPackage ../tools/misc/brotab {
+    python = python3;
+  };
+
+  bookworm = callPackage ../applications/office/bookworm { };
+
+  bookletimposer = callPackage ../applications/office/bookletimposer { };
+
+  boops = callPackage ../applications/audio/boops { };
+
+  bumblebee-status = callPackage ../applications/window-managers/i3/bumblebee-status {
+    python = python3;
+  };
+
+  cgif = callPackage ../tools/graphics/cgif { };
+
+  ChowCentaur  = callPackage ../applications/audio/ChowCentaur { };
+
+  ChowKick  = callPackage ../applications/audio/ChowKick { };
+
+  ChowPhaser  = callPackage ../applications/audio/ChowPhaser { };
+
+  CHOWTapeModel = callPackage ../applications/audio/CHOWTapeModel { };
+
+  chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
+
+  chuck = callPackage ../applications/audio/chuck {
+    inherit (darwin) DarwinTools;
+    inherit (darwin.apple_sdk.frameworks) AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel MultitouchSupport;
+  };
+
+  cinelerra = callPackage ../applications/video/cinelerra { };
+
+  cipher = callPackage ../applications/misc/cipher { };
+
+  clapper = callPackage ../applications/video/clapper { };
+
+  claws-mail = callPackage ../applications/networking/mailreaders/claws-mail { };
+
+  cligh = python3Packages.callPackage ../development/tools/github/cligh { };
+
+  clight = callPackage ../applications/misc/clight { };
+
+  clightd = callPackage ../applications/misc/clight/clightd.nix { };
+
+  clipgrab = libsForQt5.callPackage ../applications/video/clipgrab { };
+
+  clipcat = callPackage ../applications/misc/clipcat { };
+
+  clipmenu = callPackage ../applications/misc/clipmenu { };
+
+  clipit = callPackage ../applications/misc/clipit { };
+
+  clipqr = callPackage ../applications/misc/clipqr { };
+
+  cloud-hypervisor = callPackage ../applications/virtualization/cloud-hypervisor { };
+
+  clp = callPackage ../applications/science/math/clp { };
+
+  cmatrix = callPackage ../applications/misc/cmatrix { };
+
+  pokemon-colorscripts-mac = callPackage ../applications/misc/pokemon-colorscripts-mac { };
+
+  cmctl = callPackage ../applications/networking/cluster/cmctl { };
+
+  cmus = callPackage ../applications/audio/cmus {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio VideoToolbox;
+    libjack = libjack2;
+  };
+
+  cmusfm = callPackage ../applications/audio/cmusfm { };
+
+  cni = callPackage ../applications/networking/cluster/cni { };
+  cni-plugins = callPackage ../applications/networking/cluster/cni/plugins.nix { };
+
+  dnsname-cni = callPackage ../applications/networking/cluster/dnsname-cni { };
+
+  multus-cni = callPackage ../applications/networking/cluster/multus-cni { };
+
+  cntr = callPackage ../applications/virtualization/cntr { };
+
+  communi = libsForQt5.callPackage ../applications/networking/irc/communi { };
+
+  complete-alias = callPackage ../tools/misc/complete-alias { };
+
+  completely = callPackage ../tools/misc/completely { };
+
+  confclerk = libsForQt5.callPackage ../applications/misc/confclerk { };
+
+  copyq = qt6Packages.callPackage ../applications/misc/copyq { };
+
+  corectrl = libsForQt5.callPackage ../applications/misc/corectrl { };
+
+  coreth = callPackage ../applications/networking/coreth { };
+
+  coriander = callPackage ../applications/video/coriander {
+    inherit (gnome2) libgnomeui GConf;
+  };
+
+  corrscope = libsForQt5.callPackage ../applications/video/corrscope {
+    ffmpeg = ffmpeg-full;
+  };
+
+  cpeditor = libsForQt5.callPackage ../applications/editors/cpeditor { };
+
+  csa = callPackage ../applications/audio/csa { };
+
+  csound = callPackage ../applications/audio/csound {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate AudioUnit CoreAudio CoreMIDI;
+  };
+
+  csound-manual = callPackage ../applications/audio/csound/csound-manual { };
+
+  csound-qt = libsForQt5.callPackage ../applications/audio/csound/csound-qt {
+    python = python3;
+  };
+
+  codeblocks = callPackage ../applications/editors/codeblocks { };
+  codeblocksFull = codeblocks.override { contribPlugins = true; };
+
+  cudatext-qt = callPackage ../applications/editors/cudatext { widgetset = "qt5"; };
+  cudatext-gtk = callPackage ../applications/editors/cudatext { widgetset = "gtk2"; };
+  cudatext = cudatext-qt;
+
+  convos = callPackage ../applications/networking/irc/convos { };
+
+  comical = callPackage ../applications/graphics/comical {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  containerd = callPackage ../applications/virtualization/containerd { };
+
+  container2wasm = callPackage ../development/tools/container2wasm { };
+
+  convchain = callPackage ../tools/graphics/convchain { };
+
+  cordless = callPackage ../applications/networking/instant-messengers/cordless { };
+
+  cosmic-settings = callPackage ../applications/window-managers/cosmic/settings { };
+
+  coursera-dl = callPackage ../applications/misc/coursera-dl { };
+
+  coyim = callPackage ../applications/networking/instant-messengers/coyim { };
+
+  cozy-drive = callPackage ../applications/networking/cozy-drive { };
+
+  cplay-ng = callPackage ../applications/audio/cplay-ng { };
+
+  cq-editor = libsForQt5.callPackage ../applications/graphics/cq-editor { };
+
+  cqrlog = callPackage ../applications/radio/cqrlog {
+    hamlib = hamlib_4;
+  };
+
+  crun = callPackage ../applications/virtualization/crun { };
+
+  csdp = callPackage ../applications/science/math/csdp { };
+
+  csv2svg = callPackage ../tools/graphics/csv2svg { };
+
+  ctop = callPackage ../tools/system/ctop { };
+
+  cubicsdr = callPackage ../applications/radio/cubicsdr {
+    inherit (darwin.apple_sdk.frameworks) Cocoa WebKit;
+  };
+
+  cum = callPackage ../applications/misc/cum { };
+
+  cuneiform = callPackage ../tools/graphics/cuneiform { };
+
+  curseradio = callPackage ../applications/audio/curseradio { };
+
+  curtail = callPackage ../applications/graphics/curtail { };
+
+  cutecom = libsForQt5.callPackage ../tools/misc/cutecom { };
+
+  cvs = callPackage ../applications/version-management/cvs { };
+
+  cvsps = callPackage ../applications/version-management/cvsps { };
+
+  cvsq = callPackage ../applications/version-management/cvsq { };
+
+  cvs2svn = callPackage ../applications/version-management/cvs2svn { };
+
+  cwm = callPackage ../applications/window-managers/cwm { };
+
+  cyber = callPackage ../development/interpreters/cyber { };
+
+  cyberduck = callPackage ../applications/networking/cyberduck { };
+
+  cyclone = callPackage ../applications/audio/pd-plugins/cyclone  { };
+
+  dablin = callPackage ../applications/radio/dablin { };
+
+  daktilo = callPackage ../tools/misc/daktilo { };
+
+  darcs = haskell.lib.compose.overrideCabal (drv: {
+    configureFlags = (lib.remove "-flibrary" drv.configureFlags or []) ++ ["-f-library"];
+  }) (haskell.lib.compose.justStaticExecutables haskellPackages.darcs);
+
+  darkman = callPackage ../applications/misc/darkman { };
+
+  darktable = callPackage ../applications/graphics/darktable {
+    lua = lua5_4;
+    pugixml = pugixml.override { shared = true; };
+  };
+
+  das_watchdog = callPackage ../tools/system/das_watchdog { };
+
+  datadog-agent = callPackage ../tools/networking/dd-agent/datadog-agent.nix {
+    pythonPackages = datadog-integrations-core { };
+  };
+  datadog-process-agent = callPackage ../tools/networking/dd-agent/datadog-process-agent.nix { };
+  datadog-integrations-core = extras: callPackage ../tools/networking/dd-agent/integrations-core.nix {
+    python = python3;
+    extraIntegrations = extras;
+  };
+
+  dayon = callPackage ../applications/networking/remote/dayon { };
+
+  ddgr = callPackage ../applications/misc/ddgr { };
+
+  deadbeef = callPackage ../applications/audio/deadbeef { };
+
+  deadbeefPlugins = {
+    headerbar-gtk3 = callPackage ../applications/audio/deadbeef/plugins/headerbar-gtk3.nix { };
+    lyricbar = callPackage ../applications/audio/deadbeef/plugins/lyricbar.nix { };
+    mpris2 = callPackage ../applications/audio/deadbeef/plugins/mpris2.nix { };
+    musical-spectrum = callPackage ../applications/audio/deadbeef/plugins/musical-spectrum.nix { };
+    statusnotifier = callPackage ../applications/audio/deadbeef/plugins/statusnotifier.nix { };
+    playlist-manager = callPackage ../applications/audio/deadbeef/plugins/playlist-manager.nix { };
+  };
+
+  deadbeef-with-plugins = callPackage ../applications/audio/deadbeef/wrapper.nix {
+    plugins = [];
+  };
+
+  denaro = callPackage ../applications/finance/denaro { };
+
+  inherit (callPackage ../development/tools/devpod { }) devpod devpod-desktop;
+
+  dfasma = libsForQt5.callPackage ../applications/audio/dfasma { };
+
+  dfilemanager = libsForQt5.callPackage ../applications/file-managers/dfilemanager { };
+
+  dht = callPackage ../applications/networking/p2p/dht { };
+
+  dia = callPackage ../applications/graphics/dia { };
+
+  diebahn = callPackage ../applications/misc/diebahn { };
+
+  digital = callPackage ../applications/science/electronics/digital { };
+
+  direwolf = callPackage ../applications/radio/direwolf {
+    hamlib = hamlib_4;
+  };
+
+  dirt = callPackage ../applications/audio/dirt { };
+
+  distrho = callPackage ../applications/audio/distrho { };
+
+  dit = callPackage ../applications/editors/dit { };
+
+  djvulibre = callPackage ../applications/misc/djvulibre { };
+
+  djvu2pdf = callPackage ../tools/typesetting/djvu2pdf { };
+
+  djview = libsForQt5.callPackage ../applications/graphics/djview { };
+  djview4 = djview;
+
+  dmenu = callPackage ../applications/misc/dmenu { };
+  dmenu-wayland = callPackage ../applications/misc/dmenu/wayland.nix { };
+
+  dmenu-rs = callPackage ../applications/misc/dmenu-rs { };
+
+  dmensamenu = callPackage ../applications/misc/dmensamenu {
+    inherit (python3Packages) buildPythonApplication requests;
+  };
+
+  dmrconfig = callPackage ../applications/radio/dmrconfig { };
+
+  dmtx-utils = callPackage ../tools/graphics/dmtx-utils {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  dnd-tools = callPackage ../applications/misc/dnd-tools { };
+
+  dnglab = callPackage ../tools/graphics/dnglab { };
+
+  inherit (callPackage ../applications/virtualization/docker {})
+    docker_20_10 docker_24;
+
+  docker = docker_24;
+  docker-client = docker.override { clientOnly = true; };
+
+  docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
+
+  docker-gc = callPackage ../applications/virtualization/docker/gc.nix { };
+
+  docker-machine = callPackage ../applications/networking/cluster/docker-machine { };
+  docker-machine-hyperkit = callPackage ../applications/networking/cluster/docker-machine/hyperkit.nix { };
+  docker-machine-kvm = callPackage ../applications/networking/cluster/docker-machine/kvm.nix { };
+  docker-machine-kvm2 = callPackage ../applications/networking/cluster/docker-machine/kvm2.nix { };
+  docker-machine-xhyve = callPackage ../applications/networking/cluster/docker-machine/xhyve.nix {
+    inherit (darwin.apple_sdk.frameworks) Hypervisor vmnet;
+    inherit (darwin) cctools;
+  };
+
+  docker-distribution = callPackage ../applications/virtualization/docker/distribution.nix { };
+
+  dockfmt = callPackage ../development/tools/dockfmt { };
+
+  afterburn = callPackage ../tools/admin/afterburn { };
+
+  docker-buildx = callPackage ../applications/virtualization/docker/buildx.nix { };
+  docker-compose = callPackage ../applications/virtualization/docker/compose.nix { };
+  docker-compose_1 = python3Packages.callPackage ../applications/virtualization/docker/compose_1.nix { };
+  docker-sbom = callPackage ../applications/virtualization/docker/sbom.nix { };
+
+
+  amazon-ecr-credential-helper = callPackage ../tools/admin/amazon-ecr-credential-helper { };
+
+  dk = callPackage ../applications/window-managers/dk { };
+
+  docker-credential-gcr = callPackage ../tools/admin/docker-credential-gcr { };
+
+  docker-credential-helpers = callPackage ../tools/admin/docker-credential-helpers { };
+
+  dockstarter = callPackage ../tools/virtualization/dockstarter { };
+
+  doodle = callPackage ../applications/search/doodle { };
+
+  dr14_tmeter = callPackage ../applications/audio/dr14_tmeter { };
+
+  dracut = callPackage ../os-specific/linux/dracut { };
+
+  dragonflydb = callPackage ../servers/nosql/dragonflydb { };
+
+  dragonfly-reverb = callPackage ../applications/audio/dragonfly-reverb { };
+
+  drawing = callPackage ../applications/graphics/drawing { };
+
+  drawio = callPackage ../applications/graphics/drawio { };
+  drawio-headless = callPackage ../applications/graphics/drawio/headless.nix { };
+
+  drawpile = libsForQt5.callPackage ../applications/graphics/drawpile { };
+  drawpile-server-headless = libsForQt5.callPackage ../applications/graphics/drawpile {
+    buildClient = false;
+    buildServerGui = false;
+  };
+
+  drawterm = callPackage ../tools/admin/drawterm { config = "unix"; };
+  drawterm-wayland = callPackage ../tools/admin/drawterm { config = "linux";  };
+
+  droopy = python3Packages.callPackage ../applications/networking/droopy { };
+
+  drumgizmo = callPackage ../applications/audio/drumgizmo { };
+
+  dsf2flac = callPackage ../applications/audio/dsf2flac { };
+
+  dunst = callPackage ../applications/misc/dunst { };
+
+  du-dust = callPackage ../tools/misc/dust {
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit;
+  };
+
+  dutree = callPackage ../tools/misc/dutree { };
+
+  devede = callPackage ../applications/video/devede { };
+
+  denemo = callPackage ../applications/audio/denemo { };
+
+  dexed = darwin.apple_sdk_11_0.callPackage ../applications/audio/dexed {
+    inherit (darwin.apple_sdk_11_0.frameworks) Accelerate Cocoa WebKit MetalKit DiscRecording CoreAudioKit;
+    inherit (darwin.apple_sdk_11_0.libs) simd;
+  };
+
+  dvdauthor = callPackage ../applications/video/dvdauthor { };
+
+  dvdbackup = callPackage ../applications/video/dvdbackup { };
+
+  dvd-slideshow = callPackage ../applications/video/dvd-slideshow { };
+
+  dvdstyler = callPackage ../applications/video/dvdstyler {
+    inherit (gnome2) libgnomeui;
+  };
+
+  dyff = callPackage ../development/tools/dyff { };
+
+  dwl = callPackage ../applications/window-managers/dwl {
+    wlroots = wlroots_0_16;
+  };
+
+  dwm = callPackage ../applications/window-managers/dwm {
+    # dwm is configured entirely through source modification. Allow users to
+    # specify patches through nixpkgs.config.dwm.patches
+    patches = config.dwm.patches or [];
+  };
+
+  dwmblocks = callPackage ../applications/misc/dwmblocks { };
+
+  dwmbar = callPackage ../applications/misc/dwmbar { };
+
+  dwm-status = callPackage ../applications/window-managers/dwm/dwm-status.nix { };
+
+  emoji-picker = callPackage ../applications/misc/emoji-picker { };
+
+  exploitdb = callPackage ../tools/security/exploitdb { };
+
+  evilwm = callPackage ../applications/window-managers/evilwm {
+    patches = config.evilwm.patches or [];
+  };
+
+  dzen2 = callPackage ../applications/window-managers/dzen2 { };
+
+  e16 = callPackage ../applications/window-managers/e16 { };
+
+  eaglemode = callPackage ../applications/misc/eaglemode { };
+
+  ebumeter = callPackage ../applications/audio/ebumeter { };
+
+  echoip = callPackage ../servers/echoip { };
+
+  eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse { });
+
+  ecpdap = callPackage ../development/embedded/fpga/ecpdap {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  ecs-agent = callPackage ../applications/virtualization/ecs-agent { };
+
+  inherit (recurseIntoAttrs (callPackage ../applications/editors/ed { }))
+    ed edUnstable;
+
+  edbrowse = callPackage ../applications/editors/edbrowse { };
+
+  edlin = callPackage ../applications/editors/edlin { };
+
+  orbiton = callPackage ../applications/editors/orbiton { };
+
+  oed = callPackage ../applications/editors/oed { };
+
+  ekho = callPackage ../applications/audio/ekho {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit;
+  };
+
+  electron-cash = libsForQt5.callPackage ../applications/misc/electron-cash { };
+
+  electrum = libsForQt5.callPackage ../applications/misc/electrum { };
+
+  electrum-grs = libsForQt5.callPackage ../applications/misc/electrum/grs.nix { };
+
+  electrum-ltc = libsForQt5.callPackage ../applications/misc/electrum/ltc.nix { };
+
+  elf-dissector = libsForQt5.callPackage ../applications/misc/elf-dissector {
+    libdwarf = libdwarf_20210528;
+  };
+
+  elfx86exts = callPackage ../applications/misc/elfx86exts { };
+
+  elinks = callPackage ../applications/networking/browsers/elinks {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  elvis = callPackage ../applications/editors/elvis { };
+
+  em = callPackage ../applications/editors/em { };
+
+  inherit (recurseIntoAttrs (darwin.apple_sdk_11_0.callPackage ../applications/editors/emacs { }))
+    emacs28
+    emacs28-gtk2
+    emacs28-gtk3
+    emacs28-nox
+    emacs29
+    emacs29-gtk3
+    emacs29-nox
+    emacs29-pgtk
+    emacs28-macport
+    emacs29-macport
+  ;
+
+  emacs-macport = emacs29-macport;
+  emacs = emacs29;
+  emacs-gtk = emacs29-gtk3;
+  emacs-nox = emacs29-nox;
+
+  emacsPackagesFor = emacs: import ./emacs-packages.nix {
+    inherit (lib) makeScope makeOverridable dontRecurseIntoAttrs;
+    emacs' = emacs;
+    pkgs' = pkgs;  # default pkgs used for bootstrapping the emacs package set
+  };
+
+  # This alias should live in aliases.nix but that would cause Hydra not to evaluate/build the packages.
+  # If you turn this into "real" alias again, please add it to pkgs/top-level/packages-config.nix again too
+  emacsPackages = emacs.pkgs // { __recurseIntoDerivationForReleaseJobs = true; };
+
+  emptty = callPackage ../applications/display-managers/emptty { };
+
+  endeavour = callPackage ../applications/office/endeavour { };
+
+  enhanced-ctorrent = callPackage ../applications/networking/p2p/enhanced-ctorrent { };
+
+  entangle = callPackage ../applications/video/entangle {
+    inherit (gst_all_1) gstreamer gst-plugins-base;
+  };
+
+  eolie = callPackage ../applications/networking/browsers/eolie { };
+
+  eos-installer = callPackage ../applications/misc/eos-installer { };
+
+  epdfview = callPackage ../applications/misc/epdfview { };
+
+  epeg = callPackage ../applications/graphics/epeg { };
+
+  epgstation = callPackage ../applications/video/epgstation { };
+
+  inherit (gnome) epiphany;
+
+  ephemeral = callPackage ../applications/networking/browsers/ephemeral { };
+
+  epic5 = callPackage ../applications/networking/irc/epic5 { };
+
+  epick = callPackage ../applications/graphics/epick {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  epr = callPackage ../applications/misc/epr { };
+
+  eq10q = callPackage ../applications/audio/eq10q { };
+
+  errbot = callPackage ../applications/networking/errbot { };
+
+  espeak-classic = callPackage ../applications/audio/espeak { };
+
+  espeak-ng = callPackage ../applications/audio/espeak-ng {
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreAudio;
+  };
+  espeak = res.espeak-ng;
+
+  espeakedit = callPackage ../applications/audio/espeak/edit.nix { };
+
+  espeakup = callPackage ../applications/accessibility/espeakup { };
+
+  etebase-server = with python3Packages; toPythonApplication etebase-server;
+
+  etesync-dav = callPackage ../applications/misc/etesync-dav { };
+
+  etherape = callPackage ../applications/networking/sniffers/etherape { };
+
+  evilpixie = libsForQt5.callPackage ../applications/graphics/evilpixie { };
+
+  eww = callPackage ../applications/window-managers/eww { };
+  eww-wayland = callPackage ../applications/window-managers/eww {
+    withWayland = true;
+  };
+
+  exaile = callPackage ../applications/audio/exaile { };
+
+  exercism = callPackage ../applications/misc/exercism { };
+
+  expenses = callPackage ../applications/misc/expenses { };
+
+  flowtime = callPackage ../applications/misc/flowtime { };
+
+  furnace = callPackage ../applications/audio/furnace {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  furtherance = callPackage ../applications/misc/furtherance { };
+
+  gigalixir = callPackage ../tools/misc/gigalixir { };
+
+  go-libp2p-daemon = callPackage ../servers/go-libp2p-daemon {
+    buildGoModule = buildGo120Module;
+  };
+
+  go-motion = callPackage ../development/tools/go-motion { };
+
+  go-musicfox = callPackage ../applications/audio/go-musicfox { };
+
+  gpg-mdp = callPackage ../applications/misc/gpg-mdp { };
+
+  greenfoot = callPackage ../applications/editors/greenfoot {
+    openjdk = openjdk17.override {
+      enableJavaFX = true;
+      openjfx = openjfx17.override { withWebKit = true; };
+    };
+  };
+
+  gspeech = callPackage ../applications/audio/gspeech { };
+
+  gtkcord4 = callPackage ../applications/audio/gtkcord4 { };
+
+  haruna = libsForQt5.callPackage ../applications/video/haruna { };
+
+  hdrmerge = libsForQt5.callPackage ../applications/graphics/hdrmerge { };
+
+  helix = callPackage ../applications/editors/helix { };
+
+  icesl = callPackage ../applications/misc/icesl { };
+
+  input-leap = libsForQt5.callPackage ../applications/misc/input-leap {
+    avahi = avahi.override { withLibdnssdCompat = true; };
+  };
+
+  karlender = callPackage ../applications/office/karlender { };
+
+  keepassxc = libsForQt5.callPackage ../applications/misc/keepassxc {
+    inherit (darwin.apple_sdk_11_0.frameworks) LocalAuthentication;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
+
+  keepass-diff = callPackage ../applications/misc/keepass-diff { };
+
+  keeweb = callPackage ../applications/misc/keeweb { };
+
+  inherit (gnome) evince;
+  evolution-data-server = gnome.evolution-data-server;
+  evolution-data-server-gtk4 = evolution-data-server.override { withGtk3 = false; withGtk4 = true; };
+  evolution-ews = callPackage ../applications/networking/mailreaders/evolution/evolution-ews { };
+  evolution = callPackage ../applications/networking/mailreaders/evolution/evolution { };
+  evolutionWithPlugins = callPackage ../applications/networking/mailreaders/evolution/evolution/wrapper.nix { plugins = [ evolution evolution-ews ]; };
+
+  keepass-charactercopy = callPackage ../applications/misc/keepass-plugins/charactercopy { };
+
+  keepass-keeagent = callPackage ../applications/misc/keepass-plugins/keeagent { };
+
+  keepass-keepasshttp = callPackage ../applications/misc/keepass-plugins/keepasshttp { };
+
+  keepass-keepassrpc = callPackage ../applications/misc/keepass-plugins/keepassrpc { };
+
+  keepass-keetraytotp = callPackage ../applications/misc/keepass-plugins/keetraytotp { };
+
+  keepass-otpkeyprov = callPackage ../applications/misc/keepass-plugins/otpkeyprov { };
+
+  keepass-qrcodeview = callPackage ../applications/misc/keepass-plugins/qrcodeview { };
+
+  kerbrute = callPackage ../tools/security/kerbrute { };
+
+  komikku = callPackage ../applications/graphics/komikku { };
+
+  kvmtool = callPackage ../applications/virtualization/kvmtool { };
+
+  exrtools = callPackage ../applications/graphics/exrtools { };
+
+  f1viewer = callPackage ../applications/video/f1viewer { };
+
+  falcoctl = callPackage ../applications/networking/cluster/falcoctl { };
+
+  faircamp = callPackage ../applications/misc/faircamp { };
+
+  famistudio = callPackage ../applications/audio/famistudio { };
+
+  fasttext = callPackage ../applications/science/machine-learning/fasttext { };
+
+  fbmenugen = callPackage ../applications/misc/fbmenugen { };
+
+  fbpanel = callPackage ../applications/window-managers/fbpanel { };
+
+  fdr = libsForQt5.callPackage ../applications/science/programming/fdr { };
+
+  feedbackd = callPackage ../applications/misc/feedbackd { };
+
+  fehlstart = callPackage ../applications/misc/fehlstart { };
+
+  fetchmail = callPackage ../applications/misc/fetchmail { };
+  fetchmail_7 = callPackage ../applications/misc/fetchmail/v7.nix { };
+
+  ff2mpv = callPackage ../applications/misc/ff2mpv { };
+
+  fff = callPackage ../applications/misc/fff { };
+
+  fig2dev = callPackage ../applications/graphics/fig2dev { };
+
+  FIL-plugins = callPackage ../applications/audio/FIL-plugins { };
+
+  finalfrontier = callPackage ../applications/science/machine-learning/finalfrontier {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  finalfusion-utils = callPackage ../applications/science/machine-learning/finalfusion-utils {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  firewalld = callPackage ../applications/networking/firewalld { };
+
+  firewalld-gui = firewalld.override { withGui = true; };
+
+  flacon = libsForQt5.callPackage ../applications/audio/flacon { };
+
+  flamp = callPackage ../applications/radio/flamp { };
+
+  flexget = callPackage ../applications/networking/flexget { };
+
+  fldigi = callPackage ../applications/radio/fldigi {
+    hamlib = hamlib_4;
+  };
+
+  flink = callPackage ../applications/networking/cluster/flink { };
+
+  fllog = callPackage ../applications/radio/fllog { };
+
+  flmsg = callPackage ../applications/radio/flmsg { };
+
+  flrig = callPackage ../applications/radio/flrig { };
+
+  fluxus = callPackage ../applications/graphics/fluxus { };
+
+  flwrap = callPackage ../applications/radio/flwrap { };
+
+  fluidsynth = callPackage ../applications/audio/fluidsynth {
+    inherit (darwin.apple_sdk.frameworks) AppKit AudioUnit CoreAudio CoreMIDI CoreServices;
+  };
+
+  fmit = libsForQt5.callPackage ../applications/audio/fmit { };
+
+  fmsynth = callPackage ../applications/audio/fmsynth { };
+
+  fnc = darwin.apple_sdk_11_0.callPackage ../applications/version-management/fnc { };
+
+  focus = callPackage ../tools/X11/focus { };
+
+  focus-stack = callPackage ../applications/graphics/focus-stack { };
+
+  focuswriter = qt6Packages.callPackage ../applications/editors/focuswriter { };
+
+  foliate = callPackage ../applications/office/foliate { };
+
+  fondo = callPackage ../applications/graphics/fondo { };
+
+  font-manager = callPackage ../applications/misc/font-manager { };
+
+  fontfinder = callPackage ../applications/misc/fontfinder { };
+
+  fontpreview = callPackage ../applications/misc/fontpreview { };
+
+  fossil = callPackage ../applications/version-management/fossil {
+    sqlite = sqlite.override { enableDeserialize = true; };
+  };
+
+  freebayes = callPackage ../applications/science/biology/freebayes { };
+
+  freefilesync = callPackage ../applications/networking/freefilesync { };
+
+  freewheeling = callPackage ../applications/audio/freewheeling { };
+
+  fritzing = libsForQt5.callPackage ../applications/science/electronics/fritzing { };
+
+  fritzprofiles = with python3.pkgs; toPythonApplication fritzprofiles;
+
+  fsv = callPackage ../applications/misc/fsv { };
+
+  ft2-clone = callPackage ../applications/audio/ft2-clone {
+    inherit (darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices Cocoa;
+  };
+
+  fvwm = fvwm2;
+  fvwm2 = callPackage ../applications/window-managers/fvwm/2.6.nix { };
+  fvwm3 = callPackage ../applications/window-managers/fvwm/3.nix { };
+
+  ganttproject-bin = callPackage ../applications/misc/ganttproject-bin { };
+
+  gaucheBootstrap = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche/boot.nix { };
+
+  gauche = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
+  };
+
+  gazelle-origin = python3Packages.callPackage ../tools/misc/gazelle-origin { };
+
+  gcal = callPackage ../applications/misc/gcal { };
+
+  gcstar = callPackage ../applications/misc/gcstar { };
+
+  geany = callPackage ../applications/editors/geany { };
+  geany-with-vte = callPackage ../applications/editors/geany/with-vte.nix { };
+
+  geek-life = callPackage ../applications/misc/geek-life { };
+
+  genact = callPackage ../applications/misc/genact { };
+
+  genxword = callPackage ../applications/misc/genxword { };
+
+  geoipupdate = callPackage ../applications/misc/geoipupdate { };
+
+  glicol-cli = callPackage ../applications/audio/glicol-cli { };
+
+  globe-cli = callPackage ../applications/misc/globe-cli { };
+
+  gnmic = callPackage ../applications/networking/gnmic { };
+
+  gnss-sdr = callPackage ../applications/radio/gnss-sdr { };
+
+  gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
+    unwrapped = callPackage ../applications/radio/gnuradio {
+      inherit (darwin.apple_sdk.frameworks) CoreAudio;
+      python = python3;
+    };
+  };
+  gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs;
+  # A build without gui components and other utilites not needed for end user
+  # libraries
+  gnuradioMinimal = gnuradio.override {
+    doWrap = false;
+    unwrapped = gnuradio.unwrapped.override {
+      volk = volk.override {
+        # So it will not reference python
+        enableModTool = false;
+      };
+      uhd = uhdMinimal;
+      features = {
+        gnuradio-companion = false;
+        python-support = false;
+        examples = false;
+        gr-qtgui = false;
+        gr-utils = false;
+        gr-modtool = false;
+        gr-blocktool = false;
+        sphinx = false;
+        doxygen = false;
+        # Doesn't make it reference python eventually, but makes reverse
+        # depdendencies require python to use cmake files of GR.
+        gr-ctrlport = false;
+      };
+    };
+  };
+  gnuradio3_9 = callPackage ../applications/radio/gnuradio/wrapper.nix {
+    unwrapped = callPackage ../applications/radio/gnuradio/3.9.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreAudio;
+      python = python3;
+    };
+  };
+  gnuradio3_9Packages = lib.recurseIntoAttrs gnuradio3_9.pkgs;
+  # A build without gui components and other utilites not needed for end user
+  # libraries
+  gnuradio3_9Minimal = gnuradio.override {
+    doWrap = false;
+    unwrapped = gnuradio.unwrapped.override {
+      volk = volk.override {
+        # So it will not reference python
+        enableModTool = false;
+      };
+      uhd = uhdMinimal;
+      features = {
+        gnuradio-companion = false;
+        python-support = false;
+        examples = false;
+        gr-qtgui = false;
+        gr-utils = false;
+        gr-modtool = false;
+        gr-blocktool = false;
+        sphinx = false;
+        doxygen = false;
+        # Doesn't make it reference python eventually, but makes reverse
+        # depdendencies require python to use cmake files of GR.
+        gr-ctrlport = false;
+      };
+    };
+  };
+  gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix {
+    unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreAudio;
+      python = python3;
+    };
+  };
+  gnuradio3_8Packages = lib.recurseIntoAttrs gnuradio3_8.pkgs;
+  # A build without gui components and other utilites not needed if gnuradio is
+  # used as a c++ library.
+  gnuradio3_8Minimal = gnuradio3_8.override {
+    doWrap = false;
+    unwrapped = gnuradio3_8.unwrapped.override {
+      volk = volk.override {
+        enableModTool = false;
+      };
+      uhd = uhdMinimal;
+      features = {
+        gnuradio-companion = false;
+        python-support = false;
+        examples = false;
+        gr-qtgui = false;
+        gr-utils = false;
+        gr-modtool = false;
+        sphinx = false;
+        doxygen = false;
+        # Doesn't make it reference python eventually, but makes reverse
+        # depdendencies require python to use cmake files of GR.
+        gr-ctrlport = false;
+      };
+    };
+  };
+
+  grandorgue = callPackage ../applications/audio/grandorgue {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  greetd = recurseIntoAttrs {
+    dlm = callPackage ../applications/display-managers/greetd/dlm.nix { };
+    greetd = callPackage ../applications/display-managers/greetd { };
+    gtkgreet = callPackage ../applications/display-managers/greetd/gtkgreet.nix { };
+    regreet = callPackage ../applications/display-managers/greetd/regreet.nix { };
+    tuigreet = callPackage ../applications/display-managers/greetd/tuigreet.nix { };
+    wlgreet = callPackage ../applications/display-managers/greetd/wlgreet.nix { };
+  };
+
+  goldendict = libsForQt5.callPackage ../applications/misc/goldendict { };
+  goldendict-ng = qt6Packages.callPackage ../applications/misc/goldendict-ng { };
+
+  gomuks = callPackage ../applications/networking/instant-messengers/gomuks { };
+
+  inherit (ocaml-ng.ocamlPackages_4_12) google-drive-ocamlfuse;
+
+  googler = callPackage ../applications/misc/googler {
+    python = python3;
+  };
+
+  gopher = callPackage ../applications/networking/gopher/gopher { };
+
+  gophernotes = callPackage ../applications/editors/gophernotes { };
+
+  goxel = callPackage ../applications/graphics/goxel { };
+
+  gpa = callPackage ../applications/misc/gpa { };
+
+  gpicview = callPackage ../applications/graphics/gpicview {
+    gtk2 = gtk2-x11;
+  };
+
+  gpx = callPackage ../applications/misc/gpx { };
+
+  gqrx = qt6Packages.callPackage ../applications/radio/gqrx { };
+  gqrx-portaudio = qt6Packages.callPackage ../applications/radio/gqrx {
+    portaudioSupport = true;
+    pulseaudioSupport = false;
+  };
+  gqrx-gr-audio = qt6Packages.callPackage ../applications/radio/gqrx {
+    portaudioSupport = false;
+    pulseaudioSupport = false;
+  };
+
+  gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
+
+  grepcidr = callPackage ../applications/search/grepcidr { };
+
+  grepm = callPackage ../applications/search/grepm { };
+
+  grip-search = callPackage ../tools/text/grip-search { };
+
+  grip = callPackage ../applications/misc/grip { };
+
+  gsimplecal = callPackage ../applications/misc/gsimplecal { };
+
+  gthumb = callPackage ../applications/graphics/gthumb { };
+
+  gtimelog = with python3Packages; toPythonApplication gtimelog;
+
+  inherit (gnome) gucharmap;
+
+  guitarix = callPackage ../applications/audio/guitarix {
+    fftw = fftwSinglePrec;
+  };
+
+  gurk-rs = callPackage ../applications/networking/instant-messengers/gurk-rs {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  gjay = callPackage ../applications/audio/gjay { };
+
+  sherlock = callPackage ../tools/security/sherlock { };
+
+  stratovirt = callPackage ../applications/virtualization/stratovirt { };
+
+  rhythmbox = callPackage ../applications/audio/rhythmbox { };
+
+  puddletag = libsForQt5.callPackage ../applications/audio/puddletag { };
+
+  w_scan = callPackage ../applications/video/w_scan { };
+
+  w_scan2 = callPackage ../applications/video/w_scan2 { };
+
+  wavrsocvt = callPackage ../applications/misc/audio/wavrsocvt { };
+
+  welle-io = libsForQt5.callPackage ../applications/radio/welle-io { };
+
+  wireshark = qt6Packages.callPackage ../applications/networking/sniffers/wireshark {
+    inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices SystemConfiguration;
+    libpcap = libpcap.override { withBluez = stdenv.isLinux; };
+  };
+  wireshark-qt = wireshark;
+
+  qtwirediff = qt6Packages.callPackage ../applications/networking/sniffers/qtwirediff {};
+
+  tshark = wireshark-cli;
+  wireshark-cli = wireshark.override {
+    withQt = false;
+    libpcap = libpcap.override { withBluez = stdenv.isLinux; };
+  };
+
+  sngrep = callPackage ../applications/networking/sniffers/sngrep { };
+
+  termshark = callPackage ../tools/networking/termshark { };
+
+  fbida = callPackage ../applications/graphics/fbida { };
+
+  fclones = callPackage ../tools/misc/fclones { };
+
+  fclones-gui = darwin.apple_sdk_11_0.callPackage ../tools/misc/fclones/gui.nix { };
+
+  fcp = callPackage ../tools/misc/fcp { };
+
+  fdupes = callPackage ../tools/misc/fdupes { };
+
+  feh = callPackage ../applications/graphics/feh {
+    imlib2 = imlib2Full;
+  };
+
+  feishin = callPackage ../applications/audio/feishin { };
+
+  feishu = callPackage ../applications/networking/instant-messengers/feishu { };
+
+  filezilla = callPackage ../applications/networking/ftp/filezilla { };
+
+  fire = darwin.apple_sdk_11_0.callPackage ../applications/audio/fire {
+    inherit (darwin.apple_sdk_11_0.frameworks) Accelerate Cocoa WebKit CoreServices DiscRecording CoreAudioKit MetalKit;
+    inherit (darwin.apple_sdk_11_0.libs) simd;
+  };
+
+  buildMozillaMach = opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) { };
+
+  firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {});
+
+  firefox-unwrapped = firefoxPackages.firefox;
+  firefox-beta-unwrapped = firefoxPackages.firefox-beta;
+  firefox-devedition-unwrapped = firefoxPackages.firefox-devedition;
+  firefox-esr-115-unwrapped = firefoxPackages.firefox-esr-115;
+  firefox-esr-unwrapped = firefoxPackages.firefox-esr-115;
+
+  firefox = wrapFirefox firefox-unwrapped { };
+  firefox-beta = wrapFirefox firefox-beta-unwrapped { };
+  firefox-devedition = wrapFirefox firefox-devedition-unwrapped { };
+
+  firefox-mobile = callPackage ../applications/networking/browsers/firefox/mobile-config.nix { };
+
+  firefox-esr = firefox-esr-115;
+  firefox-esr-115 = wrapFirefox firefox-esr-115-unwrapped { };
+
+  firefox-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
+    inherit (gnome) adwaita-icon-theme;
+    channel = "release";
+    generated = import ../applications/networking/browsers/firefox-bin/release_sources.nix;
+  };
+
+  firefox-bin = wrapFirefox firefox-bin-unwrapped {
+    pname = "firefox-bin";
+  };
+
+  firefox-beta-bin-unwrapped = firefox-bin-unwrapped.override {
+    inherit (gnome) adwaita-icon-theme;
+    channel = "beta";
+    generated = import ../applications/networking/browsers/firefox-bin/beta_sources.nix;
+  };
+
+  firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped {
+    pname = "firefox-beta-bin";
+    desktopName = "Firefox Beta";
+  };
+
+  firefox-devedition-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
+    inherit (gnome) adwaita-icon-theme;
+    channel = "developer-edition";
+    generated = import ../applications/networking/browsers/firefox-bin/devedition_sources.nix;
+  };
+
+  firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped {
+    pname = "firefox-devedition-bin";
+    desktopName = "Firefox DevEdition";
+    wmClass = "firefox-aurora";
+  };
+
+  librewolf-unwrapped = callPackage ../applications/networking/browsers/librewolf { };
+
+  librewolf = wrapFirefox librewolf-unwrapped {
+    inherit (librewolf-unwrapped) extraPrefsFiles extraPoliciesFiles;
+    libName = "librewolf";
+  };
+
+  firefox_decrypt = python3Packages.callPackage ../tools/security/firefox_decrypt { };
+
+  flac = callPackage ../applications/audio/flac { };
+
+  redoflacs = callPackage ../applications/audio/redoflacs { };
+
+  flameshot = libsForQt5.callPackage ../tools/misc/flameshot { };
+
+  flex-ncat = callPackage ../applications/radio/flex-ncat { };
+
+  flex-ndax = callPackage ../applications/radio/flex-ndax { };
+
+  floorp-unwrapped = callPackage ../applications/networking/browsers/floorp { };
+
+  floorp = wrapFirefox floorp-unwrapped { };
+
+  fluxbox = callPackage ../applications/window-managers/fluxbox { };
+
+  hackedbox = callPackage ../applications/window-managers/hackedbox { };
+
+  fomp = callPackage ../applications/audio/fomp { };
+
+  formatter = callPackage ../applications/misc/formatter { };
+
+  formiko = with python3Packages; callPackage ../applications/editors/formiko {
+    inherit buildPythonApplication;
+  };
+
+  foxotron = callPackage ../applications/graphics/foxotron {
+    inherit (darwin.apple_sdk.frameworks) AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL;
+  };
+
+  foxtrotgps = callPackage ../applications/misc/foxtrotgps { };
+
+  fractal = callPackage ../applications/networking/instant-messengers/fractal { };
+
+  fragments = callPackage ../applications/networking/p2p/fragments { };
+
+  freecad = libsForQt5.callPackage ../applications/graphics/freecad {
+    boost = python3Packages.boost;
+    inherit (python3Packages)
+      gitpython
+      matplotlib
+      pivy
+      ply
+      pycollada
+      pyside2
+      pyside2-tools
+      python
+      pyyaml
+      scipy
+      shiboken2;
+  };
+
+  freedv = callPackage ../applications/radio/freedv {
+    inherit (darwin.apple_sdk.frameworks) AppKit AVFoundation Cocoa CoreMedia;
+    codec2 = codec2.override {
+      freedvSupport = true;
+    };
+  };
+
+  freemind = callPackage ../applications/misc/freemind {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  freenet = callPackage ../applications/networking/p2p/freenet {
+    gradle = gradle_7;
+    jdk = jdk_headless;
+    # Reduce closure size
+    jre = pkgs.jre_minimal.override {
+      modules = [
+        "java.base"
+        "java.logging"
+        "java.naming"
+        "java.sql"
+        "java.desktop"
+        "java.management"
+      ];
+      jdk = jdk_headless;
+    };
+  };
+
+  freeoffice = callPackage ../applications/office/softmaker/freeoffice.nix { };
+
+  freeplane = callPackage ../applications/misc/freeplane { };
+
+  freepv = callPackage ../applications/graphics/freepv { };
+
+  xfontsel = callPackage ../applications/misc/xfontsel { };
+  inherit (xorg) xlsfonts;
+
+  xrdp = callPackage ../applications/networking/remote/xrdp { };
+
+  freerdp = callPackage ../applications/networking/remote/freerdp {
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Carbon Cocoa CoreMedia;
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good;
+  };
+
+  freerdpUnstable = freerdp;
+
+  friture = libsForQt5.callPackage ../applications/audio/friture {
+    python3Packages = python39Packages;
+  };
+
+  fte = callPackage ../applications/editors/fte { };
+
+  g933-utils = callPackage ../tools/misc/g933-utils { };
+
+  gavrasm = callPackage ../development/compilers/gavrasm { };
+
+  gcalcli = callPackage ../applications/misc/gcalcli { };
+
+  vcal = callPackage ../applications/misc/vcal { };
+
+  gcolor2 = callPackage ../applications/graphics/gcolor2 { };
+
+  gcolor3 = callPackage ../applications/graphics/gcolor3 { };
+
+  get_iplayer = callPackage ../applications/misc/get_iplayer { };
+
+  getxbook = callPackage ../applications/misc/getxbook { };
+
+  gimp = callPackage ../applications/graphics/gimp {
+    autoreconfHook = buildPackages.autoreconfHook269;
+    lcms = lcms2;
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
+  };
+
+  gimp-with-plugins = callPackage ../applications/graphics/gimp/wrapper.nix {
+    plugins = null; # All packaged plugins enabled, if not explicit plugin list supplied
+  };
+
+  gimpPlugins = recurseIntoAttrs (callPackage ../applications/graphics/gimp/plugins {});
+
+  girara = callPackage ../applications/misc/girara {
+    gtk = gtk3;
+  };
+
+  gitolite = callPackage ../applications/version-management/gitolite { };
+
+  inherit (gnome) gitg;
+
+  gmrun = callPackage ../applications/misc/gmrun { };
+
+  gnucash = callPackage ../applications/office/gnucash { };
+
+  goffice = callPackage ../development/libraries/goffice { };
+
+  got = darwin.apple_sdk_11_0.callPackage ../applications/version-management/got { };
+
+  gtkterm = callPackage ../tools/misc/gtkterm { };
+
+  gtk-pipe-viewer = perlPackages.callPackage ../applications/video/pipe-viewer { withGtk3 = true; };
+
+  gum = callPackage ../applications/misc/gum { };
+  pop = callPackage ../applications/misc/pop { };
+
+  hydrus = python3Packages.callPackage ../applications/graphics/hydrus {
+    inherit miniupnpc swftools;
+    inherit (qt6) wrapQtAppsHook qtbase qtcharts;
+  };
+
+  kemai = qt6Packages.callPackage ../applications/misc/kemai { };
+
+  jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
+    vmopts = config.jetbrains.vmopts or null;
+    jdk = jetbrains.jdk;
+  }) // {
+    jdk-no-jcef = callPackage ../development/compilers/jetbrains-jdk { withJcef = false; };
+    jdk = callPackage ../development/compilers/jetbrains-jdk {  };
+    jcef = callPackage ../development/compilers/jetbrains-jdk/jcef.nix { };
+  });
+
+  jmusicbot = callPackage ../applications/audio/jmusicbot { };
+
+  junction = callPackage ../applications/misc/junction { };
+
+  lemonade = callPackage ../applications/misc/lemonade { };
+
+  LibreArp = callPackage ../applications/audio/LibreArp { };
+
+  LibreArp-lv2 = callPackage ../applications/audio/LibreArp/lv2.nix { };
+
+  librespot = callPackage ../applications/audio/librespot {
+    withALSA = stdenv.isLinux;
+    withPulseAudio = config.pulseaudio or stdenv.isLinux;
+    withPortAudio = stdenv.isDarwin;
+  };
+
+  limesctl = callPackage ../applications/misc/limesctl { };
+
+  linssid = libsForQt5.callPackage ../applications/networking/linssid { };
+
+  linvstmanager = qt5.callPackage ../applications/audio/linvstmanager { };
+
+  deadd-notification-center = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage ../applications/misc/deadd-notification-center { });
+
+  lollypop = callPackage ../applications/audio/lollypop { };
+
+  losslessaudiochecker = callPackage ../applications/audio/losslessaudiochecker { };
+
+  m32edit = callPackage ../applications/audio/midas/m32edit.nix { };
+
+  manim = callPackage ../applications/video/manim { };
+
+  manuskript = libsForQt5.callPackage ../applications/editors/manuskript { };
+
+  mindforger = libsForQt5.callPackage ../applications/editors/mindforger { };
+
+  mi2ly = callPackage ../applications/audio/mi2ly { };
+
+  moe =  callPackage ../applications/editors/moe { };
+
+  molsketch = libsForQt5.callPackage ../applications/editors/molsketch { };
+
+  multiviewer-for-f1 = callPackage ../applications/video/multiviewer-for-f1 { };
+
+  muzika = callPackage ../applications/audio/muzika { };
+
+  openutau = callPackage ../applications/audio/openutau { };
+
+  pattypan = callPackage ../applications/misc/pattypan {
+    jdk = jdk.override { enableJavaFX = true; };
+  };
+
+  praat = callPackage ../applications/audio/praat { };
+
+  rhvoice = callPackage ../applications/audio/rhvoice { };
+
+  svox = callPackage ../applications/audio/svox { };
+
+  g4music = callPackage ../applications/audio/g4music { };
+
+  genesys = callPackage ../applications/misc/genesys { };
+
+  giada = callPackage ../applications/audio/giada { };
+
+  giara = callPackage ../applications/networking/giara { };
+
+  gitit = callPackage ../applications/misc/gitit { };
+
+  gkrellm = callPackage ../applications/misc/gkrellm {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  glow = callPackage ../applications/editors/glow { };
+
+  glowing-bear = callPackage ../applications/networking/irc/glowing-bear { };
+
+  gmtk = callPackage ../development/libraries/gmtk { };
+
+  gmu = callPackage ../applications/audio/gmu { };
+
+  gnaural = callPackage ../applications/audio/gnaural { };
+
+  gnome_mplayer = callPackage ../applications/video/gnome-mplayer { };
+
+  gnumeric = callPackage ../applications/office/gnumeric { };
+
+  gnunet = callPackage ../applications/networking/p2p/gnunet { };
+
+  gnunet-gtk = callPackage ../applications/networking/p2p/gnunet/gtk.nix { };
+
+  gocr = callPackage ../applications/graphics/gocr { };
+
+  gobby = callPackage ../applications/editors/gobby { };
+
+  gphoto2 = callPackage ../applications/misc/gphoto2 { };
+
+  gphoto2fs = callPackage ../applications/misc/gphoto2/gphotofs.nix { };
+
+  gramps = callPackage ../applications/misc/gramps {
+        pythonPackages = python3Packages;
+  };
+
+  graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
+  graphicsmagick_q16 = graphicsmagick.override { quantumdepth = 16; };
+
+  graphicsmagick-imagemagick-compat = callPackage ../applications/graphics/graphicsmagick/compat.nix { };
+
+  grisbi = callPackage ../applications/office/grisbi { gtk = gtk3; };
+
+  gscreenshot = callPackage ../applications/graphics/gscreenshot { };
+
+  gtkpod = callPackage ../applications/audio/gtkpod { };
+
+  guacamole-client = callPackage ../servers/guacamole-client { };
+
+  guacamole-server = callPackage ../servers/guacamole-server { };
+
+  q4wine = libsForQt5.callPackage ../applications/misc/q4wine { };
+
+  qrcodegen = callPackage ../development/libraries/qrcodegen { };
+
+  qrencode = callPackage ../development/libraries/qrencode {
+    inherit (darwin) libobjc;
+  };
+
+  geeqie = callPackage ../applications/graphics/geeqie { };
+
+  gigedit = callPackage ../applications/audio/gigedit { };
+
+  gqview = callPackage ../applications/graphics/gqview { };
+
+  gmpc = callPackage ../applications/audio/gmpc { };
+
+  gmtp = callPackage ../applications/misc/gmtp { };
+
+  gnomecast = callPackage ../applications/video/gnomecast { };
+
+  gnome-recipes = callPackage ../applications/misc/gnome-recipes {
+    inherit (gnome) gnome-autoar;
+  };
+
+  gollum = callPackage ../applications/misc/gollum { };
+
+  gonic = callPackage ../servers/gonic { };
+
+  goodvibes = callPackage ../applications/audio/goodvibes { };
+
+  googleearth-pro = libsForQt5.callPackage ../applications/misc/googleearth-pro { };
+
+  google-chrome = callPackage ../applications/networking/browsers/google-chrome { };
+
+  go-graft = callPackage ../applications/networking/go-graft { };
+
+  gostatic = callPackage ../applications/misc/gostatic { };
+
+  gossa = callPackage ../applications/networking/gossa { };
+
+  gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel { };
+
+  gpsbabel-gui = gpsbabel.override {
+    withGUI = true;
+    withDoc = true;
+  };
+
+  gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
+
+  gpsd = callPackage ../servers/gpsd { };
+
+  gpsprune = callPackage ../applications/misc/gpsprune { };
+
+  gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { };
+
+  gpu-screen-recorder-gtk = callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix { };
+
+  gpxlab = libsForQt5.callPackage ../applications/misc/gpxlab { };
+
+  gpxsee-qt5 = libsForQt5.callPackage ../applications/misc/gpxsee { };
+
+  gpxsee-qt6 = qt6Packages.callPackage ../applications/misc/gpxsee { };
+
+  gpxsee = gpxsee-qt5;
+
+  gspell = callPackage ../development/libraries/gspell { };
+
+  gst123 = callPackage ../applications/audio/gst123 { };
+
+  gtk2fontsel = callPackage ../applications/misc/gtk2fontsel { };
+
+  gtklock = callPackage ../tools/wayland/gtklock { };
+
+  gtklock-playerctl-module = callPackage ../tools/wayland/gtklock/playerctl-module.nix { };
+
+  gtklock-powerbar-module = callPackage ../tools/wayland/gtklock/powerbar-module.nix { };
+
+  gtklock-userinfo-module = callPackage ../tools/wayland/gtklock/userinfo-module.nix { };
+
+  guardian-agent = callPackage ../tools/networking/guardian-agent { };
+
+  gv = callPackage ../applications/misc/gv { };
+
+  gvisor = callPackage ../applications/virtualization/gvisor { };
+
+  guvcview = libsForQt5.callPackage ../os-specific/linux/guvcview { };
+
+  gwc = callPackage ../applications/audio/gwc { };
+
+  gxmessage = callPackage ../applications/misc/gxmessage { };
+
+  gxmatcheq-lv2 = callPackage ../applications/audio/gxmatcheq-lv2 { };
+
+  gxplugins-lv2 = callPackage ../applications/audio/gxplugins-lv2 { };
+
+  hachoir = with python3Packages; toPythonApplication hachoir;
+
+  hackrf = callPackage ../applications/radio/hackrf { };
+
+  hacksaw = callPackage ../tools/misc/hacksaw { };
+
+  hakuneko = callPackage ../tools/misc/hakuneko { };
+
+  halp = callPackage ../tools/misc/halp { };
+
+  manga-cli = callPackage ../tools/misc/manga-cli { };
+
+  hamster = callPackage ../applications/misc/hamster { };
+
+  hacpack = callPackage ../tools/compression/hacpack { };
+
+  hashit = callPackage ../tools/misc/hashit { };
+
+  hactool = callPackage ../tools/compression/hactool { };
+
+  hdhomerun-config-gui = callPackage ../applications/video/hdhomerun-config-gui { };
+
+  headlines = callPackage ../applications/networking/headlines { };
+
+  hedgedoc-cli = callPackage ../tools/admin/hedgedoc-cli { };
+
+  heimer = libsForQt5.callPackage ../applications/misc/heimer { };
+
+  hello-wayland = callPackage ../applications/graphics/hello-wayland { };
+
+  hello-unfree = callPackage ../applications/misc/hello-unfree { };
+
+  helmholtz = callPackage ../applications/audio/pd-plugins/helmholtz { };
+
+  herbe = callPackage ../applications/misc/herbe { };
+
+  herbstluftwm = callPackage ../applications/window-managers/herbstluftwm { };
+
+  hex-a-hop = callPackage ../games/hex-a-hop { };
+
+  hexchat = callPackage ../applications/networking/irc/hexchat { };
+
+  hexcurse = callPackage ../applications/editors/hexcurse { };
+
+  hexdino = callPackage ../applications/editors/hexdino { };
+
+  hexedit = callPackage ../applications/editors/hexedit { };
+
+  himalaya = callPackage ../applications/networking/mailreaders/himalaya { };
+
+  hydrogen-web-unwrapped = callPackage ../applications/networking/instant-messengers/hydrogen-web/unwrapped.nix { };
+
+  hydrogen-web = callPackage ../applications/networking/instant-messengers/hydrogen-web/wrapper.nix {
+    conf = config.hydrogen-web.conf or { };
+  };
+
+  hivelytracker = callPackage ../applications/audio/hivelytracker { };
+
+  hledger = haskell.lib.compose.justStaticExecutables haskellPackages.hledger;
+  hledger-check-fancyassertions = callPackage ../applications/office/hledger-check-fancyassertions { };
+  hledger-iadd = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-iadd;
+  hledger-interest = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-interest;
+  hledger-ui = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-ui;
+  hledger-web = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-web;
+  hledger-utils = with python3.pkgs; toPythonApplication hledger-utils;
+
+  hmm = callPackage ../applications/misc/hmm { };
+
+  homebank = callPackage ../applications/office/homebank {
+    gtk = gtk3;
+  };
+
+  hollywood = callPackage ../applications/misc/hollywood {
+    inherit (python3Packages) pygments;
+  };
+
+  hors = callPackage ../development/tools/hors {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  hover = callPackage ../development/tools/hover { };
+
+  hovercraft = python3Packages.callPackage ../applications/misc/hovercraft { };
+
+  howl = callPackage ../applications/editors/howl { };
+
+  hdl-dump = callPackage ../tools/misc/hdl-dump { };
+
+  hpack = haskell.lib.compose.justStaticExecutables haskellPackages.hpack;
+
+  hpcg = callPackage ../tools/misc/hpcg { };
+
+  hpl = callPackage ../tools/misc/hpl { };
+
+  hpmyroom = libsForQt5.callPackage ../applications/networking/hpmyroom { };
+
+  ht = callPackage ../applications/editors/ht { };
+
+  xh = callPackage ../tools/networking/xh {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  hubstaff = callPackage ../applications/misc/hubstaff { };
+
+  hue-cli = callPackage ../tools/networking/hue-cli { };
+
+  hueadm = callPackage ../tools/misc/hueadm { };
+
+  hugin = callPackage ../applications/graphics/hugin {
+    wxGTK = wxGTK32;
+  };
+
+  huggle = libsForQt5.callPackage ../applications/misc/huggle { };
+
+  hugo = callPackage ../applications/misc/hugo { };
+
+  ghosttohugo = callPackage ../applications/misc/ghosttohugo {};
+
+  gatekeeper = callPackage ../applications/networking/cluster/gatekeeper { };
+
+  go-org = callPackage ../applications/misc/go-org { };
+
+  hushboard = python3.pkgs.callPackage ../applications/audio/hushboard { };
+
+  husky = callPackage ../development/tools/misc/husky { };
+
+  hydrogen = qt5.callPackage ../applications/audio/hydrogen { };
+
+  hydroxide = callPackage ../applications/networking/hydroxide { };
+
+  hyper-haskell-server-with-packages = callPackage ../development/tools/haskell/hyper-haskell/server.nix {
+    inherit (haskellPackages) ghcWithPackages;
+    packages = self: with self; [];
+  };
+
+  hyper-haskell = callPackage ../development/tools/haskell/hyper-haskell {
+    hyper-haskell-server = hyper-haskell-server-with-packages.override {
+      packages = self: with self; [
+        hyper-extra diagrams csound-catalog
+      ];
+    };
+    extra-packages = [ csound ];
+  };
+
+  hyperion-ng = libsForQt5.callPackage ../applications/video/hyperion-ng {
+    protobuf = protobuf_21;
+  };
+
+  hyperledger-fabric = callPackage ../tools/misc/hyperledger-fabric { };
+
+  hypnotix = callPackage ../applications/video/hypnotix { };
+
+  indiepass-desktop = callPackage ../by-name/in/indiepass-desktop/package.nix {
+    electron = electron_19;
+  };
+
+  jackline = callPackage ../applications/networking/instant-messengers/jackline { };
+
+  jay = callPackage ../applications/window-managers/jay { };
+
+  keyleds = callPackage ../applications/misc/keyleds { };
+
+  keylight-controller-mschneider82 = callPackage ../applications/misc/keylight-controller-mschneider82 { };
+
+  leftwm = callPackage ../applications/window-managers/leftwm { };
+
+  levant = callPackage ../applications/networking/cluster/levant { };
+
+  lwm = callPackage ../applications/window-managers/lwm { };
+
+  marker = callPackage ../applications/editors/marker { };
+
+  matcha-rss-digest = callPackage ../applications/misc/matcha-rss-digest { };
+
+  meek = callPackage ../tools/networking/meek { };
+
+  meerk40t = callPackage ../applications/misc/meerk40t { };
+
+  meerk40t-camera = callPackage ../applications/misc/meerk40t/camera.nix { };
+
+  musikcube = callPackage ../applications/audio/musikcube {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreAudio SystemConfiguration;
+  };
+
+  libmt32emu = callPackage ../applications/audio/munt/libmt32emu.nix { };
+
+  mt32emu-qt = libsForQt5.callPackage ../applications/audio/munt/mt32emu-qt.nix { };
+
+  mt32emu-smf2wav = callPackage ../applications/audio/munt/mt32emu-smf2wav.nix { };
+
+  noson = libsForQt5.callPackage ../applications/audio/noson { };
+
+  owl-compositor = callPackage ../applications/window-managers/owl { };
+
+  p2pool = callPackage ../applications/misc/p2pool { };
+
+  pass2csv = python3Packages.callPackage ../tools/security/pass2csv { };
+
+  pass-secret-service = callPackage ../applications/misc/pass-secret-service { };
+
+  passky-desktop = callPackage ../applications/misc/passky-desktop { };
+
+  pat = callPackage ../applications/radio/pat { };
+
+  pinboard = with python3Packages; toPythonApplication pinboard;
+
+  pinboard-notes-backup = haskell.lib.compose.justStaticExecutables haskellPackages.pinboard-notes-backup;
+
+  pixel2svg = python310Packages.callPackage ../tools/graphics/pixel2svg { };
+
+  pixelfed = callPackage ../servers/web-apps/pixelfed { };
+
+  pixelnuke = callPackage ../applications/graphics/pixelnuke { };
+
+  pixelorama = callPackage ../applications/editors/pixelorama { };
+
+  pixeluvo = callPackage ../applications/graphics/pixeluvo { };
+
+  pixinsight = libsForQt5.callPackage ../applications/graphics/pixinsight { };
+
+  planner = callPackage ../applications/office/planner { };
+
+  please-cli = callPackage ../applications/misc/please-cli { };
+
+  protonup-qt = python3Packages.callPackage ../applications/misc/protonup-qt { };
+
+  pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap { };
+
+  pokeget-rs = callPackage ../tools/misc/pokeget-rs { };
+
+  popura = callPackage ../tools/networking/popura { };
+
+  pureref = callPackage ../applications/graphics/pureref { };
+
+  inherit (callPackage ../applications/virtualization/singularity/packages.nix { })
+    apptainer
+    singularity
+    apptainer-overriden-nixos
+    singularity-overriden-nixos
+    ;
+
+  sfwbar = callPackage ../applications/misc/sfwbar { };
+
+  skate = callPackage ../applications/misc/skate { };
+
+  slack = callPackage ../applications/networking/instant-messengers/slack { };
+
+  slack-cli = callPackage ../tools/networking/slack-cli { };
+
+  slack-term = callPackage ../applications/networking/instant-messengers/slack-term { };
+
+  sleep-on-lan = callPackage ../tools/networking/sleep-on-lan { };
+
+  slweb = callPackage ../applications/misc/slweb { };
+
+  sonixd = callPackage ../applications/audio/sonixd { };
+
+  sonobus = callPackage ../applications/audio/sonobus { };
+
+  sosreport = python3Packages.callPackage ../applications/logging/sosreport { };
+
+  spectmorph = callPackage ../applications/audio/spectmorph { };
+
+  smooth = callPackage ../development/libraries/smooth { };
+
+  spectrwm = callPackage ../applications/window-managers/spectrwm { };
+
+  spot = callPackage ../applications/audio/spot { };
+
+  spotify-cli-linux = callPackage ../applications/audio/spotify-cli-linux { };
+
+  spotifyd = callPackage ../applications/audio/spotifyd {
+    withALSA = stdenv.isLinux;
+    withPulseAudio = config.pulseaudio or stdenv.isLinux;
+    withPortAudio = stdenv.isDarwin;
+    withMpris = stdenv.isLinux;
+  };
+
+  srain = callPackage ../applications/networking/irc/srain { };
+
+  streamdeck-ui = callPackage ../applications/misc/streamdeck-ui { };
+
+  super-productivity = callPackage ../applications/office/super-productivity { };
+
+  inherit (callPackages ../development/libraries/wlroots {})
+    wlroots_0_15
+    wlroots_0_16
+    wlroots;
+
+  sway-unwrapped = callPackage ../applications/window-managers/sway {
+    wlroots = wlroots_0_16;
+  };
+  sway = callPackage ../applications/window-managers/sway/wrapper.nix { };
+  swaybg = callPackage ../applications/window-managers/sway/bg.nix { };
+  swayidle = callPackage ../applications/window-managers/sway/idle.nix { };
+  swaylock = callPackage ../applications/window-managers/sway/lock.nix { };
+  swayosd = callPackage ../applications/window-managers/sway/osd.nix { };
+  swayws = callPackage ../applications/window-managers/sway/ws.nix { };
+  swaywsr = callPackage ../applications/window-managers/sway/wsr.nix { };
+  sway-assign-cgroups = callPackage ../applications/window-managers/sway/assign-cgroups.nix { };
+  sway-contrib = recurseIntoAttrs (callPackages ../applications/window-managers/sway/contrib.nix { });
+
+  swaycons = callPackage ../applications/window-managers/sway/swaycons.nix { };
+
+  swayfx = callPackage ../applications/window-managers/sway/fx.nix { };
+
+  swaylock-fancy = callPackage ../applications/window-managers/sway/lock-fancy.nix { };
+
+  swaylock-effects = callPackage ../applications/window-managers/sway/lock-effects.nix { };
+
+  swaynotificationcenter = callPackage ../applications/misc/swaynotificationcenter { };
+
+  swaynag-battery = callPackage ../applications/misc/swaynag-battery { };
+
+  swayest-workstyle = callPackage ../applications/window-managers/sway/swayest-workstyle { };
+
+  tiramisu = callPackage ../applications/misc/tiramisu { };
+
+  rlaunch = callPackage ../applications/misc/rlaunch { };
+
+  remontoire = callPackage ../applications/misc/remontoire { };
+
+  rootbar = callPackage ../applications/misc/rootbar { };
+
+  waybar = callPackage ../applications/misc/waybar {
+    wlroots = wlroots_0_15;
+  };
+
+  waycorner = callPackage ../applications/misc/waycorner { };
+
+  waylock = callPackage ../applications/misc/waylock { };
+
+  wayshot = callPackage ../tools/misc/wayshot { };
+
+  waylevel = callPackage ../tools/misc/waylevel { };
+
+  wbg = callPackage ../applications/misc/wbg { };
+
+  hikari = callPackage ../applications/window-managers/hikari {
+    wlroots = wlroots_0_15;
+  };
+
+  i3 = callPackage ../applications/window-managers/i3 {
+    xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
+  };
+
+  i3-auto-layout = callPackage ../applications/window-managers/i3/auto-layout.nix { };
+
+  i3-rounded = callPackage ../applications/window-managers/i3/rounded.nix { };
+
+  i3altlayout = callPackage ../applications/window-managers/i3/altlayout.nix { };
+
+  i3-balance-workspace = python3Packages.callPackage ../applications/window-managers/i3/balance-workspace.nix { };
+
+  i3-cycle-focus = callPackage ../applications/window-managers/i3/cycle-focus.nix { };
+
+  i3-easyfocus = callPackage ../applications/window-managers/i3/easyfocus.nix { };
+
+  i3-layout-manager = callPackage ../applications/window-managers/i3/layout-manager.nix { };
+
+  i3-ratiosplit =  callPackage ../applications/window-managers/i3/i3-ratiosplit.nix { };
+
+  i3-resurrect = python3Packages.callPackage ../applications/window-managers/i3/i3-resurrect.nix { };
+
+  i3-swallow = python3Packages.callPackage ../applications/window-managers/i3/swallow.nix { };
+
+  i3blocks = callPackage ../applications/window-managers/i3/blocks.nix { };
+
+  i3blocks-gaps = callPackage ../applications/window-managers/i3/blocks-gaps.nix { };
+
+  i3ipc-glib = callPackage ../applications/window-managers/i3/i3ipc-glib.nix { };
+
+  i3lock = callPackage ../applications/window-managers/i3/lock.nix {
+    cairo = cairo.override { xcbSupport = true; };
+  };
+
+  i3lock-blur = callPackage ../applications/window-managers/i3/lock-blur.nix { };
+
+  i3lock-color = callPackage ../applications/window-managers/i3/lock-color.nix { };
+
+  i3lock-fancy = callPackage ../applications/window-managers/i3/lock-fancy.nix { };
+
+  i3lock-fancy-rapid = callPackage ../applications/window-managers/i3/lock-fancy-rapid.nix { };
+
+  i3lock-pixeled = callPackage ../misc/screensavers/i3lock-pixeled { };
+
+  betterlockscreen = callPackage ../misc/screensavers/betterlockscreen { };
+
+  multilockscreen = callPackage ../misc/screensavers/multilockscreen { };
+
+  i3minator = callPackage ../tools/misc/i3minator { };
+
+  i3nator = callPackage ../tools/misc/i3nator { };
+
+  i3pystatus = callPackage ../applications/window-managers/i3/pystatus.nix { };
+
+  i3status = callPackage ../applications/window-managers/i3/status.nix { };
+
+  i3status-rust = callPackage ../applications/window-managers/i3/status-rust.nix { };
+
+  i3wsr = callPackage ../applications/window-managers/i3/wsr.nix { };
+
+  i3-wk-switch = callPackage ../applications/window-managers/i3/wk-switch.nix { };
+
+  kitti3 = python3.pkgs.callPackage ../applications/window-managers/i3/kitti3.nix { };
+
+  waybox = callPackage ../by-name/wa/waybox/package.nix {
+    wlroots = wlroots_0_15;
+  };
+
+  workstyle = callPackage ../applications/window-managers/i3/workstyle.nix { };
+
+  windowchef = callPackage ../applications/window-managers/windowchef { };
+
+  wmfocus = callPackage ../applications/window-managers/i3/wmfocus.nix { };
+
+  wmfs = callPackage ../applications/window-managers/wmfs { };
+
+  i810switch = callPackage ../os-specific/linux/i810switch { };
+
+  ical2orgpy = callPackage ../tools/misc/ical2orgpy { };
+
+  icon-library = callPackage ../applications/graphics/icon-library { };
+
+  id3v2 = callPackage ../applications/audio/id3v2 { };
+
+  identity = callPackage ../applications/graphics/identity { };
+
+  ifenslave = callPackage ../os-specific/linux/ifenslave { };
+
+  ii = callPackage ../applications/networking/irc/ii {
+    stdenv = gccStdenv;
+  };
+
+  ikiwiki = callPackage ../applications/misc/ikiwiki {
+    python = python3;
+    inherit (perlPackages.override { pkgs = pkgs // { imagemagick = imagemagickBig;}; }) ImageMagick;
+  };
+
+  ikiwiki-full = ikiwiki.override {
+    bazaarSupport = false;      # tests broken
+    cvsSupport = true;
+    docutilsSupport = true;
+    gitSupport = true;
+    mercurialSupport = true;
+    monotoneSupport = true;
+    subversionSupport = true;
+  };
+
+  iksemel = callPackage ../development/libraries/iksemel {
+    texinfo = buildPackages.texinfo6_7; # Uses @setcontentsaftertitlepage, removed in 6.8.
+  };
+
+  avalonia-ilspy = callPackage ../applications/misc/avalonia-ilspy {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  image-roll = callPackage ../applications/graphics/image-roll { };
+
+  imagej = callPackage ../applications/graphics/imagej { };
+
+  fiji = callPackage ../applications/graphics/fiji { };
+
+  imagemagick6_light = imagemagick6.override {
+    bzip2Support = false;
+    zlibSupport = false;
+    libX11Support = false;
+    libXtSupport = false;
+    fontconfigSupport = false;
+    freetypeSupport = false;
+    ghostscriptSupport = false;
+    libjpegSupport = false;
+    djvulibreSupport = false;
+    lcms2Support = false;
+    openexrSupport = false;
+    libpngSupport = false;
+    liblqr1Support = false;
+    librsvgSupport = false;
+    libtiffSupport = false;
+    libxml2Support = false;
+    openjpegSupport = false;
+    libwebpSupport = false;
+    libheifSupport = false;
+    libde265Support = false;
+  };
+
+  imagemagick6 = callPackage ../applications/graphics/ImageMagick/6.x.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
+  };
+
+  imagemagick6Big = imagemagick6.override {
+    ghostscriptSupport = true;
+  };
+
+  imagemagick_light = lowPrio (imagemagick.override {
+    bzip2Support = false;
+    zlibSupport = false;
+    libX11Support = false;
+    libXtSupport = false;
+    fontconfigSupport = false;
+    freetypeSupport = false;
+    libjpegSupport = false;
+    djvulibreSupport = false;
+    lcms2Support = false;
+    openexrSupport = false;
+    libjxlSupport = false;
+    libpngSupport = false;
+    liblqr1Support = false;
+    librsvgSupport = false;
+    libtiffSupport = false;
+    libxml2Support = false;
+    openjpegSupport = false;
+    libwebpSupport = false;
+    libheifSupport = false;
+  });
+
+  imagemagick = lowPrio (callPackage ../applications/graphics/ImageMagick {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
+  });
+
+  imagemagickBig = lowPrio (imagemagick.override {
+    ghostscriptSupport = true;
+  });
+
+  imagination = callPackage ../applications/video/imagination { };
+
+  inherit (nodePackages) imapnotify;
+
+  imdshift = callPackage ../tools/security/imdshift { };
+
+  img2pdf = with python3Packages; toPythonApplication img2pdf;
+
+  imgbrd-grabber = qt5.callPackage ../applications/graphics/imgbrd-grabber { };
+
+  imgcat = callPackage ../applications/graphics/imgcat { };
+
+  img-cat = callPackage ../applications/graphics/img-cat { };
+
+  imgp = python3Packages.callPackage ../applications/graphics/imgp { };
+
+  inframap = callPackage ../applications/networking/cluster/inframap { };
+
+  inkcut = libsForQt5.callPackage ../applications/misc/inkcut { };
+
+  inklingreader = callPackage ../tools/misc/inklingreader { };
+
+  inkscape = callPackage ../applications/graphics/inkscape {
+    lcms = lcms2;
+  };
+
+  inkscape-with-extensions = callPackage ../applications/graphics/inkscape/with-extensions.nix { };
+
+  inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {});
+
+  inlyne = darwin.apple_sdk_11_0.callPackage ../applications/misc/inlyne { };
+
+  inspectrum = callPackage ../applications/radio/inspectrum { };
+
+  inputplug = callPackage ../tools/X11/inputplug { };
+
+  ion3 = callPackage ../applications/window-managers/ion-3 {
+    lua = lua5_1;
+  };
+
+  ipe = qt6Packages.callPackage ../applications/graphics/ipe {
+    ghostscript = ghostscriptX;
+    lua5 = lua5_3;
+  };
+
+  iptraf-ng = callPackage ../applications/networking/iptraf-ng { };
+
+  irccloud = callPackage ../applications/networking/irc/irccloud { };
+
+  irssi = callPackage ../applications/networking/irc/irssi { };
+
+  filebrowser = callPackage ../applications/networking/filebrowser { };
+
+  fish-irssi = callPackage ../applications/networking/irc/irssi/fish { };
+
+  kirc = callPackage ../applications/networking/irc/kirc { };
+
+  ir.lv2 = callPackage ../applications/audio/ir.lv2 { };
+
+  istioctl = callPackage ../applications/networking/cluster/istioctl { };
+
+  bip = callPackage ../applications/networking/irc/bip {
+    openssl = openssl_1_1;
+  };
+
+  j4-dmenu-desktop = callPackage ../applications/misc/j4-dmenu-desktop { };
+
+  jabcode = callPackage ../development/libraries/jabcode { };
+
+  jabcode-writer = callPackage ../development/libraries/jabcode {
+    subproject = "writer";
+  };
+
+  jabcode-reader = callPackage ../development/libraries/jabcode {
+    subproject = "reader";
+  };
+
+  jabref = callPackage ../applications/office/jabref {
+    jdk = jdk21.override { enableJavaFX = true; };
+    gradle = gradle_8;
+  };
+
+  jack_capture = callPackage ../applications/audio/jack-capture { };
+
+  jack_oscrolloscope = callPackage ../applications/audio/jack-oscrolloscope { };
+
+  jack_rack = callPackage ../applications/audio/jack-rack { };
+
+  jackmeter = callPackage ../applications/audio/jackmeter { };
+
+  jackmix = libsForQt5.callPackage ../applications/audio/jackmix { };
+  jackmix_jack1 = jackmix.override { jack = jack1; };
+
+  jaeles = callPackage ../tools/security/jaeles { };
+
+  jalv = callPackage ../applications/audio/jalv { };
+
+  jameica = callPackage ../applications/office/jameica {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  jamin = callPackage ../applications/audio/jamin { };
+
+  japa = callPackage ../applications/audio/japa { };
+
+  dupd = callPackage ../tools/misc/dupd { };
+
+  jconvolver = callPackage ../applications/audio/jconvolver { };
+
+  jdupes = callPackage ../tools/misc/jdupes { };
+
+  jed = callPackage ../applications/editors/jed { };
+
+  jedit = callPackage ../applications/editors/jedit { };
+
+  jgmenu = callPackage ../applications/misc/jgmenu { };
+
+  jitsi = callPackage ../applications/networking/instant-messengers/jitsi { };
+
+  joe = callPackage ../applications/editors/joe { };
+
+  johnny = callPackage ../applications/misc/johnny { };
+
+  josm = callPackage ../applications/misc/josm { };
+
+  js8call = qt5.callPackage ../applications/radio/js8call { };
+
+  jwm = callPackage ../applications/window-managers/jwm { };
+
+  jwm-settings-manager = callPackage ../applications/window-managers/jwm/jwm-settings-manager.nix { };
+
+  k3s_1_24 = callPackage ../applications/networking/cluster/k3s/1_24 {
+    buildGoModule = buildGo120Module;
+  };
+  k3s_1_25 = callPackage ../applications/networking/cluster/k3s/1_25 {
+    buildGoModule = buildGo120Module;
+  };
+  inherit (callPackage ../applications/networking/cluster/k3s {
+    buildGoModule = buildGo120Module;
+  }) k3s_1_26 k3s_1_27 k3s_1_28;
+  k3s = k3s_1_27;
+
+  k3sup = callPackage ../applications/networking/cluster/k3sup { };
+
+  kconf = callPackage ../applications/networking/cluster/kconf { };
+
+  kail = callPackage ../tools/networking/kail {  };
+
+  kapitonov-plugins-pack = callPackage ../applications/audio/kapitonov-plugins-pack { };
+
+  kapow = libsForQt5.callPackage ../applications/misc/kapow { };
+
+  kbt = callPackage ../applications/misc/kbt { };
+
+  kchmviewer = libsForQt5.callPackage ../applications/misc/kchmviewer { };
+
+  kappanhang = callPackage ../applications/radio/kappanhang { };
+
+  okteta = libsForQt5.callPackage ../applications/editors/okteta { };
+
+  k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { };
+
+  kbibtex = libsForQt5.callPackage ../applications/office/kbibtex { };
+
+  kbst = callPackage ../applications/networking/cluster/kbst { };
+
+  kaidan = libsForQt5.callPackage ../applications/networking/instant-messengers/kaidan { };
+
+  kde-gruvbox = callPackage ../data/themes/kde-gruvbox { };
+
+  kdeltachat = libsForQt5.callPackage ../applications/networking/instant-messengers/kdeltachat { };
+
+  keet = callPackage ../applications/networking/instant-messengers/keet { };
+
+  kepler = callPackage ../tools/security/kepler { };
+
+  kepubify = callPackage ../tools/misc/kepubify { };
+
+  kermit = callPackage ../tools/misc/kermit { };
+
+  kexi = libsForQt5.callPackage ../applications/office/kexi { };
+
+  khronos = callPackage ../applications/office/khronos { };
+
+  keyfinder = libsForQt5.callPackage ../applications/audio/keyfinder { };
+
+  keyfinder-cli = callPackage ../applications/audio/keyfinder-cli { };
+
+  kfilt = callPackage ../applications/networking/cluster/kfilt { };
+
+  kgraphviewer = libsForQt5.callPackage ../applications/graphics/kgraphviewer { };
+
+  khal = callPackage ../applications/misc/khal { };
+
+  khoj = callPackage ../servers/search/khoj { };
+
+  khard = callPackage ../applications/misc/khard { };
+
+  kid3 = libsForQt5.callPackage ../applications/audio/kid3 { };
+
+  kile = libsForQt5.callPackage ../applications/editors/kile { };
+
+  kitsas = libsForQt5.callPackage ../applications/office/kitsas { };
+
+  kiwix = libsForQt5.callPackage ../applications/misc/kiwix { };
+
+  kiwix-tools = callPackage ../applications/misc/kiwix/tools.nix { };
+
+  kickoff = callPackage ../applications/misc/kickoff { };
+
+  klayout = libsForQt5.callPackage ../applications/misc/klayout { };
+
+  klee = callPackage ../applications/science/logic/klee (with llvmPackages_12; {
+    clang = clang;
+    llvm = llvm;
+    stdenv = stdenv;
+  });
+
+  kmetronome = libsForQt5.callPackage ../applications/audio/kmetronome { };
+
+  kmplayer = libsForQt5.callPackage ../applications/video/kmplayer { };
+
+  kmymoney = libsForQt5.callPackage ../applications/office/kmymoney { };
+
+  kn = callPackage ../applications/networking/cluster/kn { };
+
+  kns = callPackage ../applications/networking/cluster/kns { };
+
+  kondo = callPackage ../applications/misc/kondo { };
+
+  kooha = callPackage ../applications/video/kooha { };
+
+  kotatogram-desktop = libsForQt5.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa CoreFoundation CoreServices CoreText CoreGraphics
+      CoreMedia OpenGL AudioUnit ApplicationServices Foundation AGL Security SystemConfiguration
+      Carbon AudioToolbox VideoToolbox VideoDecodeAcceleration AVFoundation CoreAudio CoreVideo
+      CoreMediaIO QuartzCore AppKit CoreWLAN WebKit IOKit GSS MediaPlayer IOSurface Metal MetalKit;
+
+    stdenv = if stdenv.isDarwin
+      then overrideLibcxx darwin.apple_sdk_11_0.llvmPackages_12.stdenv
+      else stdenv;
+
+    # telegram-desktop has random crashes when jemalloc is built with gcc.
+    # Apparently, it triggers some bug due to usage of gcc's builtin
+    # functions like __builtin_ffsl by jemalloc when it's built with gcc.
+    jemalloc = (jemalloc.override { stdenv = clangStdenv; }).overrideAttrs {
+      # no idea how to fix the tests :(
+      doCheck = false;
+    };
+  };
+
+  kotatogram-desktop-with-webkit = callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix { };
+
+  kpt = callPackage ../applications/networking/cluster/kpt { };
+
+  krabby = callPackage ../applications/misc/krabby { };
+
+  kraft = callPackage ../applications/virtualization/kraft { };
+
+  krane = callPackage ../applications/networking/cluster/krane { };
+
+  krita = libsForQt5.callPackage ../applications/graphics/krita { };
+
+  ksuperkey = callPackage ../tools/X11/ksuperkey { };
+
+  ktimetracker = libsForQt5.callPackage ../applications/office/ktimetracker { };
+
+  kubedb-cli = callPackage ../applications/networking/cluster/kubedb-cli { };
+
+  kubedog = callPackage ../applications/networking/cluster/kubedog { };
+
+  kubecfg = callPackage ../applications/networking/cluster/kubecfg { };
+
+  kubefirst = callPackage ../applications/networking/cluster/kubefirst { };
+
+  kube-score = callPackage ../applications/networking/cluster/kube-score { };
+
+  kubectl-evict-pod = callPackage ../applications/networking/cluster/kubectl-evict-pod {
+  };
+
+  kubeval = callPackage ../applications/networking/cluster/kubeval { };
+
+  kubeval-schema = callPackage ../applications/networking/cluster/kubeval/schema.nix { };
+
+  kubernetes = callPackage ../applications/networking/cluster/kubernetes { };
+  kubectl = callPackage ../applications/networking/cluster/kubernetes/kubectl.nix { };
+  kubectl-convert = kubectl.convert;
+
+  kubectl-view-secret = callPackage ../applications/networking/cluster/kubectl-view-secret { };
+
+  kubernetes-metrics-server = callPackage ../applications/networking/cluster/kubernetes-metrics-server { };
+
+  kubemqctl = callPackage ../applications/networking/cluster/kubemqctl { };
+
+  kubent = callPackage ../applications/networking/cluster/kubent { };
+
+  kubeseal = callPackage ../applications/networking/cluster/kubeseal { };
+
+  kubestroyer = callPackage ../tools/security/kubestroyer { };
+
+  kubernix = callPackage ../applications/networking/cluster/kubernix { };
+
+  kubeconform = callPackage ../applications/networking/cluster/kubeconform { };
+
+  kubecolor = callPackage ../applications/networking/cluster/kubecolor { };
+
+  kubebuilder = callPackage ../applications/networking/cluster/kubebuilder { };
+
+  kuttl = callPackage ../applications/networking/cluster/kuttl { };
+
+  kubectl-cnpg = callPackage ../applications/networking/cluster/kubectl-cnpg { };
+
+  kubectl-doctor = callPackage ../applications/networking/cluster/kubectl-doctor { };
+
+  kubectl-example = callPackage ../applications/networking/cluster/kubectl-example { };
+
+  kubectl-explore = callPackage ../applications/networking/cluster/kubectl-explore { };
+
+  kubectl-gadget = callPackage ../applications/networking/cluster/kubectl-gadget { };
+
+  kubectl-images = callPackage ../applications/networking/cluster/kubectl-images { };
+
+  kubectl-klock = callPackage ../applications/networking/cluster/kubectl-klock { };
+
+  kubectl-ktop = callPackage ../applications/networking/cluster/kubectl-ktop { };
+
+  kubectl-node-shell = callPackage ../applications/networking/cluster/kubectl-node-shell { };
+
+  kubectl-tree = callPackage ../applications/networking/cluster/kubectl-tree { };
+
+  kubectl-view-allocations = callPackage ../applications/networking/cluster/kubectl-view-allocations {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  kubelogin = callPackage ../applications/networking/cluster/kubelogin { };
+
+  kubelogin-oidc = callPackage ../applications/networking/cluster/kubelogin-oidc { };
+
+  kubevpn = callPackage ../applications/networking/cluster/kubevpn { };
+
+  k8sgpt = callPackage ../applications/networking/cluster/k8sgpt { };
+
+  k9s = callPackage ../applications/networking/cluster/k9s { };
+
+  kubecm = callPackage ../applications/networking/cluster/kubecm { };
+
+  ktunnel = callPackage ../applications/networking/cluster/ktunnel { };
+
+  ktop = callPackage ../applications/networking/cluster/ktop { };
+
+  pinniped = callPackage ../applications/networking/cluster/pinniped { };
+
+  kthxbye = callPackage ../servers/monitoring/prometheus/kthxbye.nix { };
+
+  pgo-client = callPackage ../applications/networking/cluster/pgo-client { };
+
+  popeye = callPackage ../applications/networking/cluster/popeye { };
+
+  kube-capacity = callPackage ../applications/networking/cluster/kube-capacity { };
+
+  fluxctl = callPackage ../applications/networking/cluster/fluxctl { };
+
+  fluxcd = callPackage ../applications/networking/cluster/fluxcd { };
+
+  linkerd = callPackage ../applications/networking/cluster/linkerd { };
+  linkerd_edge = callPackage ../applications/networking/cluster/linkerd/edge.nix { };
+  linkerd_stable = linkerd;
+
+  kuma = callPackage ../applications/networking/cluster/kuma { isFull = true; };
+  kuma-experimental = callPackage ../applications/networking/cluster/kuma {
+    isFull = true;
+    enableGateway = true;
+    pname = "kuma-experimental";
+  };
+  kumactl = callPackage ../applications/networking/cluster/kuma {
+    components = ["kumactl"];
+    pname = "kumactl";
+  };
+  kuma-cp = callPackage ../applications/networking/cluster/kuma {
+    components = ["kuma-cp"];
+    pname = "kuma-cp";
+  };
+  kuma-dp = callPackage ../applications/networking/cluster/kuma {
+    components = ["kuma-dp"];
+    pname = "kuma-dp";
+  };
+
+  kile-wl = callPackage ../applications/misc/kile-wl { };
+
+  kiln = callPackage ../applications/misc/kiln { };
+
+  karmor = callPackage ../applications/networking/cluster/karmor { };
+
+  kubernetes-code-generator = callPackage ../development/tools/kubernetes-code-generator { };
+
+  kubernetes-controller-tools = callPackage ../development/tools/kubernetes-controller-tools { };
+
+  kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
+
+  wrapHelm = callPackage ../applications/networking/cluster/helm/wrapper.nix { };
+
+  kubernetes-helm-wrapped = wrapHelm kubernetes-helm { };
+
+  kubernetes-helmPlugins = recurseIntoAttrs (callPackage ../applications/networking/cluster/helm/plugins { });
+
+  chart-testing = callPackage ../applications/networking/cluster/helm/chart-testing { };
+
+  helm-docs = callPackage ../applications/networking/cluster/helm-docs { };
+
+  kubetail = callPackage ../applications/networking/cluster/kubetail { } ;
+
+  kubexit = callPackage ../applications/networking/cluster/kubexit { } ;
+
+  kup = libsForQt5.callPackage ../applications/misc/kup { };
+
+  kupfer = callPackage ../applications/misc/kupfer { };
+
+  kuro = callPackage ../applications/misc/kuro {
+    electron = electron_22;
+  };
+
+  timoni = callPackage ../applications/networking/cluster/timoni { };
+
+  kvirc = libsForQt5.callPackage ../applications/networking/irc/kvirc { };
+
+  lame = callPackage ../development/libraries/lame { };
+
+  labwc = callPackage ../by-name/la/labwc/package.nix {
+    wlroots = wlroots_0_16;
+  };
+
+  larswm = callPackage ../applications/window-managers/larswm { };
+
+  lash = callPackage ../applications/audio/lash { };
+
+  ladspaH = callPackage ../applications/audio/ladspa-sdk/ladspah.nix { };
+
+  ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
+    fftw = fftwSinglePrec;
+  };
+
+  ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
+
+  ladybird = qt6Packages.callPackage ../applications/networking/browsers/ladybird {
+    stdenv = if stdenv.isDarwin then overrideLibcxx darwin.apple_sdk_11_0.llvmPackages_16.stdenv else stdenv;
+  };
+
+  lazpaint = callPackage ../applications/graphics/lazpaint { };
+
+  caps = callPackage ../applications/audio/caps { };
+
+  lbdb = callPackage ../tools/misc/lbdb { };
+
+  lbry = callPackage ../applications/video/lbry { };
+
+  lbzip2 = callPackage ../tools/compression/lbzip2 { };
+
+  lci = callPackage ../applications/science/logic/lci { };
+
+  lemonbar = callPackage ../applications/window-managers/lemonbar { };
+
+  lemonbar-xft = callPackage ../applications/window-managers/lemonbar/xft.nix { };
+
+  lenovo-legion = libsForQt5.callPackage ../os-specific/linux/lenovo-legion/app.nix { };
+
+  legitify = callPackage ../development/tools/legitify { };
+
+  lens = callPackage ../applications/networking/cluster/lens { };
+
+  openlens = callPackage ../applications/networking/cluster/openlens { };
+
+  leo-editor = libsForQt5.callPackage ../applications/editors/leo-editor { };
+
+  libkiwix = callPackage ../applications/misc/kiwix/lib.nix { };
+
+  libowfat = callPackage ../development/libraries/libowfat { };
+
+  libowlevelzs = callPackage ../development/libraries/libowlevelzs { };
+
+  librecad = libsForQt5.callPackage ../applications/misc/librecad {
+    boost = boost175;
+  };
+
+  libreoffice-bin = callPackage ../applications/office/libreoffice/darwin { };
+
+  libreoffice = hiPrio libreoffice-still;
+
+  libreoffice-unwrapped = libreoffice.unwrapped;
+
+  libreoffice-args = {
+    inherit (perlPackages) ArchiveZip IOCompress;
+    zip = zip.override { enableNLS = false; };
+    fontsConf = makeFontsConf {
+      fontDirectories = [
+        carlito dejavu_fonts
+        freefont_ttf xorg.fontmiscmisc
+        liberation_ttf_v1
+        liberation_ttf_v2
+      ];
+    };
+    clucene_core = clucene_core_2;
+    lcms = lcms2;
+    harfbuzz = harfbuzz.override {
+      withIcu = true; withGraphite2 = true;
+    };
+    boost = boost179;
+  };
+
+  libreoffice-qt = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
+    unwrapped = libsForQt5.callPackage ../applications/office/libreoffice
+      (libreoffice-args // {
+        kdeIntegration = true;
+        variant = "fresh";
+      });
+  });
+
+  libreoffice-fresh = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
+    unwrapped = callPackage ../applications/office/libreoffice
+      (libreoffice-args // {
+        variant = "fresh";
+      });
+  });
+  libreoffice-fresh-unwrapped = libreoffice-fresh.unwrapped;
+
+  libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
+    unwrapped = callPackage ../applications/office/libreoffice
+      (libreoffice-args // {
+        variant = "still";
+      });
+  });
+  libreoffice-still-unwrapped = libreoffice-still.unwrapped;
+
+  libresprite = callPackage ../applications/editors/libresprite {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation;
+  };
+
+  libvmi = callPackage ../development/libraries/libvmi { };
+
+  libutp = callPackage ../applications/networking/p2p/libutp { };
+  libutp_3_4 = callPackage ../applications/networking/p2p/libutp/3.4.nix { };
+
+  lifelines = callPackage ../applications/misc/lifelines { };
+
+  liferea = callPackage ../applications/networking/newsreaders/liferea {
+    libsoup = libsoup_3;
+    webkitgtk = webkitgtk_4_1;
+  };
+
+  lightworks = callPackage ../applications/video/lightworks { };
+
+  lingot = callPackage ../applications/audio/lingot { };
+
+  litebrowser = callPackage ../applications/networking/browsers/litebrowser { };
+
+  littlegptracker = callPackage ../applications/audio/littlegptracker {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  ledger = callPackage ../applications/office/ledger { };
+
+  ledger-autosync = callPackage  ../applications/office/ledger-autosync { };
+
+  ledger-web = callPackage ../applications/office/ledger-web { };
+
+  ledger2beancount = callPackage ../tools/text/ledger2beancount { };
+
+  lightburn = libsForQt5.callPackage ../applications/graphics/lightburn { };
+
+  lighthouse-steamvr = callPackage ../tools/misc/lighthouse-steamvr { };
+
+  liblinphone = callPackage ../development/libraries/liblinphone { };
+
+  links2 = callPackage ../applications/networking/browsers/links2 { };
+
+  linphone = libsForQt5.callPackage ../applications/networking/instant-messengers/linphone { };
+
+  linuxsampler = callPackage ../applications/audio/linuxsampler { };
+
+  llpp = callPackage ../applications/misc/llpp { };
+
+  lls = callPackage ../applications/networking/lls { };
+
+  localsend = callPackage ../applications/networking/localsend { };
+
+  lmms = libsForQt5.callPackage ../applications/audio/lmms {
+    lame = null;
+    libsoundio = null;
+    portaudio = null;
+  };
+
+  lokinet = callPackage ../applications/networking/p2p/lokinet { };
+
+  losslesscut-bin = callPackage ../applications/video/losslesscut-bin { };
+
+  loxodo = callPackage ../applications/misc/loxodo { };
+
+  lsd2dsl = libsForQt5.callPackage ../applications/misc/lsd2dsl { };
+
+  lrzsz = callPackage ../tools/misc/lrzsz { };
+
+  lsp-plugins = callPackage ../applications/audio/lsp-plugins { php = php81; };
+
+  ltex-ls = callPackage ../tools/text/ltex-ls { };
+
+  luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
+
+  lxdvdrip = callPackage ../applications/video/lxdvdrip { };
+
+  handbrake = callPackage ../applications/video/handbrake {
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox Foundation VideoToolbox;
+    inherit (darwin) libobjc;
+  };
+
+  handlr = callPackage ../tools/misc/handlr { };
+
+  jftui = callPackage ../applications/video/jftui { };
+
+  lime = callPackage ../development/libraries/lime { };
+
+  luakit = callPackage ../applications/networking/browsers/luakit {
+    inherit (luajitPackages) luafilesystem;
+  };
+
+  looking-glass-client = callPackage ../applications/virtualization/looking-glass-client { };
+
+  ltc-tools = callPackage ../applications/audio/ltc-tools { };
+
+  lscolors = callPackage ../applications/misc/lscolors { };
+
+  lswt = callPackage ../applications/misc/lswt { };
+
+  luddite = with python3Packages; toPythonApplication luddite;
+
+  goobook = with python3Packages; toPythonApplication goobook;
+
+  lumail = callPackage ../applications/networking/mailreaders/lumail {
+    lua = lua5_1;
+  };
+
+  luppp = callPackage ../applications/audio/luppp { };
+
+  lutris-unwrapped = python3.pkgs.callPackage ../applications/misc/lutris { };
+  lutris = callPackage ../applications/misc/lutris/fhsenv.nix { };
+  lutris-free = lutris.override {
+    steamSupport = false;
+  };
+
+  lv2bm = callPackage ../applications/audio/lv2bm { };
+
+  lv2lint = callPackage ../applications/audio/lv2lint/default.nix { };
+
+  lv2-cpp-tools = callPackage ../applications/audio/lv2-cpp-tools { };
+
+  lxi-tools = callPackage ../tools/networking/lxi-tools { };
+  lxi-tools-gui = callPackage ../tools/networking/lxi-tools { withGui = true; };
+
+  lynx = callPackage ../applications/networking/browsers/lynx { };
+
+  lyrebird = callPackage ../applications/audio/lyrebird { };
+
+  lyx = libsForQt5.callPackage ../applications/misc/lyx { };
+
+  m4acut = callPackage ../applications/audio/m4acut { };
+
+  mac = callPackage ../development/libraries/mac { };
+
+  macdylibbundler = callPackage ../development/tools/misc/macdylibbundler { inherit (darwin) cctools; };
+
+  magic-wormhole = with python3Packages; toPythonApplication magic-wormhole;
+
+  magic-wormhole-rs = callPackage ../tools/networking/magic-wormhole-rs {
+    inherit (darwin.apple_sdk.frameworks) Security AppKit;
+  };
+
+  magnetophonDSP = lib.recurseIntoAttrs {
+    CharacterCompressor = callPackage ../applications/audio/magnetophonDSP/CharacterCompressor { };
+    CompBus = callPackage ../applications/audio/magnetophonDSP/CompBus { };
+    ConstantDetuneChorus  = callPackage ../applications/audio/magnetophonDSP/ConstantDetuneChorus { };
+    faustCompressors =  callPackage ../applications/audio/magnetophonDSP/faustCompressors { };
+    LazyLimiter = callPackage ../applications/audio/magnetophonDSP/LazyLimiter { };
+    MBdistortion = callPackage ../applications/audio/magnetophonDSP/MBdistortion { };
+    pluginUtils = callPackage ../applications/audio/magnetophonDSP/pluginUtils  { };
+    RhythmDelay = callPackage ../applications/audio/magnetophonDSP/RhythmDelay { };
+    VoiceOfFaust = callPackage ../applications/audio/magnetophonDSP/VoiceOfFaust { };
+    shelfMultiBand = callPackage ../applications/audio/magnetophonDSP/shelfMultiBand  { };
+  };
+
+  makeself = callPackage ../applications/misc/makeself { };
+
+  mako = callPackage ../applications/misc/mako { };
+
+  mandelbulber = libsForQt5.callPackage ../applications/graphics/mandelbulber { };
+
+  mapmap = libsForQt5.callPackage ../applications/video/mapmap { };
+
+  marathonctl = callPackage ../tools/virtualization/marathonctl { };
+
+  mark = callPackage ../tools/text/mark { };
+
+  markets = callPackage ../applications/misc/markets { };
+
+  markscribe = callPackage ../tools/text/markscribe { };
+
+  magnetico = callPackage ../applications/networking/p2p/magnetico {
+    buildGoModule = buildGo120Module;
+  };
+
+  mastodon-bot = nodePackages.mastodon-bot;
+
+  matchbox = callPackage ../applications/window-managers/matchbox { };
+
+  matrixcli = callPackage ../applications/networking/instant-messengers/matrixcli {
+    inherit (python3Packages) buildPythonApplication buildPythonPackage
+      pygobject3 pytest-runner requests responses pytest python-olm
+      canonicaljson;
+  };
+
+  matrix-commander = python3Packages.callPackage ../applications/networking/instant-messengers/matrix-commander { };
+
+  matrix-dl = callPackage ../applications/networking/instant-messengers/matrix-dl { };
+
+  iamb = callPackage ../applications/networking/instant-messengers/iamb { };
+
+  mblaze = callPackage ../applications/networking/mailreaders/mblaze { };
+
+  mbrola = callPackage ../applications/audio/mbrola { };
+
+  mcomix = callPackage ../applications/graphics/mcomix { };
+
+  mcpp = callPackage ../development/compilers/mcpp { };
+
+  mda_lv2 = callPackage ../applications/audio/mda-lv2 { };
+
+  mdzk = callPackage ../applications/misc/mdzk {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  media-downloader = libsForQt5.callPackage ../applications/video/media-downloader { };
+
+  mediaelch = mediaelch-qt5;
+  mediaelch-qt5 = libsForQt5.callPackage ../applications/misc/mediaelch { };
+  mediaelch-qt6 = qt6Packages.callPackage ../applications/misc/mediaelch { };
+
+  mediainfo = callPackage ../applications/misc/mediainfo { };
+
+  mediainfo-gui = callPackage ../applications/misc/mediainfo-gui { };
+
+  mediathekview = callPackage ../applications/video/mediathekview { jre = temurin-bin-20; };
+
+  megapixels = callPackage ../applications/graphics/megapixels { };
+
+  meteo = callPackage ../applications/networking/weather/meteo { };
+
+  meld = callPackage ../applications/version-management/meld { };
+
+  meli = callPackage ../applications/networking/mailreaders/meli { };
+
+  melmatcheq.lv2 = callPackage ../applications/audio/melmatcheq.lv2 { };
+
+  melody = callPackage ../tools/misc/melody { };
+
+  meme-bingo-web = callPackage ../servers/web-apps/meme-bingo-web { };
+
+  meme-image-generator = callPackage ../applications/graphics/meme-image-generator { };
+
+  meme-suite = callPackage ../applications/science/biology/meme-suite { };
+
+  mendeley = libsForQt5.callPackage ../applications/office/mendeley {
+    gconf = gnome2.GConf;
+  };
+
+  menumaker = callPackage ../applications/misc/menumaker { };
+
+  menyoki = callPackage ../applications/graphics/menyoki {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  mercurial = callPackage ../applications/version-management/mercurial {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  sapling = callPackage ../applications/version-management/sapling {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreFoundation CoreGraphics CoreServices Security WebKit;
+  };
+
+  mercurialFull = mercurial.override { fullBuild = true; };
+
+  merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
+
+  mepo = callPackage ../applications/misc/mepo {
+    inherit (gnome) zenity;
+  };
+
+  meshcentral = callPackage ../tools/admin/meshcentral { };
+
+  meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { };
+
+  metadata-cleaner = callPackage ../applications/misc/metadata-cleaner { };
+
+  metersLv2 = callPackage ../applications/audio/meters_lv2 { };
+
+  mhwaveedit = callPackage ../applications/audio/mhwaveedit {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  michabo = libsForQt5.callPackage ../applications/misc/michabo { };
+
+  mid2key = callPackage ../applications/audio/mid2key { };
+
+  midori-unwrapped = callPackage ../applications/networking/browsers/midori { };
+  midori = wrapFirefox midori-unwrapped { };
+
+  mikmod = callPackage ../applications/audio/mikmod { };
+
+  miniaudicle = qt6Packages.callPackage ../applications/audio/miniaudicle { };
+
+  minidsp = callPackage ../applications/audio/minidsp {
+    inherit (darwin.apple_sdk.frameworks) AppKit IOKit;
+  };
+
+  minicom = callPackage ../tools/misc/minicom {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  minigalaxy = callPackage ../applications/misc/minigalaxy { };
+
+  minimodem = callPackage ../applications/radio/minimodem { };
+
+  minidjvu = callPackage ../applications/graphics/minidjvu { };
+
+  minikube = callPackage ../applications/networking/cluster/minikube {
+    inherit (darwin.apple_sdk.frameworks) vmnet;
+  };
+
+  minishift = callPackage ../applications/networking/cluster/minishift { };
+
+  minitube = libsForQt5.callPackage ../applications/video/minitube { };
+
+  mimic = callPackage ../applications/audio/mimic { };
+
+  mission-center = callPackage ../applications/misc/mission-center { };
+
+  meh = callPackage ../applications/graphics/meh { };
+
+  mixxx = libsForQt5.callPackage ../applications/audio/mixxx { };
+
+  mjpg-streamer = callPackage ../applications/video/mjpg-streamer { };
+
+  mldonkey = callPackage ../applications/networking/p2p/mldonkey {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14_unsafe_string;
+  };
+
+  mlvwm = callPackage ../applications/window-managers/mlvwm { };
+
+  MMA = callPackage ../applications/audio/MMA { };
+
+  mmex = callPackage ../applications/office/mmex {
+    wxGTK32 = wxGTK32.override {
+      withWebKit = true;
+    };
+  };
+
+  mmlgui = callPackage ../applications/audio/mmlgui {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+    libvgm = libvgm.override {
+      withAllEmulators = false;
+      emulators = [
+        "_PRESET_SMD"
+      ];
+      enableLibplayer = false;
+    };
+  };
+
+  mmsd = callPackage ../tools/networking/mmsd { };
+
+  mmsd-tng = callPackage ../tools/networking/mmsd-tng { };
+
+  mmtc = callPackage ../applications/audio/mmtc { };
+
+  mnamer = callPackage ../applications/misc/mnamer { };
+
+  moc = callPackage ../applications/audio/moc {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mod-arpeggiator-lv2 = callPackage ../applications/audio/mod-arpeggiator-lv2 { };
+
+  mod-distortion = callPackage ../applications/audio/mod-distortion { };
+
+  monitorcontrol = callPackage ../applications/misc/monitorcontrol { };
+
+  xmr-stak = callPackage ../applications/misc/xmr-stak { };
+
+  xmrig = darwin.apple_sdk_11_0.callPackage ../applications/misc/xmrig { };
+
+  xmrig-mo = darwin.apple_sdk_11_0.callPackage ../applications/misc/xmrig/moneroocean.nix { };
+
+  xmrig-proxy = darwin.apple_sdk_11_0.callPackage ../applications/misc/xmrig/proxy.nix { };
+
+  molot-lite = callPackage ../applications/audio/molot-lite { };
+
+  monkeysAudio = callPackage ../applications/audio/monkeys-audio { };
+
+  monkeysphere = callPackage ../tools/security/monkeysphere { };
+
+  monotone = callPackage ../applications/version-management/monotone {
+    lua = lua5;
+  };
+
+  monotoneViz = callPackage ../applications/version-management/monotone-viz {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14_unsafe_string;
+  };
+
+  monitor = callPackage ../applications/system/monitor {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+  };
+
+  moolticute = libsForQt5.callPackage ../applications/misc/moolticute { };
+
+  moonlight-embedded = callPackage ../applications/misc/moonlight-embedded { };
+
+  moonlight-qt = libsForQt5.callPackage ../applications/misc/moonlight-qt {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    SDL2 = buildPackages.SDL2.override {
+      drmSupport = stdenv.isLinux;
+    };
+  };
+
+  mooSpace = callPackage ../applications/audio/mooSpace { };
+
+  mop = callPackage ../applications/misc/mop { };
+
+  mopidyPackages = (callPackages ../applications/audio/mopidy {
+    python = python3;
+  }) // { __attrsFailEvaluation = true; };
+
+  inherit (mopidyPackages)
+    mopidy
+    mopidy-bandcamp
+    mopidy-iris
+    mopidy-jellyfin
+    mopidy-local
+    mopidy-moped
+    mopidy-mopify
+    mopidy-mpd
+    mopidy-mpris
+    mopidy-muse
+    mopidy-musicbox-webclient
+    mopidy-notify
+    mopidy-podcast
+    mopidy-scrobbler
+    mopidy-somafm
+    mopidy-soundcloud
+    mopidy-spotify
+    mopidy-subidy
+    mopidy-tidal
+    mopidy-tunein
+    mopidy-youtube
+    mopidy-ytmusic;
+
+  monocypher = callPackage ../development/libraries/monocypher { };
+
+  motif = callPackage ../development/libraries/motif { };
+
+  mousai = callPackage ../applications/audio/mousai { };
+
+  mozjpeg = callPackage ../applications/graphics/mozjpeg { };
+
+  edgetx = libsForQt5.callPackage ../applications/misc/edgetx { };
+
+  easytag = callPackage ../applications/audio/easytag { };
+
+  mp3gain = callPackage ../applications/audio/mp3gain { };
+
+  mp3info = callPackage ../applications/audio/mp3info { };
+
+  mp3splt = callPackage ../applications/audio/mp3splt { };
+
+  mp3val = callPackage ../applications/audio/mp3val { };
+
+  mpc123 = callPackage ../applications/audio/mpc123 { };
+
+  mpg123 = callPackage ../applications/audio/mpg123 {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit AudioToolbox;
+    jack = libjack2;
+  };
+
+  libmpg123 = mpg123.override {
+    libOnly = true;
+    withConplay = false;
+  };
+
+  mpg321 = callPackage ../applications/audio/mpg321 { };
+
+  mpc-cli = callPackage ../applications/audio/mpc {
+    inherit (python3Packages) sphinx;
+  };
+
+  clerk = callPackage ../applications/audio/clerk { };
+
+  jujutsu = callPackage ../applications/version-management/jujutsu {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  nbstripout = callPackage ../applications/version-management/nbstripout { };
+
+  ncmpc = callPackage ../applications/audio/ncmpc { };
+
+  ncmpcpp = callPackage ../applications/audio/ncmpcpp { };
+
+  pms = callPackage ../applications/audio/pms { };
+
+  pragha = libsForQt5.callPackage ../applications/audio/pragha { };
+
+  river-tag-overlay = callPackage ../applications/misc/river-tag-overlay { };
+
+  rofi-mpd = callPackage ../applications/audio/rofi-mpd { };
+
+  rofi-bluetooth = callPackage ../applications/misc/rofi-bluetooth { };
+
+  rofi-calc = callPackage ../applications/science/math/rofi-calc { };
+
+  rofi-emoji = callPackage ../applications/misc/rofi-emoji { };
+
+  rofi-file-browser = callPackage ../applications/misc/rofi-file-browser { };
+
+  rofi-power-menu = callPackage ../applications/misc/rofi-power-menu { };
+
+  rofi-pulse-select = callPackage ../applications/audio/rofi-pulse-select { };
+
+  rofi-rbw = python3Packages.callPackage ../applications/misc/rofi-rbw {
+    waylandSupport = false;
+    x11Support = false;
+  };
+
+  rofi-rbw-wayland = python3Packages.callPackage ../applications/misc/rofi-rbw {
+    waylandSupport = true;
+  };
+
+  rofi-rbw-x11 = python3Packages.callPackage ../applications/misc/rofi-rbw {
+    x11Support = true;
+  };
+
+  rofi-screenshot = callPackage ../applications/misc/rofi-screenshot { };
+
+  rofi-top = callPackage ../applications/misc/rofi-top { };
+
+  rofi-vpn = callPackage ../applications/networking/rofi-vpn { };
+
+  seamly2d = libsForQt5.callPackage ../applications/graphics/seamly2d { };
+
+  ympd = callPackage ../applications/audio/ympd { };
+
+  # a somewhat more maintained fork of ympd
+  mympd = callPackage ../applications/audio/mympd { };
+
+  nload = callPackage ../applications/networking/nload { };
+
+  nali = callPackage ../applications/networking/nali { };
+
+  normalize = callPackage ../applications/audio/normalize { };
+
+  norouter = callPackage ../tools/networking/norouter {
+    # doesn't build with go 1.21
+    # https://github.com/norouter/norouter/issues/165
+    buildGoModule = buildGo120Module;
+  };
+
+  nqptp = callPackage ../tools/networking/nqptp { };
+
+  mailspring = callPackage ../applications/networking/mailreaders/mailspring { };
+
+  memento = libsForQt5.callPackage ../applications/video/memento { };
+
+  mm = callPackage ../applications/networking/instant-messengers/mm { };
+
+  mm-common = callPackage ../development/libraries/mm-common { };
+
+  mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { };
+
+  mplayer = callPackage ../applications/video/mplayer ({
+    libdvdnav = libdvdnav_4_2_1;
+  } // (config.mplayer or {}));
+
+  mpv-unwrapped = darwin.apple_sdk_11_0.callPackage ../applications/video/mpv {
+    stdenv = if stdenv.isDarwin then swiftPackages.stdenv else stdenv;
+    inherit lua;
+    inherit (darwin) sigtool;
+  };
+
+  shaka-packager = callPackage ../applications/video/shaka-packager { };
+
+  # Wraps without triggering a rebuild
+  wrapMpv = callPackage ../applications/video/mpv/wrapper.nix { };
+  mpv = wrapMpv mpv-unwrapped { };
+
+  mpvpaper = callPackage ../tools/wayland/mpvpaper { };
+
+  mpvScripts = callPackage ../applications/video/mpv/scripts { };
+
+  open-in-mpv = callPackage ../applications/video/open-in-mpv { };
+
+  mpv-shim-default-shaders = callPackage ../applications/video/mpv-shim-default-shaders { };
+
+  mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
+
+  mtpaint = callPackage ../applications/graphics/mtpaint { };
+
+  mu-repo = python3Packages.callPackage ../applications/misc/mu-repo { };
+
+  multimarkdown = callPackage ../tools/typesetting/multimarkdown { };
+
+  multimon-ng = callPackage ../applications/radio/multimon-ng { };
+
+  murmur = (callPackages ../applications/networking/mumble {
+      avahi = avahi-compat;
+      pulseSupport = config.pulseaudio or false;
+      iceSupport = config.murmur.iceSupport or true;
+      protobuf = protobuf_21;
+    }).murmur;
+
+  mumble = (callPackages ../applications/networking/mumble {
+      avahi = avahi-compat;
+      jackSupport = config.mumble.jackSupport or false;
+      speechdSupport = config.mumble.speechdSupport or false;
+      protobuf = protobuf_21;
+    }).mumble;
+
+  mumble_overlay = callPackage ../applications/networking/mumble/overlay.nix {
+    mumble_i686 = if stdenv.hostPlatform.system == "x86_64-linux"
+      then pkgsi686Linux.mumble
+      else null;
+  };
+
+  mup = callPackage ../applications/audio/mup {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  musescore = libsForQt5.callPackage ../applications/audio/musescore { };
+
+  music-player = callPackage ../applications/audio/music-player { };
+
+  mmh = callPackage ../applications/networking/mailreaders/mmh { };
+  mutt = callPackage ../applications/networking/mailreaders/mutt { };
+
+  mutt-wizard = callPackage ../tools/misc/mutt-wizard { };
+
+  mutt-ics = callPackage ../tools/networking/mutt-ics { };
+
+  mw = callPackage ../tools/text/mw { };
+
+  mwic = callPackage ../applications/misc/mwic {
+    pythonPackages = python3Packages;
+  };
+
+  n8n = callPackage ../applications/networking/n8n { };
+
+  neomutt = darwin.apple_sdk_11_0.callPackage ../applications/networking/mailreaders/neomutt { };
+
+  neosay = callPackage ../applications/networking/instant-messengers/neosay { };
+
+  natron = libsForQt5.callPackage ../applications/video/natron { };
+
+  natural-docs = callPackage ../applications/misc/natural-docs { };
+
+  neocomp  = callPackage ../applications/window-managers/neocomp { };
+
+  nerd-font-patcher = callPackage ../applications/misc/nerd-font-patcher { };
+
+  netmaker = callPackage ../applications/networking/netmaker {subPackages = ["."];};
+  netmaker-full = callPackage ../applications/networking/netmaker { };
+
+  newsflash = callPackage ../applications/networking/feedreaders/newsflash {
+    webkitgtk = webkitgtk_6_0;
+  };
+
+  nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus { };
+
+  nice-dcv-client = callPackage ../applications/networking/remote/nice-dcv-client { };
+
+  nixos-shell = callPackage ../tools/virtualization/nixos-shell { };
+
+  nix-ld = callPackage ../os-specific/linux/nix-ld { };
+
+  noaa-apt = callPackage ../applications/radio/noaa-apt { };
+
+  node-problem-detector = callPackage ../applications/networking/cluster/node-problem-detector { };
+
+  ninjas2 = callPackage ../applications/audio/ninjas2 { };
+
+  nootka = qt5.callPackage ../applications/audio/nootka { };
+
+  novnc = callPackage ../applications/networking/novnc { };
+
+  ns-usbloader = callPackage ../applications/misc/ns-usbloader { };
+
+  nwg-bar = callPackage ../applications/misc/nwg-bar { };
+
+  nwg-displays = callPackage ../applications/misc/nwg-displays { };
+
+  nwg-dock = callPackage ../applications/misc/nwg-dock { };
+
+  nwg-dock-hyprland = callPackage ../applications/misc/nwg-dock-hyprland { };
+
+  nwg-launchers = callPackage ../applications/misc/nwg-launchers { };
+
+  nwg-look = callPackage ../applications/misc/nwg-look { };
+
+  nwg-menu = callPackage ../applications/misc/nwg-menu { };
+
+  nwg-panel = callPackage ../applications/misc/nwg-panel { };
+
+  nwg-wrapper = callPackage ../applications/misc/nwg-wrapper { };
+
+  ocenaudio = callPackage ../applications/audio/ocenaudio { };
+
+  ocm = callPackage ../applications/networking/cluster/ocm { };
+
+  odo = callPackage ../applications/networking/cluster/odo { };
+
+  odin2 = callPackage ../applications/audio/odin2 { };
+
+  okteto = callPackage ../development/tools/okteto { };
+
+  onlyoffice-bin_7_2 = callPackage ../applications/office/onlyoffice-bin/7_2.nix { };
+  onlyoffice-bin_7_5 = callPackage ../applications/office/onlyoffice-bin/7_5.nix { };
+  onlyoffice-bin = onlyoffice-bin_7_2;
+  onlyoffice-bin_latest = onlyoffice-bin_7_5;
+
+  onmetal-image = callPackage ../tools/virtualization/onmetal-image { };
+
+  opcr-policy = callPackage ../development/tools/opcr-policy { };
+
+  opcua-client-gui = libsForQt5.callPackage ../misc/opcua-client-gui { };
+
+  open-policy-agent = callPackage ../development/tools/open-policy-agent { };
+
+  openmm = callPackage ../development/libraries/science/chemistry/openmm {
+    swig = swig4;
+  };
+
+  openshift = callPackage ../applications/networking/cluster/openshift { };
+
+  opsdroid = callPackage ../applications/networking/opsdroid { };
+
+  osm2pgsql = callPackage ../tools/misc/osm2pgsql { };
+
+  ostinato = libsForQt5.callPackage ../applications/networking/ostinato {
+    protobuf = protobuf_21;
+  };
+
+  p4 = callPackage ../applications/version-management/p4 {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Foundation Security;
+  };
+  p4d = callPackage ../applications/version-management/p4d { };
+  p4v = callPackage ../applications/version-management/p4v { };
+
+  parson = callPackage ../development/libraries/parson { };
+
+  partio = callPackage ../development/libraries/partio { };
+
+  pc-ble-driver = callPackage ../development/libraries/pc-ble-driver {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  pcmanfm-qt = lxqt.pcmanfm-qt;
+
+  pcmanx-gtk2 = callPackage ../applications/misc/pcmanx-gtk2 { };
+
+  pdfmixtool = libsForQt5.callPackage ../applications/office/pdfmixtool { };
+
+  pdfmm = callPackage ../applications/office/pdfmm { };
+
+  pig = callPackage ../applications/networking/cluster/pig { };
+
+  pijul = callPackage ../applications/version-management/pijul { };
+
+  pijuice = with python3Packages; toPythonApplication pijuice;
+
+  pinegrow6 = callPackage ../applications/editors/pinegrow { pinegrowVersion = "6"; };
+
+  pinegrow = callPackage ../applications/editors/pinegrow { };
+
+  piper = callPackage ../os-specific/linux/piper { };
+
+  pipe-viewer = perlPackages.callPackage ../applications/video/pipe-viewer { };
+
+  planify = callPackage ../applications/office/planify { };
+
+  plank = callPackage ../applications/misc/plank { };
+
+  playonlinux = callPackage ../applications/misc/playonlinux
+    { stdenv = stdenv_32bit; };
+
+  pleroma-bot = python3Packages.callPackage ../development/python-modules/pleroma-bot { };
+
+  pluto = callPackage ../applications/networking/cluster/pluto { };
+
+  pnglatex = with python3Packages; toPythonApplication pnglatex;
+
+  polybarFull = polybar.override {
+    alsaSupport = true;
+    githubSupport = true;
+    mpdSupport = true;
+    pulseSupport  = true;
+    iwSupport = false;
+    nlSupport = true;
+    i3Support = true;
+  };
+
+  yambar = callPackage ../applications/misc/yambar { };
+
+  yambar-hyprland-wses = callPackage ../applications/misc/yambar-hyprland-wses { };
+
+  polyphone = libsForQt5.callPackage ../applications/audio/polyphone { };
+
+  portfolio = callPackage ../applications/office/portfolio {
+    jre = openjdk17;
+  };
+
+  prevo = callPackage ../applications/misc/prevo { };
+  prevo-data = callPackage ../applications/misc/prevo/data.nix { };
+  prevo-tools = callPackage ../applications/misc/prevo/tools.nix { };
+
+  psi-notify = callPackage ../applications/misc/psi-notify { };
+
+  ptex = callPackage ../development/libraries/ptex { };
+
+  pyright = nodePackages.pyright;
+
+  qbec = callPackage ../applications/networking/cluster/qbec { };
+
+  qemacs = callPackage ../applications/editors/qemacs { };
+
+  ragnarwm = callPackage ../applications/window-managers/ragnarwm {};
+
+  rime-cli = callPackage ../applications/office/rime-cli { };
+
+  roxctl = callPackage ../applications/networking/cluster/roxctl {
+  };
+
+  rssguard = libsForQt5.callPackage ../applications/networking/feedreaders/rssguard { };
+
+  scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
+
+  shod = callPackage ../applications/window-managers/shod { };
+
+  shotcut = qt6Packages.callPackage ../applications/video/shotcut { };
+
+  shogun = callPackage ../applications/science/machine-learning/shogun {
+    protobuf = protobuf_21;
+  };
+
+  smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
+
+  smtube = libsForQt5.callPackage ../applications/video/smtube { };
+
+  softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix { };
+
+  songrec = callPackage ../applications/audio/songrec { };
+
+  storj-uplink = callPackage ../applications/networking/sync/storj-uplink {};
+
+  storrent = callPackage ../applications/networking/p2p/storrent { };
+
+  speedread = callPackage ../applications/misc/speedread { };
+
+  station = callPackage ../applications/networking/station { };
+
+  stochas = callPackage ../applications/audio/stochas { };
+
+  synapse = callPackage ../applications/misc/synapse { };
+
+  synapse-bt = callPackage ../applications/networking/p2p/synapse-bt {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
+  synfigstudio = callPackage ../applications/graphics/synfigstudio { };
+
+  typora = callPackage ../applications/editors/typora { };
+
+  taxi = callPackage ../applications/networking/ftp/taxi { };
+
+  taxi-cli = with python3Packages; toPythonApplication taxi;
+
+  tcping-go = callPackage ../applications/networking/tcping-go { };
+
+  librep = callPackage ../development/libraries/librep { };
+
+  rep-gtk = callPackage ../development/libraries/rep-gtk { };
+
+  reproc = callPackage ../development/libraries/reproc { };
+
+  sawfish = callPackage ../applications/window-managers/sawfish { };
+
+  sc68 = callPackage ../applications/audio/sc68 { };
+
+  sidplayfp = callPackage ../applications/audio/sidplayfp { };
+
+  sndpeek = callPackage ../applications/audio/sndpeek { };
+
+  mpop = callPackage ../applications/networking/mpop {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  msmtp = callPackage ../applications/networking/msmtp {
+    inherit (darwin.apple_sdk.frameworks) Security;
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  imapfilter = callPackage ../applications/networking/mailreaders/imapfilter.nix {
+    lua = lua5;
+  };
+
+  maxlib = callPackage ../applications/audio/pd-plugins/maxlib { };
+
+  pdfdiff = callPackage ../applications/misc/pdfdiff { };
+
+  pdfsam-basic = callPackage ../applications/misc/pdfsam-basic {
+    jdk21 = openjdk21.override { enableJavaFX = true; };
+  };
+
+  mupdf = callPackage ../applications/misc/mupdf { };
+  mupdf_1_17 = callPackage ../applications/misc/mupdf/1.17 { };
+
+  muso = callPackage ../applications/audio/muso {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  mystem = callPackage ../applications/misc/mystem { };
+
+  diffpdf = libsForQt5.callPackage ../applications/misc/diffpdf { };
+
+  diff-pdf = callPackage ../applications/misc/diff-pdf {
+    wxGTK = wxGTK32;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  diffuse = callPackage ../applications/misc/diffuse { };
+
+  mlocate = callPackage ../tools/misc/mlocate { };
+
+  mlxbf-bootctl = callPackage ../tools/misc/mlxbf-bootctl { };
+
+  plocate = callPackage ../tools/misc/plocate { };
+
+  mypaint = callPackage ../applications/graphics/mypaint { };
+
+  mypaint-brushes1 = callPackage ../development/libraries/mypaint-brushes/1.0.nix { };
+
+  mypaint-brushes = callPackage ../development/libraries/mypaint-brushes { };
+
+  mythtv = libsForQt5.callPackage ../applications/video/mythtv { };
+
+  micro = callPackage ../applications/editors/micro { };
+
+  mle = callPackage ../applications/editors/mle { };
+
+  namaka = callPackage ../development/tools/misc/namaka { };
+
+  nano = callPackage ../applications/editors/nano { };
+
+  nanoblogger = callPackage ../applications/misc/nanoblogger { };
+
+  nanorc = callPackage ../applications/editors/nano/nanorc { };
+
+  nc4nix = callPackage ../development/tools/nc4nix { };
+
+  netbeans = callPackage ../applications/editors/netbeans {
+    jdk = jdk17;
+  };
+
+  netcoredbg = callPackage ../development/tools/misc/netcoredbg { };
+
+  ncdu = callPackage ../tools/misc/ncdu { };
+
+  ncdu_1 = callPackage ../tools/misc/ncdu/1.nix { };
+
+  ncdc = callPackage ../applications/networking/p2p/ncdc { };
+
+  ncspot = callPackage ../applications/audio/ncspot {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+
+    withALSA = stdenv.isLinux;
+    withPulseAudio = config.pulseaudio or stdenv.isLinux;
+    withPortAudio = stdenv.isDarwin;
+    withMPRIS = stdenv.isLinux;
+  };
+
+  ncview = callPackage ../tools/X11/ncview { } ;
+
+  ne = callPackage ../applications/editors/ne { };
+
+  nedit = callPackage ../applications/editors/nedit { };
+
+  ngt = callPackage ../development/libraries/ngt { };
+
+  nchat = callPackage ../applications/networking/instant-messengers/nchat {
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation;
+  };
+
+  nheko = libsForQt5.callPackage ../applications/networking/instant-messengers/nheko { };
+
+  nomacs = libsForQt5.callPackage ../applications/graphics/nomacs { };
+
+  notepad-next = libsForQt5.callPackage ../applications/editors/notepad-next { };
+
+  notepadqq = libsForQt5.callPackage ../applications/editors/notepadqq { };
+
+  notmuch = callPackage ../applications/networking/mailreaders/notmuch {
+    pythonPackages = python3Packages;
+  };
+
+  notmuch-mailmover = callPackage ../applications/networking/mailreaders/notmuch/notmuch-mailmover.nix { };
+
+  notejot = callPackage ../applications/misc/notejot { };
+
+  notmuch-mutt = callPackage ../applications/networking/mailreaders/notmuch/mutt.nix { };
+
+  muchsync = callPackage ../applications/networking/mailreaders/notmuch/muchsync.nix { };
+
+  nufraw = callPackage ../applications/graphics/nufraw { };
+
+  nufraw-thumbnailer = callPackage ../applications/graphics/nufraw {
+    addThumbnailer = true;
+  };
+
+  notmuch-addrlookup = callPackage ../applications/networking/mailreaders/notmuch-addrlookup { };
+
+  nova-filters = callPackage ../applications/audio/nova-filters { };
+
+  nvi = callPackage ../applications/editors/nvi { };
+
+  nvpy = callPackage ../applications/editors/nvpy { };
+
+  obconf = callPackage ../tools/X11/obconf { };
+
+  gnome-obfuscate = callPackage ../applications/graphics/gnome-obfuscate {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  obs-cli = callPackage ../applications/misc/obs-cli { };
+
+  obs-studio = qt6Packages.callPackage ../applications/video/obs-studio {
+    ffmpeg_4 = ffmpeg-full;
+  };
+
+  obs-studio-plugins = recurseIntoAttrs (callPackage ../applications/video/obs-studio/plugins {});
+  wrapOBS = callPackage ../applications/video/obs-studio/wrapper.nix { };
+
+  obsidian = callPackage ../applications/misc/obsidian {
+    electron = electron_25;
+  };
+
+  octoprint = callPackage ../applications/misc/octoprint { };
+
+  oculante = callPackage ../applications/graphics/oculante { };
+
+  ocr-a = callPackage ../data/fonts/ocr-a { };
+
+  ocrad = callPackage ../applications/graphics/ocrad { };
+
+  offrss = callPackage ../applications/networking/offrss { };
+
+  ogmtools = callPackage ../applications/video/ogmtools { };
+
+  omegat = callPackage ../applications/misc/omegat.nix { };
+
+  omxplayer = callPackage ../applications/video/omxplayer { };
+
+  inherit (python3Packages.callPackage ../applications/networking/onionshare { }) onionshare onionshare-gui;
+
+  openambit = qt5.callPackage ../applications/misc/openambit { };
+
+  openbox = callPackage ../applications/window-managers/openbox { };
+
+  openbox-menu = callPackage ../applications/misc/openbox-menu {
+    stdenv = gccStdenv;
+  };
+
+  openbrf = libsForQt5.callPackage ../applications/misc/openbrf { };
+
+  opencpn = darwin.apple_sdk_11_0.callPackage ../applications/misc/opencpn {
+    inherit (darwin) DarwinTools;
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit;
+  };
+
+  openfx = callPackage ../development/libraries/openfx { };
+
+  openimageio = darwin.apple_sdk_11_0.callPackage ../development/libraries/openimageio { };
+
+  openjump = callPackage ../applications/misc/openjump { };
+
+  open-music-kontrollers = lib.recurseIntoAttrs {
+    eteroj = callPackage ../applications/audio/open-music-kontrollers/eteroj.nix { };
+    jit = callPackage ../applications/audio/open-music-kontrollers/jit.nix { };
+    mephisto = callPackage ../applications/audio/open-music-kontrollers/mephisto.nix { };
+    midi_matrix = callPackage ../applications/audio/open-music-kontrollers/midi_matrix.nix { };
+    moony = callPackage ../applications/audio/open-music-kontrollers/moony.nix { };
+    orbit = callPackage ../applications/audio/open-music-kontrollers/orbit.nix { };
+    patchmatrix = callPackage ../applications/audio/open-music-kontrollers/patchmatrix.nix { };
+    router = callPackage ../applications/audio/open-music-kontrollers/router.nix { };
+    sherlock = callPackage ../applications/audio/open-music-kontrollers/sherlock.nix { };
+    synthpod = callPackage ../applications/audio/open-music-kontrollers/synthpod.nix { };
+    vm = callPackage ../applications/audio/open-music-kontrollers/vm.nix { };
+  };
+
+  openrsync = darwin.apple_sdk_11_0.callPackage ../applications/networking/sync/openrsync { };
+
+  openscad = libsForQt5.callPackage ../applications/graphics/openscad { };
+
+  open-stage-control = callPackage ../applications/audio/open-stage-control { };
+
+  opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client { };
+
+  opentoonz = let
+    opentoonz-libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
+  in qt5.callPackage ../applications/graphics/opentoonz {
+    libtiff = opentoonz-libtiff;
+    opencv = opencv.override { libtiff = opentoonz-libtiff; };
+  };
+
+  opentabletdriver = callPackage ../tools/X11/opentabletdriver { };
+
+  opentx = libsForQt5.callPackage ../applications/misc/opentx { };
+
+  openvi = darwin.apple_sdk_11_0.callPackage ../applications/editors/openvi { };
+
+  opera = callPackage ../applications/networking/browsers/opera { };
+
+  oranda = callPackage ../applications/misc/oranda { };
+
+  orca = python3Packages.callPackage ../applications/misc/orca {
+    inherit pkg-config;
+  };
+
+  orca-c = callPackage ../applications/audio/orca-c { };
+
+  organicmaps = qt6Packages.callPackage ../applications/misc/organicmaps { };
+
+  osm2xmap = callPackage ../applications/misc/osm2xmap { };
+
+  osmctools = callPackage ../applications/misc/osmctools { };
+
+  osmium-tool = callPackage ../applications/misc/osmium-tool { };
+
+  osmtogeojson = callPackage ../applications/misc/osmtogeojson { };
+
+  owamp = callPackage ../applications/networking/owamp { };
+
+  owofetch = callPackage ../tools/misc/owofetch {
+    inherit (darwin.apple_sdk.frameworks) Foundation DiskArbitration;
+  };
+
+  vgmplay-libvgm = callPackage ../applications/audio/vgmplay-libvgm { };
+
+  vgmtools = callPackage ../tools/audio/vgmtools { };
+
+  vital = callPackage ../applications/audio/vital { };
+
+  vivaldi = callPackage ../applications/networking/browsers/vivaldi { };
+
+  vivaldi-ffmpeg-codecs = callPackage ../applications/networking/browsers/vivaldi/ffmpeg-codecs.nix { };
+
+  libopenmpt = callPackage ../development/libraries/audio/libopenmpt { };
+
+  libopenmpt-modplug = callPackage ../development/libraries/audio/libopenmpt-modplug { };
+
+  openrazer-daemon = python3Packages.toPythonApplication python3Packages.openrazer-daemon;
+
+  opusfile = callPackage ../applications/audio/opusfile { };
+
+  opustags = callPackage ../applications/audio/opustags { };
+
+  opusTools = callPackage ../applications/audio/opus-tools { };
+
+  orpie = callPackage ../applications/misc/orpie { };
+
+  osmo = callPackage ../applications/office/osmo { };
+
+  osmo-bsc = callPackage ../servers/osmocom/osmo-bsc { };
+
+  osmo-bts = callPackage ../servers/osmocom/osmo-bts { };
+
+  osmo-ggsn = callPackage ../servers/osmocom/osmo-ggsn { };
+
+  osmo-hlr = callPackage ../servers/osmocom/osmo-hlr { };
+
+  osmo-hnbgw = callPackage ../servers/osmocom/osmo-hnbgw { };
+
+  osmo-hnodeb = callPackage ../servers/osmocom/osmo-hnodeb { };
+
+  osmo-iuh = callPackage ../servers/osmocom/osmo-iuh { };
+
+  osmo-mgw = callPackage ../servers/osmocom/osmo-mgw { };
+
+  osmo-msc = callPackage ../servers/osmocom/osmo-msc { };
+
+  osmo-pcu = callPackage ../servers/osmocom/osmo-pcu { };
+
+  osmo-sgsn = callPackage ../servers/osmocom/osmo-sgsn { };
+
+  osmo-sip-connector = callPackage ../servers/osmocom/osmo-sip-connector { };
+
+  osmscout-server = libsForQt5.callPackage ../applications/misc/osmscout-server {
+    protobuf = protobuf_21.override {
+      abseil-cpp = abseil-cpp_202103.override {
+        cxxStandard = "17";
+      };
+    };
+  };
+
+  palemoon-bin = callPackage ../applications/networking/browsers/palemoon/bin.nix { };
+
+  paleta = callPackage ../applications/graphics/paleta { };
+
+  pamix = callPackage ../applications/audio/pamix { };
+
+  pamixer = callPackage ../applications/audio/pamixer { };
+
+  ncpamixer = callPackage ../applications/audio/ncpamixer { };
+
+  pan = callPackage ../applications/networking/newsreaders/pan { };
+
+  panotools = callPackage ../applications/graphics/panotools { };
+
+  paprefs = callPackage ../applications/audio/paprefs { };
+
+  pantalaimon = python3Packages.callPackage ../applications/networking/instant-messengers/pantalaimon { };
+
+  pantalaimon-headless = python3Packages.callPackage ../applications/networking/instant-messengers/pantalaimon {
+    enableDbusUi = false;
+  };
+
+  parsec-bin = callPackage ../applications/misc/parsec/bin.nix {
+    ffmpeg = ffmpeg_4;
+  };
+
+  pavucontrol = callPackage ../applications/audio/pavucontrol { };
+
+  paraview = libsForQt5.callPackage ../applications/graphics/paraview { };
+
+  parlatype = callPackage ../applications/audio/parlatype { };
+
+  packet = callPackage ../development/tools/packet { };
+
+  packet-sd = callPackage ../development/tools/packet-sd { };
+
+  metal-cli = callPackage ../development/tools/metal-cli { };
+
+  pb = callPackage ../tools/misc/pb { };
+
+  pb_cli = callPackage ../tools/misc/pb_cli { };
+
+  capture = callPackage ../tools/misc/capture { };
+
+  pbrt = callPackage ../applications/graphics/pbrt { };
+
+  pcloud = callPackage ../applications/networking/pcloud { };
+
+  jpsxdec = callPackage ../tools/games/jpsxdec {
+    jdk = openjdk8;
+  };
+
+  pdfslicer = callPackage ../applications/misc/pdfslicer { };
+
+  pekwm = callPackage ../by-name/pe/pekwm/package.nix {
+    awk = gawk;
+    grep = gnugrep;
+    sed = gnused;
+  };
+
+  pencil = callPackage ../applications/graphics/pencil {
+  };
+
+  pentestgpt = callPackage ../tools/security/pentestgpt { };
+
+  perseus = callPackage ../applications/science/math/perseus { };
+
+  petrifoo = callPackage ../applications/audio/petrifoo {
+    inherit (gnome2) libgnomecanvas;
+  };
+
+  pdfchain = callPackage ../tools/typesetting/pdfchain { };
+
+  pdfcpu = callPackage ../applications/graphics/pdfcpu { };
+  pdftk = callPackage ../tools/typesetting/pdftk { };
+  pdfgrep  = callPackage ../tools/typesetting/pdfgrep { };
+
+  pdfpc = callPackage ../applications/misc/pdfpc {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-libav;
+  };
+
+  peaclock = callPackage ../applications/misc/peaclock {
+    stdenv = gccStdenv;
+  };
+
+  peazip = libsForQt5.callPackage ../tools/archivers/peazip { };
+
+  peek = callPackage ../applications/video/peek { };
+
+  peertube = callPackage ../servers/peertube {
+    nodejs = nodejs_18;
+  };
+
+  peroxide = callPackage ../applications/networking/peroxide { };
+
+  pflask = callPackage ../os-specific/linux/pflask { };
+
+  pfsshell = callPackage ../tools/misc/pfsshell { };
+
+  phantomsocks = callPackage ../tools/networking/phantomsocks { };
+
+  photoqt = libsForQt5.callPackage ../applications/graphics/photoqt { };
+
+  photoflare = libsForQt5.callPackage ../applications/graphics/photoflare { };
+
+  phototonic = libsForQt5.callPackage ../applications/graphics/phototonic { };
+
+  phrasendrescher = callPackage ../tools/security/phrasendrescher { };
+
+  phrase-cli = callPackage ../tools/misc/phrase-cli { };
+
+  phylactery = callPackage ../servers/web-apps/phylactery { };
+
+  pianobar = callPackage ../applications/audio/pianobar { };
+
+  pianobooster = qt5.callPackage ../applications/audio/pianobooster { };
+
+  pianoteq = callPackage ../applications/audio/pianoteq { };
+
+  picard = callPackage ../applications/audio/picard { };
+
+  picocom = callPackage ../tools/misc/picocom {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  picoloop = callPackage ../applications/audio/picoloop { };
+
+  picosnitch = callPackage ../tools/networking/picosnitch { };
+
+  pidginPackages =
+    let pidgin-plugins =
+          recurseIntoAttrs (callPackage ../applications/networking/instant-messengers/pidgin/pidgin-plugins { });
+    in pidgin-plugins // { pidginPackages = pidgin-plugins.pidginPackages // { __attrsFailEvaluation = true; }; };
+
+  inherit (pidginPackages) pidgin;
+
+  pika-backup = callPackage ../applications/backup/pika-backup { };
+
+  pur = callPackage ../development/tools/pur { };
+
+  purpur = callPackage ../games/purpur { };
+
+  pikopixel = callPackage ../applications/graphics/pikopixel { };
+
+  pithos = callPackage ../applications/audio/pithos {
+    pythonPackages = python3Packages;
+  };
+
+  pineapple-pictures = qt6Packages.callPackage ../applications/graphics/pineapple-pictures { };
+
+  pinfo = callPackage ../applications/misc/pinfo { };
+
+  pinpoint = callPackage ../applications/office/pinpoint { };
+
+  pinta = callPackage ../applications/graphics/pinta { };
+
+  pistol = callPackage ../tools/misc/pistol { };
+
+  piston-cli = callPackage ../tools/misc/piston-cli { };
+
+  pizarra = callPackage ../applications/graphics/pizarra { };
+
+  plater = libsForQt5.callPackage ../applications/misc/plater { };
+
+  plexamp = callPackage ../applications/audio/plexamp { };
+
+  plex-media-player = libsForQt5.callPackage ../applications/video/plex-media-player { };
+
+  plex-mpv-shim = python3Packages.callPackage ../applications/video/plex-mpv-shim { };
+
+  plover = recurseIntoAttrs (libsForQt5.callPackage ../applications/misc/plover { });
+
+  plugin-torture = callPackage ../applications/audio/plugin-torture { };
+
+  poke = callPackage ../applications/editors/poke { };
+
+  pokefinder = qt6Packages.callPackage ../tools/games/pokefinder { };
+
+  pokemonsay = callPackage ../tools/misc/pokemonsay { };
+
+  polar-bookshelf = callPackage ../applications/misc/polar-bookshelf { };
+
+  polar-bookshelf1 = callPackage ../applications/misc/polar-bookshelf1 { };
+
+  poezio = callPackage ../applications/networking/instant-messengers/poezio { };
+
+  pommed_light = callPackage ../os-specific/linux/pommed-light { };
+
+  polylith = callPackage ../development/tools/misc/polylith { };
+
+  polymake = callPackage ../applications/science/math/polymake { };
+
+  pomodoro = callPackage ../applications/misc/pomodoro {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  ponymix = callPackage ../applications/audio/ponymix { };
+
+  pop-launcher = callPackage ../applications/misc/pop-launcher { };
+
+  popcorntime = callPackage ../applications/video/popcorntime { };
+
+  pot = callPackage ../applications/misc/pot { };
+
+  pothos = libsForQt5.callPackage ../applications/radio/pothos { };
+
+  potrace = callPackage ../applications/graphics/potrace { };
+
+  posterazor = callPackage ../applications/misc/posterazor { };
+
+  pqiv = callPackage ../applications/graphics/pqiv { };
+
+  qiv = callPackage ../applications/graphics/qiv {
+    imlib2 = imlib2Full;
+  };
+
+  premid = callPackage ../applications/misc/premid { };
+
+  process-cpp = callPackage ../development/libraries/process-cpp { };
+
+  processing = callPackage ../applications/graphics/processing {
+    jdk = jdk17;
+  };
+
+  # perhaps there are better apps for this task? It's how I had configured my preivous system.
+  # And I don't want to rewrite all rules
+  procmail = callPackage ../applications/misc/procmail { };
+
+  profanity = callPackage ../applications/networking/instant-messengers/profanity ({
+  } // (config.profanity or {}));
+
+  properties-cpp = callPackage ../development/libraries/properties-cpp { };
+
+  proteus = callPackage ../applications/audio/proteus { };
+
+  protonmail-bridge = callPackage ../applications/networking/protonmail-bridge { };
+
+  protonvpn-cli = python3Packages.callPackage ../applications/networking/protonvpn-cli { };
+  protonvpn-cli_2 = python3Packages.callPackage ../applications/networking/protonvpn-cli/2.nix { };
+
+  protonvpn-gui = python3Packages.callPackage ../applications/networking/protonvpn-gui { };
+  protonvpn-gui_legacy = python3Packages.callPackage ../applications/networking/protonvpn-gui/legacy.nix { };
+
+  ps2client = callPackage ../applications/networking/ps2client { };
+
+  ps2eps = callPackage ../tools/typesetting/ps2eps { };
+
+  psi = libsForQt5.callPackage ../applications/networking/instant-messengers/psi { };
+
+  psi-plus = libsForQt5.callPackage ../applications/networking/instant-messengers/psi-plus { };
+
+  psol = callPackage ../development/libraries/psol { };
+
+  pstree = callPackage ../applications/misc/pstree { };
+
+  pt2-clone = callPackage ../applications/audio/pt2-clone { };
+
+  ptask = callPackage ../applications/misc/ptask { };
+
+  pulseaudio-ctl = callPackage ../applications/audio/pulseaudio-ctl { };
+
+  pulseaudio-dlna = callPackage ../applications/audio/pulseaudio-dlna { };
+
+  pulseview = libsForQt5.callPackage ../applications/science/electronics/pulseview { };
+
+  puredata = callPackage ../applications/audio/puredata { };
+  puredata-with-plugins = plugins: callPackage ../applications/audio/puredata/wrapper.nix { inherit plugins; };
+
+  puremapping = callPackage ../applications/audio/pd-plugins/puremapping { };
+
+  pure-maps = libsForQt5.callPackage ../applications/misc/pure-maps { };
+
+  pwdsafety = callPackage ../tools/security/pwdsafety { };
+
+  pwvucontrol = callPackage ../applications/audio/pwvucontrol { };
+
+  pyload-ng = callPackage ../applications/networking/pyload-ng {};
+
+  pyrosimple = callPackage ../applications/networking/p2p/pyrosimple { };
+
+  qbittorrent = qt6Packages.callPackage ../applications/networking/p2p/qbittorrent {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+  qbittorrent-nox = qbittorrent.override { guiSupport = false; };
+  qbittorrent-qt5 = libsForQt5.callPackage ../applications/networking/p2p/qbittorrent {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  qcad = libsForQt5.callPackage ../applications/misc/qcad { };
+
+  qcomicbook = libsForQt5.callPackage ../applications/graphics/qcomicbook { };
+
+  qelectrotech = libsForQt5.callPackage ../applications/misc/qelectrotech { };
+
+  eiskaltdcpp = libsForQt5.callPackage ../applications/networking/p2p/eiskaltdcpp { };
+
+  qdirstat = libsForQt5.callPackage ../applications/misc/qdirstat { };
+
+  qemu = callPackage ../applications/virtualization/qemu {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa Hypervisor vmnet;
+    inherit (darwin.stubs) rez setfile;
+    inherit (darwin) sigtool;
+  };
+
+  qemu-utils = qemu.override {
+    toolsOnly = true;
+  };
+
+  canokey-qemu = callPackage ../applications/virtualization/qemu/canokey-qemu.nix { };
+
+  wrapQemuBinfmtP = callPackage ../applications/virtualization/qemu/binfmt-p-wrapper.nix { };
+
+  qgroundcontrol = libsForQt5.callPackage ../applications/science/robotics/qgroundcontrol { };
+
+  qjackctl = libsForQt5.callPackage ../applications/audio/qjackctl { };
+
+  qimgv = libsForQt5.callPackage ../applications/graphics/qimgv { };
+
+  qmediathekview = libsForQt5.callPackage ../applications/video/qmediathekview { };
+
+  qmplay2 = libsForQt5.callPackage ../applications/video/qmplay2 { };
+
+  qmidiarp = callPackage ../applications/audio/qmidiarp { };
+
+  qmidinet = libsForQt5.callPackage ../applications/audio/qmidinet { };
+
+  qmmp = qt6Packages.callPackage ../applications/audio/qmmp { };
+
+  qnotero = libsForQt5.callPackage ../applications/office/qnotero { };
+
+  qpwgraph = qt6Packages.callPackage ../applications/audio/qpwgraph { };
+
+  qrcode = callPackage ../tools/graphics/qrcode { };
+
+  qsampler = libsForQt5.callPackage ../applications/audio/qsampler { };
+
+  qscreenshot = libsForQt5.callPackage ../applications/graphics/qscreenshot { };
+
+  qsstv = qt5.callPackage ../applications/radio/qsstv { };
+
+  qsyncthingtray = libsForQt5.callPackage ../applications/misc/qsyncthingtray { };
+
+  qstopmotion = libsForQt5.callPackage ../applications/video/qstopmotion {
+    guvcview = guvcview.override {
+      useQt = true;
+      useGtk = false;
+    };
+  };
+
+  qsudo = libsForQt5.callPackage ../applications/misc/qsudo { };
+
+  qsynth = libsForQt5.callPackage ../applications/audio/qsynth { };
+
+  qtbitcointrader = libsForQt5.callPackage ../applications/misc/qtbitcointrader { };
+
+  qtchan = libsForQt5.callPackage ../applications/networking/browsers/qtchan { };
+
+  qtemu = libsForQt5.callPackage ../applications/virtualization/qtemu { };
+
+  qtox = libsForQt5.callPackage ../applications/networking/instant-messengers/qtox {
+    inherit (darwin.apple_sdk.frameworks) AVFoundation;
+  };
+
+  qtpass = libsForQt5.callPackage ../applications/misc/qtpass { };
+
+  qtractor = libsForQt5.callPackage ../applications/audio/qtractor { };
+
+  quantomatic = callPackage ../applications/science/physics/quantomatic { };
+
+  quassel = libsForQt5.callPackage ../applications/networking/irc/quassel {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
+
+  quasselClient = quassel.override {
+    monolithic = false;
+    client = true;
+    tag = "-client-kf5";
+  };
+
+  quasselDaemon = quassel.override {
+    monolithic = false;
+    enableDaemon = true;
+    withKDE = false;
+    tag = "-daemon-qt5";
+  };
+
+  quill-qr = callPackage ../tools/security/quill-qr { };
+
+  quirc = callPackage ../tools/graphics/quirc { };
+
+  quisk = callPackage ../applications/radio/quisk { };
+
+  quiterss = libsForQt5.callPackage ../applications/networking/newsreaders/quiterss { };
+
+  quodlibet = callPackage ../applications/audio/quodlibet {
+    inherit (gnome) adwaita-icon-theme;
+    kakasi = null;
+    keybinder3 = null;
+    libappindicator-gtk3 = null;
+    libmodplug = null;
+    libsoup = libsoup_3;
+  };
+
+  quodlibet-without-gst-plugins = quodlibet.override {
+    libsoup = libsoup_3;
+    tag = "-without-gst-plugins";
+    withGstPlugins = false;
+  };
+
+  quodlibet-xine = quodlibet.override {
+    libsoup = libsoup_3;
+    tag = "-xine";
+    withGstreamerBackend = false;
+    withXineBackend = true;
+  };
+
+  quodlibet-full = quodlibet.override {
+    inherit gtksourceview webkitgtk;
+    kakasi = kakasi;
+    keybinder3 = keybinder3;
+    libappindicator-gtk3 = libappindicator-gtk3;
+    libmodplug = libmodplug;
+    libsoup = libsoup_3;
+    tag = "-full";
+    withDbusPython = true;
+    withMusicBrainzNgs = true;
+    withPahoMqtt = true;
+    withPyInotify = true;
+    withPypresence = true;
+    withSoco = true;
+  };
+
+  quodlibet-xine-full = quodlibet-full.override {
+    libsoup = libsoup_3;
+    tag = "-xine-full";
+    withGstreamerBackend = false;
+    withXineBackend = true;
+  };
+
+  qutebrowser = callPackage ../applications/networking/browsers/qutebrowser {
+    inherit (__splicedPackages.qt6Packages) qtbase qtwebengine wrapQtAppsHook qtwayland;
+  };
+
+  qutebrowser-qt5 = callPackage ../applications/networking/browsers/qutebrowser {
+    inherit (__splicedPackages.libsForQt5) qtbase qtwebengine wrapQtAppsHook qtwayland;
+  };
+
+  qxw = callPackage ../applications/editors/qxw { };
+
+  rabbitvcs = callPackage ../applications/version-management/rabbitvcs { };
+
+  rakarrack = callPackage ../applications/audio/rakarrack {
+    fltk = fltk13;
+  };
+
+  renoise = callPackage ../applications/audio/renoise { };
+
+  redux = callPackage ../applications/audio/redux { };
+
+  roomeqwizard = callPackage ../applications/audio/roomeqwizard { };
+
+  radioboat = callPackage ../applications/audio/radioboat { };
+
+  radiotray-ng = callPackage ../applications/audio/radiotray-ng {
+    wxGTK = wxGTK32;
+  };
+
+  raiseorlaunch = callPackage ../applications/misc/raiseorlaunch { };
+
+  rapid-photo-downloader = libsForQt5.callPackage ../applications/graphics/rapid-photo-downloader { };
+
+  rapidsvn = callPackage ../applications/version-management/rapidsvn { };
+
+  ratmen = callPackage ../tools/X11/ratmen { };
+
+  ratox = callPackage ../applications/networking/instant-messengers/ratox { };
+
+  rawtherapee = callPackage ../applications/graphics/rawtherapee {
+    fftw = fftwSinglePrec;
+  };
+
+  rclone = callPackage ../applications/networking/sync/rclone { };
+
+  rclone-browser = libsForQt5.callPackage ../applications/networking/sync/rclone/browser.nix { };
+
+  rcs = callPackage ../applications/version-management/rcs { };
+
+  rcshist = callPackage ../applications/version-management/rcshist { };
+
+  rdesktop = callPackage ../applications/networking/remote/rdesktop { };
+
+  rdedup = callPackage ../tools/backup/rdedup {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rdup = callPackage ../tools/backup/rdup { };
+
+  reaper = callPackage ../applications/audio/reaper {
+    jackLibrary = libjack2; # Another option is "pipewire.jack".
+    ffmpeg = ffmpeg_4-headless;
+  };
+
+  recapp = callPackage ../applications/video/recapp { };
+
+  recode = callPackage ../tools/text/recode { };
+
+  reddsaver = callPackage ../applications/misc/reddsaver {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rednotebook = python3Packages.callPackage ../applications/editors/rednotebook { };
+
+  remnote = callPackage ../applications/misc/remnote { };
+
+  remotebox = callPackage ../applications/virtualization/remotebox { };
+
+  restique = libsForQt5.callPackage ../applications/backup/restique { };
+
+  retroshare = libsForQt5.callPackage ../applications/networking/p2p/retroshare { };
+
+  revanced-cli = callPackage ../applications/misc/revanced-cli { };
+
+  rgp = libsForQt5.callPackage ../development/tools/rgp { };
+
+  ricochet = libsForQt5.callPackage ../applications/networking/instant-messengers/ricochet {
+    protobuf = protobuf_21;
+  };
+
+  ries = callPackage ../applications/science/math/ries { };
+
+  ripcord = if stdenv.isLinux then
+    qt5.callPackage ../applications/networking/instant-messengers/ripcord { }
+  else
+    callPackage ../applications/networking/instant-messengers/ripcord/darwin.nix { };
+
+  ripser = callPackage ../applications/science/math/ripser { };
+
+  rkdeveloptool = callPackage ../misc/rkdeveloptool { };
+
+  rkdeveloptool-pine64 = callPackage ../misc/rkdeveloptool-pine64 { };
+
+  rke = callPackage ../applications/networking/cluster/rke { };
+
+  rke2 = callPackage ../applications/networking/cluster/rke2 { };
+
+  rocketchat-desktop = callPackage ../applications/networking/instant-messengers/rocketchat-desktop { };
+
+  rofi-unwrapped = callPackage ../applications/misc/rofi { };
+  rofi = callPackage ../applications/misc/rofi/wrapper.nix { };
+  rofi-wayland-unwrapped = callPackage ../applications/misc/rofi/wayland.nix { };
+  rofi-wayland = callPackage ../applications/misc/rofi/wrapper.nix {
+    rofi-unwrapped = rofi-wayland-unwrapped;
+  };
+
+  rofi-pass = callPackage ../tools/security/pass/rofi-pass.nix { };
+  rofi-pass-wayland = callPackage ../tools/security/pass/rofi-pass.nix {
+    backend = "wayland";
+  };
+
+  rofi-menugen = callPackage ../applications/misc/rofi-menugen { };
+
+  rofi-systemd = callPackage ../tools/system/rofi-systemd { };
+
+  rofimoji = callPackage ../applications/misc/rofimoji {
+    inherit (python3Packages) buildPythonApplication configargparse;
+  };
+
+  rootlesskit = callPackage ../tools/virtualization/rootlesskit { };
+
+  rsclock = callPackage ../applications/misc/rsclock { };
+
+  rstudio = libsForQt5.callPackage ../applications/editors/rstudio {
+    jdk = jdk8;
+  };
+
+  rstudio-server = rstudio.override { server = true; };
+
+  rsync = callPackage ../applications/networking/sync/rsync (config.rsync or {});
+  rrsync = callPackage ../applications/networking/sync/rsync/rrsync.nix { };
+
+  rtfm = callPackage ../applications/misc/rtfm { };
+
+  rtl_433 = callPackage ../applications/radio/rtl_433 { };
+
+  rtl-ais = callPackage ../applications/radio/rtl-ais { };
+
+  rtl-sdr = callPackage ../applications/radio/rtl-sdr { };
+
+  rubyripper = callPackage ../applications/audio/rubyripper { };
+
+  rucredstash = callPackage ../tools/security/rucredstash {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  runc = callPackage ../applications/virtualization/runc { };
+
+  rust-traverse = callPackage ../applications/misc/rust-traverse { };
+
+  rusty-psn = callPackage ../applications/misc/rusty-psn { };
+
+  rusty-psn-gui = rusty-psn.override { withGui = true; };
+
+  rymcast = callPackage ../applications/audio/rymcast {
+    inherit (gnome) zenity;
+  };
+
+  rymdport = callPackage ../applications/networking/rymdport {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
+  uade = callPackage ../applications/audio/uade { };
+
+  udevil = callPackage ../applications/misc/udevil { };
+
+  udiskie = callPackage ../applications/misc/udiskie { };
+
+  sacc = callPackage ../applications/networking/gopher/sacc { };
+
+  savvycan = libsForQt5.callPackage ../applications/networking/sniffers/savvycan {};
+
+  sayonara = libsForQt5.callPackage ../applications/audio/sayonara { };
+
+  sbagen = callPackage ../applications/misc/sbagen { };
+
+  scantailor-advanced = libsForQt5.callPackage ../applications/graphics/scantailor/advanced.nix { };
+
+  scantailor-universal = libsForQt5.callPackage ../applications/graphics/scantailor/universal.nix { };
+
+  sc-im = callPackage ../applications/misc/sc-im { };
+
+  scite = callPackage ../applications/editors/scite { };
+
+  scli = callPackage ../applications/misc/scli { };
+
+  scribus_1_5 = libsForQt5.callPackage ../applications/office/scribus/default.nix { };
+  scribus = scribus_1_5;
+
+  seafile-client = libsForQt5.callPackage ../applications/networking/seafile-client { };
+
+  seahub = callPackage ../applications/networking/seahub { };
+
+  seatd = callPackage ../applications/misc/seatd { };
+
+  secrets-extractor = callPackage ../tools/security/secrets-extractor { };
+
+  secretscanner = callPackage ../tools/security/secretscanner { };
+
+  setconf = python3.pkgs.callPackage ../tools/misc/setconf { };
+
+  semiphemeral = callPackage ../tools/misc/semiphemeral { };
+
+  semver = callPackage ../applications/misc/semver { };
+
+  sent = callPackage ../applications/misc/sent { };
+
+  seq24 = callPackage ../applications/audio/seq24 { };
+
+  seq66 = qt5.callPackage ../applications/audio/seq66 { };
+
+  setbfree = callPackage ../applications/audio/setbfree { };
+
+  sfizz = callPackage ../applications/audio/sfizz { };
+
+  sfxr = callPackage ../applications/audio/sfxr { };
+
+  sfxr-qt = libsForQt5.callPackage ../applications/audio/sfxr-qt { };
+
+  shadowfox = callPackage ../tools/networking/shadowfox { };
+
+  shavee = callPackage ../applications/misc/shavee { };
+
+  shell_gpt = callPackage ../tools/llm/shell_gpt { };
+
+  shfmt = callPackage ../tools/text/shfmt { };
+
+  shipments = callPackage ../applications/misc/shipments { };
+
+  shortwave = callPackage ../applications/audio/shortwave { };
+
+  shotgun = callPackage ../tools/graphics/shotgun { };
+
+  shot-scraper = callPackage ../tools/graphics/shot-scraper { };
+
+  shutter = callPackage ../applications/graphics/shutter { };
+
+  sic-image-cli = callPackage ../tools/graphics/sic-image-cli { };
+
+  simple-scan = gnome.simple-scan;
+
+  sioyek = libsForQt5.callPackage ../applications/misc/sioyek { };
+
+  siproxd = callPackage ../applications/networking/siproxd { };
+
+  sish = callPackage ../tools/networking/sish { };
+
+  sky = libsForQt5.callPackage ../applications/networking/instant-messengers/sky {
+    libjpeg_turbo = libjpeg8;
+  };
+
+  skypeforlinux = callPackage ../applications/networking/instant-messengers/skypeforlinux { };
+
+  SkypeExport = callPackage ../applications/networking/instant-messengers/SkypeExport { };
+
+  slingshot = callPackage ../tools/misc/slingshot { };
+
+  slop = callPackage ../tools/misc/slop { };
+
+  slowhttptest = callPackage ../tools/security/slowhttptest { };
+
+  slrn = callPackage ../applications/networking/newsreaders/slrn { };
+
+  smartcrop = callPackage ../tools/graphics/smartcrop { };
+
+  sniffnet = callPackage ../applications/networking/sniffnet { };
+
+  sniproxy = callPackage ../applications/networking/sniproxy { };
+
+  snixembed = callPackage ../applications/misc/snixembed { };
+
+  sommelier = callPackage ../applications/window-managers/sommelier { };
+
+  sooperlooper = callPackage ../applications/audio/sooperlooper { };
+
+  sops = callPackage ../tools/security/sops { };
+
+  sorcer = callPackage ../applications/audio/sorcer { };
+
+  sound-juicer = callPackage ../applications/audio/sound-juicer { };
+
+  soundtracker = callPackage ../applications/audio/soundtracker { };
+
+  spice-vdagent = callPackage ../applications/virtualization/spice-vdagent { };
+
+  spike = callPackage ../applications/virtualization/spike { };
+
+  tensorman = callPackage ../tools/misc/tensorman { };
+
+  spideroak = callPackage ../applications/networking/spideroak { };
+
+  spotify-qt = libsForQt5.callPackage ../applications/audio/spotify-qt { };
+
+  spotify-tray = callPackage ../applications/misc/spotify-tray { };
+
+  spotify-tui = callPackage ../applications/audio/spotify-tui {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security;
+  };
+
+  sptlrx = callPackage ../applications/audio/sptlrx { };
+
+  sptk = callPackage ../development/libraries/sptk { };
+
+  squishyball = callPackage ../applications/audio/squishyball {
+    ncurses = ncurses5;
+  };
+
+  stw = callPackage ../applications/misc/stw { };
+
+  styx = callPackage ../applications/misc/styx { };
+
+  sway-launcher-desktop = callPackage ../applications/misc/sway-launcher-desktop { };
+
+  tart = callPackage ../applications/virtualization/tart { };
+
+  viber = callPackage ../applications/networking/instant-messengers/viber { };
+
+  wavebox = libsForQt5.callPackage ../applications/networking/instant-messengers/wavebox { };
+
+  sonic-pi = libsForQt5.callPackage ../applications/audio/sonic-pi {
+    elixir = elixir_1_14;
+    beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_14; });
+  };
+
+  stag = callPackage ../applications/misc/stag {
+    curses = ncurses;
+  };
+
+  linuxstopmotion = libsForQt5.callPackage ../applications/video/linuxstopmotion { };
+
+  sweethome3d = recurseIntoAttrs (
+    (callPackage ../applications/misc/sweethome3d { }) //
+    (callPackage ../applications/misc/sweethome3d/editors.nix {
+      sweethome3dApp = sweethome3d.application;
+    })
+  );
+
+  swingsane = callPackage ../applications/graphics/swingsane { };
+
+  sxiv = callPackage ../applications/graphics/sxiv {
+    imlib2 = imlib2Full;
+  };
+
+  nsxiv = callPackage ../by-name/ns/nsxiv/package.nix {
+    imlib2 = imlib2Full;
+  };
+
+  resilio-sync = callPackage ../applications/networking/resilio-sync { };
+
+  dropbox = callPackage ../applications/networking/dropbox { };
+
+  dropbox-cli = callPackage ../applications/networking/dropbox/cli.nix { };
+
+  synology-drive-client = callPackage ../applications/networking/synology-drive-client { };
+
+  synology-cloud-sync-decryption-tool = callPackage ../applications/networking/synology-cloud-sync-decryption-tool { };
+
+  litemdview = callPackage ../applications/graphics/litemdview { };
+
+  maestral = with python3Packages; toPythonApplication maestral;
+
+  maestral-gui = qt6.callPackage ../applications/networking/maestral-qt { };
+
+  maestro = callPackage ../development/mobile/maestro { };
+
+  myfitnesspal = with python3Packages; toPythonApplication myfitnesspal;
+
+  insync = callPackage ../applications/networking/insync { };
+
+  lemurs = callPackage ../applications/display-managers/lemurs { };
+
+  libstrangle = callPackage ../tools/X11/libstrangle {
+    stdenv = stdenv_32bit;
+  };
+
+  lightdm = libsForQt5.callPackage ../applications/display-managers/lightdm { };
+
+  lightdm_qt = lightdm.override { withQt5 = true; };
+
+  lightdm-enso-os-greeter = callPackage ../applications/display-managers/lightdm-enso-os-greeter { };
+
+  lightdm-gtk-greeter = callPackage ../applications/display-managers/lightdm/gtk-greeter.nix {
+    inherit (xfce) xfce4-dev-tools;
+  };
+
+  lightdm-slick-greeter = callPackage ../applications/display-managers/lightdm-slick-greeter { };
+
+  lightdm-mini-greeter = callPackage ../applications/display-managers/lightdm-mini-greeter { };
+
+  lightdm-mobile-greeter = callPackage ../applications/display-managers/lightdm-mobile-greeter { };
+
+  lightdm-tiny-greeter = callPackage ../applications/display-managers/lightdm-tiny-greeter { };
+
+  ly = callPackage ../applications/display-managers/ly { };
+
+  slic3r = callPackage ../applications/misc/slic3r { };
+
+  curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
+
+  curaengine = callPackage ../applications/misc/curaengine {
+    inherit (python3.pkgs) libarcus;
+    protobuf = protobuf_21;
+  };
+
+  cura = libsForQt5.callPackage ../applications/misc/cura { };
+
+  curaPlugins = callPackage ../applications/misc/cura/plugins.nix { };
+
+  peru = callPackage ../applications/version-management/peru { };
+
+  petrinizer = haskellPackages.callPackage ../applications/science/logic/petrinizer { };
+
+  pmidi = callPackage ../applications/audio/pmidi { };
+
+  printrun = callPackage ../applications/misc/printrun { };
+
+  prusa-slicer = darwin.apple_sdk_11_0.callPackage ../applications/misc/prusa-slicer { };
+
+  super-slicer = darwin.apple_sdk_11_0.callPackage ../applications/misc/prusa-slicer/super-slicer.nix { };
+
+  super-slicer-beta = super-slicer.beta;
+
+  super-slicer-latest = super-slicer.latest;
+
+  bambu-studio = callPackage ../applications/misc/bambu-studio {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-bad;
+
+    glew = glew-egl;
+
+    wxGTK31 = wxGTK31.override {
+      withCurl = true;
+      withPrivateFonts = true;
+      withWebKit = true;
+    };
+  };
+
+  snapmaker-luban = callPackage ../applications/misc/snapmaker-luban { };
+
+  robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { };
+
+  routedns = callPackage ../tools/networking/routedns { };
+
+  skrooge = libsForQt5.callPackage ../applications/office/skrooge { };
+
+  smartgithg = callPackage ../applications/version-management/smartgithg { };
+
+  smartdeblur = libsForQt5.callPackage ../applications/graphics/smartdeblur { };
+
+  snapper = callPackage ../tools/misc/snapper { };
+  snapper-gui = callPackage ../applications/misc/snapper-gui { };
+
+  snd = darwin.apple_sdk_11_0.callPackage ../applications/audio/snd {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices CoreMIDI;
+  };
+
+  sharpsat-td = callPackage ../applications/science/logic/sharpsat-td { };
+
+  shntool = callPackage ../applications/audio/shntool { };
+
+  sipp = callPackage ../development/tools/misc/sipp { };
+
+  soci = callPackage ../development/libraries/soci { };
+
+  socialscan = with python3.pkgs; toPythonApplication socialscan;
+
+  sonic-lineup = libsForQt5.callPackage ../applications/audio/sonic-lineup { };
+
+  sonic-visualiser = libsForQt5.callPackage ../applications/audio/sonic-visualiser { };
+
+  soulseekqt = libsForQt5.callPackage ../applications/networking/p2p/soulseekqt { };
+
+  soundsource = callPackage ../applications/audio/soundsource { };
+
+  sox = callPackage ../applications/misc/audio/sox {
+    inherit (darwin.apple_sdk.frameworks) CoreAudio;
+  };
+
+  soxr = callPackage ../applications/misc/audio/soxr { };
+
+  spek = callPackage ../applications/audio/spek {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  spotify = callPackage ../applications/audio/spotify { };
+
+  spotify-player = callPackage ../applications/audio/spotify-player { };
+
+  spotifywm = callPackage ../applications/audio/spotifywm { };
+
+  psst = callPackage ../applications/audio/psst { };
+
+  squeezelite = darwin.apple_sdk_11_0.callPackage ../applications/audio/squeezelite {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon;
+  };
+
+  squeezelite-pulse = darwin.apple_sdk_11_0.callPackage ../applications/audio/squeezelite {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon;
+
+    audioBackend = "pulse";
+  };
+
+  ltunify = callPackage ../tools/misc/ltunify { };
+
+  src = callPackage ../applications/version-management/src {
+    git = gitMinimal;
+    python = python3;
+  };
+
+  ssrc = callPackage ../applications/audio/ssrc { };
+
+  stalonetray = callPackage ../applications/window-managers/stalonetray { };
+
+  inherit (ocaml-ng.ocamlPackages_4_12) stog;
+
+  stp = callPackage ../applications/science/logic/stp { };
+
+  stretchly = callPackage ../applications/misc/stretchly { };
+
+  stuffbin = callPackage ../tools/filesystems/stuffbin { };
+
+  stumpish = callPackage ../applications/window-managers/stumpish { };
+
+  stumpwm = sbclPackages.stumpwm;
+
+  stumpwm-unwrapped = sbclPackages.stumpwm-unwrapped;
+
+  sublime = callPackage ../applications/editors/sublime/2 { };
+
+  sublime3Packages = recurseIntoAttrs (callPackage ../applications/editors/sublime/3/packages.nix { });
+
+  sublime3 = sublime3Packages.sublime3;
+
+  sublime3-dev = sublime3Packages.sublime3-dev;
+
+  inherit (recurseIntoAttrs (callPackage ../applications/editors/sublime/4/packages.nix { }))
+    sublime4
+    sublime4-dev;
+
+  inherit (callPackage ../applications/version-management/sublime-merge {})
+    sublime-merge
+    sublime-merge-dev;
+
+  inherit (callPackages ../applications/version-management/subversion {
+    sasl = cyrus_sasl;
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  }) subversion;
+
+  subversionClient = subversion.override {
+    bdbSupport = false;
+    perlBindings = true;
+    pythonBindings = true;
+  };
+
+  sublime-music = callPackage ../applications/audio/sublime-music { };
+
+  subtitlr = callPackage ../applications/audio/subtitlr { };
+
+  subunit = callPackage ../development/libraries/subunit { };
+
+  surf = callPackage ../applications/networking/browsers/surf { gtk = gtk2; };
+
+  surge = callPackage ../applications/audio/surge {
+    inherit (gnome) zenity;
+    git = gitMinimal;
+  };
+
+  surge-XT = callPackage ../applications/audio/surge-XT { };
+
+  survex = callPackage ../applications/misc/survex {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
+  sunvox = callPackage ../applications/audio/sunvox { };
+
+  supersonic-wayland = supersonic.override {
+    waylandSupport = true;
+  };
+
+  svkbd = callPackage ../applications/accessibility/svkbd { };
+
+  swaglyrics = callPackage ../tools/misc/swaglyrics { };
+
+  swh_lv2 = callPackage ../applications/audio/swh-lv2 { };
+
+  sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  symbolic-preview = callPackage ../applications/graphics/symbolic-preview { };
+
+  symlinks = callPackage ../tools/system/symlinks { };
+
+  syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };
+
+  syncplay-nogui = syncplay.override { enableGUI = false; };
+
+  syncterm = callPackage ../applications/terminal-emulators/syncterm { };
+
+  inherit (callPackages ../applications/networking/syncthing {
+    inherit (darwin) autoSignDarwinBinariesHook;
+   })
+    syncthing
+    syncthing-discovery
+    syncthing-relay;
+
+  stc-cli = callPackage ../applications/networking/stc-cli { };
+
+  syncthing-tray = callPackage ../applications/misc/syncthing-tray { };
+
+  syncthingtray = libsForQt5.callPackage ../applications/misc/syncthingtray { };
+  syncthingtray-minimal = libsForQt5.callPackage ../applications/misc/syncthingtray {
+    webviewSupport = false;
+    jsSupport = false;
+    kioPluginSupport = false;
+    plasmoidSupport = false;
+    systemdSupport = true;
+  };
+
+  synergy = libsForQt5.callPackage ../applications/misc/synergy {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa CoreServices ScreenSaver;
+  };
+
+  synergyWithoutGUI = synergy.override { withGUI = false; };
+
+  tabbed = callPackage ../applications/window-managers/tabbed {
+    # if you prefer a custom config, write the config.h in tabbed.config.h
+    # and enable
+    # customConfig = builtins.readFile ./tabbed.config.h;
+  };
+
+  taffybar = callPackage ../applications/window-managers/taffybar {
+    inherit (haskellPackages) ghcWithPackages taffybar;
+  };
+
+  tagainijisho = libsForQt5.callPackage ../applications/office/tagainijisho { };
+
+  tagger = callPackage ../applications/audio/tagger { };
+
+  tahoe-lafs = callPackage ../tools/networking/p2p/tahoe-lafs { };
+
+  tailor = callPackage ../applications/version-management/tailor { };
+
+  tailor-gui = callPackage ../os-specific/linux/tailor-gui { };
+
+  taizen = callPackage ../applications/misc/taizen { };
+
+  talosctl = callPackage ../applications/networking/cluster/talosctl {
+    buildGoModule = buildGo120Module;
+  };
+
+  talentedhack = callPackage ../applications/audio/talentedhack { };
+
+  tambura = callPackage ../applications/audio/tambura { };
+
+  tamgamp.lv2 = callPackage ../applications/audio/tamgamp.lv2 { };
+
+  tanka = callPackage ../applications/networking/cluster/tanka { };
+
+  teams = callPackage ../applications/networking/instant-messengers/teams { };
+
+  teams-for-linux = callPackage ../applications/networking/instant-messengers/teams-for-linux {
+    electron = electron_27;
+  };
+
+  teamspeak_client = libsForQt5.callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
+  teamspeak5_client = callPackage ../applications/networking/instant-messengers/teamspeak/client5.nix { };
+  teamspeak_server = callPackage ../applications/networking/instant-messengers/teamspeak/server.nix { };
+
+  taskell = haskell.lib.compose.justStaticExecutables haskellPackages.taskell;
+
+  tap-plugins = callPackage ../applications/audio/tap-plugins { };
+
+  taskjuggler = callPackage ../applications/misc/taskjuggler { };
+
+  tabula = callPackage ../applications/misc/tabula { };
+
+  tabula-java = callPackage ../applications/misc/tabula-java { };
+
+  tasknc = callPackage ../applications/misc/tasknc { };
+
+  tasktimer = callPackage ../applications/misc/tasktimer { };
+
+  taskwarrior = callPackage ../applications/misc/taskwarrior { };
+
+  taskwarrior-tui = callPackage ../applications/misc/taskwarrior-tui { };
+
+  dstask = callPackage ../applications/misc/dstask { };
+
+  tasksh = callPackage ../applications/misc/tasksh { };
+
+  taskserver = callPackage ../servers/misc/taskserver { };
+
+  taskopen = callPackage ../applications/misc/taskopen { };
+
+  telegram-desktop = qt6Packages.callPackage ../applications/networking/instant-messengers/telegram/telegram-desktop {
+    stdenv = if stdenv.isDarwin
+      then overrideSDK stdenv "11.0"
+      else stdenv;
+  };
+
+  telegram-bot-api = callPackage ../servers/telegram-bot-api { };
+
+  tektoncd-cli = callPackage ../applications/networking/cluster/tektoncd-cli { };
+
+  tg = python3Packages.callPackage ../applications/networking/instant-messengers/telegram/tg { };
+
+  telepathy-gabble = callPackage ../applications/networking/instant-messengers/telepathy/gabble { };
+
+  telepathy-haze = callPackage ../applications/networking/instant-messengers/telepathy/haze { };
+
+  telepathy-logger = callPackage ../applications/networking/instant-messengers/telepathy/logger { };
+
+  telepathy-mission-control = callPackage ../applications/networking/instant-messengers/telepathy/mission-control { };
+
+  telepathy-idle = callPackage ../applications/networking/instant-messengers/telepathy/idle { };
+
+  teleprompter = callPackage ../applications/misc/teleprompter { };
+
+  tempo = callPackage ../servers/tracing/tempo { };
+
+  temporal = callPackage ../applications/networking/cluster/temporal { };
+
+  temporal-cli = callPackage ../applications/networking/cluster/temporal-cli { };
+
+  temporalite = callPackage ../applications/networking/cluster/temporalite { };
+
+  tenacity = callPackage ../applications/audio/tenacity { };
+
+  tendermint = callPackage ../tools/networking/tendermint { };
+
+  termdbms = callPackage ../development/tools/database/termdbms { };
+
+  termdown = python3Packages.callPackage ../applications/misc/termdown { };
+
+  termimage = callPackage ../tools/graphics/termimage { };
+
+  terminal-notifier = callPackage ../applications/misc/terminal-notifier { };
+
+  textpieces = callPackage ../tools/text/textpieces { };
+
+  textplots = callPackage ../tools/graphics/textplots { };
+
+  texture-synthesis = callPackage ../tools/graphics/texture-synthesis { };
+
+  texturepacker = qt6.callPackage ../applications/graphics/texturepacker { };
+
+  tty-solitaire = callPackage ../applications/misc/tty-solitaire { };
+
+  termtosvg = callPackage ../tools/misc/termtosvg { };
+
+  tessen = callPackage ../tools/security/tessen { };
+
+  inherit (callPackage ../applications/graphics/tesseract {
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
+  })
+    tesseract3
+    tesseract4
+    tesseract5;
+  tesseract = tesseract5;
+
+  tetraproc = callPackage ../applications/audio/tetraproc { };
+
+  tev = callPackage ../applications/graphics/tev { };
+
+  textual-paint = callPackage ../applications/graphics/textual-paint { };
+
+  themechanger = callPackage ../applications/misc/themechanger { };
+
+  thinkingRock = callPackage ../applications/misc/thinking-rock { };
+
+  thokr = callPackage ../applications/misc/thokr { };
+
+  thonny = callPackage ../applications/editors/thonny { };
+
+  betterbird-unwrapped = callPackage ../applications/networking/mailreaders/betterbird { };
+  betterbird = wrapThunderbird betterbird-unwrapped {
+    desktopName = "Betterbird";
+    pname = "betterbird";
+  };
+
+  thunderbirdPackages = recurseIntoAttrs (callPackage ../applications/networking/mailreaders/thunderbird/packages.nix {
+    callPackage = newScope {
+      inherit (rustPackages) cargo rustc;
+    };
+  });
+
+  thunderbird-unwrapped = thunderbirdPackages.thunderbird;
+  thunderbird = wrapThunderbird thunderbird-unwrapped { };
+
+  thunderbird-bin = wrapThunderbird thunderbird-bin-unwrapped {
+    applicationName = "thunderbird";
+    pname = "thunderbird-bin";
+    desktopName = "Thunderbird";
+  };
+  thunderbird-bin-unwrapped = callPackage ../applications/networking/mailreaders/thunderbird-bin {
+    inherit (gnome) adwaita-icon-theme;
+    generated = import ../applications/networking/mailreaders/thunderbird-bin/release_sources.nix;
+  };
+
+  thunderbolt = callPackage ../os-specific/linux/thunderbolt { };
+
+  ticpp = callPackage ../development/libraries/ticpp { };
+
+  ticker = callPackage ../applications/misc/ticker { };
+
+  tickrs = callPackage ../applications/misc/tickrs { };
+
+  tijolo = callPackage ../applications/editors/tijolo { };
+
+  tilemaker = callPackage ../applications/misc/tilemaker {
+    protobuf = protobuf_21;
+  };
+
+  timbreid = callPackage ../applications/audio/pd-plugins/timbreid {
+    fftw = fftwSinglePrec;
+  };
+
+  timelimit = callPackage ../tools/misc/timelimit { };
+
+  timeshift-unwrapped = callPackage ../applications/backup/timeshift/unwrapped.nix { inherit (cinnamon) xapp; };
+
+  timeshift = callPackage ../applications/backup/timeshift { grubPackage = grub2; };
+
+  timeshift-minimal = callPackage ../applications/backup/timeshift/minimal.nix { };
+
+  timewarrior = callPackage ../applications/misc/timewarrior { };
+
+  timew-sync-server = callPackage ../applications/misc/timew-sync-server { };
+
+  timg = callPackage ../tools/graphics/timg { };
+
+  timidity = callPackage ../tools/misc/timidity {
+    inherit (darwin.apple_sdk.frameworks) CoreAudio;
+    inherit (darwin) libobjc;
+  };
+
+  tint2 = callPackage ../applications/misc/tint2 { };
+
+  tiny = callPackage ../applications/networking/irc/tiny {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  tipp10 = qt5.callPackage ../applications/misc/tipp10 { };
+
+  tkrev = callPackage ../applications/version-management/tkrev { };
+
+  tla = callPackage ../applications/version-management/arch { };
+
+  tlf = callPackage ../applications/radio/tlf { };
+
+  tlp = callPackage ../tools/misc/tlp {
+    inherit (linuxPackages) x86_energy_perf_policy;
+  };
+
+  tippecanoe = callPackage ../applications/misc/tippecanoe { };
+
+  tmatrix = callPackage ../applications/misc/tmatrix { };
+
+  tnef = callPackage ../applications/misc/tnef { };
+
+  todiff = callPackage ../applications/misc/todiff { };
+
+  todo-txt-cli = callPackage ../applications/office/todo.txt-cli { };
+
+  todofi-sh = callPackage ../applications/office/todofi.sh { };
+
+  todoman = callPackage ../applications/office/todoman { };
+
+  tofi = callPackage ../applications/misc/tofi { };
+
+  tokyo-night-gtk = tokyo-night-gtk-variants.full;
+
+  tokyo-night-gtk-variants = recurseIntoAttrs (callPackage ../data/themes/tokyo-night-gtk { });
+
+  topydo = callPackage ../applications/misc/topydo { };
+
+  torrential = callPackage ../applications/networking/p2p/torrential { };
+
+  torrenttools = callPackage ../tools/misc/torrenttools {
+    fmt = fmt_8;
+  };
+
+  tortoisehg = callPackage ../applications/version-management/tortoisehg { };
+
+  tone = callPackage ../applications/audio/tone { };
+
+  tonelib-gfx = callPackage ../applications/audio/tonelib-gfx { };
+
+  tonelib-jam = callPackage ../applications/audio/tonelib-jam { };
+
+  tonelib-zoom = callPackage ../applications/audio/tonelib-zoom { };
+
+  tonelib-metal = callPackage ../applications/audio/tonelib-metal { };
+
+  tonelib-noisereducer = callPackage ../applications/audio/tonelib-noisereducer { };
+
+  tony = libsForQt5.callPackage ../applications/audio/tony { };
+
+  toot = callPackage ../applications/misc/toot { };
+
+  toipe = callPackage ../applications/misc/toipe { };
+
+  tootle = callPackage ../applications/misc/tootle { };
+
+  toxic = callPackage ../applications/networking/instant-messengers/toxic { };
+
+  toxiproxy = callPackage ../development/tools/toxiproxy { };
+
+  tqsl = callPackage ../applications/radio/tqsl { };
+  trustedqsl = tqsl; # Alias added 2019-02-10
+
+  transcode = callPackage ../applications/audio/transcode { };
+
+  transcribe = callPackage ../applications/audio/transcribe { };
+
+  transmission = callPackage ../applications/networking/p2p/transmission { };
+  libtransmission = transmission.override {
+    installLib = true;
+    enableDaemon = false;
+    enableCli = false;
+  };
+  transmission-gtk = transmission.override { enableGTK3 = true; };
+  transmission-qt = transmission.override { enableQt = true; };
+  transmission_noSystemd = transmission.override { enableSystemd = false; };
+
+  # Needs macOS >= 10.14.6
+  transmission_4 = darwin.apple_sdk_11_0.callPackage ../applications/networking/p2p/transmission/4.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation;
+    fmt = fmt_9;
+    libutp = libutp_3_4;
+  };
+  libtransmission_4 = transmission_4.override {
+    installLib = true;
+    enableDaemon = false;
+    enableCli = false;
+  };
+  transmission_4-gtk = transmission_4.override { enableGTK3 = true; };
+  transmission_4-qt = transmission_4.override { enableQt = true; };
+
+  transmission-remote-gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk { };
+
+  transgui = callPackage ../applications/networking/p2p/transgui { };
+
+  traverso = libsForQt5.callPackage ../applications/audio/traverso { };
+
+  trayer = callPackage ../applications/window-managers/trayer { };
+
+  tinywl = callPackage ../applications/window-managers/tinywl { };
+
+  tree-from-tags = callPackage ../applications/audio/tree-from-tags { };
+
+  tdrop = callPackage ../applications/misc/tdrop { };
+
+  tre-command = callPackage ../tools/system/tre-command { };
+
+  tree = callPackage ../tools/system/tree { };
+
+  treesheets = callPackage ../applications/office/treesheets {
+    wxGTK = wxGTK32;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  tremc = callPackage ../applications/networking/p2p/tremc { };
+
+  tribler = callPackage ../applications/networking/p2p/tribler { };
+
+  trillian-im = callPackage ../applications/networking/instant-messengers/trillian-im { };
+
+  trojita = libsForQt5.callPackage ../applications/networking/mailreaders/trojita { };
+
+  ttyper = callPackage ../applications/misc/ttyper { };
+
+  tuba = callPackage ../applications/misc/tuba { };
+
+  tudu = callPackage ../applications/office/tudu { };
+
+  tumpa = callPackage ../applications/misc/tumpa {
+    inherit (pkgs.libsForQt5) wrapQtAppsHook;
+  };
+
+  tuna = python3Packages.callPackage ../os-specific/linux/tuna { };
+
+  tunefish = callPackage ../applications/audio/tunefish {
+    stdenv = clangStdenv; # https://github.com/jpcima/tunefish/issues/4
+  };
+
+  tut = callPackage ../applications/misc/tut { };
+
+  tuxedo-rs = callPackage ../os-specific/linux/tuxedo-rs { };
+
+  tuxguitar = callPackage ../applications/editors/music/tuxguitar {
+    jre = jre8;
+    swt = swt_jdk8;
+  };
+
+  twmn = libsForQt5.callPackage ../applications/misc/twmn { };
+
+  testssl = callPackage ../applications/networking/testssl { };
+
+  tests-stdenv-gcc-stageCompare = callPackage ../test/stdenv/gcc-stageCompare.nix { };
+
+  lavalauncher = callPackage ../applications/misc/lavalauncher { };
+
+  t-rec = callPackage ../misc/t-rec {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  ulauncher = callPackage ../applications/misc/ulauncher { };
+
+  twinkle = qt5.callPackage ../applications/networking/instant-messengers/twinkle { };
+
+  terminal-stocks = callPackage ../applications/misc/terminal-stocks { };
+
+  terminal-typeracer = callPackage ../applications/misc/terminal-typeracer {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  typer = callPackage ../applications/misc/typer { };
+
+  typioca = callPackage ../applications/misc/typioca { };
+
+  ueberzug = with python3Packages; toPythonApplication ueberzug;
+
+  ueberzugpp = darwin.apple_sdk_11_0.callPackage ../tools/graphics/ueberzugpp { };
+
+  uefi-run = callPackage ../tools/virtualization/uefi-run { };
+
+  umurmur = callPackage ../applications/networking/umurmur { };
+
+  udocker = callPackage ../tools/virtualization/udocker { };
+
+  uefitoolPackages = recurseIntoAttrs (callPackage ../tools/system/uefitool/variants.nix {});
+  uefitool = uefitoolPackages.new-engine;
+
+  ungoogled-chromium = callPackage ../applications/networking/browsers/chromium ((config.chromium or {}) // {
+    ungoogled = true;
+    channel = "ungoogled-chromium";
+  });
+
+  uni = callPackage ../applications/misc/uni { };
+
+  unigine-valley = callPackage ../applications/graphics/unigine-valley { };
+
+  unigine-heaven = callPackage ../applications/graphics/unigine-heaven { };
+
+  unigine-tropics = pkgsi686Linux.callPackage ../applications/graphics/unigine-tropics { };
+
+  unigine-sanctuary = pkgsi686Linux.callPackage ../applications/graphics/unigine-sanctuary { };
+
+  unigine-superposition = libsForQt5.callPackage ../applications/graphics/unigine-superposition { };
+
+  unipicker = callPackage ../applications/misc/unipicker { };
+
+  unison = callPackage ../applications/networking/sync/unison {
+    enableX11 = config.unison.enableX11 or true;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  unpaper = callPackage ../tools/graphics/unpaper { };
+
+  unison-ucm = callPackage ../development/compilers/unison { };
+
+  upnp-router-control = callPackage ../applications/networking/upnp-router-control { };
+
+  urh = callPackage ../applications/radio/urh { };
+
+  uroboros = callPackage ../tools/system/uroboros { };
+
+  uuagc = haskell.lib.compose.justStaticExecutables haskellPackages.uuagc;
+
+  uucp = callPackage ../tools/misc/uucp { };
+
+  uvccapture = callPackage ../applications/video/uvccapture { };
+
+  uwimap = callPackage ../tools/networking/uwimap { };
+
+  utm = callPackage ../os-specific/darwin/utm { };
+
+  utox = callPackage ../applications/networking/instant-messengers/utox { };
+
+  valentina = libsForQt5.callPackage ../applications/misc/valentina { };
+
+  vbindiff = callPackage ../applications/editors/vbindiff { };
+
+  vcprompt = callPackage ../applications/version-management/vcprompt {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  vcs = callPackage ../applications/video/vcs { };
+
+  vcv-rack = callPackage ../applications/audio/vcv-rack { };
+
+  vdirsyncer = with python3Packages; toPythonApplication vdirsyncer;
+
+  vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
+
+  vengi-tools = darwin.apple_sdk_11_0.callPackage ../applications/graphics/vengi-tools {
+    inherit (darwin.apple_sdk_11_0.frameworks) Carbon CoreServices OpenCL;
+  };
+
+  verbiste = callPackage ../applications/misc/verbiste {
+    inherit (gnome2) libgnomeui;
+  };
+
+  veusz = libsForQt5.callPackage ../applications/graphics/veusz { };
+
+  vim = vimUtils.makeCustomizable (callPackage ../applications/editors/vim {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  });
+
+  vimiv-qt = callPackage ../applications/graphics/vimiv-qt { };
+
+  macvim = callPackage ../applications/editors/vim/macvim-configurable.nix { stdenv = clangStdenv; };
+
+  vim-full = vimUtils.makeCustomizable (callPackage ../applications/editors/vim/full.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa Foundation CoreData;
+    inherit (darwin) libobjc;
+  });
+
+  vim-darwin = (vim-full.override {
+    config = {
+      vim = {
+        gui = "none";
+        darwin = true;
+      };
+    };
+  }).overrideAttrs {
+    pname = "vim-darwin";
+    meta = {
+      platforms = lib.platforms.darwin;
+    };
+  };
+
+  vimacs = callPackage ../applications/editors/vim/vimacs.nix { };
+
+  vimv = callPackage ../tools/misc/vimv { };
+
+  vimv-rs = callPackage ../tools/misc/vimv-rs {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  qpdfview = libsForQt5.callPackage ../applications/office/qpdfview { };
+
+  qtile = callPackage ../development/python-modules/qtile/wrapper.nix { };
+
+  vimgolf = callPackage ../games/vimgolf { };
+
+  vimpc = callPackage ../applications/audio/vimpc { };
+
+  # this is a lower-level alternative to wrapNeovim conceived to handle
+  # more usecases when wrapping neovim. The interface is being actively worked on
+  # so expect breakage. use wrapNeovim instead if you want a stable alternative
+  wrapNeovimUnstable = callPackage ../applications/editors/neovim/wrapper.nix { };
+  wrapNeovim = neovim-unwrapped: lib.makeOverridable (neovimUtils.legacyWrapper neovim-unwrapped);
+  neovim-unwrapped = callPackage ../applications/editors/neovim {
+    CoreServices =  darwin.apple_sdk.frameworks.CoreServices;
+    lua = if lib.meta.availableOn stdenv.hostPlatform luajit then luajit else lua5_1;
+  };
+
+  neovimUtils = callPackage ../applications/editors/neovim/utils.nix {
+    lua = lua5_1;
+  };
+  neovim = wrapNeovim neovim-unwrapped { };
+
+  neovim-gtk = callPackage ../applications/editors/neovim/neovim-gtk.nix { };
+
+  neovim-qt-unwrapped = libsForQt5.callPackage ../applications/editors/neovim/neovim-qt.nix { };
+  neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { };
+
+  gnvim-unwrapped = callPackage ../applications/editors/neovim/gnvim { };
+
+  gnvim = callPackage ../applications/editors/neovim/gnvim/wrapper.nix { };
+
+  neovide = callPackage ../applications/editors/neovim/neovide { };
+
+  neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { };
+
+  vis = callPackage ../applications/editors/vis { };
+
+  viw = callPackage ../applications/editors/viw { };
+
+  virter = callPackage ../applications/virtualization/virter { };
+
+  virt-viewer = callPackage ../applications/virtualization/virt-viewer { };
+
+  virt-top = callPackage ../applications/virtualization/virt-top { };
+
+  virt-what = callPackage ../applications/virtualization/virt-what { };
+
+  virt-manager = callPackage ../applications/virtualization/virt-manager {
+    system-libvirt = libvirt;
+  };
+
+  virt-manager-qt = libsForQt5.callPackage ../applications/virtualization/virt-manager/qt.nix {
+    qtermwidget = lxqt.qtermwidget;
+  };
+
+  virtscreen = callPackage ../tools/admin/virtscreen { };
+
+  virtual-ans = callPackage ../applications/audio/virtual-ans { };
+
+  virtualbox = libsForQt5.callPackage ../applications/virtualization/virtualbox {
+    stdenv = stdenv_32bit;
+    inherit (gnome2) libIDL;
+  };
+
+  virtualboxHardened = lowPrio (virtualbox.override {
+    enableHardening = true;
+  });
+
+  virtualboxHeadless = lowPrio (virtualbox.override {
+    enableHardening = true;
+    headless = true;
+  });
+
+  virtualboxExtpack = callPackage ../applications/virtualization/virtualbox/extpack.nix { };
+
+  virtualboxWithExtpack = lowPrio (virtualbox.override {
+    extensionPack = virtualboxExtpack;
+  });
+
+  virtualglLib = callPackage ../tools/X11/virtualgl/lib.nix {
+    fltk = fltk13;
+  };
+
+  virtualgl = callPackage ../tools/X11/virtualgl {
+    virtualglLib_i686 = if stdenv.hostPlatform.system == "x86_64-linux"
+      then pkgsi686Linux.virtualglLib
+      else null;
+  };
+
+  vivictpp = callPackage ../applications/video/vivictpp { };
+
+  vpcs = callPackage ../applications/virtualization/vpcs { };
+
+  primusLib = callPackage ../tools/X11/primus/lib.nix {
+    nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
+  };
+
+  primus = callPackage ../tools/X11/primus {
+    stdenv_i686 = pkgsi686Linux.stdenv;
+    primusLib_i686 = if stdenv.hostPlatform.system == "x86_64-linux"
+      then pkgsi686Linux.primusLib
+      else null;
+  };
+
+  bumblebee = callPackage ../tools/X11/bumblebee {
+    nvidia_x11 = linuxPackages.nvidia_x11;
+    nvidia_x11_i686 = if stdenv.hostPlatform.system == "x86_64-linux"
+      then pkgsi686Linux.linuxPackages.nvidia_x11.override { libsOnly = true; }
+      else null;
+    libglvnd_i686 = if stdenv.hostPlatform.system == "x86_64-linux"
+      then pkgsi686Linux.libglvnd
+      else null;
+  };
+
+  uvcdynctrl = callPackage ../os-specific/linux/uvcdynctrl { };
+
+  viper4linux = callPackage ../applications/audio/viper4linux { };
+  viper4linux-gui = libsForQt5.callPackage ../applications/audio/viper4linux-gui { };
+
+  vkeybd = callPackage ../applications/audio/vkeybd { };
+
+  vlc = libsForQt5.callPackage ../applications/video/vlc { };
+
+  libvlc = vlc.override {
+    withQt5 = false;
+    onlyLibVLC = true;
+  };
+
+  vmpk = libsForQt5.callPackage ../applications/audio/vmpk { };
+
+  vmware-horizon-client = callPackage ../applications/networking/remote/vmware-horizon-client { };
+
+  vmware-workstation = callPackage ../applications/virtualization/vmware-workstation { };
+
+  vocproc = callPackage ../applications/audio/vocproc { };
+
+  vnstat = callPackage ../applications/networking/vnstat { };
+
+  vocal = callPackage ../applications/audio/vocal { };
+
+  volnoti = callPackage ../applications/misc/volnoti { };
+
+  vorbis-tools = callPackage ../applications/audio/vorbis-tools {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  vpv = callPackage ../applications/graphics/vpv { };
+
+  vsce = callPackage ../development/tools/vsce { };
+
+  vscode = callPackage ../applications/editors/vscode/vscode.nix { };
+  vscode-fhs = vscode.fhs;
+  vscode-fhsWithPackages = vscode.fhsWithPackages;
+
+  vscode-with-extensions = callPackage ../applications/editors/vscode/with-extensions.nix { };
+
+  vscode-utils = callPackage ../applications/editors/vscode/extensions/vscode-utils.nix { };
+
+  vscode-extensions = recurseIntoAttrs (callPackage ../applications/editors/vscode/extensions { });
+
+  vscodium = callPackage ../applications/editors/vscode/vscodium.nix { };
+  vscodium-fhs = vscodium.fhs;
+  vscodium-fhsWithPackages = vscodium.fhsWithPackages;
+
+  openvscode-server = callPackage ../servers/openvscode-server {
+    nodejs = nodejs_18;
+    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Security;
+    inherit (darwin) cctools;
+    inherit (nodePackages) node-gyp;
+  };
+
+  vue = callPackage ../applications/misc/vue { };
+
+  vuze = callPackage ../applications/networking/p2p/vuze {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  vwm = callPackage ../applications/window-managers/vwm { };
+
+  vym = libsForQt5.callPackage ../applications/misc/vym { };
+
+  wad = callPackage ../tools/security/wad { };
+
+  wafw00f = callPackage ../tools/security/wafw00f { };
+
+  whispers = with python3Packages; toPythonApplication whispers;
+
+  whisper-ctranslate2 = callPackage ../tools/audio/whisper-ctranslate2 { };
+
+  waon = callPackage ../applications/audio/waon { };
+
+  warp = callPackage ../applications/networking/warp {
+    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+  };
+
+  warpd = callPackage ../applications/misc/warpd { };
+
+  watershot = callPackage ../applications/misc/watershot { };
+
+  waypaper = callPackage ../applications/misc/waypaper { };
+
+  w3m = callPackage ../applications/networking/browsers/w3m { };
+
+  # Should always be the version with the most features
+  w3m-full = w3m;
+
+  # Version without X11
+  w3m-nox = w3m.override {
+    x11Support = false;
+    imlib2 = imlib2-nox;
+  };
+
+  # Version without X11 or graphics
+  w3m-nographics = w3m.override {
+    x11Support = false;
+    graphicsSupport = false;
+  };
+
+  # Version for batch text processing, not a good browser
+  w3m-batch = w3m.override {
+    graphicsSupport = false;
+    mouseSupport = false;
+    x11Support = false;
+    imlib2 = imlib2-nox;
+  };
+
+  watchmate = callPackage ../applications/misc/watchmate { };
+
+  watson = callPackage ../applications/office/watson { };
+
+  wapiti = callPackage ../tools/security/wapiti { };
+
+  weave-gitops = callPackage ../applications/networking/cluster/weave-gitops { };
+
+  wayfire = callPackage ../applications/window-managers/wayfire/default.nix {
+    wlroots = wlroots_0_16;
+  };
+  wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { };
+
+  wayfirePlugins = recurseIntoAttrs (
+    callPackage ../applications/window-managers/wayfire/plugins.nix { }
+  );
+  wayfire-with-plugins = callPackage ../applications/window-managers/wayfire/wrapper.nix {
+    plugins = with wayfirePlugins; [ wcm wf-shell ];
+  };
+
+  waypipe = callPackage ../applications/networking/remote/waypipe { };
+
+  wayv = callPackage ../tools/X11/wayv { };
+
+  wayvnc = callPackage ../applications/networking/remote/wayvnc { };
+
+  webanalyze = callPackage ../tools/security/webanalyze { };
+
+  webcamoid = libsForQt5.callPackage ../applications/video/webcamoid { };
+
+  webcord = callPackage ../applications/networking/instant-messengers/webcord { };
+
+  webcord-vencord = callPackage ../applications/networking/instant-messengers/webcord/webcord-vencord { };
+
+  webex = callPackage ../applications/networking/instant-messengers/webex { };
+
+  webmacs = libsForQt5.callPackage ../applications/networking/browsers/webmacs {
+    stdenv = if stdenv.cc.isClang then gccStdenv else stdenv;
+  };
+
+  websploit = python3Packages.callPackage ../tools/security/websploit { };
+
+  webssh = with python3Packages; toPythonApplication webssh;
+
+  webtorrent_desktop = callPackage ../applications/video/webtorrent_desktop {
+    electron = electron_27;
+  };
+
+  wrapWeechat = callPackage ../applications/networking/irc/weechat/wrapper.nix { };
+
+  weechat-unwrapped = callPackage ../applications/networking/irc/weechat {
+    inherit (darwin) libobjc;
+    inherit (darwin) libresolv;
+    guile = guile_3_0;
+  };
+
+  weechat = wrapWeechat weechat-unwrapped { };
+
+  weechatScripts = recurseIntoAttrs (callPackage ../applications/networking/irc/weechat/scripts { });
+
+  westonLite = weston.override {
+    demoSupport = false;
+    hdrSupport = false;
+    jpegSupport = false;
+    lcmsSupport = false;
+    pangoSupport = false;
+    pipewireSupport = false;
+    rdpSupport = false;
+    remotingSupport = false;
+    vaapiSupport = false;
+    vncSupport = false;
+    webpSupport = false;
+    xwaylandSupport = false;
+  };
+
+  chatterino2 = libsForQt5.callPackage ../applications/networking/instant-messengers/chatterino2 {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
+
+  weston = callPackage ../applications/window-managers/weston { };
+
+  wgnord = callPackage ../applications/networking/wgnord/default.nix { };
+
+  whalebird = callPackage ../applications/misc/whalebird {
+    electron = electron_21;
+  };
+
+  windowlab = callPackage ../applications/window-managers/windowlab { };
+
+  inherit (windowmaker) dockapps;
+
+  wily = callPackage ../applications/editors/wily { };
+
+  wings = callPackage ../applications/graphics/wings { };
+
+  write_stylus = libsForQt5.callPackage ../applications/graphics/write_stylus { };
+
+  wlc = callPackage  ../tools/misc/wlc { };
+
+  wlclock = callPackage ../applications/misc/wlclock { };
+
+  wlcs = callPackage ../development/tools/wlcs { };
+
+  wllvm = callPackage  ../development/tools/wllvm { };
+
+  wmname = callPackage ../applications/misc/wmname { };
+
+  wmctrl = callPackage ../tools/X11/wmctrl { };
+
+  wmderland = callPackage ../applications/window-managers/wmderland { };
+
+  wmderlandc = callPackage ../applications/window-managers/wmderlandc { };
+
+  wmii = callPackage ../applications/window-managers/wmii { };
+
+  wofi = callPackage ../applications/misc/wofi { };
+
+  wofi-pass = callPackage ../../pkgs/tools/security/pass/wofi-pass.nix { };
+
+  wofi-emoji = callPackage ../applications/misc/wofi-emoji { };
+
+  cl-wordle = callPackage ../games/cl-wordle { };
+
+  wordbook = callPackage ../applications/misc/wordbook { };
+
+  wordnet = callPackage ../applications/misc/wordnet {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  wordgrinder = callPackage ../applications/office/wordgrinder { };
+
+  workrave = callPackage ../applications/misc/workrave {
+    inherit (python3Packages) jinja2;
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good;
+  };
+
+  worldengine-cli = python3Packages.worldengine;
+
+  wpsoffice = libsForQt5.callPackage ../applications/office/wpsoffice { };
+  wpsoffice-cn = libsForQt5.callPackage ../applications/office/wpsoffice {
+    useChineseVersion = true;
+  };
+
+  wrapFirefox = callPackage ../applications/networking/browsers/firefox/wrapper.nix { };
+
+  wrapThunderbird = callPackage ../applications/networking/mailreaders/thunderbird/wrapper.nix { };
+
+  wp4nix = callPackage ../development/tools/wp4nix { };
+
+  wsjtx = qt5.callPackage ../applications/radio/wsjtx { };
+
+  wxhexeditor = callPackage ../applications/editors/wxhexeditor {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    inherit (llvmPackages) openmp;
+    wxGTK = wxGTK32;
+  };
+
+  xa = callPackage ../development/compilers/xa/xa.nix { };
+  dxa = callPackage ../development/compilers/xa/dxa.nix { };
+
+  x11basic = callPackage ../development/compilers/x11basic {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  x11vnc = callPackage ../tools/X11/x11vnc { };
+
+  x11spice = callPackage ../tools/X11/x11spice { };
+
+  x2goclient = libsForQt5.callPackage ../applications/networking/remote/x2goclient { };
+
+  x2goserver = callPackage ../applications/networking/remote/x2goserver { };
+
+  x2vnc = callPackage ../tools/X11/x2vnc { };
+
+  x32edit = callPackage ../applications/audio/midas/x32edit.nix { };
+
+  x42-avldrums = callPackage ../applications/audio/x42-avldrums { };
+
+  x42-gmsynth = callPackage ../applications/audio/x42-gmsynth { };
+
+  x42-plugins = callPackage ../applications/audio/x42-plugins { };
+
+  xannotate = callPackage ../tools/X11/xannotate { };
+
+  xaos = libsForQt5.callPackage ../applications/graphics/xaos { };
+
+  xastir = callPackage ../applications/misc/xastir { };
+
+  xautomation = callPackage ../tools/X11/xautomation { };
+
+  xawtv = callPackage ../applications/video/xawtv { };
+
+  xbattbar = callPackage ../applications/misc/xbattbar { };
+
+  xbindkeys = callPackage ../tools/X11/xbindkeys { };
+
+  xbindkeys-config = callPackage ../tools/X11/xbindkeys-config {
+    gtk = gtk2;
+  };
+
+  xborders = callPackage ../tools/X11/xborders { };
+
+  xxh = callPackage ../tools/networking/xxh { };
+
+  kodiPackages = recurseIntoAttrs (kodi.packages);
+
+  kodi = callPackage ../applications/video/kodi {
+    jre_headless = jdk11_headless;
+  };
+
+  kodi-wayland = callPackage ../applications/video/kodi {
+    jre_headless = jdk11_headless;
+    waylandSupport = true;
+  };
+
+  kodi-gbm = callPackage ../applications/video/kodi {
+    jre_headless = jdk11_headless;
+    gbmSupport = true;
+  };
+
+  kodi-cli = callPackage ../tools/misc/kodi-cli { };
+
+  xca = libsForQt5.callPackage ../applications/misc/xca { };
+
+  xcalib = callPackage ../tools/X11/xcalib { };
+
+  xcape = callPackage ../tools/X11/xcape { };
+
+  xcat = callPackage ../tools/security/xcat { };
+
+  xchainkeys = callPackage ../tools/X11/xchainkeys { };
+
+  xchm = callPackage ../applications/misc/xchm { };
+
+  inherit (xorg) xcompmgr;
+
+  x-create-mouse-void = callPackage ../applications/window-managers/x-create-mouse-void { };
+
+  picom = callPackage ../applications/window-managers/picom { };
+
+  picom-allusive = callPackage ../applications/window-managers/picom/picom-allusive.nix { };
+
+  picom-jonaburg = callPackage ../applications/window-managers/picom/picom-jonaburg.nix { };
+
+  picom-next = callPackage ../applications/window-managers/picom/picom-next.nix { };
+
+  xd = callPackage ../applications/networking/p2p/xd { };
+
+  xdaliclock = callPackage ../tools/misc/xdaliclock { };
+
+  xdg-dbus-proxy = callPackage ../development/libraries/xdg-dbus-proxy { };
+
+  xdg-desktop-portal = callPackage ../development/libraries/xdg-desktop-portal { };
+
+  xdg-desktop-portal-gnome = callPackage ../development/libraries/xdg-desktop-portal-gnome { };
+
+  xdg-desktop-portal-gtk = callPackage ../development/libraries/xdg-desktop-portal-gtk { };
+
+  xdg-desktop-portal-hyprland = callPackage ../applications/window-managers/hyprwm/xdg-desktop-portal-hyprland {
+    stdenv = gcc13Stdenv;
+    inherit (qt6) qtbase qttools qtwayland wrapQtAppsHook;
+  };
+
+  xdg-desktop-portal-wlr = callPackage ../development/libraries/xdg-desktop-portal-wlr { };
+
+  xdg-desktop-portal-xapp = callPackage ../development/libraries/xdg-desktop-portal-xapp { };
+
+  xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
+
+  xdg-utils = callPackage ../tools/X11/xdg-utils {
+    w3m = buildPackages.w3m-batch;
+  };
+
+  xdgmenumaker = callPackage ../applications/misc/xdgmenumaker { };
+
+  xdotool = callPackage ../tools/X11/xdotool { };
+
+  xed-editor = callPackage ../applications/editors/xed-editor {
+    xapp = cinnamon.xapp;
+  };
+
+  xenPackages = recurseIntoAttrs (callPackage ../applications/virtualization/xen/packages.nix {});
+
+  xen = xenPackages.xen-vanilla;
+  xen-slim = xenPackages.xen-slim;
+  xen-light = xenPackages.xen-light;
+
+  xen_4_15 = xenPackages.xen_4_15-vanilla;
+  xen_4_15-slim = xenPackages.xen_4_15-slim;
+  xen_4_15-light = xenPackages.xen_4_15-light;
+
+  xkbset = callPackage ../tools/X11/xkbset { };
+
+  xkbmon = callPackage ../applications/misc/xkbmon { };
+
+  win-spice = callPackage ../applications/virtualization/driver/win-spice { };
+  win-pvdrivers = callPackage ../applications/virtualization/driver/win-pvdrivers { };
+
+  xfig = callPackage ../applications/graphics/xfig { };
+
+  xfractint = callPackage ../applications/graphics/xfractint { };
+
+  xine-ui = callPackage ../applications/video/xine/ui.nix { };
+  xine-lib = callPackage ../applications/video/xine/lib.nix { };
+
+  xlsxgrep = callPackage ../applications/search/xlsxgrep { };
+
+  xmind = callPackage ../applications/misc/xmind { };
+
+  xneur = callPackage ../applications/misc/xneur { };
+
+  gxneur = callPackage ../applications/misc/gxneur  {
+    inherit (gnome2) libglade GConf;
+  };
+
+  xiphos = callPackage ../applications/misc/xiphos {
+    gtkhtml = gnome.gtkhtml;
+  };
+
+  xournal = callPackage ../applications/graphics/xournal {
+    inherit (gnome2) libgnomecanvas;
+  };
+
+  xournalpp = callPackage ../applications/graphics/xournalpp {
+    lua = lua5_3;
+  };
+
+  apvlv = callPackage ../applications/misc/apvlv { };
+
+  xpdf = libsForQt5.callPackage ../applications/misc/xpdf { };
+
+  xplugd = callPackage ../tools/X11/xplugd { };
+
+  xpointerbarrier = callPackage ../tools/X11/xpointerbarrier { };
+
+  xkb-switch = callPackage ../tools/X11/xkb-switch { };
+
+  xkb-switch-i3 = callPackage ../tools/X11/xkb-switch-i3 { };
+
+  xkblayout-state = callPackage ../applications/misc/xkblayout-state { };
+
+  xlife = callPackage ../applications/graphics/xlife { };
+
+  xmobar = haskellPackages.xmobar;
+
+  xmonad-log = callPackage ../tools/misc/xmonad-log { };
+
+  xmonad-with-packages = callPackage ../applications/window-managers/xmonad/wrapper.nix {
+    inherit (haskellPackages) ghcWithPackages;
+    packages = _: [ haskellPackages.xmonad-contrib ];
+  };
+
+  xmonadctl = callPackage ../applications/window-managers/xmonad/xmonadctl.nix {
+    inherit (haskellPackages) ghcWithPackages;
+  };
+
+  xmonad_log_applet = callPackage ../applications/window-managers/xmonad/log-applet {
+    inherit (xfce) libxfce4util xfce4-panel;
+  };
+
+  xmonad_log_applet_mate = xmonad_log_applet.override {
+    desktopSupport = "mate";
+  };
+
+  xmonad_log_applet_xfce = xmonad_log_applet.override {
+    desktopSupport = "xfce4";
+  };
+
+  xmountains = callPackage ../applications/graphics/xmountains { };
+
+  xmppc = callPackage ../applications/networking/instant-messengers/xmppc { };
+
+  libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix { };
+
+  xpra = callPackage ../tools/X11/xpra { };
+  xpraWithNvenc = callPackage ../tools/X11/xpra {
+    withNvenc = true;
+    nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
+  };
+  libfakeXinerama = callPackage ../tools/X11/xpra/libfakeXinerama.nix { };
+
+
+  xplayer = callPackage ../applications/video/xplayer {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
+    inherit (cinnamon) xapp;
+  };
+  libxplayer-plparser = callPackage ../applications/video/xplayer/plparser.nix { };
+
+  xrectsel = callPackage ../tools/X11/xrectsel { };
+
+  xrestop = callPackage ../tools/X11/xrestop { };
+
+  xrgears = callPackage ../applications/graphics/xrgears { };
+
+  xsd = callPackage ../development/libraries/xsd {
+    stdenv = gcc9Stdenv;
+  };
+
+  xscope = callPackage ../applications/misc/xscope { };
+
+  xsubfind3r = callPackage ../tools/security/xsubfind3r {  };
+
+  xsuspender = callPackage ../applications/misc/xsuspender {  };
+
+  xss-lock = callPackage ../misc/screensavers/xss-lock { };
+
+  xloadimage = callPackage ../tools/X11/xloadimage { };
+
+  xssproxy = callPackage ../misc/screensavers/xssproxy { };
+
+  xsynth_dssi = callPackage ../applications/audio/xsynth-dssi { };
+
+  xtrace = callPackage ../tools/X11/xtrace { };
+
+  xtruss = callPackage ../tools/X11/xtruss { };
+
+  xtuner = callPackage ../applications/audio/xtuner { };
+
+  xmacro = callPackage ../tools/X11/xmacro { };
+
+  xmenu = callPackage ../applications/misc/xmenu { };
+
+  xmlcopyeditor = callPackage ../applications/editors/xmlcopyeditor {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  xmp = callPackage ../applications/audio/xmp {
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio;
+  };
+
+  xnee = callPackage ../tools/X11/xnee { };
+
+  xnotify = callPackage ../tools/X11/xnotify { };
+
+  xpano = callPackage ../applications/graphics/xpano { };
+
+  xv = callPackage ../applications/graphics/xv { };
+
+  xygrib = libsForQt5.callPackage ../applications/misc/xygrib { };
+
+  xzgv = callPackage ../applications/graphics/xzgv { };
+
+  yabar = callPackage ../applications/window-managers/yabar { };
+
+  yabar-unstable = callPackage ../applications/window-managers/yabar/unstable.nix { };
+
+  yarp = callPackage ../applications/science/robotics/yarp { };
+
+  yate = callPackage ../applications/misc/yate { };
+
+  yaup = callPackage ../applications/networking/yaup { };
+
+  ydiff = with python3.pkgs; toPythonApplication ydiff;
+
+  ydict = callPackage ../applications/misc/ydict { };
+
+  yed = callPackage ../applications/graphics/yed { };
+
+  yeetgif = callPackage ../applications/graphics/yeetgif { };
+
+  inherit (gnome) yelp;
+
+  yelp-tools = callPackage ../development/misc/yelp-tools { };
+
+  yewtube = callPackage ../applications/misc/yewtube { };
+
+  yokadi = python3Packages.callPackage ../applications/misc/yokadi { };
+
+  yoshimi = callPackage ../applications/audio/yoshimi { };
+
+  your-editor = callPackage ../applications/editors/your-editor { stdenv = gccStdenv; };
+
+  youtube-dl = with python3Packages; toPythonApplication youtube-dl;
+
+  youtube-dl-light = with python3Packages; toPythonApplication youtube-dl-light;
+
+  youtube-music = callPackage ../applications/audio/youtube-music { };
+
+  youtube-tui = callPackage ../applications/video/youtube-tui {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
+  };
+
+  youki = callPackage ../applications/virtualization/youki { };
+
+  yt-dlp = with python3Packages; toPythonApplication yt-dlp;
+
+  yt-dlp-light = with python3Packages; toPythonApplication yt-dlp-light;
+
+  youtube-viewer = perlPackages.WWWYoutubeViewer;
+
+  ytalk = callPackage ../applications/networking/instant-messengers/ytalk { };
+
+  ytarchive = callPackage ../tools/misc/ytarchive { };
+
+  ytcast = callPackage ../tools/misc/ytcast { };
+
+  ytcc = callPackage ../tools/networking/ytcc { };
+
+  ytmdesktop = callPackage ../applications/audio/ytmdesktop { };
+
+  ytmdl = callPackage ../tools/misc/ytmdl { };
+
+  yutto = callPackage ../tools/misc/yutto { };
+
+  yuview = libsForQt5.yuview;
+
+  wallust = callPackage ../applications/misc/wallust { };
+
+  zam-plugins = callPackage ../applications/audio/zam-plugins { };
+
+  zammad = callPackage ../applications/networking/misc/zammad { };
+
+  zarf = callPackage ../applications/networking/cluster/zarf { };
+
+  zathuraPkgs = callPackage ../applications/misc/zathura { };
+  zathura = zathuraPkgs.zathuraWrapper;
+
+  zdns = callPackage ../tools/security/zdns { };
+
+  zerobin = callPackage ../applications/networking/zerobin { };
+
+  zeroc-ice = callPackage ../development/libraries/zeroc-ice { };
+
+  zeroc-ice-cpp11 = zeroc-ice.override { cpp11 = true; };
+
+  zeronet = callPackage ../applications/networking/p2p/zeronet { };
+
+  zeronet-conservancy = callPackage ../applications/networking/p2p/zeronet-conservancy { };
+
+  zexy = callPackage ../applications/audio/pd-plugins/zexy {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  zgrab2 = callPackage ../tools/security/zgrab2 { };
+
+  zgrviewer = callPackage ../applications/graphics/zgrviewer { };
+
+  zgv = callPackage ../applications/graphics/zgv {
+    # Enable the below line for terminal display. Note
+    # that it requires sixel graphics compatible terminals like mlterm
+    # or xterm -ti 340
+    SDL = SDL_sixel;
+  };
+
+  zim = callPackage ../applications/office/zim { };
+
+  zine = callPackage ../applications/misc/zine { };
+
+  zita-ajbridge = callPackage ../applications/audio/zita-ajbridge { };
+
+  zita-at1 = callPackage ../applications/audio/zita-at1 { };
+
+  zita-njbridge = callPackage ../applications/audio/zita-njbridge { };
+
+  zola = callPackage ../applications/misc/zola {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  zoom-us = callPackage ../applications/networking/instant-messengers/zoom-us { };
+
+  zotero = callPackage ../applications/office/zotero { };
+
+  zotero_7 = callPackage ../applications/office/zotero/zotero_7.nix { };
+
+  zscroll = callPackage ../applications/misc/zscroll { };
+
+  zsteg = callPackage ../tools/security/zsteg { };
+
+  zx = callPackage ../tools/system/zx { };
+
+  zxfer = callPackage ../applications/system/zxfer { };
+
+  zynaddsubfx = callPackage ../applications/audio/zynaddsubfx {
+    guiModule = "zest";
+    fftw = fftwSinglePrec;
+  };
+
+  zynaddsubfx-fltk = zynaddsubfx.override {
+    guiModule = "fltk";
+  };
+
+  zynaddsubfx-ntk = zynaddsubfx.override {
+    guiModule = "ntk";
+  };
+
+  ### BLOCKCHAINS / CRYPTOCURRENCIES / WALLETS
+
+  aeon = callPackage ../applications/blockchains/aeon { };
+
+  alfis = callPackage ../applications/blockchains/alfis {
+    inherit (darwin.apple_sdk.frameworks) Cocoa Security WebKit;
+    inherit (gnome) zenity;
+  };
+  alfis-nogui = alfis.override {
+    withGui = false;
+  };
+
+  aperture = callPackage ../applications/blockchains/aperture { };
+
+  backdown = callPackage ../tools/misc/backdown { };
+
+  balanceofsatoshis = callPackage ../tools/misc/balanceofsatoshis { };
+
+  bitcoin  = libsForQt5.callPackage ../applications/blockchains/bitcoin {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    withGui = true;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  bitcoind = callPackage ../applications/blockchains/bitcoin {
+    withGui = false;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  bitcoind-knots = callPackage ../applications/blockchains/bitcoin-knots {
+    withGui = false;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  btcd = callPackage ../applications/blockchains/btcd { };
+
+  cgminer = callPackage ../applications/blockchains/cgminer { };
+
+  chia = throw "chia has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  chia-dev-tools = throw "chia-dev-tools has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  chia-plotter = throw "chia-plotter has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  clboss = callPackage ../applications/blockchains/clboss { };
+
+  clightning = callPackage ../applications/blockchains/clightning { };
+
+  besu = callPackage ../applications/blockchains/besu { };
+
+  bitcoin-abc  = libsForQt5.callPackage ../applications/blockchains/bitcoin-abc {
+    withGui = true;
+    protobuf = protobuf_21;
+  };
+  bitcoind-abc = callPackage ../applications/blockchains/bitcoin-abc {
+    mkDerivation = stdenv.mkDerivation;
+    protobuf = protobuf_21;
+    withGui = false;
+  };
+
+  bitcoin-unlimited  = libsForQt5.callPackage ../applications/blockchains/bitcoin-unlimited {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    withGui = true;
+  };
+  bitcoind-unlimited = callPackage ../applications/blockchains/bitcoin-unlimited {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    withGui = false;
+  };
+
+  btcpayserver = callPackage ../applications/blockchains/btcpayserver { };
+
+  btcpayserver-altcoins = callPackage ../applications/blockchains/btcpayserver { altcoinSupport = true; };
+
+  charge-lnd = callPackage ../applications/blockchains/charge-lnd { };
+
+  cryptop = python3.pkgs.callPackage ../applications/blockchains/cryptop { };
+
+  dcrctl = callPackage ../applications/blockchains/dcrctl { };
+  dcrd = callPackage ../applications/blockchains/dcrd { };
+  dcrwallet = callPackage ../applications/blockchains/dcrwallet {
+    buildGoModule = buildGo120Module;
+  };
+
+  dogecoin  = libsForQt5.callPackage ../applications/blockchains/dogecoin {
+    withGui = true;
+  };
+  dogecoind = callPackage ../applications/blockchains/dogecoin {
+    withGui = false;
+  };
+
+  eclair = callPackage ../applications/blockchains/eclair { };
+
+  electrs = callPackage ../applications/blockchains/electrs {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  elements  = libsForQt5.callPackage ../applications/blockchains/elements {
+    withGui = true;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+  elementsd = callPackage ../applications/blockchains/elements {
+    withGui = false;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+  elementsd-simplicity = elementsd.overrideAttrs {
+    version = "unstable-2023-04-18";
+    src = fetchFromGitHub {
+      owner = "ElementsProject";
+      repo = "elements";
+      rev = "ea318a45094ab3d31dd017d7781a6f28f1ffaa33"; # simplicity branch latest
+      hash = "sha256-ooe+If3HWaJWpr2ux7DpiCTqB9Hv+aXjquEjplDjvhM=";
+    };
+  };
+
+  ergo = callPackage ../applications/blockchains/ergo { };
+
+  erigon = callPackage ../applications/blockchains/erigon { };
+
+  exodus = callPackage ../applications/blockchains/exodus { };
+
+  faraday = callPackage ../applications/blockchains/faraday { };
+
+  fulcrum = libsForQt5.callPackage ../applications/blockchains/fulcrum { };
+
+  go-ethereum = callPackage ../applications/blockchains/go-ethereum {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  go-exploitdb = callPackage ../tools/security/go-exploitdb { };
+
+  gridcoin-research = libsForQt5.callPackage ../applications/blockchains/gridcoin-research {
+    boost = boost179;
+  };
+
+  groestlcoin  = libsForQt5.callPackage ../applications/blockchains/groestlcoin {
+    stdenv = darwin.apple_sdk_11_0.stdenv;
+    withGui = true;
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  groestlcoind = callPackage ../applications/blockchains/groestlcoin {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
+
+  ledger_agent = with python3Packages; toPythonApplication ledger_agent;
+
+  ledger-live-desktop = callPackage ../applications/blockchains/ledger-live-desktop { };
+
+  lightning-loop = callPackage ../applications/blockchains/lightning-loop { };
+
+  lightning-pool = callPackage ../applications/blockchains/lightning-pool { };
+
+  litecoin  = libsForQt5.callPackage ../applications/blockchains/litecoin {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+    boost = pkgs.boost177;
+  };
+  litecoind = litecoin.override { withGui = false; };
+
+  livedl = callPackage ../tools/misc/livedl { };
+
+  lnd = callPackage ../applications/blockchains/lnd { };
+
+  lndconnect = callPackage ../applications/blockchains/lndconnect { };
+
+  lndinit = callPackage ../applications/blockchains/lndinit { };
+
+  lndhub-go = callPackage ../applications/blockchains/lndhub-go { };
+
+  lndmanage = callPackage ../applications/blockchains/lndmanage { };
+
+  monero-cli = callPackage ../applications/blockchains/monero-cli {
+    inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
+  };
+
+  haven-cli = callPackage ../applications/blockchains/haven-cli {
+    inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
+  };
+
+  monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui { };
+
+  masari = callPackage ../applications/blockchains/masari { };
+
+  napari = with python3Packages; toPythonApplication napari;
+
+  nano-wallet = libsForQt5.callPackage ../applications/blockchains/nano-wallet { };
+
+  namecoind = callPackage ../applications/blockchains/namecoin { };
+
+  nbxplorer = callPackage ../applications/blockchains/nbxplorer { };
+
+  pivx = libsForQt5.callPackage ../applications/blockchains/pivx { withGui = true; };
+  pivxd = callPackage ../applications/blockchains/pivx {
+    withGui = false;
+    qtbase = null;
+    qttools = null;
+    wrapQtAppsHook = null;
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
+
+  ethabi = callPackage ../applications/blockchains/ethabi { };
+
+  pycoin = with python3Packages; toPythonApplication pycoin;
+
+  stellar-core = callPackage ../applications/blockchains/stellar-core { };
+
+  sumokoin = callPackage ../applications/blockchains/sumokoin { };
+
+  solana-cli = callPackage ../applications/blockchains/solana { };
+
+  solana-validator = callPackage ../applications/blockchains/solana-validator { };
+
+  snarkos = callPackage ../applications/blockchains/snarkos {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  taproot-assets = callPackage ../applications/blockchains/taproot-assets { };
+
+  inherit (callPackages ../applications/blockchains/teos { })
+    teos
+    teos-watchtower-plugin;
+
+  terra-station = callPackage ../applications/blockchains/terra-station { };
+
+  tessera = callPackage ../applications/blockchains/tessera { };
+
+  ton = callPackage ../applications/blockchains/ton { };
+
+  torq = callPackage ../applications/blockchains/torq { };
+
+  vertcoin  = libsForQt5.callPackage ../applications/blockchains/vertcoin {
+    withGui = true;
+  };
+  vertcoind = callPackage ../applications/blockchains/vertcoin {
+    withGui = false;
+  };
+
+  wasabiwallet = callPackage ../applications/blockchains/wasabiwallet { };
+
+  wasabibackend = callPackage ../applications/blockchains/wasabibackend { };
+
+  wownero = callPackage ../applications/blockchains/wownero { };
+
+  zcash = callPackage ../applications/blockchains/zcash {
+    inherit (darwin.apple_sdk.frameworks) Security;
+    stdenv = llvmPackages_14.stdenv;
+  };
+
+  zecwallet-lite = callPackage ../applications/blockchains/zecwallet-lite { };
+
+  lightwalletd = callPackage ../applications/blockchains/lightwalletd { };
+
+  openethereum = callPackage ../applications/blockchains/openethereum { };
+
+  polkadot = callPackage ../applications/blockchains/polkadot {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
+  particl-core = callPackage ../applications/blockchains/particl-core { };
+
+  quorum = callPackage ../applications/blockchains/quorum { };
+
+  samplv1 = libsForQt5.callPackage ../applications/audio/samplv1 { };
+
+  scaleft = callPackage ../applications/networking/scaleft { };
+
+  scaleway-cli = callPackage ../tools/admin/scaleway-cli { };
+
+  beancount = with python3.pkgs; toPythonApplication beancount;
+
+  beancount-black = with python3.pkgs; toPythonApplication beancount-black;
+
+  bean-add = callPackage ../applications/office/beancount/bean-add.nix { };
+
+  bench = haskell.lib.compose.justStaticExecutables haskellPackages.bench;
+
+  cri-o = callPackage ../applications/virtualization/cri-o/wrapper.nix { };
+  cri-o-unwrapped = callPackage ../applications/virtualization/cri-o { };
+
+  conceal = callPackage ../applications/misc/conceal { };
+
+  confd = callPackage ../tools/system/confd { };
+
+  conmon = callPackage ../applications/virtualization/conmon { };
+
+  conmon-rs = callPackage ../applications/virtualization/conmon-rs { };
+
+  digikam = libsForQt5.callPackage ../applications/graphics/digikam { };
+
+  drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { };
+
+  eureka-ideas = callPackage ../applications/misc/eureka-ideas {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  fava = callPackage ../applications/office/fava { };
+
+  nux = callPackage ../tools/misc/nux { };
+
+  phonemizer = with python3Packages; toPythonApplication phonemizer;
+
+  tts = callPackage ../tools/audio/tts { };
+
+  wyoming-faster-whisper = callPackage ../tools/audio/wyoming/faster-whisper.nix { };
+
+  wyoming-openwakeword = callPackage ../tools/audio/wyoming/openwakeword.nix { };
+
+  wyoming-piper = callPackage ../tools/audio/wyoming/piper.nix { };
+
+  ### GAMES
+
+  _1oom = callPackage ../games/1oom { };
+
+  _2048-cli = _2048-cli-terminal;
+  _2048-cli-curses = callPackage ../games/2048-cli { ui = "curses"; };
+  _2048-cli-terminal = callPackage ../games/2048-cli { ui = "terminal"; };
+
+  _2048-in-terminal = callPackage ../games/2048-in-terminal { };
+
+  _20kly = callPackage ../games/20kly { };
+
+  _90secondportraits = callPackage ../games/90secondportraits { love = love_0_10; };
+
+  ace-of-penguins = callPackage ../games/ace-of-penguins { };
+
+  among-sus = callPackage ../games/among-sus { };
+
+  antsimulator = callPackage ../games/antsimulator { };
+
+  atlauncher = callPackage ../games/atlauncher { };
+
+  augustus = callPackage ../games/augustus { };
+
+  ballerburg = callPackage ../games/ballerburg { } ;
+
+  blockattack = callPackage ../games/blockattack { } ;
+
+  colobot = callPackage ../games/colobot { };
+
+  corsix-th = callPackage ../games/corsix-th { };
+
+  enigma = callPackage ../games/enigma { };
+
+  everspace = callPackage ../games/everspace { };
+
+  ezquake = callPackage ../games/ezquake { };
+
+  freedroid = callPackage ../games/freedroid { };
+
+  freedroidrpg = callPackage ../games/freedroidrpg { };
+
+  freenukum = callPackage ../games/freenukum { };
+
+  inherit (callPackages ../games/fteqw {})
+    fteqw
+    fteqw-dedicated
+    fteqcc;
+
+  gamepad-tool = callPackage ../games/gamepad-tool { };
+
+  gnome-hexgl = callPackage ../games/gnome-hexgl { };
+
+  gotypist = callPackage ../games/gotypist { };
+
+  heroic-unwrapped = callPackage ../games/heroic {
+    # Match the version used by the upstream package.
+    electron = electron_27;
+  };
+
+  heroic = callPackage ../games/heroic/fhsenv.nix { };
+
+  julius = callPackage ../games/julius { };
+
+  jumpnbump = callPackage ../games/jumpnbump { };
+
+  katawa-shoujo = callPackage ../games/katawa-shoujo { };
+
+  keeperrl = callPackage ../games/keeperrl { };
+
+  shipwright = callPackage ../games/shipwright { };
+
+  wipeout-rewrite = callPackage ../games/wipeout-rewrite {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  ### GAMES/DOOM-PORTS
+
+  dhewm3 = callPackage ../games/doom-ports/dhewm3 { };
+
+  doomseeker = qt5.callPackage ../games/doom-ports/doomseeker { };
+
+  doomretro = callPackage ../games/doom-ports/doomretro {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  doomrunner = qt5.callPackage ../games/doom-ports/doomrunner { };
+
+  chocolate-doom = callPackage ../games/doom-ports/chocolate-doom { };
+
+  crispy-doom = callPackage ../games/doom-ports/crispy-doom { };
+
+  eureka-editor = callPackage ../games/doom-ports/eureka-editor { };
+
+  enyo-launcher = libsForQt5.callPackage ../games/doom-ports/enyo-launcher { };
+
+  eternity = callPackage ../games/doom-ports/eternity-engine { };
+
+  gzdoom = callPackage ../games/doom-ports/gzdoom { };
+
+  odamex = callPackage ../games/doom-ports/odamex { };
+
+  prboom-plus = callPackage ../games/doom-ports/prboom-plus { };
+
+  rbdoom-3-bfg = callPackage ../games/doom-ports/rbdoom-3-bfg { };
+
+  slade = callPackage ../games/doom-ports/slade {
+    wxGTK = (wxGTK32.overrideAttrs {
+      patches = [
+       (fetchpatch { # required to run slade 3.2.4 on wxGTK 3.2.4, see PR #266945
+         url = "https://github.com/wxWidgets/wxWidgets/commit/425d9455e8307c1267a79d47d77e3dafeb4d86de.patch";
+         excludes = [ "docs/changes.txt" ];
+         revert = true;
+         hash = "sha256-6LOYLDLtVCHxNdHAWv3zhlCsljIpi//RJb9XVLGD5hM=";
+       })
+     ];
+    }).override {
+      withWebKit = true;
+    };
+  };
+
+  sladeUnstable = callPackage ../games/doom-ports/slade/git.nix {
+    wxGTK = (wxGTK32.overrideAttrs {
+      patches = [
+       (fetchpatch { # required to run sladeUnstable unstable-2023-09-30 on wxGTK 3.2.4, see PR #266945
+         url = "https://github.com/wxWidgets/wxWidgets/commit/425d9455e8307c1267a79d47d77e3dafeb4d86de.patch";
+         excludes = [ "docs/changes.txt" ];
+         revert = true;
+         hash = "sha256-6LOYLDLtVCHxNdHAWv3zhlCsljIpi//RJb9XVLGD5hM=";
+       })
+     ];
+    }).override {
+      withWebKit = true;
+    };
+  };
+
+  zandronum = callPackage ../games/doom-ports/zandronum { };
+
+  zandronum-server = zandronum.override {
+    serverOnly = true;
+  };
+
+  fmodex = callPackage ../games/doom-ports/zandronum/fmod.nix { };
+
+  doom-bcc = callPackage ../games/doom-ports/zdoom/bcc-git.nix { };
+
+  zdbsp = callPackage ../games/doom-ports/zdoom/zdbsp.nix { };
+
+  zdoom = callPackage ../games/doom-ports/zdoom { };
+
+  ### GAMES/LGAMES
+
+  barrage = callPackage ../games/lgames/barrage { };
+
+  lbreakout2 = callPackage ../games/lgames/lbreakout2 { };
+
+  lbreakouthd = callPackage ../games/lgames/lbreakouthd { };
+
+  lpairs2 = callPackage ../games/lgames/lpairs2 { };
+
+  ltris = callPackage ../games/lgames/ltris { };
+
+  maelstrom = callPackage ../games/maelstrom { };
+
+  mar1d = callPackage ../games/mar1d { } ;
+
+  oh-my-git = callPackage ../games/oh-my-git { };
+
+  opendune = callPackage ../games/opendune { };
+
+  openrct2 = callPackage ../games/openrct2 { };
+
+  opensearch = callPackage ../servers/search/opensearch { };
+
+  osu-lazer = callPackage ../games/osu-lazer { };
+
+  osu-lazer-bin = callPackage ../games/osu-lazer/bin.nix { };
+
+  pro-office-calculator = libsForQt5.callPackage ../games/pro-office-calculator { };
+
+  qgo = libsForQt5.callPackage ../games/qgo { };
+
+  rotp = callPackage ../games/rotp { };
+
+  rpg-cli = callPackage ../games/rpg-cli { };
+
+  runelite = callPackage ../games/runelite { };
+
+  runescape = callPackage ../games/runescape-launcher { };
+
+  sm64ex = callPackage ../games/sm64ex {
+    branch = "sm64ex";
+  };
+
+  sm64ex-coop = callPackage ../games/sm64ex {
+    branch = "sm64ex-coop";
+  };
+
+  snipes = callPackage ../games/snipes { };
+
+  unvanquished = callPackage ../games/unvanquished { };
+
+  xbill = callPackage ../games/xbill { };
+
+  xmage = callPackage ../games/xmage { };
+
+  abbaye-des-morts = callPackage ../games/abbaye-des-morts { };
+
+  abuse = callPackage ../games/abuse { };
+
+  adom = callPackage ../games/adom { };
+
+  airshipper = callPackage ../games/airshipper { };
+
+  airstrike = callPackage ../games/airstrike { };
+
+  alienarena = callPackage ../games/alienarena { };
+
+  amoeba = callPackage ../games/amoeba { };
+  amoeba-data = callPackage ../games/amoeba/data.nix { };
+
+  andyetitmoves = callPackage ../games/andyetitmoves { };
+
+  angband = callPackage ../games/angband { };
+
+  animatch = callPackage ../games/animatch { };
+
+  anki = callPackage ../games/anki {
+    inherit (darwin.apple_sdk.frameworks) AVKit CoreAudio;
+  };
+  anki-bin = callPackage ../games/anki/bin.nix { };
+  anki-sync-server = callPackage ../games/anki/sync-server.nix { };
+
+  armagetronad = callPackage ../games/armagetronad { };
+
+  armagetronad-dedicated = callPackage ../games/armagetronad { dedicatedServer = true; };
+
+  arena = callPackage ../games/arena { };
+
+  arx-libertatis = libsForQt5.callPackage ../games/arx-libertatis { };
+
+  asc = callPackage ../games/asc {
+    lua = lua5_1;
+    physfs = physfs_2;
+  };
+
+  assaultcube = callPackage ../games/assaultcube { };
+
+  astromenace = callPackage ../games/astromenace { };
+
+  atanks = callPackage ../games/atanks { };
+
+  azimuth = callPackage ../games/azimuth { };
+
+  banner = callPackage ../games/banner { };
+
+  bastet = callPackage ../games/bastet { };
+
+  beancount-ing-diba = callPackage ../applications/office/beancount/beancount-ing-diba.nix { };
+
+  black-hole-solver = callPackage ../games/black-hole-solver {
+    inherit (perlPackages) PathTiny;
+  };
+
+  blackshades = callPackage ../games/blackshades { };
+
+  blobby = callPackage ../games/blobby { };
+
+  blobwars = callPackage ../games/blobwars { };
+
+  boohu = callPackage ../games/boohu { };
+
+  braincurses = callPackage ../games/braincurses { };
+
+  brogue = callPackage ../games/brogue { };
+
+  brogue-ce = callPackage ../games/brogue-ce { };
+
+  brutalmaze = callPackage ../games/brutalmaze { };
+
+  bsdgames = callPackage ../games/bsdgames { };
+
+  btanks = callPackage ../games/btanks { };
+
+  bugdom = callPackage ../games/bugdom {
+    inherit (darwin.apple_sdk.frameworks) IOKit Foundation;
+  };
+
+  bzflag = callPackage ../games/bzflag {
+    inherit (darwin.apple_sdk.frameworks) Carbon CoreServices;
+  };
+
+  cataclysmDDA = callPackage ../games/cataclysm-dda { };
+
+  cataclysm-dda = cataclysmDDA.stable.tiles;
+
+  cataclysm-dda-git = cataclysmDDA.git.tiles;
+
+  cbonsai = callPackage ../games/cbonsai { };
+
+  cdogs-sdl = callPackage ../games/cdogs-sdl { };
+
+  cgoban = callPackage ../games/cgoban { };
+
+  chessdb = callPackage ../games/chessdb { };
+
+  chessx = libsForQt5.callPackage ../games/chessx { };
+
+  chiaki = libsForQt5.callPackage ../games/chiaki { };
+
+  chiaki4deck = libsForQt5.callPackage ../games/chiaki4deck { };
+
+  chromium-bsu = callPackage ../games/chromium-bsu { };
+
+  clonehero = callPackage ../games/clonehero { };
+
+  vintagestory = callPackage ../games/vintagestory { };
+
+  ckan = callPackage ../games/ckan { };
+
+  cockatrice = libsForQt5.callPackage ../games/cockatrice {
+    protobuf = protobuf_21;
+  };
+
+  commandergenius = callPackage ../games/commandergenius { };
+
+  construoBase = lowPrio (callPackage ../games/construo {
+    libGL = null;
+    libGLU = null;
+    freeglut = null;
+  });
+
+  construo = construoBase.override {
+    inherit libGL libGLU freeglut;
+  };
+
+  crack_attack = callPackage ../games/crack-attack { };
+
+  crawlTiles = callPackage ../games/crawl {
+    tileMode = true;
+  };
+
+  crawl = callPackage ../games/crawl { };
+
+  inherit (import ../games/crossfire pkgs)
+    crossfire-server crossfire-arch crossfire-maps crossfire-client;
+
+  crrcsim = callPackage ../games/crrcsim { };
+
+  curseofwar = callPackage ../games/curseofwar { SDL = null; };
+  curseofwar-sdl = callPackage ../games/curseofwar { ncurses = null; };
+
+  cutechess = qt5.callPackage ../games/cutechess { };
+
+  cutemaze = qt6Packages.callPackage ../games/cutemaze { };
+
+  cuyo = callPackage ../games/cuyo { };
+
+  darkplaces = callPackage ../games/darkplaces { };
+
+  deliantra-server = callPackage ../games/deliantra/server.nix {
+    # perl538 defines 'struct object' in sv.h. many conflicts result
+    perl = perl536;
+    perlPackages = perl536Packages;
+  };
+  deliantra-arch = callPackage ../games/deliantra/arch.nix { };
+  deliantra-maps = callPackage ../games/deliantra/maps.nix { };
+  deliantra-data = callPackage ../games/deliantra/data.nix { };
+
+  ddnet = callPackage ../games/ddnet {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa OpenGL Security;
+  };
+  ddnet-server = ddnet.override { buildClient = false; };
+
+  ddns-go = callPackage ../tools/networking/ddns-go { };
+
+  devilutionx = callPackage ../games/devilutionx {
+    fmt = fmt_9;
+    SDL2 = SDL2.override {
+      withStatic = true;
+    };
+  };
+
+  domination = callPackage ../games/domination { };
+
+  duckmarines = callPackage ../games/duckmarines { love = love_0_10; };
+
+  dwarf-fortress-packages = recurseIntoAttrs (callPackage ../games/dwarf-fortress { });
+
+  dwarf-fortress = dwarf-fortress-packages.dwarf-fortress;
+
+  dwarf-therapist = dwarf-fortress-packages.dwarf-therapist;
+
+  dxx-rebirth = callPackage ../games/dxx-rebirth { };
+
+  inherit (callPackages ../games/dxx-rebirth/assets.nix { })
+    descent1-assets
+    descent2-assets;
+
+  inherit (callPackages ../games/dxx-rebirth/full.nix { })
+    d1x-rebirth-full
+    d2x-rebirth-full;
+
+  easyrpg-player = callPackage ../games/easyrpg-player {
+    inherit (darwin.apple_sdk.frameworks) Foundation AudioUnit AudioToolbox;
+  };
+
+  eboard = callPackage ../games/eboard { };
+
+  ecwolf = callPackage ../games/ecwolf { };
+
+  eduke32 = callPackage ../games/eduke32 {
+    inherit (darwin.apple_sdk.frameworks) AGL Cocoa GLUT OpenGL;
+  };
+
+  egoboo = callPackage ../games/egoboo { };
+
+  eidolon = callPackage ../games/eidolon { };
+
+  EmptyEpsilon = callPackage ../games/empty-epsilon { };
+
+  endgame-singularity = callPackage ../games/endgame-singularity { };
+
+  endless-sky = callPackage ../games/endless-sky { };
+
+  extremetuxracer = callPackage ../games/extremetuxracer { };
+
+  exult = callPackage ../games/exult { };
+
+  fallout-ce = callPackage ../games/fallout-ce/fallout-ce.nix { };
+  fallout2-ce = callPackage ../games/fallout-ce/fallout2-ce.nix { };
+
+  flare = callPackage ../games/flare {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  fltrator = callPackage ../games/fltrator {
+    fltk = fltk-minimal;
+  };
+
+  factorio = callPackage ../games/factorio { releaseType = "alpha"; };
+
+  factorio-experimental = factorio.override { releaseType = "alpha"; experimental = true; };
+
+  factorio-headless = factorio.override { releaseType = "headless"; };
+
+  factorio-headless-experimental = factorio.override { releaseType = "headless"; experimental = true; };
+
+  factorio-demo = factorio.override { releaseType = "demo"; };
+
+  factorio-mods = callPackage ../games/factorio/mods.nix { };
+
+  factorio-utils = callPackage ../games/factorio/utils.nix { };
+
+  fairymax = callPackage ../games/fairymax { };
+
+  ferium = callPackage ../games/ferium {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  fheroes2 = callPackage ../games/fheroes2 { };
+
+  fish-fillets-ng = callPackage ../games/fish-fillets-ng { };
+
+  jumpy = callPackage ../games/jumpy { };
+
+  flightgear = libsForQt5.callPackage ../games/flightgear { };
+
+  flock = callPackage ../development/tools/flock { };
+
+  forge-mtg = callPackage ../games/forge-mtg { };
+
+  freeciv = callPackage ../games/freeciv {
+    sdl2Client = false;
+    gtkClient = true;
+    qtClient = false;
+  };
+
+  freeciv_sdl2 = freeciv.override {
+    sdl2Client = true;
+    gtkClient = false;
+    qtClient = false;
+  };
+
+  freeciv_qt = freeciv.override {
+    sdl2Client = false;
+    gtkClient = false;
+    qtClient = true;
+  };
+
+  freeciv_gtk = freeciv;
+
+  freedink = callPackage ../games/freedink { };
+
+  freeorion = callPackage ../games/freeorion { };
+
+  freesweep = callPackage ../games/freesweep { };
+
+  frotz = callPackage ../games/frotz { };
+
+  frogatto = callPackage ../games/frogatto { };
+
+  frozen-bubble = callPackage ../games/frozen-bubble { };
+
+  fsg = callPackage ../games/fsg { };
+
+  galaxis = callPackage ../games/galaxis { };
+
+  gambit-chess = callPackage ../games/gambit { };
+
+  garden-of-coloured-lights = callPackage ../games/garden-of-coloured-lights { allegro = allegro4; };
+
+  gargoyle = callPackage ../games/gargoyle {
+    inherit (darwin) cctools;
+  };
+
+  gav = callPackage ../games/gav { };
+
+  gcs = callPackage ../games/gcs { };
+
+  gcompris = libsForQt5.callPackage ../games/gcompris { };
+
+  gemrb = callPackage ../games/gemrb { };
+
+  gimx = callPackage ../games/gimx { };
+
+  gl117 = callPackage ../games/gl-117 { };
+
+  globulation2 = callPackage ../games/globulation { };
+
+  gltron = callPackage ../games/gltron { };
+
+  gl-gsync-demo = callPackage ../games/gl-gsync-demo {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+  };
+
+  gmad = callPackage ../games/gmad { };
+
+  gnonograms = callPackage ../games/gnonograms { };
+
+  gnubg = callPackage ../games/gnubg { };
+
+  gnuchess = callPackage ../games/gnuchess { };
+
+  gnugo = callPackage ../games/gnugo { };
+
+  gnujump = callPackage ../games/gnujump { };
+
+  gnushogi = callPackage ../games/gnushogi { };
+
+  gogdl = python3Packages.callPackage ../games/gogdl { };
+
+  gogui = callPackage ../games/gogui { };
+
+  gscrabble = python3Packages.callPackage ../games/gscrabble { };
+
+  gshogi = python3Packages.callPackage ../games/gshogi { };
+
+  qtads = qt5.callPackage ../games/qtads { };
+
+  grapejuice = callPackage ../games/grapejuice {
+    wine = wineWowPackages.unstable;
+  };
+
+  graphwar = callPackage ../games/graphwar { };
+
+  gtetrinet = callPackage ../games/gtetrinet {
+    inherit (gnome2) GConf libgnome libgnomeui;
+  };
+
+  gtypist = callPackage ../games/gtypist { };
+
+  gweled = callPackage ../games/gweled { };
+
+  harmonist = callPackage ../games/harmonist { };
+
+  hase = callPackage ../games/hase { };
+
+  hedgewars = libsForQt5.callPackage ../games/hedgewars {
+    inherit (haskellPackages) ghcWithPackages;
+  };
+
+  hikounomizu = callPackage ../games/hikounomizu { };
+
+  hmcl = callPackage ../games/hmcl { };
+
+  hyperrogue = callPackage ../games/hyperrogue { };
+
+  ibmcloud-cli = callPackage ../tools/admin/ibmcloud-cli { stdenv = stdenvNoCC; };
+
+  icbm3d = callPackage ../games/icbm3d { };
+
+  infra = callPackage ../tools/admin/infra { };
+
+  infra-arcana = callPackage ../games/infra-arcana { };
+
+  ingen = callPackage ../applications/audio/ingen { };
+
+  ideogram = callPackage ../applications/graphics/ideogram { };
+
+  instaloader = python3Packages.callPackage ../tools/misc/instaloader { };
+
+  instead = callPackage ../games/instead { };
+
+  iortcw = callPackage ../games/iortcw { };
+  # used as base package for iortcw forks
+  iortcw_sp = callPackage ../games/iortcw/sp.nix { };
+
+  ironwail = callPackage ../games/ironwail { };
+
+  ivan = callPackage ../games/ivan { };
+
+  ja2-stracciatella = callPackage ../games/ja2-stracciatella {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+
+  jfsw = callPackage ../games/jfsw { };
+
+  katago = callPackage ../games/katago { };
+
+  katagoWithCuda = katago.override {
+    backend = "cuda";
+  };
+
+  katagoCPU = katago.override {
+    backend = "eigen";
+  };
+
+  katagoTensorRT = katago.override {
+    backend = "tensorrt";
+  };
+
+  klavaro = callPackage ../games/klavaro { };
+
+  kobodeluxe = callPackage ../games/kobodeluxe { };
+
+  koboredux = callPackage ../games/koboredux { };
+
+  koboredux-free = callPackage ../games/koboredux {
+    useProprietaryAssets = false;
+  };
+
+  koules = callPackage ../games/koules { };
+
+  ldmud = callPackage ../games/ldmud { };
+
+  ldmud-full = callPackage ../games/ldmud {
+    ipv6Support = true;
+    mccpSupport = true;
+    mysqlSupport = true;
+    postgresSupport = true;
+    sqliteSupport = true;
+    tlsSupport = true;
+    pythonSupport = true;
+  };
+
+  leela-zero = libsForQt5.callPackage ../games/leela-zero { };
+
+  legendary-gl = python3Packages.callPackage ../games/legendary-gl { };
+
+  left4gore-bin = callPackage ../games/left4gore { };
+
+  lgogdownloader = libsForQt5.callPackage ../games/lgogdownloader { };
+
+  liberal-crime-squad = callPackage ../games/liberal-crime-squad { };
+
+  liberation-circuit = callPackage ../games/liberation-circuit { };
+
+  lincity = callPackage ../games/lincity { };
+
+  lincity_ng = callPackage ../games/lincity/ng.nix {
+    # https://github.com/lincity-ng/lincity-ng/issues/25
+    physfs = physfs_2;
+  };
+
+  liquidwar = callPackage ../games/liquidwar {
+    guile = guile_2_0;
+  };
+
+  liquidwar5 = callPackage ../games/liquidwar/5.nix {
+  };
+
+  lugaru = callPackage ../games/lugaru { };
+
+  macopix = callPackage ../games/macopix {
+    gtk = gtk2;
+  };
+
+  maptool = callPackage ../games/maptool {
+    # MapTool is fussy about which JRE it uses; OpenJDK will leave it hanging
+    # at launch in a class initialization deadlock. MapTool ships Temurin with
+    # their pre-built releases so we might as well use it too.
+    jre = temurin-bin-17;
+    openjfx = openjfx17;
+  };
+
+  mari0 = callPackage ../games/mari0 { };
+
+  manaplus = callPackage ../games/manaplus { stdenv = gcc11Stdenv; };
+
+  marble-marcher-ce = callPackage ../games/marble-marcher-ce { };
+
+  mars = callPackage ../games/mars { };
+
+  mchprs = callPackage ../games/mchprs { };
+
+  megaglest = callPackage ../games/megaglest { };
+
+  methane = callPackage ../games/methane { };
+
+  mindustry = callPackage ../games/mindustry { };
+  mindustry-wayland = callPackage ../games/mindustry {
+    enableWayland = true;
+  };
+
+  mindustry-server = callPackage ../games/mindustry {
+    enableClient = false;
+    enableServer = true;
+  };
+
+  minecraft = callPackage ../games/minecraft { };
+
+  minecraft-server-hibernation = callPackage ../tools/games/minecraft/minecraft-server-hibernation { };
+
+  minecraftServers = import ../games/minecraft-servers { inherit callPackage lib javaPackages; };
+  minecraft-server = minecraftServers.vanilla; # backwards compatibility
+
+  minesweep-rs = callPackage ../games/minesweep-rs { };
+
+  moon-buggy = callPackage ../games/moon-buggy { };
+
+  minetest = callPackage ../games/minetest {
+    inherit (darwin.apple_sdk.frameworks) OpenGL OpenAL Carbon Cocoa;
+  };
+  minetestclient = minetest.override { buildServer = false; };
+  minetest-touch = minetest.override { buildServer = false; withTouchSupport = true; };
+  minetestserver = minetest.override { buildClient = false; };
+
+  mnemosyne = callPackage ../games/mnemosyne {
+    python = python3;
+  };
+
+  mrrescue = callPackage ../games/mrrescue { love = love_0_10; };
+
+  mudlet = libsForQt5.callPackage ../games/mudlet {
+    lua = lua5_1;
+  };
+
+  blightmud = callPackage ../games/blightmud { };
+
+  blightmud-tts = callPackage ../games/blightmud { withTTS = true; };
+
+  n2048 = callPackage ../games/n2048 { };
+
+  naev = callPackage ../games/naev { };
+
+  nanosaur = callPackage ../games/nanosaur { };
+
+  nanosaur2 = callPackage ../games/nanosaur2 { };
+
+  nethack = callPackage ../games/nethack { };
+
+  nethack-qt = callPackage ../games/nethack {
+    qtMode = true;
+    stdenv = gccStdenv;
+  };
+
+  nethack-x11 = callPackage ../games/nethack { x11Mode = true; };
+
+  netris = callPackage ../games/netris { };
+
+  neverball = callPackage ../games/neverball { };
+
+  nexuiz = callPackage ../games/nexuiz { };
+
+  nile = python3Packages.callPackage ../games/nile { };
+
+  ninvaders = callPackage ../games/ninvaders { };
+
+  njam = callPackage ../games/njam { };
+
+  npush = callPackage ../games/npush { };
+  run-npush = callPackage ../games/npush/run.nix { };
+
+  newtonwars = callPackage ../games/newtonwars { };
+
+  nsnake = callPackage ../games/nsnake { };
+
+  nudoku = callPackage ../games/nudoku { };
+
+  nxengine-evo = callPackage ../games/nxengine-evo { };
+
+  oilrush = callPackage ../games/oilrush { };
+
+  onscripter-en = callPackage ../games/onscripter-en { };
+
+  openarena = callPackage ../games/openarena { };
+
+  opendungeons = callPackage ../games/opendungeons { };
+
+  openlierox = callPackage ../games/openlierox { };
+
+  openclonk = callPackage ../games/openclonk { };
+
+  openjk = callPackage ../games/openjk { };
+
+  openloco = pkgsi686Linux.callPackage ../games/openloco { };
+
+  openmw = libsForQt5.callPackage ../games/openmw {
+    inherit (darwin.apple_sdk.frameworks) CoreMedia VideoDecodeAcceleration VideoToolbox;
+  };
+
+  openmw-tes3mp = libsForQt5.callPackage ../games/openmw/tes3mp.nix { };
+
+  opensoldat = callPackage ../games/opensoldat { };
+
+  portmod = callPackage ../games/portmod { };
+
+  tetrio-desktop = callPackage ../games/tetrio-desktop { };
+
+  tr-patcher = callPackage ../games/tr-patcher { };
+
+  tes3cmd = callPackage ../games/tes3cmd { };
+
+  otto-matic = callPackage ../games/otto-matic { };
+
+  openraPackages_2019 = import ../games/openra_2019 {
+    inherit lib;
+    pkgs = pkgs.__splicedPackages;
+  };
+
+  openra_2019 = openraPackages_2019.engines.release;
+
+  openraPackages = recurseIntoAttrs (callPackage ../games/openra {});
+
+  openra = openraPackages.engines.release;
+
+  openrw = callPackage ../games/openrw {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenAL;
+  };
+
+  openspades = callPackage ../games/openspades {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  openttd = callPackage ../games/openttd {
+    zlib = zlib.override {
+      static = true;
+    };
+  };
+  openttd-jgrpp = callPackage ../games/openttd/jgrpp.nix {
+    zlib = zlib.override {
+      static = true;
+    };
+  };
+  openttd-grfcodec = callPackage ../games/openttd/grfcodec.nix { };
+  openttd-nml = callPackage ../games/openttd/nml.nix { };
+
+  opentyrian = callPackage ../games/opentyrian { };
+
+  openxcom = callPackage ../games/openxcom { SDL = SDL_compat; };
+
+  openxray = callPackage ../games/openxray { };
+
+  orthorobot = callPackage ../games/orthorobot { love = love_0_10; };
+
+  pacvim = callPackage ../games/pacvim { };
+
+  papermc = callPackage ../games/papermc { };
+
+  path-of-building = qt6Packages.callPackage ../games/path-of-building {};
+
+  pentobi = libsForQt5.callPackage ../games/pentobi { };
+
+  performous = callPackage ../games/performous { };
+
+  pinball = callPackage ../games/pinball { };
+
+  pingus = callPackage ../games/pingus { };
+
+  pioneer = callPackage ../games/pioneer { };
+
+  pioneers = callPackage ../games/pioneers { };
+
+  planetary_annihilation = callPackage ../games/planetaryannihilation { };
+
+  principia = callPackage ../games/principia { };
+
+  prismlauncher-qt5-unwrapped = libsForQt5.callPackage ../games/prismlauncher {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  prismlauncher-qt5 = libsForQt5.callPackage ../games/prismlauncher/wrapper.nix { prismlauncher-unwrapped = prismlauncher-qt5-unwrapped; };
+
+  prismlauncher-unwrapped = qt6Packages.callPackage ../games/prismlauncher {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  prismlauncher = qt6Packages.callPackage ../games/prismlauncher/wrapper.nix { };
+
+  pong3d = callPackage ../games/pong3d { };
+
+  pokerth = libsForQt5.callPackage ../games/pokerth {
+    protobuf = protobuf_21;
+  };
+
+  pokerth-server = libsForQt5.callPackage ../games/pokerth {
+    target = "server";
+    protobuf = protobuf_21;
+  };
+
+  pokete = callPackage ../games/pokete { };
+
+  powermanga = callPackage ../games/powermanga { };
+
+  pysolfc = python3Packages.callPackage ../games/pysolfc { };
+
+  qq = callPackage ../applications/networking/instant-messengers/qq { };
+
+  qqwing = callPackage ../games/qqwing { };
+
+  quake3wrapper = callPackage ../games/quake3/wrapper { };
+
+  quake3demo = quake3wrapper {
+    name = "quake3-demo-${lib.getVersion quake3demodata}";
+    description = "Demo of Quake 3 Arena, a classic first-person shooter";
+    paks = [ quake3pointrelease quake3demodata ];
+  };
+
+  quake3demodata = callPackage ../games/quake3/content/demo.nix { };
+
+  quake3pointrelease = callPackage ../games/quake3/content/pointrelease.nix { };
+
+  quake3hires = callPackage ../games/quake3/content/hires.nix { };
+
+  quakespasm = callPackage ../games/quakespasm {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreAudio CoreFoundation IOKit OpenGL;
+  };
+  vkquake = callPackage ../games/quakespasm/vulkan.nix {
+    inherit (darwin) moltenvk;
+  };
+
+  ioquake3 = callPackage ../games/quake3/ioquake { };
+  quake3e = callPackage ../games/quake3/quake3e { };
+
+  quantumminigolf = callPackage ../games/quantumminigolf { };
+
+  r2mod_cli = callPackage ../games/r2mod_cli { };
+
+  r2modman = callPackage ../games/r2modman {
+    # Electron 26 has regressions making applications unusable.
+    electron = electron_25;
+  };
+
+  racer = callPackage ../games/racer { };
+
+  randtype = callPackage ../games/randtype { };
+
+  raylib-games = callPackage ../games/raylib-games { };
+
+  raycast = callPackage ../os-specific/darwin/raycast { };
+
+  redeclipse = callPackage ../games/redeclipse { };
+
+  rftg = callPackage ../games/rftg { };
+
+  rigsofrods-bin = callPackage ../games/rigsofrods-bin { };
+
+  riko4 = callPackage ../games/riko4 { };
+
+  rili = callPackage ../games/rili { };
+
+  rogue = callPackage ../games/rogue {
+    ncurses = ncurses5;
+  };
+
+  rocksndiamonds = callPackage ../games/rocksndiamonds { };
+
+  rott = callPackage ../games/rott { SDL = SDL_compat; };
+
+  rott-shareware = rott.override {
+    buildShareware = true;
+  };
+
+  rrootage = callPackage ../games/rrootage { };
+
+  space-cadet-pinball = callPackage ../games/space-cadet-pinball {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  starsector = callPackage ../games/starsector {
+    openjdk = openjdk8;
+  };
+
+  sauerbraten = callPackage ../games/sauerbraten { };
+
+  scid = callPackage ../games/scid { };
+
+  scid-vs-pc = callPackage ../games/scid-vs-pc { };
+
+  scummvm = callPackage ../games/scummvm {
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) Cocoa AudioToolbox Carbon CoreMIDI AudioUnit;
+  };
+
+  inherit (callPackage ../games/scummvm/games.nix { })
+    beneath-a-steel-sky
+    broken-sword-25
+    drascula-the-vampire-strikes-back
+    dreamweb
+    flight-of-the-amazon-queen
+    lure-of-the-temptress;
+
+  scorched3d = callPackage ../games/scorched3d { };
+
+  scrolls = callPackage ../games/scrolls { };
+
+  service-wrapper = callPackage ../os-specific/linux/service-wrapper { };
+
+  sfrotz = callPackage ../games/sfrotz { };
+
+  sgt-puzzles = callPackage ../games/sgt-puzzles { };
+
+  sgt-puzzles-mobile = callPackage ../games/sgt-puzzles {
+    isMobile = true;
+  };
+
+  shattered-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon { };
+  rkpd2 = callPackage ../games/shattered-pixel-dungeon/rkpd2.nix { };
+  rat-king-adventure = callPackage ../games/shattered-pixel-dungeon/rat-king-adventure.nix { };
+  experienced-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix { };
+  summoning-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/summoning-pixel-dungeon.nix { };
+  shorter-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix { };
+
+  shticker-book-unwritten = callPackage ../games/shticker-book-unwritten { };
+
+  sienna = callPackage ../games/sienna { };
+
+  sil = callPackage ../games/sil { };
+
+  sil-q = callPackage ../games/sil-q { };
+
+  simutrans = callPackage ../games/simutrans { };
+  # get binaries without data built by Hydra
+  simutrans_binaries = lowPrio simutrans.binaries;
+
+  snake4 = callPackage ../games/snake4 { };
+
+  soi = callPackage ../games/soi {
+    lua = lua5_1;
+  };
+
+  # solarus and solarus-quest-editor must use the same version of Qt.
+  solarus = libsForQt5.callPackage ../games/solarus { };
+  solarus-quest-editor = libsForQt5.callPackage ../development/tools/solarus-quest-editor { };
+
+  sollya = callPackage ../development/interpreters/sollya { };
+
+  solicurses = callPackage ../games/solicurses { };
+
+  # You still can override by passing more arguments.
+  space-orbit = callPackage ../games/space-orbit { };
+
+  space-station-14-launcher = callPackage ../games/space-station-14-launcher { };
+
+  spring = callPackage ../games/spring { asciidoc = asciidoc-full; };
+
+  springLobby = callPackage ../games/spring/springlobby.nix { };
+
+  srb2 = callPackage ../games/srb2 { };
+
+  srb2kart = callPackage ../games/srb2kart { };
+
+  ssl-cert-check = callPackage ../tools/admin/ssl-cert-check { };
+
+  stardust = callPackage ../games/stardust { };
+
+  starspace = callPackage ../applications/science/machine-learning/starspace { };
+
+  stockfish = callPackage ../games/stockfish { };
+
+  steamPackages = recurseIntoAttrs (callPackage ../games/steam { });
+
+  steam = steamPackages.steam-fhsenv;
+  steam-small = steamPackages.steam-fhsenv-small;
+
+  steam-run = steam.run;
+
+  steam-tui = callPackage ../games/steam-tui { };
+
+  steamcmd = steamPackages.steamcmd;
+
+  steam-acf = callPackage ../tools/games/steam-acf { };
+
+  steamback = python311.pkgs.callPackage ../tools/games/steamback { };
+
+  protontricks = python3Packages.callPackage ../tools/package-management/protontricks {
+    inherit winetricks steam-run yad;
+  };
+
+  protonup-ng = with python3Packages; toPythonApplication protonup-ng;
+
+  steam-rom-manager = callPackage ../tools/games/steam-rom-manager { };
+
+  sdlpop = callPackage ../games/sdlpop { };
+
+  stepmania = callPackage ../games/stepmania { };
+
+  stone-kingdoms = callPackage ../games/stone-kingdoms { };
+
+  stt = callPackage ../tools/audio/stt { };
+
+  stuntrally = callPackage ../games/stuntrally
+    { };
+
+  superTux = callPackage ../games/supertux { };
+
+  superTuxKart = darwin.apple_sdk_11_0.callPackage ../games/super-tux-kart {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa IOKit OpenAL IOBluetooth;
+  };
+
+  synthv1 = libsForQt5.callPackage ../applications/audio/synthv1 { };
+
+  snis = callPackage ../games/snis { };
+
+  system-syzygy = callPackage ../games/system-syzygy { };
+
+  t4kcommon = callPackage ../games/t4kcommon { };
+
+  taisei = callPackage ../games/taisei { };
+
+  tcl2048 = callPackage ../games/tcl2048 { };
+
+  the-powder-toy = callPackage ../games/the-powder-toy {
+    lua = lua5_1;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  theforceengine = callPackage ../games/theforceengine { };
+
+  tbe = libsForQt5.callPackage ../games/the-butterfly-effect { };
+
+  tbls = callPackage ../tools/misc/tbls { };
+
+  tecnoballz = callPackage ../games/tecnoballz { };
+
+  teetertorture = callPackage ../games/teetertorture { };
+
+  teeworlds = callPackage ../games/teeworlds {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+  teeworlds-server = teeworlds.override { buildClient = false; };
+
+  tengine = callPackage ../servers/http/tengine {
+    modules = with nginxModules; [ rtmp dav moreheaders modsecurity ];
+  };
+
+  tennix = callPackage ../games/tennix { };
+
+  terraria-server = callPackage ../games/terraria-server { };
+
+  tibia = pkgsi686Linux.callPackage ../games/tibia { };
+
+  tintin = callPackage ../games/tintin { };
+
+  tinyfugue = callPackage ../games/tinyfugue { };
+
+  titanion = callPackage ../games/titanion { };
+
+  tome2 = callPackage ../games/tome2 { };
+
+  tome4 = callPackage ../games/tome4 { };
+
+  toppler = callPackage ../games/toppler {
+    SDL2_image = SDL2_image_2_0_5;
+  };
+
+  torus-trooper = callPackage ../games/torus-trooper { };
+
+  trackballs = callPackage ../games/trackballs { };
+
+  try = callPackage ../tools/admin/try { };
+
+  tumiki-fighters = callPackage ../games/tumiki-fighters { };
+
+  tuxpaint = callPackage ../games/tuxpaint { };
+
+  tuxtype = callPackage ../games/tuxtype { };
+
+  speed_dreams = callPackage ../games/speed-dreams {
+    # Torcs wants to make shared libraries linked with plib libraries (it provides static).
+    # i686 is the only platform I know than can do that linking without plib built with -fPIC
+    libpng = libpng12;
+  };
+
+  torcs = callPackage ../games/torcs { };
+
+  trigger = callPackage ../games/trigger { };
+
+  typespeed = callPackage ../games/typespeed { };
+
+  u2ps = callPackage ../tools/text/u2ps { };
+
+  uchess = callPackage ../games/uchess { };
+
+  ufoai = callPackage ../games/ufoai { };
+
+  uhexen2 = callPackage ../games/uhexen2 { };
+
+  ultimatestunts = callPackage ../games/ultimatestunts { };
+
+  ultrastar-creator = libsForQt5.callPackage ../tools/misc/ultrastar-creator { };
+
+  ultrastar-manager = libsForQt5.callPackage ../tools/misc/ultrastar-manager { };
+
+  ultrastardx = callPackage ../games/ultrastardx { };
+
+  umoria = callPackage ../games/umoria { };
+
+  unciv = callPackage ../games/unciv { };
+
+  unnethack = callPackage ../games/unnethack { };
+
+  uqm = callPackage ../games/uqm { };
+
+  urbanterror = callPackage ../games/urbanterror { };
+
+  ue4demos = recurseIntoAttrs (callPackage ../games/ue4demos { });
+
+  ut2004Packages = dontRecurseIntoAttrs (callPackage ../games/ut2004 { });
+
+  ut2004demo = res.ut2004Packages.ut2004 [ res.ut2004Packages.ut2004-demo ];
+
+  vassal = callPackage ../games/vassal { };
+
+  vdrift = callPackage ../games/vdrift { };
+
+  # To ensure vdrift's code is built on hydra
+  vdrift-bin = vdrift.bin;
+
+  vectoroids = callPackage ../games/vectoroids { };
+
+  vessel = pkgsi686Linux.callPackage ../games/vessel { };
+
+  vitetris = callPackage ../games/vitetris { };
+
+  vms-empire = callPackage ../games/vms-empire { };
+
+  voxelands = callPackage ../games/voxelands { };
+
+  vvvvvv = callPackage ../games/vvvvvv {
+    inherit (darwin.apple_sdk.frameworks) Foundation IOKit;
+  };
+
+  wargus = callPackage ../games/wargus { };
+
+  warmux = callPackage ../games/warmux { };
+
+  warsow-engine = callPackage ../games/warsow/engine.nix { };
+
+  warsow = callPackage ../games/warsow { };
+
+  warzone2100 = callPackage ../games/warzone2100 { };
+
+  wesnoth = callPackage ../games/wesnoth {
+    inherit (darwin.apple_sdk.frameworks) Cocoa Foundation;
+  };
+
+  wesnoth-dev = wesnoth;
+
+  widelands = callPackage ../games/widelands { };
+
+  wolfstoneextract = callPackage ../games/wolfstoneextract { };
+
+  worldofgoo = callPackage ../games/worldofgoo { };
+
+  xboard =  callPackage ../games/xboard { };
+
+  xbomb = callPackage ../games/xbomb { };
+
+  xconq = callPackage ../games/xconq { };
+
+  xcowsay = callPackage ../games/xcowsay { };
+
+  xgalagapp = callPackage ../games/xgalaga++ { };
+
+  xjump = callPackage ../games/xjump { };
+
+  xmoto = callPackage ../games/xmoto { };
+
+
+  inherit (callPackage ../games/xonotic { })
+    xonotic-data
+    xonotic;
+
+  xonotic-glx = (callPackage ../games/xonotic {
+    withSDL = false;
+    withGLX = true;
+  }).xonotic;
+
+  xonotic-dedicated = (callPackage ../games/xonotic {
+    withSDL = false;
+    withDedicated = true;
+  }).xonotic;
+
+  xonotic-sdl = xonotic;
+  xonotic-sdl-unwrapped = xonotic-sdl.xonotic-unwrapped;
+  xonotic-glx-unwrapped = xonotic-glx.xonotic-unwrapped;
+  xonotic-dedicated-unwrapped = xonotic-dedicated.xonotic-unwrapped;
+
+
+  xpilot-ng = callPackage ../games/xpilot { };
+  bloodspilot-server = callPackage ../games/xpilot/bloodspilot-server.nix { };
+  bloodspilot-client = callPackage ../games/xpilot/bloodspilot-client.nix { };
+
+  xskat = callPackage ../games/xskat { };
+
+  xsnow = callPackage ../games/xsnow { };
+
+  xsok = callPackage ../games/xsok { };
+
+  xsokoban = callPackage ../games/xsokoban { };
+
+  xtris = callPackage ../games/xtris { };
+
+  inherit (callPackage ../games/quake2/yquake2 {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenAL;
+  })
+    yquake2
+    yquake2-ctf
+    yquake2-ground-zero
+    yquake2-the-reckoning
+    yquake2-all-games;
+
+  zaz = callPackage ../games/zaz { };
+
+  zod = callPackage ../games/zod { };
+
+  zoom = callPackage ../games/zoom { };
+
+  keen4 = callPackage ../games/keen4 { };
+
+  zeroadPackages = recurseIntoAttrs (callPackage ../games/0ad {
+    wxGTK = wxGTK32;
+    fmt = fmt_9;
+  });
+
+  zeroad = zeroadPackages.zeroad;
+
+  _0verkill = callPackage ../games/0verkill { };
+
+  _7kaa = callPackage ../games/7kaa { };
+
+  hhexen = callPackage ../games/hhexen { };
+
+  hheretic = callPackage ../games/hheretic { };
+
+  wyvern = callPackage ../games/wyvern { };
+
+  hsetroot = callPackage ../tools/X11/hsetroot { };
+
+  imwheel = callPackage ../tools/X11/imwheel { };
+
+  kakasi = callPackage ../tools/text/kakasi { };
+
+  ### DESKTOP ENVIRONMENTS
+
+  arcan-wrapped = arcan.wrapper.override { };
+  arcan-all-wrapped = arcan.wrapper.override {
+    name = "arcan-all-wrapped";
+    appls = [ cat9 durden pipeworld ];
+
+  };
+  cat9-wrapped = arcan.wrapper.override {
+    name = "cat9-wrapped";
+    appls = [ cat9 ];
+  };
+  durden-wrapped = arcan.wrapper.override {
+    name = "durden-wrapped";
+    appls = [ durden ];
+  };
+  pipeworld-wrapped = arcan.wrapper.override {
+    name = "pipeworld-wrapped";
+    appls = [ pipeworld ];
+  };
+  prio-wrapped = arcan.wrapper.override {
+    name = "prio-wrapped";
+    appls = [ prio ];
+  };
+
+  budgie = recurseIntoAttrs (callPackage ../desktops/budgie { });
+  budgiePlugins = recurseIntoAttrs (callPackage ../desktops/budgie/plugins { });
+
+  cdesktopenv = callPackage ../desktops/cdesktopenv { };
+
+  cinnamon = recurseIntoAttrs (callPackage ../desktops/cinnamon { });
+  inherit (cinnamon) mint-x-icons mint-y-icons;
+
+  deepin = recurseIntoAttrs (callPackage ../desktops/deepin { });
+
+  enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { });
+
+  expidus = recurseIntoAttrs (callPackage ../desktops/expidus {});
+
+  gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { });
+
+  gnome = recurseIntoAttrs (callPackage ../desktops/gnome { });
+
+  inherit (callPackage ../desktops/gnome/extensions { })
+    gnomeExtensions
+    gnome38Extensions
+    gnome40Extensions
+    gnome41Extensions
+    gnome42Extensions
+    gnome43Extensions
+    gnome44Extensions
+    gnome45Extensions
+  ;
+
+  gnome-connections = callPackage ../desktops/gnome/apps/gnome-connections { };
+
+  gnome-extensions-cli = python3Packages.callPackage ../desktops/gnome/misc/gnome-extensions-cli { };
+
+  gnome-text-editor = callPackage ../desktops/gnome/apps/gnome-text-editor { };
+
+  gnome-tour = callPackage ../desktops/gnome/core/gnome-tour { };
+
+  gnome-browser-connector = callPackage ../desktops/gnome/extensions/gnome-browser-connector { };
+
+  gnome-2048 = callPackage ../desktops/gnome/games/gnome-2048 { };
+
+  gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep { });
+
+  lomiri = recurseIntoAttrs (callPackage ../desktops/lomiri { });
+
+  lumina = recurseIntoAttrs (callPackage ../desktops/lumina { });
+
+  ### DESKTOPS/LXDE
+
+  lxde = recurseIntoAttrs (callPackage ../desktops/lxde { });
+  # Backwards compatibility aliases
+  inherit (lxde)
+    lxappearance
+    lxappearance-gtk2
+    lxmenu-data
+    lxpanel
+    lxrandr
+    lxsession
+    lxtask
+  ;
+
+  lxqt = recurseIntoAttrs (import ../desktops/lxqt {
+    inherit pkgs;
+    inherit (lib) makeScope;
+    inherit qt5 libsForQt5;
+  });
+
+  mate = recurseIntoAttrs (callPackage ../desktops/mate { });
+
+  pantheon = recurseIntoAttrs (callPackage ../desktops/pantheon { });
+
+  pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
+
+  wingpanel-indicator-ayatana = callPackage ../desktops/pantheon/third-party/wingpanel-indicator-ayatana { };
+
+  rox-filer = callPackage ../desktops/rox/rox-filer {
+    gtk = gtk2;
+  };
+
+  surf-display = callPackage ../desktops/surf-display { };
+
+  xfce = recurseIntoAttrs (callPackage ../desktops/xfce { });
+
+  plasma-applet-volumewin7mixer = libsForQt5.callPackage ../applications/misc/plasma-applet-volumewin7mixer { };
+
+  plasma-theme-switcher = libsForQt5.callPackage ../applications/misc/plasma-theme-switcher { };
+
+  plasma-pass = libsForQt5.callPackage ../tools/security/plasma-pass { };
+
+  inherit (callPackages ../applications/misc/redshift {
+    inherit (python3Packages) python pygobject3 pyxdg wrapPython;
+    inherit (darwin.apple_sdk.frameworks) CoreLocation ApplicationServices Foundation Cocoa;
+    geoclue = geoclue2;
+  }) redshift gammastep;
+
+  redshift-plasma-applet = libsForQt5.callPackage ../applications/misc/redshift-plasma-applet { };
+
+  latte-dock = libsForQt5.callPackage ../applications/misc/latte-dock { };
+
+  gnome-themes-extra = gnome.gnome-themes-extra;
+
+  xrandr-invert-colors = callPackage ../applications/misc/xrandr-invert-colors { };
+
+  ### SCIENCE/CHEMISTY
+
+  apbs = callPackage ../applications/science/chemistry/apbs { };
+
+  avogadrolibs = libsForQt5.callPackage ../development/libraries/science/chemistry/avogadrolibs { };
+
+  molequeue = libsForQt5.callPackage ../development/libraries/science/chemistry/molequeue { };
+
+  avogadro2 = libsForQt5.callPackage ../applications/science/chemistry/avogadro2 { };
+
+  chemtool = callPackage ../applications/science/chemistry/chemtool { };
+
+  cp2k = callPackage ../applications/science/chemistry/cp2k { };
+
+  d-seams = callPackage ../applications/science/chemistry/d-seams { };
+
+  ergoscf = callPackage ../applications/science/chemistry/ergoscf { };
+
+  gwyddion = callPackage ../applications/science/chemistry/gwyddion { };
+
+  jmol = callPackage ../applications/science/chemistry/jmol {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+
+  marvin = callPackage ../applications/science/chemistry/marvin { };
+
+  molden = callPackage ../applications/science/chemistry/molden { };
+
+  mopac = callPackage ../applications/science/chemistry/mopac { };
+
+  nwchem = callPackage ../applications/science/chemistry/nwchem {
+    blas = blas-ilp64;
+    lapack = lapack-ilp64;
+  };
+
+  octopus = callPackage ../applications/science/chemistry/octopus { };
+
+  openlp = libsForQt5.callPackage ../applications/misc/openlp { };
+  openlpFull = openlp.override {
+    pdfSupport = true;
+    presentationSupport = true;
+    vlcSupport = true;
+    gstreamerSupport = true;
+  };
+
+  autodock-vina = callPackage ../applications/science/chemistry/autodock-vina { };
+
+  dkh = callPackage ../applications/science/chemistry/dkh { };
+
+  openmolcas = callPackage ../applications/science/chemistry/openmolcas { };
+
+  pdb2pqr = with python3Packages; toPythonApplication pdb2pqr;
+
+  pymol = callPackage ../applications/science/chemistry/pymol { };
+
+  quantum-espresso = callPackage ../applications/science/chemistry/quantum-espresso {
+    hdf5 = hdf5-fortran;
+  };
+
+  siesta = callPackage ../applications/science/chemistry/siesta { };
+
+  siesta-mpi = callPackage ../applications/science/chemistry/siesta { useMpi = true; };
+
+  wxmacmolplt = callPackage ../applications/science/chemistry/wxmacmolplt { };
+
+  ### SCIENCE/GEOMETRY
+
+  antiprism = callPackage ../applications/science/geometry/antiprism { };
+
+  gama = callPackage ../applications/science/geometry/gama { };
+
+  tetgen = callPackage ../applications/science/geometry/tetgen { }; # AGPL3+
+  tetgen_1_4 = callPackage ../applications/science/geometry/tetgen/1.4.nix { }; # MIT
+
+  ### SCIENCE/BENCHMARK
+
+  papi = callPackage ../development/libraries/science/benchmark/papi { };
+
+  ### SCIENCE/BIOLOGY
+
+  alliance = callPackage ../applications/science/electronics/alliance { };
+
+  angsd = callPackage ../applications/science/biology/angsd { };
+
+  ants = callPackage ../applications/science/biology/ants {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  aragorn = callPackage ../applications/science/biology/aragorn { };
+
+  astral = callPackage ../applications/science/biology/astral { };
+
+  archimedes = callPackage ../applications/science/electronics/archimedes { };
+
+  bamtools = callPackage ../applications/science/biology/bamtools { };
+
+  bayescan = callPackage ../applications/science/biology/bayescan { };
+
+  bedops = callPackage ../applications/science/biology/bedops { };
+
+  bedtools = callPackage ../applications/science/biology/bedtools { };
+
+  bcftools = callPackage ../applications/science/biology/bcftools { };
+
+  bftools = callPackage ../applications/science/biology/bftools { };
+
+  bioawk = callPackage ../applications/science/biology/bioawk { };
+
+  blast = callPackage ../applications/science/biology/blast {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  blast-bin = callPackage ../applications/science/biology/blast/bin.nix { };
+
+  bpp-core = callPackage ../development/libraries/science/biology/bpp-core { };
+
+  bpp-phyl = callPackage ../development/libraries/science/biology/bpp-phyl { };
+
+  bpp-popgen = callPackage ../development/libraries/science/biology/bpp-popgen { };
+
+  bpp-seq = callPackage ../development/libraries/science/biology/bpp-seq { };
+
+  bppsuite = callPackage ../applications/science/biology/bppsuite { };
+
+  cd-hit = callPackage ../applications/science/biology/cd-hit {
+    inherit (llvmPackages) openmp;
+  };
+
+  ciftilib = callPackage ../development/libraries/science/biology/ciftilib { };
+
+  cmtk = callPackage ../applications/science/biology/cmtk { };
+
+  clustal-omega = callPackage ../applications/science/biology/clustal-omega { };
+
+  conglomerate = callPackage ../applications/science/biology/conglomerate { };
+
+  dalfox = callPackage ../tools/security/dalfox { };
+
+  davtest = callPackage ../tools/security/davtest { };
+
+  dcm2niix = callPackage ../applications/science/biology/dcm2niix { };
+
+  deepdiff = with python3Packages; toPythonApplication deepdiff;
+
+  deepsea = callPackage ../tools/security/deepsea { };
+
+  deepsecrets = callPackage ../tools/security/deepsecrets {
+    python3 = python311;
+  };
+
+  deeptools = callPackage ../applications/science/biology/deeptools { python = python3; };
+
+  deep-translator = with python3Packages; toPythonApplication deep-translator;
+
+  delly = callPackage ../applications/science/biology/delly { };
+
+  diamond = callPackage ../applications/science/biology/diamond { };
+
+  dssp = callPackage ../applications/science/biology/dssp { };
+
+  ecopcr = callPackage ../applications/science/biology/ecopcr { };
+
+  eggnog-mapper = callPackage ../applications/science/biology/eggnog-mapper { };
+
+  emboss = callPackage ../applications/science/biology/emboss { };
+
+  est-sfs = callPackage ../applications/science/biology/est-sfs { };
+
+  ezminc = callPackage ../applications/science/biology/EZminc { };
+
+  exonerate = callPackage ../applications/science/biology/exonerate { };
+
+  fastp = callPackage ../applications/science/biology/fastp { };
+
+  febio-studio = libsForQt5.callPackage ../applications/science/biology/febio-studio { };
+
+  flywheel-cli = callPackage ../applications/science/biology/flywheel-cli { };
+
+  hh-suite = callPackage ../applications/science/biology/hh-suite {
+    inherit (llvmPackages) openmp;
+  };
+
+  hisat2 = callPackage ../applications/science/biology/hisat2 { };
+
+  htslib = callPackage ../development/libraries/science/biology/htslib { };
+
+  igv = callPackage ../applications/science/biology/igv { };
+
+  inormalize = callPackage ../applications/science/biology/inormalize { };
+
+  iqtree = callPackage ../applications/science/biology/iqtree { };
+
+  itsx = callPackage ../applications/science/biology/itsx { };
+
+  iv = callPackage ../applications/science/biology/iv {
+    neuron-version = neuron.version;
+  };
+
+  kalign = callPackage ../applications/science/biology/kalign { };
+
+  kallisto = callPackage ../applications/science/biology/kallisto {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  kasmweb = callPackage ../servers/web-apps/kasmweb { };
+
+  kssd = callPackage ../applications/science/biology/kssd { };
+
+  last = callPackage ../applications/science/biology/last { };
+
+  macse = callPackage ../applications/science/biology/macse { };
+
+  macs2 = callPackage ../applications/science/biology/macs2 { };
+
+  mafft = callPackage ../applications/science/biology/mafft { };
+
+  migrate = callPackage ../applications/science/biology/migrate { };
+
+  minia = callPackage ../applications/science/biology/minia { };
+
+  mirtk = callPackage ../development/libraries/science/biology/mirtk { };
+
+  muscle = callPackage ../applications/science/biology/muscle { };
+
+  n3 = callPackage ../applications/science/biology/N3 { };
+
+  nest = callPackage ../applications/science/biology/nest { };
+
+  nest-mpi = callPackage ../applications/science/biology/nest { withMpi = true; };
+
+  neuron = callPackage ../applications/science/biology/neuron { };
+
+  neuron-mpi = neuron.override {useMpi = true; };
+
+  neuron-full = neuron-mpi.override { useCore = true; useRx3d = true; };
+
+  mrbayes = callPackage ../applications/science/biology/mrbayes { };
+
+  mrtrix = callPackage ../applications/science/biology/mrtrix { python = python3; };
+
+  megahit = callPackage ../applications/science/biology/megahit { };
+
+  messer-slim = callPackage ../applications/science/biology/messer-slim { };
+
+  minc_tools = callPackage ../applications/science/biology/minc-tools {
+    inherit (perlPackages) perl TextFormat;
+  };
+
+  minc_widgets = callPackage ../applications/science/biology/minc-widgets { };
+
+  mni_autoreg = callPackage ../applications/science/biology/mni_autoreg { };
+
+  minimap2 = callPackage ../applications/science/biology/minimap2 { };
+
+  mmseqs2 = callPackage ../applications/science/biology/mmseqs2 {
+    inherit (llvmPackages) openmp;
+  };
+
+  niftyreg = callPackage ../applications/science/biology/niftyreg { };
+
+  niftyseg = callPackage ../applications/science/biology/niftyseg { };
+
+  manta = callPackage ../applications/science/biology/manta { };
+
+  obitools3 = callPackage ../applications/science/biology/obitools/obitools3.nix { };
+
+  octopus-caller = callPackage ../applications/science/biology/octopus { };
+
+  paml = callPackage ../applications/science/biology/paml { };
+
+  picard-tools = callPackage ../applications/science/biology/picard-tools { };
+
+  platypus = callPackage ../applications/science/biology/platypus { };
+
+  plink-ng = callPackage ../applications/science/biology/plink-ng { };
+
+  prodigal = callPackage ../applications/science/biology/prodigal { };
+
+  quast = callPackage ../applications/science/biology/quast { };
+
+  raxml = callPackage ../applications/science/biology/raxml { };
+
+  raxml-mpi = raxml.override { useMpi = true; };
+
+  sambamba = callPackage ../applications/science/biology/sambamba { };
+
+  samblaster = callPackage ../applications/science/biology/samblaster { };
+
+  samtools = callPackage ../applications/science/biology/samtools { };
+  samtools_0_1_19 = callPackage ../applications/science/biology/samtools/samtools_0_1_19.nix {
+    stdenv = gccStdenv;
+  };
+
+  seqtk = callPackage ../applications/science/biology/seqtk { };
+
+  seqkit = callPackage ../applications/science/biology/seqkit { };
+
+  snpeff = callPackage ../applications/science/biology/snpeff { };
+
+  somafm-cli = callPackage ../tools/misc/somafm-cli { };
+
+  somatic-sniper = callPackage ../applications/science/biology/somatic-sniper { };
+
+  sortmerna = callPackage ../applications/science/biology/sortmerna { };
+
+  stacks = callPackage ../applications/science/biology/stacks { };
+
+  star = callPackage ../applications/science/biology/star { };
+
+  strelka = callPackage ../applications/science/biology/strelka { };
+
+  inherit (callPackages ../applications/science/biology/sumatools {})
+      sumalibs
+      sumaclust
+      sumatra;
+
+  seaview = callPackage ../applications/science/biology/seaview { };
+
+  SPAdes = callPackage ../applications/science/biology/spades { };
+
+  svaba = callPackage ../applications/science/biology/svaba { };
+
+  tandem-aligner = callPackage ../applications/science/biology/tandem-aligner { };
+
+  tebreak = callPackage ../applications/science/biology/tebreak { };
+
+  treemix = callPackage ../applications/science/biology/treemix { };
+
+  trf = callPackage ../applications/science/biology/trf { };
+
+  trimal = callPackage ../applications/science/biology/trimal { };
+
+  trimmomatic = callPackage ../applications/science/biology/trimmomatic {
+    # Reduce closure size
+    jre = pkgs.jre_minimal.override {
+      modules = [ "java.base" "java.logging" ];
+      jdk = pkgs.jdk11_headless;
+    };
+  };
+
+  truvari = callPackage ../applications/science/biology/truvari { };
+
+  varscan = callPackage ../applications/science/biology/varscan { };
+
+  whisper = callPackage ../applications/science/biology/whisper { };
+
+  xenomapper = callPackage ../applications/science/biology/xenomapper { };
+
+  hmmer = callPackage ../applications/science/biology/hmmer { };
+
+  bwa = callPackage ../applications/science/biology/bwa { };
+
+  bwa-mem2 = callPackage ../applications/science/biology/bwa-mem2 { };
+
+  ### SCIENCE/MACHINE LEARNING
+
+  nengo-gui = callPackage ../applications/science/machine-learning/nengo-gui { };
+
+  sc2-headless = callPackage ../applications/science/machine-learning/sc2-headless { };
+
+  streamlit = with python3Packages; toPythonApplication streamlit;
+
+  uarmsolver = callPackage ../applications/science/machine-learning/uarmsolver { };
+
+  ### SCIENCE/MATH
+
+  _4ti2  = callPackage ../applications/science/math/4ti2 { };
+
+  almonds = callPackage ../applications/science/math/almonds { };
+
+  adolc = callPackage ../applications/science/math/adolc { };
+
+  amd-blis = callPackage ../development/libraries/science/math/amd-blis { };
+
+  amd-libflame = callPackage ../development/libraries/science/math/amd-libflame { };
+
+  arpack = callPackage ../development/libraries/science/math/arpack { };
+
+  blas = callPackage ../build-support/alternatives/blas { };
+
+  blas-ilp64 = blas.override { isILP64 = true; };
+
+  blas-reference = callPackage ../development/libraries/science/math/blas { };
+
+  bonmin = callPackage ../development/libraries/science/math/bonmin { };
+
+  brial = callPackage ../development/libraries/science/math/brial { };
+
+  cantor = libsForQt5.cantor;
+
+  clblas = callPackage ../development/libraries/science/math/clblas {
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo OpenCL;
+  };
+
+  clblast = callPackage ../development/libraries/science/math/clblast { };
+
+  cliquer = callPackage ../development/libraries/science/math/cliquer { };
+
+  coin-utils = callPackage ../development/libraries/science/math/coin-utils { };
+
+  ecos = callPackage ../development/libraries/science/math/ecos { };
+
+  flintqs = callPackage ../development/libraries/science/math/flintqs { };
+
+  getdp = callPackage ../applications/science/math/getdp { };
+
+  gurobi = callPackage ../applications/science/math/gurobi { };
+
+  jags = callPackage ../applications/science/math/jags { };
+
+  labplot = libsForQt5.callPackage ../applications/science/math/labplot { };
+
+  lapack = callPackage ../build-support/alternatives/lapack { };
+
+  lapack-ilp64 = lapack.override { isILP64 = true; };
+
+  lapack-reference = callPackage ../development/libraries/science/math/liblapack { };
+  liblapack = lapack-reference;
+
+  libamplsolver = callPackage ../development/libraries/science/math/libamplsolver { };
+
+  libbraiding = callPackage ../development/libraries/science/math/libbraiding { };
+
+  libhomfly = callPackage ../development/libraries/science/math/libhomfly { };
+
+  liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
+
+  lrs = callPackage ../development/libraries/science/math/lrs { };
+
+  m4ri = callPackage ../development/libraries/science/math/m4ri { };
+
+  m4rie = callPackage ../development/libraries/science/math/m4rie { };
+
+  mkl = callPackage ../development/libraries/science/math/mkl { };
+
+  nasc = callPackage ../applications/science/math/nasc { };
+
+  nota = haskellPackages.callPackage ../applications/science/math/nota { };
+
+  notus-scanner = with python3Packages; toPythonApplication notus-scanner;
+
+  openblas = callPackage ../development/libraries/science/math/openblas { };
+
+  # A version of OpenBLAS using 32-bit integers on all platforms for compatibility with
+  # standard BLAS and LAPACK.
+  openblasCompat = openblas.override { blas64 = false; };
+
+  openlibm = callPackage ../development/libraries/science/math/openlibm { };
+
+  openspecfun = callPackage ../development/libraries/science/math/openspecfun { };
+
+  planarity = callPackage ../development/libraries/science/math/planarity { };
+
+  scalapack = callPackage ../development/libraries/science/math/scalapack { };
+
+  rankwidth = callPackage ../development/libraries/science/math/rankwidth { };
+
+  latte-integrale = callPackage ../development/libraries/science/math/latte-integrale { };
+
+  lcalc = callPackage ../development/libraries/science/math/lcalc { };
+
+  lrcalc = callPackage ../applications/science/math/lrcalc { };
+
+  lie = callPackage ../applications/science/math/LiE { };
+
+  inherit (callPackage ../development/libraries/science/math/magma { }) magma magma_2_7_2 magma_2_6_2;
+
+  magma-cuda = magma.override {
+    cudaSupport = true;
+    rocmSupport = false;
+  };
+
+  magma-cuda-static = magma-cuda.override {
+    static = true;
+  };
+
+  magma-hip = magma.override {
+    cudaSupport = false;
+    rocmSupport = true;
+  };
+
+  clmagma = callPackage ../development/libraries/science/math/clmagma { };
+
+  mathematica = callPackage ../applications/science/math/mathematica { };
+
+  mathematica-webdoc = callPackage ../applications/science/math/mathematica {
+    webdoc = true;
+  };
+
+  mathematica-cuda = callPackage ../applications/science/math/mathematica {
+    cudaSupport = true;
+  };
+
+  mathematica-webdoc-cuda = callPackage ../applications/science/math/mathematica {
+    webdoc = true;
+    cudaSupport = true;
+  };
+
+  mathematica9 = callPackage ../applications/science/math/mathematica {
+    version = "9";
+  };
+
+  mathematica10 = callPackage ../applications/science/math/mathematica {
+    version = "10";
+  };
+
+  mathematica11 = callPackage ../applications/science/math/mathematica {
+    version = "11";
+  };
+
+  metis = callPackage ../development/libraries/science/math/metis { };
+
+  nauty = callPackage ../applications/science/math/nauty { };
+
+  osi = callPackage ../development/libraries/science/math/osi { };
+
+  or-tools = callPackage ../development/libraries/science/math/or-tools {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+    python = python3;
+    protobuf = protobuf_21;
+    # or-tools builds with -std=c++20, so abseil-cpp must
+    # also be built that way
+    abseil-cpp = abseil-cpp_202206.override {
+      static = true;
+      cxxStandard = "20";
+    };
+  };
+
+  rubiks = callPackage ../development/libraries/science/math/rubiks { };
+
+  p4est-sc = callPackage ../development/libraries/science/math/p4est-sc {
+    p4est-sc-debugEnable = false;
+  };
+
+  p4est-sc-dbg = callPackage ../development/libraries/science/math/p4est-sc { };
+
+  p4est = callPackage ../development/libraries/science/math/p4est { };
+
+  p4est-dbg = callPackage ../development/libraries/science/math/p4est {
+    p4est-sc = p4est-sc-dbg;
+  };
+
+  petsc = callPackage ../development/libraries/science/math/petsc { };
+
+  parmetis = callPackage ../development/libraries/science/math/parmetis { };
+
+  QuadProgpp = callPackage ../development/libraries/science/math/QuadProgpp { };
+
+  scs = callPackage ../development/libraries/science/math/scs { };
+
+  sage = callPackage ../applications/science/math/sage { };
+  sageWithDoc = sage.override { withDoc = true; };
+
+  sagetex = callPackage ../misc/sagetex { };
+
+  subread = callPackage ../applications/science/biology/subread { };
+
+  suitesparse_4_2 = callPackage ../development/libraries/science/math/suitesparse/4.2.nix { };
+  suitesparse_4_4 = callPackage ../development/libraries/science/math/suitesparse/4.4.nix { };
+  suitesparse_5_3 = callPackage ../development/libraries/science/math/suitesparse { };
+  suitesparse = suitesparse_5_3;
+
+  suitesparse-graphblas = callPackage ../development/libraries/science/math/suitesparse-graphblas { };
+
+  superlu = callPackage ../development/libraries/science/math/superlu { };
+
+  symmetrica = callPackage ../applications/science/math/symmetrica { };
+
+  sympow = callPackage ../development/libraries/science/math/sympow { };
+
+  trilinos = callPackage ../development/libraries/science/math/trilinos { };
+
+  trilinos-mpi = callPackage ../development/libraries/science/math/trilinos { withMPI = true; };
+
+  wolfram-engine = libsForQt5.callPackage ../applications/science/math/wolfram-engine { };
+
+  wolfram-for-jupyter-kernel = callPackage ../applications/editors/jupyter-kernels/wolfram { };
+
+  wolfram-notebook = callPackage ../applications/science/math/wolfram-engine/notebook.nix { };
+
+  ipopt = callPackage ../development/libraries/science/math/ipopt { };
+
+  gmsh = callPackage ../applications/science/math/gmsh { };
+
+  wcpg = callPackage ../development/libraries/science/math/wcpg { };
+
+  zn_poly = callPackage ../development/libraries/science/math/zn_poly { };
+
+  ### SCIENCE/MOLECULAR-DYNAMICS
+
+  dl-poly-classic-mpi = callPackage ../applications/science/molecular-dynamics/dl-poly-classic { stdenv = gcc10StdenvCompat; };
+
+  lammps = callPackage ../applications/science/molecular-dynamics/lammps {
+    fftw = fftw;
+  };
+
+  lammps-mpi = lowPrio (lammps.override {
+    extraBuildInputs = [
+      mpi
+    ];
+  });
+
+  gromacs = callPackage ../applications/science/molecular-dynamics/gromacs {
+    singlePrec = true;
+    fftw = fftwSinglePrec;
+  };
+
+  gromacsPlumed = lowPrio (gromacs.override {
+    singlePrec = true;
+    enablePlumed = true;
+    fftw = fftwSinglePrec;
+  });
+
+  gromacsMpi = lowPrio (gromacs.override {
+    singlePrec = true;
+    enableMpi = true;
+    fftw = fftwSinglePrec;
+  });
+
+  gromacsDouble = lowPrio (gromacs.override {
+    singlePrec = false;
+    fftw = fftw;
+  });
+
+  gromacsDoubleMpi = lowPrio (gromacs.override {
+    singlePrec = false;
+    enableMpi = true;
+    fftw = fftw;
+  });
+
+  gromacsCudaMpi = lowPrio (gromacs.override {
+    singlePrec = true;
+    enableMpi = true;
+    enableCuda = true;
+    fftw = fftwSinglePrec;
+  });
+
+  zegrapher = libsForQt5.callPackage ../applications/science/math/zegrapher { };
+
+  ### SCIENCE/MEDICINE
+
+  dcmtk = callPackage ../applications/science/medicine/dcmtk { };
+
+  xmedcon = callPackage ../applications/science/medicine/xmedcon { };
+
+  ### SCIENCE/PHYSICS
+
+  dawn = callPackage ../applications/science/physics/dawn { };
+
+  dawncut = callPackage ../applications/science/physics/dawncut { };
+
+  elmerfem = callPackage ../applications/science/physics/elmerfem { };
+
+  mcfm = callPackage ../applications/science/physics/MCFM {
+    stdenv = gccStdenv;
+    lhapdf = lhapdf.override { stdenv = gccStdenv; python = null; };
+  };
+
+  nnpdf = callPackage ../applications/science/physics/nnpdf { };
+
+  professor = callPackage ../applications/science/physics/professor { };
+
+  sacrifice = callPackage ../applications/science/physics/sacrifice { };
+
+  sherpa = callPackage ../applications/science/physics/sherpa { };
+
+  shtns = callPackage ../applications/science/physics/shtns { };
+
+  validphys2 = with python3Packages; toPythonApplication validphys2;
+
+  xfitter = callPackage ../applications/science/physics/xfitter { };
+
+  xflr5 = libsForQt5.callPackage ../applications/science/physics/xflr5 { };
+
+  xnec2c = callPackage ../applications/science/physics/xnec2c { };
+
+  ### SCIENCE/PROGRAMMING
+
+  dafny = callPackage ../applications/science/logic/dafny { };
+
+  groove = callPackage ../applications/science/programming/groove { };
+
+  plm = callPackage ../applications/science/programming/plm { };
+
+  ### SCIENCE/LOGIC
+
+  abc-verifier = callPackage ../applications/science/logic/abc { };
+
+  abella = callPackage ../applications/science/logic/abella {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_12;
+  };
+
+  acgtk = callPackage ../applications/science/logic/acgtk { };
+
+  alt-ergo = callPackage ../applications/science/logic/alt-ergo { };
+
+  aspino = callPackage ../applications/science/logic/aspino { };
+
+  beluga = callPackage ../applications/science/logic/beluga { };
+
+  cbmc = callPackage ../applications/science/logic/cbmc { };
+
+  cadical = callPackage ../applications/science/logic/cadical { };
+
+  inherit (callPackage ./coq-packages.nix {
+    inherit (ocaml-ng)
+      ocamlPackages_4_05
+      ocamlPackages_4_09
+      ocamlPackages_4_10
+      ocamlPackages_4_12
+      ocamlPackages_4_14
+    ;
+  }) mkCoqPackages
+    coqPackages_8_5  coq_8_5
+    coqPackages_8_6  coq_8_6
+    coqPackages_8_7  coq_8_7
+    coqPackages_8_8  coq_8_8
+    coqPackages_8_9  coq_8_9
+    coqPackages_8_10 coq_8_10
+    coqPackages_8_11 coq_8_11
+    coqPackages_8_12 coq_8_12
+    coqPackages_8_13 coq_8_13
+    coqPackages_8_14 coq_8_14
+    coqPackages_8_15 coq_8_15
+    coqPackages_8_16 coq_8_16
+    coqPackages_8_17 coq_8_17
+    coqPackages_8_18 coq_8_18
+    coqPackages      coq
+  ;
+
+  coq2html = callPackage ../tools/typesetting/coq2html { };
+
+  coq-kernel = callPackage ../applications/editors/jupyter-kernels/coq { };
+
+  cryptoverif = callPackage ../applications/science/logic/cryptoverif { };
+
+  crypto-org-wallet = callPackage ../applications/blockchains/crypto-org-wallet { };
+
+  cubicle = callPackage ../applications/science/logic/cubicle { };
+
+  cvc3 = callPackage ../applications/science/logic/cvc3 {
+    gmp = lib.overrideDerivation gmp (_: { dontDisableStatic = true; });
+    stdenv = gccStdenv;
+  };
+  cvc4 = callPackage ../applications/science/logic/cvc4 { };
+
+  cvc5 = callPackage ../applications/science/logic/cvc5 { };
+
+  drat-trim = callPackage ../applications/science/logic/drat-trim { };
+
+  ekrhyper = callPackage ../applications/science/logic/ekrhyper {
+    ocaml = ocaml-ng.ocamlPackages_4_14_unsafe_string.ocaml;
+  };
+
+  eprover = callPackage ../applications/science/logic/eprover { };
+
+  eprover-ho = callPackage ../applications/science/logic/eprover { enableHO = true; };
+
+  formula = callPackage ../applications/science/logic/formula { };
+
+  gappa = callPackage ../applications/science/logic/gappa { };
+
+  gfan = callPackage ../applications/science/math/gfan { };
+
+  giac = callPackage ../applications/science/math/giac { };
+  giac-with-xcas = giac.override { enableGUI = true; };
+
+  ginac = callPackage ../applications/science/math/ginac { };
+
+  glom = callPackage ../applications/misc/glom { };
+
+  glucose = callPackage ../applications/science/logic/glucose { };
+  glucose-syrup = callPackage ../applications/science/logic/glucose {
+    enableUnfree = true;
+  };
+
+  hol = callPackage ../applications/science/logic/hol { };
+
+  inherit (ocamlPackages) hol_light;
+
+  holehe = callPackage ../tools/security/holehe { };
+
+  hologram = callPackage ../tools/security/hologram { };
+
+  honeytrap = callPackage ../tools/security/honeytrap { };
+
+  kissat = callPackage ../applications/science/logic/kissat { };
+
+  tini = callPackage ../applications/virtualization/tini { };
+
+  ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
+
+  isabelle = callPackage ../applications/science/logic/isabelle {
+    polyml = polyml.overrideAttrs {
+      pname = "polyml-for-isabelle";
+      version = "2023";
+      configureFlags = [ "--enable-intinf-as-int" "--with-gmp" "--disable-shared" ];
+      buildFlags = [ "compiler" ];
+      src = fetchFromGitHub {
+        owner = "polyml";
+        repo = "polyml";
+        rev = "219e0a248f705b770d45699755d00f05b82a9391";
+        hash = "sha256-HtT3MGtHrqVhynmx73L7NC12AW9N7gkkOi7MKbF4k6Y=";
+      };
+    };
+
+    java = openjdk17;
+  };
+  isabelle-components = recurseIntoAttrs (callPackage ../applications/science/logic/isabelle/components { });
+
+  iprover = callPackage ../applications/science/logic/iprover { };
+
+  key = callPackage ../applications/science/logic/key { };
+
+  keymapviz = callPackage ../tools/misc/keymapviz { };
+
+  killport = darwin.apple_sdk_11_0.callPackage ../tools/misc/killport { };
+
+  lean = callPackage ../applications/science/logic/lean { };
+  lean2 = callPackage ../applications/science/logic/lean2 { };
+  lean4 = callPackage ../applications/science/logic/lean4 { };
+  lean3 = lean;
+  elan = callPackage ../applications/science/logic/elan { };
+  mathlibtools = with python3Packages; toPythonApplication mathlibtools;
+
+  leo2 = callPackage ../applications/science/logic/leo2
+    { inherit (ocaml-ng.ocamlPackages_4_14_unsafe_string) ocaml camlp4; };
+
+  leo3-bin = callPackage ../applications/science/logic/leo3/binary.nix { };
+
+  logisim = callPackage ../applications/science/logic/logisim { };
+
+  logisim-evolution = callPackage ../applications/science/logic/logisim-evolution { };
+
+  ltl2ba = callPackage ../applications/science/logic/ltl2ba { };
+
+  metis-prover = callPackage ../applications/science/logic/metis-prover { };
+
+  mcrl2 = callPackage ../applications/science/logic/mcrl2 { };
+
+  minisat = callPackage ../applications/science/logic/minisat { };
+
+  monosat = callPackage ../applications/science/logic/monosat { };
+
+  nusmv = callPackage ../applications/science/logic/nusmv { };
+
+  nuXmv = callPackage ../applications/science/logic/nuXmv { };
+
+  opensmt = callPackage ../applications/science/logic/opensmt { };
+
+  ott = callPackage ../applications/science/logic/ott { };
+
+  picosat = callPackage ../applications/science/logic/picosat { };
+
+  libpoly = callPackage ../applications/science/logic/poly { };
+
+  prooftree = callPackage  ../applications/science/logic/prooftree {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_12;
+  };
+
+  prover9 = callPackage ../applications/science/logic/prover9 { };
+
+  proverif = callPackage ../applications/science/logic/proverif { };
+
+  satallax = callPackage ../applications/science/logic/satallax { };
+
+  saw-tools = callPackage ../applications/science/logic/saw-tools { };
+
+  spass = callPackage ../applications/science/logic/spass {
+    stdenv = gccStdenv;
+  };
+
+  statverif = callPackage ../applications/science/logic/statverif {
+    ocaml = ocaml-ng.ocamlPackages_4_14_unsafe_string.ocaml;
+  };
+
+  tptp = callPackage ../applications/science/logic/tptp { };
+
+  celf = callPackage ../applications/science/logic/celf { };
+
+  fast-downward = callPackage ../applications/science/logic/fast-downward { };
+
+  twelf = callPackage ../applications/science/logic/twelf { };
+
+  verifast = callPackage ../applications/science/logic/verifast { };
+
+  veriT = callPackage ../applications/science/logic/verit {
+    stdenv = gccStdenv;
+  };
+
+  why3 = callPackage ../applications/science/logic/why3 { };
+
+  wayback-machine-archiver = callPackage ../tools/misc/wayback-machine-archiver { };
+
+  workcraft = callPackage ../applications/science/logic/workcraft { };
+
+  yices = callPackage ../applications/science/logic/yices {
+    gmp-static = gmp.override { withStatic = true; };
+  };
+
+
+  inherit (callPackages ../applications/science/logic/z3 { python = python3; })
+    z3_4_12
+    z3_4_11
+    z3_4_8
+    z3_4_8_5;
+  z3 = z3_4_8;
+  z3-tptp = callPackage ../applications/science/logic/z3/tptp.nix { };
+
+  zchaff = callPackage ../applications/science/logic/zchaff { };
+
+  tlaplus = callPackage ../applications/science/logic/tlaplus {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  tlaplus18 = callPackage ../applications/science/logic/tlaplus/tlaplus18.nix {};
+  tlaps = callPackage ../applications/science/logic/tlaplus/tlaps.nix {
+    inherit (ocaml-ng.ocamlPackages_4_14_unsafe_string) ocaml;
+  };
+  tlaplusToolbox = callPackage ../applications/science/logic/tlaplus/toolbox.nix { };
+
+  aiger = callPackage ../applications/science/logic/aiger { };
+
+  avy = callPackage ../applications/science/logic/avy { };
+
+  btor2tools = callPackage ../applications/science/logic/btor2tools { };
+
+  boolector = callPackage ../applications/science/logic/boolector {
+    stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_14.stdenv else stdenv;
+  };
+
+  bitwuzla = callPackage ../applications/science/logic/bitwuzla { };
+
+  symbiyosys = callPackage ../applications/science/logic/symbiyosys { };
+
+  symfpu = callPackage ../applications/science/logic/symfpu { };
+
+  uhdm = callPackage ../applications/science/logic/uhdm { };
+
+  surelog = callPackage ../applications/science/logic/surelog { };
+
+  mcy = callPackage ../applications/science/logic/mcy { };
+
+  lingeling = callPackage ../applications/science/logic/lingeling { };
+
+  ### SCIENCE / ENGINEERING
+
+  brmodelo = callPackage ../applications/science/engineering/brmodelo { };
+
+  jflap = callPackage ../applications/science/engineering/jflap { };
+
+  strictdoc = python3.pkgs.callPackage ../applications/science/engineering/strictdoc { };
+
+  ### SCIENCE / ELECTRONICS
+
+  adms = callPackage ../applications/science/electronics/adms { };
+
+  appcsxcad = libsForQt5.callPackage ../applications/science/electronics/appcsxcad { };
+
+  eagle = libsForQt5.callPackage ../applications/science/electronics/eagle/eagle.nix { };
+
+  caneda = libsForQt5.callPackage ../applications/science/electronics/caneda { };
+
+  csxcad = callPackage ../applications/science/electronics/csxcad { };
+
+  dataexplorer = callPackage ../applications/science/electronics/dataexplorer {
+    # executable fails at startup for jdk > 17
+    jdk = jdk17;
+  };
+
+  diylc = callPackage ../applications/science/electronics/diylc { };
+
+  flatcam = python39.pkgs.callPackage ../applications/science/electronics/flatcam { };
+
+  flopoco = callPackage ../applications/science/electronics/flopoco { };
+
+  fparser = callPackage ../applications/science/electronics/fparser { };
+
+  geda = callPackage ../applications/science/electronics/geda {
+    guile = guile_2_2;
+  };
+
+  gedit = callPackage ../applications/editors/gedit { };
+
+  gerbv = callPackage ../applications/science/electronics/gerbv {
+    cairo = cairo.override { x11Support = true; };
+  };
+
+  gtkwave = callPackage ../applications/science/electronics/gtkwave { };
+
+  hyp2mat = callPackage ../applications/science/electronics/hyp2mat { };
+
+  fped = callPackage ../applications/science/electronics/fped { };
+
+  gaw = callPackage ../applications/science/electronics/gaw { };
+
+  horizon-eda = callPackage ../applications/science/electronics/horizon-eda { };
+
+  # this is a wrapper for kicad.base and kicad.libraries
+  kicad = callPackage ../applications/science/electronics/kicad { };
+  # this is the same but without the (sizable) 3D models library
+  kicad-small = kicad.override { pname = "kicad-small"; with3d = false; };
+  # this is the master branch at whatever point update.sh last updated versions.nix
+  kicad-unstable = kicad.override { pname = "kicad-unstable"; stable = false; };
+  # and a small version of that
+  kicad-unstable-small = kicad.override {
+    pname = "kicad-unstable-small";
+    stable = false;
+    with3d = false;
+  };
+
+  kicadAddons = recurseIntoAttrs (callPackage ../applications/science/electronics/kicad/addons {});
+
+  librepcb = libsForQt5.callPackage ../applications/science/electronics/librepcb { };
+
+  ngspice = libngspice.override {
+    withNgshared = false;
+  };
+
+  nvc = darwin.apple_sdk_11_0.callPackage ../applications/science/electronics/nvc { };
+
+  openems = callPackage ../applications/science/electronics/openems {
+    qcsxcad = libsForQt5.qcsxcad;
+  };
+
+  openroad = libsForQt5.callPackage ../applications/science/electronics/openroad { };
+
+  openboardview = callPackage ../applications/science/electronics/openboardview { };
+
+  pcb = callPackage ../applications/science/electronics/pcb { };
+
+  qucs-s = qt6Packages.callPackage ../applications/science/electronics/qucs-s { };
+
+  xcircuit = callPackage ../applications/science/electronics/xcircuit { };
+
+  xoscope = callPackage ../applications/science/electronics/xoscope { };
+
+  xschem = callPackage ../applications/science/electronics/xschem { };
+
+  xyce = callPackage ../applications/science/electronics/xyce { };
+
+  xyce-parallel = callPackage ../applications/science/electronics/xyce {
+    withMPI = true;
+    trilinos = trilinos-mpi;
+  };
+
+  ### SCIENCE / MATH
+
+  caffe = callPackage ../applications/science/math/caffe ({
+    inherit (config) cudaSupport;
+    cudaPackages = cudaPackages_10_1;
+    opencv4 = opencv4WithoutCuda; # Used only for image loading.
+    blas = openblas;
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
+  } // (config.caffe or {}));
+
+  caffeWithCuda = caffe.override { cudaSupport = true; };
+
+  caffeine-ng = callPackage ../tools/X11/caffeine-ng { };
+
+  dap = callPackage ../applications/science/math/dap { };
+
+  ecm = callPackage ../applications/science/math/ecm { };
+
+  eukleides = callPackage ../applications/science/math/eukleides { };
+
+  form = callPackage ../applications/science/math/form { };
+
+  fricas = callPackage ../applications/science/math/fricas { };
+
+  gap = callPackage ../applications/science/math/gap { };
+
+  gap-minimal = lowPrio (gap.override { packageSet = "minimal"; });
+
+  gap-full = lowPrio (gap.override { packageSet = "full"; });
+
+  geogebra = callPackage ../applications/science/math/geogebra { };
+  geogebra6 = callPackage ../applications/science/math/geogebra/geogebra6.nix { };
+
+  maxima = callPackage ../applications/science/math/maxima {
+    lisp-compiler = sbcl;
+  };
+  maxima-ecl = maxima.override {
+    lisp-compiler = ecl;
+  };
+
+  mxnet = callPackage ../applications/science/math/mxnet {
+    inherit (linuxPackages) nvidia_x11;
+  };
+
+  wxmaxima = callPackage ../applications/science/math/wxmaxima {
+    wxGTK = wxGTK32.override {
+      withWebKit = true;
+    };
+  };
+
+  pari = callPackage ../applications/science/math/pari { };
+  gp2c = callPackage ../applications/science/math/pari/gp2c.nix { };
+
+  palp = callPackage ../applications/science/math/palp { };
+
+  ratpoints = callPackage ../applications/science/math/ratpoints { };
+
+  calc = callPackage ../applications/science/math/calc { };
+
+  pcalc = callPackage ../applications/science/math/pcalc { };
+
+  programmer-calculator = callPackage ../applications/science/math/programmer-calculator { };
+
+  bcal = callPackage ../applications/science/math/bcal { };
+
+  pagsuite = callPackage ../applications/science/math/pagsuite { };
+
+  pspp = callPackage ../applications/science/math/pspp { };
+
+  raspa = callPackage ../applications/science/molecular-dynamics/raspa { };
+
+  raspa-data = callPackage ../applications/science/molecular-dynamics/raspa/data.nix { };
+
+  ssw = callPackage ../applications/misc/ssw { };
+
+  pynac = callPackage ../applications/science/math/pynac { };
+
+  scalp = callPackage ../applications/science/math/scalp { };
+
+  singular = callPackage ../applications/science/math/singular { };
+
+  scilab-bin = callPackage ../applications/science/math/scilab-bin { };
+
+  scilla = callPackage ../tools/security/scilla { };
+
+  scotch = callPackage ../applications/science/math/scotch { };
+
+  mininet = callPackage ../tools/virtualization/mininet { };
+
+  msieve = callPackage ../applications/science/math/msieve { };
+
+  weka = callPackage ../applications/science/math/weka { jre = openjdk11; };
+
+  yad = callPackage ../tools/misc/yad { };
+
+  yacas = libsForQt5.callPackage ../applications/science/math/yacas { };
+
+  yacas-gui = yacas.override {
+    enableGui = true;
+    enableJupyter = false;
+  };
+
+  speedcrunch = libsForQt5.callPackage ../applications/science/math/speedcrunch { };
+
+  ### SCIENCE / MISC
+
+  boinc = callPackage ../applications/science/misc/boinc { };
+
+  boinc-headless = callPackage ../applications/science/misc/boinc { headless = true; };
+
+  celestia = callPackage ../applications/science/astronomy/celestia {
+    autoreconfHook = buildPackages.autoreconfHook269;
+    inherit (gnome2) gtkglext;
+  };
+
+  convertall = qt5.callPackage ../applications/science/misc/convertall { };
+
+  cytoscape = callPackage ../applications/science/misc/cytoscape {
+    jre = openjdk17;
+  };
+
+  faiss = callPackage ../development/libraries/science/math/faiss {
+    pythonPackages = python3Packages;
+    # faiss wants the "-doxygen" option
+    # available only since swig4
+    swig = swig4;
+  };
+
+  faissWithCuda = faiss.override {
+    cudaSupport = true;
+  };
+
+  fityk = callPackage ../applications/science/misc/fityk { };
+
+  galario = callPackage ../development/libraries/galario { };
+
+  gildas = callPackage ../applications/science/astronomy/gildas { };
+
+  gplates = libsForQt5.callPackage ../applications/science/misc/gplates { };
+
+  grap = callPackage ../tools/security/grap { };
+
+  gravit = callPackage ../applications/science/astronomy/gravit { };
+
+  golly = callPackage ../applications/science/misc/golly {
+    wxGTK = wxGTK32.overrideAttrs (x: {
+      configureFlags = x.configureFlags ++ [
+        "--enable-webrequest"
+      ];
+      buildInputs = x.buildInputs ++ [
+        curl
+      ];
+    });
+    perl = perl536;
+  };
+
+  megam = callPackage ../applications/science/misc/megam { };
+
+  netlogo = callPackage ../applications/science/misc/netlogo { };
+
+  nextinspace = python3Packages.callPackage ../applications/science/misc/nextinspace { };
+
+  ns-3 = callPackage ../development/libraries/science/networking/ns-3 { python = python3; };
+
+  root = callPackage ../applications/science/misc/root {
+    python = python3;
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreSymbolication OpenGL;
+  };
+
+  root5 = lowPrio (callPackage ../applications/science/misc/root/5.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
+  });
+
+  rinetd = callPackage ../servers/rinetd { };
+
+  rink = callPackage ../applications/science/misc/rink {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  simgrid = callPackage ../applications/science/misc/simgrid { };
+
+  sumo = callPackage ../applications/science/networking/sumo { };
+
+  spyder = with python3.pkgs; toPythonApplication spyder;
+
+  spyre = callPackage ../tools/security/spyre { };
+
+  sq = callPackage ../development/tools/sq { };
+
+  stellarium = qt6Packages.callPackage ../applications/science/astronomy/stellarium { };
+
+  stellarsolver = libsForQt5.callPackage ../development/libraries/science/astronomy/stellarsolver { };
+
+  astrolabe-generator = callPackage ../applications/science/astronomy/astrolabe-generator { };
+
+  tulip = libsForQt5.callPackage ../applications/science/misc/tulip { };
+
+  vite = libsForQt5.callPackage ../applications/science/misc/vite { };
+
+  xearth = callPackage ../applications/science/astronomy/xearth { };
+  xplanet = callPackage ../applications/science/astronomy/xplanet { };
+
+  ### SCIENCE / PHYSICS
+
+  apfelgrid = callPackage ../development/libraries/physics/apfelgrid { };
+
+  apfel = callPackage ../development/libraries/physics/apfel { };
+
+  applgrid = callPackage ../development/libraries/physics/applgrid {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  hoppet = callPackage ../development/libraries/physics/hoppet { };
+
+  fastjet = callPackage ../development/libraries/physics/fastjet { };
+
+  fastjet-contrib = callPackage ../development/libraries/physics/fastjet-contrib { };
+
+  fastnlo_toolkit = callPackage ../development/libraries/physics/fastnlo_toolkit { };
+
+  geant4 = libsForQt5.callPackage ../development/libraries/physics/geant4 { };
+
+  cernlib = callPackage ../development/libraries/physics/cernlib { };
+
+  clhep = callPackage ../development/libraries/physics/clhep { };
+
+  hepmc2 = callPackage ../development/libraries/physics/hepmc2 { };
+
+  hepmc3 = callPackage ../development/libraries/physics/hepmc3 {
+    python = null;
+  };
+
+  herwig = callPackage ../development/libraries/physics/herwig { };
+
+  lhapdf = callPackage ../development/libraries/physics/lhapdf {
+    python = python3;
+  };
+
+  mela = callPackage ../development/libraries/physics/mela { };
+
+  nlojet = callPackage ../development/libraries/physics/nlojet { };
+
+  pythia = callPackage ../development/libraries/physics/pythia {
+    hepmc = hepmc2;
+  };
+
+  rivet = callPackage ../development/libraries/physics/rivet {
+    hepmc = hepmc2;
+    imagemagick = graphicsmagick-imagemagick-compat;
+  };
+
+  thepeg = callPackage ../development/libraries/physics/thepeg { };
+
+  yoda = callPackage ../development/libraries/physics/yoda {
+    python = python3;
+  };
+  yoda-with-root = lowPrio (yoda.override {
+    withRootSupport = true;
+  });
+
+  qcdnum = callPackage ../development/libraries/physics/qcdnum { };
+
+  ### SCIENCE/ROBOTICS
+
+  apmplanner2 = libsForQt5.callPackage ../applications/science/robotics/apmplanner2 { };
+
+  betaflight-configurator = callPackage ../applications/science/robotics/betaflight-configurator { };
+
+  emuflight-configurator = callPackage ../applications/science/robotics/emuflight-configurator { };
+
+  inav-configurator = callPackage ../applications/science/robotics/inav-configurator { };
+
+  mission-planner = callPackage ../applications/science/robotics/mission-planner { };
+
+  ### MISC
+
+  acpilight = callPackage ../misc/acpilight { };
+
+  alpnpass = callPackage ../applications/networking/alpnpass { };
+
+  amdctl = callPackage ../os-specific/linux/amdctl { };
+
+  android-file-transfer = libsForQt5.callPackage ../tools/filesystems/android-file-transfer { };
+
+  antimicrox = libsForQt5.callPackage ../tools/misc/antimicrox { };
+
+  atlantis = callPackage ../applications/networking/cluster/atlantis { };
+
+  atmos = callPackage ../applications/networking/cluster/atmos { };
+
+  aiac = callPackage ../applications/networking/cluster/aiac { };
+
+  fn-cli = callPackage ../applications/networking/cluster/fn-cli { };
+
+  argononed = callPackage ../misc/drivers/argononed { };
+
+  autotiling = python3Packages.callPackage ../misc/autotiling { };
+
+  autotiling-rs = callPackage ../misc/autotiling-rs { };
+
+  avell-unofficial-control-center = python3Packages.callPackage ../applications/misc/avell-unofficial-control-center { };
+
+  boatswain = callPackage ../applications/misc/boatswain { };
+
+  beep = callPackage ../misc/beep { };
+
+  bees = callPackage ../tools/filesystems/bees { };
+
+  blahaj = callPackage ../tools/misc/blahaj { };
+
+  bootil = callPackage ../development/libraries/bootil { };
+
+  brgenml1lpr = pkgsi686Linux.callPackage ../misc/cups/drivers/brgenml1lpr { };
+
+  brgenml1cupswrapper = callPackage ../misc/cups/drivers/brgenml1cupswrapper { };
+
+  brightnessctl = callPackage ../misc/brightnessctl { };
+
+  cached-nix-shell = callPackage ../tools/nix/cached-nix-shell { };
+
+  calaos_installer = libsForQt5.callPackage ../misc/calaos/installer { };
+
+  civo = callPackage ../applications/networking/cluster/civo { };
+
+  click = callPackage ../applications/networking/cluster/click { };
+
+  clinfo = callPackage ../tools/system/clinfo {
+    inherit (darwin.apple_sdk.frameworks) OpenCL;
+  };
+
+  clpeak = callPackage ../tools/misc/clpeak { };
+
+  cups = callPackage ../misc/cups { };
+
+  cups-filters = callPackage ../misc/cups/filters.nix { };
+
+  cups-pk-helper = callPackage ../misc/cups/cups-pk-helper.nix { };
+
+  cups-kyocera = callPackage ../misc/cups/drivers/kyocera { };
+
+  cups-kyocera-ecosys-m2x35-40-p2x35-40dnw = callPackage ../misc/cups/drivers/kyocera-ecosys-m2x35-40-p2x35-40dnw { };
+
+  cups-kyocera-ecosys-m552x-p502x = callPackage ../misc/cups/drivers/kyocera-ecosys-m552x-p502x { };
+
+  cups-kyodialog = callPackage ../misc/cups/drivers/kyodialog { };
+
+  cups-dymo = callPackage ../misc/cups/drivers/dymo { };
+
+  cups-pdf-to-pdf = callPackage ../misc/cups/drivers/cups-pdf-to-pdf { };
+
+  cups-toshiba-estudio = callPackage ../misc/cups/drivers/estudio { };
+
+  cups-zj-58 =  callPackage ../misc/cups/drivers/zj-58 { };
+
+  colort = callPackage ../applications/misc/colort { };
+
+  terminal-parrot = callPackage ../applications/misc/terminal-parrot { };
+
+  djenrandom = callPackage ../tools/misc/djenrandom { };
+
+  epsonscan2 = pkgs.libsForQt5.callPackage ../misc/drivers/epsonscan2 { };
+
+  epson-alc1100 = callPackage ../misc/drivers/epson-alc1100 { };
+
+  epson-escpr = callPackage ../misc/drivers/epson-escpr { };
+  epson-escpr2 = callPackage ../misc/drivers/epson-escpr2 { };
+
+  epson_201207w = callPackage ../misc/drivers/epson_201207w { };
+
+  epson-201401w = callPackage ../misc/drivers/epson-201401w { };
+
+  epson-201106w = callPackage ../misc/drivers/epson-201106w { };
+
+  epson-workforce-635-nx625-series = callPackage ../misc/drivers/epson-workforce-635-nx625-series { };
+
+  foomatic-db = callPackage ../misc/cups/drivers/foomatic-db { };
+  foomatic-db-engine = callPackage ../misc/cups/drivers/foomatic-db-engine { };
+  foomatic-db-nonfree = callPackage ../misc/cups/drivers/foomatic-db-nonfree { };
+  foomatic-db-ppds = callPackage ../misc/cups/drivers/foomatic-db-ppds { };
+  foomatic-db-ppds-withNonfreeDb = callPackage ../misc/cups/drivers/foomatic-db-ppds { withNonfreeDb = true; };
+
+  gutenprint = callPackage ../misc/drivers/gutenprint { };
+
+  gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
+
+  carps-cups = callPackage ../misc/cups/drivers/carps-cups { };
+
+  cups-bjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
+
+  dcp375cwlpr = (pkgsi686Linux.callPackage ../misc/cups/drivers/brother/dcp375cw { }).driver;
+
+  dcp375cw-cupswrapper = (callPackage ../misc/cups/drivers/brother/dcp375cw { }).cupswrapper;
+
+  dcp9020cdwlpr = (pkgsi686Linux.callPackage ../misc/cups/drivers/brother/dcp9020cdw { }).driver;
+
+  dcp9020cdw-cupswrapper = (callPackage ../misc/cups/drivers/brother/dcp9020cdw { }).cupswrapper;
+
+  cups-brother-hl1110 = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1110 { };
+
+  cups-brother-hl1210w = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1210w { };
+
+  cups-brother-hl2260d = pkgsi686Linux.callPackage ../misc/cups/drivers/hl2260d { };
+
+  cups-brother-hl3140cw = pkgsi686Linux.callPackage ../misc/cups/drivers/hl3140cw { };
+
+  cups-brother-hll2340dw = pkgsi686Linux.callPackage  ../misc/cups/drivers/hll2340dw { };
+
+  cups-brother-hll3230cdw = pkgsi686Linux.callPackage  ../misc/cups/drivers/hll3230cdw { };
+
+  cups-brother-hll2350dw = callPackage  ../misc/cups/drivers/hll2350dw { };
+
+  cups-brother-mfcl2750dw = callPackage  ../misc/cups/drivers/mfcl2750dw { };
+
+  cups-drv-rastertosag-gdi = callPackage ../misc/cups/drivers/cups-drv-rastertosag-gdi { };
+
+  # this driver ships with pre-compiled 32-bit binary libraries
+  cnijfilter_2_80 = pkgsi686Linux.callPackage ../misc/cups/drivers/cnijfilter_2_80 { };
+
+  cnijfilter_4_00 = callPackage ../misc/cups/drivers/cnijfilter_4_00 { };
+
+  cnijfilter2 = callPackage ../misc/cups/drivers/cnijfilter2 { };
+
+  darling-dmg = callPackage ../tools/filesystems/darling-dmg { };
+
+  depotdownloader = callPackage ../tools/misc/depotdownloader { };
+
+  dbacl = callPackage ../tools/misc/dbacl { };
+
+  dbus-map = callPackage ../tools/misc/dbus-map { };
+
+  dell-530cdn = callPackage ../misc/drivers/dell-530cdn { };
+
+  deploy-rs = callPackage ../tools/package-management/deploy-rs {
+    inherit (darwin.apple_sdk.frameworks) CoreServices SystemConfiguration;
+  };
+
+  dockutil = callPackage ../os-specific/darwin/dockutil { };
+
+  eiciel = callPackage ../tools/filesystems/eiciel { };
+
+  apx = callPackage ../tools/package-management/apx { };
+
+  dpkg = callPackage ../tools/package-management/dpkg { };
+
+  dumb = callPackage ../misc/dumb { };
+
+  dump = callPackage ../tools/backup/dump { };
+
+  ec2stepshell = callPackage ../tools/security/ec2stepshell { };
+
+  ecdsatool = callPackage ../tools/security/ecdsatool { };
+
+  electricsheep = callPackage ../misc/screensavers/electricsheep { };
+
+  aaphoto = callPackage ../tools/graphics/aaphoto { };
+
+  aapt = callPackage ../development/tools/aapt { };
+
+  flam3 = callPackage ../tools/graphics/flam3 { };
+
+  glee = callPackage ../tools/graphics/glee { };
+
+  faust = res.faust2;
+
+  faust2 = callPackage ../applications/audio/faust/faust2.nix { };
+
+  faust2alqt = libsForQt5.callPackage ../applications/audio/faust/faust2alqt.nix { };
+
+  faust2alsa = callPackage ../applications/audio/faust/faust2alsa.nix { };
+
+  faust2csound = callPackage ../applications/audio/faust/faust2csound.nix { };
+
+  faust2sc = callPackage ../applications/audio/faust/faust2sc.nix { };
+
+  faust2firefox = callPackage ../applications/audio/faust/faust2firefox.nix { };
+
+  faust2jack = callPackage ../applications/audio/faust/faust2jack.nix { };
+
+  faust2jackrust = callPackage ../applications/audio/faust/faust2jackrust.nix { };
+
+  faust2jaqt = libsForQt5.callPackage ../applications/audio/faust/faust2jaqt.nix { };
+
+  faust2ladspa = callPackage ../applications/audio/faust/faust2ladspa.nix { };
+
+  faust2lv2 = libsForQt5.callPackage ../applications/audio/faust/faust2lv2.nix { };
+
+  faustlive = callPackage ../applications/audio/faust/faustlive.nix { };
+
+  faustPhysicalModeling = callPackage ../applications/audio/faustPhysicalModeling  { };
+
+  flashprint = libsForQt5.callPackage ../applications/misc/flashprint { };
+
+  flockit = callPackage ../tools/backup/flockit { };
+
+  fahclient = callPackage ../applications/science/misc/foldingathome/client.nix { };
+  fahcontrol = callPackage ../applications/science/misc/foldingathome/control.nix { };
+  fahviewer = callPackage ../applications/science/misc/foldingathome/viewer.nix { };
+
+  fbmark = callPackage ../tools/misc/fbmark { };
+
+  foma = callPackage ../tools/misc/foma { };
+
+  foo2zjs = callPackage ../misc/drivers/foo2zjs { };
+
+  foomatic-filters = callPackage ../misc/drivers/foomatic-filters { };
+
+  gajim = callPackage ../applications/networking/instant-messengers/gajim {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-libav;
+    gst-plugins-good = gst_all_1.gst-plugins-good.override { gtkSupport = true; };
+  };
+
+  gammu = callPackage ../applications/misc/gammu { };
+
+  ghostscript = callPackage ../misc/ghostscript { };
+
+  ghostscriptX = ghostscript.override {
+    cupsSupport = true;
+    x11Support = true;
+  };
+
+  ghostscript_headless = ghostscript.override {
+    cupsSupport = false;
+    x11Support = false;
+  };
+
+  glava = callPackage ../applications/misc/glava { };
+
+  gnuk = callPackage ../misc/gnuk {
+    gcc-arm-embedded = pkgsCross.arm-embedded.buildPackages.gcc;
+    binutils-arm-embedded = pkgsCross.arm-embedded.buildPackages.binutils;
+  };
+
+  go365 = callPackage ../tools/security/go365 { };
+
+  gobuster = callPackage ../tools/security/gobuster { };
+
+  gotestwaf = callPackage ../tools/security/gotestwaf { };
+
+  gotrue = callPackage ../tools/security/gotrue { };
+
+  gotrue-supabase = callPackage ../tools/security/gotrue/supabase.nix { };
+
+  gowitness = callPackage ../tools/security/gowitness { };
+
+  guetzli = callPackage ../applications/graphics/guetzli { };
+
+  gummi = callPackage ../applications/misc/gummi { };
+
+  gummy = callPackage ../tools/misc/gummy { };
+
+  hashpump = callPackage ../tools/misc/hashpump { };
+
+  hck = callPackage ../tools/text/hck { };
+
+  helm = callPackage ../applications/audio/helm { };
+
+  helmfile = callPackage ../applications/networking/cluster/helmfile { };
+
+  helmfile-wrapped = callPackage ../applications/networking/cluster/helmfile {
+    inherit (kubernetes-helm-wrapped.passthru) pluginsDir;
+  };
+
+  helm-dashboard = callPackage ../applications/networking/cluster/helm-dashboard { };
+
+  helmsman = callPackage ../applications/networking/cluster/helmsman { };
+
+  velero = callPackage ../applications/networking/cluster/velero { };
+
+  HentaiAtHome = callPackage ../applications/misc/HentaiAtHome { };
+
+  hplip = callPackage ../misc/drivers/hplip { };
+
+  hplipWithPlugin = hplip.override { withPlugin = true; };
+
+  hyfetch = callPackage ../tools/misc/hyfetch { };
+
+  hyperfine = callPackage ../tools/misc/hyperfine {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  webcat = callPackage ../tools/misc/webcat { };
+
+  websocat = callPackage ../tools/misc/websocat {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  vector = callPackage ../tools/misc/vector {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices SystemConfiguration;
+  };
+
+  hjson = with python3Packages; toPythonApplication hjson;
+
+  epkowa = callPackage ../misc/drivers/epkowa { };
+
+  utsushi = callPackage ../misc/drivers/utsushi { };
+
+  utsushi-networkscan = callPackage ../misc/drivers/utsushi/networkscan.nix { };
+
+  colima = callPackage ../applications/virtualization/colima { };
+
+  lima = callPackage ../applications/virtualization/lima {
+    inherit (darwin) sigtool;
+  };
+
+  lima-bin = callPackage ../applications/virtualization/lima/bin.nix { };
+
+  logtop = callPackage ../tools/misc/logtop { };
+
+  imaginer = callPackage ../applications/misc/imaginer { };
+
+  igraph = callPackage ../development/libraries/igraph { };
+
+  igprof = callPackage ../development/tools/misc/igprof { };
+
+  illum = callPackage ../tools/system/illum { };
+
+  image_optim = callPackage ../applications/graphics/image_optim { inherit (nodePackages) svgo; };
+
+  infnoise = callPackage ../misc/drivers/infnoise { };
+
+  itamae = callPackage ../tools/admin/itamae { };
+
+  # using the new configuration style proposal which is unstable
+  jack1 = callPackage ../misc/jackaudio/jack1.nix { };
+
+  jack2 = callPackage ../misc/jackaudio {
+    libopus = libopus.override { withCustomModes = true; };
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio Accelerate;
+    inherit (darwin) libobjc;
+  };
+
+  libjack2 = jack2.override { prefix = "lib"; };
+
+  jack-example-tools = callPackage ../misc/jackaudio/tools.nix {
+    libopus = libopus.override { withCustomModes = true; };
+    jack = jack2;
+  };
+
+  jack-autoconnect = libsForQt5.callPackage ../applications/audio/jack-autoconnect { };
+  jack_autoconnect = jack-autoconnect;
+
+  jacktrip = libsForQt5.callPackage ../applications/audio/jacktrip { };
+
+  j2cli = with python3Packages; toPythonApplication j2cli;
+
+  jq-lsp = callPackage ../development/tools/language-servers/jq-lsp { };
+
+  jquake = callPackage ../applications/misc/jquake { };
+
+  jstest-gtk = callPackage ../tools/misc/jstest-gtk { };
+
+  k40-whisperer = callPackage ../applications/misc/k40-whisperer { };
+
+  keynav = callPackage ../tools/X11/keynav { };
+
+  gnome-console = callPackage ../applications/terminal-emulators/gnome-console { };
+
+  kmon = callPackage ../tools/system/kmon { };
+
+  kompose = callPackage ../applications/networking/cluster/kompose { };
+
+  kompute = callPackage ../development/libraries/kompute {
+    fmt = fmt_8;
+  };
+
+  kontemplate = callPackage ../applications/networking/cluster/kontemplate { };
+
+  # In general we only want keep the last three minor versions around that
+  # correspond to the last three supported kubernetes versions:
+  # https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions
+  # Exceptions are versions that we need to keep to allow upgrades from older NixOS releases
+  inherit (callPackage ../applications/networking/cluster/kops {})
+    mkKops
+    kops_1_26
+    kops_1_27
+    kops_1_28
+    ;
+  kops = kops_1_28;
+
+  lguf-brightness = callPackage ../misc/lguf-brightness { };
+
+  lighthouse = darwin.apple_sdk_11_0.callPackage ../applications/blockchains/lighthouse {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation Security SystemConfiguration;
+  };
+
+  lilypond = callPackage ../misc/lilypond { };
+
+  lilypond-unstable = callPackage ../misc/lilypond/unstable.nix { };
+
+  lilypond-unstable-with-fonts = callPackage ../misc/lilypond/with-fonts.nix {
+    lilypond = lilypond-unstable;
+    openlilylib-fonts = openlilylib-fonts.override {
+      lilypond = lilypond-unstable;
+    };
+  };
+
+  lilypond-with-fonts = callPackage ../misc/lilypond/with-fonts.nix { };
+
+  openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix { };
+
+  loop = callPackage ../tools/misc/loop { };
+
+  mailcore2 = callPackage ../development/libraries/mailcore2 {
+    icu = icu58;
+  };
+
+  mamba = callPackage ../applications/audio/mamba { };
+
+  martyr = callPackage ../development/libraries/martyr { };
+
+  mas = callPackage ../os-specific/darwin/mas { };
+
+  micromamba = callPackage ../tools/package-management/micromamba { };
+
+  moltengamepad = callPackage ../misc/drivers/moltengamepad { };
+
+  openzwave = callPackage ../development/libraries/openzwave { };
+
+  mongoc = darwin.apple_sdk_11_0.callPackage ../development/libraries/mongoc { };
+
+  mongocxx = callPackage ../development/libraries/mongocxx/default.nix { };
+
+  mongoose = callPackage ../development/libraries/science/math/mongoose { };
+
+  morph = callPackage ../tools/package-management/morph { };
+
+  muse = libsForQt5.callPackage ../applications/audio/muse { };
+
+  museeks = callPackage ../applications/audio/museeks { };
+
+  musly = callPackage ../applications/audio/musly { };
+
+  mynewt-newt = callPackage ../tools/package-management/mynewt-newt { };
+
+  mynewt-newtmgr = callPackage ../tools/misc/mynewt-newtmgr { };
+
+  mysides = callPackage ../os-specific/darwin/mysides { };
+
+  narrowlink = callPackage ../tools/networking/narrowlink { };
+
+  nar-serve = callPackage ../tools/nix/nar-serve { };
+
+  neo = callPackage ../applications/misc/neo { };
+
+  networkd-dispatcher = callPackage ../tools/networking/networkd-dispatcher { };
+
+  nixVersions = recurseIntoAttrs (callPackage ../tools/package-management/nix {
+    storeDir = config.nix.storeDir or "/nix/store";
+    stateDir = config.nix.stateDir or "/nix/var";
+    inherit (darwin.apple_sdk.frameworks) Security;
+  });
+
+  nix = nixVersions.stable;
+
+  nixStatic = pkgsStatic.nix;
+
+  nixops_unstable = callPackage ../applications/networking/cluster/nixops { };
+
+  /*
+    Evaluate a NixOS configuration using this evaluation of Nixpkgs.
+
+    With this function you can write, for example, a package that
+    depends on a custom virtual machine image.
+
+    Parameter:  A module, path or list of those that represent the
+                configuration of the NixOS system to be constructed.
+
+    Result: An attribute set containing packages produced by this
+            evaluation of NixOS, such as toplevel, kernel and
+            initialRamdisk.
+            The result can be extended in the modules by defining
+            extra attributes in system.build.
+            Alternatively, you may use the result's config and
+            options attributes to query any option.
+
+    Example:
+
+        let
+          myOS = pkgs.nixos ({ lib, pkgs, config, ... }: {
+
+            config.services.nginx = {
+              enable = true;
+              # ...
+            };
+
+            # Use config.system.build to exports relevant parts of a
+            # configuration. The runner attribute should not be
+            # considered a fully general replacement for systemd
+            # functionality.
+            config.system.build.run-nginx = config.systemd.services.nginx.runner;
+          });
+        in
+          myOS.run-nginx
+
+    Unlike in plain NixOS, the nixpkgs.config and
+    nixpkgs.system options will be ignored by default. Instead,
+    nixpkgs.pkgs will have the default value of pkgs as it was
+    constructed right after invoking the nixpkgs function (e.g. the
+    value of import <nixpkgs> { overlays = [./my-overlay.nix]; }
+    but not the value of (import <nixpkgs> {} // { extra = ...; }).
+
+    If you do want to use the config.nixpkgs options, you are
+    probably better off by calling nixos/lib/eval-config.nix
+    directly, even though it is possible to set config.nixpkgs.pkgs.
+
+    For more information about writing NixOS modules, see
+    https://nixos.org/nixos/manual/index.html#sec-writing-modules
+
+    Note that you will need to have called Nixpkgs with the system
+    parameter set to the right value for your deployment target.
+  */
+  nixos =
+    configuration:
+      let
+        c = import (path + "/nixos/lib/eval-config.nix") {
+              modules =
+                [(
+                  { lib, ... }: {
+                    config.nixpkgs.pkgs = lib.mkDefault pkgs;
+                    config.nixpkgs.localSystem = lib.mkDefault stdenv.hostPlatform;
+                  }
+                )] ++ (
+                  if builtins.isList configuration
+                  then configuration
+                  else [configuration]
+                );
+
+                # The system is inherited from the current pkgs above.
+                # Set it to null, to remove the "legacy" entrypoint's non-hermetic default.
+                system = null;
+            };
+      in
+        c.config.system.build // c;
+
+  /*
+    A NixOS/home-manager/arion/... module that sets the `pkgs` module argument.
+   */
+  pkgsModule = { lib, options, ... }: {
+    config =
+      if options?nixpkgs.pkgs then {
+        # legacy / nixpkgs.nix style
+        nixpkgs.pkgs = pkgs;
+      }
+      else {
+        # minimal
+        _module.args.pkgs = pkgs;
+      };
+  };
+
+  nixosOptionsDoc = attrs:
+    (import ../../nixos/lib/make-options-doc)
+    ({ inherit pkgs lib; } // attrs);
+
+  nixos-install-tools = callPackage ../tools/nix/nixos-install-tools { };
+
+  nixos-render-docs = callPackage ../tools/nix/nixos-render-docs { };
+
+  nixdoc = callPackage ../tools/nix/nixdoc { };
+
+  dnadd = callPackage ../tools/nix/dnadd { };
+
+  nix-eval-jobs = callPackage ../tools/package-management/nix-eval-jobs {
+    nix = nixVersions.nix_2_19;
+  };
+
+  nix-doc = callPackage ../tools/package-management/nix-doc { };
+
+  nix-bundle = callPackage ../tools/package-management/nix-bundle { };
+
+  nix-delegate = haskell.lib.compose.justStaticExecutables haskellPackages.nix-delegate;
+  nix-deploy = haskell.lib.compose.justStaticExecutables haskellPackages.nix-deploy;
+  nix-derivation = haskell.lib.compose.justStaticExecutables haskellPackages.nix-derivation;
+  nix-diff = haskell.lib.compose.justStaticExecutables haskellPackages.nix-diff;
+
+  nix-du = callPackage ../tools/package-management/nix-du {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  nix-info = callPackage ../tools/nix/info { };
+  nix-info-tested = nix-info.override { doCheck = true; };
+
+  nix-init = callPackage ../tools/nix/nix-init { };
+
+  nix-index-unwrapped = callPackage ../tools/package-management/nix-index {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  nix-index = callPackage ../tools/package-management/nix-index/wrapper.nix { };
+
+  nix-linter = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-linter);
+
+  nix-melt = callPackage ../tools/nix/nix-melt { };
+
+  nixos-option = callPackage ../tools/nix/nixos-option {
+    nix = nixVersions.nix_2_15;
+  };
+
+  nix-pin = callPackage ../tools/package-management/nix-pin { };
+
+  nix-prefetch = callPackage ../tools/package-management/nix-prefetch { };
+
+  nix-prefetch-github = with python3Packages;
+    toPythonApplication nix-prefetch-github;
+
+  inherit (callPackages ../tools/package-management/nix-prefetch-scripts { })
+    nix-prefetch-bzr
+    nix-prefetch-cvs
+    nix-prefetch-git
+    nix-prefetch-hg
+    nix-prefetch-svn
+    nix-prefetch-scripts;
+
+  nix-query-tree-viewer = callPackage ../tools/nix/nix-query-tree-viewer { };
+
+  nix-update = callPackage ../tools/package-management/nix-update {
+    python3 = python311;
+  };
+
+  nix-update-source = callPackage ../tools/package-management/nix-update-source { };
+
+  nix-script = callPackage ../tools/nix/nix-script { };
+
+  nix-top = callPackage ../tools/package-management/nix-top { };
+
+  nix-tree = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-tree);
+
+  nix-universal-prefetch = callPackage ../tools/package-management/nix-universal-prefetch { };
+
+  nix-repl = throw (
+    "nix-repl has been removed because it's not maintained anymore, " +
+    "use `nix repl` instead. Also see https://github.com/NixOS/nixpkgs/pull/44903"
+  );
+
+  nixpkgs-review = callPackage ../tools/package-management/nixpkgs-review { };
+
+  nix-serve = callPackage ../tools/package-management/nix-serve { };
+
+  nix-serve-ng = haskell.lib.compose.justStaticExecutables haskellPackages.nix-serve-ng;
+
+  nix-simple-deploy = callPackage ../tools/package-management/nix-simple-deploy { };
+
+  alejandra = callPackage ../tools/nix/alejandra { };
+
+  nixci = callPackage ../tools/nix/nixci {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  nixfmt = haskellPackages.nixfmt.bin;
+
+  nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { };
+
+  nixpkgs-hammering = callPackage ../tools/nix/nixpkgs-hammering { };
+
+  nixpkgs-lint-community = callPackage ../tools/nix/nixpkgs-lint { };
+
+  rnix-hashes = callPackage ../tools/nix/rnix-hashes { };
+
+  nixos-artwork = callPackage ../data/misc/nixos-artwork { };
+  nixos-icons = callPackage ../data/misc/nixos-artwork/icons.nix { };
+  nixos-grub2-theme = callPackage ../data/misc/nixos-artwork/grub2-theme.nix { };
+
+  nixos-bgrt-plymouth = callPackage ../data/themes/nixos-bgrt-plymouth { };
+
+  nixos-container = callPackage ../tools/virtualization/nixos-container { };
+
+  nixos-generators = callPackage ../tools/nix/nixos-generators { };
+
+  nixos-rebuild = callPackage ../os-specific/linux/nixos-rebuild { };
+
+  extra-container = callPackage ../tools/virtualization/extra-container { };
+
+  norwester-font = callPackage ../data/fonts/norwester  { };
+
+  nut = callPackage ../applications/misc/nut { };
+
+  nhentai = callPackage ../applications/misc/nhentai { };
+
+  nsncd = callPackage ../os-specific/linux/nsncd { };
+
+  nvd = callPackage ../tools/package-management/nvd { };
+
+  solfege = python3Packages.callPackage ../misc/solfege { };
+
+  disnix = callPackage ../tools/package-management/disnix { };
+
+  dysnomia = callPackage ../tools/package-management/disnix/dysnomia (config.disnix or {
+    inherit (python3Packages) supervisor;
+  });
+
+  dydisnix = callPackage ../tools/package-management/disnix/dydisnix { };
+
+  disnixos = callPackage ../tools/package-management/disnix/disnixos { };
+
+  DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService {
+    jdk = jdk8;
+  };
+
+  i3a = callPackage ../misc/i3a { };
+
+  lice = python3Packages.callPackage ../tools/misc/lice { };
+
+  m33-linux = callPackage ../misc/drivers/m33-linux { };
+
+  mnemonicode = callPackage ../misc/mnemonicode { };
+
+  moonfire-nvr = callPackage ../misc/moonfire-nvr { };
+
+  mysql-workbench = callPackage ../applications/misc/mysql-workbench (let mysql = mysql80; in {
+    gdal = gdal.override {
+      libmysqlclient = mysql;
+    };
+    mysql = mysql;
+    pcre = pcre-cpp;
+    jre = openjdk19; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  });
+
+  owmods-cli = callPackage ../applications/misc/owmods-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  r128gain = callPackage ../applications/audio/r128gain { };
+
+  resp-app = libsForQt5.callPackage ../applications/misc/resp-app { };
+
+  responder = callPackage ../tools/security/responder { };
+
+  resumed = callPackage ../applications/misc/resumed { };
+
+  robin-map = callPackage ../development/libraries/robin-map { };
+
+  robo3t = callPackage ../applications/misc/robo3t { };
+
+  rucksack = callPackage ../development/tools/rucksack { };
+
+  ruff = callPackage ../development/tools/ruff {
+    inherit (python3.pkgs) ruff-lsp;
+  };
+
+  sam-ba = callPackage ../tools/misc/sam-ba { };
+
+  sndio = callPackage ../misc/sndio { };
+
+  SP800-90B_EntropyAssessment = callPackage ../tools/misc/SP800-90B_EntropyAssessment { };
+
+  sticky = callPackage ../applications/misc/sticky { };
+
+  stork = darwin.apple_sdk_11_0.callPackage ../applications/misc/stork {
+    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+  };
+
+  superd = callPackage ../misc/superd { };
+
+  oclgrind = callPackage ../development/tools/analysis/oclgrind { };
+
+  opkg = callPackage ../tools/package-management/opkg { };
+
+  opkg-utils = callPackage ../tools/package-management/opkg-utils { };
+
+  OSCAR = qt5.callPackage ../applications/misc/OSCAR { };
+
+  parsedmarc = with python3Packages; toPythonApplication parsedmarc;
+
+  pgmanage = callPackage ../applications/misc/pgmanage { };
+
+  pgadmin4 = callPackage ../tools/admin/pgadmin { };
+
+  pgadmin4-desktopmode = callPackage ../tools/admin/pgadmin { server-mode = false; };
+
+  pgmodeler = qt6Packages.callPackage ../applications/misc/pgmodeler { };
+
+  physlock = callPackage ../misc/screensavers/physlock { };
+
+  pjsip = darwin.apple_sdk_11_0.callPackage ../applications/networking/pjsip {
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit CoreFoundation Security;
+  };
+
+  pounce = callPackage ../servers/pounce { };
+
+  pt = callPackage ../applications/misc/pt { };
+
+  protocol = callPackage ../applications/networking/protocol { };
+
+  pykms = callPackage ../tools/networking/pykms { };
+
+  pyupgrade = with python3Packages; toPythonApplication pyupgrade;
+
+  pwncat = python3Packages.callPackage ../tools/security/pwncat { };
+
+  pwntools = with python3Packages; toPythonApplication pwntools;
+
+  putty = callPackage ../applications/networking/remote/putty {
+    gtk2 = gtk2-x11;
+  };
+
+  qMasterPassword = qt6Packages.callPackage ../applications/misc/qMasterPassword { };
+
+  qMasterPassword-wayland = qt6Packages.callPackage ../applications/misc/qMasterPassword {
+    x11Support = false;
+    waylandSupport = true;
+  };
+
+  qmake2cmake = python3Packages.callPackage ../tools/misc/qmake2cmake { };
+
+  qtrvsim = libsForQt5.callPackage ../applications/science/computer-architecture/qtrvsim { };
+
+  qdl = callPackage ../tools/misc/qdl { };
+
+  qperf = callPackage ../os-specific/linux/qperf { };
+
+  qzdl = libsForQt5.callPackage ../games/qzdl { };
+
+  rates = callPackage ../tools/misc/rates {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  rars = callPackage ../development/tools/rars { };
+
+  rargs = callPackage ../tools/misc/rargs { };
+
+  rancher = callPackage ../applications/networking/cluster/rancher { };
+
+  rauc = callPackage ../tools/misc/rauc { };
+
+  rbspy = darwin.apple_sdk_11_0.callPackage ../development/tools/rbspy { };
+
+  redprl = callPackage ../applications/science/logic/redprl { };
+
+  renderizer = callPackage ../development/tools/renderizer { };
+
+  rfc = callPackage ../tools/misc/rfc { };
+
+  rfc-bibtex = callPackage ../tools/typesetting/rfc-bibtex { };
+
+  pick-colour-picker = python3Packages.callPackage ../applications/graphics/pick-colour-picker {
+    inherit glib gtk3 gobject-introspection wrapGAppsHook;
+  };
+
+  rpl = callPackage ../tools/text/rpl { };
+
+  ricty = callPackage ../data/fonts/ricty { };
+
+  rivalcfg = callPackage ../misc/rivalcfg { };
+
+  roadrunner = callPackage ../servers/roadrunner { };
+
+  rmfakecloud = callPackage ../servers/rmfakecloud { };
+
+  rmfuse = callPackage ../tools/filesystems/rmfuse { };
+
+  rmount = callPackage ../tools/filesystems/rmount { };
+
+  romdirfs = callPackage ../tools/filesystems/romdirfs {
+    stdenv = gccStdenv;
+  };
+
+  rss-glx = callPackage ../misc/screensavers/rss-glx { };
+
+  run-scaled = callPackage ../tools/X11/run-scaled { };
+
+  runiq = callPackage ../tools/text/runiq { };
+
+  runit = callPackage ../tools/system/runit { };
+
+  runitor = callPackage ../tools/system/runitor { };
+
+  refind = callPackage ../tools/bootloaders/refind { };
+
+  refmt = callPackage ../development/tools/refmt { };
+
+  spectra = callPackage ../development/libraries/spectra { };
+
+  spectrojack = callPackage ../applications/audio/spectrojack { };
+
+  sift = callPackage ../tools/text/sift { };
+
+  xdragon = lowPrio (callPackage ../tools/X11/xdragon { });
+
+  xlockmore = callPackage ../misc/screensavers/xlockmore { };
+
+  xq = callPackage ../tools/misc/xq { };
+
+  xtrlock-pam = callPackage ../misc/screensavers/xtrlock-pam { };
+
+  sailsd = callPackage ../misc/sailsd { };
+
+  sail-riscv-rv32 = callPackage ../applications/virtualization/sail-riscv {
+    arch = "RV32";
+  };
+
+  sail-riscv-rv64 = callPackage ../applications/virtualization/sail-riscv {
+    arch = "RV64";
+  };
+
+  shc = callPackage ../tools/security/shc { };
+
+  shellz = callPackage ../tools/security/shellz { };
+
+  timeloop = pkgs.darwin.apple_sdk_11_0.callPackage ../applications/science/computer-architecture/timeloop { };
+
+  canon-cups-ufr2 = callPackage ../misc/cups/drivers/canon { };
+
+  hll2390dw-cups = callPackage ../misc/cups/drivers/hll2390dw-cups { };
+
+  mfc465cncupswrapper = callPackage ../misc/cups/drivers/brother/mfc465cncupswrapper { };
+  mfc465cnlpr = callPackage ../misc/cups/drivers/brother/mfc465cnlpr { };
+
+  mfcj470dw-cupswrapper = callPackage ../misc/cups/drivers/mfcj470dwcupswrapper { };
+  mfcj470dwlpr = pkgsi686Linux.callPackage ../misc/cups/drivers/mfcj470dwlpr { };
+
+  mfcj6510dw-cupswrapper = callPackage ../misc/cups/drivers/mfcj6510dwcupswrapper { };
+  mfcj6510dwlpr = pkgsi686Linux.callPackage ../misc/cups/drivers/mfcj6510dwlpr { };
+
+  mfcl2700dncupswrapper = callPackage ../misc/cups/drivers/mfcl2700dncupswrapper { };
+  mfcl2700dnlpr = pkgsi686Linux.callPackage ../misc/cups/drivers/mfcl2700dnlpr { };
+
+  mfcl2720dwcupswrapper = callPackage ../misc/cups/drivers/mfcl2720dwcupswrapper { };
+  mfcl2720dwlpr = callPackage ../misc/cups/drivers/mfcl2720dwlpr { };
+
+  mfcl2740dwcupswrapper = callPackage ../misc/cups/drivers/mfcl2740dwcupswrapper { };
+  mfcl2740dwlpr = callPackage ../misc/cups/drivers/mfcl2740dwlpr { };
+
+  # This driver is only available as a 32 bit proprietary binary driver
+  mfcl3770cdwlpr = (callPackage ../misc/cups/drivers/brother/mfcl3770cdw { }).driver;
+  mfcl3770cdwcupswrapper = (callPackage ../misc/cups/drivers/brother/mfcl3770cdw { }).cupswrapper;
+
+  cups-brother-hll2375dw = callPackage ../misc/cups/drivers/brother/hll2375dw { };
+
+  mfcl8690cdwcupswrapper = callPackage ../misc/cups/drivers/mfcl8690cdwcupswrapper { };
+  mfcl8690cdwlpr = callPackage ../misc/cups/drivers/mfcl8690cdwlpr { };
+
+  mfc5890cncupswrapper = callPackage ../misc/cups/drivers/mfc5890cncupswrapper { };
+  mfc5890cnlpr = callPackage ../misc/cups/drivers/mfc5890cnlpr { };
+
+  mfc9140cdncupswrapper = callPackage ../misc/cups/drivers/mfc9140cdncupswrapper { };
+  mfc9140cdnlpr = callPackage ../misc/cups/drivers/mfc9140cdnlpr { };
+
+  samsung-unified-linux-driver_1_00_36 = callPackage ../misc/cups/drivers/samsung/1.00.36 { };
+  samsung-unified-linux-driver_1_00_37 = callPackage ../misc/cups/drivers/samsung/1.00.37.nix { };
+  samsung-unified-linux-driver_4_01_17 = callPackage ../misc/cups/drivers/samsung/4.01.17.nix { };
+  samsung-unified-linux-driver = res.samsung-unified-linux-driver_4_01_17;
+
+  sane-backends = callPackage ../applications/graphics/sane/backends (config.sane or {});
+
+  sane-drivers = callPackage ../applications/graphics/sane/drivers.nix { };
+
+  senv = callPackage ../applications/misc/senv { };
+
+  brlaser = callPackage ../misc/cups/drivers/brlaser { };
+
+  fflinuxprint = callPackage ../misc/cups/drivers/fflinuxprint { };
+
+  fxlinuxprint = callPackage ../misc/cups/drivers/fxlinuxprint { };
+
+  brscan4 = callPackage ../applications/graphics/sane/backends/brscan4 { };
+
+  brscan5 = callPackage ../applications/graphics/sane/backends/brscan5 { };
+
+  dsseries = callPackage ../applications/graphics/sane/backends/dsseries { };
+
+  sane-airscan = callPackage ../applications/graphics/sane/backends/airscan { };
+
+  mkSaneConfig = callPackage ../applications/graphics/sane/config.nix { };
+
+  sane-frontends = callPackage ../applications/graphics/sane/frontends.nix { };
+
+  sanoid = callPackage ../tools/backup/sanoid { };
+
+  satysfi = callPackage ../tools/typesetting/satysfi { };
+
+  sc-controller = python3Packages.callPackage ../misc/drivers/sc-controller {
+    inherit libusb1; # Shadow python.pkgs.libusb1.
+  };
+
+  sct = callPackage ../tools/X11/sct { };
+
+  scylladb = callPackage ../servers/scylladb {
+    thrift = thrift-0_10;
+  };
+
+  seafile-server = callPackage ../servers/seafile-server { };
+
+  seafile-shared = callPackage ../misc/seafile-shared { };
+
+  ser2net = callPackage ../servers/ser2net { };
+
+  serviio = callPackage ../servers/serviio { };
+  selinux-python = callPackage ../os-specific/linux/selinux-python { };
+
+  slock = callPackage ../misc/screensavers/slock {
+    conf = config.slock.conf or null;
+  };
+
+  smokeping = callPackage ../tools/networking/smokeping { };
+
+  snapraid = callPackage ../tools/filesystems/snapraid { };
+
+  snscrape = with python3Packages; toPythonApplication snscrape;
+
+  soundmodem = callPackage ../applications/radio/soundmodem { };
+
+  sourceAndTags = callPackage ../misc/source-and-tags {
+    hasktags = haskellPackages.hasktags;
+  };
+
+  spacenavd = callPackage ../misc/drivers/spacenavd {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  spacenav-cube-example = callPackage ../applications/misc/spacenav-cube-example { };
+
+  spnavcfg = callPackage ../applications/misc/spnavcfg { };
+
+  splix = callPackage ../misc/cups/drivers/splix { };
+
+  steamcontroller = callPackage ../misc/drivers/steamcontroller { };
+
+  stepreduce = callPackage ../applications/misc/stepreduce { };
+
+  stern = callPackage ../applications/networking/cluster/stern { };
+
+  streamripper = callPackage ../applications/audio/streamripper { };
+
+  sqsh = callPackage ../development/tools/sqsh { };
+
+  sysz = callPackage  ../tools/misc/sysz { };
+
+  go-swag = callPackage ../development/tools/go-swag { };
+
+  go-swagger = callPackage ../development/tools/go-swagger { };
+
+  jx = callPackage ../applications/networking/cluster/jx { };
+
+  prow = callPackage ../applications/networking/cluster/prow { };
+
+  pv-migrate = callPackage ../applications/networking/cluster/pv-migrate { };
+
+  tagref = callPackage ../tools/misc/tagref { };
+
+  tcat = callPackage ../tools/misc/tcat { };
+
+  tell-me-your-secrets = callPackage ../tools/security/tell-me-your-secrets { };
+
+  tellico = libsForQt5.callPackage ../applications/misc/tellico { };
+
+  termpdfpy = python3Packages.callPackage ../applications/misc/termpdf.py { };
+
+  inherit (callPackage ../applications/networking/cluster/terraform { })
+    mkTerraform
+    terraform_1
+    terraform_plugins_test
+    ;
+
+  terraform = terraform_1;
+
+  terraform-providers = recurseIntoAttrs (
+    callPackage ../applications/networking/cluster/terraform-providers { }
+  );
+
+  terraforming = callPackage ../applications/networking/cluster/terraforming { };
+
+  terraform-backend-git = callPackage ../applications/networking/cluster/terraform-backend-git { };
+
+  terraform-compliance = python3Packages.callPackage ../applications/networking/cluster/terraform-compliance { };
+
+  terraform-docs = callPackage ../applications/networking/cluster/terraform-docs { };
+
+  terraform-inventory = callPackage ../applications/networking/cluster/terraform-inventory { };
+
+  terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape { };
+
+  terragrunt = callPackage ../applications/networking/cluster/terragrunt { };
+
+  tfautomv = callPackage ../applications/networking/cluster/tfautomv { };
+
+  terranix = callPackage ../applications/networking/cluster/terranix { };
+
+  terraspace = callPackage ../applications/networking/cluster/terraspace { };
+
+  tf-summarize = callPackage ../applications/networking/cluster/tf-summarize { };
+
+  tfswitch = callPackage ../applications/networking/cluster/tfswitch { };
+
+  tfupdate = callPackage ../applications/networking/cluster/tfupdate { };
+
+  tgswitch = callPackage ../applications/networking/cluster/tgswitch { };
+
+  tilt = callPackage ../applications/networking/cluster/tilt { };
+
+  timeular = callPackage ../applications/office/timeular { };
+
+  tewi-font = callPackage ../data/fonts/tewi { };
+
+  ib-tws = callPackage ../applications/office/ib/tws { jdk=oraclejdk8; };
+
+  ib-controller = callPackage ../applications/office/ib/controller { jdk=oraclejdk8; };
+
+  vcluster = callPackage ../applications/networking/cluster/vcluster { };
+
+  vnote = libsForQt5.callPackage ../applications/office/vnote { };
+
+  sshportal = callPackage ../servers/sshportal { };
+
+  ssh-audit = callPackage ../tools/security/ssh-audit { };
+
+  ssh-tools = callPackage ../applications/misc/ssh-tools { };
+
+  auto-cpufreq = callPackage ../tools/system/auto-cpufreq {  };
+
+  thermald = callPackage ../tools/system/thermald { };
+
+  therion = callPackage ../applications/misc/therion { };
+
+  throttled = callPackage ../tools/system/throttled { };
+
+  thinkfan = callPackage ../tools/system/thinkfan { };
+
+  touchosc = callPackage ../applications/audio/touchosc { };
+
+  tp-auto-kbbl = callPackage ../tools/system/tp-auto-kbbl { };
+
+  tup = callPackage ../development/tools/build-managers/tup { };
+
+  turtle-build = callPackage ../development/tools/build-managers/turtle-build { };
+
+  tusk = callPackage ../applications/office/tusk { };
+
+  trufflehog = callPackage ../tools/security/trufflehog { };
+
+  tunnelx = callPackage ../applications/gis/tunnelx { };
+
+  tvbrowser = callPackage ../applications/misc/tvbrowser { };
+
+  tvheadend = callPackage ../servers/tvheadend { };
+
+  twitch-cli = callPackage ../development/tools/twitch-cli { };
+
+  twiggy = callPackage ../development/tools/twiggy { };
+
+  uacme = callPackage ../tools/admin/uacme { };
+
+  ufiformat = callPackage ../tools/system/ufiformat { };
+
+  ums = callPackage ../servers/ums { };
+
+  unityhub = callPackage ../development/tools/unityhub { };
+
+  upspin = callPackage ../tools/filesystems/upspin { };
+
+  urbit = callPackage ../misc/urbit { };
+
+  usb-reset = callPackage ../applications/misc/usb-reset { };
+
+  utf8cpp = callPackage ../development/libraries/utf8cpp { };
+
+  utf8proc = callPackage ../development/libraries/utf8proc { };
+
+  unicode-paracode = callPackage ../tools/misc/unicode { };
+
+  unixcw = libsForQt5.callPackage ../applications/radio/unixcw { };
+
+  valent = callPackage ../applications/misc/valent { };
+
+  vault = callPackage ../tools/security/vault { };
+
+  vault-medusa = callPackage ../tools/security/vault-medusa { };
+
+  vault-ssh-plus = callPackage ../tools/security/vault-ssh-plus { };
+
+  vault-bin = callPackage ../tools/security/vault/vault-bin.nix { };
+
+  vaultenv = haskell.lib.justStaticExecutables haskellPackages.vaultenv;
+
+  vazir-code-font = callPackage ../data/fonts/vazir-code-font { };
+
+  vaultwarden = callPackage ../tools/security/vaultwarden {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices SystemConfiguration;
+  };
+  vaultwarden-sqlite = vaultwarden;
+  vaultwarden-mysql = vaultwarden.override { dbBackend = "mysql"; };
+  vaultwarden-postgresql = vaultwarden.override { dbBackend = "postgresql"; };
+
+  vazir-fonts = callPackage ../data/fonts/vazir-fonts { };
+
+  veilid = callPackage ../tools/networking/veilid {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security;
+  };
+
+  vhs = callPackage ../applications/misc/vhs { };
+
+  vgmstream = callPackage ../applications/audio/vgmstream { };
+
+  viddy = callPackage ../tools/misc/viddy { };
+
+  viennarna = callPackage ../applications/science/molecular-dynamics/viennarna { };
+
+  viewnior = callPackage ../applications/graphics/viewnior { };
+
+  vimUtils = callPackage ../applications/editors/vim/plugins/vim-utils.nix { };
+
+  vimPlugins = recurseIntoAttrs (callPackage ../applications/editors/vim/plugins {
+    llvmPackages = llvmPackages_6;
+    luaPackages = lua51Packages;
+  });
+
+  vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { };
+  vimb = wrapFirefox vimb-unwrapped { };
+
+  vikunja-api = callPackage ../servers/web-apps/vikunja/api.nix { };
+  vikunja-frontend = callPackage ../servers/web-apps/vikunja/frontend.nix { };
+
+  vips = callPackage ../tools/graphics/vips {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
+  };
+
+  vipsdisp = callPackage ../applications/graphics/vipsdisp { };
+
+  nip2 = callPackage ../tools/graphics/nip2 { };
+
+  virglrenderer = callPackage ../development/libraries/virglrenderer { };
+
+  vivid = callPackage ../tools/misc/vivid { };
+
+  vivisect = with python3Packages; toPythonApplication (vivisect.override { withGui = true; });
+
+  vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen {
+    ffmpeg = ffmpeg-full;
+  };
+
+  vokoscreen-ng = libsForQt5.callPackage ../applications/video/vokoscreen-ng {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly;
+  };
+
+  vsc-leetcode-cli = callPackage ../tools/misc/vsc-leetcode-cli { };
+
+  vsh = callPackage ../tools/misc/vsh { };
+
+  vttest = callPackage ../tools/misc/vttest { };
+
+  wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { };
+
+  wamr = darwin.apple_sdk_11_0.callPackage ../development/interpreters/wamr { };
+
+  wasmer = callPackage ../development/interpreters/wasmer {
+    llvmPackages = llvmPackages_14;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation SystemConfiguration Security;
+  };
+
+  wavm = callPackage ../development/interpreters/wavm {
+    llvmPackages = llvmPackages_12;
+  };
+
+  yabasic = callPackage ../development/interpreters/yabasic { };
+
+  wasm-pack = callPackage ../development/tools/wasm-pack { };
+
+  wasynth = callPackage ../development/tools/wasynth { };
+
+  wavegain = callPackage ../applications/audio/wavegain { };
+
+  wcalc = callPackage ../applications/misc/wcalc { };
+
+  webfs = callPackage ../servers/http/webfs { };
+
+  webkit2-sharp = callPackage ../development/libraries/webkit2-sharp {  };
+
+  websocketd = callPackage ../applications/networking/websocketd { };
+
+  wibo = pkgsi686Linux.callPackage ../applications/emulators/wibo { };
+
+  wike = callPackage ../applications/misc/wike { };
+
+  wikicurses = callPackage ../applications/misc/wikicurses {
+    pythonPackages = python3Packages;
+  };
+
+  wiki-js = callPackage ../servers/web-apps/wiki-js { };
+
+  wiki-tui = callPackage ../misc/wiki-tui {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  winePackagesFor = wineBuild: lib.makeExtensible (self: with self; {
+    callPackage = newScope self;
+
+    inherit wineBuild;
+
+    inherit (callPackage ./wine-packages.nix {})
+      minimal base full stable stableFull unstable unstableFull staging stagingFull wayland waylandFull fonts;
+  });
+
+  winePackages = recurseIntoAttrs (winePackagesFor (config.wine.build or "wine32"));
+  wine64Packages = recurseIntoAttrs (winePackagesFor "wine64");
+  wineWowPackages = recurseIntoAttrs (winePackagesFor "wineWow");
+  wineWow64Packages = recurseIntoAttrs (winePackagesFor "wineWow64");
+
+  wine = winePackages.full;
+  wine64 = wine64Packages.full;
+
+  wine-staging = lowPrio (winePackages.full.override {
+    wineRelease = "staging";
+  });
+
+  wine-wayland = lowPrio (winePackages.full.override {
+    wineRelease = "wayland";
+  });
+
+  wineasio = callPackage ../applications/emulators/wineasio { };
+
+  wishbone-tool = callPackage ../development/tools/misc/wishbone-tool { };
+
+  with-shell = callPackage ../applications/misc/with-shell { };
+
+  wizer = darwin.apple_sdk_11_0.callPackage ../development/tools/wizer { };
+
+  wmutils-core = callPackage ../tools/X11/wmutils-core { };
+
+  wmutils-libwm = callPackage ../tools/X11/wmutils-libwm { };
+
+  wmutils-opt = callPackage ../tools/X11/wmutils-opt { };
+
+  inherit (callPackage ../servers/web-apps/wordpress {})
+    wordpress wordpress6_3 wordpress6_4;
+
+  wordpressPackages = ( callPackage ../servers/web-apps/wordpress/packages {
+    plugins = lib.importJSON ../servers/web-apps/wordpress/packages/plugins.json;
+    themes = lib.importJSON ../servers/web-apps/wordpress/packages/themes.json;
+    languages = lib.importJSON ../servers/web-apps/wordpress/packages/languages.json;
+  });
+
+  wprecon = callPackage ../tools/security/wprecon { };
+
+  wraith = callPackage ../applications/networking/irc/wraith {
+    openssl = openssl_1_1;
+  };
+
+  wxsqlite3 = callPackage ../development/libraries/wxsqlite3 {
+    wxGTK = wxGTK32;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    inherit (darwin.stubs) setfile rez derez;
+  };
+
+  wxsqliteplus = callPackage ../development/libraries/wxsqliteplus {
+    wxGTK = wxGTK32;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    inherit (darwin.stubs) setfile;
+  };
+
+  x11idle = callPackage ../tools/misc/x11idle { };
+
+  x11docker = callPackage ../applications/virtualization/x11docker { };
+
+  x2x = callPackage ../tools/X11/x2x { };
+
+  xboxdrv = callPackage ../misc/drivers/xboxdrv { };
+
+  xivlauncher = callPackage ../games/xivlauncher { };
+
+  xortool = python3Packages.callPackage ../tools/security/xortool { };
+
+  xorex = callPackage ../tools/security/xorex { };
+
+  xbps = callPackage ../tools/package-management/xbps { };
+
+  xcftools = callPackage ../tools/graphics/xcftools { };
+
+  xhyve = callPackage ../applications/virtualization/xhyve {
+    inherit (darwin.apple_sdk.frameworks) Hypervisor vmnet;
+    inherit (darwin.apple_sdk.libs) xpc;
+    inherit (darwin) libobjc;
+  };
+
+  xinput_calibrator = callPackage ../tools/X11/xinput_calibrator { };
+
+  xlayoutdisplay = callPackage ../tools/X11/xlayoutdisplay { };
+
+  xlibinput-calibrator = callPackage ../tools/inputmethods/xlibinput_calibrator { };
+
+  xlog = callPackage ../applications/radio/xlog { };
+
+  xmagnify = callPackage ../tools/X11/xmagnify { };
+
+  xosd = callPackage ../misc/xosd { };
+
+  xow_dongle-firmware = callPackage ../os-specific/linux/firmware/xow_dongle-firmware { };
+
+  xpad = callPackage ../applications/misc/xpad { };
+
+  xsane = callPackage ../applications/graphics/sane/xsane.nix { };
+
+  xsser = python3Packages.callPackage ../tools/security/xsser { };
+
+  xsw = callPackage ../applications/misc/xsw {
+    # Enable the next line to use this in terminal.
+    # Note that it requires sixel capable terminals such as mlterm
+    # or xterm -ti 340
+    SDL = SDL_sixel;
+  };
+
+  xteddy = callPackage ../applications/misc/xteddy { };
+
+  xva-img = callPackage ../tools/virtualization/xva-img { };
+
+  xwiimote = callPackage ../misc/drivers/xwiimote { };
+
+  xzoom = callPackage ../tools/X11/xzoom { };
+
+  yabai = darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/yabai {
+    inherit (darwin.apple_sdk_11_0.frameworks) SkyLight Cocoa Carbon ScriptingBridge;
+  };
+
+  yacreader = libsForQt5.callPackage ../applications/graphics/yacreader { };
+
+  yadm = callPackage ../applications/version-management/yadm { };
+
+  yai = callPackage ../tools/misc/yai { };
+
+  yamale = with python3Packages; toPythonApplication yamale;
+
+  yamdi = callPackage ../tools/video/yamdi { };
+
+  yandex-browser = callPackage ../applications/networking/browsers/yandex-browser { };
+
+  yandex-browser-beta = yandex-browser.override { edition = "beta"; };
+
+  yandex-browser-corporate = yandex-browser.override { edition = "corporate"; };
+
+  yandex-disk = callPackage ../tools/filesystems/yandex-disk { };
+
+  yara = callPackage ../tools/security/yara { };
+
+  yaralyzer = callPackage ../tools/security/yaralyzer { };
+
+  yarGen = callPackage ../tools/security/yarGen { };
+
+  yersinia = callPackage ../tools/security/yersinia { };
+
+  yatas = callPackage ../tools/security/yatas { };
+
+  yaxg = callPackage ../tools/graphics/yaxg { };
+
+  zap = callPackage ../tools/networking/zap { };
+
+  zigbee2mqtt = callPackage ../servers/zigbee2mqtt { };
+
+  zopfli = callPackage ../tools/compression/zopfli { };
+
+  myEnvFun = callPackage ../misc/my-env {
+    inherit (stdenv) mkDerivation;
+  };
+
+  znc = callPackage ../applications/networking/znc { };
+
+  zncModules = recurseIntoAttrs (
+    callPackage ../applications/networking/znc/modules.nix { }
+  );
+
+  zoneminder = callPackage ../servers/zoneminder { };
+
+  zrok = callPackage ../tools/networking/zrok { };
+
+  xcp = callPackage ../tools/misc/xcp { };
+
+  zxcvbn-c = callPackage ../development/libraries/zxcvbn-c { };
+
+  zxing-cpp = callPackage ../development/libraries/zxing-cpp { };
+
+  bullet = callPackage ../development/libraries/bullet {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
+  };
+
+  bullet-roboschool = callPackage ../development/libraries/bullet/roboschool-fork.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
+  };
+
+  spdlog = callPackage ../development/libraries/spdlog { };
+
+  dart = callPackage ../development/compilers/dart { };
+
+  dart-sass = callPackage ../development/tools/misc/dart-sass { };
+
+  fetchDartDeps = callPackage ../build-support/dart/fetch-dart-deps { };
+
+  buildDartApplication = callPackage ../build-support/dart/build-dart-application { };
+
+  dartHooks = callPackage ../build-support/dart/build-dart-application/hooks { };
+
+  httrack = callPackage ../tools/backup/httrack { };
+
+  httraqt = libsForQt5.callPackage ../tools/backup/httrack/qt.nix { };
+
+  mg = callPackage ../applications/editors/mg { };
+
+  mpvc = callPackage ../applications/misc/mpvc { };
+
+  # Overriding does not work when using callPackage on discord using import instead. (https://github.com/NixOS/nixpkgs/pull/179906)
+  discord = import ../applications/networking/instant-messengers/discord {
+    inherit lib stdenv;
+    inherit (pkgs) callPackage fetchurl;
+    branch = "stable";
+  };
+
+  discord-ptb = import ../applications/networking/instant-messengers/discord {
+    inherit lib stdenv;
+    inherit (pkgs) callPackage fetchurl;
+    branch = "ptb";
+  };
+
+  discord-canary = import ../applications/networking/instant-messengers/discord {
+    inherit lib stdenv;
+    inherit (pkgs) callPackage fetchurl;
+    branch = "canary";
+  };
+
+  discord-development = import ../applications/networking/instant-messengers/discord {
+    inherit lib stdenv;
+    inherit (pkgs) callPackage fetchurl;
+    branch = "development";
+  };
+
+
+  discord-screenaudio = qt6.callPackage ../applications/networking/instant-messengers/discord-screenaudio { };
+
+  discordo = callPackage ../applications/networking/discordo/default.nix { };
+
+  golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah { };
+
+  golden-cheetah-bin = callPackage ../applications/misc/golden-cheetah-bin {};
+
+  linkchecker = callPackage ../tools/networking/linkchecker { };
+
+  tomb = callPackage ../os-specific/linux/tomb { };
+
+  sccache = callPackage ../development/tools/misc/sccache {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  scip = callPackage ../development/tools/misc/scip { };
+
+  scriptisto = callPackage ../development/tools/misc/scriptisto { };
+
+  sequeler = callPackage ../applications/misc/sequeler { };
+
+  sequelpro = callPackage ../applications/misc/sequelpro { };
+
+  serial-studio = libsForQt5.callPackage ../applications/misc/serial-studio { };
+
+  snowsql = callPackage ../applications/misc/snowsql { };
+
+  sidequest = callPackage ../applications/misc/sidequest { };
+
+  maphosts = callPackage ../tools/networking/maphosts { };
+
+  zimg = callPackage ../development/libraries/zimg { };
+
+  wtf = callPackage ../applications/misc/wtf { };
+
+  zk-shell = callPackage ../applications/misc/zk-shell { };
+
+  tora = libsForQt5.callPackage ../development/tools/tora { };
+
+  xrq = callPackage ../applications/misc/xrq { };
+
+  pynitrokey = with python3Packages; toPythonApplication pynitrokey;
+
+  nitrokey-app = libsForQt5.callPackage ../tools/security/nitrokey-app { };
+
+  nitrokey-app2 = libsForQt5.callPackage ../tools/security/nitrokey-app2 { };
+
+  fpm2 = callPackage ../tools/security/fpm2 { };
+
+  hy = with python3Packages; toPythonApplication hy;
+
+  wmic-bin = callPackage ../servers/monitoring/plugins/wmic-bin.nix { };
+
+  check-uptime = callPackage ../servers/monitoring/plugins/uptime.nix { };
+
+  ghc-standalone-archive = callPackage ../os-specific/darwin/ghc-standalone-archive { inherit (darwin) cctools; };
+
+  vdr = callPackage ../applications/video/vdr { };
+  vdrPlugins = recurseIntoAttrs (callPackage ../applications/video/vdr/plugins.nix { });
+  wrapVdr = callPackage ../applications/video/vdr/wrapper.nix { };
+
+  chrome-export = callPackage ../tools/misc/chrome-export { };
+
+  chrome-token-signing = libsForQt5.callPackage ../tools/security/chrome-token-signing { };
+
+  NSPlist = callPackage ../development/libraries/NSPlist { };
+
+  PlistCpp = callPackage ../development/libraries/PlistCpp { };
+
+  xib2nib = callPackage ../development/tools/xib2nib { };
+
+  linode-cli = python3Packages.callPackage ../tools/virtualization/linode-cli { };
+
+  hss = callPackage ../tools/networking/hss { };
+
+  undaemonize = callPackage ../tools/system/undaemonize { };
+
+  houdini = callPackage ../applications/misc/houdini { };
+
+  openfst = callPackage ../development/libraries/openfst { };
+
+  opengrm-ngram = callPackage ../development/libraries/opengrm-ngram { };
+
+  openring = callPackage ../applications/misc/openring { };
+
+  openrisk = callPackage ../tools/security/openrisk { };
+
+  openvino = callPackage ../development/libraries/openvino {
+    python = python3;
+  };
+
+  phonetisaurus = callPackage ../development/libraries/phonetisaurus {
+    # https://github.com/AdolfVonKleist/Phonetisaurus/issues/70
+    openfst = openfst.overrideAttrs rec {
+      version = "1.7.9";
+      src = fetchurl {
+        url = "http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-${version}.tar.gz";
+        hash = "sha256-kxmusx0eKVCuJUSYhOJVzCvJ36+Yf2AVkHY+YaEPvd4=";
+      };
+    };
+  };
+
+  duti = callPackage ../os-specific/darwin/duti {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  dnstake = callPackage ../tools/networking/dnstake { };
+
+  dnstracer = callPackage ../tools/networking/dnstracer {
+    inherit (darwin) libresolv;
+  };
+
+  dnstwist = callPackage ../tools/networking/dnstwist { };
+
+  dsniff = callPackage ../tools/networking/dsniff { };
+
+  wal-g = callPackage ../tools/backup/wal-g { };
+
+  tlwg = callPackage ../data/fonts/tlwg { };
+
+  tt2020 = callPackage ../data/fonts/tt2020 { };
+
+  simplehttp2server = callPackage ../servers/simplehttp2server { };
+
+  simple-http-server = callPackage ../servers/simple-http-server { };
+
+  diceware = with python3Packages; toPythonApplication diceware;
+
+  xml2rfc = with python3Packages; toPythonApplication xml2rfc;
+
+  mmark = callPackage ../tools/typesetting/mmark { };
+
+  wire-desktop = callPackage ../applications/networking/instant-messengers/wire-desktop { };
+
+  wireworld = callPackage ../games/wireworld { };
+
+
+  teseq = callPackage ../applications/misc/teseq {  };
+
+  ape = callPackage ../applications/misc/ape { };
+  attemptoClex = callPackage ../applications/misc/ape/clex.nix { };
+  apeClex = callPackage ../applications/misc/ape/apeclex.nix { };
+
+  # Unix tools
+  unixtools = recurseIntoAttrs (callPackages ./unixtools.nix { });
+  inherit (unixtools) hexdump ps logger eject umount
+                      mount wall hostname more sysctl getconf
+                      getent locale killall xxd watch;
+
+  fts = if stdenv.hostPlatform.isMusl then musl-fts else null;
+
+  bsdSetupHook = makeSetupHook {
+    name = "bsd-setup-hook";
+  } ../os-specific/bsd/setup-hook.sh;
+
+  freebsd = callPackage ../os-specific/bsd/freebsd { };
+  freebsdCross = callPackage ../os-specific/bsd/freebsd {
+    stdenv = crossLibcStdenv;
+  };
+
+  netbsd = callPackage ../os-specific/bsd/netbsd { };
+  netbsdCross = callPackage ../os-specific/bsd/netbsd {
+    stdenv = crossLibcStdenv;
+  };
+
+  yrd = callPackage ../tools/networking/yrd { };
+
+  powershell = callPackage ../shells/powershell { };
+
+  doing = callPackage ../applications/misc/doing  { };
+
+  undervolt = callPackage ../os-specific/linux/undervolt { };
+
+  alibuild = callPackage ../development/tools/build-managers/alibuild {
+    python = python3;
+  };
+
+  tsukae = callPackage ../applications/misc/tsukae { };
+
+  tsung = callPackage ../applications/networking/tsung { };
+
+  bcompare = libsForQt5.callPackage ../applications/version-management/bcompare { };
+
+  xp-pen-deco-01-v2-driver = libsForQt5.xp-pen-deco-01-v2-driver;
+
+  xp-pen-g430-driver = libsForQt5.xp-pen-g430-driver;
+
+  new-session-manager = callPackage ../applications/audio/new-session-manager { };
+
+  newlib = callPackage ../development/misc/newlib { };
+  newlibCross = callPackage ../development/misc/newlib {
+    stdenv = crossLibcStdenv;
+  };
+
+  newlib-nano = callPackage ../development/misc/newlib {
+    nanoizeNewlib = true;
+  };
+  newlib-nanoCross = callPackage ../development/misc/newlib {
+    nanoizeNewlib = true;
+    stdenv = crossLibcStdenv;
+  };
+
+  omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { };
+
+  wasmtime = callPackage ../development/interpreters/wasmtime {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  wfuzz = with python3Packages; toPythonApplication wfuzz;
+
+  wmenu = callPackage ../applications/misc/wmenu { };
+
+  bemenu = callPackage ../applications/misc/bemenu { };
+
+  _9menu = callPackage ../applications/misc/9menu { };
+
+  dapper = callPackage ../development/tools/dapper { };
+
+  k3d = callPackage ../applications/networking/cluster/k3d { };
+
+  zfs-prune-snapshots = callPackage ../tools/backup/zfs-prune-snapshots { };
+
+  zfs-replicate = python3Packages.callPackage ../tools/backup/zfs-replicate { };
+
+  zfxtop = callPackage ../tools/system/zfxtop { };
+
+  zrepl = callPackage ../tools/backup/zrepl { };
+
+  uhubctl = callPackage ../tools/misc/uhubctl { };
+
+  kodelife = callPackage ../applications/graphics/kodelife {
+    inherit (gst_all_1) gstreamer gst-plugins-base;
+  };
+
+  bunnyfetch = callPackage ../tools/misc/bunnyfetch { };
+
+  _3proxy = callPackage ../applications/networking/3proxy { };
+
+  pigeon = callPackage ../development/tools/pigeon { };
+
+  verifpal = callPackage ../tools/security/verifpal { };
+
+  nix-store-gcs-proxy = callPackage ../tools/nix/nix-store-gcs-proxy { };
+
+  webwormhole = callPackage ../tools/networking/webwormhole { };
+
+  werf = callPackage ../applications/networking/cluster/werf { };
+
+  yor = callPackage ../applications/networking/cluster/yor { };
+
+  wifi-password = callPackage ../os-specific/darwin/wifi-password { };
+
+  qubes-core-vchan-xen = callPackage ../applications/qubes/qubes-core-vchan-xen { };
+
+  coz = callPackage ../development/tools/analysis/coz { };
+
+  keycard-cli = callPackage ../tools/security/keycard-cli { };
+
+  sieveshell = with python3.pkgs; toPythonApplication managesieve;
+
+  gortr = callPackage ../servers/gortr { };
+
+  stayrtr = callPackage ../servers/stayrtr { };
+
+  sunshine = callPackage ../servers/sunshine { };
+
+  sentencepiece = callPackage ../development/libraries/sentencepiece { };
+
+  kaf = callPackage ../development/tools/kaf { };
+
+  kcli = callPackage ../development/tools/kcli { };
+
+  pxlib = callPackage ../development/libraries/pxlib { };
+
+  pxview = callPackage ../development/tools/pxview { };
+
+  unstick = callPackage ../os-specific/linux/unstick { };
+
+  quartus-prime-lite = callPackage ../applications/editors/quartus-prime { };
+
+  usb-blaster-udev-rules = callPackage ../os-specific/linux/usb-blaster-udev-rules { };
+
+  go-license-detector = callPackage ../development/tools/misc/go-license-detector { };
+
+  hashdeep = callPackage ../tools/security/hashdeep { };
+
+  pdf-parser = callPackage ../tools/misc/pdf-parser { };
+
+  fluxboxlauncher = callPackage ../applications/misc/fluxboxlauncher { };
+
+  btcdeb = callPackage ../applications/blockchains/btcdeb { };
+
+  jami = qt6Packages.callPackage ../applications/networking/instant-messengers/jami {
+    fmt = fmt_9;
+    # TODO: remove once `udev` is `systemdMinimal` everywhere.
+    udev = systemdMinimal;
+    jack = libjack2;
+  };
+
+  jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron { };
+
+  zenstates = callPackage ../os-specific/linux/zenstates { };
+
+  ryzenadj = callPackage ../os-specific/linux/ryzenadj { };
+
+  vpsfree-client = callPackage ../tools/virtualization/vpsfree-client { };
+
+  gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { };
+
+  navidrome = callPackage ../servers/misc/navidrome { };
+
+  zalgo = callPackage ../tools/misc/zalgo { };
+
+  inherit (callPackage ../applications/misc/zettlr { }) zettlr;
+
+  unpoller = callPackage ../servers/monitoring/unpoller { };
+
+  fac-build = callPackage ../development/tools/build-managers/fac {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  treefmt = callPackage ../development/tools/treefmt { };
+
+  bottom = darwin.apple_sdk_11_0.callPackage ../tools/system/bottom { };
+
+  cagebreak = callPackage ../applications/window-managers/cagebreak {
+    wlroots = wlroots_0_16;
+  };
+
+  psftools = callPackage ../os-specific/linux/psftools { };
+
+  lc3tools = callPackage ../development/tools/lc3tools { };
+
+  ldid = callPackage ../development/tools/ldid {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  ldid-procursus = callPackage ../development/tools/ldid-procursus { };
+
+  xcolor = callPackage ../tools/graphics/xcolor { };
+
+  xcfun = callPackage ../development/libraries/science/chemistry/xcfun { };
+
+  xsos = callPackage ../os-specific/linux/xsos { };
+
+  xmcp = callPackage ../tools/X11/xmcp { };
+
+  yesplaymusic = callPackage ../applications/audio/yesplaymusic { };
+
+  ymuse = callPackage ../applications/audio/ymuse { };
+
+  zeyple = callPackage ../misc/zeyple { };
+
+  zk = callPackage ../applications/office/zk { };
+
+  zktree = callPackage ../applications/misc/zktree { };
+
+  zram-generator = callPackage ../tools/system/zram-generator { };
+
+  zrythm = callPackage ../applications/audio/zrythm {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
+  zthrottle = callPackage ../tools/misc/zthrottle { };
+
+  honeymarker = callPackage ../servers/tracing/honeycomb/honeymarker { };
+
+  honeytail = callPackage ../servers/tracing/honeycomb/honeytail { };
+
+  honeyvent = callPackage ../servers/tracing/honeycomb/honeyvent { };
+
+  mictray = callPackage ../tools/audio/mictray { };
+
+  swift-corelibs-libdispatch = swiftPackages.Dispatch;
+
+  swaysettings = callPackage ../applications/misc/swaysettings { };
+
+  aitrack = libsForQt5.callPackage ../applications/misc/aitrack { };
+
+  widevine-cdm = callPackage ../applications/networking/browsers/misc/widevine-cdm.nix { };
+
+  alsa-scarlett-gui = callPackage ../applications/audio/alsa-scarlett-gui { };
+
+  flac2all = callPackage ../applications/audio/flac2all { };
+
+  tuner = callPackage ../applications/audio/tuner { };
+
+  tidal-dl = python3Packages.callPackage ../tools/audio/tidal-dl { };
+
+  locate-dominating-file = callPackage ../tools/misc/locate-dominating-file { };
+
+  jfrog-cli = callPackage ../tools/misc/jfrog-cli { };
+
+  ov = callPackage ../tools/text/ov { };
+
+  deface = callPackage ../applications/video/deface { };
+
+  tubekit = callPackage ../applications/networking/cluster/tubekit/wrapper.nix { };
+
+  tubekit-unwrapped = callPackage ../applications/networking/cluster/tubekit { };
+
+  tuic = callPackage ../tools/networking/tuic { };
+
+  resgate = callPackage ../servers/resgate { };
+
+  oversteer = callPackage ../applications/misc/oversteer { };
+
+  volantes-cursors = callPackage ../data/icons/volantes-cursors { };
+
+  gnss-share = callPackage ../servers/gnss-share { };
+
+  ali = callPackage ../tools/networking/ali { };
+
+  udict = callPackage ../applications/misc/udict { };
+
+  duden = callPackage ../applications/misc/duden { };
+
+  zf = callPackage ../tools/misc/zf { };
+
+  isolate = callPackage ../tools/security/isolate { };
+
+  dtool = callPackage ../tools/misc/dtool { };
+
+  tremotesf = libsForQt5.callPackage ../applications/networking/p2p/tremotesf { };
+
+  reindeer = callPackage ../development/tools/reindeer { };
+
+  charasay = callPackage ../tools/misc/charasay { };
+
+  libvoikko = callPackage ../development/libraries/libvoikko { };
+
+  hfst = callPackage ../development/libraries/hfst { };
+
+  omorfi = callPackage ../development/libraries/omorfi { };
+
+  hfst-ospell = callPackage ../development/libraries/hfst-ospell { };
+
+  waylyrics = callPackage ../applications/audio/waylyrics { };
+
+  gitrs = callPackage ../tools/misc/gitrs { };
+
+  dict-cc-py = callPackage ../applications/misc/dict-cc-py { };
+
+  sirikali = libsForQt5.callPackage ../tools/security/sirikali { };
+
+  wttrbar = callPackage ../applications/misc/wttrbar { };
+
+  wpm = callPackage ../applications/misc/wpm { };
+
+  weggli = callPackage ../tools/security/weggli { };
+
+  yazi = callPackage ../applications/file-managers/yazi { inherit (darwin.apple_sdk.frameworks) Foundation; };
+
+  ssl-proxy = callPackage ../tools/networking/ssl-proxy {
+    buildGoModule = buildGo119Module; # build fails with 1.20
+  };
+
+  code-maat = callPackage ../development/tools/code-maat {};
+
+  mdhtml = callPackage ../tools/text/mdhtml { };
+
+  insulator2 = callPackage ../applications/misc/insulator2 {};
+
+  animdl = python3Packages.callPackage ../applications/video/animdl { };
+}
diff --git a/nixpkgs/pkgs/top-level/beam-packages.nix b/nixpkgs/pkgs/top-level/beam-packages.nix
new file mode 100644
index 000000000000..62ab2a63ae74
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/beam-packages.nix
@@ -0,0 +1,106 @@
+{ lib
+, beam
+, callPackage
+, wxGTK32
+, buildPackages
+, stdenv
+, wxSupport ? true
+, systemd
+, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd
+}:
+
+let
+  self = beam;
+
+  # Aliases added 2023-03-21
+  versionLoop = f: lib.lists.foldr (version: acc: (f version) // acc) { } [ "26" "25" "24" "23" ];
+
+  interpretersAliases = versionLoop (version: {
+    "erlangR${version}" = self.interpreters."erlang_${version}";
+    "erlangR${version}_odbc" = self.interpreters."erlang_${version}_odbc";
+    "erlangR${version}_javac" = self.interpreters."erlang_${version}_javac";
+    "erlangR${version}_odbc_javac" = self.interpreters."erlang_${version}_odbc_javac";
+  });
+
+  packagesAliases = versionLoop (version: { "erlangR${version}" = self.packages."erlang_${version}"; });
+
+in
+
+{
+  beamLib = callPackage ../development/beam-modules/lib.nix { };
+
+  latestVersion = "erlang_25";
+
+  # Each
+  interpreters = {
+
+    erlang = self.interpreters.${self.latestVersion};
+    erlang_odbc = self.interpreters."${self.latestVersion}_odbc";
+    erlang_javac = self.interpreters."${self.latestVersion}_javac";
+    erlang_odbc_javac = self.interpreters."${self.latestVersion}_odbc_javac";
+
+    # Standard Erlang versions, using the generic builder.
+
+    erlang_26 = self.beamLib.callErlang ../development/interpreters/erlang/26.nix {
+      wxGTK = wxGTK32;
+      parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
+      inherit wxSupport systemdSupport;
+    };
+    erlang_26_odbc = self.interpreters.erlang_26.override { odbcSupport = true; };
+    erlang_26_javac = self.interpreters.erlang_26.override { javacSupport = true; };
+    erlang_26_odbc_javac = self.interpreters.erlang_26.override {
+      javacSupport = true;
+      odbcSupport = true;
+    };
+
+    erlang_25 = self.beamLib.callErlang ../development/interpreters/erlang/25.nix {
+      wxGTK = wxGTK32;
+      parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
+      inherit wxSupport systemdSupport;
+    };
+    erlang_25_odbc = self.interpreters.erlang_25.override { odbcSupport = true; };
+    erlang_25_javac = self.interpreters.erlang_25.override { javacSupport = true; };
+    erlang_25_odbc_javac = self.interpreters.erlang_25.override {
+      javacSupport = true;
+      odbcSupport = true;
+    };
+
+    erlang_24 = self.beamLib.callErlang ../development/interpreters/erlang/24.nix {
+      wxGTK = wxGTK32;
+      # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
+      parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
+      inherit wxSupport systemdSupport;
+    };
+    erlang_24_odbc = self.interpreters.erlang_24.override { odbcSupport = true; };
+    erlang_24_javac = self.interpreters.erlang_24.override { javacSupport = true; };
+    erlang_24_odbc_javac = self.interpreters.erlang_24.override {
+      javacSupport = true;
+      odbcSupport = true;
+    };
+
+    # Other Beam languages. These are built with `beam.interpreters.erlang`. To
+    # access for example elixir built with different version of Erlang, use
+    # `beam.packages.erlang_24.elixir`.
+    inherit (self.packages.erlang)
+      elixir elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir-ls lfe lfe_2_1;
+  } // interpretersAliases;
+
+  # Helper function to generate package set with a specific Erlang version.
+  packagesWith = erlang:
+    callPackage ../development/beam-modules { inherit erlang; };
+
+  # Each field in this tuple represents all Beam packages in nixpkgs built with
+  # appropriate Erlang/OTP version.
+  packages = {
+    erlang = self.packages.${self.latestVersion};
+
+    erlang_26 = self.packagesWith self.interpreters.erlang_26;
+    erlang_25 = self.packagesWith self.interpreters.erlang_25;
+    erlang_24 = self.packagesWith self.interpreters.erlang_24;
+  } // packagesAliases;
+
+  __attrsFailEvaluation = true;
+}
diff --git a/nixpkgs/pkgs/top-level/by-name-overlay.nix b/nixpkgs/pkgs/top-level/by-name-overlay.nix
new file mode 100644
index 000000000000..3df9843d03df
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/by-name-overlay.nix
@@ -0,0 +1,59 @@
+# This file turns the pkgs/by-name directory (see its README.md for more info) into an overlay that adds all the defined packages.
+# No validity checks are done here,
+# instead this file is optimised for performance,
+# and validity checks are done by CI on PRs.
+
+# Type: Path -> Overlay
+baseDirectory:
+let
+  # Because of Nix's import-value cache, importing lib is free
+  lib = import ../../lib;
+
+  inherit (builtins)
+    readDir
+    ;
+
+  inherit (lib.attrsets)
+    mapAttrs
+    mapAttrsToList
+    mergeAttrsList
+    ;
+
+  # Package files for a single shard
+  # Type: String -> String -> AttrsOf Path
+  namesForShard = shard: type:
+    if type != "directory" then
+      # Ignore all non-directories. Technically only README.md is allowed as a file in the base directory, so we could alternatively:
+      # - Assume that README.md is the only file and change the condition to `shard == "README.md"` for a minor performance improvement.
+      #   This would however cause very poor error messages if there's other files.
+      # - Ensure that README.md is the only file, throwing a better error message if that's not the case.
+      #   However this would make for a poor code architecture, because one type of error would have to be duplicated in the validity checks and here.
+      # Additionally in either of those alternatives, we would have to duplicate the hardcoding of "README.md"
+      { }
+    else
+      mapAttrs
+        (name: _: baseDirectory + "/${shard}/${name}/package.nix")
+        (readDir (baseDirectory + "/${shard}"));
+
+  # The attribute set mapping names to the package files defining them
+  # This is defined up here in order to allow reuse of the value (it's kind of expensive to compute)
+  # if the overlay has to be applied multiple times
+  packageFiles = mergeAttrsList (mapAttrsToList namesForShard (readDir baseDirectory));
+in
+# TODO: Consider optimising this using `builtins.deepSeq packageFiles`,
+# which could free up the above thunks and reduce GC times.
+# Currently this would be hard to measure until we have more packages
+# and ideally https://github.com/NixOS/nix/pull/8895
+self: super:
+{
+  # This attribute is necessary to allow CI to ensure that all packages defined in `pkgs/by-name`
+  # don't have an overriding definition in `all-packages.nix` with an empty (`{ }`) second `callPackage` argument.
+  # It achieves that with an overlay that modifies both `callPackage` and this attribute to signal whether `callPackage` is used
+  # and whether it's defined by this file here or `all-packages.nix`.
+  # TODO: This can be removed once `pkgs/by-name` can handle custom `callPackage` arguments without `all-packages.nix` (or any other way of achieving the same result).
+  # Because at that point the code in ./stage.nix can be changed to not allow definitions in `all-packages.nix` to override ones from `pkgs/by-name` anymore and throw an error if that happens instead.
+  _internalCallByNamePackageFile = file: self.callPackage file { };
+}
+// mapAttrs
+  (name: self._internalCallByNamePackageFile)
+  packageFiles
diff --git a/nixpkgs/pkgs/top-level/config.nix b/nixpkgs/pkgs/top-level/config.nix
new file mode 100644
index 000000000000..aa3a235553ef
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/config.nix
@@ -0,0 +1,174 @@
+# This file defines the structure of the `config` nixpkgs option.
+
+{ config, lib, ... }:
+
+with lib;
+
+let
+
+  mkMassRebuild = args: mkOption (builtins.removeAttrs args [ "feature" ] // {
+    type = args.type or (types.uniq types.bool);
+    default = args.default or false;
+    description = lib.mdDoc ((args.description or ''
+      Whether to ${args.feature} while building nixpkgs packages.
+    '') + ''
+      Changing the default may cause a mass rebuild.
+    '');
+  });
+
+  options = {
+
+    /* Internal stuff */
+
+    # Hide built-in module system options from docs.
+    _module.args = mkOption {
+      internal = true;
+    };
+
+    warnings = mkOption {
+      type = types.listOf types.str;
+      default = [];
+      internal = true;
+    };
+
+    /* Config options */
+
+    warnUndeclaredOptions = mkOption {
+      description = lib.mdDoc "Whether to warn when `config` contains an unrecognized attribute.";
+      type = types.bool;
+      default = false;
+    };
+
+    doCheckByDefault = mkMassRebuild {
+      feature = "run `checkPhase` by default";
+    };
+
+    strictDepsByDefault = mkMassRebuild {
+      feature = "set `strictDeps` to true by default";
+    };
+
+    structuredAttrsByDefault = mkMassRebuild {
+      feature = "set `__structuredAttrs` to true by default";
+    };
+
+    enableParallelBuildingByDefault = mkMassRebuild {
+      feature = "set `enableParallelBuilding` to true by default";
+    };
+
+    configurePlatformsByDefault = mkMassRebuild {
+      feature = "set `configurePlatforms` to `[\"build\" \"host\"]` by default";
+    };
+
+    contentAddressedByDefault = mkMassRebuild {
+      feature = "set `__contentAddressed` to true by default";
+    };
+
+    allowAliases = mkOption {
+      type = types.bool;
+      default = true;
+      description = lib.mdDoc ''
+        Whether to expose old attribute names for compatibility.
+
+        The recommended setting is to enable this, as it
+        improves backward compatibity, easing updates.
+
+        The only reason to disable aliases is for continuous
+        integration purposes. For instance, Nixpkgs should
+        not depend on aliases in its internal code. Projects
+        that aren't Nixpkgs should be cautious of instantly
+        removing all usages of aliases, as migrating too soon
+        can break compatibility with the stable Nixpkgs releases.
+      '';
+    };
+
+    allowUnfree = mkOption {
+      type = types.bool;
+      default = false;
+      # getEnv part is in check-meta.nix
+      defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"'';
+      description = lib.mdDoc ''
+        Whether to allow unfree packages.
+
+        See [Installing unfree packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree) in the NixOS manual.
+      '';
+    };
+
+    allowBroken = mkOption {
+      type = types.bool;
+      default = false;
+      # getEnv part is in check-meta.nix
+      defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"'';
+      description = lib.mdDoc ''
+        Whether to allow broken packages.
+
+        See [Installing broken packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-broken) in the NixOS manual.
+      '';
+    };
+
+    allowUnsupportedSystem = mkOption {
+      type = types.bool;
+      default = false;
+      # getEnv part is in check-meta.nix
+      defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"'';
+      description = lib.mdDoc ''
+        Whether to allow unsupported packages.
+
+        See [Installing packages on unsupported systems](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unsupported-system) in the NixOS manual.
+      '';
+    };
+
+    cudaSupport = mkMassRebuild {
+      type = types.bool;
+      default = false;
+      feature = "build packages with CUDA support by default";
+    };
+
+    rocmSupport = mkMassRebuild {
+      type = types.bool;
+      default = false;
+      feature = "build packages with ROCm support by default";
+    };
+
+    showDerivationWarnings = mkOption {
+      type = types.listOf (types.enum [ "maintainerless" ]);
+      default = [];
+      description = lib.mdDoc ''
+        Which warnings to display for potentially dangerous
+        or deprecated values passed into `stdenv.mkDerivation`.
+
+        A list of warnings can be found in
+        [/pkgs/stdenv/generic/check-meta.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix).
+
+        This is not a stable interface; warnings may be added, changed
+        or removed without prior notice.
+      '';
+    };
+
+    checkMeta = mkOption {
+      type = types.bool;
+      default = false;
+      description = lib.mdDoc ''
+        Whether to check that the `meta` attribute of derivations are correct during evaluation time.
+      '';
+    };
+  };
+
+in {
+
+  freeformType =
+    let t = lib.types.lazyAttrsOf lib.types.raw;
+    in t // {
+      merge = loc: defs:
+        let r = t.merge loc defs;
+        in r // { _undeclared = r; };
+    };
+
+  inherit options;
+
+  config = {
+    warnings = lib.optionals config.warnUndeclaredOptions (
+      lib.mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {}
+    );
+  };
+
+}
diff --git a/nixpkgs/pkgs/top-level/coq-packages.nix b/nixpkgs/pkgs/top-level/coq-packages.nix
new file mode 100644
index 000000000000..64cbe925b518
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/coq-packages.nix
@@ -0,0 +1,212 @@
+{ lib, stdenv, fetchzip
+, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
+, ocamlPackages_4_10, ocamlPackages_4_12, ocamlPackages_4_14
+, fetchpatch, makeWrapper, coq2html
+}@args:
+let lib = import ../build-support/coq/extra-lib.nix {inherit (args) lib;}; in
+let
+  mkCoqPackages' = self: coq:
+    let callPackage = self.callPackage; in {
+      inherit coq lib;
+      coqPackages = self // { coqPackages = self.coqPackages // { recurseForDerivations = false; }; };
+
+      metaFetch = import ../build-support/coq/meta-fetch/default.nix
+        {inherit lib stdenv fetchzip; };
+      mkCoqDerivation = lib.makeOverridable (callPackage ../build-support/coq {});
+
+      contribs = recurseIntoAttrs
+        (callPackage ../development/coq-modules/contribs {});
+
+      aac-tactics = callPackage ../development/coq-modules/aac-tactics {};
+      addition-chains = callPackage ../development/coq-modules/addition-chains {};
+      autosubst = callPackage ../development/coq-modules/autosubst {};
+      bignums = if lib.versionAtLeast coq.coq-version "8.6"
+        then callPackage ../development/coq-modules/bignums {}
+        else null;
+      category-theory = callPackage ../development/coq-modules/category-theory { };
+      ceres = callPackage ../development/coq-modules/ceres {};
+      Cheerios = callPackage ../development/coq-modules/Cheerios {};
+      CoLoR = callPackage ../development/coq-modules/CoLoR (
+        (lib.optionalAttrs (lib.versions.isEq self.coq.coq-version "8.13") {
+          bignums = self.bignums.override { version = "8.13.0"; };
+        })
+      );
+      compcert = callPackage ../development/coq-modules/compcert {
+        inherit fetchpatch makeWrapper coq2html lib stdenv;
+      };
+      coq-bits = callPackage ../development/coq-modules/coq-bits {};
+      coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
+      coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
+      coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
+      coq-lsp = callPackage ../development/coq-modules/coq-lsp {};
+      coq-record-update = callPackage ../development/coq-modules/coq-record-update { };
+      coqeal = callPackage ../development/coq-modules/coqeal (
+        (lib.optionalAttrs (lib.versions.range "8.13" "8.14" self.coq.coq-version) {
+          bignums = self.bignums.override { version = "${self.coq.coq-version}.0"; };
+        })
+      );
+      coqhammer = callPackage ../development/coq-modules/coqhammer {};
+      coqide = callPackage ../development/coq-modules/coqide {};
+      coqprime = callPackage ../development/coq-modules/coqprime {};
+      coqtail-math = callPackage ../development/coq-modules/coqtail-math {};
+      coquelicot = callPackage ../development/coq-modules/coquelicot {};
+      corn = callPackage ../development/coq-modules/corn {};
+      deriving = callPackage ../development/coq-modules/deriving {};
+      dpdgraph = callPackage ../development/coq-modules/dpdgraph {};
+      equations = callPackage ../development/coq-modules/equations { };
+      extructures = callPackage ../development/coq-modules/extructures { };
+      fiat_HEAD = callPackage ../development/coq-modules/fiat/HEAD.nix {};
+      flocq = callPackage ../development/coq-modules/flocq {};
+      fourcolor = callPackage ../development/coq-modules/fourcolor {};
+      gaia = callPackage ../development/coq-modules/gaia {};
+      gaia-hydras = callPackage ../development/coq-modules/gaia-hydras {};
+      gappalib = callPackage ../development/coq-modules/gappalib {};
+      goedel = callPackage ../development/coq-modules/goedel {};
+      graph-theory = callPackage ../development/coq-modules/graph-theory {};
+      heq = callPackage ../development/coq-modules/heq {};
+      hierarchy-builder = callPackage ../development/coq-modules/hierarchy-builder {};
+      HoTT = callPackage ../development/coq-modules/HoTT {};
+      hydra-battles = callPackage ../development/coq-modules/hydra-battles {};
+      interval = callPackage ../development/coq-modules/interval {};
+      InfSeqExt = callPackage ../development/coq-modules/InfSeqExt {};
+      iris = callPackage ../development/coq-modules/iris {};
+      iris-named-props = callPackage ../development/coq-modules/iris-named-props {};
+      itauto = callPackage ../development/coq-modules/itauto { };
+      ITree = callPackage ../development/coq-modules/ITree { };
+      LibHyps = callPackage ../development/coq-modules/LibHyps {};
+      ltac2 = callPackage ../development/coq-modules/ltac2 {};
+      math-classes = callPackage ../development/coq-modules/math-classes { };
+      mathcomp = callPackage ../development/coq-modules/mathcomp {};
+      ssreflect          = self.mathcomp.ssreflect;
+      mathcomp-ssreflect = self.mathcomp.ssreflect;
+      mathcomp-fingroup  = self.mathcomp.fingroup;
+      mathcomp-algebra   = self.mathcomp.algebra;
+      mathcomp-solvable  = self.mathcomp.solvable;
+      mathcomp-field     = self.mathcomp.field;
+      mathcomp-character = self.mathcomp.character;
+      mathcomp-abel = callPackage ../development/coq-modules/mathcomp-abel {};
+      mathcomp-algebra-tactics = callPackage ../development/coq-modules/mathcomp-algebra-tactics {};
+      mathcomp-analysis = callPackage ../development/coq-modules/mathcomp-analysis {};
+      mathcomp-apery = callPackage ../development/coq-modules/mathcomp-apery {};
+      mathcomp-bigenough = callPackage ../development/coq-modules/mathcomp-bigenough {};
+      mathcomp-classical = self.mathcomp-analysis.classical;
+      mathcomp-finmap = callPackage ../development/coq-modules/mathcomp-finmap {};
+      mathcomp-infotheo = callPackage ../development/coq-modules/mathcomp-infotheo {};
+      mathcomp-real-closed = callPackage ../development/coq-modules/mathcomp-real-closed {};
+      mathcomp-tarjan = callPackage ../development/coq-modules/mathcomp-tarjan {};
+      mathcomp-word = callPackage ../development/coq-modules/mathcomp-word {};
+      mathcomp-zify = callPackage ../development/coq-modules/mathcomp-zify {};
+      metacoq = callPackage ../development/coq-modules/metacoq { };
+      metacoq-template-coq = self.metacoq.template-coq;
+      metacoq-pcuic        = self.metacoq.pcuic;
+      metacoq-safechecker  = self.metacoq.safechecker;
+      metacoq-erasure      = self.metacoq.erasure;
+      metalib = callPackage ../development/coq-modules/metalib { };
+      multinomials = callPackage ../development/coq-modules/multinomials {};
+      odd-order = callPackage ../development/coq-modules/odd-order { };
+      paco = callPackage ../development/coq-modules/paco {};
+      paramcoq = callPackage ../development/coq-modules/paramcoq {};
+      parsec = callPackage ../development/coq-modules/parsec {};
+      pocklington = callPackage ../development/coq-modules/pocklington {};
+      QuickChick = callPackage ../development/coq-modules/QuickChick {};
+      reglang = callPackage ../development/coq-modules/reglang {};
+      relation-algebra = callPackage ../development/coq-modules/relation-algebra {};
+      semantics = callPackage ../development/coq-modules/semantics {};
+      serapi = callPackage ../development/coq-modules/serapi {};
+      simple-io = callPackage ../development/coq-modules/simple-io { };
+      smpl = callPackage ../development/coq-modules/smpl { };
+      smtcoq = callPackage ../development/coq-modules/smtcoq { };
+      stdpp = callPackage ../development/coq-modules/stdpp { };
+      StructTact = callPackage ../development/coq-modules/StructTact {};
+      tlc = callPackage ../development/coq-modules/tlc {};
+      topology = callPackage ../development/coq-modules/topology {};
+      trakt = callPackage ../development/coq-modules/trakt {};
+      vcfloat = callPackage ../development/coq-modules/vcfloat {};
+      Velisarios = callPackage ../development/coq-modules/Velisarios {};
+      Verdi = callPackage ../development/coq-modules/Verdi {};
+      VST = callPackage ../development/coq-modules/VST ((lib.optionalAttrs
+        (lib.versionAtLeast self.coq.version "8.14") {
+          compcert = self.compcert.override {
+            version = with lib.versions; lib.switch self.coq.version [
+              { case = range "8.15" "8.17"; out = "3.13.1"; }
+              { case = isEq "8.14"; out = "3.11"; }
+            ] null;
+          };
+        }) // (lib.optionalAttrs (lib.versions.isEq self.coq.coq-version "8.13") {
+          ITree = self.ITree.override {
+            version = "4.0.0";
+            paco = self.paco.override { version = "4.1.2"; };
+          };
+       }));
+      zorns-lemma = callPackage ../development/coq-modules/zorns-lemma {};
+      filterPackages = doesFilter: if doesFilter then filterCoqPackages self else self;
+    };
+
+  filterCoqPackages = set:
+    lib.listToAttrs (
+      lib.concatMap (name: let v = set.${name} or null; in
+          lib.optional (! v.meta.coqFilter or false)
+            (lib.nameValuePair name (
+              if lib.isAttrs v && v.recurseForDerivations or false
+              then filterCoqPackages v
+              else v))
+      ) (lib.attrNames set)
+    );
+  mkCoq = version: callPackage ../applications/science/logic/coq {
+    inherit version
+      ocamlPackages_4_05
+      ocamlPackages_4_09
+      ocamlPackages_4_10
+      ocamlPackages_4_12
+      ocamlPackages_4_14
+    ;
+  };
+in rec {
+
+  /* The function `mkCoqPackages` takes as input a derivation for Coq and produces
+   * a set of libraries built with that specific Coq. More libraries are known to
+   * this function than what is compatible with that version of Coq. Therefore,
+   * libraries that are not known to be compatible are removed (filtered out) from
+   * the resulting set. For meta-programming purposes (inpecting the derivations
+   * rather than building the libraries) this filtering can be disabled by setting
+   * a `dontFilter` attribute into the Coq derivation.
+   */
+  mkCoqPackages = coq:
+    let self = lib.makeScope newScope (lib.flip mkCoqPackages' coq); in
+    self.filterPackages (! coq.dontFilter or false);
+
+  coq_8_5  = mkCoq "8.5";
+  coq_8_6  = mkCoq "8.6";
+  coq_8_7  = mkCoq "8.7";
+  coq_8_8  = mkCoq "8.8";
+  coq_8_9  = mkCoq "8.9";
+  coq_8_10 = mkCoq "8.10";
+  coq_8_11 = mkCoq "8.11";
+  coq_8_12 = mkCoq "8.12";
+  coq_8_13 = mkCoq "8.13";
+  coq_8_14 = mkCoq "8.14";
+  coq_8_15 = mkCoq "8.15";
+  coq_8_16 = mkCoq "8.16";
+  coq_8_17 = mkCoq "8.17";
+  coq_8_18 = mkCoq "8.18";
+
+  coqPackages_8_5 = mkCoqPackages coq_8_5 // { __attrsFailEvaluation = true; };
+  coqPackages_8_6 = mkCoqPackages coq_8_6 // { __attrsFailEvaluation = true; };
+  coqPackages_8_7 = mkCoqPackages coq_8_7 // { __attrsFailEvaluation = true; };
+  coqPackages_8_8 = mkCoqPackages coq_8_8 // { __attrsFailEvaluation = true; };
+  coqPackages_8_9 = mkCoqPackages coq_8_9 // { __attrsFailEvaluation = true; };
+  coqPackages_8_10 = mkCoqPackages coq_8_10 // { __attrsFailEvaluation = true; };
+  coqPackages_8_11 = mkCoqPackages coq_8_11 // { __attrsFailEvaluation = true; };
+  coqPackages_8_12 = mkCoqPackages coq_8_12 // { __attrsFailEvaluation = true; };
+  coqPackages_8_13 = mkCoqPackages coq_8_13 // { __attrsFailEvaluation = true; };
+  coqPackages_8_14 = mkCoqPackages coq_8_14 // { __attrsFailEvaluation = true; };
+  coqPackages_8_15 = mkCoqPackages coq_8_15 // { __attrsFailEvaluation = true; };
+  coqPackages_8_16 = mkCoqPackages coq_8_16 // { __attrsFailEvaluation = true; };
+  coqPackages_8_17 = mkCoqPackages coq_8_17 // { __attrsFailEvaluation = true; };
+  coqPackages_8_18 = mkCoqPackages coq_8_18 // { __attrsFailEvaluation = true; };
+  coqPackages =
+    let cp = recurseIntoAttrs coqPackages_8_18;
+    in cp // { coqPackages = cp.coqPackages // { __attrsFailEvaluation = true; }; } // { __recurseIntoDerivationForReleaseJobs = true; };
+  coq = coqPackages.coq;
+
+}
diff --git a/nixpkgs/pkgs/top-level/cubocore-packages.nix b/nixpkgs/pkgs/top-level/cubocore-packages.nix
new file mode 100644
index 000000000000..3c6ed65e9286
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/cubocore-packages.nix
@@ -0,0 +1,94 @@
+{ newScope, lxqt, lib, libsForQt5 }:
+
+let
+  packages = self: with self; {
+
+    # Libs
+    libcprime = libsForQt5.callPackage ../applications/misc/cubocore-packages/libcprime { };
+
+    libcsys = libsForQt5.callPackage ../applications/misc/cubocore-packages/libcsys { };
+
+    # Apps
+    coreaction = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreaction {
+      inherit libcprime libcsys;
+    };
+
+    corearchiver = libsForQt5.callPackage ../applications/misc/cubocore-packages/corearchiver {
+      inherit libcprime libcsys;
+    };
+
+    corefm = libsForQt5.callPackage ../applications/misc/cubocore-packages/corefm {
+      inherit libcprime libcsys;
+    };
+
+    coregarage = libsForQt5.callPackage ../applications/misc/cubocore-packages/coregarage {
+      inherit libcprime libcsys;
+    };
+
+    corehunt = libsForQt5.callPackage ../applications/misc/cubocore-packages/corehunt {
+      inherit libcprime libcsys;
+    };
+
+    coreimage = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreimage {
+      inherit libcprime libcsys;
+    };
+
+    coreinfo = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreinfo {
+      inherit libcprime libcsys;
+    };
+
+    corekeyboard = libsForQt5.callPackage ../applications/misc/cubocore-packages/corekeyboard {
+      inherit libcprime libcsys;
+    };
+
+    corepad = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepad {
+      inherit libcprime libcsys;
+    };
+
+    corepaint = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepaint {
+      inherit libcprime libcsys;
+    };
+
+    corepdf = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepdf {
+      inherit libcprime libcsys;
+    };
+
+    corepins = libsForQt5.callPackage ../applications/misc/cubocore-packages/corepins {
+      inherit libcprime libcsys;
+    };
+
+    corerenamer = libsForQt5.callPackage ../applications/misc/cubocore-packages/corerenamer {
+      inherit libcprime libcsys;
+    };
+
+    coreshot = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreshot {
+      inherit libcprime libcsys;
+    };
+
+    corestats = libsForQt5.callPackage ../applications/misc/cubocore-packages/corestats {
+      inherit libcprime libcsys;
+    };
+
+    corestuff = libsForQt5.callPackage ../applications/misc/cubocore-packages/corestuff {
+      inherit libcprime libcsys;
+    };
+
+    coreterminal = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreterminal {
+      inherit (lxqt) qtermwidget;
+      inherit libcprime libcsys;
+    };
+
+    coretime = libsForQt5.callPackage ../applications/misc/cubocore-packages/coretime {
+      inherit libcprime libcsys;
+    };
+
+    coretoppings = libsForQt5.callPackage ../applications/misc/cubocore-packages/coretoppings {
+      inherit libcprime libcsys;
+    };
+
+    coreuniverse = libsForQt5.callPackage ../applications/misc/cubocore-packages/coreuniverse {
+      inherit libcprime libcsys;
+    };
+  };
+in
+lib.makeScope newScope packages
diff --git a/nixpkgs/pkgs/top-level/cuda-packages.nix b/nixpkgs/pkgs/top-level/cuda-packages.nix
new file mode 100644
index 000000000000..d474cf852e55
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/cuda-packages.nix
@@ -0,0 +1,122 @@
+# Notes:
+#
+# Silvan (Tweag) covered some things on recursive attribute sets in the Nix Hour:
+# https://www.youtube.com/watch?v=BgnUFtd1Ivs
+#
+# I (@connorbaker) highly recommend watching it.
+#
+# Most helpful comment regarding recursive attribute sets:
+#
+# https://github.com/NixOS/nixpkgs/pull/256324#issuecomment-1749935979
+#
+# To summarize:
+#
+# - `prev` should only be used to access attributes which are going to be overriden.
+# - `final` should only be used to access `callPackage` to build new packages.
+# - Attribute names should be computable without relying on `final`.
+#   - Extensions should take arguments to build attribute names before relying on `final`.
+#
+# Silvan's recommendation then is to explicitly use `callPackage` to provide everything our extensions need
+# to compute the attribute names, without relying on `final`.
+#
+# I've (@connorbaker) attempted to do that, though I'm unsure of how this will interact with overrides.
+{
+  callPackage,
+  cudaVersion,
+  lib,
+  newScope,
+  pkgs,
+  __attrsFailEvaluation ? true,
+}:
+let
+  inherit (lib)
+    attrsets
+    customisation
+    fixedPoints
+    strings
+    versions
+    ;
+  # Backbone
+  gpus = builtins.import ../development/cuda-modules/gpus.nix;
+  nvccCompatibilities = builtins.import ../development/cuda-modules/nvcc-compatibilities.nix;
+  flags = callPackage ../development/cuda-modules/flags.nix {inherit cudaVersion gpus;};
+  passthruFunction =
+    final:
+    (
+      {
+        inherit cudaVersion lib pkgs;
+        inherit gpus nvccCompatibilities flags;
+        cudaMajorVersion = versions.major cudaVersion;
+        cudaMajorMinorVersion = versions.majorMinor cudaVersion;
+
+        # Maintain a reference to the final cudaPackages.
+        # Without this, if we use `final.callPackage` and a package accepts `cudaPackages` as an argument,
+        # it's provided with `cudaPackages` from the top-level scope, which is not what we want. We want to
+        # provide the `cudaPackages` from the final scope -- that is, the *current* scope.
+        cudaPackages = final;
+
+        # TODO(@connorbaker): `cudaFlags` is an alias for `flags` which should be removed in the future.
+        cudaFlags = flags;
+
+        # Exposed as cudaPackages.backendStdenv.
+        # This is what nvcc uses as a backend,
+        # and it has to be an officially supported one (e.g. gcc11 for cuda11).
+        #
+        # It, however, propagates current stdenv's libstdc++ to avoid "GLIBCXX_* not found errors"
+        # when linked with other C++ libraries.
+        # E.g. for cudaPackages_11_8 we use gcc11 with gcc12's libstdc++
+        # Cf. https://github.com/NixOS/nixpkgs/pull/218265 for context
+        backendStdenv = final.callPackage ../development/cuda-modules/backend-stdenv.nix {};
+
+        # Loose packages
+        cudatoolkit = final.callPackage ../development/cuda-modules/cudatoolkit {};
+        # SaxPy is only available after 11.4 because it requires redistributable versions of CUDA libraries.
+        saxpy = attrsets.optionalAttrs (strings.versionAtLeast cudaVersion "11.4") (
+          final.callPackage ../development/cuda-modules/saxpy {}
+        );
+      }
+      # NCCL is not supported on Jetson, because it does not use NVLink or PCI-e for inter-GPU communication.
+      # https://forums.developer.nvidia.com/t/can-jetson-orin-support-nccl/232845/9
+      // attrsets.optionalAttrs (!flags.isJetsonBuild) {
+        nccl = final.callPackage ../development/cuda-modules/nccl {};
+        nccl-tests = final.callPackage ../development/cuda-modules/nccl-tests {};
+      }
+    );
+
+  mkVersionedPackageName =
+    name: version:
+    strings.concatStringsSep "_" [
+      name
+      (strings.replaceStrings ["."] ["_"] (versions.majorMinor version))
+    ];
+
+  composedExtension = fixedPoints.composeManyExtensions [
+    (import ../development/cuda-modules/setup-hooks/extension.nix)
+    (callPackage ../development/cuda-modules/cuda/extension.nix {inherit cudaVersion;})
+    (callPackage ../development/cuda-modules/cuda/overrides.nix {inherit cudaVersion;})
+    (callPackage ../development/cuda-modules/generic-builders/multiplex.nix {
+      inherit cudaVersion flags mkVersionedPackageName;
+      pname = "cudnn";
+      releasesModule = ../development/cuda-modules/cudnn/releases.nix;
+      shimsFn = ../development/cuda-modules/cudnn/shims.nix;
+      fixupFn = ../development/cuda-modules/cudnn/fixup.nix;
+    })
+    (callPackage ../development/cuda-modules/cutensor/extension.nix {
+      inherit cudaVersion flags mkVersionedPackageName;
+    })
+    (callPackage ../development/cuda-modules/generic-builders/multiplex.nix {
+      inherit cudaVersion flags mkVersionedPackageName;
+      pname = "tensorrt";
+      releasesModule = ../development/cuda-modules/tensorrt/releases.nix;
+      shimsFn = ../development/cuda-modules/tensorrt/shims.nix;
+      fixupFn = ../development/cuda-modules/tensorrt/fixup.nix;
+    })
+    (callPackage ../test/cuda/cuda-samples/extension.nix {inherit cudaVersion;})
+    (callPackage ../test/cuda/cuda-library-samples/extension.nix {})
+  ];
+
+  cudaPackages = customisation.makeScope newScope (
+    fixedPoints.extends composedExtension passthruFunction
+  );
+in
+cudaPackages // { inherit __attrsFailEvaluation; }
diff --git a/nixpkgs/pkgs/top-level/darwin-packages.nix b/nixpkgs/pkgs/top-level/darwin-packages.nix
new file mode 100644
index 000000000000..2547b0c81cca
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/darwin-packages.nix
@@ -0,0 +1,269 @@
+{ lib
+, buildPackages, pkgs, targetPackages
+, generateSplicesForMkScope, makeScopeWithSplicing'
+, stdenv
+, preLibcCrossHeaders
+, config
+}:
+
+let
+  # Prefix for binaries. Customarily ends with a dash separator.
+  #
+  # TODO(@Ericson2314) Make unconditional, or optional but always true by
+  # default.
+  targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+                                        (stdenv.targetPlatform.config + "-");
+
+  # Bootstrap `fetchurl` needed to build SDK packages without causing an infinite recursion.
+  fetchurlBoot = import ../build-support/fetchurl/boot.nix {
+    inherit (stdenv) system;
+  };
+in
+
+makeScopeWithSplicing' {
+  otherSplices = generateSplicesForMkScope "darwin";
+  extra = spliced: spliced.apple_sdk.frameworks;
+  f = (self: let
+  inherit (self) mkDerivation callPackage;
+
+  # Must use pkgs.callPackage to avoid infinite recursion.
+
+  # Open source packages that are built from source
+  appleSourcePackages = pkgs.callPackage ../os-specific/darwin/apple-source-releases { } self;
+
+  impure-cmds = pkgs.callPackage ../os-specific/darwin/impure-cmds { };
+
+  # macOS 10.12 SDK
+  apple_sdk_10_12 = pkgs.callPackage ../os-specific/darwin/apple-sdk {
+    inherit (buildPackages.darwin) print-reexports;
+    inherit (self) darwin-stubs;
+    fetchurl = fetchurlBoot;
+  };
+
+  # macOS 11.0 SDK
+  apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 {
+    fetchurl = fetchurlBoot;
+  };
+
+  # Pick an SDK
+  apple_sdk = if stdenv.hostPlatform.isAarch64 then apple_sdk_11_0 else apple_sdk_10_12;
+
+  # Pick the source of libraries: either Apple's open source releases, or the
+  # SDK.
+  useAppleSDKLibs = stdenv.hostPlatform.isAarch64;
+
+  selectAttrs = attrs: names:
+    lib.listToAttrs (lib.concatMap (n: lib.optionals (attrs ? "${n}") [(lib.nameValuePair n attrs."${n}")]) names);
+
+  chooseLibs = (
+    # There are differences in which libraries are exported. Avoid evaluation
+    # errors when a package is not provided.
+    selectAttrs (
+      if useAppleSDKLibs
+        then apple_sdk
+        else appleSourcePackages
+    ) ["Libsystem" "LibsystemCross" "libcharset" "libunwind" "objc4" "configd" "IOKit"]
+  ) // {
+    inherit (
+      if useAppleSDKLibs
+        then apple_sdk.frameworks
+        else appleSourcePackages
+    ) Security;
+  };
+in
+
+impure-cmds // appleSourcePackages // chooseLibs // {
+
+  inherit apple_sdk apple_sdk_10_12 apple_sdk_11_0;
+
+  stdenvNoCF = stdenv.override {
+    extraBuildInputs = [];
+  };
+
+  binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
+    inherit (pkgs) binutils-unwrapped;
+    inherit (pkgs.llvmPackages) llvm clang-unwrapped;
+  };
+
+  binutils = pkgs.wrapBintoolsWith {
+    libc =
+      if stdenv.targetPlatform != stdenv.hostPlatform
+      then pkgs.libcCross
+      else pkgs.stdenv.cc.libc;
+    bintools = self.binutils-unwrapped;
+  };
+
+  binutilsDualAs-unwrapped = callPackage ../os-specific/darwin/binutils {
+    inherit (pkgs) binutils-unwrapped;
+    inherit (pkgs.llvmPackages) llvm clang-unwrapped;
+    dualAs = true;
+  };
+
+  binutilsDualAs = pkgs.wrapBintoolsWith {
+    libc =
+      if stdenv.targetPlatform != stdenv.hostPlatform
+      then pkgs.libcCross
+      else pkgs.stdenv.cc.libc;
+    bintools = self.binutilsDualAs-unwrapped;
+  };
+
+  binutilsNoLibc = pkgs.wrapBintoolsWith {
+    libc = preLibcCrossHeaders;
+    bintools = self.binutils-unwrapped;
+  };
+
+  cctools = self.cctools-llvm;
+
+  cctools-apple = callPackage ../os-specific/darwin/cctools/apple.nix {
+    stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
+  };
+
+  cctools-llvm = callPackage ../os-specific/darwin/cctools/llvm.nix {
+    stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
+  };
+
+  cctools-port = callPackage ../os-specific/darwin/cctools/port.nix {
+    stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
+  };
+
+  # TODO(@connorbaker): See https://github.com/NixOS/nixpkgs/issues/229389.
+  cf-private = self.apple_sdk.frameworks.CoreFoundation;
+
+  DarwinTools = callPackage ../os-specific/darwin/DarwinTools { };
+
+  darwin-stubs = callPackage ../os-specific/darwin/darwin-stubs { };
+
+  print-reexports = callPackage ../os-specific/darwin/print-reexports { };
+
+  rewrite-tbd = callPackage ../os-specific/darwin/rewrite-tbd { };
+
+  checkReexportsHook = pkgs.makeSetupHook {
+    name = "darwin-check-reexports-hook";
+    propagatedBuildInputs = [ pkgs.darwin.print-reexports ];
+  } ../os-specific/darwin/print-reexports/setup-hook.sh;
+
+  sigtool = callPackage ../os-specific/darwin/sigtool { };
+
+  signingUtils = callPackage ../os-specific/darwin/signing-utils { };
+
+  postLinkSignHook = callPackage ../os-specific/darwin/signing-utils/post-link-sign-hook.nix { };
+
+  autoSignDarwinBinariesHook = pkgs.makeSetupHook {
+    name = "auto-sign-darwin-binaries-hook";
+    propagatedBuildInputs = [ self.signingUtils ];
+  } ../os-specific/darwin/signing-utils/auto-sign-hook.sh;
+
+  maloader = callPackage ../os-specific/darwin/maloader {
+  };
+
+  insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
+
+  iosSdkPkgs = callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
+    buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk;
+    targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs;
+    inherit (pkgs.llvmPackages) clang-unwrapped;
+  };
+
+  iproute2mac = callPackage ../os-specific/darwin/iproute2mac { };
+
+  libobjc = self.objc4;
+
+  lsusb = callPackage ../os-specific/darwin/lsusb { };
+
+  moltenvk = pkgs.darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/moltenvk {
+    inherit (apple_sdk_11_0.frameworks) AppKit Foundation Metal QuartzCore;
+    inherit (apple_sdk_11_0) MacOSX-SDK Libsystem;
+    inherit (pkgs.darwin) cctools sigtool;
+  };
+
+  opencflite = callPackage ../os-specific/darwin/opencflite { };
+
+  openwith = pkgs.darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/openwith {
+    inherit (apple_sdk_11_0.frameworks) AppKit Foundation UniformTypeIdentifiers;
+  };
+
+  stubs = pkgs.callPackages ../os-specific/darwin/stubs { };
+
+  trash = callPackage ../os-specific/darwin/trash { };
+
+  xattr = pkgs.python3Packages.callPackage ../os-specific/darwin/xattr { };
+
+  inherit (pkgs.callPackages ../os-specific/darwin/xcode { })
+    xcode_8_1 xcode_8_2
+    xcode_9_1 xcode_9_2 xcode_9_3 xcode_9_4 xcode_9_4_1
+    xcode_10_1 xcode_10_2 xcode_10_2_1 xcode_10_3
+    xcode_11 xcode_11_1 xcode_11_2 xcode_11_3_1 xcode_11_4 xcode_11_5 xcode_11_6 xcode_11_7
+    xcode_12 xcode_12_0_1 xcode_12_1 xcode_12_2 xcode_12_3 xcode_12_4 xcode_12_5 xcode_12_5_1
+    xcode_13 xcode_13_1 xcode_13_2 xcode_13_3 xcode_13_3_1 xcode_13_4 xcode_13_4_1
+    xcode_14 xcode_14_1
+    xcode;
+
+  CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { };
+
+  # TODO: Remove the CF hook if a solution to the crashes is not found.
+  CF =
+    # CF used to refer to the open source version of CoreFoundation from the Swift
+    # project. As of macOS 14, the rpath-based approach allowing packages to choose
+    # which version to use no longer seems to work reliably. Sometimes they works,
+    # but sometimes they crash with the error (in the system crash logs):
+    # CF objects must have a non-zero isa.
+    # See https://developer.apple.com/forums/thread/739355 for more on that error.
+    #
+    # In this branch, we only have a single "CoreFoundation" to choose from.
+    # To be compatible with the existing convention, we define
+    # CoreFoundation with the setup hook, and CF as the same package but
+    # with the setup hook removed.
+    #
+    # This may seem unimportant, but without it packages (e.g., bacula) will
+    # fail with linker errors referring ___CFConstantStringClassReference.
+    # It's not clear to me why some packages need this extra setup.
+    lib.overrideDerivation apple_sdk.frameworks.CoreFoundation (drv: {
+      setupHook = null;
+    });
+
+  # Formerly the CF attribute. Use this is you need the open source release.
+  swift-corelibs-foundation = callPackage ../os-specific/darwin/swift-corelibs/corefoundation.nix { };
+
+  # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in
+  # libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { };
+
+  libtapi = callPackage ../os-specific/darwin/libtapi {};
+
+  ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
+
+  discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll { };
+
+  # See doc/builders/special/darwin-builder.section.md
+  linux-builder = lib.makeOverridable ({ modules }:
+    let
+      toGuest = builtins.replaceStrings [ "darwin" ] [ "linux" ];
+
+      nixos = import ../../nixos {
+        configuration = {
+          imports = [
+            ../../nixos/modules/profiles/macos-builder.nix
+          ] ++ modules;
+
+          # If you need to override this, consider starting with the right Nixpkgs
+          # in the first place, ie change `pkgs` in `pkgs.darwin.linux-builder`.
+          # or if you're creating new wiring that's not `pkgs`-centric, perhaps use the
+          # macos-builder profile directly.
+          virtualisation.host = { inherit pkgs; };
+
+          nixpkgs.hostPlatform = lib.mkDefault (toGuest stdenv.hostPlatform.system);
+        };
+
+        system = null;
+      };
+
+    in
+      nixos.config.system.build.macos-builder-installer) { modules = [ ]; };
+
+  linux-builder-x86_64 = self.linux-builder.override {
+    modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ];
+  };
+
+} // lib.optionalAttrs config.allowAliases {
+  builder = throw "'darwin.builder' has been changed and renamed to 'darwin.linux-builder'. The default ssh port is now 31022. Please update your configuration or override the port back to 22. See https://nixos.org/manual/nixpkgs/unstable/#sec-darwin-builder"; # added 2023-07-06
+});
+}
diff --git a/nixpkgs/pkgs/top-level/default.nix b/nixpkgs/pkgs/top-level/default.nix
new file mode 100644
index 000000000000..5c224802d5bf
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/default.nix
@@ -0,0 +1,144 @@
+/* This function composes the Nix Packages collection. It:
+
+     1. Elaborates `localSystem` and `crossSystem` with defaults as needed.
+
+     2. Applies the final stage to the given `config` if it is a function
+
+     3. Defaults to no non-standard config and no cross-compilation target
+
+     4. Uses the above to infer the default standard environment's (stdenv's)
+        stages if no stdenv's are provided
+
+     5. Folds the stages to yield the final fully booted package set for the
+        chosen stdenv
+
+   Use `impure.nix` to also infer the `system` based on the one on which
+   evaluation is taking place, and the configuration from environment variables
+   or dot-files. */
+
+{ # The system packages will be built on. See the manual for the
+  # subtle division of labor between these two `*System`s and the three
+  # `*Platform`s.
+  localSystem
+
+, # The system packages will ultimately be run on.
+  crossSystem ? localSystem
+
+, # Allow a configuration attribute set to be passed in as an argument.
+  config ? {}
+
+, # List of overlays layers used to extend Nixpkgs.
+  overlays ? []
+
+, # List of overlays to apply to target packages only.
+  crossOverlays ? []
+
+, # A function booting the final package set for a specific standard
+  # environment. See below for the arguments given to that function, the type of
+  # list it returns.
+  stdenvStages ? import ../stdenv
+
+, # Ignore unexpected args.
+  ...
+} @ args:
+
+let # Rename the function arguments
+  config0 = config;
+  crossSystem0 = crossSystem;
+
+in let
+  lib = import ../../lib;
+
+  inherit (lib) throwIfNot;
+
+  checked =
+    throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
+    lib.foldr (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") (r: r) overlays
+    throwIfNot (lib.isList crossOverlays) "The crossOverlays argument to nixpkgs must be a list."
+    lib.foldr (x: throwIfNot (lib.isFunction x) "All crossOverlays passed to nixpkgs must be functions.") (r: r) crossOverlays
+    ;
+
+  localSystem = lib.systems.elaborate args.localSystem;
+
+  # Condition preserves sharing which in turn affects equality.
+  #
+  # See `lib.systems.equals` documentation for more details.
+  #
+  # Note that it is generally not possible to compare systems as given in
+  # parameters, e.g. if systems are initialized as
+  #
+  #   localSystem = { system = "x86_64-linux"; };
+  #   crossSystem = { config = "x86_64-unknown-linux-gnu"; };
+  #
+  # Both systems are semantically equivalent as the same vendor and ABI are
+  # inferred from the system double in `localSystem`.
+  crossSystem =
+    let system = lib.systems.elaborate crossSystem0; in
+    if crossSystem0 == null || lib.systems.equals system localSystem
+    then localSystem
+    else system;
+
+  # Allow both:
+  # { /* the config */ } and
+  # { pkgs, ... } : { /* the config */ }
+  config1 =
+    if lib.isFunction config0
+    then config0 { inherit pkgs; }
+    else config0;
+
+  configEval = lib.evalModules {
+    modules = [
+      ./config.nix
+      ({ options, ... }: {
+        _file = "nixpkgs.config";
+        config = config1;
+      })
+    ];
+    class = "nixpkgsConfig";
+  };
+
+  # take all the rest as-is
+  config = lib.showWarnings configEval.config.warnings configEval.config;
+
+  # A few packages make a new package set to draw their dependencies from.
+  # (Currently to get a cross tool chain, or forced-i686 package.) Rather than
+  # give `all-packages.nix` all the arguments to this function, even ones that
+  # don't concern it, we give it this function to "re-call" nixpkgs, inheriting
+  # whatever arguments it doesn't explicitly provide. This way,
+  # `all-packages.nix` doesn't know more than it needs too.
+  #
+  # It's OK that `args` doesn't include default arguments from this file:
+  # they'll be deterministically inferred. In fact we must *not* include them,
+  # because it's important that if some parameter which affects the default is
+  # substituted with a different argument, the default is re-inferred.
+  #
+  # To put this in concrete terms, this function is basically just used today to
+  # use package for a different platform for the current platform (namely cross
+  # compiling toolchains and 32-bit packages on x86_64). In both those cases we
+  # want the provided non-native `localSystem` argument to affect the stdenv
+  # chosen.
+  #
+  # NB!!! This thing gets its `config` argument from `args`, i.e. it's actually
+  # `config0`. It is important to keep it to `config0` format (as opposed to the
+  # result of `evalModules`, i.e. the `config` variable above) throughout all
+  # nixpkgs evaluations since the above function `config0 -> config` implemented
+  # via `evalModules` is not idempotent. In other words, if you add `config` to
+  # `newArgs`, expect strange very hard to debug errors! (Yes, I'm speaking from
+  # experience here.)
+  nixpkgsFun = newArgs: import ./. (args // newArgs);
+
+  # Partially apply some arguments for building bootstraping stage pkgs
+  # sets. Only apply arguments which no stdenv would want to override.
+  allPackages = newArgs: import ./stage.nix ({
+    inherit lib nixpkgsFun;
+  } // newArgs);
+
+  boot = import ../stdenv/booter.nix { inherit lib allPackages; };
+
+  stages = stdenvStages {
+    inherit lib localSystem crossSystem config overlays crossOverlays;
+  };
+
+  pkgs = boot stages;
+
+in checked pkgs
diff --git a/nixpkgs/pkgs/top-level/dhall-packages.nix b/nixpkgs/pkgs/top-level/dhall-packages.nix
new file mode 100644
index 000000000000..f43be56c59be
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/dhall-packages.nix
@@ -0,0 +1,51 @@
+{ lib
+, newScope
+, overrides ? (self: super: {})
+}:
+
+let
+  packages = self:
+    let
+      callPackage = newScope self;
+
+      buildDhallPackage =
+        callPackage ../development/interpreters/dhall/build-dhall-package.nix { };
+
+      buildDhallGitHubPackage =
+        callPackage ../development/interpreters/dhall/build-dhall-github-package.nix { };
+
+      buildDhallDirectoryPackage =
+        callPackage ../development/interpreters/dhall/build-dhall-directory-package.nix { };
+
+      buildDhallUrl =
+        callPackage ../development/interpreters/dhall/build-dhall-url.nix { };
+
+      generateDhallDirectoryPackage =
+        callPackage ../development/interpreters/dhall/generate-dhall-directory-package.nix { };
+
+    in
+      { inherit
+          callPackage
+          buildDhallPackage
+          buildDhallGitHubPackage
+          buildDhallDirectoryPackage
+          buildDhallUrl
+          generateDhallDirectoryPackage
+        ;
+
+        lib = import ../development/dhall-modules/lib.nix { inherit lib; };
+
+        dhall-cloudformation = callPackage ../development/dhall-modules/dhall-cloudformation.nix { };
+
+        dhall-grafana =
+          callPackage ../development/dhall-modules/dhall-grafana.nix { };
+
+        dhall-kubernetes =
+          callPackage ../development/dhall-modules/dhall-kubernetes.nix { };
+
+        Prelude =
+          callPackage ../development/dhall-modules/Prelude.nix { };
+      };
+
+in
+  lib.fix' (lib.extends overrides packages)
diff --git a/nixpkgs/pkgs/top-level/dotnet-packages.nix b/nixpkgs/pkgs/top-level/dotnet-packages.nix
new file mode 100644
index 000000000000..89fba136259e
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/dotnet-packages.nix
@@ -0,0 +1,180 @@
+{ stdenv
+, lib
+, pkgs
+, buildDotnetPackage
+, buildDotnetModule
+, fetchurl
+, fetchFromGitHub
+, fetchNuGet
+, glib
+, mono
+, overrides ? {}
+, boogie
+, nuget
+}:
+
+let self = dotnetPackages // overrides; dotnetPackages = with self; {
+  # ALIASES FOR MOVED PACKAGES
+
+  Boogie = boogie;
+  Nuget = nuget;
+
+  # BINARY PACKAGES
+
+  NUnit3 = fetchNuGet {
+    pname = "NUnit";
+    version = "3.0.1";
+    sha256 = "1g3j3kvg9vrapb1vjgq65nvn1vg7bzm66w7yjnaip1iww1yn1b0p";
+    outputFiles = [ "lib/*" ];
+  };
+
+  NUnit2 = fetchNuGet {
+    pname = "NUnit";
+    version = "2.6.4";
+    sha256 = "1acwsm7p93b1hzfb83ia33145x0w6fvdsfjm9xflsisljxpdx35y";
+    outputFiles = [ "lib/*" ];
+  };
+
+  NUnit = NUnit2;
+
+  NUnitConsole = fetchNuGet {
+    pname = "NUnit.Console";
+    version = "3.0.1";
+    sha256 = "154bqwm2n95syv8nwd67qh8qsv0b0h5zap60sk64z3kd3a9ffi5p";
+    outputFiles = [ "tools/*" ];
+  };
+
+  MaxMindDb = fetchNuGet {
+    pname = "MaxMind.Db";
+    version = "1.1.0.0";
+    sha256 = "0lixl76f7k3ldiqzg94zh13gn82w5mm5dx72y97fcqvp8g6nj3ds";
+    outputFiles = [ "lib/*" ];
+  };
+
+  MaxMindGeoIP2 = fetchNuGet {
+    pname = "MaxMind.GeoIP2";
+    version = "2.3.1";
+    sha256 = "1s44dvjnmj1aimbrgkmpj6h5dn1w6acgqjch1axc76yz6hwknqgf";
+    outputFiles = [ "lib/*" ];
+  };
+
+  SharpZipLib = fetchNuGet {
+    pname = "SharpZipLib";
+    version = "1.3.3";
+    sha256 = "sha256-HWEQTKh9Ktwg/zIl079dAiH+ob2ShWFAqLgG6XgIMr4=";
+    outputFiles = [ "lib/*" ];
+  };
+
+  StyleCopMSBuild = fetchNuGet {
+    pname = "StyleCop.MSBuild";
+    version = "4.7.49.0";
+    sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
+    outputFiles = [ "tools/*" ];
+  };
+
+  StyleCopPlusMSBuild = fetchNuGet {
+    pname = "StyleCopPlus.MSBuild";
+    version = "4.7.49.5";
+    sha256 = "1hv4lfxw72aql8siyqc4n954vzdz8p6jx9f2wrgzz0jy1k98x2mr";
+    outputFiles = [ "tools/*" ];
+  };
+
+  RestSharp = fetchNuGet {
+    pname = "RestSharp";
+    version = "106.12.0";
+    sha256 = "sha256-NGzveByJvCRtHlI2C8d/mLs3akyMm77NER8TUG6HiD4=";
+    outputFiles = [ "lib/*" ];
+  };
+
+  SharpFont = fetchNuGet {
+    pname = "SharpFont";
+    version = "4.0.1";
+    sha256 = "1yd3cm4ww0hw2k3aymf792hp6skyg8qn491m2a3fhkzvsl8z7vs8";
+    outputFiles = [ "lib/*" "config/*" ];
+  };
+
+  SmartIrc4net = fetchNuGet {
+    pname = "SmartIrc4net";
+    version = "0.4.5.1";
+    sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
+    outputFiles = [ "lib/*" ];
+  };
+
+  FuzzyLogicLibrary = fetchNuGet {
+    pname = "FuzzyLogicLibrary";
+    version = "1.2.0";
+    sha256 = "0x518i8d3rw9n51xwawa4sywvqd722adj7kpcgcm63r66s950r5l";
+    outputFiles = [ "bin/*" ];
+  };
+
+  OpenNAT = fetchNuGet {
+    pname = "Open.NAT";
+    version = "2.1.0";
+    sha256 = "1jyd30fwycdwx5ck96zhp2xf20yz0sp7g3pjbqhmay4kd322mfwk";
+    outputFiles = [ "lib/*" ];
+  };
+
+  MonoNat = fetchNuGet {
+    pname = "Mono.Nat";
+    version = "1.2.24";
+    sha256 = "0vfkach11kkcd9rcqz3s38m70d5spyb21gl99iqnkljxj5555wjs";
+    outputFiles = [ "lib/*" ];
+  };
+
+  NUnitRunners = fetchNuGet {
+    pname = "NUnit.Runners";
+    version = "2.6.4";
+    sha256 = "11nmi7vikn9idz8qcad9z7f73arsh5rw18fc1sri9ywz77mpm1s4";
+    outputFiles = [ "tools/*" ];
+    preInstall = "mv -v tools/lib/* tools && rmdir -v tools/lib";
+  };
+
+  # SOURCE PACKAGES
+
+  MonoAddins = buildDotnetPackage rec {
+    pname = "Mono.Addins";
+    version = "1.2";
+
+    xBuildFiles = [
+      "Mono.Addins/Mono.Addins.csproj"
+      "Mono.Addins.Setup/Mono.Addins.Setup.csproj"
+      "Mono.Addins.Gui/Mono.Addins.Gui.csproj"
+      "Mono.Addins.CecilReflector/Mono.Addins.CecilReflector.csproj"
+    ];
+    outputFiles = [ "bin/*" ];
+
+    src = fetchFromGitHub {
+      owner = "mono";
+      repo = "mono-addins";
+      rev = "mono-addins-${version}";
+      sha256 = "1hnn0a2qsjcjprsxas424bzvhsdwy0yc2jj5xbp698c0m9kfk24y";
+    };
+
+    buildInputs = [ pkgs.gtk-sharp-2_0 ];
+
+    meta = {
+      description = "A generic framework for creating extensible applications";
+      homepage = "https://www.mono-project.com/Mono.Addins";
+      longDescription = ''
+        A generic framework for creating extensible applications,
+        and for creating libraries which extend those applications.
+      '';
+      license = lib.licenses.mit;
+    };
+  };
+
+  NewtonsoftJson = fetchNuGet {
+    pname = "Newtonsoft.Json";
+    version = "11.0.2";
+    sha256 = "07na27n4mlw77f3hg5jpayzxll7f4gyna6x7k9cybmxpbs6l77k7";
+    outputFiles = [ "*" ];
+  };
+
+  Paket = fetchNuGet {
+    pname = "Paket";
+    version = "5.179.1";
+    sha256 = "11rzna03i145qj08hwrynya548fwk8xzxmg65swyaf19jd7gzg82";
+    outputFiles = [ "*" ];
+  };
+
+}; in self
diff --git a/nixpkgs/pkgs/top-level/emacs-packages.nix b/nixpkgs/pkgs/top-level/emacs-packages.nix
new file mode 100644
index 000000000000..a14f53d53528
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/emacs-packages.nix
@@ -0,0 +1,103 @@
+# package.el-based emacs packages
+
+## FOR USERS
+#
+# Recommended: simply use `emacsWithPackages` with the packages you want.
+#
+# Alternative: use `emacs`, install everything to a system or user profile
+# and then add this at the start your `early-init.el`:
+/*
+  ;; optional. use this if you install emacs packages to the system profile
+  (add-to-list 'package-directory-list "/run/current-system/sw/share/emacs/site-lisp/elpa")
+
+  ;; optional. use this if you install emacs packages to user profiles (with nix-env)
+  (add-to-list 'package-directory-list "~/.nix-profile/share/emacs/site-lisp/elpa")
+*/
+
+{ pkgs'
+, emacs'
+, makeScope
+, makeOverridable
+, dontRecurseIntoAttrs
+}:
+
+let
+
+  mkElpaDevelPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/elpa-devel-packages.nix {
+    inherit (pkgs) stdenv texinfo writeText gcc pkgs buildPackages;
+    inherit lib;
+  };
+
+  mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/elpa-packages.nix {
+    inherit (pkgs) stdenv texinfo writeText gcc pkgs buildPackages;
+    inherit lib;
+  };
+
+  mkNongnuPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/nongnu-packages.nix {
+    inherit (pkgs) buildPackages;
+    inherit lib;
+  };
+
+  # Contains both melpa stable & unstable
+  melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/melpa-packages.nix {
+    inherit lib pkgs;
+  };
+
+  mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/manual-packages.nix {
+    inherit lib pkgs;
+  };
+
+  emacsWithPackages = { pkgs, lib }: pkgs.callPackage ../build-support/emacs/wrapper.nix {
+    inherit (pkgs.xorg) lndir;
+    inherit lib;
+  };
+
+in makeScope pkgs'.newScope (self: makeOverridable ({
+  pkgs ? pkgs'
+  , lib ? pkgs.lib
+  , elpaDevelPackages ? mkElpaDevelPackages { inherit pkgs lib; } self
+  , elpaPackages ? mkElpaPackages { inherit pkgs lib; } self
+  , nongnuPackages ? mkNongnuPackages { inherit pkgs lib; } self
+  , melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self
+  , melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self
+  , manualPackages ? mkManualPackages { inherit pkgs lib; } self
+}: ({}
+  // elpaDevelPackages // { inherit elpaDevelPackages; }
+  // elpaPackages // { inherit elpaPackages; }
+  // nongnuPackages // { inherit nongnuPackages; }
+  // melpaStablePackages // { inherit melpaStablePackages; }
+  // melpaPackages // { inherit melpaPackages; }
+  // manualPackages // { inherit manualPackages; }
+  // {
+
+    # Propagate overridden scope
+    emacs = emacs'.overrideAttrs(old: {
+      passthru = (old.passthru or {}) // {
+        pkgs = dontRecurseIntoAttrs self;
+      };
+    });
+
+    trivialBuild = pkgs.callPackage ../build-support/emacs/trivial.nix {
+      inherit (self) emacs;
+    };
+
+    melpaBuild = pkgs.callPackage ../build-support/emacs/melpa.nix {
+      inherit (self) emacs;
+    };
+
+    emacsWithPackages = emacsWithPackages { inherit pkgs lib; } self;
+    withPackages = emacsWithPackages { inherit pkgs lib; } self;
+
+  } // {
+
+    # Package specific priority overrides goes here
+
+    # EXWM is not tagged very often, prefer it from elpa devel.
+    inherit (elpaDevelPackages) exwm;
+
+    # Telega uploads packages incompatible with stable tdlib to melpa
+    # Prefer the one from melpa stable
+    inherit (melpaStablePackages) telega;
+
+  })
+) {})
diff --git a/nixpkgs/pkgs/top-level/emscripten-packages.nix b/nixpkgs/pkgs/top-level/emscripten-packages.nix
new file mode 100644
index 000000000000..f4d2fd06a90c
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/emscripten-packages.nix
@@ -0,0 +1,186 @@
+{ pkgs }:
+
+with pkgs;
+
+# emscripten toolchain abstraction for nix
+# https://github.com/NixOS/nixpkgs/pull/16208
+
+rec {
+  json_c = (pkgs.json_c.override {
+    stdenv = pkgs.emscriptenStdenv;
+  }).overrideAttrs
+    (old: {
+      nativeBuildInputs = [ pkg-config cmake ];
+      propagatedBuildInputs = [ zlib ];
+      configurePhase = ''
+        HOME=$TMPDIR
+        mkdir -p .emscriptencache
+        export EM_CACHE=$(pwd)/.emscriptencache
+        emcmake cmake . $cmakeFlags -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_INSTALL_INCLUDEDIR=$dev/include
+      '';
+      checkPhase = ''
+        echo "================= testing json_c using node ================="
+
+        echo "Compiling a custom test"
+        set -x
+        emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 tests/test1.c \
+          `pkg-config zlib --cflags` \
+          `pkg-config zlib --libs` \
+          -I . \
+          libjson-c.a \
+          -o ./test1.js
+
+        echo "Using node to execute the test which basically outputs an error on stderr which we grep for"
+        ${pkgs.nodejs}/bin/node ./test1.js
+
+        set +x
+        if [ $? -ne 0 ]; then
+          echo "test1.js execution failed -> unit test failed, please fix"
+          exit 1;
+        else
+          echo "test1.js execution seems to work! very good."
+        fi
+        echo "================= /testing json_c using node ================="
+      '';
+    });
+
+  libxml2 = (pkgs.libxml2.override {
+    stdenv = emscriptenStdenv;
+    pythonSupport = false;
+  }).overrideAttrs
+    (old: {
+      propagatedBuildInputs = [ zlib ];
+      nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkg-config ];
+
+      # just override it with nothing so it does not fail
+      autoreconfPhase = "echo autoreconfPhase not used...";
+      configurePhase = ''
+        HOME=$TMPDIR
+        mkdir -p .emscriptencache
+        export EM_CACHE=$(pwd)/.emscriptencache
+        emconfigure ./configure --prefix=$out --without-python
+      '';
+      checkPhase = ''
+        echo "================= testing libxml2 using node ================="
+
+        echo "Compiling a custom test"
+        set -x
+        emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 xmllint.o \
+        ./.libs/''
+      + pkgs.lib.optionalString pkgs.stdenv.isDarwin "libxml2.dylib "
+      + pkgs.lib.optionalString (!pkgs.stdenv.isDarwin) "libxml2.a "
+      + '' `pkg-config zlib --cflags` `pkg-config zlib --libs` -o ./xmllint.test.js \
+        --embed-file ./test/xmlid/id_err1.xml
+
+        echo "Using node to execute the test which basically outputs an error on stderr which we grep for"
+        ${pkgs.nodejs}/bin/node ./xmllint.test.js --noout test/xmlid/id_err1.xml 2>&1 | grep 0bar
+
+        set +x
+        if [ $? -ne 0 ]; then
+          echo "xmllint unit test failed, please fix this package"
+          exit 1;
+        else
+          echo "since there is no stupid text containing 'foo xml:id' it seems to work! very good."
+        fi
+        echo "================= /testing libxml2 using node ================="
+      '';
+    });
+
+  xmlmirror = pkgs.buildEmscriptenPackage rec {
+    pname = "xmlmirror";
+    version = "unstable-2016-06-05";
+
+    buildInputs = [ libtool gnumake libxml2 nodejs openjdk json_c ];
+    nativeBuildInputs = [ pkg-config zlib autoconf automake ];
+
+    src = pkgs.fetchgit {
+      url = "https://gitlab.com/odfplugfest/xmlmirror.git";
+      rev = "4fd7e86f7c9526b8f4c1733e5c8b45175860a8fd";
+      sha256 = "1jasdqnbdnb83wbcnyrp32f36w3xwhwp0wq8lwwmhqagxrij1r4b";
+    };
+
+    configurePhase = ''
+      rm -f fastXmlLint.js*
+      # a fix for ERROR:root:For asm.js, TOTAL_MEMORY must be a multiple of 16MB, was 234217728
+      # https://gitlab.com/odfplugfest/xmlmirror/issues/8
+      sed -e "s/TOTAL_MEMORY=234217728/TOTAL_MEMORY=268435456/g" -i Makefile.emEnv
+      # https://github.com/kripken/emscripten/issues/6344
+      # https://gitlab.com/odfplugfest/xmlmirror/issues/9
+      sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv
+      # https://gitlab.com/odfplugfest/xmlmirror/issues/11
+      sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv
+      mkdir -p .emscriptencache
+      export EM_CACHE=$(pwd)/.emscriptencache
+    '';
+
+    buildPhase = ''
+      HOME=$TMPDIR
+      make -f Makefile.emEnv
+    '';
+
+    outputs = [ "out" "doc" ];
+
+    installPhase = ''
+      mkdir -p $out/share
+      mkdir -p $doc/share/${pname}
+
+      cp Demo* $out/share
+      cp -R codemirror-5.12 $out/share
+      cp fastXmlLint.js* $out/share
+      cp *.xsd $out/share
+      cp *.js $out/share
+      cp *.xhtml $out/share
+      cp *.html $out/share
+      cp *.json $out/share
+      cp *.rng $out/share
+      cp README.md $doc/share/${pname}
+    '';
+    checkPhase = ''
+    '';
+  };
+
+  zlib = (pkgs.zlib.override {
+    stdenv = pkgs.emscriptenStdenv;
+  }).overrideAttrs
+    (old: {
+      nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkg-config ];
+      # we need to reset this setting!
+      env = (old.env or { }) // { NIX_CFLAGS_COMPILE = ""; };
+      dontStrip = true;
+      outputs = [ "out" ];
+      buildPhase = ''
+        emmake make
+      '';
+      installPhase = ''
+        emmake make install
+      '';
+      checkPhase = ''
+        echo "================= testing zlib using node ================="
+
+        echo "Compiling a custom test"
+        set -x
+        emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 test/example.c -DZ_SOLO \
+        -L. libz.a -I . -o example.js
+
+        echo "Using node to execute the test"
+        ${pkgs.nodejs}/bin/node ./example.js
+
+        set +x
+        if [ $? -ne 0 ]; then
+          echo "test failed for some reason"
+          exit 1;
+        else
+          echo "it seems to work! very good."
+        fi
+        echo "================= /testing zlib using node ================="
+      '';
+
+      postPatch = pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
+        substituteInPlace configure \
+          --replace '/usr/bin/libtool' 'ar' \
+          --replace 'AR="libtool"' 'AR="ar"' \
+          --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
+      '';
+    });
+
+}
diff --git a/nixpkgs/pkgs/top-level/gnuradio-packages.nix b/nixpkgs/pkgs/top-level/gnuradio-packages.nix
new file mode 100644
index 000000000000..08cc25980240
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/gnuradio-packages.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, newScope
+, gnuradio # unwrapped gnuradio
+}:
+
+lib.makeScope newScope ( self:
+
+let
+  # Modeled after qt's
+  mkDerivationWith = import ../development/gnuradio-modules/mkDerivation.nix {
+    inherit lib;
+    unwrapped = gnuradio;
+  };
+  mkDerivation = mkDerivationWith stdenv.mkDerivation;
+
+  callPackage = self.newScope ({
+    inherit (gnuradio)
+      # Packages that are potentially overridden and used as deps here.
+      boost
+      volk
+      logLib
+      python
+    ;
+    inherit mkDerivationWith mkDerivation;
+    inherit gnuradio;
+  } // lib.optionalAttrs (gnuradio.hasFeature "gr-uhd") {
+    inherit (gnuradio) uhd;
+  });
+in {
+
+  inherit callPackage mkDerivation mkDerivationWith;
+
+  ### Packages
+
+  osmosdr = callPackage ../development/gnuradio-modules/osmosdr/default.nix { };
+
+  ais = callPackage ../development/gnuradio-modules/ais/default.nix { };
+
+  grnet = callPackage ../development/gnuradio-modules/grnet/default.nix { };
+
+  gsm = callPackage ../development/gnuradio-modules/gsm/default.nix { };
+
+  nacl = callPackage ../development/gnuradio-modules/nacl/default.nix { };
+
+  rds = callPackage ../development/gnuradio-modules/rds/default.nix { };
+
+  limesdr = callPackage ../development/gnuradio-modules/limesdr/default.nix { };
+
+})
diff --git a/nixpkgs/pkgs/top-level/hare-third-party.nix b/nixpkgs/pkgs/top-level/hare-third-party.nix
new file mode 100644
index 000000000000..ac2dc254e50d
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/hare-third-party.nix
@@ -0,0 +1,11 @@
+{ lib, newScope }:
+
+lib.makeScope newScope (self:
+let
+  inherit (self) callPackage;
+in
+{
+
+  hare-compress = callPackage ../development/hare-third-party/hare-compress { };
+  hare-json = callPackage ../development/hare-third-party/hare-json { };
+})
diff --git a/nixpkgs/pkgs/top-level/haskell-packages.nix b/nixpkgs/pkgs/top-level/haskell-packages.nix
new file mode 100644
index 000000000000..44ff6a6dd59e
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/haskell-packages.nix
@@ -0,0 +1,613 @@
+{ buildPackages, pkgsBuildTarget, pkgs, newScope, stdenv }:
+
+let
+  # These are attributes in compiler that support integer-simple.
+  integerSimpleIncludes = [
+    "ghc88"
+    "ghc884"
+    "ghc810"
+    "ghc8107"
+  ];
+
+  nativeBignumIncludes = [
+    "ghc90"
+    "ghc902"
+    "ghc92"
+    "ghc924"
+    "ghc925"
+    "ghc926"
+    "ghc927"
+    "ghc928"
+    "ghc94"
+    "ghc942"
+    "ghc943"
+    "ghc944"
+    "ghc945"
+    "ghc946"
+    "ghc947"
+    "ghc948"
+    "ghc96"
+    "ghc962"
+    "ghc963"
+    "ghc98"
+    "ghc981"
+    "ghcHEAD"
+  ];
+
+  haskellLibUncomposable = import ../development/haskell-modules/lib {
+    inherit (pkgs) lib;
+    inherit pkgs;
+  };
+
+  callPackage = newScope {
+    haskellLib = haskellLibUncomposable.compose;
+    overrides = pkgs.haskell.packageOverrides;
+  };
+
+  bootstrapPackageSet = self: super: {
+    mkDerivation = drv: super.mkDerivation (drv // {
+      doCheck = false;
+      doHaddock = false;
+      enableExecutableProfiling = false;
+      enableLibraryProfiling = false;
+      enableSharedExecutables = false;
+      enableSharedLibraries = false;
+    });
+  };
+
+  # Use this rather than `rec { ... }` below for sake of overlays.
+  inherit (pkgs.haskell) compiler packages;
+
+in {
+  lib = haskellLibUncomposable;
+
+  package-list = callPackage ../development/haskell-modules/package-list.nix {};
+
+  compiler = {
+    ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix {
+      # Should be llvmPackages_6 which has been removed from nixpkgs
+      llvmPackages = null;
+    };
+
+    ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
+      llvmPackages = pkgs.llvmPackages_9;
+    };
+
+    ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+
+    ghc924Binary = callPackage ../development/compilers/ghc/9.2.4-binary.nix {
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+
+    ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
+      bootPkgs =
+        # the oldest ghc with aarch64-darwin support is 8.10.5
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
+          packages.ghc865Binary
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc810 = compiler.ghc8107;
+    ghc902 = callPackage ../development/compilers/ghc/9.0.2.nix {
+      bootPkgs =
+        # the oldest ghc with aarch64-darwin support is 8.10.5
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc810
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc90 = compiler.ghc902;
+    ghc924 = callPackage ../development/compilers/ghc/9.2.4.nix {
+      bootPkgs =
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc810
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc925 = callPackage ../development/compilers/ghc/9.2.5.nix {
+      bootPkgs =
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc810
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc926 = callPackage ../development/compilers/ghc/9.2.6.nix {
+      bootPkgs =
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc810
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc927 = callPackage ../development/compilers/ghc/9.2.7.nix {
+      bootPkgs =
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc810
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
+      bootPkgs =
+        if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc810
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc92 = compiler.ghc928;
+    ghc942 = callPackage ../development/compilers/ghc/9.4.2.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc943 = callPackage ../development/compilers/ghc/9.4.3.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc944 = callPackage ../development/compilers/ghc/9.4.4.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc945 = callPackage ../development/compilers/ghc/9.4.5.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc946 = callPackage ../development/compilers/ghc/9.4.6.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc947 = callPackage ../development/compilers/ghc/9.4.7.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc948 = callPackage ../development/compilers/ghc/9.4.8.nix {
+      bootPkgs =
+        # Building with 9.2 is broken due to
+        # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
+        # Use 8.10 as a workaround where possible to keep bootstrap path short.
+
+        # On ARM text won't build with GHC 8.10.*
+        if stdenv.hostPlatform.isAarch then
+          # TODO(@sternenseemann): package bindist
+          packages.ghc902
+        # No suitable bindists for powerpc64le
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc902
+        else
+          packages.ghc8107Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 10 && < 14
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc94 = compiler.ghc948;
+    ghc962 = callPackage ../development/compilers/ghc/9.6.2.nix {
+      bootPkgs =
+        # For GHC 9.2 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc924
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc924
+        else
+          packages.ghc924Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+    ghc963 = callPackage ../development/compilers/ghc/9.6.3.nix {
+      bootPkgs =
+        # For GHC 9.2 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc924
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc924
+        else
+          packages.ghc924Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+    ghc96 = compiler.ghc963;
+    ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
+      # No bindist packaged for 9.4.* yet
+      bootPkgs = packages.ghc947;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+    ghc98 = compiler.ghc981;
+    ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
+      bootPkgs = packages.ghc963;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # 2023-01-15: Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+
+    ghcjs = compiler.ghcjs810;
+    ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 {
+      bootPkgs = packages.ghc810;
+      ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json;
+      stage0 = ../development/compilers/ghcjs/8.10/stage0.nix;
+    };
+
+    # The integer-simple attribute set contains all the GHC compilers
+    # build with integer-simple instead of integer-gmp.
+    integer-simple = let
+      integerSimpleGhcNames = pkgs.lib.filter
+        (name: builtins.elem name integerSimpleIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
+      integerSimpleGhcNames
+      (name: compiler.${name}.override { enableIntegerSimple = true; }));
+
+    # Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
+    # with "native" and "gmp" backends.
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
+      nativeBignumGhcNames
+      (name: compiler.${name}.override { enableNativeBignum = true; }));
+  };
+
+  # Default overrides that are applied to all package sets.
+  packageOverrides = self : super : {};
+
+  # Always get compilers from `buildPackages`
+  packages = let bh = buildPackages.haskell; in {
+
+    ghc865Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc865Binary;
+      ghc = bh.compiler.ghc865Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
+    ghc8102Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8102Binary;
+      ghc = bh.compiler.ghc8102Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
+    ghc8107Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8107Binary;
+      ghc = bh.compiler.ghc8107Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
+    ghc924Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc924Binary;
+      ghc = bh.compiler.ghc924Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
+    ghc8107 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8107;
+      ghc = bh.compiler.ghc8107;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+    };
+    ghc810 = packages.ghc8107;
+    ghc902 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc902;
+      ghc = bh.compiler.ghc902;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
+    };
+    ghc90 = packages.ghc902;
+    ghc924 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc924;
+      ghc = bh.compiler.ghc924;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+    };
+    ghc925 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc925;
+      ghc = bh.compiler.ghc925;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+    };
+    ghc926 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc926;
+      ghc = bh.compiler.ghc926;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+    };
+    ghc927 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc927;
+      ghc = bh.compiler.ghc927;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+    };
+    ghc928 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc928;
+      ghc = bh.compiler.ghc928;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+    };
+    ghc92 = packages.ghc928;
+    ghc942 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc942;
+      ghc = bh.compiler.ghc942;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc943 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc943;
+      ghc = bh.compiler.ghc943;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc944 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc944;
+      ghc = bh.compiler.ghc944;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc945 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc945;
+      ghc = bh.compiler.ghc945;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc946 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc946;
+      ghc = bh.compiler.ghc946;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc947 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc947;
+      ghc = bh.compiler.ghc947;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc948 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc948;
+      ghc = bh.compiler.ghc948;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
+    };
+    ghc94 = packages.ghc948;
+    ghc962 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc962;
+      ghc = bh.compiler.ghc962;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
+    };
+    ghc963 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc963;
+      ghc = bh.compiler.ghc963;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
+    };
+    ghc96 = packages.ghc963;
+    ghc981 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc981;
+      ghc = bh.compiler.ghc981;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
+    };
+    ghc98 = packages.ghc981;
+    ghcHEAD = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghcHEAD;
+      ghc = bh.compiler.ghcHEAD;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.10.x.nix { };
+    };
+
+    ghcjs = packages.ghcjs810;
+    ghcjs810 = callPackage ../development/haskell-modules rec {
+      buildHaskellPackages = ghc.bootPkgs;
+      ghc = bh.compiler.ghcjs810;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+      packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
+    };
+
+    # The integer-simple attribute set contains package sets for all the GHC compilers
+    # using integer-simple instead of integer-gmp.
+    integer-simple =
+      let
+        integerSimpleGhcNames = pkgs.lib.filter
+          (name: builtins.elem name integerSimpleIncludes)
+          (pkgs.lib.attrNames packages);
+      in
+      pkgs.lib.genAttrs integerSimpleGhcNames
+        (name:
+          packages.${name}.override (oldAttrs: {
+            ghc = bh.compiler.integer-simple.${name};
+            buildHaskellPackages = bh.packages.integer-simple.${name};
+            overrides =
+              pkgs.lib.composeExtensions
+                (oldAttrs.overrides or (_: _: {}))
+                (_: _: { integer-simple = null; });
+          })
+        );
+
+    native-bignum =
+      let
+        nativeBignumGhcNames = pkgs.lib.filter
+          (name: builtins.elem name nativeBignumIncludes)
+          (pkgs.lib.attrNames compiler);
+      in
+      pkgs.lib.genAttrs nativeBignumGhcNames
+        (name:
+          packages.${name}.override {
+            ghc = bh.compiler.native-bignum.${name};
+            buildHaskellPackages = bh.packages.native-bignum.${name};
+          }
+        );
+  };
+}
diff --git a/nixpkgs/pkgs/top-level/haxe-packages.nix b/nixpkgs/pkgs/top-level/haxe-packages.nix
new file mode 100644
index 000000000000..e3221412aaa1
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/haxe-packages.nix
@@ -0,0 +1,146 @@
+{ stdenv, lib, fetchzip, fetchFromGitHub, haxe, neko, jdk, mono }:
+
+let
+  withCommas = lib.replaceStrings [ "." ] [ "," ];
+
+  # simulate "haxelib dev $libname ."
+  simulateHaxelibDev = libname: ''
+    devrepo=$(mktemp -d)
+    mkdir -p "$devrepo/${withCommas libname}"
+    echo $(pwd) > "$devrepo/${withCommas libname}/.dev"
+    export HAXELIB_PATH="$HAXELIB_PATH:$devrepo"
+  '';
+
+  installLibHaxe = { libname, version, files ? "*" }: ''
+    mkdir -p "$out/lib/haxe/${withCommas libname}/${withCommas version}"
+    echo -n "${version}" > $out/lib/haxe/${withCommas libname}/.current
+    cp -dpR ${files} "$out/lib/haxe/${withCommas libname}/${withCommas version}/"
+  '';
+
+  buildHaxeLib =
+    { libname
+    , version
+    , sha256
+    , meta
+    , ...
+    } @ attrs:
+    stdenv.mkDerivation (attrs // {
+      name = "${libname}-${version}";
+
+      buildInputs = (attrs.buildInputs or [ ]) ++ [ haxe neko ]; # for setup-hook.sh to work
+      src = fetchzip rec {
+        name = "${libname}-${version}";
+        url = "http://lib.haxe.org/files/3.0/${withCommas name}.zip";
+        inherit sha256;
+        stripRoot = false;
+      };
+
+      installPhase = attrs.installPhase or ''
+        runHook preInstall
+        (
+          if [ $(ls $src | wc -l) == 1 ]; then
+            cd $src/* || cd $src
+          else
+            cd $src
+          fi
+          ${installLibHaxe { inherit libname version; }}
+        )
+        runHook postInstall
+      '';
+
+      meta = {
+        homepage = "http://lib.haxe.org/p/${libname}";
+        license = lib.licenses.bsd2;
+        platforms = lib.platforms.all;
+        description = throw "please write meta.description";
+      } // attrs.meta;
+    });
+in
+{
+  format = buildHaxeLib {
+    libname = "format";
+    version = "3.5.0";
+    sha256 = "sha256-5vZ7b+P74uGx0Gb7X/+jbsx5048dO/jv5nqCDtw5y/A=";
+    meta.description = "A Haxe Library for supporting different file formats";
+  };
+
+  heaps = buildHaxeLib {
+    libname = "heaps";
+    version = "1.9.1";
+    sha256 = "sha256-i5EIKnph80eEEHvGXDXhIL4t4+RW7OcUV5zb2f3ItlI=";
+    meta.description = "The GPU Game Framework";
+  };
+
+  hlopenal = buildHaxeLib {
+    libname = "hlopenal";
+    version = "1.5.0";
+    sha256 = "sha256-mJWFGBJPPAhVwsB2HzMfk4szSyjMT4aw543YhVqIan4=";
+    meta.description = "OpenAL support for Haxe/HL";
+  };
+
+  hlsdl = buildHaxeLib {
+    libname = "hlsdl";
+    version = "1.10.0";
+    sha256 = "sha256-kmC2EMDy1mv0jFjwDj+m0CUvKal3V7uIGnMxJBRYGms=";
+    meta.description = "SDL/GL support for Haxe/HL";
+  };
+
+  hxcpp = buildHaxeLib rec {
+    libname = "hxcpp";
+    version = "4.1.15";
+    sha256 = "1ybxcvwi4655563fjjgy6xv5c78grjxzadmi3l1ghds48k1rh50p";
+    postFixup = ''
+      for f in $out/lib/haxe/${withCommas libname}/${withCommas version}/{,project/libs/nekoapi/}bin/Linux{,64}/*; do
+        chmod +w "$f"
+        patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker)   "$f" || true
+        patchelf --set-rpath ${ lib.makeLibraryPath [ stdenv.cc.cc ] }  "$f" || true
+      done
+    '';
+    meta.description = "Runtime support library for the Haxe C++ backend";
+  };
+
+  hxjava = buildHaxeLib {
+    libname = "hxjava";
+    version = "3.2.0";
+    sha256 = "1vgd7qvsdxlscl3wmrrfi5ipldmr4xlsiwnj46jz7n6izff5261z";
+    meta.description = "Support library for the Java backend of the Haxe compiler";
+    propagatedBuildInputs = [ jdk ];
+  };
+
+  hxcs = buildHaxeLib {
+    libname = "hxcs";
+    version = "3.4.0";
+    sha256 = "0f5vgp2kqnpsbbkn2wdxmjf7xkl0qhk9lgl9kb8d5wdy89nac6q6";
+    meta.description = "Support library for the C# backend of the Haxe compiler";
+    propagatedBuildInputs = [ mono ];
+  };
+
+  hxnodejs_4 = buildHaxeLib {
+    libname = "hxnodejs";
+    version = "4.0.9";
+    sha256 = "0b7ck48nsxs88sy4fhhr0x1bc8h2ja732zzgdaqzxnh3nir0bajm";
+    meta.description = "Extern definitions for node.js 4.x";
+  };
+
+  hxnodejs_6 =
+    let
+      libname = "hxnodejs";
+      version = "6.9.0";
+    in
+    stdenv.mkDerivation {
+      name = "${libname}-${version}";
+      src = fetchFromGitHub {
+        owner = "HaxeFoundation";
+        repo = "hxnodejs";
+        rev = "cf80c6a";
+        sha256 = "0mdiacr5b2m8jrlgyd2d3vp1fha69lcfb67x4ix7l7zfi8g460gs";
+      };
+      installPhase = installLibHaxe { inherit libname version; };
+      meta = {
+        homepage = "http://lib.haxe.org/p/${libname}";
+        license = lib.licenses.bsd2;
+        platforms = lib.platforms.all;
+        description = "Extern definitions for node.js 6.9";
+      };
+    };
+}
diff --git a/nixpkgs/pkgs/top-level/impure.nix b/nixpkgs/pkgs/top-level/impure.nix
new file mode 100644
index 000000000000..0fea7840a11e
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/impure.nix
@@ -0,0 +1,89 @@
+/* Impure default args for `pkgs/top-level/default.nix`. See that file
+   for the meaning of each argument. */
+
+
+let
+
+  homeDir = builtins.getEnv "HOME";
+
+  # Return ‘x’ if it evaluates, or ‘def’ if it throws an exception.
+  try = x: def: let res = builtins.tryEval x; in if res.success then res.value else def;
+
+in
+
+{ # We put legacy `system` into `localSystem`, if `localSystem` was not passed.
+  # If neither is passed, assume we are building packages on the current
+  # (build, in GNU Autotools parlance) platform.
+  localSystem ? { system = args.system or builtins.currentSystem; }
+
+# These are needed only because nix's `--arg` command-line logic doesn't work
+# with unnamed parameters allowed by ...
+, system ? localSystem.system
+, crossSystem ? localSystem
+
+, # Fallback: The contents of the configuration file found at $NIXPKGS_CONFIG or
+  # $HOME/.config/nixpkgs/config.nix.
+  config ? let
+      configFile = builtins.getEnv "NIXPKGS_CONFIG";
+      configFile2 = homeDir + "/.config/nixpkgs/config.nix";
+      configFile3 = homeDir + "/.nixpkgs/config.nix"; # obsolete
+    in
+      if configFile != "" && builtins.pathExists configFile then import configFile
+      else if homeDir != "" && builtins.pathExists configFile2 then import configFile2
+      else if homeDir != "" && builtins.pathExists configFile3 then import configFile3
+      else {}
+
+, # Overlays are used to extend Nixpkgs collection with additional
+  # collections of packages.  These collection of packages are part of the
+  # fix-point made by Nixpkgs.
+  overlays ? let
+      isDir = path: builtins.pathExists (path + "/.");
+      pathOverlays = try (toString <nixpkgs-overlays>) "";
+      homeOverlaysFile = homeDir + "/.config/nixpkgs/overlays.nix";
+      homeOverlaysDir = homeDir + "/.config/nixpkgs/overlays";
+      overlays = path:
+        # check if the path is a directory or a file
+        if isDir path then
+          # it's a directory, so the set of overlays from the directory, ordered lexicographically
+          let content = builtins.readDir path; in
+          map (n: import (path + ("/" + n)))
+            (builtins.filter
+              (n:
+                (builtins.match ".*\\.nix" n != null &&
+                 # ignore Emacs lock files (.#foo.nix)
+                 builtins.match "\\.#.*" n == null) ||
+                builtins.pathExists (path + ("/" + n + "/default.nix")))
+              (builtins.attrNames content))
+        else
+          # it's a file, so the result is the contents of the file itself
+          import path;
+    in (if builtins.pathExists ../../../overlays then overlays ../../../overlays else []) ++ (
+      if pathOverlays != "" && builtins.pathExists pathOverlays then overlays pathOverlays
+      else if builtins.pathExists homeOverlaysFile && builtins.pathExists homeOverlaysDir then
+        throw ''
+          Nixpkgs overlays can be specified with ${homeOverlaysFile} or ${homeOverlaysDir}, but not both.
+          Please remove one of them and try again.
+        ''
+      else if builtins.pathExists homeOverlaysFile then
+        if isDir homeOverlaysFile then
+          throw (homeOverlaysFile + " should be a file")
+        else overlays homeOverlaysFile
+      else if builtins.pathExists homeOverlaysDir then
+        if !(isDir homeOverlaysDir) then
+          throw (homeOverlaysDir + " should be a directory")
+        else overlays homeOverlaysDir
+      else [])
+
+, crossOverlays ? []
+
+, ...
+} @ args:
+
+# If `localSystem` was explicitly passed, legacy `system` should
+# not be passed, and vice-versa.
+assert args ? localSystem -> !(args ? system);
+assert args ? system -> !(args ? localSystem);
+
+import ./. (builtins.removeAttrs args [ "system" ] // {
+  inherit config overlays localSystem;
+})
diff --git a/nixpkgs/pkgs/top-level/java-packages.nix b/nixpkgs/pkgs/top-level/java-packages.nix
new file mode 100644
index 000000000000..f2c725bfb4c2
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/java-packages.nix
@@ -0,0 +1,244 @@
+{ pkgs }:
+
+with pkgs;
+
+let
+  openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
+  openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
+  openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17.nix { };
+  openjfx19 = callPackage ../development/compilers/openjdk/openjfx/19.nix { };
+  openjfx20 = callPackage ../development/compilers/openjdk/openjfx/20.nix { };
+  openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21.nix { };
+
+  mavenfod = pkgs.maven.buildMavenPackage;
+
+in {
+  inherit mavenfod openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21;
+
+  compiler = let
+
+    gnomeArgs = {
+      inherit (gnome2) GConf gnome_vfs;
+    };
+
+    bootstrapArgs = gnomeArgs // {
+      openjfx = openjfx11; /* need this despite next line :-( */
+      enableJavaFX = false;
+      headless = true;
+    };
+
+    mkAdoptopenjdk = path-linux: path-darwin: let
+      package-linux  = import path-linux { inherit stdenv lib; };
+      package-darwin = import path-darwin { inherit lib; };
+      package = if stdenv.isLinux
+        then package-linux
+        else package-darwin;
+    in {
+      inherit package-linux package-darwin;
+      __attrsFailEvaluation = true;
+
+      jdk-hotspot = callPackage package.jdk-hotspot {};
+      jre-hotspot = callPackage package.jre-hotspot {};
+    } // lib.optionalAttrs (package?jdk-openj9) {
+      jdk-openj9  = callPackage package.jdk-openj9  {};
+    } // lib.optionalAttrs (package?jre-openj9) {
+      jre-openj9  = callPackage package.jre-openj9  {};
+    };
+
+    mkBootstrap = adoptopenjdk: path: args:
+      /* adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping */
+      if   !stdenv.hostPlatform.isi686
+      then
+        # only linux has the gtkSupport option
+        if stdenv.isLinux
+        then adoptopenjdk.jdk-hotspot.override { gtkSupport = false; }
+        else adoptopenjdk.jdk-hotspot
+      else callPackage path args;
+
+    mkOpenjdk = path-linux: path-darwin: args:
+      if stdenv.isLinux
+      then mkOpenjdkLinuxOnly path-linux args
+      else let
+        openjdk = callPackage path-darwin {};
+      in openjdk // { headless = openjdk; };
+
+    mkOpenjdkLinuxOnly = path-linux: args: let
+      openjdk = callPackage path-linux  (gnomeArgs // args);
+    in openjdk // {
+      headless = openjdk.override { headless = true; };
+    };
+
+  in rec {
+    adoptopenjdk-8 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk8-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk8-darwin.nix;
+
+    adoptopenjdk-11 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk11-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk11-darwin.nix;
+
+    adoptopenjdk-13 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk13-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk13-darwin.nix;
+
+    adoptopenjdk-14 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk14-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk14-darwin.nix;
+
+    adoptopenjdk-15 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk15-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk15-darwin.nix;
+
+    adoptopenjdk-16 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk16-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk16-darwin.nix;
+
+    adoptopenjdk-17 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk17-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk17-darwin.nix;
+
+    corretto11 = callPackage ../development/compilers/corretto/11.nix { };
+    corretto17 = callPackage ../development/compilers/corretto/17.nix { };
+    corretto19 = callPackage ../development/compilers/corretto/19.nix { };
+
+    openjdk8-bootstrap = mkBootstrap adoptopenjdk-8
+      ../development/compilers/openjdk/bootstrap.nix
+      { version = "8"; };
+
+    openjdk11-bootstrap = mkBootstrap adoptopenjdk-11
+      ../development/compilers/openjdk/bootstrap.nix
+      { version = "10"; };
+
+    openjdk13-bootstrap = mkBootstrap adoptopenjdk-13
+      ../development/compilers/openjdk/12.nix
+      (bootstrapArgs // {
+        inherit openjdk11-bootstrap;
+        /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
+        stdenv = gcc8Stdenv;
+      });
+
+    openjdk14-bootstrap = mkBootstrap adoptopenjdk-14
+      ../development/compilers/openjdk/13.nix
+      (bootstrapArgs // {
+        inherit openjdk13-bootstrap;
+      });
+
+    openjdk15-bootstrap = mkBootstrap adoptopenjdk-15
+      ../development/compilers/openjdk/14.nix
+      (bootstrapArgs // {
+        inherit openjdk14-bootstrap;
+      });
+
+    openjdk16-bootstrap = mkBootstrap adoptopenjdk-16
+      ../development/compilers/openjdk/15.nix
+      (bootstrapArgs // {
+        inherit openjdk15-bootstrap;
+      });
+
+    openjdk17-bootstrap = mkBootstrap adoptopenjdk-17
+      ../development/compilers/openjdk/16.nix
+      (bootstrapArgs // {
+        inherit openjdk16-bootstrap;
+      });
+
+    openjdk18-bootstrap = mkBootstrap adoptopenjdk-17
+      ../development/compilers/openjdk/17.nix
+      (bootstrapArgs // {
+        inherit openjdk17-bootstrap;
+      });
+
+    openjdk8 = mkOpenjdk
+      ../development/compilers/openjdk/8.nix
+      ../development/compilers/zulu/8.nix
+      { };
+
+    openjdk11 = mkOpenjdk
+      ../development/compilers/openjdk/11.nix
+      ../development/compilers/zulu/11.nix
+      { openjfx = openjfx11; };
+
+    openjdk12 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/12.nix {
+        /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
+        stdenv = gcc8Stdenv;
+        openjfx = openjfx11;
+    };
+
+    openjdk13 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/13.nix {
+      inherit openjdk13-bootstrap;
+      openjfx = openjfx11;
+    };
+
+    openjdk14 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/14.nix {
+      inherit openjdk14-bootstrap;
+      openjfx = openjfx11;
+    };
+
+    openjdk15 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/15.nix {
+      inherit openjdk15-bootstrap;
+      openjfx = openjfx15;
+    };
+
+    openjdk16 = mkOpenjdk
+      ../development/compilers/openjdk/16.nix
+      ../development/compilers/zulu/16.nix
+      {
+        inherit openjdk16-bootstrap;
+        openjfx = openjfx15;
+      };
+
+    openjdk17 = mkOpenjdk
+      ../development/compilers/openjdk/17.nix
+      ../development/compilers/zulu/17.nix
+      {
+        inherit openjdk17-bootstrap;
+        openjfx = openjfx17;
+      };
+
+    openjdk18 = mkOpenjdk
+      ../development/compilers/openjdk/18.nix
+      ../development/compilers/zulu/18.nix
+      {
+        inherit openjdk18-bootstrap;
+        openjfx = openjfx17;
+      };
+
+    openjdk19 = mkOpenjdk
+      ../development/compilers/openjdk/19.nix
+      ../development/compilers/zulu/19.nix
+      {
+        openjdk19-bootstrap = temurin-bin.jdk-19;
+        openjfx = openjfx19;
+      };
+
+    openjdk20 = mkOpenjdk
+      ../development/compilers/openjdk/20.nix
+      ../development/compilers/zulu/20.nix
+      {
+        openjdk20-bootstrap = temurin-bin.jdk-20;
+        openjfx = openjfx20;
+      };
+
+    openjdk21 = mkOpenjdk
+      ../development/compilers/openjdk/21.nix
+      ../development/compilers/zulu/21.nix
+      {
+        openjdk21-bootstrap = temurin-bin.jdk-21;
+        openjfx = openjfx21;
+      };
+
+    temurin-bin = recurseIntoAttrs (callPackage (
+      if stdenv.isLinux
+      then ../development/compilers/temurin-bin/jdk-linux.nix
+      else ../development/compilers/temurin-bin/jdk-darwin.nix
+    ) {});
+
+    semeru-bin = recurseIntoAttrs (callPackage (
+      if stdenv.isLinux
+      then ../development/compilers/semeru-bin/jdk-linux.nix
+      else ../development/compilers/semeru-bin/jdk-darwin.nix
+    ) {});
+  };
+
+  inherit (pkgs.darwin.apple_sdk_11_0.callPackage ../development/java-modules/jogl { })
+    jogl_2_4_0;
+}
diff --git a/nixpkgs/pkgs/top-level/kodi-packages.nix b/nixpkgs/pkgs/top-level/kodi-packages.nix
new file mode 100644
index 000000000000..4fa6c3064558
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/kodi-packages.nix
@@ -0,0 +1,196 @@
+{ config, lib, newScope, kodi, libretro }:
+
+with lib;
+
+let
+  inherit (libretro) fuse genesis-plus-gx mgba nestopia snes9x twenty-fortyeight;
+in
+
+let self = rec {
+
+  addonDir = "/share/kodi/addons";
+  rel = "Nexus";
+
+  callPackage = newScope self;
+
+  inherit kodi;
+
+  # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
+  toKodiAddon = drv: drv.overrideAttrs (oldAttrs: {
+    # Use passthru in order to prevent rebuilds when possible.
+    passthru = (oldAttrs.passthru or {}) // {
+      kodiAddonFor = kodi;
+      requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
+    };
+  });
+
+  # Check whether a derivation provides a Kodi addon.
+  hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
+
+  # Get list of required Kodi addons given a list of derivations.
+  requiredKodiAddons = drvs:
+    let
+      modules = filter hasKodiAddon drvs;
+    in
+      unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
+
+  # package update scripts
+
+  addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
+
+  # package builders
+
+  buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
+
+  buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
+
+  # regular packages
+
+  kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
+
+  # addon packages
+
+  a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
+
+  arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { };
+
+  controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { };
+
+  iagl = callPackage ../applications/video/kodi/addons/iagl { };
+
+  invidious = callPackage ../applications/video/kodi/addons/invidious { };
+
+  libretro = callPackage ../applications/video/kodi/addons/libretro { };
+
+  libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; };
+
+  libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; };
+
+  libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; };
+
+  libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
+
+  libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; };
+
+  libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
+
+  jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
+
+  joystick = callPackage ../applications/video/kodi/addons/joystick { };
+
+  keymap = callPackage ../applications/video/kodi/addons/keymap { };
+
+  netflix = callPackage ../applications/video/kodi/addons/netflix { };
+
+  orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { };
+
+  radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { };
+
+  svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
+
+  steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
+
+  steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
+
+  steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
+
+  somafm = callPackage ../applications/video/kodi/addons/somafm { };
+
+  pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
+
+  pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
+
+  pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
+
+  pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
+
+  osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
+
+  vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
+
+  vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { };
+
+  vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
+
+  visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { };
+
+  visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { };
+
+  visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { };
+
+  visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { };
+
+  visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { };
+
+  visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { };
+
+  visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { };
+
+  visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { };
+
+  visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { };
+
+  youtube = callPackage ../applications/video/kodi/addons/youtube { };
+
+  # addon packages (dependencies)
+
+  archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
+
+  certifi = callPackage ../applications/video/kodi/addons/certifi { };
+
+  chardet = callPackage ../applications/video/kodi/addons/chardet { };
+
+  dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
+
+  defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
+
+  future = callPackage ../applications/video/kodi/addons/future { };
+
+  idna = callPackage ../applications/video/kodi/addons/idna { };
+
+  infotagger = callPackage ../applications/video/kodi/addons/infotagger { };
+
+  inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
+
+  inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { };
+
+  inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
+
+  inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
+
+  kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
+
+  myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
+
+  requests = callPackage ../applications/video/kodi/addons/requests { };
+
+  requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
+
+  routing = callPackage ../applications/video/kodi/addons/routing { };
+
+  sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { };
+
+  signals = callPackage ../applications/video/kodi/addons/signals { };
+
+  simplejson = callPackage ../applications/video/kodi/addons/simplejson { };
+
+  six = callPackage ../applications/video/kodi/addons/six { };
+
+  urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
+
+  websocket = callPackage ../applications/video/kodi/addons/websocket { };
+
+  xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { };
+
+  typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { };
+
+  arrow = callPackage ../applications/video/kodi/addons/arrow { };
+
+  trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { };
+
+  trakt = callPackage ../applications/video/kodi/addons/trakt { };
+}; in self // lib.optionalAttrs config.allowAliases {
+  # deprecated or renamed packages
+
+  controllers = throw "kodi.packages.controllers has been replaced with kodi.packages.controller-topology-project - a package which contains a large number of controller profiles." { };
+}
diff --git a/nixpkgs/pkgs/top-level/linux-kernels.nix b/nixpkgs/pkgs/top-level/linux-kernels.nix
new file mode 100644
index 000000000000..41177f9d039b
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/linux-kernels.nix
@@ -0,0 +1,703 @@
+{ pkgs
+, linuxKernel
+, config
+, buildPackages
+, callPackage
+, makeOverridable
+, recurseIntoAttrs
+, dontRecurseIntoAttrs
+, stdenv
+, stdenvNoCC
+, newScope
+, lib
+, fetchurl
+, gcc10Stdenv
+}:
+
+# When adding a kernel:
+  # - Update packageAliases.linux_latest to the latest version
+  # - Update the rev in ../os-specific/linux/kernel/linux-libre.nix to the latest one.
+  # - Update linux_latest_hardened when the patches become available
+
+with linuxKernel;
+
+let
+  deblobKernel = kernel: callPackage ../os-specific/linux/kernel/linux-libre.nix {
+    linux = kernel;
+  };
+
+  # Hardened Linux
+  hardenedKernelFor = kernel': overrides:
+    let
+      kernel = kernel'.override overrides;
+      version = kernelPatches.hardened.${kernel.meta.branch}.version;
+      major = lib.versions.major version;
+      sha256 = kernelPatches.hardened.${kernel.meta.branch}.sha256;
+      modDirVersion' = builtins.replaceStrings [ kernel.version ] [ version ] kernel.modDirVersion;
+    in kernel.override {
+      structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix {
+        inherit stdenv lib version;
+      };
+      argsOverride = {
+        inherit version;
+        modDirVersion = modDirVersion' + kernelPatches.hardened.${kernel.meta.branch}.extra;
+        src = fetchurl {
+          url = "mirror://kernel/linux/kernel/v${major}.x/linux-${version}.tar.xz";
+          inherit sha256;
+        };
+        extraMeta = {
+          broken = kernel.meta.broken;
+        };
+      };
+      kernelPatches = kernel.kernelPatches ++ [
+        kernelPatches.hardened.${kernel.meta.branch}
+      ];
+      isHardened = true;
+  };
+in {
+  kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
+
+  kernels = recurseIntoAttrs (lib.makeExtensible (self: with self;
+    let callPackage = newScope self; in {
+
+    # NOTE: PLEASE DO NOT ADD NEW VENDOR KERNELS TO NIXPKGS.
+    # New vendor kernels should go to nixos-hardware instead.
+    # e.g. https://github.com/NixOS/nixos-hardware/tree/master/microsoft/surface/kernel
+
+    linux_rpi1 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
+      kernelPatches = with kernelPatches; [
+        bridge_stp_helper
+        request_key_helper
+      ];
+      rpiVersion = 1;
+    };
+
+    linux_rpi2 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
+      kernelPatches = with kernelPatches; [
+        bridge_stp_helper
+        request_key_helper
+      ];
+      rpiVersion = 2;
+    };
+
+    linux_rpi3 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
+      kernelPatches = with kernelPatches; [
+        bridge_stp_helper
+        request_key_helper
+      ];
+      rpiVersion = 3;
+    };
+
+    linux_rpi4 = callPackage ../os-specific/linux/kernel/linux-rpi.nix {
+      kernelPatches = with kernelPatches; [
+        bridge_stp_helper
+        request_key_helper
+      ];
+      rpiVersion = 4;
+    };
+
+    linux_4_19 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "4.19";
+      kernelPatches =
+        [ kernelPatches.bridge_stp_helper
+          kernelPatches.request_key_helper
+          kernelPatches.modinst_arg_list_too_long
+        ];
+    };
+
+    linux_5_4 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "5.4";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.rtl8761b_support
+      ];
+    };
+
+    linux_rt_5_4 = callPackage ../os-specific/linux/kernel/linux-rt-5.4.nix {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_5_10 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "5.10";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_rt_5_10 = callPackage ../os-specific/linux/kernel/linux-rt-5.10.nix {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.export-rt-sched-migrate
+      ];
+    };
+
+    linux_5_15 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "5.15";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_rt_5_15 = callPackage ../os-specific/linux/kernel/linux-rt-5.15.nix {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.export-rt-sched-migrate
+      ];
+    };
+
+    linux_6_1 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "6.1";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_rt_6_1 = callPackage ../os-specific/linux/kernel/linux-rt-6.1.nix {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.export-rt-sched-migrate
+      ];
+    };
+
+    linux_6_5 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "6.5";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_6_6 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "6.6";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_testing = let
+      testing = callPackage ../os-specific/linux/kernel/mainline.nix {
+        # A special branch that tracks the kernel under the release process
+        # i.e. which has at least a public rc1 and is not released yet.
+        branch = "testing";
+        kernelPatches = [
+          kernelPatches.bridge_stp_helper
+          kernelPatches.request_key_helper
+        ];
+      };
+      latest = packageAliases.linux_latest.kernel;
+    in if latest.kernelAtLeast testing.baseVersion
+       then latest
+       else testing;
+
+    # FIXME: Remove after 23.11 is released
+    linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix {
+      # Pinned on the last version which Kent's commits can be cleany rebased up.
+      kernel = linux_6_5;
+      kernelPatches = linux_6_5.kernelPatches;
+   };
+
+    # Using zenKernels like this due lqx&zen came from one source, but may have different base kernel version
+    # https://github.com/NixOS/nixpkgs/pull/161773#discussion_r820134708
+    zenKernels = callPackage ../os-specific/linux/kernel/zen-kernels.nix;
+
+    linux_zen = (zenKernels {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    }).zen;
+
+    linux_lqx = (zenKernels {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    }).lqx;
+
+    # This contains the variants of the XanMod kernel
+    xanmodKernels = callPackage ../os-specific/linux/kernel/xanmod-kernels.nix {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+      ];
+    };
+
+    linux_xanmod = xanmodKernels.lts;
+    linux_xanmod_stable = xanmodKernels.main;
+    linux_xanmod_latest = xanmodKernels.main;
+
+    linux_libre = deblobKernel packageAliases.linux_default.kernel;
+
+    linux_latest_libre = deblobKernel packageAliases.linux_latest.kernel;
+
+    linux_hardened = hardenedKernelFor packageAliases.linux_default.kernel { };
+
+    linux_4_19_hardened = hardenedKernelFor kernels.linux_4_19 {
+      stdenv = gcc10Stdenv;
+      buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
+    };
+    linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 {
+      stdenv = gcc10Stdenv;
+      buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
+    };
+    linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
+    linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
+    linux_6_1_hardened = hardenedKernelFor kernels.linux_6_1 { };
+    linux_6_5_hardened = hardenedKernelFor kernels.linux_6_5 { };
+    linux_6_6_hardened = hardenedKernelFor kernels.linux_6_6 { };
+
+  } // lib.optionalAttrs config.allowAliases {
+    linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11";
+    linux_4_14 = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
+    linux_5_18 = throw "linux 5.18 was removed because it has reached its end of life upstream";
+    linux_5_19 = throw "linux 5.19 was removed because it has reached its end of life upstream";
+    linux_6_0 = throw "linux 6.0 was removed because it has reached its end of life upstream";
+    linux_6_2 = throw "linux 6.2 was removed because it has reached its end of life upstream";
+    linux_6_3 = throw "linux 6.3 was removed because it has reached its end of life upstream";
+    linux_6_4 = throw "linux 6.4 was removed because it has reached its end of life upstream";
+
+    linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
+
+    linux_5_18_hardened = throw "linux 5.18 was removed because it has reached its end of life upstream";
+    linux_5_19_hardened = throw "linux 5.19 was removed because it has reached its end of life upstream";
+    linux_6_0_hardened = throw "linux 6.0 was removed because it has reached its end of life upstream";
+  }));
+  /*  Linux kernel modules are inherently tied to a specific kernel.  So
+    rather than provide specific instances of those packages for a
+    specific kernel, we have a function that builds those packages
+    for a specific kernel.  This function can then be called for
+    whatever kernel you're using. */
+
+  packagesFor = kernel_: lib.makeExtensible (self: with self;
+    let callPackage = newScope self; in {
+    inherit callPackage;
+    kernel = kernel_;
+    inherit (kernel) stdenv; # in particular, use the same compiler by default
+
+    # to help determine module compatibility
+    inherit (kernel) isZen isHardened isLibre;
+    inherit (kernel) kernelOlder kernelAtLeast;
+    # Obsolete aliases (these packages do not depend on the kernel).
+    inherit (pkgs) odp-dpdk pktgen; # added 2018-05
+    inherit (pkgs) bcc bpftrace; # added 2021-12
+    inherit (pkgs) oci-seccomp-bpf-hook; # added 2022-11
+
+    acpi_call = callPackage ../os-specific/linux/acpi-call {};
+
+    akvcam = callPackage ../os-specific/linux/akvcam { };
+
+    amdgpu-pro = callPackage ../os-specific/linux/amdgpu-pro {
+      libffi = pkgs.libffi.overrideAttrs (orig: rec {
+        version = "3.3";
+        src = fetchurl {
+          url = "https://github.com/libffi/libffi/releases/download/v${version}/${orig.pname}-${version}.tar.gz";
+          sha256 = "0mi0cpf8aa40ljjmzxb7im6dbj45bb0kllcd09xgmp834y9agyvj";
+        };
+      });
+    };
+
+    apfs = callPackage ../os-specific/linux/apfs { };
+
+    ax99100 = callPackage ../os-specific/linux/ax99100 {};
+
+    batman_adv = callPackage ../os-specific/linux/batman-adv {};
+
+    bbswitch = callPackage ../os-specific/linux/bbswitch {};
+
+    ch9344 = callPackage ../os-specific/linux/ch9344 { };
+
+    chipsec = callPackage ../tools/security/chipsec {
+      inherit kernel;
+      withDriver = true;
+    };
+
+    cryptodev = callPackage ../os-specific/linux/cryptodev { };
+
+    cpupower = callPackage ../os-specific/linux/cpupower { };
+
+    ddcci-driver = callPackage ../os-specific/linux/ddcci { };
+
+    dddvb = callPackage ../os-specific/linux/dddvb { };
+
+    decklink = callPackage ../os-specific/linux/decklink { };
+
+    digimend = callPackage ../os-specific/linux/digimend { };
+
+    dpdk-kmods = callPackage ../os-specific/linux/dpdk-kmods { };
+
+    dpdk = pkgs.dpdk.override { inherit kernel; };
+
+    exfat-nofuse = if lib.versionOlder kernel.version "5.8" then callPackage ../os-specific/linux/exfat { } else null;
+
+    evdi = callPackage ../os-specific/linux/evdi { };
+
+    fanout = callPackage ../os-specific/linux/fanout { };
+
+    framework-laptop-kmod = callPackage ../os-specific/linux/framework-laptop-kmod { };
+
+    fwts-efi-runtime = callPackage ../os-specific/linux/fwts/module.nix { };
+
+    gasket = callPackage ../os-specific/linux/gasket { };
+
+    gcadapter-oc-kmod = callPackage ../os-specific/linux/gcadapter-oc-kmod { };
+
+    hyperv-daemons = callPackage ../os-specific/linux/hyperv-daemons { };
+
+    e1000e = if lib.versionOlder kernel.version "4.10" then  callPackage ../os-specific/linux/e1000e {} else null;
+
+    intel-speed-select = if lib.versionAtLeast kernel.version "5.3" then callPackage ../os-specific/linux/intel-speed-select { } else null;
+
+    ipu6-drivers = callPackage ../os-specific/linux/ipu6-drivers {};
+
+    ivsc-driver = callPackage ../os-specific/linux/ivsc-driver {};
+
+    ixgbevf = callPackage ../os-specific/linux/ixgbevf {};
+
+    it87 = callPackage ../os-specific/linux/it87 {};
+
+    asus-ec-sensors = callPackage ../os-specific/linux/asus-ec-sensors {};
+
+    asus-wmi-sensors = callPackage ../os-specific/linux/asus-wmi-sensors {};
+
+    ena = callPackage ../os-specific/linux/ena {};
+
+    kvdo = callPackage ../os-specific/linux/kvdo {};
+
+    lenovo-legion-module = callPackage ../os-specific/linux/lenovo-legion { };
+
+    linux-gpib = callPackage ../applications/science/electronics/linux-gpib/kernel.nix { };
+
+    liquidtux = callPackage ../os-specific/linux/liquidtux {};
+
+    lkrg = callPackage ../os-specific/linux/lkrg {};
+
+    v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
+
+    lttng-modules = callPackage ../os-specific/linux/lttng-modules { };
+
+    mstflint_access = callPackage ../os-specific/linux/mstflint_access { };
+
+    broadcom_sta = callPackage ../os-specific/linux/broadcom-sta { };
+
+    tbs = callPackage ../os-specific/linux/tbs { };
+
+    mbp2018-bridge-drv = callPackage ../os-specific/linux/mbp-modules/mbp2018-bridge-drv { };
+
+    nct6687d = callPackage ../os-specific/linux/nct6687d { };
+
+    new-lg4ff = callPackage ../os-specific/linux/new-lg4ff { };
+
+    nvidiabl = callPackage ../os-specific/linux/nvidiabl { };
+
+    nvidiaPackages = dontRecurseIntoAttrs (lib.makeExtensible (_: callPackage ../os-specific/linux/nvidia-x11 { }))
+    // { __attrsFailEvaluation = true; };
+
+    nvidia_x11             = nvidiaPackages.stable;
+    nvidia_x11_beta        = nvidiaPackages.beta;
+    nvidia_x11_legacy340   = nvidiaPackages.legacy_340;
+    nvidia_x11_legacy390   = nvidiaPackages.legacy_390;
+    nvidia_x11_legacy470   = nvidiaPackages.legacy_470;
+    nvidia_x11_production  = nvidiaPackages.production;
+    nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta;
+    nvidia_dc              = nvidiaPackages.dc;
+    nvidia_dc_520          = nvidiaPackages.dc_520;
+
+    # this is not a replacement for nvidia_x11*
+    # only the opensource kernel driver exposed for hydra to build
+    nvidia_x11_beta_open         = nvidiaPackages.beta.open;
+    nvidia_x11_production_open   = nvidiaPackages.production.open;
+    nvidia_x11_stable_open       = nvidiaPackages.stable.open;
+    nvidia_x11_vulkan_beta_open  = nvidiaPackages.vulkan_beta.open;
+
+    openrazer = callPackage ../os-specific/linux/openrazer/driver.nix { };
+
+    ply = callPackage ../os-specific/linux/ply { };
+
+    r8125 = callPackage ../os-specific/linux/r8125 { };
+
+    r8168 = callPackage ../os-specific/linux/r8168 { };
+
+    rtl8188eus-aircrack = callPackage ../os-specific/linux/rtl8188eus-aircrack { };
+
+    rtl8192eu = callPackage ../os-specific/linux/rtl8192eu { };
+
+    rtl8189es = callPackage ../os-specific/linux/rtl8189es { };
+
+    rtl8189fs = callPackage ../os-specific/linux/rtl8189fs { };
+
+    rtl8723ds = callPackage ../os-specific/linux/rtl8723ds { };
+
+    rtl8812au = callPackage ../os-specific/linux/rtl8812au { };
+
+    rtl8814au = callPackage ../os-specific/linux/rtl8814au { };
+
+    rtl88xxau-aircrack = callPackage ../os-specific/linux/rtl88xxau-aircrack {};
+
+    rtl8821au = callPackage ../os-specific/linux/rtl8821au { };
+
+    rtl8821ce = callPackage ../os-specific/linux/rtl8821ce { };
+
+    rtl88x2bu = callPackage ../os-specific/linux/rtl88x2bu { };
+
+    rtl8821cu = callPackage ../os-specific/linux/rtl8821cu { };
+
+    rtw88 = callPackage ../os-specific/linux/rtw88 { };
+
+    rtw89 = if lib.versionOlder kernel.version "5.16" then callPackage ../os-specific/linux/rtw89 { } else null;
+
+    openafs_1_8 = callPackage ../servers/openafs/1.8/module.nix { };
+    # Current stable release; don't backport release updates!
+    openafs = openafs_1_8;
+
+    opensnitch-ebpf = if lib.versionAtLeast kernel.version "5.10" then callPackage ../os-specific/linux/opensnitch-ebpf { } else null;
+
+    facetimehd = callPackage ../os-specific/linux/facetimehd { };
+
+    tuxedo-keyboard = if lib.versionAtLeast kernel.version "4.14" then callPackage ../os-specific/linux/tuxedo-keyboard { } else null;
+
+    jool = callPackage ../os-specific/linux/jool { };
+
+    kvmfr = callPackage ../os-specific/linux/kvmfr { };
+
+    mba6x_bl = callPackage ../os-specific/linux/mba6x_bl { };
+
+    mwprocapture = callPackage ../os-specific/linux/mwprocapture { };
+
+    mxu11x0 = callPackage ../os-specific/linux/mxu11x0 { };
+
+    # compiles but has to be integrated into the kernel somehow
+    # Let's have it uncommented and finish it..
+    ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
+
+    netatop = callPackage ../os-specific/linux/netatop { };
+
+    perf = callPackage ../os-specific/linux/kernel/perf { };
+
+    phc-intel = if lib.versionAtLeast kernel.version "4.10" then callPackage ../os-specific/linux/phc-intel { } else null;
+
+    prl-tools = callPackage ../os-specific/linux/prl-tools { };
+
+    isgx = callPackage ../os-specific/linux/isgx { };
+
+    rr-zen_workaround = callPackage ../development/tools/analysis/rr/zen_workaround.nix { };
+
+    sysdig = callPackage ../os-specific/linux/sysdig {};
+
+    systemtap = callPackage ../development/tools/profiling/systemtap { };
+
+    system76 = callPackage ../os-specific/linux/system76 { };
+
+    system76-acpi = callPackage ../os-specific/linux/system76-acpi { };
+
+    system76-power = callPackage ../os-specific/linux/system76-power { };
+
+    system76-io = callPackage ../os-specific/linux/system76-io { };
+
+    system76-scheduler = callPackage ../os-specific/linux/system76-scheduler { };
+
+    tmon = callPackage ../os-specific/linux/tmon { };
+
+    tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
+
+    turbostat = callPackage ../os-specific/linux/turbostat { };
+
+    trelay = callPackage ../os-specific/linux/trelay { };
+
+    usbip = callPackage ../os-specific/linux/usbip { };
+
+    v86d = callPackage ../os-specific/linux/v86d { };
+
+    veikk-linux-driver = callPackage ../os-specific/linux/veikk-linux-driver { };
+    vendor-reset = callPackage ../os-specific/linux/vendor-reset { };
+
+    vhba = callPackage ../applications/emulators/cdemu/vhba.nix { };
+
+    virtio_vmmci  = callPackage ../os-specific/linux/virtio_vmmci { };
+
+    virtualbox = callPackage ../os-specific/linux/virtualbox {
+      virtualbox = pkgs.virtualboxHardened;
+    };
+
+    virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions {
+      virtualbox = pkgs.virtualboxHardened;
+    };
+
+    vm-tools = callPackage ../os-specific/linux/vm-tools { };
+
+    vmm_clock = callPackage ../os-specific/linux/vmm_clock { };
+
+    vmware = callPackage ../os-specific/linux/vmware { };
+
+    wireguard = if lib.versionOlder kernel.version "5.6" then callPackage ../os-specific/linux/wireguard { } else null;
+
+    x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
+
+    xone = if lib.versionAtLeast kernel.version "5.4" then callPackage ../os-specific/linux/xone { } else null;
+
+    xpadneo = callPackage ../os-specific/linux/xpadneo { };
+
+    ithc = callPackage ../os-specific/linux/ithc { };
+
+    zenpower = callPackage ../os-specific/linux/zenpower { };
+
+    zfs_2_1 = callPackage ../os-specific/linux/zfs/2_1.nix {
+      configFile = "kernel";
+      inherit pkgs kernel;
+    };
+    zfsStable = callPackage ../os-specific/linux/zfs/stable.nix {
+      configFile = "kernel";
+      inherit pkgs kernel;
+    };
+    zfsUnstable = callPackage ../os-specific/linux/zfs/unstable.nix {
+      configFile = "kernel";
+      inherit pkgs kernel;
+    };
+    zfs = zfsStable;
+
+    can-isotp = callPackage ../os-specific/linux/can-isotp { };
+
+    qc71_laptop = callPackage ../os-specific/linux/qc71_laptop { };
+
+    hid-ite8291r3 = callPackage ../os-specific/linux/hid-ite8291r3 { };
+
+    hid-tmff2 = callPackage ../os-specific/linux/hid-tmff2 { };
+
+  } // lib.optionalAttrs config.allowAliases {
+    ati_drivers_x11 = throw "ati drivers are no longer supported by any kernel >=4.1"; # added 2021-05-18;
+    hid-nintendo = throw "hid-nintendo was added in mainline kernel version 5.16"; # Added 2023-07-30
+    sch_cake = throw "sch_cake was added in mainline kernel version 4.19"; # Added 2023-06-14
+    rtl8723bs = throw "rtl8723bs was added in mainline kernel version 4.12"; # Added 2023-06-14
+    xmm7360-pci = throw "Support for the XMM7360 WWAN card was added to the iosm kmod in mainline kernel version 5.18";
+  });
+
+  hardenedPackagesFor = kernel: overrides: packagesFor (hardenedKernelFor kernel overrides);
+
+  vanillaPackages = {
+    # recurse to build modules for the kernels
+    linux_4_19 = recurseIntoAttrs (packagesFor kernels.linux_4_19);
+    linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4);
+    linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
+    linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
+    linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
+    linux_6_5 = recurseIntoAttrs (packagesFor kernels.linux_6_5);
+    linux_6_6 = recurseIntoAttrs (packagesFor kernels.linux_6_6);
+    __attrsFailEvaluation = true;
+  } // lib.optionalAttrs config.allowAliases {
+    linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
+    linux_4_14 = throw "linux 4.14 was removed because it will reach its end of life within 23.11"; # Added 2023-10-11
+    linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
+    linux_5_19 = throw "linux 5.19 was removed because it reached its end of life upstream"; # Added 2022-11-01
+    linux_6_0 = throw "linux 6.0 was removed because it reached its end of life upstream"; # Added 2023-01-20
+    linux_6_2 = throw "linux 6.2 was removed because it reached its end of life upstream"; # Added 2023-05-26
+    linux_6_3 = throw "linux 6.3 was removed because it reached its end of life upstream"; # Added 2023-07-22
+    linux_6_4 = throw "linux 6.4 was removed because it reached its end of life upstream"; # Added 2023-10-02
+  };
+
+  rtPackages = {
+     # realtime kernel packages
+     linux_rt_5_4 = packagesFor kernels.linux_rt_5_4;
+     linux_rt_5_10 = packagesFor kernels.linux_rt_5_10;
+     linux_rt_5_15 = packagesFor kernels.linux_rt_5_15;
+     linux_rt_6_1 = packagesFor kernels.linux_rt_6_1;
+     __attrsFailEvaluation = true;
+  };
+
+  rpiPackages = {
+    linux_rpi1 = packagesFor kernels.linux_rpi1;
+    linux_rpi2 = packagesFor kernels.linux_rpi2;
+    linux_rpi3 = packagesFor kernels.linux_rpi3;
+    linux_rpi4 = packagesFor kernels.linux_rpi4;
+     __attrsFailEvaluation = true;
+  };
+
+  packages = recurseIntoAttrs (vanillaPackages // rtPackages // rpiPackages // {
+
+    # Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds.
+    linux_testing = packagesFor kernels.linux_testing;
+    # FIXME: Remove after 23.11 is released
+    linux_testing_bcachefs = recurseIntoAttrs (packagesFor kernels.linux_testing_bcachefs);
+
+    linux_hardened = recurseIntoAttrs (packagesFor kernels.linux_hardened);
+
+    linux_4_19_hardened = recurseIntoAttrs (packagesFor kernels.linux_4_19_hardened);
+    linux_5_4_hardened = recurseIntoAttrs (packagesFor kernels.linux_5_4_hardened);
+    linux_5_10_hardened = recurseIntoAttrs (packagesFor kernels.linux_5_10_hardened);
+    linux_5_15_hardened = recurseIntoAttrs (packagesFor kernels.linux_5_15_hardened);
+    linux_6_1_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_1_hardened);
+    linux_6_5_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_5_hardened);
+    linux_6_6_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_6_hardened);
+
+    linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
+    linux_lqx = recurseIntoAttrs (packagesFor kernels.linux_lqx);
+    linux_xanmod = recurseIntoAttrs (packagesFor kernels.linux_xanmod);
+    linux_xanmod_stable = recurseIntoAttrs (packagesFor kernels.linux_xanmod_stable);
+    linux_xanmod_latest = recurseIntoAttrs (packagesFor kernels.linux_xanmod_latest);
+
+    linux_libre = recurseIntoAttrs (packagesFor kernels.linux_libre);
+
+    linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre);
+    __recurseIntoDerivationForReleaseJobs = true;
+  } // lib.optionalAttrs config.allowAliases {
+    linux_5_18_hardened = throw "linux 5.18 was removed because it has reached its end of life upstream";
+    linux_5_19_hardened = throw "linux 5.19 was removed because it has reached its end of life upstream";
+    linux_6_0_hardened = throw "linux 6.0 was removed because it has reached its end of life upstream";
+    linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
+  });
+
+  packageAliases = {
+    linux_default = packages.linux_6_1;
+    # Update this when adding the newest kernel major version!
+    linux_latest = packages.linux_6_6;
+    linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake";
+    linux_rt_default = packages.linux_rt_5_4;
+    linux_rt_latest = packages.linux_rt_6_1;
+  } // { __attrsFailEvaluation = true; };
+
+  manualConfig = callPackage ../os-specific/linux/kernel/manual-config.nix {};
+
+  customPackage = { version, src, modDirVersion ? lib.versions.pad 3 version, configfile, allowImportFromDerivation ? true }:
+    recurseIntoAttrs (packagesFor (manualConfig {
+      inherit version src modDirVersion configfile allowImportFromDerivation;
+    }));
+
+  # Derive one of the default .config files
+  linuxConfig = {
+    src,
+    kernelPatches ? [],
+    version ? (builtins.parseDrvName src.name).version,
+    makeTarget ? "defconfig",
+    name ? "kernel.config",
+  }: stdenvNoCC.mkDerivation {
+    inherit name src;
+    depsBuildBuild = [ buildPackages.stdenv.cc ]
+      ++ lib.optionals (lib.versionAtLeast version "4.16") [ buildPackages.bison buildPackages.flex ];
+    patches = map (p: p.patch) kernelPatches;  # Patches may include new configs.
+    postPatch = ''
+      patchShebangs scripts/
+    '';
+    buildPhase = ''
+      set -x
+      make \
+        ARCH=${stdenv.hostPlatform.linuxArch} \
+        HOSTCC=${buildPackages.stdenv.cc.targetPrefix}gcc \
+        ${makeTarget}
+    '';
+    installPhase = ''
+      cp .config $out
+    '';
+  };
+
+  buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs;
+
+}
diff --git a/nixpkgs/pkgs/top-level/lua-packages.nix b/nixpkgs/pkgs/top-level/lua-packages.nix
new file mode 100644
index 000000000000..014cf6d394f9
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/lua-packages.nix
@@ -0,0 +1,169 @@
+/* This file defines the composition for Lua packages.  It has
+  been factored out of all-packages.nix because there are many of
+  them.  Also, because most Nix expressions for Lua packages are
+  trivial, most are actually defined here.  I.e. there's no function
+  for each package in a separate file: the call to the function would
+  be almost as must code as the function itself. */
+
+{ pkgs
+, stdenv
+, lib
+, lua
+}:
+
+
+self:
+
+let
+  inherit (self) callPackage;
+
+  buildLuaApplication = args: buildLuarocksPackage ({ namePrefix = ""; } // args);
+
+  buildLuarocksPackage = lib.makeOverridable (callPackage ../development/interpreters/lua-5/build-luarocks-package.nix { });
+
+  luaLib = callPackage ../development/lua-modules/lib.nix { };
+
+  #define build lua package function
+  buildLuaPackage = callPackage ../development/lua-modules/generic { };
+
+  getPath = drv: pathListForVersion:
+    lib.concatMapStringsSep ";" (path: "${drv}/${path}") pathListForVersion;
+
+in
+rec {
+
+  # Dont take luaPackages from "global" pkgs scope to avoid mixing lua versions
+  luaPackages = self;
+
+  # helper functions for dealing with LUA_PATH and LUA_CPATH
+  inherit luaLib;
+
+  getLuaPath = drv: getPath drv luaLib.luaPathList;
+  getLuaCPath = drv: getPath drv luaLib.luaCPathList;
+
+  inherit (callPackage ../development/interpreters/lua-5/hooks { })
+    luarocksMoveDataFolder luarocksCheckHook lua-setup-hook;
+
+  inherit lua;
+  inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
+  inherit (luaLib) luaOlder luaAtLeast isLua51 isLua52 isLua53 isLuaJIT
+    requiredLuaModules toLuaModule hasLuaModule;
+
+  # wraps programs in $out/bin with valid LUA_PATH/LUA_CPATH
+  wrapLua = callPackage ../development/interpreters/lua-5/wrap-lua.nix {
+    inherit (pkgs.buildPackages) makeSetupHook makeWrapper;
+  };
+
+  luarocks = toLuaModule (callPackage ../development/tools/misc/luarocks/default.nix { });
+
+  # a fork of luarocks used to generate nix lua derivations from rockspecs
+  luarocks-nix = toLuaModule (callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { });
+
+ lua-resty-core = callPackage ({ fetchFromGitHub }: buildLuaPackage rec {
+    pname = "lua-resty-core";
+    version = "0.1.24";
+
+    src = fetchFromGitHub {
+      owner = "openresty";
+      repo = "lua-resty-core";
+      rev = "v${version}";
+      sha256 = "sha256-obwyxHSot1Lb2c1dNqJor3inPou+UIBrqldbkNBCQQk=";
+    };
+
+    propagatedBuildInputs = [ lua-resty-lrucache ];
+
+    meta = with lib; {
+      description = "New FFI-based API for lua-nginx-module";
+      homepage = "https://github.com/openresty/lua-resty-core";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ];
+    };
+  }) {};
+
+ lua-resty-lrucache = callPackage ({ fetchFromGitHub }: buildLuaPackage rec {
+    pname = "lua-resty-lrucache";
+    version = "0.13";
+
+    src = fetchFromGitHub {
+      owner = "openresty";
+      repo = "lua-resty-lrucache";
+      rev = "v${version}";
+      sha256 = "sha256-J8RNAMourxqUF8wPKd8XBhNwGC/x1KKvrVnZtYDEu4Q=";
+    };
+
+    meta = with lib; {
+      description = "Lua-land LRU Cache based on LuaJIT FFI";
+      homepage = "https://github.com/openresty/lua-resty-lrucache";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ];
+    };
+  }) {};
+
+  luxio = callPackage ({ fetchurl, which, pkg-config }: buildLuaPackage rec {
+    pname = "luxio";
+    version = "13";
+
+    src = fetchurl {
+      url = "https://git.gitano.org.uk/luxio.git/snapshot/luxio-luxio-${version}.tar.bz2";
+      sha256 = "1hvwslc25q7k82rxk461zr1a2041nxg7sn3sw3w0y5jxf0giz2pz";
+    };
+
+    nativeBuildInputs = [ which pkg-config ];
+
+    postPatch = ''
+      patchShebangs const-proc.lua
+    '';
+
+    preBuild = ''
+      makeFlagsArray=(
+        INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
+        INST_LUADIR="$out/share/lua/${lua.luaversion}"
+        LUA_BINDIR="$out/bin"
+        INSTALL=install
+      );
+    '';
+
+    meta = with lib; {
+      broken = stdenv.isDarwin;
+      description = "Lightweight UNIX I/O and POSIX binding for Lua";
+      homepage = "https://www.gitano.org.uk/luxio/";
+      license = licenses.mit;
+      maintainers = with maintainers; [ richardipsum ];
+      platforms = platforms.unix;
+    };
+  }) {};
+
+  nfd = callPackage ../development/lua-modules/nfd {
+    inherit (pkgs.gnome) zenity;
+    inherit (pkgs.darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  vicious = callPackage ({ fetchFromGitHub }: stdenv.mkDerivation rec {
+    pname = "vicious";
+    version = "2.6.0";
+
+    src = fetchFromGitHub {
+      owner = "vicious-widgets";
+      repo = "vicious";
+      rev = "v${version}";
+      sha256 = "sha256-VlJ2hNou2+t7eSyHmFkC2xJ92OH/uJ/ewYHkFLQjUPQ=";
+    };
+
+    buildInputs = [ lua ];
+
+    installPhase = ''
+      mkdir -p $out/lib/lua/${lua.luaversion}/
+      cp -r . $out/lib/lua/${lua.luaversion}/vicious/
+      printf "package.path = '$out/lib/lua/${lua.luaversion}/?/init.lua;' ..  package.path\nreturn require((...) .. '.init')\n" > $out/lib/lua/${lua.luaversion}/vicious.lua
+    '';
+
+    meta = with lib; {
+      description = "A modular widget library for the awesome window manager";
+      homepage = "https://vicious.rtfd.io";
+      changelog = "https://vicious.rtfd.io/en/v${version}/changelog.html";
+      license = licenses.gpl2Plus;
+      maintainers = with maintainers; [ makefu mic92 McSinyx ];
+      platforms = platforms.linux;
+    };
+  }) {};
+}
diff --git a/nixpkgs/pkgs/top-level/make-tarball.nix b/nixpkgs/pkgs/top-level/make-tarball.nix
new file mode 100644
index 000000000000..0f1c92be89bc
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/make-tarball.nix
@@ -0,0 +1,88 @@
+/* Hydra job to build a tarball for Nixpkgs from a Git checkout.  It
+   also builds the documentation and tests whether the Nix expressions
+   evaluate correctly. */
+
+{ nixpkgs
+, officialRelease
+, supportedSystems
+, pkgs ? import nixpkgs.outPath {}
+, nix ? pkgs.nix
+, lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }
+}:
+
+pkgs.releaseTools.sourceTarball {
+  name = "nixpkgs-tarball";
+  src = nixpkgs;
+
+  inherit officialRelease;
+  version = pkgs.lib.fileContents ../../.version;
+  versionSuffix = "pre${
+    if nixpkgs ? lastModified
+    then builtins.substring 0 8 (nixpkgs.lastModifiedDate or nixpkgs.lastModified)
+    else toString (nixpkgs.revCount or 0)}.${nixpkgs.shortRev or "dirty"}";
+
+  buildInputs = with pkgs; [ nix.out jq lib-tests brotli ];
+
+  configurePhase = ''
+    eval "$preConfigure"
+    releaseName=nixpkgs-$VERSION$VERSION_SUFFIX
+    echo -n $VERSION_SUFFIX > .version-suffix
+    echo -n ${nixpkgs.rev or nixpkgs.shortRev or "dirty"} > .git-revision
+    echo "release name is $releaseName"
+    echo "git-revision is $(cat .git-revision)"
+  '';
+
+  requiredSystemFeatures = [ "big-parallel" ]; # 1 thread but ~36G RAM (!) see #227945
+
+  nixpkgs-basic-release-checks = import ./nixpkgs-basic-release-checks.nix
+   { inherit nix pkgs nixpkgs supportedSystems; };
+
+  dontBuild = false;
+
+  doCheck = true;
+
+  checkPhase = ''
+    set -o pipefail
+
+    export NIX_STATE_DIR=$TMPDIR
+    export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
+    opts=(--option build-users-group "")
+    nix-store --init
+
+    echo "checking eval-release.nix"
+    nix-instantiate --eval --strict --show-trace ./maintainers/scripts/eval-release.nix > /dev/null
+
+    echo "checking find-tarballs.nix"
+    nix-instantiate --readonly-mode --eval --strict --show-trace --json \
+       ./maintainers/scripts/find-tarballs.nix \
+      --arg expr 'import ./maintainers/scripts/all-tarballs.nix' > $TMPDIR/tarballs.json
+    nrUrls=$(jq -r '.[].url' < $TMPDIR/tarballs.json | wc -l)
+    echo "found $nrUrls URLs"
+    if [ "$nrUrls" -lt 10000 ]; then
+      echo "suspiciously low number of URLs"
+      exit 1
+    fi
+
+    echo "generating packages.json"
+    mkdir -p $out/nix-support
+    echo -n '{"version":2,"packages":' > tmp
+    nix-env -f . -I nixpkgs=$src -qa --meta --json --show-trace --arg config 'import ${./packages-config.nix}' "''${opts[@]}" >> tmp
+    echo -n '}' >> tmp
+    packages=$out/packages.json.br
+    < tmp sed "s|$(pwd)/||g" | jq -c | brotli -9 > $packages
+    rm tmp
+
+    echo "file json-br $packages" >> $out/nix-support/hydra-build-products
+  '';
+
+  distPhase = ''
+    mkdir -p $out/tarballs
+    mkdir ../$releaseName
+    cp -prd . ../$releaseName
+    (cd .. && tar cfa $out/tarballs/$releaseName.tar.xz $releaseName) || false
+  '';
+
+  meta = {
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/top-level/metrics.nix b/nixpkgs/pkgs/top-level/metrics.nix
new file mode 100644
index 000000000000..d413b881eaa7
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/metrics.nix
@@ -0,0 +1,78 @@
+{ nixpkgs, pkgs }:
+
+with pkgs;
+
+runCommand "nixpkgs-metrics"
+  { nativeBuildInputs = with pkgs.lib; map getBin [ nix time jq ];
+    requiredSystemFeatures = [ "benchmark" ]; # dedicated `t2a` machine, by @vcunat
+  }
+  ''
+    export NIX_STORE_DIR=$TMPDIR/store
+    export NIX_STATE_DIR=$TMPDIR/state
+    export NIX_PAGER=
+    nix-store --init
+
+    mkdir -p $out/nix-support
+    touch $out/nix-support/hydra-build-products
+
+    run() {
+      local name="$1"
+      shift
+
+      echo "running $@"
+
+      case "$name" in
+        # Redirect stdout to /dev/null to avoid hitting "Output Limit
+        # Exceeded" on Hydra.
+        nix-env.qaDrv|nix-env.qaDrvAggressive)
+          NIX_SHOW_STATS=1 NIX_SHOW_STATS_PATH=stats-nix time -o stats-time "$@" >/dev/null ;;
+        *)
+          NIX_SHOW_STATS=1 NIX_SHOW_STATS_PATH=stats-nix time -o stats-time "$@" ;;
+      esac
+
+      cat stats-nix; echo; cat stats-time; echo
+
+      x=$(jq '.cpuTime' < stats-nix)
+      [[ -n $x ]] || exit 1
+      echo "$name.time $x s" >> $out/nix-support/hydra-metrics
+
+      x=$(sed -e 's/.* \([0-9]\+\)maxresident.*/\1/ ; t ; d' < stats-time)
+      [[ -n $x ]] || exit 1
+      echo "$name.maxresident $x KiB" >> $out/nix-support/hydra-metrics
+
+      # nix-2.2 also outputs .symbols.bytes but that wasn't summed originally
+      # https://github.com/NixOS/nix/pull/2392/files#diff-8e6ba8c21672fc1a5f6f606e1e101c74L1762
+      x=$(jq '[.envs,.list,.values,.sets] | map(.bytes) | add' < stats-nix)
+      [[ -n $x ]] || exit 1
+      echo "$name.allocations $x B" >> $out/nix-support/hydra-metrics
+
+      x=$(jq '.values.number' < stats-nix)
+      [[ -n $x ]] || exit 1
+      echo "$name.values $x" >> $out/nix-support/hydra-metrics
+    }
+
+    run nixos.smallContainer nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
+      -A closures.smallContainer.x86_64-linux --show-trace
+    run nixos.kde nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
+      -A closures.kde.x86_64-linux --show-trace
+    run nixos.lapp nix-instantiate --dry-run ${nixpkgs}/nixos/release.nix \
+      -A closures.lapp.x86_64-linux --show-trace
+    run nix-env.qa nix-env -f ${nixpkgs} -qa
+    run nix-env.qaDrv nix-env -f ${nixpkgs} -qa --drv-path --meta --xml
+
+    # It's slightly unclear which of the set to track: qaCount, qaCountDrv, qaCountBroken.
+    num=$(nix-env -f ${nixpkgs} -qa | wc -l)
+    echo "nix-env.qaCount $num" >> $out/nix-support/hydra-metrics
+    qaCountDrv=$(nix-env -f ${nixpkgs} -qa --drv-path | wc -l)
+    num=$((num - $qaCountDrv))
+    echo "nix-env.qaCountBroken $num" >> $out/nix-support/hydra-metrics
+
+    # TODO: this has been ignored for some time
+    # GC Warning: Bad initial heap size 128k - ignoring it.
+    #export GC_INITIAL_HEAP_SIZE=128k
+    run nix-env.qaAggressive nix-env -f ${nixpkgs} -qa
+    run nix-env.qaDrvAggressive nix-env -f ${nixpkgs} -qa --drv-path --meta --xml
+
+    lines=$(find ${nixpkgs} -name "*.nix" -type f | xargs cat | wc -l)
+    echo "loc $lines" >> $out/nix-support/hydra-metrics
+  ''
diff --git a/nixpkgs/pkgs/top-level/nim-overrides.nix b/nixpkgs/pkgs/top-level/nim-overrides.nix
new file mode 100644
index 000000000000..34db79a6a4ea
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/nim-overrides.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, getdns
+, htslib
+, libsass
+, openssl
+, pkg-config
+, raylib
+, SDL2
+, tkrzw
+, xorg
+}:
+
+# The following is list of overrides that take three arguments each:
+# - lockAttrs: - an attrset from a Nim lockfile, use this for making constraints on the locked library
+# - finalAttrs: - final arguments to the depender package
+# - prevAttrs: - preceding arguments to the depender package
+{
+  jester = lockAttrs: finalAttrs:
+    { buildInputs ? [ ], ... }: {
+      buildInputs = buildInputs ++ [ openssl ];
+    };
+
+  hts = lockAttrs: finalAttrs:
+    { buildInputs ? [ ], ... }: {
+      buildInputs = buildInputs ++ [ htslib ];
+    };
+
+  getdns = lockAttrs: finalAttrs:
+    { nativeBuildInputs ? [ ], buildInputs ? [ ], ... }: {
+      nativeBuildInputs = nativeBuildInputs ++ [ pkg-config ];
+      buildInputs = buildInputs ++ [ getdns ];
+    };
+
+  hashlib = lockAttrs:
+    lib.trivial.warnIf
+      (lockAttrs.rev == "84e0247555e4488594975900401baaf5bbbfb531")
+      "the selected version of the hashlib Nim library is hardware specific"
+      # https://github.com/khchen/hashlib/pull/4
+      # remove when fixed upstream
+      (_: _: { });
+
+  nimraylib_now = lockAttrs: finalAttrs:
+    { buildInputs ? [ ], ... }: {
+      buildInputs = buildInputs ++ [ raylib ];
+    };
+
+  sass = lockAttrs: finalAttrs:
+    { buildInputs ? [ ], ... }: {
+      buildInputs = buildInputs ++ [ libsass ];
+    };
+
+  sdl2 = lockAttrs: finalAttrs:
+    { buildInputs ? [ ], ... }: {
+      buildInputs = buildInputs ++ [ SDL2 ];
+    };
+
+  tkrzw = lockAttrs: finalAttrs:
+    { nativeBuildInputs ? [ ], buildInputs ? [ ], ... }: {
+      nativeBuildInputs = nativeBuildInputs ++ [ pkg-config ];
+      buildInputs = buildInputs ++ [ tkrzw ];
+    };
+
+  x11 = lockAttrs: finalAttrs:
+    { buildInputs ? [ ], ... }: {
+      buildInputs = buildInputs ++ (with xorg; [ libX11 libXft libXinerama ]);
+    };
+
+  zippy = lockAttrs: finalAttrs:
+    { nimFlags ? [ ], ... }: {
+      nimFlags = nimFlags ++ lib.optionals stdenv.hostPlatform.isx86_64 [
+        "--passC:-msse4.1"
+        "--passC:-mpclmul"
+      ];
+    };
+}
diff --git a/nixpkgs/pkgs/top-level/nixpkgs-basic-release-checks.nix b/nixpkgs/pkgs/top-level/nixpkgs-basic-release-checks.nix
new file mode 100644
index 000000000000..0b4af4114ef8
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/nixpkgs-basic-release-checks.nix
@@ -0,0 +1,98 @@
+{ supportedSystems, nixpkgs, pkgs, nix }:
+
+pkgs.runCommand "nixpkgs-release-checks"
+  {
+    src = nixpkgs;
+    buildInputs = [ nix ];
+    requiredSystemFeatures = [ "big-parallel" ]; # 1 thread but ~10G RAM; see #227945
+  }
+  ''
+    set -o pipefail
+
+    export NIX_STORE_DIR=$TMPDIR/store
+    export NIX_STATE_DIR=$TMPDIR/state
+    export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
+    opts=(--option build-users-group "")
+    nix-store --init
+
+    echo 'abort "Illegal use of <nixpkgs> in Nixpkgs."' > $TMPDIR/barf.nix
+
+    # Make sure that Nixpkgs does not use <nixpkgs>.
+    badFiles=$(find $src/pkgs -type f -name '*.nix' -print | xargs grep -l '^[^#]*<nixpkgs\/' || true)
+    if [[ -n $badFiles ]]; then
+        echo "Nixpkgs is not allowed to use <nixpkgs> to refer to itself."
+        echo "The offending files: $badFiles"
+        exit 1
+    fi
+
+    # Make sure that no paths collide on case-preserving or case-insensitive filesysytems.
+    conflictingPaths=$(find $src | awk '{ print $1 " " tolower($1) }' | sort -k2 | uniq -D -f 1 | cut -d ' ' -f 1)
+    if [[ -n $conflictingPaths ]]; then
+        echo "Files in nixpkgs must not vary only by case"
+        echo "The offending paths: $conflictingPaths"
+        exit 1
+    fi
+
+    src2=$TMPDIR/foo
+    cp -rd $src $src2
+
+    # Check that all-packages.nix evaluates on a number of platforms without any warnings.
+    for platform in ${pkgs.lib.concatStringsSep " " supportedSystems}; do
+        echo "checking Nixpkgs on $platform"
+
+        # To get a call trace; see https://nixos.org/manual/nixpkgs/stable/#function-library-lib.trivial.warn
+        # Relies on impure eval
+        export NIX_ABORT_ON_WARN=true
+
+        set +e
+        (
+          set -x
+          nix-env -f $src \
+              --show-trace --argstr system "$platform" \
+              --arg config '{ allowAliases = false; }' \
+              --option experimental-features 'no-url-literals' \
+              -qa --drv-path --system-filter \* --system \
+              "''${opts[@]}" 2> eval-warnings.log > packages1
+        )
+        rc=$?
+        set -e
+        if [ "$rc" != "0" ]; then
+          cat eval-warnings.log
+          exit $rc
+        fi
+
+        s1=$(sha1sum packages1 | cut -c1-40)
+        echo $s1
+
+        nix-env -f $src2 \
+            --show-trace --argstr system "$platform" \
+            --arg config '{ allowAliases = false; }' \
+            --option experimental-features 'no-url-literals' \
+            -qa --drv-path --system-filter \* --system \
+            "''${opts[@]}" > packages2
+
+        s2=$(sha1sum packages2 | cut -c1-40)
+
+        if [[ $s1 != $s2 ]]; then
+            echo "Nixpkgs evaluation depends on Nixpkgs path"
+            diff packages1 packages2
+            exit 1
+        fi
+
+        # Catch any trace calls not caught by NIX_ABORT_ON_WARN (lib.warn)
+        if [ -s eval-warnings.log ]; then
+            echo "Nixpkgs on $platform evaluated with warnings, aborting"
+            exit 1
+        fi
+        rm eval-warnings.log
+
+        nix-env -f $src \
+            --show-trace --argstr system "$platform" \
+            --arg config '{ allowAliases = false; }' \
+            --option experimental-features 'no-url-literals' \
+            -qa --drv-path --system-filter \* --system --meta --xml \
+            "''${opts[@]}" > /dev/null
+    done
+
+    touch $out
+''
diff --git a/nixpkgs/pkgs/top-level/ocaml-packages.nix b/nixpkgs/pkgs/top-level/ocaml-packages.nix
new file mode 100644
index 000000000000..e6f54a1401ba
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/ocaml-packages.nix
@@ -0,0 +1,1986 @@
+{ lib, newScope, pkgs, config }:
+
+let
+  liftJaneStreet = self: super: super.janeStreet // super;
+
+  mkOcamlPackages = ocaml:
+    (lib.makeScope newScope (self: with self;
+  {
+    inherit ocaml;
+
+    ### A ###
+    aches = callPackage ../development/ocaml-modules/aches { };
+    aches-lwt = callPackage ../development/ocaml-modules/aches/lwt.nix { };
+
+    afl-persistent = callPackage ../development/ocaml-modules/afl-persistent { };
+
+    alcotest = callPackage ../development/ocaml-modules/alcotest {};
+
+    alcotest-lwt = callPackage ../development/ocaml-modules/alcotest/lwt.nix {};
+
+    alcotest-mirage = callPackage ../development/ocaml-modules/alcotest/mirage.nix {};
+
+    algaeff = callPackage ../development/ocaml-modules/algaeff { };
+
+    alsa = callPackage ../development/ocaml-modules/alsa { };
+
+    angstrom = callPackage ../development/ocaml-modules/angstrom { };
+
+    angstrom-async = callPackage ../development/ocaml-modules/angstrom-async { };
+
+    angstrom-lwt-unix = callPackage ../development/ocaml-modules/angstrom-lwt-unix { };
+
+    angstrom-unix = callPackage ../development/ocaml-modules/angstrom-unix { };
+
+    ansiterminal = callPackage ../development/ocaml-modules/ansiterminal { };
+
+    ao = callPackage ../development/ocaml-modules/ao { };
+
+    apron = callPackage ../development/ocaml-modules/apron { };
+
+    arp = callPackage ../development/ocaml-modules/arp { };
+
+    asai = callPackage ../development/ocaml-modules/asai { };
+
+    asetmap = callPackage ../development/ocaml-modules/asetmap { };
+
+    asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
+
+    astring = callPackage ../development/ocaml-modules/astring { };
+
+    atd = callPackage ../development/ocaml-modules/atd { };
+
+    atdgen = callPackage ../development/ocaml-modules/atdgen { };
+
+    atdgen-codec-runtime = callPackage ../development/ocaml-modules/atdgen/codec-runtime.nix { };
+
+    atdgen-runtime = callPackage ../development/ocaml-modules/atdgen/runtime.nix { };
+
+    awa = callPackage ../development/ocaml-modules/awa { mtime = mtime_1; };
+
+    awa-mirage = callPackage ../development/ocaml-modules/awa/mirage.nix { mtime = mtime_1; };
+
+    ### B ###
+
+    b0 = callPackage ../development/ocaml-modules/b0 { };
+
+    bap = janeStreet_0_15.bap;
+
+    base64 = callPackage ../development/ocaml-modules/base64 { };
+
+    batteries = callPackage ../development/ocaml-modules/batteries { };
+
+    bdd = callPackage ../development/ocaml-modules/bdd { };
+
+    benchmark = callPackage ../development/ocaml-modules/benchmark { };
+
+    bheap = callPackage ../development/ocaml-modules/bheap { };
+
+    bigarray-compat = callPackage ../development/ocaml-modules/bigarray-compat { };
+
+    bigarray-overlap = callPackage ../development/ocaml-modules/bigarray-overlap { };
+
+    bigstring = callPackage ../development/ocaml-modules/bigstring { };
+
+    bigstringaf = callPackage ../development/ocaml-modules/bigstringaf { };
+
+    bindlib = callPackage ../development/ocaml-modules/bindlib { };
+
+    biniou = callPackage ../development/ocaml-modules/biniou { };
+
+    biocaml = janeStreet_0_15.biocaml;
+
+    bisect_ppx = callPackage ../development/ocaml-modules/bisect_ppx { };
+
+    bistro = callPackage ../development/ocaml-modules/bistro { };
+
+    bitstring = callPackage ../development/ocaml-modules/bitstring { };
+
+    bitv = callPackage ../development/ocaml-modules/bitv { };
+
+    bjack = callPackage ../development/ocaml-modules/bjack {
+      inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreAudio;
+    };
+
+    bls12-381 = callPackage ../development/ocaml-modules/bls12-381 { };
+    bls12-381-gen = callPackage ../development/ocaml-modules/bls12-381/gen.nix { };
+
+    bls12-381-signature = callPackage ../development/ocaml-modules/bls12-381-signature { };
+
+    bos = callPackage ../development/ocaml-modules/bos { };
+
+    brisk-reconciler = callPackage ../development/ocaml-modules/brisk-reconciler { };
+
+    brr = callPackage ../development/ocaml-modules/brr { };
+
+    bwd = callPackage ../development/ocaml-modules/bwd { };
+
+    bz2 = callPackage ../development/ocaml-modules/bz2 { };
+
+    ### C ###
+
+    ca-certs = callPackage ../development/ocaml-modules/ca-certs { };
+
+    ca-certs-nss = callPackage ../development/ocaml-modules/ca-certs-nss { };
+
+    cairo2 = callPackage ../development/ocaml-modules/cairo2 {
+      inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices;
+    };
+
+    calendar = callPackage ../development/ocaml-modules/calendar { };
+
+    callipyge = callPackage ../development/ocaml-modules/callipyge { };
+
+    camlidl = callPackage ../development/tools/ocaml/camlidl { };
+
+    camlimages = callPackage ../development/ocaml-modules/camlimages { };
+
+    camlp-streams = callPackage ../development/ocaml-modules/camlp-streams { };
+
+    camlp4 =
+      if lib.versionOlder "4.02" ocaml.version
+      then callPackage ../development/tools/ocaml/camlp4 { }
+      else null;
+
+    camlp5 = callPackage ../development/tools/ocaml/camlp5 { };
+
+    # Compatibility alias
+    camlp5_strict = camlp5;
+
+    camlpdf = callPackage ../development/ocaml-modules/camlpdf { };
+
+    camlzip = callPackage ../development/ocaml-modules/camlzip { };
+
+    camomile =
+      if lib.versionOlder "4.02" ocaml.version
+      then callPackage ../development/ocaml-modules/camomile { }
+      else callPackage ../development/ocaml-modules/camomile/0.8.5.nix { };
+
+    caqti = callPackage ../development/ocaml-modules/caqti { };
+
+    caqti-async = callPackage ../development/ocaml-modules/caqti/async.nix { };
+
+    caqti-driver-mariadb = callPackage ../development/ocaml-modules/caqti/driver-mariadb.nix { };
+
+    caqti-driver-postgresql = callPackage ../development/ocaml-modules/caqti/driver-postgresql.nix { };
+
+    caqti-driver-sqlite3 = callPackage ../development/ocaml-modules/caqti/driver-sqlite3.nix { };
+
+    caqti-dynload = callPackage ../development/ocaml-modules/caqti/dynload.nix { };
+
+    caqti-lwt = callPackage ../development/ocaml-modules/caqti/lwt.nix { };
+
+    caqti-type-calendar = callPackage ../development/ocaml-modules/caqti/type-calendar.nix { };
+
+    carton = callPackage ../development/ocaml-modules/carton { };
+
+    carton-git = callPackage ../development/ocaml-modules/carton/git.nix { };
+
+    carton-lwt = callPackage ../development/ocaml-modules/carton/lwt.nix {
+      git-binary = pkgs.git;
+    };
+
+    cfstream = callPackage ../development/ocaml-modules/cfstream { };
+
+    chacha = callPackage ../development/ocaml-modules/chacha { };
+
+    charInfo_width = callPackage ../development/ocaml-modules/charInfo_width { };
+
+    checkseum = callPackage ../development/ocaml-modules/checkseum { };
+
+    chrome-trace = callPackage ../development/ocaml-modules/chrome-trace { };
+
+    cil = callPackage ../development/ocaml-modules/cil { };
+
+    class_group_vdf = callPackage ../development/ocaml-modules/class_group_vdf { };
+
+    cmarkit = callPackage ../development/ocaml-modules/cmarkit { };
+
+    # The 1.1.0 release broke a lot of packages and is not compatible with
+    # OCaml < 4.08.
+    cmdliner =
+      if lib.versionAtLeast ocaml.version "4.08"
+      then cmdliner_1_1
+      else cmdliner_1_0;
+
+    cmdliner_1_0 = callPackage ../development/ocaml-modules/cmdliner/1_0.nix { };
+
+    cmdliner_1_1 = callPackage ../development/ocaml-modules/cmdliner/1_1.nix { };
+
+    cohttp = callPackage ../development/ocaml-modules/cohttp { };
+
+    cohttp-async = callPackage ../development/ocaml-modules/cohttp/async.nix { };
+
+    cohttp-lwt = callPackage ../development/ocaml-modules/cohttp/lwt.nix { };
+
+    cohttp-lwt-jsoo = callPackage ../development/ocaml-modules/cohttp/lwt-jsoo.nix { };
+
+    cohttp-lwt-unix = callPackage ../development/ocaml-modules/cohttp/lwt-unix.nix { };
+
+    cohttp-mirage = callPackage ../development/ocaml-modules/cohttp/mirage.nix { };
+
+    cohttp-top = callPackage ../development/ocaml-modules/cohttp/top.nix { };
+
+    coin =  callPackage ../development/ocaml-modules/coin { };
+
+    color = callPackage ../development/ocaml-modules/color { };
+
+    conduit = callPackage ../development/ocaml-modules/conduit { };
+
+    conduit-async = callPackage ../development/ocaml-modules/conduit/async.nix { };
+
+    conduit-lwt = callPackage ../development/ocaml-modules/conduit/lwt.nix { };
+
+    conduit-lwt-unix = callPackage ../development/ocaml-modules/conduit/lwt-unix.nix { };
+
+    conduit-mirage = callPackage ../development/ocaml-modules/conduit/mirage.nix { };
+
+    config-file = callPackage ../development/ocaml-modules/config-file { };
+
+    containers = callPackage ../development/ocaml-modules/containers { };
+
+    containers-data = callPackage ../development/ocaml-modules/containers/data.nix { };
+
+    cooltt = callPackage ../development/ocaml-modules/cooltt { };
+
+    cow = callPackage ../development/ocaml-modules/cow { };
+
+    cpdf = callPackage ../development/ocaml-modules/cpdf { };
+
+    cppo = callPackage ../development/tools/ocaml/cppo { };
+
+    cppo_ocamlbuild = callPackage ../development/tools/ocaml/cppo/ocamlbuild.nix { };
+
+    cpu = callPackage ../development/ocaml-modules/cpu { };
+
+    cpuid = callPackage ../development/ocaml-modules/cpuid { };
+
+    crowbar = callPackage ../development/ocaml-modules/crowbar { };
+
+    crunch = callPackage ../development/tools/ocaml/crunch { };
+
+    cry = callPackage ../development/ocaml-modules/cry { };
+
+    cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
+
+    csexp = callPackage ../development/ocaml-modules/csexp { };
+
+    cstruct = callPackage ../development/ocaml-modules/cstruct {};
+
+    cstruct-async = callPackage ../development/ocaml-modules/cstruct/async.nix { };
+
+    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix { };
+
+    cstruct-sexp = callPackage ../development/ocaml-modules/cstruct/sexp.nix {};
+
+    cstruct-unix = callPackage ../development/ocaml-modules/cstruct/unix.nix {};
+
+    csv = callPackage ../development/ocaml-modules/csv { };
+
+    csv-lwt = callPackage ../development/ocaml-modules/csv/lwt.nix { };
+
+    ctypes = callPackage ../development/ocaml-modules/ctypes { };
+
+    ctypes_stubs_js = callPackage ../development/ocaml-modules/ctypes_stubs_js {
+      inherit (pkgs) nodejs;
+    };
+
+    cudf = callPackage ../development/ocaml-modules/cudf { };
+
+    curly = callPackage ../development/ocaml-modules/curly {
+      inherit (pkgs) curl;
+    };
+
+    curses = callPackage ../development/ocaml-modules/curses { };
+
+    ### D ###
+
+    dap =  callPackage ../development/ocaml-modules/dap { };
+
+    data-encoding = callPackage ../development/ocaml-modules/data-encoding { };
+
+    dates_calc = callPackage ../development/ocaml-modules/dates_calc {  };
+
+    dbf =  callPackage ../development/ocaml-modules/dbf { };
+
+    decompress =  callPackage ../development/ocaml-modules/decompress { };
+
+    dedukti =  callPackage ../development/ocaml-modules/dedukti { };
+
+    diet =  callPackage ../development/ocaml-modules/diet { };
+
+    digestif =  callPackage ../development/ocaml-modules/digestif { };
+
+    directories =  callPackage ../development/ocaml-modules/directories { };
+
+    dispatch =  callPackage ../development/ocaml-modules/dispatch { };
+
+    dns =  callPackage ../development/ocaml-modules/dns { };
+
+    dns-certify =  callPackage ../development/ocaml-modules/dns/certify.nix { };
+
+    dns-cli =  callPackage ../development/ocaml-modules/dns/cli.nix { mtime = mtime_1; };
+
+    dns-client =  callPackage ../development/ocaml-modules/dns/client.nix { mtime = mtime_1; };
+
+    dns-client-lwt = callPackage ../development/ocaml-modules/dns/client-lwt.nix { mtime = mtime_1; };
+
+    dns-client-mirage = callPackage ../development/ocaml-modules/dns/client-mirage.nix { };
+
+    dns-mirage = callPackage ../development/ocaml-modules/dns/mirage.nix { };
+
+    dns-resolver = callPackage ../development/ocaml-modules/dns/resolver.nix { };
+
+    dns-server = callPackage ../development/ocaml-modules/dns/server.nix { };
+
+    dns-stub = callPackage ../development/ocaml-modules/dns/stub.nix { };
+
+    dns-tsig = callPackage ../development/ocaml-modules/dns/tsig.nix { };
+
+    dnssec = callPackage ../development/ocaml-modules/dns/dnssec.nix { };
+
+    dolmen =  callPackage ../development/ocaml-modules/dolmen { };
+
+    dolmen_loop =  callPackage ../development/ocaml-modules/dolmen/loop.nix { };
+
+    dolmen_type =  callPackage ../development/ocaml-modules/dolmen/type.nix { };
+
+    dolog = callPackage ../development/ocaml-modules/dolog { };
+
+    domain-local-await = callPackage ../development/ocaml-modules/domain-local-await { };
+
+    domain-local-timeout = callPackage ../development/ocaml-modules/domain-local-timeout { };
+
+    domain-name = callPackage ../development/ocaml-modules/domain-name { };
+
+    domain_shims = callPackage ../development/ocaml-modules/domain_shims { };
+
+    domainslib = callPackage ../development/ocaml-modules/domainslib { };
+
+    dose3 = callPackage ../development/ocaml-modules/dose3 { };
+
+    dot-merlin-reader = callPackage ../development/tools/ocaml/merlin/dot-merlin-reader.nix { };
+
+    dscheck = callPackage ../development/ocaml-modules/dscheck { };
+
+    dssi = callPackage ../development/ocaml-modules/dssi { };
+
+    dtoa = callPackage ../development/ocaml-modules/dtoa { };
+
+    dtools = callPackage ../development/ocaml-modules/dtools { };
+
+    duff = callPackage ../development/ocaml-modules/duff { };
+
+    dum = callPackage ../development/ocaml-modules/dum { };
+
+    dune_1 = callPackage ../development/tools/ocaml/dune/1.nix { };
+
+    dune_2 =
+      if lib.versionAtLeast ocaml.version "4.08"
+      then callPackage ../development/tools/ocaml/dune/2.nix { }
+      else if lib.versionAtLeast ocaml.version "4.02"
+      then pkgs.dune_2
+      else throw "dune_2 is not available for OCaml ${ocaml.version}";
+
+    dune_3 =
+      if lib.versionAtLeast ocaml.version "4.08"
+      then callPackage ../development/tools/ocaml/dune/3.nix { }
+      else if lib.versionAtLeast ocaml.version "4.02"
+      then pkgs.dune_3
+      else throw "dune_3 is not available for OCaml ${ocaml.version}";
+
+    dune-action-plugin = callPackage ../development/ocaml-modules/dune-action-plugin { };
+
+    dune-build-info = callPackage ../development/ocaml-modules/dune-build-info { };
+
+    dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { };
+
+    dune-glob = callPackage ../development/ocaml-modules/dune-glob { };
+
+    dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { };
+
+    dune-release = callPackage ../development/tools/ocaml/dune-release {
+      inherit (pkgs) opam git mercurial coreutils gnutar bzip2;
+    };
+
+    dune-rpc = callPackage ../development/ocaml-modules/dune-rpc { };
+
+    dune-site = callPackage ../development/ocaml-modules/dune-site { };
+
+    duppy = callPackage ../development/ocaml-modules/duppy { };
+
+    duration =  callPackage ../development/ocaml-modules/duration { };
+
+    dyn =  callPackage ../development/ocaml-modules/dyn { };
+
+    dypgen = callPackage ../development/ocaml-modules/dypgen { };
+
+    ### E ###
+
+    earley = callPackage ../development/ocaml-modules/earley { };
+
+    earlybird = callPackage ../development/ocaml-modules/earlybird { };
+
+    easy-format = callPackage ../development/ocaml-modules/easy-format { };
+
+    eigen = callPackage ../development/ocaml-modules/eigen { };
+
+    eio = callPackage ../development/ocaml-modules/eio { };
+    eio_linux = callPackage ../development/ocaml-modules/eio/linux.nix { };
+    eio_main = callPackage ../development/ocaml-modules/eio/main.nix { };
+    eio_posix = callPackage ../development/ocaml-modules/eio/posix.nix { };
+
+    either = callPackage ../development/ocaml-modules/either { };
+
+    elina = callPackage ../development/ocaml-modules/elina { };
+
+    eliom = callPackage ../development/ocaml-modules/eliom { };
+
+    elpi = callPackage ../development/ocaml-modules/elpi (
+      let ppxlib_0_15 = if lib.versionAtLeast ppxlib.version "0.15"
+        then ppxlib.override { version = "0.15.0"; }
+        else ppxlib; in
+      {
+        ppx_deriving_0_15 = ppx_deriving.override { ppxlib = ppxlib_0_15; };
+        inherit ppxlib_0_15;
+      }
+    );
+
+    emile = callPackage ../development/ocaml-modules/emile { };
+
+    encore = callPackage ../development/ocaml-modules/encore { };
+
+    eqaf = callPackage ../development/ocaml-modules/eqaf { };
+
+    erm_xml = callPackage ../development/ocaml-modules/erm_xml { };
+
+    erm_xmpp = callPackage ../development/ocaml-modules/erm_xmpp { };
+
+    ethernet = callPackage ../development/ocaml-modules/ethernet { };
+
+    extlib = extlib-1-7-9;
+
+    extlib-1-7-9 = callPackage ../development/ocaml-modules/extlib { };
+
+    extlib-1-7-7 = callPackage ../development/ocaml-modules/extlib/1.7.7.nix { };
+
+    ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
+
+    ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
+
+    ### F ###
+
+    faad = callPackage ../development/ocaml-modules/faad { };
+
+    facile = callPackage ../development/ocaml-modules/facile { };
+
+    faraday = callPackage ../development/ocaml-modules/faraday { };
+
+    faraday-async = callPackage ../development/ocaml-modules/faraday/async.nix { };
+
+    faraday-lwt = callPackage ../development/ocaml-modules/faraday/lwt.nix { };
+
+    faraday-lwt-unix = callPackage ../development/ocaml-modules/faraday/lwt-unix.nix { };
+
+    farfadet = callPackage ../development/ocaml-modules/farfadet { };
+
+    fdkaac = callPackage ../development/ocaml-modules/fdkaac { };
+
+    ff = callPackage ../development/ocaml-modules/ff { };
+    ff-pbt = callPackage ../development/ocaml-modules/ff/pbt.nix { };
+    ff-sig = callPackage ../development/ocaml-modules/ff/sig.nix { };
+
+    ffmpeg = callPackage ../development/ocaml-modules/ffmpeg { };
+    ffmpeg-av = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-av.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox VideoToolbox;
+    };
+    ffmpeg-avcodec = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox VideoToolbox;
+    };
+    ffmpeg-avdevice = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) AppKit AudioToolbox AVFoundation Cocoa CoreImage ForceFeedback OpenGL VideoToolbox;
+    };
+    ffmpeg-avfilter = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) AppKit CoreImage OpenGL VideoToolbox;
+    };
+    ffmpeg-avutil = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox VideoToolbox;
+    };
+    ffmpeg-swresample = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) VideoToolbox;
+    };
+    ffmpeg-swscale = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix {
+      inherit (pkgs) ffmpeg;
+      inherit (pkgs.darwin.apple_sdk.frameworks) VideoToolbox;
+    };
+
+    fiber = callPackage ../development/ocaml-modules/fiber { };
+
+    fileutils = callPackage ../development/ocaml-modules/fileutils { };
+
+    findlib = callPackage ../development/tools/ocaml/findlib { };
+
+    fix = callPackage ../development/ocaml-modules/fix { };
+
+    flac = callPackage ../development/ocaml-modules/flac {
+      inherit (pkgs) flac;
+    };
+
+    flex = callPackage ../development/ocaml-modules/flex { };
+
+    fmt = callPackage ../development/ocaml-modules/fmt { };
+
+    fontconfig = callPackage ../development/ocaml-modules/fontconfig {
+      inherit (pkgs) fontconfig;
+    };
+
+    fpath = callPackage ../development/ocaml-modules/fpath { };
+
+    frei0r = callPackage ../development/ocaml-modules/frei0r {
+      inherit (pkgs) frei0r;
+    };
+
+    frontc = callPackage ../development/ocaml-modules/frontc { };
+
+    functoria = callPackage ../development/ocaml-modules/functoria { };
+
+    functoria-runtime = callPackage ../development/ocaml-modules/functoria/runtime.nix { };
+
+    functory = callPackage ../development/ocaml-modules/functory { };
+
+    ### G ###
+
+    gapi-ocaml = callPackage ../development/ocaml-modules/gapi-ocaml { };
+
+    gd4o = callPackage ../development/ocaml-modules/gd4o { };
+
+    gen = callPackage ../development/ocaml-modules/gen { };
+
+    gen_js_api = callPackage ../development/ocaml-modules/gen_js_api { };
+
+    genspio = callPackage ../development/ocaml-modules/genspio { };
+
+    getopt = callPackage ../development/ocaml-modules/getopt { };
+
+    gettext-camomile = callPackage ../development/ocaml-modules/ocaml-gettext/camomile.nix { };
+
+    gettext-stub = callPackage ../development/ocaml-modules/ocaml-gettext/stub.nix { };
+
+    gg = callPackage ../development/ocaml-modules/gg { };
+
+    git = callPackage ../development/ocaml-modules/git {
+      git-binary = pkgs.git;
+    };
+
+    git-mirage = callPackage ../development/ocaml-modules/git/mirage.nix { };
+
+    git-paf = callPackage ../development/ocaml-modules/git/paf.nix { };
+
+    git-unix = callPackage ../development/ocaml-modules/git/unix.nix {
+      git-binary = pkgs.git;
+      mtime = mtime_1;
+    };
+
+    github = callPackage ../development/ocaml-modules/github {  };
+    github-data = callPackage ../development/ocaml-modules/github/data.nix {  };
+    github-jsoo = callPackage ../development/ocaml-modules/github/jsoo.nix {  };
+    github-unix = callPackage ../development/ocaml-modules/github/unix.nix {  };
+
+    gluten = callPackage ../development/ocaml-modules/gluten { };
+    gluten-eio = callPackage ../development/ocaml-modules/gluten/eio.nix { };
+    gluten-lwt = callPackage ../development/ocaml-modules/gluten/lwt.nix { };
+    gluten-lwt-unix = callPackage ../development/ocaml-modules/gluten/lwt-unix.nix { };
+
+    gmap = callPackage ../development/ocaml-modules/gmap { };
+
+    gnuplot = callPackage ../development/ocaml-modules/gnuplot {
+      inherit (pkgs) gnuplot;
+    };
+
+    graphics =
+    if lib.versionOlder "4.09" ocaml.version
+    then callPackage ../development/ocaml-modules/graphics { }
+    else null;
+
+    graphql = callPackage ../development/ocaml-modules/graphql { };
+
+    graphql-cohttp = callPackage ../development/ocaml-modules/graphql/cohttp.nix { };
+
+    graphql-lwt = callPackage ../development/ocaml-modules/graphql/lwt.nix { };
+
+    graphql_parser = callPackage ../development/ocaml-modules/graphql/parser.nix { };
+
+    graphql_ppx = callPackage ../development/ocaml-modules/graphql_ppx { };
+
+    gsl = callPackage ../development/ocaml-modules/gsl {
+      inherit (pkgs) gsl;
+    };
+
+    gstreamer = callPackage ../development/ocaml-modules/gstreamer {
+      inherit (pkgs.darwin.apple_sdk.frameworks) AppKit Foundation;
+    };
+
+    ### H ###
+
+    h2 = callPackage ../development/ocaml-modules/h2 { };
+
+    hack_parallel = callPackage ../development/ocaml-modules/hack_parallel { };
+
+    hacl-star = callPackage ../development/ocaml-modules/hacl-star { };
+    hacl-star-raw = callPackage ../development/ocaml-modules/hacl-star/raw.nix { };
+
+    happy-eyeballs = callPackage ../development/ocaml-modules/happy-eyeballs { };
+
+    happy-eyeballs-lwt = callPackage ../development/ocaml-modules/happy-eyeballs/lwt.nix { mtime = mtime_1; };
+
+    happy-eyeballs-mirage = callPackage ../development/ocaml-modules/happy-eyeballs/mirage.nix { };
+
+    hashcons = callPackage ../development/ocaml-modules/hashcons { };
+
+    hex = callPackage ../development/ocaml-modules/hex { };
+
+    hidapi = callPackage ../development/ocaml-modules/hidapi { };
+
+    higlo = callPackage ../development/ocaml-modules/higlo { };
+
+    hkdf = callPackage ../development/ocaml-modules/hkdf { };
+
+    hmap = callPackage ../development/ocaml-modules/hmap { };
+
+    hpack = callPackage ../development/ocaml-modules/hpack { };
+
+    http-mirage-client = callPackage ../development/ocaml-modules/http-mirage-client { };
+
+    httpaf = callPackage ../development/ocaml-modules/httpaf { };
+
+    httpaf-lwt-unix = callPackage ../development/ocaml-modules/httpaf/lwt-unix.nix { };
+
+    hxd = callPackage ../development/ocaml-modules/hxd { };
+
+    ### I ###
+
+    imagelib = callPackage ../development/ocaml-modules/imagelib { };
+
+    index = callPackage ../development/ocaml-modules/index { mtime = mtime_1; };
+
+    inifiles = callPackage ../development/ocaml-modules/inifiles { };
+
+    inotify = callPackage ../development/ocaml-modules/inotify { };
+
+    integers = callPackage ../development/ocaml-modules/integers { };
+
+    integers_stubs_js = callPackage ../development/ocaml-modules/integers_stubs_js { };
+
+    iomux = callPackage ../development/ocaml-modules/iomux { };
+
+    io-page = callPackage ../development/ocaml-modules/io-page { };
+
+    ipaddr = callPackage ../development/ocaml-modules/ipaddr { };
+
+    ipaddr-cstruct = callPackage ../development/ocaml-modules/ipaddr/cstruct.nix { };
+
+    ipaddr-sexp = callPackage ../development/ocaml-modules/ipaddr/sexp.nix { };
+
+    iri = callPackage ../development/ocaml-modules/iri { };
+
+    irmin = callPackage ../development/ocaml-modules/irmin { mtime = mtime_1; };
+
+    irmin-chunk = callPackage ../development/ocaml-modules/irmin/chunk.nix { };
+
+    irmin-containers = callPackage ../development/ocaml-modules/irmin/containers.nix { mtime = mtime_1; };
+
+    irmin-fs = callPackage ../development/ocaml-modules/irmin/fs.nix { };
+
+    irmin-git = callPackage ../development/ocaml-modules/irmin/git.nix { mtime = mtime_1; };
+
+    irmin-graphql = callPackage ../development/ocaml-modules/irmin/graphql.nix { };
+
+    irmin-http = callPackage ../development/ocaml-modules/irmin/http.nix { };
+
+    irmin-mirage = callPackage ../development/ocaml-modules/irmin/mirage.nix { };
+
+    irmin-mirage-git = callPackage ../development/ocaml-modules/irmin/mirage-git.nix { };
+
+    irmin-mirage-graphql = callPackage ../development/ocaml-modules/irmin/mirage-graphql.nix { };
+
+    irmin-pack = callPackage ../development/ocaml-modules/irmin/pack.nix { mtime = mtime_1; };
+
+    irmin-test = callPackage ../development/ocaml-modules/irmin/test.nix { mtime = mtime_1; };
+
+    irmin-tezos = callPackage ../development/ocaml-modules/irmin/tezos.nix { };
+
+    irmin-watcher = callPackage ../development/ocaml-modules/irmin-watcher { };
+
+    iso8601 = callPackage ../development/ocaml-modules/iso8601 { };
+
+    iter = callPackage ../development/ocaml-modules/iter { };
+
+    ### J ###
+
+    # Jane Street
+    janePackage =
+      if lib.versionOlder "4.13.1" ocaml.version
+      then callPackage ../development/ocaml-modules/janestreet/janePackage_0_16.nix {}
+      else if lib.versionOlder "4.10.2" ocaml.version
+      then callPackage ../development/ocaml-modules/janestreet/janePackage_0_15.nix {}
+      else if lib.versionOlder "4.08" ocaml.version
+      then callPackage ../development/ocaml-modules/janestreet/janePackage_0_14.nix {}
+      else if lib.versionOlder "4.07" ocaml.version
+      then callPackage ../development/ocaml-modules/janestreet/janePackage_0_12.nix {}
+      else callPackage ../development/ocaml-modules/janestreet/janePackage.nix {};
+
+    janeStreet =
+      if lib.versionOlder "4.13.1" ocaml.version
+      then import ../development/ocaml-modules/janestreet/0.16.nix {
+        inherit self;
+        inherit (pkgs) bash fetchpatch fzf lib openssl zstd krb5;
+      }
+      else if lib.versionOlder "4.10.2" ocaml.version
+      then import ../development/ocaml-modules/janestreet/0.15.nix {
+        inherit self ocaml;
+        inherit (pkgs) bash fetchpatch fzf lib openssl zstd;
+      }
+      else if lib.versionOlder "4.08" ocaml.version
+      then import ../development/ocaml-modules/janestreet/0.14.nix {
+        inherit self;
+        inherit (pkgs) fetchpatch lib openssl zstd;
+      }
+      else if lib.versionOlder "4.07" ocaml.version
+      then import ../development/ocaml-modules/janestreet/0.12.nix {
+        self = self // {
+          ppxlib = ppxlib.override { version = "0.8.1"; };
+        };
+        inherit (pkgs) openssl;
+      }
+      else import ../development/ocaml-modules/janestreet {
+        self = self // {
+          ppxlib = ppxlib.override { version = "0.8.1"; };
+        };
+        inherit (pkgs) openssl;
+      };
+
+    janeStreet_0_15 = (lib.makeScope self.newScope (self': with self'; {
+
+      # ocamlPackages that janestreet v0.15 packages depend on.
+      jsDeps = let
+        uri-sexp = self.uri-sexp.override { inherit (self') ppx_sexp_conv sexplib0; };
+        cohttp = self.cohttp.override {
+          inherit (self') ppx_sexp_conv;
+          inherit uri-sexp;
+        };
+        ipaddr-sexp = self.ipaddr-sexp.override { inherit (self') ppx_sexp_conv; };
+        conduit = self.conduit.override {
+          inherit (self') ppx_sexp_conv sexplib;
+          inherit ipaddr-sexp;
+        };
+        conduit-async = self.conduit-async.override {
+          inherit (self') async ppx_sexp_conv ppx_here core sexplib async_ssl;
+          inherit conduit ipaddr-sexp;
+        };
+      in {
+        inherit (self) dune-configurator alcotest re num octavius uutf ounit ctypes;
+        ppxlib = self.ppxlib.override { inherit (self') stdio; };
+        cohttp-async = self.cohttp-async.override {
+          inherit (self') ppx_sexp_conv base async async_kernel async_unix core_unix sexplib0 core;
+          inherit uri-sexp cohttp conduit-async;
+        };
+        janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage_0_15.nix { };
+      };
+
+      janeStreet = import ../development/ocaml-modules/janestreet/0.15.nix {
+        self = self' // jsDeps;
+        inherit ocaml;
+        inherit (pkgs) bash fetchpatch fzf lib openssl zstd;
+      };
+
+      # Packages that are not part of janestreet libraries, but still depend
+      # on v0.15 are kept in this scope, too.
+
+      bap = let
+        ppxlib = jsDeps.ppxlib;
+        lwt_ppx = self.lwt_ppx.override { inherit ppxlib; };
+        sedlex = self.sedlex.override { inherit ppxlib ppx_expect; };
+        in callPackage ../development/ocaml-modules/bap {
+          inherit (pkgs.llvmPackages_14) llvm;
+          ezjsonm = self.ezjsonm.override { inherit sexplib0; };
+          ppx_bitstring = self.ppx_bitstring.override { inherit ppxlib; };
+          ocurl = self.ocurl.override { inherit lwt_ppx; };
+          piqi = self.piqi.override { inherit sedlex; };
+          piqi-ocaml = self.piqi-ocaml.override { inherit piqi; };
+        };
+
+      biocaml = let
+        angstrom = self.angstrom.override { inherit ppx_let; };
+      in callPackage ../development/ocaml-modules/biocaml {
+        uri = self.uri.override { inherit angstrom; };
+        cfstream = self.cfstream.override { inherit core_kernel; };
+      };
+
+      magic-trace = callPackage ../development/ocaml-modules/magic-trace { };
+
+      phylogenetics = let
+        angstrom = self.angstrom.override { inherit ppx_let; };
+      in callPackage ../development/ocaml-modules/phylogenetics {
+        inherit biocaml;
+        ppx_deriving = self.ppx_deriving.override { inherit (jsDeps) ppxlib; };
+        angstrom-unix = self.angstrom-unix.override { inherit angstrom; };
+      };
+
+      ppx_bap = callPackage ../development/ocaml-modules/ppx_bap { };
+    })).overrideScope liftJaneStreet;
+
+    janeStreet_0_9_0 = import ../development/ocaml-modules/janestreet/old.nix {
+      self = self.janeStreet_0_9_0;
+      super = self // {
+        janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix {
+          defaultVersion = "0.9.0";
+        };
+      };
+      inherit (pkgs) stdenv lib openssl;
+    };
+
+    javalib = callPackage ../development/ocaml-modules/javalib { };
+
+    jingoo = callPackage ../development/ocaml-modules/jingoo { };
+
+    js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { };
+
+    js_of_ocaml-compiler = callPackage ../development/tools/ocaml/js_of_ocaml/compiler.nix {};
+
+    js_of_ocaml-lwt = callPackage ../development/tools/ocaml/js_of_ocaml/lwt.nix {};
+
+    js_of_ocaml-ocamlbuild = callPackage ../development/tools/ocaml/js_of_ocaml/ocamlbuild.nix {};
+
+    js_of_ocaml-ppx = callPackage ../development/tools/ocaml/js_of_ocaml/ppx.nix {};
+
+    js_of_ocaml-ppx_deriving_json = callPackage ../development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix { };
+
+    js_of_ocaml-toplevel = callPackage ../development/tools/ocaml/js_of_ocaml/toplevel.nix {};
+
+    js_of_ocaml-tyxml = callPackage ../development/tools/ocaml/js_of_ocaml/tyxml.nix {};
+
+    json-data-encoding = callPackage ../development/ocaml-modules/json-data-encoding { };
+
+    json-data-encoding-bson = callPackage ../development/ocaml-modules/json-data-encoding/bson.nix { };
+
+    jsonm = callPackage ../development/ocaml-modules/jsonm { };
+
+    jsonrpc = callPackage ../development/ocaml-modules/ocaml-lsp/jsonrpc.nix { };
+
+    junit = callPackage ../development/ocaml-modules/junit { };
+    junit_alcotest = callPackage ../development/ocaml-modules/junit/alcotest.nix { };
+    junit_ounit = callPackage ../development/ocaml-modules/junit/ounit.nix { };
+
+    jwto = callPackage ../development/ocaml-modules/jwto { };
+
+    ### K ###
+
+    kafka = callPackage ../development/ocaml-modules/kafka { };
+
+    kafka_lwt = callPackage ../development/ocaml-modules/kafka/lwt.nix { };
+
+    kcas = callPackage ../development/ocaml-modules/kcas { };
+
+    ke = callPackage ../development/ocaml-modules/ke { };
+
+    kicadsch = callPackage ../development/ocaml-modules/kicadsch { };
+
+    ### L ###
+
+    lablgl = callPackage ../development/ocaml-modules/lablgl { };
+
+    lablgtk = callPackage ../development/ocaml-modules/lablgtk {
+      inherit (pkgs.gnome2) libgnomecanvas gtksourceview;
+    };
+
+    lablgtk-extras =
+      if lib.versionOlder "4.02" ocaml.version
+      then callPackage ../development/ocaml-modules/lablgtk-extras { }
+      else callPackage ../development/ocaml-modules/lablgtk-extras/1.4.nix { };
+
+    lablgtk3 = callPackage ../development/ocaml-modules/lablgtk3 { };
+
+    lablgtk3-gtkspell3 = callPackage ../development/ocaml-modules/lablgtk3/gtkspell3.nix { };
+
+    lablgtk3-sourceview3 = callPackage ../development/ocaml-modules/lablgtk3/sourceview3.nix { };
+
+    labltk = callPackage ../development/ocaml-modules/labltk {
+      inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+    };
+
+    lacaml = callPackage ../development/ocaml-modules/lacaml { };
+
+    ladspa = callPackage ../development/ocaml-modules/ladspa { };
+
+    lambda-term = callPackage ../development/ocaml-modules/lambda-term { };
+
+    lambdapi = callPackage ../development/ocaml-modules/lambdapi { };
+
+    lambdasoup = callPackage ../development/ocaml-modules/lambdasoup { };
+
+    lame = callPackage ../development/ocaml-modules/lame {
+      inherit (pkgs) lame;
+    };
+
+    lastfm = callPackage ../development/ocaml-modules/lastfm { };
+
+    lem = callPackage ../development/ocaml-modules/lem { };
+
+    lens = callPackage ../development/ocaml-modules/lens { };
+
+    letsencrypt = callPackage ../development/ocaml-modules/letsencrypt { };
+
+    letsencrypt-app = callPackage ../development/ocaml-modules/letsencrypt/app.nix { };
+
+    letsencrypt-dns = callPackage ../development/ocaml-modules/letsencrypt/dns.nix { };
+
+    letsencrypt-mirage = callPackage ../development/ocaml-modules/letsencrypt/mirage.nix { };
+
+    lilv = callPackage ../development/ocaml-modules/lilv {
+      inherit (pkgs) lilv;
+    };
+
+    linenoise = callPackage ../development/ocaml-modules/linenoise { };
+
+    linksem = callPackage ../development/ocaml-modules/linksem { };
+
+    linol = callPackage ../development/ocaml-modules/linol { };
+
+    linol-lwt = callPackage ../development/ocaml-modules/linol/lwt.nix { };
+
+    llvm = callPackage ../development/ocaml-modules/llvm {
+      libllvm = pkgs.llvmPackages_10.libllvm;
+    };
+
+    lo = callPackage ../development/ocaml-modules/lo { };
+
+    logs = callPackage ../development/ocaml-modules/logs { };
+
+    lru = callPackage ../development/ocaml-modules/lru { };
+
+    lsp = callPackage ../development/ocaml-modules/ocaml-lsp/lsp.nix { };
+
+    lua-ml = callPackage ../development/ocaml-modules/lua-ml { };
+
+    lun = callPackage ../development/ocaml-modules/lun { };
+
+    lustre-v6 = callPackage ../development/ocaml-modules/lustre-v6 { };
+
+    lutils = callPackage ../development/ocaml-modules/lutils { };
+
+    luv = callPackage ../development/ocaml-modules/luv {
+      inherit (pkgs) file;
+    };
+
+    lwd = callPackage ../development/ocaml-modules/lwd { };
+
+    lwt = callPackage ../development/ocaml-modules/lwt { };
+
+    lwt-canceler = callPackage ../development/ocaml-modules/lwt-canceler { };
+
+    lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { };
+
+    lwt-dllist = callPackage ../development/ocaml-modules/lwt-dllist { };
+
+    lwt-exit = callPackage ../development/ocaml-modules/lwt-exit { };
+
+    lwt_log = callPackage ../development/ocaml-modules/lwt_log { };
+
+    lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { };
+
+    lwt_react = callPackage ../development/ocaml-modules/lwt_react { };
+
+    lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl { };
+
+    lwt-watcher = callPackage ../development/ocaml-modules/lwt-watcher { };
+
+    ### M ###
+
+    macaddr = callPackage ../development/ocaml-modules/macaddr { };
+
+    macaddr-cstruct = callPackage ../development/ocaml-modules/macaddr/cstruct.nix { };
+
+    macaddr-sexp = callPackage ../development/ocaml-modules/macaddr/sexp.nix { };
+
+    macaque = callPackage ../development/ocaml-modules/macaque { };
+
+    mad = callPackage ../development/ocaml-modules/mad { };
+
+    magic = callPackage ../development/ocaml-modules/magic { };
+
+    magic-mime = callPackage ../development/ocaml-modules/magic-mime { };
+
+    magic-trace = janeStreet_0_15.magic-trace;
+
+    mariadb = callPackage ../development/ocaml-modules/mariadb {
+      inherit (pkgs) mariadb;
+    };
+
+    markup = callPackage ../development/ocaml-modules/markup { };
+
+    mccs = callPackage ../development/ocaml-modules/mccs { };
+
+    mdx = callPackage ../development/ocaml-modules/mdx { };
+
+    mec = callPackage ../development/ocaml-modules/mec { };
+
+    memtrace = callPackage ../development/ocaml-modules/memtrace { };
+
+    menhir = callPackage ../development/ocaml-modules/menhir { };
+
+    menhirLib = callPackage ../development/ocaml-modules/menhir/lib.nix { };
+
+    menhirSdk = callPackage ../development/ocaml-modules/menhir/sdk.nix { };
+
+    merlin =
+      if lib.versionAtLeast ocaml.version "4.12"
+      then callPackage ../development/tools/ocaml/merlin/4.x.nix { }
+      else callPackage ../development/tools/ocaml/merlin { };
+
+    merlin-extend = callPackage ../development/ocaml-modules/merlin-extend { };
+
+    merlin-lib = callPackage ../development/tools/ocaml/merlin/lib.nix { };
+
+    metadata = callPackage ../development/ocaml-modules/metadata { };
+
+    metrics = callPackage ../development/ocaml-modules/metrics { };
+
+    metrics-influx = callPackage ../development/ocaml-modules/metrics/influx.nix { };
+
+    metrics-lwt = callPackage ../development/ocaml-modules/metrics/lwt.nix { };
+
+    metrics-rusage = callPackage ../development/ocaml-modules/metrics/rusage.nix { };
+
+    metrics-unix = callPackage ../development/ocaml-modules/metrics/unix.nix {
+      inherit (pkgs) gnuplot;
+      mtime = mtime_1;
+    };
+
+    mew = callPackage ../development/ocaml-modules/mew { };
+
+    mew_vi = callPackage ../development/ocaml-modules/mew_vi { };
+
+    mezzo = callPackage ../development/compilers/mezzo { };
+
+    mimic = callPackage ../development/ocaml-modules/mimic { };
+
+    mimic-happy-eyeballs = callPackage ../development/ocaml-modules/mimic/happy-eyeballs.nix { };
+
+    minisat = callPackage ../development/ocaml-modules/minisat { };
+
+    mirage = callPackage ../development/ocaml-modules/mirage { };
+
+    mirage-block = callPackage ../development/ocaml-modules/mirage-block { };
+
+    mirage-block-combinators = callPackage ../development/ocaml-modules/mirage-block/combinators.nix { };
+
+    mirage-block-ramdisk = callPackage ../development/ocaml-modules/mirage-block-ramdisk { };
+
+    mirage-block-unix = callPackage ../development/ocaml-modules/mirage-block-unix { };
+
+    mirage-bootvar-unix = callPackage ../development/ocaml-modules/mirage-bootvar-unix { };
+
+    mirage-bootvar-xen = callPackage ../development/ocaml-modules/mirage-bootvar-xen { };
+
+    mirage-channel = callPackage ../development/ocaml-modules/mirage-channel { };
+
+    mirage-clock = callPackage ../development/ocaml-modules/mirage-clock { };
+
+    mirage-clock-solo5 = callPackage ../development/ocaml-modules/mirage-clock/solo5.nix { };
+
+    mirage-clock-unix = callPackage ../development/ocaml-modules/mirage-clock/unix.nix { };
+
+    mirage-console = callPackage ../development/ocaml-modules/mirage-console { };
+
+    mirage-console-unix = callPackage ../development/ocaml-modules/mirage-console/unix.nix { };
+
+    mirage-crypto = callPackage ../development/ocaml-modules/mirage-crypto { };
+
+    mirage-crypto-ec = callPackage ../development/ocaml-modules/mirage-crypto/ec.nix { };
+
+    mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { };
+
+    mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { mtime = mtime_1; };
+
+    mirage-crypto-rng-async = callPackage ../development/ocaml-modules/mirage-crypto/rng-async.nix { };
+
+    mirage-crypto-rng-lwt = callPackage ../development/ocaml-modules/mirage-crypto/rng-lwt.nix { mtime = mtime_1; };
+
+    mirage-crypto-rng-mirage = callPackage ../development/ocaml-modules/mirage-crypto/rng-mirage.nix { };
+
+    mirage-device = callPackage ../development/ocaml-modules/mirage-device { };
+
+    mirage-flow = callPackage ../development/ocaml-modules/mirage-flow { };
+
+    mirage-flow-combinators = callPackage ../development/ocaml-modules/mirage-flow/combinators.nix { };
+
+    mirage-flow-unix = callPackage ../development/ocaml-modules/mirage-flow/unix.nix { };
+
+    mirage-fs = callPackage ../development/ocaml-modules/mirage-fs { };
+
+    mirage-kv = callPackage ../development/ocaml-modules/mirage-kv { };
+
+    mirage-logs = callPackage ../development/ocaml-modules/mirage-logs { };
+
+    mirage-nat = callPackage ../development/ocaml-modules/mirage-nat { };
+
+    mirage-net = callPackage ../development/ocaml-modules/mirage-net { };
+
+    mirage-net-xen = callPackage ../development/ocaml-modules/mirage-net-xen { };
+
+    mirage-profile = callPackage ../development/ocaml-modules/mirage-profile { };
+
+    mirage-protocols = callPackage ../development/ocaml-modules/mirage-protocols { };
+
+    mirage-random = callPackage ../development/ocaml-modules/mirage-random { };
+
+    mirage-random-test = callPackage ../development/ocaml-modules/mirage-random-test { };
+
+    mirage-runtime = callPackage ../development/ocaml-modules/mirage/runtime.nix { };
+
+    mirage-time = callPackage ../development/ocaml-modules/mirage-time { };
+
+    mirage-time-unix = callPackage ../development/ocaml-modules/mirage-time/unix.nix { };
+
+    mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { };
+
+    mirage-xen = callPackage ../development/ocaml-modules/mirage-xen { };
+
+    mirage-vnetif = callPackage ../development/ocaml-modules/mirage-vnetif { };
+
+    mldoc =  callPackage ../development/ocaml-modules/mldoc { };
+
+    mlgmpidl =  callPackage ../development/ocaml-modules/mlgmpidl { };
+
+    mm = callPackage ../development/ocaml-modules/mm { };
+
+    mmap =  callPackage ../development/ocaml-modules/mmap { };
+
+    morbig = callPackage ../development/ocaml-modules/morbig { };
+
+    mparser =  callPackage ../development/ocaml-modules/mparser { };
+
+    mparser-pcre =  callPackage ../development/ocaml-modules/mparser/pcre.nix { };
+
+    msgpck = callPackage ../development/ocaml-modules/msgpck { };
+
+    mrmime = callPackage ../development/ocaml-modules/mrmime { };
+
+    mtime_1 =  callPackage ../development/ocaml-modules/mtime/1_x.nix { };
+    mtime =  callPackage ../development/ocaml-modules/mtime { };
+
+    multipart-form-data =  callPackage ../development/ocaml-modules/multipart-form-data { };
+
+    mustache =  callPackage ../development/ocaml-modules/mustache { };
+
+    ### N ###
+
+    netchannel = callPackage ../development/ocaml-modules/netchannel { };
+
+    nonstd =  callPackage ../development/ocaml-modules/nonstd { };
+
+    note = callPackage ../development/ocaml-modules/note { };
+
+    nottui = callPackage ../development/ocaml-modules/lwd/nottui.nix { };
+
+    nottui-lwt = callPackage ../development/ocaml-modules/lwd/nottui-lwt.nix { };
+
+    nottui-pretty = callPackage ../development/ocaml-modules/lwd/nottui-pretty.nix { };
+
+    notty = callPackage ../development/ocaml-modules/notty { };
+
+    npy = callPackage ../development/ocaml-modules/npy {
+      inherit (pkgs.python3Packages) numpy;
+    };
+
+    num = if lib.versionOlder "4.06" ocaml.version
+      then callPackage ../development/ocaml-modules/num {}
+      else null;
+
+    ### O ###
+
+    ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
+
+    ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { };
+
+    ocaml_expat = callPackage ../development/ocaml-modules/expat { };
+
+    ocaml-freestanding = callPackage ../development/ocaml-modules/ocaml-freestanding { };
+
+    ocaml_gettext = callPackage ../development/ocaml-modules/ocaml-gettext { };
+
+    ocaml_libvirt = callPackage ../development/ocaml-modules/ocaml-libvirt {
+      inherit (pkgs.darwin.apple_sdk.frameworks) Foundation AppKit;
+    };
+
+    ocaml-lsp = callPackage ../development/ocaml-modules/ocaml-lsp { };
+
+    ocaml_lwt = lwt;
+
+    ocaml-migrate-parsetree = ocaml-migrate-parsetree-1-8;
+
+    ocaml-migrate-parsetree-1-8 = callPackage ../development/ocaml-modules/ocaml-migrate-parsetree/1.8.x.nix { };
+
+    ocaml-migrate-parsetree-2 = callPackage ../development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix { };
+
+    ocaml-monadic = callPackage ../development/ocaml-modules/ocaml-monadic { };
+
+    ocaml_mysql = callPackage ../development/ocaml-modules/mysql { };
+
+    ocaml_oasis = callPackage ../development/tools/ocaml/oasis { };
+
+    ocaml_pcre = callPackage ../development/ocaml-modules/pcre {};
+
+    ocaml-print-intf = callPackage ../development/ocaml-modules/ocaml-print-intf { };
+
+    ocaml-protoc = callPackage ../development/ocaml-modules/ocaml-protoc { };
+
+    ocaml-protoc-plugin = callPackage ../development/ocaml-modules/ocaml-protoc-plugin { };
+
+    ocaml-r = callPackage ../development/ocaml-modules/ocaml-r { };
+
+    ocaml-recovery-parser = callPackage ../development/tools/ocaml/ocaml-recovery-parser { };
+
+    ocaml-sat-solvers = callPackage ../development/ocaml-modules/ocaml-sat-solvers { };
+
+    ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { };
+
+    ocaml-syntax-shims = callPackage ../development/ocaml-modules/ocaml-syntax-shims { };
+
+    ocaml-version = callPackage ../development/ocaml-modules/ocaml-version { };
+
+    ocaml-vdom = callPackage ../development/ocaml-modules/ocaml-vdom { };
+
+    ocamlbuild =
+      if lib.versionOlder "4.03" ocaml.version
+        then callPackage ../development/tools/ocaml/ocamlbuild { }
+        else null;
+
+    ocamlc-loc = callPackage ../development/ocaml-modules/ocamlc-loc { };
+
+    # Older versions of OCamlformat should be removed when their usage decrease
+    # This script scraps Github looking for OCamlformat's options and versions usage:
+    #  https://gist.github.com/Julow/110dc94308d6078225e0665e3eccd433
+    ocamlformat_0_19_0 = ocamlformat.override { version = "0.19.0"; };
+    ocamlformat_0_20_0 = ocamlformat.override { version = "0.20.0"; };
+    ocamlformat_0_20_1 = ocamlformat.override { version = "0.20.1"; };
+    ocamlformat_0_21_0 = ocamlformat.override { version = "0.21.0"; };
+    ocamlformat_0_22_4 = ocamlformat.override { version = "0.22.4"; };
+    ocamlformat_0_23_0 = ocamlformat.override { version = "0.23.0"; };
+    ocamlformat_0_24_1 = ocamlformat.override { version = "0.24.1"; };
+    ocamlformat_0_25_1 = ocamlformat.override { version = "0.25.1"; };
+    ocamlformat_0_26_0 = ocamlformat.override { version = "0.26.0"; };
+    ocamlformat_0_26_1 = ocamlformat.override { version = "0.26.1"; };
+
+    ocamlformat = callPackage ../development/ocaml-modules/ocamlformat/ocamlformat.nix {};
+
+    ocamlformat-lib = callPackage ../development/ocaml-modules/ocamlformat/ocamlformat-lib.nix { };
+
+    ocamlformat-rpc-lib = callPackage ../development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix { };
+
+    ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { };
+
+    ocamlgraph = callPackage ../development/ocaml-modules/ocamlgraph { };
+    ocamlgraph_gtk = callPackage ../development/ocaml-modules/ocamlgraph/gtk.nix { };
+
+    ocamlify = callPackage ../development/tools/ocaml/ocamlify { };
+
+    ocamline = callPackage ../development/ocaml-modules/ocamline { };
+
+    ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { };
+
+    ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { };
+
+    ocamlscript = callPackage ../development/tools/ocaml/ocamlscript { };
+
+    ocb-stubblr = callPackage ../development/ocaml-modules/ocb-stubblr { };
+
+    ocf = callPackage ../development/ocaml-modules/ocf { };
+
+    ocf_ppx = callPackage ../development/ocaml-modules/ocf/ppx.nix { };
+
+    ocolor = callPackage ../development/ocaml-modules/ocolor { };
+
+    ocp-build = callPackage ../development/tools/ocaml/ocp-build { };
+
+    ocp-indent = callPackage ../development/tools/ocaml/ocp-indent { };
+
+    ocp-index = callPackage ../development/tools/ocaml/ocp-index { };
+
+    ocp-ocamlres = callPackage ../development/ocaml-modules/ocp-ocamlres { };
+
+    ocplib-endian = callPackage ../development/ocaml-modules/ocplib-endian { };
+
+    ocplib-simplex = callPackage ../development/ocaml-modules/ocplib-simplex { };
+
+    ocsigen-ppx-rpc = callPackage ../development/ocaml-modules/ocsigen-ppx-rpc { };
+
+    ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { };
+
+    ocsigen-start = callPackage ../development/ocaml-modules/ocsigen-start { };
+
+    ocsigen-toolkit = callPackage ../development/ocaml-modules/ocsigen-toolkit { };
+
+    ocsipersist = callPackage ../development/ocaml-modules/ocsipersist {};
+
+    ocsipersist-lib = callPackage ../development/ocaml-modules/ocsipersist/lib.nix { };
+
+    ocsipersist-pgsql = callPackage ../development/ocaml-modules/ocsipersist/pgsql.nix { };
+
+    ocsipersist-sqlite = callPackage ../development/ocaml-modules/ocsipersist/sqlite.nix { };
+
+    octavius = callPackage ../development/ocaml-modules/octavius { };
+
+    ocurl = callPackage ../development/ocaml-modules/ocurl { };
+
+    odate = callPackage ../development/ocaml-modules/odate { };
+
+    odig = callPackage ../development/ocaml-modules/odig { };
+
+    odoc = callPackage ../development/ocaml-modules/odoc { };
+
+    odoc-parser = callPackage ../development/ocaml-modules/odoc-parser { };
+
+    ogg = callPackage ../development/ocaml-modules/ogg { };
+
+    ojs = callPackage ../development/ocaml-modules/gen_js_api/ojs.nix { };
+
+    omd = callPackage ../development/ocaml-modules/omd { };
+
+    opam-core = callPackage ../development/ocaml-modules/opam-core {
+      inherit (pkgs) opam unzip;
+    };
+
+    opam-file-format = callPackage ../development/ocaml-modules/opam-file-format { };
+
+    opam-format = callPackage ../development/ocaml-modules/opam-format {
+      inherit (pkgs) unzip;
+    };
+
+    opam-repository = callPackage ../development/ocaml-modules/opam-repository {
+      inherit (pkgs) unzip;
+    };
+
+    opam-state = callPackage ../development/ocaml-modules/opam-state {
+      inherit (pkgs) unzip;
+    };
+
+    opium = callPackage ../development/ocaml-modules/opium { mtime = mtime_1; };
+
+    opti = callPackage ../development/ocaml-modules/opti { };
+
+    optint = callPackage ../development/ocaml-modules/optint { };
+
+    opus = callPackage ../development/ocaml-modules/opus { };
+
+    ordering = callPackage ../development/ocaml-modules/ordering { };
+
+    oseq = callPackage ../development/ocaml-modules/oseq { };
+
+    otfm = callPackage ../development/ocaml-modules/otfm { };
+
+    otoml = callPackage ../development/ocaml-modules/otoml { };
+
+    otr = callPackage ../development/ocaml-modules/otr { };
+
+    ounit = callPackage ../development/ocaml-modules/ounit { };
+
+    ounit2 = callPackage ../development/ocaml-modules/ounit2 { };
+
+    owee = callPackage ../development/ocaml-modules/owee { };
+
+    owl = callPackage ../development/ocaml-modules/owl { };
+
+    owl-base = callPackage ../development/ocaml-modules/owl-base { };
+
+    ### P ###
+
+    paf = callPackage ../development/ocaml-modules/paf { };
+
+    paf-cohttp = callPackage ../development/ocaml-modules/paf/cohttp.nix { };
+
+    parany = callPackage ../development/ocaml-modules/parany { };
+
+    parmap = callPackage ../development/ocaml-modules/parmap { };
+
+    parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
+
+    path_glob = callPackage ../development/ocaml-modules/path_glob { };
+
+    pbkdf = callPackage ../development/ocaml-modules/pbkdf { };
+
+    pbrt = callPackage ../development/ocaml-modules/pbrt { };
+
+    pcap-format = callPackage ../development/ocaml-modules/pcap-format { };
+
+    pecu = callPackage ../development/ocaml-modules/pecu { };
+
+    pgocaml = callPackage ../development/ocaml-modules/pgocaml {};
+
+    pgocaml_ppx = callPackage ../development/ocaml-modules/pgocaml/ppx.nix {};
+
+    pgsolver = callPackage ../development/ocaml-modules/pgsolver { };
+
+    phylogenetics = janeStreet_0_15.phylogenetics;
+
+    piaf = callPackage ../development/ocaml-modules/piaf { };
+
+    piqi = callPackage ../development/ocaml-modules/piqi { };
+
+    piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
+
+    plotkicadsch = callPackage ../development/ocaml-modules/plotkicadsch {
+      inherit (pkgs) coreutils imagemagick;
+    };
+
+    polynomial = callPackage ../development/ocaml-modules/polynomial { };
+
+    portaudio = callPackage ../development/ocaml-modules/portaudio {
+      inherit (pkgs) portaudio;
+    };
+
+    posix-base = callPackage ../development/ocaml-modules/posix/base.nix { };
+
+    posix-socket = callPackage ../development/ocaml-modules/posix/socket.nix { };
+
+    posix-time2 = callPackage ../development/ocaml-modules/posix/time2.nix { };
+
+    posix-types = callPackage ../development/ocaml-modules/posix/types.nix { };
+
+    postgresql = callPackage ../development/ocaml-modules/postgresql {
+      inherit (pkgs) postgresql;
+    };
+
+    pp = callPackage ../development/ocaml-modules/pp { };
+
+    pp_loc = callPackage ../development/ocaml-modules/pp_loc { };
+
+    pprint = callPackage ../development/ocaml-modules/pprint { };
+
+    ppx_bap = janeStreet_0_15.ppx_bap;
+
+    ppx_bitstring = callPackage ../development/ocaml-modules/bitstring/ppx.nix { };
+
+    ppx_blob = callPackage ../development/ocaml-modules/ppx_blob { };
+
+    ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix { };
+
+    ppx_cstubs = callPackage ../development/ocaml-modules/ppx_cstubs { };
+
+    ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {};
+
+    ppx_deriving = callPackage ../development/ocaml-modules/ppx_deriving {};
+
+    ppx_deriving_cmdliner = callPackage ../development/ocaml-modules/ppx_deriving_cmdliner {};
+
+    ppx_deriving_protobuf = callPackage ../development/ocaml-modules/ppx_deriving_protobuf {};
+
+    ppx_deriving_qcheck = callPackage ../development/ocaml-modules/qcheck/ppx_deriving_qcheck.nix {};
+
+    ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc { };
+
+    ppx_deriving_yaml = callPackage ../development/ocaml-modules/ppx_deriving_yaml {};
+
+    ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {};
+
+    ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {};
+
+    ppx_import = callPackage ../development/ocaml-modules/ppx_import {};
+
+    ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix { };
+
+    ppx_lun = callPackage ../development/ocaml-modules/lun/ppx.nix { };
+
+    ppx_monad = callPackage ../development/ocaml-modules/ppx_monad { };
+
+    ppx_repr = callPackage ../development/ocaml-modules/repr/ppx.nix { };
+
+    ppx_show = callPackage ../development/ocaml-modules/ppx_show { };
+
+    ppx_tools =
+      if lib.versionAtLeast ocaml.version "4.02"
+      then callPackage ../development/ocaml-modules/ppx_tools {}
+      else null;
+
+    ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
+
+    ppx_yojson_conv = callPackage ../development/ocaml-modules/ppx_yojson_conv {};
+
+    ppx_yojson_conv_lib = callPackage ../development/ocaml-modules/ppx_yojson_conv_lib {};
+
+    ppxlib = callPackage ../development/ocaml-modules/ppxlib { };
+
+    pratter = callPackage ../development/ocaml-modules/pratter { };
+
+    prettym = callPackage ../development/ocaml-modules/prettym { };
+
+    printbox = callPackage ../development/ocaml-modules/printbox { };
+
+    printbox-text = callPackage ../development/ocaml-modules/printbox/text.nix { };
+
+    process = callPackage ../development/ocaml-modules/process { };
+
+    prometheus = callPackage ../development/ocaml-modules/prometheus { };
+
+    progress = callPackage ../development/ocaml-modules/progress { mtime = mtime_1; };
+
+    promise_jsoo = callPackage ../development/ocaml-modules/promise_jsoo { };
+
+    psmt2-frontend = callPackage ../development/ocaml-modules/psmt2-frontend { };
+
+    psq = callPackage ../development/ocaml-modules/psq { };
+
+    ptime = callPackage ../development/ocaml-modules/ptime { };
+
+    ptmap = callPackage ../development/ocaml-modules/ptmap { };
+
+    ptset = callPackage ../development/ocaml-modules/ptset { };
+
+    pulseaudio = callPackage ../development/ocaml-modules/pulseaudio {
+      inherit (pkgs) pulseaudio;
+    };
+
+    pure-splitmix = callPackage ../development/ocaml-modules/pure-splitmix { };
+
+    pyml = callPackage ../development/ocaml-modules/pyml { };
+
+    ### Q ###
+
+    qcheck = callPackage ../development/ocaml-modules/qcheck { };
+
+    qcheck-alcotest = callPackage ../development/ocaml-modules/qcheck/alcotest.nix { };
+
+    qcheck-core = callPackage ../development/ocaml-modules/qcheck/core.nix { };
+
+    qcheck-lin = callPackage ../development/ocaml-modules/qcheck/lin.nix { };
+
+    qcheck-multicoretests-util = callPackage ../development/ocaml-modules/qcheck/multicoretests-util.nix { };
+
+    qcheck-ounit = callPackage ../development/ocaml-modules/qcheck/ounit.nix { };
+
+    qcheck-stm = callPackage ../development/ocaml-modules/qcheck/stm.nix { };
+
+    qtest = callPackage ../development/ocaml-modules/qtest { };
+
+    ### R ###
+
+    randomconv = callPackage ../development/ocaml-modules/randomconv { };
+
+    rdbg = callPackage ../development/ocaml-modules/rdbg { };
+
+    re = callPackage ../development/ocaml-modules/re { };
+
+    react = callPackage ../development/ocaml-modules/react { };
+
+    reactivedata = callPackage ../development/ocaml-modules/reactivedata {};
+
+    readline = callPackage ../development/ocaml-modules/readline {
+      readline = pkgs.readline;
+    };
+
+    reason = callPackage ../development/compilers/reason { };
+
+    reason-native = lib.recurseIntoAttrs (callPackage ../development/ocaml-modules/reason-native { });
+
+    rebez = callPackage ../development/ocaml-modules/rebez { };
+
+    reperf = callPackage ../development/ocaml-modules/reperf { };
+
+    repr = callPackage ../development/ocaml-modules/repr { };
+
+    resource-pooling = callPackage ../development/ocaml-modules/resource-pooling { };
+
+    resto = callPackage ../development/ocaml-modules/resto { };
+    resto-acl = callPackage ../development/ocaml-modules/resto/acl.nix { };
+    resto-cohttp = callPackage ../development/ocaml-modules/resto/cohttp.nix { };
+    resto-cohttp-client = callPackage ../development/ocaml-modules/resto/cohttp-client.nix { };
+    resto-cohttp-self-serving-client = callPackage ../development/ocaml-modules/resto/cohttp-self-serving-client.nix { };
+    resto-cohttp-server = callPackage ../development/ocaml-modules/resto/cohttp-server.nix { };
+    resto-directory = callPackage ../development/ocaml-modules/resto/directory.nix { };
+    resto-json = callPackage ../development/ocaml-modules/resto/json.nix { };
+
+    result = callPackage ../development/ocaml-modules/ocaml-result { };
+
+    rfc7748 = callPackage ../development/ocaml-modules/rfc7748 { };
+
+    ringo = callPackage ../development/ocaml-modules/ringo { };
+
+    riot = callPackage ../development/ocaml-modules/riot { };
+
+    rock = callPackage ../development/ocaml-modules/rock { };
+
+    rope = callPackage ../development/ocaml-modules/rope { };
+
+    rosetta = callPackage ../development/ocaml-modules/rosetta { };
+
+    routes = callPackage ../development/ocaml-modules/routes { };
+
+    rpclib = callPackage ../development/ocaml-modules/rpclib { };
+
+    rpclib-lwt = callPackage ../development/ocaml-modules/rpclib/lwt.nix { };
+
+    rresult = callPackage ../development/ocaml-modules/rresult { };
+
+    rusage = callPackage ../development/ocaml-modules/rusage { };
+
+    ### S ###
+
+    safepass = callPackage ../development/ocaml-modules/safepass { };
+
+    sail = callPackage ../development/ocaml-modules/sail { };
+
+    samplerate = callPackage ../development/ocaml-modules/samplerate { };
+
+    saturn = callPackage ../development/ocaml-modules/saturn { };
+
+    saturn_lockfree = callPackage ../development/ocaml-modules/saturn/lockfree.nix { };
+
+    sawja = callPackage ../development/ocaml-modules/sawja { };
+
+    secp256k1 = callPackage ../development/ocaml-modules/secp256k1 {
+      inherit (pkgs) secp256k1;
+    };
+
+    secp256k1-internal = callPackage ../development/ocaml-modules/secp256k1-internal { };
+
+    sedlex = callPackage ../development/ocaml-modules/sedlex { };
+
+    sel = callPackage ../development/ocaml-modules/sel {};
+
+    semaphore-compat = callPackage ../development/ocaml-modules/semaphore-compat { };
+
+    semver = callPackage ../development/ocaml-modules/semver { };
+
+    seq = callPackage ../development/ocaml-modules/seq { };
+
+    seqes = callPackage ../development/ocaml-modules/seqes { };
+
+    sha = callPackage ../development/ocaml-modules/sha { };
+
+    shared-memory-ring = callPackage ../development/ocaml-modules/shared-memory-ring { };
+
+    shared-memory-ring-lwt = callPackage ../development/ocaml-modules/shared-memory-ring/lwt.nix { };
+
+    shine = callPackage ../development/ocaml-modules/shine {
+      inherit (pkgs) shine;
+    };
+
+    simple-diff = callPackage ../development/ocaml-modules/simple-diff { };
+
+    slug = callPackage ../development/ocaml-modules/slug {  };
+
+    sodium = callPackage ../development/ocaml-modules/sodium { };
+
+    sosa = callPackage ../development/ocaml-modules/sosa { };
+
+    soundtouch = callPackage ../development/ocaml-modules/soundtouch {
+      inherit (pkgs) soundtouch;
+    };
+
+    spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
+
+    speex = callPackage ../development/ocaml-modules/speex {
+      inherit (pkgs) speex;
+    };
+
+    spelll = callPackage ../development/ocaml-modules/spelll { };
+
+    srt = callPackage ../development/ocaml-modules/srt {
+      inherit (pkgs) srt;
+    };
+
+    ssl = callPackage ../development/ocaml-modules/ssl { };
+
+    stdcompat = callPackage ../development/ocaml-modules/stdcompat { };
+
+    stdint = callPackage ../development/ocaml-modules/stdint { };
+
+    stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { };
+
+    stdune = callPackage ../development/ocaml-modules/stdune { };
+
+    stog = callPackage ../applications/misc/stog { };
+
+    stringext = callPackage ../development/ocaml-modules/stringext { };
+
+    syslog = callPackage ../development/ocaml-modules/syslog { };
+
+    syslog-message = callPackage ../development/ocaml-modules/syslog-message { };
+
+    ### T ###
+
+    taglib = callPackage ../development/ocaml-modules/taglib {
+      inherit (pkgs) taglib;
+    };
+
+    tar = callPackage ../development/ocaml-modules/tar { };
+
+    tar-unix = callPackage ../development/ocaml-modules/tar/unix.nix {
+      inherit (pkgs) git;
+    };
+
+    tcpip = callPackage ../development/ocaml-modules/tcpip { };
+
+    tcslib = callPackage ../development/ocaml-modules/tcslib { };
+
+    tdigest = callPackage ../development/ocaml-modules/tdigest { };
+
+    telegraml = callPackage ../development/ocaml-modules/telegraml { };
+
+    terminal = callPackage ../development/ocaml-modules/terminal { };
+
+    terminal_size = callPackage ../development/ocaml-modules/terminal_size { };
+
+    tezos-base58 = callPackage ../development/ocaml-modules/tezos-base58 { };
+
+    theora = callPackage ../development/ocaml-modules/theora { };
+
+    thread-table = callPackage ../development/ocaml-modules/thread-table { };
+
+    timed = callPackage ../development/ocaml-modules/timed { };
+
+    tiny_httpd = callPackage ../development/ocaml-modules/tiny_httpd { };
+
+    tls = callPackage ../development/ocaml-modules/tls { };
+
+    tls-async = callPackage ../development/ocaml-modules/tls/async.nix { };
+
+    tls-lwt = callPackage ../development/ocaml-modules/tls/lwt.nix { };
+
+    tls-mirage = callPackage ../development/ocaml-modules/tls/mirage.nix { };
+
+    toml = callPackage ../development/ocaml-modules/toml { };
+
+    topkg = callPackage ../development/ocaml-modules/topkg { };
+
+    torch = callPackage ../development/ocaml-modules/torch {
+      inherit (pkgs.python3Packages) torch;
+    };
+
+    trace = callPackage ../development/ocaml-modules/trace { };
+
+    trace-tef = callPackage ../development/ocaml-modules/trace/tef.nix { };
+
+    trie = callPackage ../development/ocaml-modules/trie { };
+
+    tsdl = callPackage ../development/ocaml-modules/tsdl {
+      inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox Cocoa CoreAudio CoreVideo ForceFeedback;
+    };
+
+    tsdl-image = callPackage ../development/ocaml-modules/tsdl-image { };
+
+    tsdl-mixer = callPackage ../development/ocaml-modules/tsdl-mixer { };
+
+    tsdl-ttf = callPackage ../development/ocaml-modules/tsdl-ttf { };
+
+    tsort = callPackage ../development/ocaml-modules/tsort { };
+
+    tuntap = callPackage ../development/ocaml-modules/tuntap { };
+
+    twt = callPackage ../development/ocaml-modules/twt { };
+
+    tyxml = callPackage ../development/ocaml-modules/tyxml { };
+
+    tyxml-lwd = callPackage ../development/ocaml-modules/lwd/tyxml-lwd.nix { };
+
+    ### U ###
+
+    uchar = callPackage ../development/ocaml-modules/uchar { };
+
+    uecc = callPackage ../development/ocaml-modules/uecc { };
+
+    ulex = callPackage ../development/ocaml-modules/ulex { };
+
+    unionFind = callPackage ../development/ocaml-modules/unionFind { };
+
+    unisim_archisec = callPackage ../development/ocaml-modules/unisim_archisec { };
+
+    unix-errno = callPackage ../development/ocaml-modules/unix-errno { };
+
+    unstrctrd = callPackage ../development/ocaml-modules/unstrctrd { };
+
+    uri = callPackage ../development/ocaml-modules/uri { };
+
+    uri-sexp = callPackage ../development/ocaml-modules/uri/sexp.nix { };
+
+    uring = callPackage ../development/ocaml-modules/uring { };
+
+    utop = callPackage ../development/tools/ocaml/utop { };
+
+    uucd = callPackage ../development/ocaml-modules/uucd { };
+
+    uucp = callPackage ../development/ocaml-modules/uucp { };
+
+    uuidm = callPackage ../development/ocaml-modules/uuidm { };
+
+    uunf = callPackage ../development/ocaml-modules/uunf { };
+
+    uuseg = callPackage ../development/ocaml-modules/uuseg { };
+
+    uutf = callPackage ../development/ocaml-modules/uutf { };
+
+    uuuu = callPackage ../development/ocaml-modules/uuuu { };
+
+    ### V ###
+
+    vchan = callPackage ../development/ocaml-modules/vchan { };
+
+    vector = callPackage ../development/ocaml-modules/vector { };
+
+    vg = callPackage ../development/ocaml-modules/vg { };
+
+    visitors = callPackage ../development/ocaml-modules/visitors { };
+
+    vlq = callPackage ../development/ocaml-modules/vlq { };
+
+    vorbis = callPackage ../development/ocaml-modules/vorbis { };
+
+    ### W ###
+
+    wasm = callPackage ../development/ocaml-modules/wasm { };
+
+    wayland = callPackage ../development/ocaml-modules/wayland { };
+
+    webbrowser = callPackage ../development/ocaml-modules/webbrowser { };
+
+    webmachine = callPackage ../development/ocaml-modules/webmachine { };
+
+    wtf8 = callPackage ../development/ocaml-modules/wtf8 { };
+
+    ### X ###
+
+    x509 = callPackage ../development/ocaml-modules/x509 { };
+
+    xdg = callPackage ../development/ocaml-modules/xdg { };
+
+    xenstore = callPackage ../development/ocaml-modules/xenstore { };
+
+    xenstore-tool = callPackage ../development/ocaml-modules/xenstore-tool { };
+
+    xenstore_transport = callPackage ../development/ocaml-modules/xenstore_transport { };
+
+    xml-light = callPackage ../development/ocaml-modules/xml-light { };
+
+    xmlm = callPackage ../development/ocaml-modules/xmlm { };
+
+    xmlplaylist = callPackage ../development/ocaml-modules/xmlplaylist { };
+
+    xtmpl = callPackage ../development/ocaml-modules/xtmpl { };
+
+    xtmpl_ppx = callPackage ../development/ocaml-modules/xtmpl/ppx.nix { };
+
+    ### Y ###
+
+    yaml = callPackage ../development/ocaml-modules/yaml { };
+
+    yaml-sexp = callPackage ../development/ocaml-modules/yaml/yaml-sexp.nix { };
+
+    yojson = callPackage ../development/ocaml-modules/yojson { };
+
+    yuscii = callPackage ../development/ocaml-modules/yuscii { };
+
+    yuujinchou = callPackage ../development/ocaml-modules/yuujinchou { };
+
+    ### Z ###
+
+    z3 = callPackage ../development/ocaml-modules/z3 {
+      inherit (pkgs) z3;
+    };
+
+    zarith = callPackage ../development/ocaml-modules/zarith { };
+
+    zed = callPackage ../development/ocaml-modules/zed { };
+
+    zelus = callPackage ../development/ocaml-modules/zelus { };
+
+    zelus-gtk = callPackage ../development/ocaml-modules/zelus-gtk { };
+
+    zipc = callPackage ../development/ocaml-modules/zipc { };
+
+    zmq = callPackage ../development/ocaml-modules/zmq { };
+
+    zmq-lwt = callPackage ../development/ocaml-modules/zmq/lwt.nix { };
+
+    ### Exceptional packages kept out of order ###
+
+    # Libs
+
+    buildDunePackage = callPackage ../build-support/ocaml/dune.nix { };
+
+    buildOasisPackage = callPackage ../build-support/ocaml/oasis.nix { };
+
+    buildTopkgPackage = callPackage ../build-support/ocaml/topkg.nix { };
+
+    # Apps from all-packages, to be eventually removed
+
+    google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse { };
+
+    hol_light = callPackage ../applications/science/logic/hol_light { };
+
+    ocamlnat = callPackage  ../development/ocaml-modules/ocamlnat { };
+
+    ### End ###
+
+  })).overrideScope liftJaneStreet;
+
+in let inherit (pkgs) callPackage; in rec
+{
+  inherit mkOcamlPackages;
+
+  ocamlPackages_4_00_1 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.00.1.nix { });
+
+  ocamlPackages_4_01_0 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.01.0.nix { });
+
+  ocamlPackages_4_02 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.02.nix { });
+
+  ocamlPackages_4_03 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.03.nix { });
+
+  ocamlPackages_4_04 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.04.nix { });
+
+  ocamlPackages_4_05 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.05.nix { });
+
+  ocamlPackages_4_06 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.06.nix { });
+
+  ocamlPackages_4_07 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.07.nix { });
+
+  ocamlPackages_4_08 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.08.nix { });
+
+  ocamlPackages_4_09 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.09.nix { });
+
+  ocamlPackages_4_10 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.10.nix { });
+
+  ocamlPackages_4_11 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.11.nix { });
+
+  ocamlPackages_4_12 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.12.nix { });
+
+  ocamlPackages_4_13 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.13.nix { });
+
+  ocamlPackages_4_14 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.14.nix { });
+
+  ocamlPackages_5_0 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.0.nix { });
+
+  ocamlPackages_5_1 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.1.nix { });
+
+  ocamlPackages_latest = ocamlPackages_5_1;
+
+  ocamlPackages = ocamlPackages_4_14;
+
+  # This is a nasty way to replace toplevel janestreet attributes in the scope,
+  # so that modules outside of ocamlPackages that depend on JS OCaml libraries
+  # *and* non-JS OCaml libraries can pull in the same version of JS transitive
+  # dependencies. Remove this once ligo and stanc can be compiled against
+  # janestreet 0.16 libraries.
+  ocamlPackages_4_14_janeStreet_0_15 = ocamlPackages_4_14.overrideScope (self: super: super // super.janeStreet_0_15);
+
+  # We still have packages that rely on unsafe-string, which is deprecated in OCaml 4.06.0.
+  # Below are aliases for porting them to the latest versions of the OCaml 4 series.
+  ocamlPackages_4_14_unsafe_string = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.14.nix {
+    unsafeStringSupport = true;
+  });
+}
diff --git a/nixpkgs/pkgs/top-level/octave-packages.nix b/nixpkgs/pkgs/top-level/octave-packages.nix
new file mode 100644
index 000000000000..374163fa5673
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/octave-packages.nix
@@ -0,0 +1,213 @@
+# This file contains the GNU Octave add-on packages set.
+# Each attribute is an Octave library.
+# Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules/<name>/default.nix`.
+
+# When contributing a new package, if that package has a dependency on another
+# octave package, then you DO NOT need to explicitly list it as such when
+# performing the callPackage. It will be passed implicitly.
+# In addition, try to use the same dependencies as the ones octave needs, which
+# should ensure greater compatibility between Octave itself and its packages.
+
+# Like python-packages.nix, packages from top-level.nix are not in the scope
+# of the `callPackage` used for packages here. So, when we do need packages
+# from outside, we can `inherit` them from `pkgs`.
+{ pkgs
+, lib
+, stdenv
+, fetchurl
+, newScope
+, octave
+}:
+
+with lib;
+
+makeScope newScope (self:
+  let
+    callPackage = self.callPackage;
+
+    buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix {
+      inherit lib stdenv;
+      inherit octave;
+      inherit computeRequiredOctavePackages;
+    };
+
+    # Given a list of required Octave package derivations, get a list of
+    # ALL required Octave packages needed for the ones specified to run.
+    computeRequiredOctavePackages = drvs: let
+      # Check whether a derivation is an octave package
+      hasOctavePackage = drv: drv?isOctavePackage;
+      packages = filter hasOctavePackage drvs;
+    in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages));
+
+  in {
+
+    inherit callPackage buildOctavePackage computeRequiredOctavePackages;
+
+    inherit (callPackage ../development/interpreters/octave/hooks { })
+      writeRequiredOctavePackagesHook;
+
+    arduino = callPackage ../development/octave-modules/arduino {
+      inherit (pkgs) arduino-core-unwrapped;
+    };
+
+    audio = callPackage ../development/octave-modules/audio { };
+
+    bim = callPackage ../development/octave-modules/bim { };
+
+    bsltl = callPackage ../development/octave-modules/bsltl { };
+
+    cgi = callPackage ../development/octave-modules/cgi { };
+
+    communications = callPackage ../development/octave-modules/communications { };
+
+    control = callPackage ../development/octave-modules/control { };
+
+    data-smoothing = callPackage ../development/octave-modules/data-smoothing { };
+
+    database = callPackage ../development/octave-modules/database { };
+
+    dataframe = callPackage ../development/octave-modules/dataframe { };
+
+    dicom = callPackage ../development/octave-modules/dicom { };
+
+    divand = callPackage ../development/octave-modules/divand { };
+
+    doctest = callPackage ../development/octave-modules/doctest { };
+
+    econometrics = callPackage ../development/octave-modules/econometrics { };
+
+    fem-fenics = callPackage ../development/octave-modules/fem-fenics {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+      ffc = null;
+    };
+
+    fits = callPackage ../development/octave-modules/fits { };
+
+    financial = callPackage ../development/octave-modules/financial { };
+
+    fpl = callPackage ../development/octave-modules/fpl { };
+
+    fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { };
+
+    ga = callPackage ../development/octave-modules/ga { };
+
+    general = callPackage ../development/octave-modules/general {
+      nettle = pkgs.nettle;
+    };
+
+    generate_html = callPackage ../development/octave-modules/generate_html { };
+
+    geometry = callPackage ../development/octave-modules/geometry { };
+
+    gsl = callPackage ../development/octave-modules/gsl {
+      inherit (pkgs) gsl;
+    };
+
+    image = callPackage ../development/octave-modules/image { };
+
+    image-acquisition = callPackage ../development/octave-modules/image-acquisition { };
+
+    instrument-control = callPackage ../development/octave-modules/instrument-control { };
+
+    io = callPackage ../development/octave-modules/io {
+      inherit (octave) enableJava;
+    };
+
+    interval = callPackage ../development/octave-modules/interval { };
+
+    level-set = callPackage ../development/octave-modules/level-set { };
+
+    linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
+
+    lssa = callPackage ../development/octave-modules/lssa { };
+
+    ltfat = callPackage ../development/octave-modules/ltfat {
+      inherit (octave) fftw fftwSinglePrec portaudio jdk;
+      inherit (pkgs) fftwFloat fftwLongDouble;
+    };
+
+    mapping = callPackage ../development/octave-modules/mapping { };
+
+    matgeom = callPackage ../development/octave-modules/matgeom { };
+
+    miscellaneous = callPackage ../development/octave-modules/miscellaneous { };
+
+    msh = callPackage ../development/octave-modules/msh {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+    };
+
+    mvn = callPackage ../development/octave-modules/mvn { };
+
+    nan = callPackage ../development/octave-modules/nan { };
+
+    ncarray = callPackage ../development/octave-modules/ncarray { };
+
+    netcdf = callPackage ../development/octave-modules/netcdf {
+      inherit (pkgs) netcdf;
+    };
+
+    nurbs = callPackage ../development/octave-modules/nurbs { };
+
+    ocl = callPackage ../development/octave-modules/ocl { };
+
+    octclip = callPackage ../development/octave-modules/octclip { };
+
+    octproj = callPackage ../development/octave-modules/octproj { };
+
+    optics = callPackage ../development/octave-modules/optics { };
+
+    optim = callPackage ../development/octave-modules/optim { };
+
+    optiminterp = callPackage ../development/octave-modules/optiminterp { };
+
+    parallel = callPackage ../development/octave-modules/parallel { };
+
+    quaternion = callPackage ../development/octave-modules/quaternion { };
+
+    queueing = callPackage ../development/octave-modules/queueing { };
+
+    signal = callPackage ../development/octave-modules/signal { };
+
+    sockets = callPackage ../development/octave-modules/sockets { };
+
+    sparsersb = callPackage ../development/octave-modules/sparsersb { };
+
+    stk = callPackage ../development/octave-modules/stk { };
+
+    splines = callPackage ../development/octave-modules/splines { };
+
+    statistics = callPackage ../development/octave-modules/statistics { };
+
+    strings = callPackage ../development/octave-modules/strings { };
+
+    struct = callPackage ../development/octave-modules/struct { };
+
+    symbolic = callPackage ../development/octave-modules/symbolic {
+      inherit (octave) python;
+    };
+
+    tisean = callPackage ../development/octave-modules/tisean { };
+
+    tsa = callPackage ../development/octave-modules/tsa { };
+
+    vibes = callPackage ../development/octave-modules/vibes {
+      vibes = null;
+      # TODO: Need to package vibes:
+      # https://github.com/ENSTABretagneRobotics/VIBES
+    };
+
+    video = callPackage ../development/octave-modules/video { };
+
+    vrml = callPackage ../development/octave-modules/vrml {
+      freewrl = null;
+    };
+
+    windows = callPackage ../development/octave-modules/windows { };
+
+    zeromq = callPackage ../development/octave-modules/zeromq {
+      inherit (pkgs) zeromq autoreconfHook;
+    };
+
+  })
diff --git a/nixpkgs/pkgs/top-level/packages-config.nix b/nixpkgs/pkgs/top-level/packages-config.nix
new file mode 100644
index 000000000000..b1c436d1ccf2
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/packages-config.nix
@@ -0,0 +1,54 @@
+# Used in the generation of package search database.
+{
+  # Ensures no aliases are in the results.
+  allowAliases = false;
+
+  # Enable recursion into attribute sets that nix-env normally doesn't look into
+  # so that we can get a more complete picture of the available packages for the
+  # purposes of the index.
+  packageOverrides = super: with super; lib.mapAttrs (_: set: recurseIntoAttrs set) {
+    inherit (super)
+      apacheHttpdPackages
+      fdbPackages
+      fusePackages
+      gns3Packages
+      idrisPackages
+      nodePackages
+      nodePackages_latest
+      platformioPackages
+      quicklispPackagesClisp
+      quicklispPackagesSBCL
+      rPackages
+      roundcubePlugins
+      sourceHanPackages
+      steamPackages
+      ut2004Packages
+      zabbix40
+      zabbix50
+      zabbix60
+      zeroadPackages
+    ;
+
+    haskellPackages = super.haskellPackages // {
+      # mesos, which this depends on, has been removed from nixpkgs. We are keeping
+      # the error message for now, so users will get an error message they can make
+      # sense of, but need to work around it here.
+      # TODO(@sternenseemann): remove this after branch-off of 22.05, along with the
+      # override in configuration-nix.nix
+      hs-mesos = null;
+    };
+
+    # Make sure haskell.compiler is included, so alternative GHC versions show up,
+    # but don't add haskell.packages.* since they contain the same packages (at
+    # least by name) as haskellPackages.
+    haskell = super.haskell // {
+      compiler = recurseIntoAttrs super.haskell.compiler;
+    };
+
+    # minimal-bootstrap packages aren't used for anything but bootstrapping our
+    # stdenv. They should not be used for any other purpose and therefore not
+    # show up in search results or repository tracking services that consume our
+    # packages.json https://github.com/NixOS/nixpkgs/issues/244966
+    minimal-bootstrap = { };
+  };
+}
diff --git a/nixpkgs/pkgs/top-level/perl-packages.nix b/nixpkgs/pkgs/top-level/perl-packages.nix
new file mode 100644
index 000000000000..16ac93193ac3
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/perl-packages.nix
@@ -0,0 +1,29337 @@
+/* This file defines the composition for CPAN (Perl) packages.  It has
+   been factored out of all-packages.nix because there are so many of
+   them.  Also, because most Nix expressions for CPAN packages are
+   trivial, most are actually defined here.  I.e. there's no function
+   for each package in a separate file: the call to the function would
+   be almost as much code as the function itself. */
+
+{ config
+, stdenv, lib, buildPackages, pkgs, darwin
+, fetchurl, fetchpatch, fetchFromGitHub, fetchFromGitLab
+, perl, shortenPerlShebang
+, nixosTests
+}:
+
+self:
+
+# cpan2nix assumes that perl-packages.nix will be used only with perl 5.30.3 or above
+assert lib.versionAtLeast perl.version "5.30.3";
+let
+  inherit (lib) maintainers teams;
+
+in
+with self; {
+
+  inherit perl;
+  perlPackages = self // { perlPackages = self.perlPackages // { __attrsFailEvaluation = true; }; };
+
+  # Check whether a derivation provides a perl module.
+  hasPerlModule = drv: drv ? perlModule ;
+
+  requiredPerlModules = drvs: let
+    modules = lib.filter hasPerlModule drvs;
+  in lib.unique ([perl] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPerlModules" modules));
+
+  # Convert derivation to a perl module.
+  toPerlModule = drv:
+    drv.overrideAttrs( oldAttrs: {
+      # Use passthru in order to prevent rebuilds when possible.
+      passthru = (oldAttrs.passthru or {}) // {
+        perlModule = perl;
+        requiredPerlModules = requiredPerlModules drv.propagatedBuildInputs;
+      };
+    });
+
+  buildPerlPackage = callPackage ../development/perl-modules/generic { };
+
+  # Helper functions for packages that use Module::Build to build.
+  buildPerlModule = args:
+    buildPerlPackage ({
+      buildPhase = ''
+        runHook preBuild
+        perl Build.PL --prefix=$out; ./Build build
+        runHook postBuild
+      '';
+      installPhase = ''
+        runHook preInstall
+        ./Build install
+        runHook postInstall
+      '';
+      checkPhase = ''
+        runHook preCheck
+        ./Build test
+        runHook postCheck
+      '';
+    } // args // {
+      preConfigure = ''
+        touch Makefile.PL
+        ${args.preConfigure or ""}
+      '';
+      buildInputs = (args.buildInputs or []) ++ [ ModuleBuild ];
+    });
+
+  /* Construct a perl search path (such as $PERL5LIB)
+
+     Example:
+       pkgs = import <nixpkgs> { }
+       makePerlPath [ pkgs.perlPackages.libnet ]
+       => "/nix/store/n0m1fk9c960d8wlrs62sncnadygqqc6y-perl-Net-SMTP-1.25/lib/perl5/site_perl"
+  */
+  makePerlPath = lib.makeSearchPathOutput "lib" perl.libPrefix;
+
+  /* Construct a perl search path recursively including all dependencies (such as $PERL5LIB)
+
+     Example:
+       pkgs = import <nixpkgs> { }
+       makeFullPerlPath [ pkgs.perlPackages.CGI ]
+       => "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl"
+  */
+  makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps);
+
+
+  ack = buildPerlPackage rec {
+    pname = "ack";
+    version = "3.7.0";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/ack-v${version}.tar.gz";
+      hash = "sha256-6nyqFPdX3ggzEO0suimGYd3Mpd7gbsjxgEPqYlp53yA=";
+    };
+
+    outputs = [ "out" "man" ];
+
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ FileNext ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/ack
+    '';
+
+    # tests fails on nixos and hydra because of different purity issues
+    doCheck = false;
+
+    meta = {
+      description = "A grep-like tool tailored to working with large trees of source code";
+      homepage = "https://beyondgrep.com";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ActionCircuitBreaker = buildPerlPackage {
+    pname = "Action-CircuitBreaker";
+    version = "0.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HANGY/Action-CircuitBreaker-0.1.tar.gz";
+      hash = "sha256-P49dcm+uU3qzNuAKaBmuSoWW5MXyQ+dypTbvLrbmBrE=";
+    };
+    buildInputs = [ ActionRetry TryTiny ];
+    propagatedBuildInputs = [ Moo ];
+    meta = {
+      description = "Module to try to perform an action, with an option to suspend execution after a number of failures";
+      homepage = "https://github.com/hangy/Action-CircuitBreaker";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ActionRetry = buildPerlPackage {
+    pname = "Action-Retry";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAMS/Action-Retry-0.24.tar.gz";
+      hash = "sha256-o3WXQsW+8tGXWrc9NUmdgRMySRmySTYTAlXP8H0ClPc=";
+    };
+    propagatedBuildInputs = [ MathFibonacci ModuleRuntime Moo ];
+    meta = {
+      description = "Module to try to perform an action, with various ways of retrying and sleeping between retries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlgorithmAnnotate = buildPerlPackage {
+    pname = "Algorithm-Annotate";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLKAO/Algorithm-Annotate-0.10.tar.gz";
+      hash = "sha256-ybF2RkOTPrGjNWkGzDctSDqZQWIHox3z5Y7piS2ZIvk=";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ];
+    meta = {
+      description = "Represent a series of changes in annotate form";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlgorithmBackoff = buildPerlPackage {
+    pname = "Algorithm-Backoff";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Algorithm-Backoff-0.009.tar.gz";
+      sha256 = "9f0ffcdf1e65a88022d6412f46ad977ede5a7b64be663009d13948fe8c9d180b";
+    };
+    buildInputs = [ TestException TestNumberDelta ];
+    meta = {
+      homepage = "https://metacpan.org/release/Algorithm-Backoff";
+      description = "Various backoff strategies for retry";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlgorithmC3 = buildPerlPackage {
+    pname = "Algorithm-C3";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Algorithm-C3-0.11.tar.gz";
+      hash = "sha256-qvSEZ3Zd7qbkgFS8fUPkbk1Ay82hZVLGKdN74Jgokwk=";
+    };
+    meta = {
+      description = "A module for merging hierarchies using the C3 algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlgorithmCheckDigits = buildPerlModule {
+    pname = "Algorithm-CheckDigits";
+    version = "1.3.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAMAWE/Algorithm-CheckDigits-v1.3.6.tar.gz";
+      hash = "sha256-DySHqP0fMbGcUbJlCELyJkwed9liSHoTtSG74GbEtLw=";
+    };
+    buildInputs = [ ProbePerl ];
+    meta = {
+      description = "Perl extension to generate and test check digits";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "checkdigits.pl";
+    };
+  };
+
+  AlgorithmDiff = buildPerlPackage {
+    pname = "Algorithm-Diff";
+    version = "1.1903";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz";
+      hash = "sha256-MOhKxLMdQLZik/exIhMxxaUFYaOdWA2FAE2cH/+ZF1E=";
+    };
+    buildInputs = [ pkgs.unzip ];
+    meta = {
+      description = "Compute 'intelligent' differences between two files / lists";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlgorithmLCSS = buildPerlPackage {
+    pname = "Algorithm-LCSS";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JF/JFREEMAN/Algorithm-LCSS-0.01.tar.gz";
+      hash = "sha256-cXzvzHhCoXGrVXbyLrcuVm7fBhzq+H3Mvn8ggfVgH3g=";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ];
+    meta = {
+      description = "Perl extension for getting the Longest Common Sub-Sequence";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  AlgorithmMerge = buildPerlPackage {
+    pname = "Algorithm-Merge";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JS/JSMITH/Algorithm-Merge-0.08.tar.gz";
+      hash = "sha256-nAaIJYodxLg5iAU7n5qY53KM25tppQCNy9JR0PgIFs8=";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ];
+    meta = {
+      description = "Three-way merge and diff";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienBaseModuleBuild = buildPerlModule {
+    pname = "Alien-Base-ModuleBuild";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Base-ModuleBuild-1.17.tar.gz";
+      hash = "sha256-/nJwrHNa3ehk5GjiHGQqRxuoi6Ja0w2pRXiDITLyufQ=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ AlienBuild ArchiveExtract CaptureTiny Filechdir PathTiny ShellConfigGenerate ShellGuess SortVersions URI ];
+    meta = {
+      description = "A Module::Build subclass for building Alien:: modules and their libraries";
+      homepage = "https://metacpan.org/pod/Alien::Base::ModuleBuild";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienBuild = buildPerlPackage {
+    pname = "Alien-Build";
+    version = "2.80";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-2.80.tar.gz";
+      hash = "sha256-2e3JNrBnBbtcte5aLqi89hEaPogVkU8XfhXjwP7TAfM=";
+    };
+    propagatedBuildInputs = [ CaptureTiny FFICheckLib FileWhich Filechdir PathTiny PkgConfig ];
+    buildInputs = [ DevelHide Test2Suite ];
+    meta = {
+      description = "Build external dependencies for use in CPAN";
+      homepage = "https://metacpan.org/pod/Alien::Build";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienBuildPluginDownloadGitLab = buildPerlPackage {
+    pname = "Alien-Build-Plugin-Download-GitLab";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-Plugin-Download-GitLab-0.01.tar.gz";
+      hash = "sha256-wfCJyOoVKniZCdSKg9v88mJvdz2vMEMchiJYKyarqQI=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ AlienBuild PathTiny URI ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Alien::Build::Plugin::Download::GitLab";
+      description = "Alien::Build plugin to download from GitLab";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienFFI = buildPerlPackage {
+    pname = "Alien-FFI";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-FFI-0.27.tar.gz";
+      hash = "sha256-Kbsgg/P5gqOfSFIkP09qEZFpZvIObneGTpkmnRHotl4=";
+    };
+    patches = [ ../development/perl-modules/Alien-FFI-dont-download.patch ];
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ pkgs.libffi CaptureTiny Test2Suite NetSSLeay MojoDOM58 IOSocketSSL ];
+    propagatedBuildInputs = [ AlienBuild ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Alien::FFI";
+      description = "Build and make available libffi";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  AlienGMP = buildPerlPackage {
+    pname = "Alien-GMP";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.16.tar.gz";
+      hash = "sha256-CQzUjuU1v2LxeIlWF6hReDrhGqTGAGof1NhKQy8RPaU=";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ pkgs.gmp Alienm4 DevelChecklib IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
+    meta = {
+      description = "Alien package for the GNU Multiple Precision library";
+      homepage = "https://metacpan.org/pod/Alien::GMP";
+      license = with lib.licenses; [ lgpl3Plus ];
+    };
+  };
+
+  AlienLibGumbo = buildPerlModule {
+    pname = "Alien-LibGumbo";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RUZ/Alien-LibGumbo-0.05.tar.gz";
+      hash = "sha256-D76RarEfaA5cKM0ayAA3IyPioOBq/8bIs2J5/GTXZRc=";
+    };
+    buildInputs = [ AlienBaseModuleBuild ];
+    propagatedBuildInputs = [ AlienBuild FileShareDir PathClass ];
+    meta = {
+      description = "Gumbo parser library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.AlienLibGumbo.x86_64-darwin
+    };
+  };
+
+  AlienLibxml2 = buildPerlPackage {
+    pname = "Alien-Libxml2";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.19.tar.gz";
+      hash = "sha256-9KZ0CZu9V0fAw7derYQfOyRJNdnvQro1NoAkvWERdMk=";
+    };
+    strictDeps = true;
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ pkgs.libxml2 AlienBuildPluginDownloadGitLab MojoDOM58 SortVersions Test2Suite URI ];
+    meta = {
+      description = "Install the C libxml2 library on your system";
+      homepage = "https://metacpan.org/pod/Alien::Libxml2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  aliased = buildPerlModule {
+    pname = "aliased";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/aliased-0.34.tar.gz";
+      hash = "sha256-w1BSRQfNgn+rhk5dTCzDULG6uqEvqVrsDKAIQ/zH3us=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Use shorter versions of class names";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  asa = buildPerlPackage {
+    pname = "asa";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/asa-1.04.tar.gz";
+      hash = "sha256-5YM7dOczuu4Z0e9eBLEmPBz/nBdGmVrXL8QJGPRAZ14=";
+    };
+    meta = {
+      description = "Lets your class/object say it works like something else";
+      homepage = "https://github.com/karenetheridge/asa";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienSDL = buildPerlModule {
+    pname = "Alien-SDL";
+    version = "1.446";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FROGGS/Alien-SDL-1.446.tar.gz";
+      hash = "sha256-yaosncPGPYl3PH1yA/KkbRuSTQxy2fgBrxR6Pci8USo=";
+    };
+    patches = [ ../development/perl-modules/alien-sdl.patch ];
+
+    installPhase = "./Build install --prefix $out";
+
+    SDL_INST_DIR = lib.getDev pkgs.SDL;
+    buildInputs = [ pkgs.SDL ArchiveExtract ArchiveZip TextPatch ];
+    propagatedBuildInputs = [ CaptureTiny FileShareDir FileWhich ];
+
+    meta = {
+      description = "Get, Build and Use SDL libraries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienTidyp = buildPerlModule {
+    pname = "Alien-Tidyp";
+    version = "1.4.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KM/KMX/Alien-Tidyp-v1.4.7.tar.gz";
+      hash = "sha256-uWTL2nH79sDqaaTztBUEwUXygWga/hmewrSUQC6/SmU=";
+    };
+
+    buildInputs = [ ArchiveExtract ];
+    TIDYP_DIR = pkgs.tidyp;
+    propagatedBuildInputs = [ FileShareDir ];
+    meta = {
+      description = "Building, finding and using tidyp library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AlienWxWidgets = buildPerlModule {
+    pname = "Alien-wxWidgets";
+    version = "0.69";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Alien-wxWidgets-0.69.tar.gz";
+      hash = "sha256-UyJOS7vv/0z3tj7ZpiljiTuf/Ull1w2WcQNI+Gdt4kk=";
+    };
+    postPatch = ''
+      substituteInPlace Build.PL \
+        --replace "gtk+-2.0" "gtk+-3.0"
+    '';
+    propagatedBuildInputs = [ pkgs.pkg-config pkgs.gtk3 pkgs.wxGTK32 ModulePluggable ];
+    buildInputs = [ LWPProtocolHttps ];
+    meta = {
+      description = "Building, finding and using wxWidgets binaries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Alienm4 = buildPerlPackage {
+    pname = "Alien-m4";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-m4-0.21.tar.gz";
+      hash = "sha256-qypAXIA5RP0BxR+h6fK+/VhxqwPxdE3sKlZonyFI02E=";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ pkgs.gnum4 Alienpatch IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
+    meta = {
+      description = "Find or build GNU m4";
+      homepage = "https://metacpan.org/pod/Alien::m4";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Alienpatch = buildPerlPackage {
+    pname = "Alien-patch";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-patch-0.15.tar.gz";
+      hash = "sha256-/tZyJbLZamZpL30vQ+DTRykhRSnbHWsTsNykYgquANA=";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
+    meta = {
+      description = "Find or build patch";
+      homepage = "https://metacpan.org/pod/Alien::patch";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AltCryptRSABigInt = buildPerlPackage {
+    pname = "Alt-Crypt-RSA-BigInt";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Alt-Crypt-RSA-BigInt-0.06.tar.gz";
+      hash = "sha256-dvQ0yrNpmc3wmBE0W7Oda3y+1+CFsCM4Mox/RuCLOPM=";
+    };
+    propagatedBuildInputs = [ ClassLoader ConvertASCIIArmour DataBuffer DigestMD2 MathBigIntGMP MathPrimeUtil SortVersions TieEncryptedHash ];
+    meta = {
+      description = "RSA public-key cryptosystem, using Math::BigInt";
+      homepage = "https://github.com/danaj/Alt-Crypt-RSA-BigInt";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  AnyEvent = buildPerlPackage {
+    pname = "AnyEvent";
+    version = "7.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-7.17.tar.gz";
+      hash = "sha256-UL7qaJwJj+Sq64OAbEC5/n+UbVdprPmfhJ8JkJGkuYU=";
+    };
+    buildInputs = [ CanaryStability ];
+    meta = {
+      description = "The DBI of event loop programming";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventAIO = buildPerlPackage {
+    pname ="AnyEvent-AIO";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-AIO-1.1.tar.gz";
+      hash = "sha256-axBbjGQVYWMfUz7DQj6AZ6PX1YBDv4Xw9eCdcGkFcGs=";
+    };
+    propagatedBuildInputs = [ AnyEvent IOAIO ];
+    meta = {
+      description = "Truly asynchronous file and directory I/O";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventBDB = buildPerlPackage rec {
+    pname = "AnyEvent-BDB";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
+      hash = "sha256-k+NgEJQEZGJuXzG5+u3WXhLtjRq/Fs4FL+vyP0la78g=";
+    };
+    buildInputs = [ CanaryStability ];
+    propagatedBuildInputs = [ BDB AnyEvent ];
+    meta = {
+      description = "Truly asynchronous berkeley db access";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventCacheDNS = buildPerlModule {
+    pname = "AnyEvent-CacheDNS";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PO/POTYL/AnyEvent-CacheDNS-0.08.tar.gz";
+      hash = "sha256-QcH68YO2GAa1WInO6hI3dQwfYbnOJzX98z3AVTZxLa4=";
+    };
+    propagatedBuildInputs = [ AnyEvent ];
+    doCheck = false; # does an DNS lookup
+    meta = {
+      description = "Simple DNS resolver with caching";
+      homepage = "https://github.com/potyl/perl-AnyEvent-CacheDNS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventFastPing = buildPerlPackage {
+    pname = "AnyEvent-FastPing";
+    version = "2.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-FastPing-2.1.tar.gz";
+      hash = "sha256-5ZIbj3rTXJg6ACWuAKSPyVyQwX/uw+WFmBhwSwxScCw=";
+    };
+    propagatedBuildInputs = [ AnyEvent commonsense ];
+    meta = {
+      description = "Quickly ping a large number of hosts";
+      license = with lib.licenses; [ artistic1 gpl2Plus ];
+      mainProgram = "fastping";
+    };
+  };
+
+  AnyEventHTTP = buildPerlPackage {
+    pname = "AnyEvent-HTTP";
+    version = "2.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.25.tar.gz";
+      hash = "sha256-XPpTQWEkF29vTNMrAOqMp5otXfUSWGg5ic0E/obiUBM=";
+    };
+    propagatedBuildInputs = [ AnyEvent commonsense ];
+    meta = {
+      description = "Simple but non-blocking HTTP/HTTPS client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventI3 = buildPerlPackage {
+    pname = "AnyEvent-I3";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.17.tar.gz";
+      hash = "sha256-U4LJhMnxODlfKfDACvgaoMj0t2VYIFXHPt5LE/BKbWM=";
+    };
+    propagatedBuildInputs = [ AnyEvent JSONXS ];
+    meta = {
+      description = "Communicate with the i3 window manager";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventIRC = buildPerlPackage rec {
+    pname = "AnyEvent-IRC";
+    version = "0.97";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz";
+      hash = "sha256-v9fPZFw8jGEUcQVxKGEUR+IPGt8BUWxpYky9i8d/W/A=";
+    };
+    propagatedBuildInputs = [ AnyEvent ObjectEvent commonsense ];
+    meta = {
+      description = "An event based IRC protocol client API";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyEventRabbitMQ = buildPerlPackage {
+    pname = "AnyEvent-RabbitMQ";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.22.tar.gz";
+      hash = "sha256-mMUqH+cAcQ8+W8VaOLJd5iXpsug0HSeNz54bPz0ZrO4=";
+    };
+    buildInputs = [ FileShareDirInstall TestException ];
+    propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
+    meta = {
+      description = "An asynchronous and multi channel Perl AMQP client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyMoose = buildPerlPackage {
+    pname = "Any-Moose";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Any-Moose-0.27.tar.gz";
+      hash = "sha256-qKY+N/qALoJYvpmYORbN5FElgdyAYt5Q5z1mr24thTU=";
+    };
+    propagatedBuildInputs = [ Moose Mouse ];
+    meta = {
+      description = "(DEPRECATED) use Moo instead!";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AnyURIEscape = buildPerlPackage {
+    pname = "Any-URI-Escape";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/Any-URI-Escape-0.01.tar.gz";
+      hash = "sha256-44E87J8Qj6XAvmbgjBmGv7pNJCFRsPn07F4MXhcQjEw=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Load URI::Escape::XS preferentially over URI::Escape";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URIEscapeXS = buildPerlPackage {
+    pname = "URI-Escape-XS";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/URI-Escape-XS-0.14.tar.gz";
+      hash = "sha256-w5rFDGwrgxrkvwhpLmyl1KP5xX3E1/nEywZj4shsJ1k=";
+    };
+    meta = {
+      description = "Drop-In replacement for URI::Escape";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ApacheAuthCookie = buildPerlPackage {
+    pname = "Apache-AuthCookie";
+    version = "3.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.31.tar.gz";
+      hash = "sha256-ByhnLrmLzWZSWWenXXxNYXwLTEEWIBOsmkzv5G99/3w=";
+    };
+    buildInputs = [ ApacheTest ];
+    propagatedBuildInputs = [ ClassLoad HTTPBody HashMultiValue WWWFormUrlEncoded ];
+
+    # Fails because /etc/protocols is not available in sandbox and make
+    # getprotobyname('tcp') in ApacheTest fail.
+    doCheck = !stdenv.isLinux;
+
+    meta = {
+      description = "Perl Authentication and Authorization via cookies";
+      homepage = "https://github.com/mschout/apache-authcookie";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ApacheDB = buildPerlPackage {
+    pname = "Apache-DB";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LZ/LZE/Apache-DB-0.18.tar.gz";
+      hash = "sha256-ZSf08VmCcL6ge+x4e3G98OwrVyVIvnQ4z3TyuaYAv+0=";
+    };
+    meta = {
+      description = "Run the interactive Perl debugger under mod_perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ApacheLogFormatCompiler = buildPerlModule {
+    pname = "Apache-LogFormat-Compiler";
+    version = "0.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.36.tar.gz";
+      hash = "sha256-lFCVA+506oIBg9BwwRYw7lvA/YwSy3T66VPtYuShrBc=";
+    };
+    buildInputs = [ HTTPMessage ModuleBuildTiny TestMockTime TestRequires TryTiny URI ];
+    propagatedBuildInputs = [ POSIXstrftimeCompiler ];
+    # We cannot change the timezone on the fly.
+    prePatch = "rm t/04_tz.t";
+    meta = {
+      description = "Compile a log format string to perl-code";
+      homepage = "https://github.com/kazeburo/Apache-LogFormat-Compiler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ApacheSession = buildPerlModule {
+    pname = "Apache-Session";
+    version = "1.94";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Apache-Session-1.94.tar.gz";
+      hash = "sha256-/mm3aJmv6QuK5bgt4qqnV1rakIk39EhbgKrvMXVj6Z8=";
+    };
+    buildInputs = [ TestDeep TestException ];
+    meta = {
+      description = "A persistence framework for session data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ApacheTest = buildPerlPackage {
+    pname = "Apache-Test";
+    version = "1.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHAY/Apache-Test-1.43.tar.gz";
+      hash = "sha256-qZmfAqeBpYkhi1ibGHnBHEladFrwlXXly7It/LZWgKw=";
+    };
+    doCheck = false;
+    meta = {
+      description = "Test.pm wrapper with helpers for testing Apache";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  AppCLI = buildPerlPackage {
+    pname = "App-CLI";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PT/PTC/App-CLI-0.52.tar.gz";
+      hash = "sha256-Ur1D9VWRPML/1kBfmVHSqr1Gr2PXAdm140amMycJ8M4=";
+    };
+    propagatedBuildInputs = [ CaptureTiny ClassLoad ];
+    buildInputs = [ TestKwalitee TestPod ];
+    meta = {
+      description = "Dispatcher module for command line interface programs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AppClusterSSH = buildPerlModule {
+    pname = "App-ClusterSSH";
+    version = "4.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.16.tar.gz";
+      hash = "sha256-G3y4q2BoViRK34vZrE0nUHwuQWh7OvGiJs4dsvP9VXg=";
+    };
+    propagatedBuildInputs = [ ExceptionClass Tk X11ProtocolOther XMLSimple ];
+    buildInputs = [ DataDump FileWhich Readonly TestDifferences TestTrap ];
+    preCheck = "rm t/30cluster.t t/15config.t"; # do not run failing tests
+    postInstall = ''
+      mkdir -p $out/share/bash-completion/completions
+      mv $out/bin/clusterssh_bash_completion.dist \
+        $out/share/bash-completion/completions/clusterssh_bash_completion
+      substituteInPlace $out/share/bash-completion/completions/clusterssh_bash_completion \
+        --replace '/bin/true' '${pkgs.coreutils}/bin/true' \
+        --replace 'grep' '${pkgs.gnugrep}/bin/grep' \
+        --replace 'sed' '${pkgs.gnused}/bin/sed'
+    '';
+    meta = {
+      description = "Cluster administration tool";
+      homepage = "https://github.com/duncs/clusterssh/wiki";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cssh";
+    };
+  };
+
+  AppCmd = buildPerlPackage {
+    pname = "App-Cmd";
+    version = "0.336";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/App-Cmd-0.336.tar.gz";
+      hash = "sha256-35ZrV9WauxluADBIheW/EXypWBgq4/Tu3xchjqKDjoE=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ CaptureTiny ClassLoad GetoptLongDescriptive IOTieCombine ModulePluggable StringRewritePrefix ];
+    meta = {
+      description = "Write command line apps with less suffering";
+      homepage = "https://github.com/rjbs/App-Cmd";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AppConfig = buildPerlPackage {
+    pname = "AppConfig";
+    version = "1.71";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/AppConfig-1.71.tar.gz";
+      hash = "sha256-EXcCcCXssJ7mTZ+fJVYVwE214U91NsNEr2MgMuuIew8=";
+    };
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "A bundle of Perl5 modules for reading configuration files and parsing command line arguments";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AppFatPacker = buildPerlPackage {
+    pname = "App-FatPacker";
+    version = "0.010008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/App-FatPacker-0.010008.tar.gz";
+      hash = "sha256-Ep2zbchFZhpYIoaBDP4tUhbrLOCCutQK4fzc4PRd7M8=";
+    };
+    meta = {
+      description = "Pack your dependencies onto your script file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "fatpack";
+    };
+  };
+
+  Appcpanminus = buildPerlPackage {
+    pname = "App-cpanminus";
+    version = "1.7047";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7047.tar.gz";
+      hash = "sha256-lj5jxuGocl/y9iTpCGOWrhUNtR3QozfDeB0JqZSvBaU=";
+    };
+    # Use TLS endpoints for downloads and metadata by default
+    preConfigure = ''
+      substituteInPlace bin/cpanm \
+        --replace http://www.cpan.org https://www.cpan.org \
+        --replace http://backpan.perl.org https://backpan.perl.org \
+        --replace http://fastapi.metacpan.org https://fastapi.metacpan.org \
+        --replace http://cpanmetadb.plackperl.org https://cpanmetadb.plackperl.org
+    '';
+    propagatedBuildInputs = [ IOSocketSSL ];
+    meta = {
+      description = "Get, unpack, build and install modules from CPAN";
+      homepage = "https://github.com/miyagawa/cpanminus";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpanm";
+    };
+  };
+
+  Appcpm = buildPerlModule {
+    pname = "App-cpm";
+    version = "0.997014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/App-cpm-0.997014.tar.gz";
+      hash = "sha256-LdTAPFQDnC0CzN0u+VvG/1bPvbdGzQdvywqVR8UEmQg=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ CPAN02PackagesSearch CPANCommonIndex CPANDistnameInfo ClassTiny CommandRunner ExtUtilsInstall ExtUtilsInstallPaths FileCopyRecursive Filepushd HTTPTinyish MenloLegacy Modulecpmfile ModuleCPANfile ParsePMFile ParallelPipes locallib ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/cpm
+    '';
+    meta = {
+      description = "A fast CPAN module installer";
+      homepage = "https://github.com/skaji/cpm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+      mainProgram = "cpm";
+    };
+  };
+
+  Applify = buildPerlPackage {
+    pname = "Applify";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Applify-0.23.tar.gz";
+      hash = "sha256-fI3Z55e9DsJgDTAOzUnul4EZgxxlay0L3q7OoENIoRI=";
+    };
+    meta = {
+      description = "Write object oriented scripts with ease";
+      homepage = "https://github.com/jhthorsen/applify";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  AppMusicChordPro = buildPerlPackage {
+    pname = "App-Music-ChordPro";
+    version = "6.030";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/App-Music-ChordPro-6.030.tar.gz";
+      hash = "sha256-a+5H8U5gmYPkrBUyxxwajPQy9m6sWeDlaeHTfg2cwnc=";
+    };
+    buildInputs = [ ObjectPad ];
+    propagatedBuildInputs = [ AppPackager FileLoadLines FileHomeDir IOString ImageInfo PDFAPI2 StringInterpolateNamed TextLayout ]
+      ++ lib.optionals (!stdenv.isDarwin) [ Wx ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+
+    # Delete tests that fail when version env var is set, see
+    # https://github.com/ChordPro/chordpro/issues/293
+    patchPhase = ''
+      rm t/320_subst.t t/321_subst.t t/322_subst.t
+    '';
+
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/chordpro
+      rm $out/bin/wxchordpro # Wx not supported on darwin
+    '';
+    meta = {
+      description = "A lyrics and chords formatting program";
+      homepage = "https://www.chordpro.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "chordpro";
+    };
+  };
+
+  AppPackager =  buildPerlPackage {
+    pname = "App-Packager";
+    version = "1.440";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/App-Packager-1.440.tar.gz";
+      hash = "sha256-VoFBa+b9eJe+mEg8TqKOsN3gzGWzwg5o1HswRN7PKHo=";
+    };
+    meta = {
+      description = "Abstraction for Packagers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Appperlbrew = buildPerlModule {
+    pname = "App-perlbrew";
+    version = "0.98";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GU/GUGOD/App-perlbrew-0.98.tar.gz";
+      hash = "sha256-oWD3ESJYjdU12pTbsLgwHkjlONJaRCobE/cZCWKIWTI=";
+    };
+    buildInputs = [ pkgs.curl FileWhich IOAll ModuleBuildTiny PathClass TestException TestNoWarnings TestOutput TestSpec TestTempDirTiny ];
+    propagatedBuildInputs = [ CPANPerlReleases CaptureTiny DevelPatchPerl PodParser locallib ];
+
+    doCheck = false;
+
+    meta = {
+      description = "Manage perl installations in your $HOME";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "perlbrew";
+    };
+  };
+
+  ArchiveAnyLite = buildPerlPackage {
+    pname = "Archive-Any-Lite";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz";
+      hash = "sha256-FcGIJTmTpLZuVZnweJsTJvCmbAkr2/rJMTcG1BwoUXA=";
+    };
+    propagatedBuildInputs = [ ArchiveZip ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
+    meta = {
+      description = "Simple CPAN package extractor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AppSqitch = buildPerlModule {
+    version = "1.4.0";
+    pname = "App-Sqitch";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.4.0.tar.gz";
+      hash = "sha256-sNs4cDH3dWJmLgA7xV16EComOAtK1/25qKO61XaeUBw=";
+    };
+    buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestMockObject TestNoWarnings TestWarn ];
+    propagatedBuildInputs = [ Clone ConfigGitLike DBI DateTime EncodeLocale HashMerge IOPager IPCRun3 IPCSystemSimple ListMoreUtils PathClass PerlIOutf8_strict PodParser StringFormatter StringShellQuote TemplateTiny Throwable TypeTiny URIdb libintl-perl ];
+    doCheck = false;  # Can't find home directory.
+    meta = {
+      description = "Sensible database change management";
+      homepage = "https://sqitch.org";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "sqitch";
+    };
+  };
+
+  AppSt = buildPerlPackage {
+    pname = "App-St";
+    version = "1.1.4";
+    src = fetchurl {
+      url = "https://github.com/nferraz/st/archive/v1.1.4.tar.gz";
+      hash = "sha256-wCoW9n5MNXaQpUODGYQxSf1wDCIxKPn/6+yrKEnFi7g=";
+    };
+    postInstall =
+      ''
+        ($out/bin/st --help || true) | grep Usage
+      '';
+    meta = {
+      description = "Simple Statistics";
+      homepage = "https://github.com/nferraz/st";
+      license = with lib.licenses; [ mit ];
+      maintainers = [ maintainers.eelco ];
+      mainProgram = "st";
+    };
+  };
+
+  AttributeParamsValidate = buildPerlPackage {
+    pname = "Attribute-Params-Validate";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Attribute-Params-Validate-1.21.tar.gz";
+      hash = "sha256-WGuTnO/9s3GIt8Rh3RqPnzVpUYTIcDsFw19tUIyAkPU=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ParamsValidate ];
+    doCheck = false;
+    meta = {
+      description = "Validate method/function parameters";
+      homepage = "https://metacpan.org/release/Params-Validate";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ArchiveLibarchive = buildPerlPackage {
+    pname = "Archive-Libarchive";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-0.08.tar.gz";
+      hash = "sha256-6ONC1U/T1uXn4xYP4IjBOgpQM8/76JSBodJHHUNyAFk=";
+    };
+    patches = [ ../development/perl-modules/ArchiveLibarchive-set-findlib-path.patch ];
+    postPatch = ''
+      substituteInPlace lib/Archive/Libarchive/Lib.pm --replace "@@libarchive@@" "${pkgs.libarchive.lib}/lib"
+    '';
+    buildInputs = [ FFIC Filechdir PathTiny SubIdentify TermTable Test2Suite Test2ToolsMemoryCycle TestArchiveLibarchive TestScript ];
+    propagatedBuildInputs = [ FFICStat FFICheckLib FFIPlatypus FFIPlatypusTypeEnum FFIPlatypusTypePtrObject RefUtil ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Archive::Libarchive";
+      description = "Modern Perl bindings to libarchive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  ArchiveLibarchiveExtract = buildPerlPackage {
+    pname = "Archive-Libarchive-Extract";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Extract-0.03.tar.gz";
+      hash = "sha256-yXfAR0hnIX6zJvte5pA04e9spBQUkWHjEpAblf0SwIE=";
+    };
+    buildInputs = [ Test2Suite TestScript ];
+    propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract";
+      description = "An archive extracting mechanism (using libarchive)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  ArchiveLibarchivePeek = buildPerlPackage {
+    pname = "Archive-Libarchive-Peek";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Peek-0.04.tar.gz";
+      hash = "sha256-DYhJ4xG2RsozWz6gGodTtAIkK5XOgAo7zNXHCC4nJPo=";
+    };
+    buildInputs = [ Filechdir Test2Suite TestScript ];
+    propagatedBuildInputs = [ ArchiveLibarchive PathTiny RefUtil ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Archive::Libarchive::Peek";
+      description = "Peek into archives without extracting them";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  ArrayCompare = buildPerlModule {
+    pname = "Array-Compare";
+    version = "3.0.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-v3.0.8.tar.gz";
+      hash = "sha256-MEc7XpEBU4QNJDHqlGO55W5SPN56PFBhadaaK5dC2DQ=";
+    };
+
+    buildInputs = [ TestNoWarnings ];
+    propagatedBuildInputs = [ Moo TypeTiny ];
+    meta = {
+      description = "Perl extension for comparing arrays";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ArrayDiff = buildPerlPackage {
+    pname = "Array-Diff";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz";
+      hash = "sha256-gAY5Lphh50FTfCu8kRbI5CuWLy4H6NZBov9qEcZEUHc=";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ];
+    meta = {
+      description = "Find the differences between two arrays";
+      homepage = "https://github.com/neilb/array-diff-perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ArrayFIFO = buildPerlPackage {
+    pname = "Array-FIFO";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBURKE/Array-FIFO-0.13.tar.gz";
+      hash = "sha256-virrX1qa8alvADNQilacqTrRmtFdx8a5mObXvHQMZvc=";
+    };
+    buildInputs = [ TestDeep TestSpec TestTrap ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "A Simple limitable FIFO array, with sum and average methods";
+      homepage = "https://github.com/dwburke/perl-Array-FIFO";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ArrayRefElem = buildPerlPackage {
+    pname = "Array-RefElem";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id//G/GA/GAAS/Array-RefElem-1.00.tar.gz";
+      hash = "sha256-U7iAo67AQ+TjcM4SaCtHVt5F3XQtq1cpT+IaFUU87+M=";
+    };
+    meta = {
+      description = "Set up array elements as aliases";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ArrayUtils = buildPerlPackage {
+    pname = "ArrayUtils";
+    version = "0.5";
+    src = fetchurl {
+      url = "https://cpan.metacpan.org/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz";
+      hash = "sha256-id0bf82bQ3lJKjp3SW45/mzTebdz/QOmsWDdJu3mN3A=";
+    };
+    meta = {
+      description = "Small utils for array manipulation";
+      homepage = "https://metacpan.org/pod/Array::Utils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AsyncPing = buildPerlPackage {
+    pname = "AsyncPing";
+    version = "2016.1207";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XI/XINFWANG/AsyncPing-2016.1207.tar.gz";
+      hash = "sha256-b76a/sF6d3B2+K2JksjSMAr2WpUDRD0dT/nD+NKZyVo=";
+    };
+    meta = {
+      description = "Ping a huge number of servers in several seconds";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  AsyncUtil = buildPerlPackage {
+    pname = "Async-Util";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WH/WHITNEY/Async-Util-0.01.tar.gz";
+      hash = "sha256-jzKxHKvFD2Xjh79W8mWBV6IsNah5Nmbhtfis/hMQkQY=";
+    };
+    buildInputs = [ AnyEvent ListMoreUtils ];
+    meta = {
+      description = "Utilities for doing common async operations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ArchiveCpio = buildPerlPackage {
+    pname = "Archive-Cpio";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PI/PIXEL/Archive-Cpio-0.10.tar.gz";
+      hash = "sha256-JG+zFml2TngzayGRE0Ei4HxE8tgtxPN9VSqyj4ZovtM=";
+    };
+    meta = {
+      description = "Module for manipulations of cpio archives";
+      license = with lib.licenses; [ artistic1 gpl1Plus ]; # See https://rt.cpan.org/Public/Bug/Display.html?id=43597#txn-569710
+      mainProgram = "cpio-filter";
+    };
+  };
+
+  ArchiveExtract = buildPerlPackage {
+    pname = "Archive-Extract";
+    version = "0.88";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-0.88.tar.gz";
+      hash = "sha256-z/zxNc0GIih9OwIVT31nFklUSfyu0DlmYhlI4l6l90I=";
+    };
+    meta = {
+      description = "Generic archive extracting mechanism";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ArchiveTar = buildPerlPackage {
+    pname = "Archive-Tar";
+    version = "3.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-3.02.tar.gz";
+      hash = "sha256-gWM8h/c3hGGD01wPTJ1ALalHqEa0iBswzObZ6+PInRk=";
+    };
+    meta = {
+      description = "Manipulates TAR archives";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ptar";
+    };
+  };
+
+  ArchiveTarWrapper = buildPerlPackage {
+    pname = "Archive-Tar-Wrapper";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz";
+      hash = "sha256-GfPQ2qi5XP+2jHBDUN0GdKI+HS8U0DKQO36WCe23s3o=";
+    };
+    propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ];
+    meta = {
+      description = "API wrapper around the 'tar' utility";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  ArchiveZip = buildPerlPackage {
+    pname = "Archive-Zip";
+    version = "1.68";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz";
+      hash = "sha256-mE4YXXhbr2EpxudfjrREEXRawAv2Ei+xyOgio4YexlA=";
+    };
+    buildInputs = [ TestMockModule ];
+    meta = {
+      description = "Provide an interface to ZIP archive files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "crc32";
+    };
+  };
+
+  AstroFITSHeader = buildPerlModule rec {
+    pname = "Astro-FITS-Header";
+    version = "3.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GS/GSB/Astro-FITS-Header-3.09.tar.gz";
+      hash = "sha256-cq1oveWku+zv8VFtZ3A/4tACFDlwQpo81pplFlLVaYY=";
+    };
+    meta = {
+      description = "Object-oriented interface to FITS HDUs";
+      homepage = "https://github.com/timj/perl-Astro-FITS-Header";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  AudioCuefileParser = buildPerlPackage {
+    pname = "Audio-Cuefile-Parser";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTK/Audio-Cuefile-Parser-0.02.tar.gz";
+      hash = "sha256-ulbQcMhz2WxoatmoH99P6JuETkPrSd/gAL+c70PFtmk=";
+    };
+    meta = {
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AudioFLACHeader = buildPerlPackage {
+    pname = "Audio-FLAC-Header";
+    version = "2.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANIEL/Audio-FLAC-Header-2.4.tar.gz";
+      hash = "sha256-+6WRHWwi2BUGVlzZoUOOhgVCD/eYbPA9GhLQBqQHBUM=";
+    };
+    meta = {
+      description = "Interface to FLAC header metadata";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AudioScan = buildPerlPackage {
+    pname = "Audio-Scan";
+    version = "1.05";
+    src = fetchurl {
+        url = "https://github.com/Logitech/slimserver-vendor/raw/public/8.3/CPAN/Audio-Scan-1.05.tar.gz";
+        hash = "sha256-9YXC8GHPRWKlV8emmTke7RB0HhiCbALmZQqtQFLcBi4=";
+    };
+    buildInputs = [ pkgs.zlib TestWarn ];
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
+    meta = {
+      description = "Fast C metadata and tag reader for all common audio file formats, slimserver fork";
+      homepage = "https://github.com/Logitech/slimserver-vendor";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  AuthenDecHpwd = buildPerlModule {
+    pname = "Authen-DecHpwd";
+    version = "2.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-2.007.tar.gz";
+      hash = "sha256-9DqTuwK0H3Mn2S+eljtpUF9nNQpS6PUHlvmK/E+z8Xc=";
+    };
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    propagatedBuildInputs = [ DataInteger DigestCRC ScalarString ];
+    meta = {
+      description = "DEC VMS password hashing";
+      license = with lib.licenses; [ gpl1Plus ];
+    };
+  };
+
+  AuthenHtpasswd = buildPerlPackage {
+    pname = "Authen-Htpasswd";
+    version = "0.171";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/Authen-Htpasswd-0.171.tar.gz";
+      hash = "sha256-tfr0fj+UikUoEGzLiMxxBIz+WY5bAmpEQ2i8fjk0gGc=";
+    };
+    propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ];
+    # Remove test files that fail after DES support was removed from crypt()
+    postPatch = ''
+      rm t/04core.t t/05edit.t
+    '';
+    meta = {
+      description = "Interface to read and modify Apache .htpasswd files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenKrb5 = buildPerlModule {
+    pname = "Authen-Krb5";
+    version = "1.905";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz";
+      hash = "sha256-13sAuxUBpW9xGOkarAx+Qi2888QY+c6YuAF3HDqg900=";
+    };
+    perlPreHook = "export LD=$CC";
+    propagatedBuildInputs = [ pkgs.libkrb5 ];
+    buildInputs = [ DevelChecklib FileWhich PkgConfig ];
+    meta = {
+      description = "XS bindings for Kerberos 5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenKrb5Admin = buildPerlPackage rec {
+    pname = "Authen-Krb5-Admin";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/Authen-Krb5-Admin-0.17.tar.gz";
+      hash = "sha256-XdScrNmD79YajD8aVlcbtzeF6xVZCLXXvsl+7XjfDFQ=";
+    };
+    propagatedBuildInputs = [ pkgs.krb5.dev AuthenKrb5 ];
+    # The following ENV variables are required by Makefile.PL to find
+    # programs in krb5.dev. It is not enough to just specify the
+    # path to krb5-config as this tool returns the prefix of krb5,
+    # which implies a working value for KRB5_LIBDIR, but not the others.
+    perlPreHook = ''
+      export KRB5_CONFTOOL=${pkgs.krb5.dev}/bin/krb5-config
+      export KRB5_BINDIR=${pkgs.krb5.dev}/bin
+      export KRB5_INCDIR=${pkgs.krb5.dev}/include
+    '';
+    # Tests require working Kerberos infrastructure so replace with a
+    # simple attempt to exercise the module.
+    checkPhase = ''
+      perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"'
+    '';
+    meta = {
+      description = "Perl extension for MIT Kerberos 5 admin interface";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+  AuthenModAuthPubTkt = buildPerlPackage {
+    pname = "Authen-ModAuthPubTkt";
+    version = "0.1.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGORDON/Authen-ModAuthPubTkt-0.1.1.tar.gz";
+      hash = "sha256-eZbhpCxRIWADzPA8S1JQKGtMVWhCV5cYUfXs6RYdx90=";
+    };
+    propagatedBuildInputs = [ pkgs.openssl IPCRun3 ];
+    patchPhase = ''
+      sed -i 's|my $openssl_bin = "openssl";|my $openssl_bin = "${pkgs.openssl}/bin/openssl";|' lib/Authen/ModAuthPubTkt.pm
+      # -dss1 doesn't exist for dgst in openssl 1.1, -sha1 can also handle DSA keys now
+      sed -i 's|-dss1|-sha1|' lib/Authen/ModAuthPubTkt.pm
+    '';
+    meta = {
+      description = "Generate Tickets (Signed HTTP Cookies) for mod_auth_pubtkt protected websites";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mod_auth_pubtkt.pl";
+    };
+  };
+
+  AuthenOATH = buildPerlPackage {
+    pname = "Authen-OATH";
+    version = "2.0.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/Authen-OATH-2.0.1.tar.gz";
+      hash = "sha256-GoE9vcBcP72d0528/YXiz7C6PQ9lLPaybsg6uBRt3Hc=";
+    };
+    buildInputs = [ TestNeeds ];
+    propagatedBuildInputs = [ DigestHMAC Moo TypeTiny ];
+    meta = {
+      description = "OATH One Time Passwords";
+      homepage = "https://github.com/oalders/authen-oath";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  AuthenPassphrase = buildPerlModule {
+    pname = "Authen-Passphrase";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-Passphrase-0.008.tar.gz";
+      hash = "sha256-VdtFIGF9hZ2IwO5Ull2oFbcibXkrjNyN6/kgc1WeBGM=";
+    };
+    propagatedBuildInputs = [ AuthenDecHpwd CryptDES CryptEksblowfish CryptMySQL CryptPasswdMD5 CryptUnixCryptXS DataEntropy DigestMD4 ModuleRuntime ];
+    meta = {
+      description = "Hashed passwords/passphrases as objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenRadius = buildPerlPackage {
+    pname = "Authen-Radius";
+    version = "0.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PO/PORTAONE/Authen-Radius-0.32.tar.gz";
+      hash = "sha256-eyCPmDfIOhhCZyVIklNlh+7Qvd5J577euj1ypmUjF0A=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    propagatedBuildInputs = [ DataHexDump NetIP ];
+    meta = {
+      description = "Provide simple Radius client facilities";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  AuthenSASL = buildPerlPackage {
+    pname = "Authen-SASL";
+    version = "2.1700";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EH/EHUELS/Authen-SASL-2.1700.tar.gz";
+      hash = "sha256-uG1aV2uNOHruJPOfR6VK/RS7ZrCQA9tQZQAfHeA6js4=";
+    };
+    propagatedBuildInputs = [ DigestHMAC ];
+    meta = {
+      description = "SASL Authentication framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenSASLSASLprep = buildPerlModule {
+    pname = "Authen-SASL-SASLprep";
+    version = "1.100";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFAERBER/Authen-SASL-SASLprep-1.100.tar.gz";
+      hash = "sha256-pMzMNLs/U6zwunjJ/GGvjRVtEJ0cEEh7pZiKVQd9H3A=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    propagatedBuildInputs = [ UnicodeStringprep ];
+    meta = {
+      description = "A Stringprep Profile for User Names and Passwords (RFC 4013)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  AuthenSCRAM = buildPerlPackage {
+    pname = "Authen-SCRAM";
+    version = "0.011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Authen-SCRAM-0.011.tar.gz";
+      hash = "sha256-RRCMI5pzc9AJQdzw0XGs0D58FqY85vfZVo/wUrF89ag=";
+    };
+    buildInputs = [ TestFailWarnings TestFatal ];
+    propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ];
+    meta = {
+      description = "Salted Challenge Response Authentication Mechanism (RFC 5802)";
+      homepage = "https://github.com/dagolden/Authen-SCRAM";
+      license = with lib.licenses; [ asl20 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  AuthenSimple = buildPerlPackage {
+    pname = "Authen-Simple";
+    version = "0.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz";
+      hash = "sha256-As3atH+L8aHL1Mm/jSWPbQURFJnDP4MV5yRIEvcmE6o=";
+    };
+    # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
+    postPatch = ''
+      patch -p1 <<-EOF
+        --- a/t/09password.t
+        +++ b/t/09password.t
+        @@ -10 +10 @@
+        -use Test::More tests => 16;
+        +use Test::More tests => 14;
+        @@ -14 +13,0 @@
+        -    [ 'crypt',     'lk9Mh5KHGjAaM',                          'crypt'        ],
+        @@ -18 +16,0 @@
+        -    [ 'crypt',     '{CRYPT}lk9Mh5KHGjAaM',                   '{CRYPT}'      ],
+      EOF
+    '';
+    propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ];
+    meta = {
+      description = "Simple Authentication";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenSimplePasswd = buildPerlModule {
+    pname = "Authen-Simple-Passwd";
+    version = "0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz";
+      hash = "sha256-z1W8NiWe3w/Wr5rSusgbMdxbVqFixmBZDsuWnHwWdLI=";
+    };
+    # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
+    postPatch = ''
+      sed -e 's/tests => 8/tests => 7/' -e "/'crypt'/d" -i t/04basic.t
+    '';
+    propagatedBuildInputs = [ AuthenSimple ];
+    meta = {
+      description = "Simple Passwd authentication";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  autobox = buildPerlPackage {
+    pname = "autobox";
+    version = "3.0.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/autobox-v3.0.1.tar.gz";
+      hash = "sha256-wwO3/M+qH/TUxCmrPxXlyip3VU74yfw7jGK6hZ6HTJg=";
+    };
+    propagatedBuildInputs = [ ScopeGuard ];
+    buildInputs = [ IPCSystemSimple TestFatal ];
+    meta = {
+      description = "Call methods on native types";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  Autodia = buildPerlPackage {
+    pname = "Autodia";
+    version = "2.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TE/TEEJAY/Autodia-2.14.tar.gz";
+      hash = "sha256-rIElyIq+Odn+Aco6zBOgCinzM2pLt+9gRH5ri4Iv9CI=";
+    };
+    propagatedBuildInputs = [ TemplateToolkit XMLSimple ];
+    buildInputs = [ DBI ];
+
+    meta = {
+      description = "AutoDia, create UML diagrams from source code";
+      longDescription = ''
+        AutoDia is a modular application that parses source code, XML or data
+        and produces an XML document in Dia format (or images via graphviz
+        and vcg).  Its goal is to be a UML / DB Schema diagram autocreation
+        package.  The diagrams its creates are standard UML diagrams showing
+        dependencies, superclasses, packages, classes and inheritances, as
+        well as the methods, etc of each class.
+
+        AutoDia supports any language that a Handler has been written for,
+        which includes C, C++, Java, Perl, Python, and more.
+      '';
+      homepage = "http://www.aarontrevena.co.uk/opensource/autodia/";
+      license = with lib.licenses; [ gpl2Plus ];
+      mainProgram = "autodia.pl";
+    };
+  };
+
+  AWSSignature4 = buildPerlModule {
+    pname = "AWS-Signature4";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDS/AWS-Signature4-1.02.tar.gz";
+      hash = "sha256-ILvBbLNFT+XozzT+YfGpH+JsPxfkSf9mX8u7kqtEPr0=";
+    };
+    propagatedBuildInputs = [ LWP TimeDate URI ];
+    meta = {
+      description = "Create a version4 signature for Amazon Web Services";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  autovivification = buildPerlPackage {
+    pname = "autovivification";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz";
+      hash = "sha256-LZmXVoUkKYDQqZBPY5FEwFnW7OFYme/eSst0LTJT8QU=";
+    };
+    meta = {
+      description = "Lexically disable autovivification";
+      homepage = "https://search.cpan.org/dist/autovivification";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BarcodeZBar = buildPerlPackage {
+    pname = "Barcode-ZBar";
+    version = "0.04pre";
+    # The meta::cpan version of this module has been unmaintained from 2009
+    # This uses an updated version from the ZBar repo that works with the current ZBar library
+    src = "${pkgs.zbar.src}/perl";
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace "-lzbar" "-L${pkgs.zbar.lib}/lib -lzbar"
+      rm t/Processor.t
+    '';
+    buildInputs =[ ExtUtilsMakeMaker ];
+    propagatedBuildInputs = [ pkgs.zbar PerlMagick ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Perl interface to the ZBar Barcode Reader";
+      homepage = "https://metacpan.org/pod/Barcode::ZBar";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  BC = buildPerlPackage {
+    pname = "B-C";
+    version = "1.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/B-C-1.57.tar.gz";
+      hash = "sha256-BFKmEdNDrfnZX86ra6a2YXbjrX/MzlKAkiwOQx9RSf8=";
+    };
+    propagatedBuildInputs = [ BFlags IPCRun Opcodes ];
+    doCheck = false; /* test fails */
+    meta = {
+      description = "Perl compiler";
+      homepage = "https://github.com/rurban/perl-compiler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlcc";
+    };
+  };
+
+  BCOW = buildPerlPackage {
+    pname = "B-COW";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz";
+      hash = "sha256-EpDa8ifosJiJoxzxguKRBvHPnxpOm/d1L53pLtEVi0Q=";
+    };
+    meta = {
+      description = "B::COW additional B helpers to check COW status";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BFlags = buildPerlPackage {
+    pname = "B-Flags";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Flags-0.17.tar.gz";
+      hash = "sha256-wduX0BMVvtEJtMSJWM0yGVz8nvXTt3B+tHhAwdV8ELI=";
+    };
+    meta = {
+      description = "Friendlier flags for B";
+      license = with lib.licenses; [ artistic1 gpl1Only ];
+    };
+  };
+
+  BeanstalkClient = buildPerlPackage {
+    pname = "Beanstalk-Client";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz";
+      hash = "sha256-MYirESfyyrqX32XIT2nbDscMZOXXDylvmiZ0+nnBEsw=";
+    };
+    propagatedBuildInputs = [ ClassAccessor YAMLSyck ];
+    meta = {
+      description = "Client to communicate with beanstalkd server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BerkeleyDB = buildPerlPackage {
+    pname = "BerkeleyDB";
+    version = "0.65";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz";
+      hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ=i";
+    };
+
+    preConfigure = ''
+      echo "LIB = ${pkgs.db.out}/lib" > config.in
+      echo "INCLUDE = ${pkgs.db.dev}/include" >> config.in
+    '';
+    meta = {
+      description = "Perl extension for Berkeley DB version 2, 3, 4, 5 or 6";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BDB = buildPerlPackage rec {
+    pname = "BDB";
+    version = "1.92";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
+      hash = "sha256-o/LKnSuu/BqqQJCLL5y5KS/aPn15fji7146rudna62s=";
+    };
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.db4.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb";
+    buildInputs = [ pkgs.db4 ];
+    propagatedBuildInputs = [ commonsense ];
+    meta = {
+      description = "Asynchronous Berkeley DB access";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BHooksEndOfScope = buildPerlPackage {
+    pname = "B-Hooks-EndOfScope";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.26.tar.gz";
+      hash = "sha256-Od8vjAB6dUZyB1+VuQeXuuvpetptlEsZemNScJyzBnE=";
+    };
+    propagatedBuildInputs = [ ModuleImplementation SubExporterProgressive ];
+    meta = {
+      description = "Execute code after a scope finished compilation";
+      homepage = "https://github.com/karenetheridge/B-Hooks-EndOfScope";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BHooksOPAnnotation = buildPerlPackage {
+    pname = "B-Hooks-OP-Annotation";
+    version = "0.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/B-Hooks-OP-Annotation-0.44.tar.gz";
+      hash = "sha256-bib5k2f06pRBac9uBc9NBngyCCQkyo7O/Mt7WmMhexY=";
+    };
+    propagatedBuildInputs = [ ExtUtilsDepends ];
+    meta = {
+      description = "Annotate and delegate hooked OPs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BHooksOPCheck = buildPerlPackage {
+    pname = "B-Hooks-OP-Check";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-0.22.tar.gz";
+      hash = "sha256-x7XRvvWe+Qh/9n6zFo0mJL6UrlRkRp4lmtEb+4rYzc0=";
+    };
+    buildInputs = [ ExtUtilsDepends ];
+    meta = {
+      description = "Wrap OP check callbacks";
+      homepage = "https://github.com/karenetheridge/B-Hooks-OP-Check";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BioExtAlign = callPackage ../development/perl-modules/Bio-Ext-Align { };
+
+  BioDBHTS = buildPerlModule {
+    pname = "Bio-DB-HTS";
+    version = "3.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz";
+      sha256 = "12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42";
+    };
+
+    buildInputs = [ pkgs.htslib pkgs.zlib ];
+
+    propagatedBuildInputs = [ BioPerl ];
+    htslibStore = toString pkgs.htslib;
+
+    postPatch = ''
+      # -Wl,-rpath not recognized : replaced by -rpath=
+      sed -i 's/Wl,-rpath,/rpath=/' Build.PL
+    '';
+
+    preBuild = ''
+      export HTSLIB_DIR=${pkgs.htslib}
+    '';
+
+    meta = {
+      description = "Perl interface to HTS library for DNA sequencing";
+      license = lib.licenses.asl20;
+    };
+  };
+
+  BioBigFile = callPackage ../development/perl-modules/Bio-BigFile { };
+
+  BioPerl = buildPerlPackage {
+    pname = "BioPerl";
+    version = "1.7.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CJ/CJFIELDS/BioPerl-1.7.8.tar.gz";
+      hash = "sha256-xJCjvncV6m5DBe/ZcQ5e2rgtq8Vf14a2UFtVCjDXFzg=";
+    };
+    buildInputs = [ ModuleBuild TestMemoryCycle TestWeaken TestDeep TestWarn TestException TestDifferences ];
+    propagatedBuildInputs = [ DataStag Error Graph HTTPMessage IOString IOStringy IPCRun LWP ListMoreUtils SetScalar TestMost TestRequiresInternet URI XMLDOM XMLLibXML XMLSAX XMLSAXBase XMLSAXWriter XMLTwig XMLWriter YAML DBFile libxml_perl ];
+    meta = {
+      description = "Perl modules for biology";
+      homepage = "https://metacpan.org/release/BioPerl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BitVector = buildPerlPackage {
+    pname = "Bit-Vector";
+    version = "7.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz";
+      hash = "sha256-PG2qZx/s+8Nfkqk4W1Y9ZfUN/Gvci0gF+e9GwNA1qSY=";
+    };
+    propagatedBuildInputs = [ CarpClan ];
+    meta = {
+      description = "Efficient bit vector, set of integers and 'big int' math library";
+      license = with lib.licenses; [ artistic1 gpl1Plus lgpl2Only ];
+    };
+  };
+
+  BKeywords = buildPerlPackage rec {
+    pname = "B-Keywords";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.26.tar.gz";
+      hash = "sha256-LaoVXS8mf7De3Yf4pMT7VmOHn8EGUXse4lg1Pvh67TQ=";
+    };
+    meta = {
+      description = "Lists of reserved barewords and symbol names";
+      license = with lib.licenses; [ artistic1 gpl2Only ];
+    };
+  };
+
+  boolean = buildPerlPackage {
+    pname = "boolean";
+    version = "0.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/boolean-0.46.tar.gz";
+      hash = "sha256-lcCICFw+g79oD+bOFtgmTsJjEEkPfRaA5BbqehGPFWo=";
+    };
+    meta = {
+      description = "Boolean support for Perl";
+      homepage = "https://github.com/ingydotnet/boolean-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BoostGeometryUtils = buildPerlModule {
+    pname = "Boost-Geometry-Utils";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AA/AAR/Boost-Geometry-Utils-0.15.tar.gz";
+      hash = "sha256-AFTdP1c70/b0e3PugdHoRYQvugSq21KICqUnAcaH0co=";
+    };
+    patches = [
+      # Fix out of memory error on Perl 5.19.4 and later.
+      ../development/perl-modules/boost-geometry-utils-fix-oom.patch
+    ];
+    perlPreHook = "export LD=$CC";
+    buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp ];
+    meta = {
+      description = "Bindings for the Boost Geometry library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BotTraining = buildPerlPackage {
+    pname = "Bot-Training";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-0.07.tar.gz";
+      hash = "sha256-7ma7+BTw3D0egGgOBQ+tELHgGP7Xkp9lPtQOCIsqopU=";
+    };
+    buildInputs = [ FileSlurp ];
+    propagatedBuildInputs = [ ClassLoad DirSelf FileShareDir ModulePluggable MooseXGetopt namespaceclean  ];
+    meta = {
+      description = "Plain text training material for bots like Hailo and AI::MegaHAL";
+      homepage = "https://metacpan.org/release/Bot-Training";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "bot-training";
+    };
+  };
+
+  BotTrainingMegaHAL = buildPerlPackage {
+    pname = "Bot-Training-MegaHAL";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-MegaHAL-0.03.tar.gz";
+      hash = "sha256-lWByr/BPIW5cO4GWlltdgNTUdpXXfsqr1W5Z1l8iv2A=";
+    };
+    buildInputs = [ FileShareDirInstall ];
+    propagatedBuildInputs = [ BotTraining ];
+    meta = {
+      description = "Provide megahal.trn via Bot::Training";
+      homepage = "https://metacpan.org/release/Bot-Training-MegaHAL";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BotTrainingStarCraft = buildPerlPackage {
+    pname = "Bot-Training-StarCraft";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-StarCraft-0.03.tar.gz";
+      hash = "sha256-58640Bxi5zLdib/l9Ng+eBwc2RJULRd8Iudht8hhTV4=";
+    };
+    buildInputs = [ FileShareDirInstall ];
+    propagatedBuildInputs = [ BotTraining ];
+    meta = {
+      description = "Provide starcraft.trn via Bot::Training";
+      homepage = "https://metacpan.org/release/Bot-Training-StarCraft";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BSDResource = buildPerlPackage {
+    pname = "BSD-Resource";
+    version = "1.2911";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHI/BSD-Resource-1.2911.tar.gz";
+      hash = "sha256-nRz7oGPMGPckJ6IkUfeQiDa3MxrIeF2+B1U8WwQ6DD0=";
+    };
+    meta = {
+      description = "BSD process resource limit and priority functions";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  BSON = buildPerlPackage {
+    pname = "BSON";
+    version = "1.12.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-v1.12.2.tar.gz";
+      hash = "sha256-9GEsDDVDEHQbmattJkUSJoIxUMonEJsbORIy1c/dpts=";
+    };
+    buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal ];
+    propagatedBuildInputs = [ CryptURandom Moo TieIxHash boolean namespaceclean ];
+    meta = {
+      description = "BSON serialization and deserialization (EOL)";
+      homepage = "https://github.com/mongodb-labs/mongo-perl-bson";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  BSONXS = buildPerlPackage {
+    pname = "BSON-XS";
+    version = "0.8.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-XS-v0.8.4.tar.gz";
+      hash = "sha256-KPfTOP14tvnJpggL6d4/XLI9iIuW6/b8v6zp8pZq6/k=";
+    };
+    buildInputs = [ ConfigAutoConf JSONMaybeXS PathTiny TestDeep TestFatal TieIxHash ];
+    propagatedBuildInputs = [ BSON boolean JSONXS JSONPP CpanelJSONXS ];
+    meta = {
+      description = "XS implementation of MongoDB's BSON serialization (EOL)";
+      homepage = "https://github.com/mongodb-labs/mongo-perl-bson-xs";
+      license = with lib.licenses; [ asl20 ];
+      platforms = lib.platforms.linux; # configure phase fails with "ld: unknown option: -mmacosx-version-min=10.12"
+    };
+  };
+
+  BUtils = buildPerlPackage {
+    pname = "B-Utils";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz";
+      hash = "sha256-+X9T9qMFAQmqQU/usYTK0QGBLUF2DpUrXYSZP2aF/+o=";
+    };
+    propagatedBuildInputs = [ TaskWeaken ];
+    buildInputs = [ ExtUtilsDepends ];
+    meta = {
+      description = "Helper functions for op tree manipulation";
+      homepage = "https://search.cpan.org/dist/B-Utils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BusinessHours = buildPerlPackage {
+    pname = "Business-Hours";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Business-Hours-0.13.tar.gz";
+      hash = "sha256-qAf+P/u4T/pTlnEazOdXZPOknyQjZGc1DHHIp3pcPsI=";
+    };
+    propagatedBuildInputs = [ SetIntSpan ];
+    meta = {
+      description = "Calculate business hours in a time period";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  BusinessISBN = buildPerlPackage {
+    pname = "Business-ISBN";
+    version = "3.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-3.008.tar.gz";
+      hash = "sha256-GcSh1NmaDddpWpAZKxNASg4+7r7fy+l6AgLjayOMDmk=";
+    };
+    propagatedBuildInputs = [ BusinessISBNData ];
+    meta = {
+      description = "Work with International Standard Book Numbers";
+      homepage = "https://github.com/briandfoy/business-isbn";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  BusinessISBNData = buildPerlPackage {
+    pname = "Business-ISBN-Data";
+    version = "20231006.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-Data-20231006.001.tar.gz";
+      hash = "sha256-KhazbjIzXOjI337m8ig2LzSuc8T8wSNQCVCiyMd/F0g=";
+    };
+    meta = {
+      description = "Data pack for Business::ISBN";
+      homepage = "https://github.com/briandfoy/business-isbn-data";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  BusinessISMN = buildPerlPackage {
+    pname = "Business-ISMN";
+    version = "1.203";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISMN-1.203.tar.gz";
+      hash = "sha256-T1Ou2rLmh9Th9yhW6vwiFZOQYhEj2q955FBqiX4pPog=";
+    };
+    propagatedBuildInputs = [ TieCycle ];
+    meta = {
+      description = "Work with International Standard Music Numbers";
+      homepage = "https://github.com/briandfoy/business-ismn";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  BusinessISSN = buildPerlPackage {
+    pname = "Business-ISSN";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.005.tar.gz";
+      hash = "sha256-OwmwJn8KZmD7krb1DEx3lu9qJjtirTu+qgcYmgx8ObM=";
+    };
+    meta = {
+      description = "Perl extension for International Standard Serial Numbers";
+      homepage = "https://github.com/briandfoy/business-issn";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  BytesRandomSecure = buildPerlPackage {
+    pname = "Bytes-Random-Secure";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-0.29.tar.gz";
+      hash = "sha256-U7vTOeahHvygfGGaYVx8GIpouyvoSaHLfvw91Nmuha4=";
+    };
+    propagatedBuildInputs = [ CryptRandomSeed MathRandomISAAC ];
+    meta = {
+      description = "Perl extension to generate cryptographically-secure random bytes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  BytesRandomSecureTiny = buildPerlPackage {
+    pname = "Bytes-Random-Secure-Tiny";
+    version = "1.011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-Tiny-1.011.tar.gz";
+      hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI=";
+    };
+    meta = {
+      description = "A tiny Perl extension to generate cryptographically-secure random bytes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CacheCache = buildPerlPackage {
+    pname = "Cache-Cache";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Cache-Cache-1.08.tar.gz";
+      hash = "sha256-0sf9Xbpd0BC32JI1FokLtsz2tfGIzLafNcsP1sAx0eg=";
+    };
+    propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
+    doCheck = false; # randomly fails
+    meta = {
+      description = "The Cache Interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CacheFastMmap = buildPerlPackage {
+    pname = "Cache-FastMmap";
+    version = "1.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.57.tar.gz";
+      hash = "sha256-4Es6KNmJ7bj7lur6zcK4f57MuE8EfrLifLJqp9CMx7g=";
+    };
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Uses an mmap'ed file to act as a shared memory interprocess cache";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CacheKyotoTycoon = buildPerlModule {
+    pname = "Cache-KyotoTycoon";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Cache-KyotoTycoon-0.16.tar.gz";
+      hash = "sha256-zLBII1iUxItpegDleMtFC05evBQYpVSnz6hjJwezlHw=";
+    };
+    propagatedBuildInputs = [ Furl URI ];
+    buildInputs = [ FileWhich TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "KyotoTycoon client library";
+      homepage = "https://github.com/tokuhirom/Cache-KyotoTycoon";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CacheMemcached = buildPerlPackage {
+    pname = "Cache-Memcached";
+    version = "1.30";
+    src = fetchurl {
+      url =
+      "mirror://cpan/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz";
+      hash = "sha256-MbPFHsDqrwMALizI49fVy+YZGc/a2mHACOuYU6ysQqk=";
+    };
+    propagatedBuildInputs = [ StringCRC32 ];
+    meta = {
+      description = "Client library for memcached (memory cache daemon)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CacheMemcachedFast = buildPerlPackage {
+    pname = "Cache-Memcached-Fast";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.28.tar.gz";
+      hash = "sha256-fEJMJTtl/2LPFXe7QYgCGSoYgF6jH6/Ap65YnkRsidI=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Perl client for memcached, in C language";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CacheMemory = buildPerlModule {
+    pname = "Cache";
+    version = "2.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Cache-2.11.tar.gz";
+      hash = "sha256-4dLYlneYEWarxbtuXsxkcfAB8T61bVvpVE2AR9wIpZI=";
+    };
+    propagatedBuildInputs = [ DBFile FileNFSLock HeapFibonacci IOString TimeDate ];
+    doCheck = false; # can time out
+    meta = {
+      description = "Memory based implementation of the Cache interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CacheSimpleTimedExpiry = buildPerlPackage {
+    pname = "Cache-Simple-TimedExpiry";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-0.27.tar.gz";
+      hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk=";
+    };
+    meta = {
+      description = "A lightweight cache with timed expiration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Cairo = buildPerlPackage {
+    pname = "Cairo";
+    version = "1.109";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-1.109.tar.gz";
+      hash = "sha256-ghlzbkAcIxHaX1FXdd5D/YfmOEtQTaNqGS8rIXZDB38=";
+    };
+    buildInputs = [ pkgs.cairo ];
+    propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
+    meta = {
+      description = "Perl interface to the cairo 2d vector graphics library";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Only ];
+    };
+  };
+
+  CairoGObject = buildPerlPackage {
+    pname = "Cairo-GObject";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-GObject-1.005.tar.gz";
+      hash = "sha256-jYlkRNceHQvKPSTjHl2CvQ2VQqrtkdH7fqs2e85nXFA=";
+    };
+    buildInputs = [ pkgs.cairo ];
+    propagatedBuildInputs = [ Cairo Glib ];
+    meta = {
+      description = "Integrate Cairo into the Glib type system";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Only ];
+    };
+  };
+
+  CallContext = buildPerlPackage {
+    pname = "Call-Context";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FELIPE/Call-Context-0.03.tar.gz";
+      hash = "sha256-Dua/RrxydVrbemsI550S4gfeX3gJcHs8NTtYyy8LWiY=";
+    };
+    meta = {
+      description = "Sanity-check calling context";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  cam_pdf = buildPerlModule {
+    pname = "CAM-PDF";
+    version = "1.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CD/CDOLAN/CAM-PDF-1.60.tar.gz";
+      hash = "sha256-52r8fzimJJJKd8XJiMNsnjiL+ncW51zTl/744bQuu4k=";
+    };
+    propagatedBuildInputs = [ CryptRC4 TextPDF ];
+    meta = {
+      description = "PDF manipulation library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  capitalization = buildPerlPackage {
+    pname = "capitalization";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz";
+      hash = "sha256-8TUW1XKUH2ihwj8uDkn1vwmyL5B+uSkrcrr/5ie77jw=";
+    };
+    propagatedBuildInputs = [ DevelSymdump ];
+    meta = {
+      description = "No capitalization on method names";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CanaryStability = buildPerlPackage {
+    pname = "Canary-Stability";
+    version = "2013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz";
+      hash = "sha256-pckcYs+V/Lho9g6rXIMpCPaQUiEBP+orzj/1cEbXtuo=";
+    };
+    meta = {
+      description = "Canary to check perl compatibility for schmorp's modules";
+      license = with lib.licenses; [ gpl1Plus ];
+    };
+  };
+
+  CaptchaReCAPTCHA = buildPerlPackage {
+    pname = "Captcha-reCaptcha";
+    version = "0.99";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SU/SUNNYP/Captcha-reCaptcha-0.99.tar.gz";
+      hash = "sha256-uJI1dmARZu3j9/Ly/1X/bjw7znDmnzZaUe076MykQ5I=";
+    };
+    propagatedBuildInputs = [ HTMLTiny LWP ];
+    meta = {
+      description = "A Perl implementation of the reCAPTCHA API";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CaptureTiny = buildPerlPackage {
+    pname = "Capture-Tiny";
+    version = "0.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz";
+      hash = "sha256-bCMRPoe605MwjJCiBwE+UF9lknRzZjjYx5usnGfMPhk=";
+    };
+    meta = {
+      description = "Capture STDOUT and STDERR from Perl, XS or external programs";
+      homepage = "https://github.com/dagolden/Capture-Tiny";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  CarpAlways = buildPerlPackage {
+    pname = "Carp-Always";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-0.16.tar.gz";
+      hash = "sha256-mKoRSSFxwBb7CCdYGrH6XtAbHpnGNXSJ3fOoJzFYZvE=";
+    };
+    buildInputs = [ TestBase ];
+    meta = {
+      description = "Warns and dies noisily with stack backtraces";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CarpAssert = buildPerlPackage {
+    pname = "Carp-Assert";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YV/YVES/Carp-Assert-0.22.tar.gz";
+      hash = "sha256-gH6pfGvtdqwuSWnvun2uSP7+ufKHl/ESZxs6yKSTVfc=";
+    };
+    meta = {
+      description = "Executable comments";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CarpAssertMore = buildPerlPackage {
+    pname = "Carp-Assert-More";
+    version = "2.3.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Carp-Assert-More-2.3.0.tar.gz";
+      hash = "sha256-/2nqCb2maiAPygiK3ZHFww5lcqt7ujF6f58zxRKzzqc=";
+    };
+    propagatedBuildInputs = [ CarpAssert ];
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Convenience assertions for common situations";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  CarpClan = buildPerlPackage {
+    pname = "Carp-Clan";
+    version = "6.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Carp-Clan-6.08.tar.gz";
+      hash = "sha256-x1+S40QizFplqwXRVYQrcBRSQ06a77ZJ1uIonEfvZwg=";
+    };
+    meta = {
+      description = "Report errors from perspective of caller of a \"clan\" of modules";
+      homepage = "https://github.com/karenetheridge/Carp-Clan";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Carton = buildPerlPackage {
+    pname = "Carton";
+    version = "1.0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Carton-v1.0.35.tar.gz";
+      hash = "sha256-nEVYypfNCLaf37UrKMPdwgQ+9S8GJ7kOU9BaQIc0QXU=";
+    };
+    propagatedBuildInputs = [ MenloLegacy PathTiny TryTiny ];
+    meta = {
+      description = "Perl module dependency manager (aka Bundler for Perl)";
+      homepage = "https://github.com/perl-carton/carton";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "carton";
+    };
+  };
+
+  CatalystActionRenderView = buildPerlPackage {
+    pname = "Catalyst-Action-RenderView";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Action-RenderView-0.16.tar.gz";
+      hash = "sha256-hWUgOVCgV9Q+zWTpWTcV1WXC+9iwLJH0PFOyERrNOUg=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime DataVisitor ];
+    buildInputs = [ HTTPRequestAsCGI ];
+    meta = {
+      description = "Sensible default end action";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystActionREST = buildPerlPackage {
+    pname = "Catalyst-Action-REST";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Action-REST-1.21.tar.gz";
+      hash = "sha256-zPgbulIA06CtaQH5I68XOj1EFmGK6gimk4uq/970yyA=";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ CatalystRuntime URIFind ];
+    meta = {
+      description = "Automated REST Method Dispatching";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystAuthenticationCredentialHTTP = buildPerlModule {
+    pname = "Catalyst-Authentication-Credential-HTTP";
+    version = "1.018";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Credential-HTTP-1.018.tar.gz";
+      hash = "sha256-b6GBbe5kSw216gzBXF5xHcLO0gg2JavOcJZSHx1lpSk=";
+    };
+    buildInputs = [ ModuleBuildTiny TestException TestMockObject TestNeeds ];
+    propagatedBuildInputs = [ CatalystPluginAuthentication ClassAccessor DataUUID StringEscape ];
+    meta = {
+      description = "HTTP Basic and Digest authentication for Catalyst";
+      homepage = "https://github.com/perl-catalyst/Catalyst-Authentication-Credential-HTTP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystAuthenticationStoreHtpasswd = buildPerlModule {
+    pname = "Catalyst-Authentication-Store-Htpasswd";
+    version = "1.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Store-Htpasswd-1.006.tar.gz";
+      hash = "sha256-x/2FYnXo3hjAAWHXNJTsZr0N3QoZ27dMQtVXHJ7ggE8=";
+    };
+    buildInputs = [ ModuleBuildTiny TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
+    propagatedBuildInputs = [ AuthenHtpasswd CatalystPluginAuthentication ];
+    patches = [
+      ../development/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch
+    ];
+    meta = {
+      description = "Authen::Htpasswd based user storage/authentication";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystAuthenticationStoreDBIxClass = buildPerlPackage {
+    pname = "Catalyst-Authentication-Store-DBIx-Class";
+    version = "0.1506";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-DBIx-Class-0.1506.tar.gz";
+      hash = "sha256-fFefJZUoXmTD3LVUAzSqmgAkQ+HUyMg6tEk7kMxRskQ=";
+    };
+    propagatedBuildInputs = [ CatalystModelDBICSchema CatalystPluginAuthentication ];
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Extensible and flexible object <-> relational mapper";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystAuthenticationStoreLDAP = buildPerlPackage {
+    pname = "Catalyst-Authentication-Store-LDAP";
+    version = "1.017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-LDAP-1.017.tar.gz";
+      hash = "sha256-keW4vd/XOGYqNh6/6nPYQrO6Me1wne2xqE7DRB3O7sU=";
+    };
+    propagatedBuildInputs = [ perlldap CatalystPluginAuthentication ClassAccessor ];
+    buildInputs = [ TestMockObject TestException NetLDAPServerTest ];
+    doCheck = !stdenv.isDarwin; # t/02-realms_api.t and t/50.auth.case.sensitivity.t
+    meta = {
+      description = "Authenticate Users against LDAP Directories";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystComponentInstancePerContext = buildPerlPackage {
+    pname = "Catalyst-Component-InstancePerContext";
+    version = "0.001001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRODITI/Catalyst-Component-InstancePerContext-0.001001.tar.gz";
+      hash = "sha256-f2P5MOHmE/FZVcnm1zhzZ1xQwKO8KmGgNHMzYe0m0nE=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ];
+    meta = {
+      description = "Moose role to create only one instance of component per context";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystControllerHTMLFormFu = buildPerlPackage {
+    pname = "Catalyst-Controller-HTML-FormFu";
+    version = "2.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NIGELM/Catalyst-Controller-HTML-FormFu-2.04.tar.gz";
+      hash = "sha256-8T+5s7OwCzXwarwxYURhyNc0b74H+1accejVhuXrXdw=";
+    };
+    buildInputs = [ CatalystActionRenderView CatalystPluginSession CatalystPluginSessionStateCookie CatalystPluginSessionStoreFile CatalystViewTT CodeTidyAllPluginPerlAlignMooseAttributes PodCoverageTrustPod PodTidy TemplateToolkit TestCPANMeta TestDifferences TestEOL TestKwalitee TestLongString TestMemoryCycle TestNoTabs TestPAUSEPermissions TestPod TestPodCoverage TestWWWMechanize TestWWWMechanizeCatalyst ];
+    propagatedBuildInputs = [ CatalystComponentInstancePerContext HTMLFormFuMultiForm RegexpAssemble ];
+    doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
+    meta = {
+      description = "HTML Form Creation, Rendering and Validation Framework";
+      homepage = "https://github.com/FormFu/HTML-FormFu";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystControllerPOD = buildPerlModule {
+    pname = "Catalyst-Controller-POD";
+    version = "1.0.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLER/Catalyst-Controller-POD-1.0.0.tar.gz";
+      hash = "sha256-7ipLs+14uqFGQzVAjyhDRba6DvZXate/vXtlbHiKOfk=";
+    };
+    buildInputs = [ ModuleInstall TestLongString TestWWWMechanize TestWWWMechanizeCatalyst ];
+    propagatedBuildInputs = [ CatalystPluginStaticSimple ClassAccessor FileSlurp JSONXS ListMoreUtils PodPOMViewTOC XMLSimple ];
+    meta = {
+      description = "Serves PODs right from your Catalyst application";
+      homepage = "https://search.cpan.org/dist/Catalyst-Controller-POD";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+  CatalystDevel = buildPerlPackage {
+    pname = "Catalyst-Devel";
+    version = "1.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Devel-1.42.tar.gz";
+      hash = "sha256-fsbwtsq1uMCX5Hdp/HOk1MAVpYxB/bQPwk3z7nfEir0=";
+    };
+    buildInputs = [ FileShareDirInstall TestFatal ];
+    propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ];
+    meta = {
+      description = "Catalyst Development Tools";
+      homepage = "http://dev.catalyst.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystDispatchTypeRegex = buildPerlModule {
+    pname = "Catalyst-DispatchType-Regex";
+    version = "5.90035";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90035.tar.gz";
+      hash = "sha256-AC3Pnv7HxYiSoYP5CAFTnQzxPsOvzPjTrRkhfCsNWBo=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ];
+    meta = {
+      description = "Regex DispatchType";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystManual = buildPerlPackage {
+    pname = "Catalyst-Manual";
+    version = "5.9011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Manual-5.9011.tar.gz";
+      hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw=";
+    };
+    meta = {
+      description = "The Catalyst developer's manual";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystModelDBICSchema = buildPerlPackage {
+    pname = "Catalyst-Model-DBIC-Schema";
+    version = "0.66";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Model-DBIC-Schema-0.66.tar.gz";
+      hash = "sha256-GST0wA6PD/HF0a+hbv5PhW8cXnT+VW7Cxfj1v2OtA0g=";
+    };
+    buildInputs = [ DBDSQLite TestException TestRequires ];
+    propagatedBuildInputs = [ CatalystComponentInstancePerContext CatalystXComponentTraits DBIxClassSchemaLoader MooseXMarkAsMethods MooseXNonMoose MooseXTypesLoadableClass TieIxHash ];
+    meta = {
+      description = "DBIx::Class::Schema Model Class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystRuntime = buildPerlPackage {
+    pname = "Catalyst-Runtime";
+    version = "5.90131";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz";
+      hash = "sha256-nWQe+s8PmTXm7LmPWjtHbJYbH4Gb0vjyOmR9HYZ+GEk=";
+    };
+    buildInputs = [ TestFatal TypeTiny ];
+    propagatedBuildInputs = [ CGISimple CGIStruct ClassC3AdoptNEXT DataDump HTTPBody ModulePluggable MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass PerlIOutf8_strict PlackMiddlewareFixMissingBodyInRedirect PlackMiddlewareMethodOverride PlackMiddlewareRemoveRedundantBody PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StringRewritePrefix TaskWeaken TextSimpleTable TreeSimpleVisitorFactory URIws ];
+    meta = {
+      description = "The Catalyst Framework Runtime";
+      homepage = "http://dev.catalyst.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "catalyst.pl";
+    };
+  };
+
+  CatalystPluginAccessLog = buildPerlPackage {
+    pname = "Catalyst-Plugin-AccessLog";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARODLAND/Catalyst-Plugin-AccessLog-1.10.tar.gz";
+      hash = "sha256-hz245OcqmU4+F661PSuDfm1SS0uLDzU58mITXIjMISA=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime DateTime ];
+    meta = {
+      description = "Request logging from within Catalyst";
+      homepage = "https://metacpan.org/release/Catalyst-Plugin-AccessLog";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginAuthentication = buildPerlPackage {
+    pname = "Catalyst-Plugin-Authentication";
+    version = "0.10023";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authentication-0.10023.tar.gz";
+      hash = "sha256-NgOaq9rLB+Zoek16i/rHj+nQ+7BM2o1tlm1sHjJZ0Gw=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ CatalystPluginSession ];
+    meta = {
+      description = "Infrastructure plugin for the Catalyst authentication framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginAuthorizationACL = buildPerlPackage {
+    pname = "Catalyst-Plugin-Authorization-ACL";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.16.tar.gz";
+      hash = "sha256-KjfmU0gu/SyTuGxqg4lB4FbF+U3YbA8LiT1RkzMSg3w=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ClassThrowable ];
+    buildInputs = [ CatalystPluginAuthentication CatalystPluginAuthorizationRoles CatalystPluginSession CatalystPluginSessionStateCookie TestWWWMechanizeCatalyst ];
+    meta = {
+      description = "ACL support for Catalyst applications";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginAuthorizationRoles = buildPerlPackage {
+    pname = "Catalyst-Plugin-Authorization-Roles";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authorization-Roles-0.09.tar.gz";
+      hash = "sha256-7kBE5eKg2UxOxRL61V7gyN4UTh47h4Ugf5YCXPmkA1E=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ CatalystPluginAuthentication SetObject UNIVERSALisa ];
+    meta = {
+      description = "Role based authorization for Catalyst based on Catalyst::Plugin::Authentication";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginCache = buildPerlPackage {
+    pname = "Catalyst-Plugin-Cache";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Cache-0.12.tar.gz";
+      hash = "sha256-KV/tRJyTJLBleP1GjjOR4E+/ZK0kN2oARAjRvG9UQ+A=";
+    };
+    buildInputs = [ ClassAccessor TestDeep TestException ];
+    propagatedBuildInputs = [ CatalystRuntime ];
+    meta = {
+      description = "Flexible caching support for Catalyst";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginCacheHTTP = buildPerlPackage {
+    pname = "Catalyst-Plugin-Cache-HTTP";
+    version = "0.001000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRAF/Catalyst-Plugin-Cache-HTTP-0.001000.tar.gz";
+      hash = "sha256-aq2nDrKfYd90xTj5KaEHD92TIMW278lNJkwzghe8sWw=";
+    };
+    buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
+    propagatedBuildInputs = [ ClassAccessor HTTPMessage MROCompat ];
+    meta = {
+      description = "HTTP/1.1 cache validators for Catalyst";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginCaptcha = buildPerlPackage {
+    pname = "Catalyst-Plugin-Captcha";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DI/DIEGOK/Catalyst-Plugin-Captcha-0.04.tar.gz";
+      hash = "sha256-Sj1ccgBiTT567ULQWnBnSSdGg+t7rSYN6Sx1W/aQnlI=";
+    };
+    propagatedBuildInputs = [ CatalystPluginSession GDSecurityImage ];
+    meta = {
+      description = "Create and validate Captcha for Catalyst";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginConfigLoader = buildPerlPackage {
+    pname = "Catalyst-Plugin-ConfigLoader";
+    version = "0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-ConfigLoader-0.35.tar.gz";
+      hash = "sha256-nippim8tBG4NxeV1EpKc1CPIB9Sja6Pynp5a3NcaGXE=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ConfigAny DataVisitor ];
+    meta = {
+      description = "Load config files of various types";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginFormValidator = buildPerlPackage {
+    pname = "Catalyst-Plugin-FormValidator";
+    version = "0.094";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-0.094.tar.gz";
+      hash = "sha256-WDTxG/XJ9LXTNtZcfOZjm3bOe/56KHXrBI1+ocgs4Fo=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime DataFormValidator ];
+    meta = {
+      description = "Data::FormValidator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginFormValidatorSimple = buildPerlPackage {
+    pname = "Catalyst-Plugin-FormValidator-Simple";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-Simple-0.15.tar.gz";
+      hash = "sha256-SGxqDo9BD9AXJ59IBKueNbpGMh0zoKlyH+Hgijkd56A=";
+    };
+    propagatedBuildInputs = [ CatalystPluginFormValidator FormValidatorSimple ];
+    meta = {
+      description = "Validation with simple chains of constraints ";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginLogHandler = buildPerlModule {
+    pname = "Catalyst-Plugin-Log-Handler";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEPE/Catalyst-Plugin-Log-Handler-0.08.tar.gz";
+      hash = "sha256-DbPDpXtO49eJulEpiQ4oWJE/7wDYGFvcnF1/3jHgQ+8=";
+    };
+    propagatedBuildInputs = [ ClassAccessor LogHandler MROCompat ];
+    meta = {
+      description = "Log messages to several outputs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginPrometheusTiny = buildPerlPackage {
+    pname = "Catalyst-Plugin-PrometheusTiny";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYSPETE/Catalyst-Plugin-PrometheusTiny-0.006.tar.gz";
+      hash = "sha256-Kzm5l7q/+rNTquMsol8smbdljlBEew23H7gKFsS2osE=";
+    };
+    buildInputs = [ HTTPMessage Plack SubOverride TestDeep ];
+    propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ];
+    meta = {
+      description = "A tiny Prometheus client";
+      homepage = "https://github.com/robn/Prometheus-Tiny";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginSession = buildPerlPackage {
+    pname = "Catalyst-Plugin-Session";
+    version = "0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-0.43.tar.gz";
+      hash = "sha256-Xn180rlbH8IkS8buuPRPg11gPqB/WjkRCIHbYJKLFMQ=";
+    };
+    buildInputs = [ TestDeep TestException TestNeeds ];
+    propagatedBuildInputs = [ CatalystRuntime ObjectSignature ];
+    meta = {
+      description = "Generic Session plugin - ties together server side storage and client side state required to maintain session data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginSessionDynamicExpiry = buildPerlPackage {
+    pname = "Catalyst-Plugin-Session-DynamicExpiry";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-DynamicExpiry-0.04.tar.gz";
+      hash = "sha256-dwfFZzTNsVEvcz3EAPrfb0xTyyF7WCB4V4JNrWeAoHk=";
+    };
+    propagatedBuildInputs = [ CatalystPluginSession ];
+    meta = {
+      description = "Per-session custom expiry times";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginSessionStateCookie = buildPerlPackage {
+    pname = "Catalyst-Plugin-Session-State-Cookie";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-State-Cookie-0.18.tar.gz";
+      hash = "sha256-6bHHsrlsGU+Hpfd+FElxcHfHD/xnpL/CnwJsnuLge+o=";
+    };
+    propagatedBuildInputs = [ CatalystPluginSession ];
+    meta = {
+      description = "Maintain session IDs using cookies";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginSessionStoreFastMmap = buildPerlPackage {
+    pname = "Catalyst-Plugin-Session-Store-FastMmap";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-Store-FastMmap-0.16.tar.gz";
+      hash = "sha256-uut/17+QW+dGMciHYP2KKYDO6pVieZM5lYFkPvY3cnQ=";
+    };
+    propagatedBuildInputs = [ CacheFastMmap CatalystPluginSession ];
+    meta = {
+      description = "FastMmap session storage backend";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginSessionStoreFile = buildPerlPackage {
+    pname = "Catalyst-Plugin-Session-Store-File";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/Catalyst-Plugin-Session-Store-File-0.18.tar.gz";
+      hash = "sha256-VHOOPOdvi+i2aUcJLSiXPHPXnR7hm12SsFdVL4/wm08=";
+    };
+    propagatedBuildInputs = [ CacheCache CatalystPluginSession ClassDataInheritable ];
+    meta = {
+      description = "File storage backend for session data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginSmartURI = buildPerlPackage {
+    pname = "Catalyst-Plugin-SmartURI";
+    version = "0.041";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-SmartURI-0.041.tar.gz";
+      hash = "sha256-y4ghhphUUSA9kj19+QIKoELajcGUltgj4WU1twUfX1c=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ClassC3Componentised ];
+    buildInputs = [ CatalystActionREST TestWarnings TimeOut URISmartURI ];
+    meta = {
+      description = "Configurable URIs for Catalyst";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginStackTrace = buildPerlPackage {
+    pname = "Catalyst-Plugin-StackTrace";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-StackTrace-0.12.tar.gz";
+      hash = "sha256-Mp2s0LoJ0Qp2CHqxdvldtro9smotD+M+7i9eRs7XU6w=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ];
+    meta = {
+      description = "Display a stack trace on the debug screen";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginStaticSimple = buildPerlPackage {
+    pname = "Catalyst-Plugin-Static-Simple";
+    version = "0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Plugin-Static-Simple-0.37.tar.gz";
+      hash = "sha256-Wk2Fo1iM1Og/GwAlgUEufXG31X9mBW5dh6Nvk9icnnw=";
+    };
+    patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ];
+    propagatedBuildInputs = [ CatalystRuntime MIMETypes MooseXTypes ];
+    meta = {
+      description = "Make serving static pages painless";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystPluginStatusMessage = buildPerlPackage {
+    pname = "Catalyst-Plugin-StatusMessage";
+    version = "1.002000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HK/HKCLARK/Catalyst-Plugin-StatusMessage-1.002000.tar.gz";
+      hash = "sha256-ZJyJSrFvn0itqPnMWZp+y7iJGrN2H/b9UQUgxt5AfB8=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime strictures ];
+    meta = {
+      description = "Handle passing of status (success and error) messages between screens of a web application";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystViewCSV = buildPerlPackage {
+    pname = "Catalyst-View-CSV";
+    version = "1.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMREIN/Catalyst-View-CSV-1.8.tar.gz";
+      hash = "sha256-vKcEaDzDXEevuJrDjHFRAu2+gIF57gcz0qDrMRojbN8=";
+    };
+    buildInputs = [ CatalystActionRenderView CatalystModelDBICSchema CatalystPluginConfigLoader CatalystXComponentTraits ConfigGeneral DBDSQLite DBIxClass TestException ];
+    propagatedBuildInputs = [ CatalystRuntime TextCSV ];
+    meta = {
+      description = "CSV view class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystViewDownload = buildPerlPackage {
+    pname = "Catalyst-View-Download";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAUDEON/Catalyst-View-Download-0.09.tar.gz";
+      hash = "sha256-es+PXyRex/bzU/SHKdE3sSrxrPos8fvWXHA5HpM3+OE=";
+    };
+    buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ];
+    meta = {
+      description = "A view module to help in the convenience of downloading data into many supportable formats";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystViewJSON = buildPerlPackage {
+    pname = "Catalyst-View-JSON";
+    version = "0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-View-JSON-0.37.tar.gz";
+      hash = "sha256-xdo/bop3scmYVd431YgCwLGU4pp9hsYO04Mc/dWfnew=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ];
+    meta = {
+      description = "JSON (JavaScript Object Notation) encoder/decoder";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystViewTT = buildPerlPackage {
+    pname = "Catalyst-View-TT";
+    version = "0.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-View-TT-0.46.tar.gz";
+      hash = "sha256-7aRFfbv4GkJBtzWl1GnZcn2KMJHSSvGuPJog8CTeUcw=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime ClassAccessor TemplateTimer ];
+    meta = {
+      description = "Template View Class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystXComponentTraits = buildPerlPackage {
+    pname = "CatalystX-Component-Traits";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/CatalystX-Component-Traits-0.19.tar.gz";
+      hash = "sha256-CElE6cnQ37ENSrNFPhwSX97jkSm0bRfAI0w8U1FkBEc=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime MooseXTraitsPluggable ];
+    meta = {
+      description = "Automatic Trait Loading and Resolution for Catalyst Components";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystXRoleApplicator = buildPerlPackage {
+    pname = "CatalystX-RoleApplicator";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HD/HDP/CatalystX-RoleApplicator-0.005.tar.gz";
+      hash = "sha256-4o5HZ3aJva31VE4cQaKsV1WZNm+EDXO70LA8ZPtVim8=";
+    };
+    propagatedBuildInputs = [ CatalystRuntime MooseXRelatedClassRoles ];
+    meta = {
+      description = "Apply roles to your Catalyst application-related classes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystTraitForRequestProxyBase = buildPerlPackage {
+    pname = "Catalyst-TraitFor-Request-ProxyBase";
+    version = "0.000005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-TraitFor-Request-ProxyBase-0.000005.tar.gz";
+      hash = "sha256-p78Pqn4Syl32Jdn1/HEPEb/Ra6U4WDfkjUKz0obJcQo=";
+    };
+    buildInputs = [ CatalystRuntime CatalystXRoleApplicator HTTPMessage ];
+    propagatedBuildInputs = [ Moose URI namespaceautoclean ];
+    meta = {
+      description = "Replace request base with value passed by HTTP proxy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CatalystXScriptServerStarman = buildPerlPackage {
+    pname = "CatalystX-Script-Server-Starman";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABRAXXA/CatalystX-Script-Server-Starman-0.03.tar.gz";
+      hash = "sha256-5jpH80y0P3+87GdYyaVCiAGOOIAjZTYYkLKjTfCKWyI=";
+    };
+    patches = [
+      # See Nixpkgs issues #16074 and #17624
+      ../development/perl-modules/CatalystXScriptServerStarman-fork-arg.patch
+    ];
+    buildInputs = [ TestWWWMechanizeCatalyst ];
+    propagatedBuildInputs = [ CatalystRuntime MooseXTypes PodParser Starman ];
+    meta = {
+      description = "Replace the development server with Starman";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CDB_File = buildPerlPackage {
+    pname = "CDB_File";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/CDB_File-1.05.tar.gz";
+      hash = "sha256-hWSEnVY5AV3iNiTlc8riU265CUMrZNkAmKHgtFKp60s=";
+    };
+    buildInputs = [ TestFatal TestWarnings ];
+    propagatedBuildInputs = [ BCOW ];
+    meta = {
+      description = "Perl extension for access to cdb databases";
+      homepage = "https://github.com/toddr/CDB_File";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Catmandu = buildPerlModule {
+    pname = "Catmandu";
+    version = "1.2020";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HO/HOCHSTEN/Catmandu-1.2020.tar.gz";
+      hash = "sha256-1jIbR+NkGvkb7vZjNhWZVk88wzwAc5isa7opuO5A4cU=";
+    };
+    propagatedBuildInputs = [ AnyURIEscape AppCmd CGIExpand ConfigOnion CpanelJSONXS DataCompare DataUtil IOHandleUtil LWP ListMoreUtils LogAny MIMETypes ModuleInfo MooXAliases ParserMGC PathIteratorRule PathTiny StringCamelCase TextCSV TextHogan Throwable TryTinyByClass URITemplate UUIDTiny YAMLLibYAML namespaceclean ];
+    buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
+    meta = {
+      description = "A data toolkit";
+      homepage = "https://github.com/LibreCat/Catmandu";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "catmandu";
+    };
+  };
+
+  CDDB_get = buildPerlPackage {
+    pname = "CDDB_get";
+    version = "2.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FO/FONKIE/CDDB_get-2.28.tar.gz";
+      hash = "sha256-vcy6H6jkwc8xicXlo1KaZpOmSKpSgrWXU4x6rdzm2ck=";
+    };
+    meta = {
+      description = "Get the CDDB info for an audio cd";
+      license = with lib.licenses; [ artistic1 ];
+      maintainers = [ maintainers.endgame ];
+      mainProgram = "cddb.pl";
+    };
+  };
+
+  CDDBFile = buildPerlPackage {
+    pname = "CDDB-File";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz";
+      hash = "sha256-6+ZCnEFcFOc8bK/g1OLc3o4WnYFScfHhUjwmThrsx8k=";
+    };
+    meta = {
+      description = "Parse a CDDB/freedb data file";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+
+  CGI = buildPerlPackage {
+    pname = "CGI";
+    version = "4.59";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.59.tar.gz";
+      hash = "sha256-be5LibiLEOd8lvPAjRm1hq74M7F6Ql1hiq19KMJi+Rw=";
+    };
+    buildInputs = [ TestDeep TestNoWarnings TestWarn ];
+    propagatedBuildInputs = [ HTMLParser ];
+    meta = {
+      description = "Handle Common Gateway Interface requests and responses";
+      homepage = "https://metacpan.org/module/CGI";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  CGICompile = buildPerlModule {
+    pname = "CGI-Compile";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.26.tar.gz";
+      hash = "sha256-TzhcEMLJd+tgPzjNFT4OA2jfA3H9vSP1qm7nL0/GXcg=";
+    };
+    propagatedBuildInputs = [ Filepushd SubName ];
+    buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ];
+    meta = {
+      description = "Compile .cgi scripts to a code reference like ModPerl::Registry";
+      homepage = "https://github.com/miyagawa/CGI-Compile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGICookieXS = buildPerlPackage {
+    pname = "CGI-Cookie-XS";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGENT/CGI-Cookie-XS-0.18.tar.gz";
+      hash = "sha256-RpnLSr2XIBSvO+ubCmlbQluH2ibLK0vbJgIHCqrdPcY=";
+    };
+    meta = {
+      description = "HTTP Cookie parser in pure C";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGIEmulatePSGI = buildPerlPackage {
+    pname = "CGI-Emulate-PSGI";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/CGI-Emulate-PSGI-0.23.tar.gz";
+      hash = "sha256-3VtsNT8I+6EA2uCZBChPf3P4Mo0x9qZ7LBNvrXKNFYs=";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ CGI ];
+    meta = {
+      description = "PSGI adapter for CGI";
+      homepage = "https://github.com/tokuhirom/p5-cgi-emulate-psgi";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGIExpand = buildPerlPackage {
+    pname = "CGI-Expand";
+    version = "2.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.05.tar.gz";
+      hash = "sha256-boLRGOPEwMLa/NpYde3l6N2//+C336pkjkUeA5pFpKk=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Convert flat hash to nested data using TT2's dot convention";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGIFast = buildPerlPackage {
+    pname = "CGI-Fast";
+    version = "2.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-Fast-2.16.tar.gz";
+      hash = "sha256-AiPX+RuAA3ud/183NgZAtx9dyNvZiaBZPV0i8/c8s9Q=";
+    };
+    propagatedBuildInputs = [ CGI FCGI ];
+    doCheck = false;
+    meta = {
+      description = "CGI Interface for Fast CGI";
+      homepage = "https://metacpan.org/module/CGI::Fast";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGIFormBuilder = buildPerlPackage {
+    pname = "CGI-FormBuilder";
+    version = "3.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BIGPRESH/CGI-FormBuilder-3.10.tar.gz";
+      hash = "sha256-rsmb4MDwZ6fnJpxTeOWubI1905s2i08SwNhGOxPucZg=";
+    };
+
+    propagatedBuildInputs = [ CGI ];
+    meta = {
+      description = "Easily generate and process stateful forms";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGIMinimal = buildPerlModule {
+    pname = "CGI-Minimal";
+    version = "1.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz";
+      hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc=";
+    };
+    meta = {
+      description = "A lightweight CGI form processing package";
+      homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  CGIPSGI = buildPerlPackage {
+    pname = "CGI-PSGI";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-PSGI-0.15.tar.gz";
+      hash = "sha256-xQ3LEL+EhqmEO67QMq2J2Hn/L0HJkzQt6tYvlHpZjZE=";
+    };
+    propagatedBuildInputs = [ CGI ];
+    meta = {
+      description = "Adapt CGI.pm to the PSGI protocol";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGISession = buildPerlModule {
+    pname = "CGI-Session";
+    version = "4.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-4.48.tar.gz";
+      hash = "sha256-RnVkYcJM52ZrgQjduW26thJpnfMBLIDvEQFmGf4VVPc=";
+    };
+    propagatedBuildInputs = [ CGI ];
+    meta = {
+      description = "Persistent session data in CGI applications";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  CGISimple = buildPerlPackage {
+    pname = "CGI-Simple";
+    version = "1.280";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.280.tar.gz";
+      hash = "sha256-GOAen/uBTl5O6neshImyBp/oNlGFUPN/bCIT61Wcar8=";
+    };
+    buildInputs = [ TestException TestNoWarnings ];
+    meta = {
+      description = "A Simple totally OO CGI interface that is CGI.pm compliant";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CGIStruct = buildPerlPackage {
+    pname = "CGI-Struct";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz";
+      hash = "sha256-0T2Np/3NbZBgVOR2D8KKcYrskb088GeliSf7fLHAnWw=";
+    };
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Build structures from CGI data";
+      license = with lib.licenses; [ bsd2 ];
+    };
+  };
+
+  CHI = buildPerlPackage {
+    pname = "CHI";
+    version = "0.61";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASB/CHI-0.61.tar.gz";
+      hash = "sha256-WDVFyeUxK7QZOrFt6fVf+PS0p97RKM7o3SywIdRni1s=";
+    };
+    preConfigure = ''
+      # fix error 'Unescaped left brace in regex is illegal here in regex'
+      substituteInPlace lib/CHI/t/Driver/Subcache/l1_cache.pm --replace 'qr/CHI stats: {' 'qr/CHI stats: \{'
+    '';
+    buildInputs = [ TestClass TestDeep TestException TestWarn TimeDate ];
+    propagatedBuildInputs = [ CarpAssert ClassLoad DataUUID DigestJHash HashMoreUtils JSONMaybeXS ListMoreUtils LogAny Moo MooXTypesMooseLikeNumeric StringRewritePrefix TaskWeaken TimeDuration TimeDurationParse ];
+    meta = {
+      description = "Unified cache handling interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Chart = buildPerlPackage {
+    pname = "Chart";
+    version = "2.403.9";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Chart-v2.403.9.tar.gz";
+      hash = "sha256-V8aCi7TIpyFw/rZ9wfFIq/Gcqzgnd54wh3tGEe1n86s=";
+    };
+    buildInputs = [ TestWarn ];
+    propagatedBuildInputs = [ GD GraphicsToolkitColor ];
+    meta = {
+      description = "A series of charting modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ChipcardPCSC = buildPerlPackage {
+    pname = "Chipcard-PCSC";
+    version = "1.4.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WH/WHOM/Chipcard-PCSC-v1.4.16.tar.gz";
+      hash = "sha256-O14p1jRDXxQm7Nzfebo1G04mWPNsPCK+N7HTHjbKj6k=";
+    };
+    buildInputs = [ pkgs.pcsclite ];
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    env.NIX_CFLAGS_COMPILE = toString ([
+      "-I${pkgs.pcsclite.dev}/include/PCSC"
+    ] ++ lib.optionals stdenv.cc.isClang [
+      "-Wno-error=implicit-int"
+      "-Wno-error=int-conversion"
+    ]);
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite";
+    # tests fail; look unfinished
+    doCheck = false;
+    meta = {
+      description = "Communicate with a smart card using PC/SC";
+      homepage = "https://pcsc-perl.apdu.fr/";
+      license = with lib.licenses; [ gpl2Plus ];
+      maintainers = with maintainers; [ abbradar anthonyroussel ];
+    };
+  };
+
+  CiscoIPPhone = buildPerlPackage {
+    pname = "Cisco-IPPhone";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz";
+      hash = "sha256-sDyiY/j0Gm7FRcU5MhOjFG02vUUzWt6Zr1HdQqtu4W0=";
+    };
+    meta = {
+      description = "Package for creating Cisco IPPhone XML objects";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  CLASS = buildPerlPackage {
+    pname = "CLASS";
+    version = "1.1.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JD/JDEGUEST/CLASS-v1.1.8.tar.gz";
+      hash = "sha256-IZAaUmXL29iRJ36X/Gs0X3nby/B3RFePX/iGaltddgM=";
+    };
+    meta = {
+      description = "Alias for __PACKAGE__";
+      homepage = "https://metacpan.org/pod/CLASS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ClassAccessor = buildPerlPackage {
+    pname = "Class-Accessor";
+    version = "0.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz";
+      hash = "sha256-vxKj5d5aLG6KRHs2T09aBQv3RiTFbjFQIq55kv8vQRw=";
+    };
+    meta = {
+      description = "Automated accessor generation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassAccessorChained = buildPerlModule {
+    pname = "Class-Accessor-Chained";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz";
+      hash = "sha256-pb9J04BPg60lobFvMn0U1MvuInATIQSyhwUDHbzMNNI=";
+    };
+    propagatedBuildInputs = [ ClassAccessor ];
+    meta = {
+      description = "Make chained accessors";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassAccessorGrouped = buildPerlPackage {
+    pname = "Class-Accessor-Grouped";
+    version = "0.10014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Class-Accessor-Grouped-0.10014.tar.gz";
+      hash = "sha256-NdWwPvwJ9n86MVXJYkEmw+FiyOPKmP+CbbNYUzpExLs=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ ModuleRuntime ];
+    meta = {
+      description = "Lets you build groups of accessors";
+      homepage = "https://metacpan.org/release/Class-Accessor-Grouped";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassAccessorLite = buildPerlPackage {
+    pname = "Class-Accessor-Lite";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz";
+      hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o=";
+    };
+    meta = {
+      description = "A minimalistic variant of Class::Accessor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassAutouse = buildPerlPackage {
+    pname = "Class-Autouse";
+    version = "2.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-2.01.tar.gz";
+      hash = "sha256-wFsyNsBXGdgZwg2w/ettCVR0fkPXpzgpTu1/vPNuzxs=";
+    };
+    meta = {
+      description = "Run-time load a class the first time you call a method in it";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassBase = buildPerlPackage {
+    pname = "Class-Base";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YANICK/Class-Base-0.09.tar.gz";
+      hash = "sha256-4aW93lJQWAJmSpEIpRXJ6OUCy3IppJ3pT0CBsbKu7YQ=";
+    };
+    propagatedBuildInputs = [ Clone ];
+    meta = {
+      description = "Useful base class for deriving other modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassC3 = buildPerlPackage {
+    pname = "Class-C3";
+    version = "0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-0.35.tar.gz";
+      hash = "sha256-hAU88aaPzIwSBWwvEgrfBPf2jjvjT0QI6V0Cb+5n4z4=";
+    };
+    propagatedBuildInputs = [ AlgorithmC3 ];
+    meta = {
+      description = "A pragma to use the C3 method resolution order algorithm";
+      homepage = "https://metacpan.org/release/Class-C3";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassC3AdoptNEXT = buildPerlModule {
+    pname = "Class-C3-Adopt-NEXT";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz";
+      hash = "sha256-hWdiJarbduhmamq+LgZZ1A60WBrWOFsXDupOHWvzS/c=";
+    };
+    buildInputs = [ ModuleBuildTiny TestException ];
+    propagatedBuildInputs = [ MROCompat ];
+    meta = {
+      description = "Make NEXT suck less";
+      homepage = "https://github.com/karenetheridge/Class-C3-Adopt-NEXT";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassC3Componentised = buildPerlPackage {
+    pname = "Class-C3-Componentised";
+    version = "1.001002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-Componentised-1.001002.tar.gz";
+      hash = "sha256-MFGxRtwe/q6hqaLp5rF3MICZW4mKtYPxVWWNX8gLlpM=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ ClassC3 ClassInspector MROCompat ];
+    meta = {
+      description = "Load mix-ins or components to your C3-based class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassClassgenclassgen = buildPerlPackage {
+    pname = "Class-Classgen-classgen";
+    version = "3.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHLUE/Class-Classgen-classgen-3.03.tar.gz";
+      hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY=";
+    };
+    meta = {
+      description = "Simplifies creation, manipulation and usage of complex objects.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "classgen";
+    };
+  };
+
+  ClassContainer = buildPerlModule {
+    pname = "Class-Container";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Class-Container-0.13.tar.gz";
+      hash = "sha256-9dSVsd+4JtXAxF0DtNDmtgR8uwbNv2vhX9TckCrutws=";
+    };
+    propagatedBuildInputs = [ ParamsValidate ];
+    meta = {
+      description = "Glues object frameworks together transparently";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassDataAccessor = buildPerlPackage {
+    pname = "Class-Data-Accessor";
+    version = "0.04004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz";
+      hash = "sha256-wSLW4t9hNs6b6h5tK3dsueaeAAhezplTAYFMevOo6BQ=";
+    };
+    meta = {
+      description = "Inheritable, overridable class and instance data accessor creation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassDataInheritable = buildPerlPackage {
+    pname = "Class-Data-Inheritable";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz";
+      hash = "sha256-RAiNbpBxLhh7ilsFDKWxxw7+K6oyrhI+m9j1nynwbk0=";
+    };
+    meta = {
+      description = "Inheritable, overridable class data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassEHierarchy = buildPerlPackage {
+    pname = "Class-EHierarchy";
+    version = "2.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORLISS/Class-EHierarchy/Class-EHierarchy-2.01.tar.gz";
+      hash = "sha256-Y3q3a+s4MqmwcbmZobFb8F0pffamYsyxqABPKYcwg4I=";
+    };
+    meta = {
+      description = "Base class for hierarchally ordered objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  ClassFactory = buildPerlPackage {
+    pname = "Class-Factory";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/Class-Factory-1.06.tar.gz";
+      hash = "sha256-w3otJp65NfNqI+ETSArglG+nwSoSeBOWoSJsjkNfMPU=";
+    };
+    meta = {
+      description = "Base class for dynamic factory classes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassFactoryUtil = buildPerlModule {
+    pname = "Class-Factory-Util";
+    version = "1.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz";
+      hash = "sha256-bFFrRFtE+HNj+zoUhDHTHp7LXm8h+2SByJskBrZpLiY=";
+    };
+    meta = {
+      description = "Provide utility methods for factory classes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassGomor = buildPerlModule {
+    pname = "Class-Gomor";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GO/GOMOR/Class-Gomor-1.03.tar.gz";
+      hash = "sha256-R9s86pzp/6mL+cdFV/0yz3AHkatTcCDJWKwwtKn/IAs=";
+    };
+    meta = {
+      description = "Another class and object builder";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  ClassInspector = buildPerlPackage {
+    pname = "Class-Inspector";
+    version = "1.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz";
+      hash = "sha256-zCldI6RyaHwkSJ1YIm6tI7n9wliOUi8LXwdHdBcAaU4=";
+    };
+    meta = {
+      description = "Get information about a class and its structure";
+      homepage = "https://metacpan.org/pod/Class::Inspector";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassISA = buildPerlPackage {
+    pname = "Class-ISA";
+    version = "0.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-ISA-0.36.tar.gz";
+      hash = "sha256-iBbzTpo46EmhDfdWAw3M+f4GGhlsEaw/qv1xE8kpuWQ=";
+    };
+    meta = {
+      description = "Report the search path for a class's ISA tree";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassIterator = buildPerlPackage {
+    pname = "Class-Iterator";
+    version = "0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TE/TEXMEC/Class-Iterator-0.3.tar.gz";
+      hash = "sha256-2xuofKkQfxYf6cHp5+JnwAJt78Jv4+c7ytirj/wY750=";
+    };
+    meta = {
+      description = "Iterator class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassLoader = buildPerlPackage rec {
+    pname = "Class-Loader";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz";
+      hash = "sha256-T+8gdurWBCNFT/H06ChZqam5lCtfuO7gyYucY8nyuOc=";
+    };
+    meta = {
+      description = "Load modules and create objects on demand";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassMakeMethods = buildPerlPackage {
+    pname = "Class-MakeMethods";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EV/EVO/Class-MakeMethods-1.01.tar.gz";
+      hash = "sha256-rKx0LnnQ7Ip75Nj7gTqF6kTUfRnAFwzdswZEYCtYLGY=";
+    };
+    preConfigure = ''
+      # fix error 'Unescaped left brace in regex is illegal here in regex'
+      substituteInPlace tests/xemulator/class_methodmaker/Test.pm --replace 's/(TEST\s{)/$1/g' 's/(TEST\s\{)/$1/g'
+    '';
+    meta = {
+      description = "Generate common types of methods";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassMember = buildPerlPackage {
+    pname = "Class-Member";
+    version = "1.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OP/OPI/Class-Member-1.6.tar.gz";
+      hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE=";
+    };
+    meta = {
+      description = "A set of modules to make the module developement easier";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassMethodMaker = buildPerlPackage {
+    pname = "Class-MethodMaker";
+    version = "2.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.24.tar.gz";
+      hash = "sha256-Xu9YzLJ+vQG83lsUvMVTtTR6Bpnlw+khx3gMNSaJAyg=";
+    };
+    # Remove unnecessary, non-autoconf, configure script.
+    prePatch = "rm configure";
+    meta = {
+      description = "A module for creating generic methods";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassMethodModifiers = buildPerlPackage {
+    pname = "Class-Method-Modifiers";
+    version = "2.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.15.tar.gz";
+      hash = "sha256-Zc2Fv+R10GbpGG96jMY2BwmFswsOuxzehoHPBiwuFfw=";
+    };
+    buildInputs = [ TestFatal TestNeeds ];
+    meta = {
+      description = "Provides Moose-like method modifiers";
+      homepage = "https://github.com/moose/Class-Method-Modifiers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassMix = buildPerlModule {
+    pname = "Class-Mix";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-0.006.tar.gz";
+      hash = "sha256-h0f2Q4k5FPjESXnxcW0MHsikE5R5ZVVEeUToYPH/fAs=";
+    };
+    propagatedBuildInputs = [ ParamsClassify ];
+    meta = {
+      description = "Dynamic class mixing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassRefresh = buildPerlPackage {
+    pname = "Class-Refresh";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-0.07.tar.gz";
+      hash = "sha256-47ADU1XLs1oq7j8iNojVeJRqenxXCs05iyjN2x/UvrM=";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ ClassLoad ClassUnload DevelOverrideGlobalRequire TryTiny ];
+    meta = {
+      homepage = "http://metacpan.org/release/Class-Refresh";
+      description = "Refresh your classes during runtime";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassReturnValue = buildPerlPackage {
+    pname = "Class-ReturnValue";
+    version = "0.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JESSE/Class-ReturnValue-0.55.tar.gz";
+      hash = "sha256-7Tg2iF149zTM16mFUOxCKmFt98MTEMG3sfZFn1+w5L0=";
+    };
+    propagatedBuildInputs = [ DevelStackTrace ];
+    meta = {
+      description = "(deprecated) polymorphic return values";
+      homepage = "https://github.com/rjbs/Return-Value";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassSingleton = buildPerlPackage {
+    pname = "Class-Singleton";
+    version = "1.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz";
+      hash = "sha256-J7oT8NlRKSkWa72MnvldkNYw/IDwyaG3RYiRBV6SgqQ=";
+    };
+    meta = {
+      description = "Implementation of a 'Singleton' class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassThrowable = buildPerlPackage {
+    pname = "Class-Throwable";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KM/KMX/Class-Throwable-0.13.tar.gz";
+      hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4=";
+    };
+    meta = {
+      description = "A minimal lightweight exception class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassTiny = buildPerlPackage {
+    pname = "Class-Tiny";
+    version = "1.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz";
+      hash = "sha256-7gWKY5Evofy5pySY9WykIaIFbcf59LZ4N0RtZCGBVhU=";
+    };
+    meta = {
+      description = "Minimalist class construction";
+      homepage = "https://github.com/dagolden/Class-Tiny";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  ClassLoad = buildPerlPackage {
+    pname = "Class-Load";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-0.25.tar.gz";
+      hash = "sha256-Kkj6d5tSl+VhVjgOizJjfGxY3stPSn88c1BSPhEnX48=";
+    };
+    buildInputs = [ TestFatal TestNeeds ];
+    propagatedBuildInputs = [ DataOptList PackageStash ];
+    meta = {
+      description = "A working (require \"Class::Name\") and more";
+      homepage = "https://github.com/moose/Class-Load";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassLoadXS = buildPerlPackage {
+    pname = "Class-Load-XS";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz";
+      hash = "sha256-W8Is9Tbr/SVkxb2vQvDYpM7j0ZMPyLRLfUpCA4YirdE=";
+    };
+    buildInputs = [ TestFatal TestNeeds ];
+    propagatedBuildInputs = [ ClassLoad ];
+    meta = {
+      description = "XS implementation of parts of Class::Load";
+      homepage = "https://github.com/moose/Class-Load-XS";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ClassObservable = buildPerlPackage {
+    pname = "Class-Observable";
+    version = "2.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Class-Observable-2.004.tar.gz";
+      hash = "sha256-bfMun+XwCIkfxO+k5PReqhQE0wIgRZyPyKUB8KfPLmk=";
+    };
+    propagatedBuildInputs = [ ClassISA ];
+    meta = {
+      description = "Allow other classes and objects to respond to events in yours";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassStd = buildPerlModule {
+    pname = "Class-Std";
+    version = "0.013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Class-Std-0.013.tar.gz";
+      hash = "sha256-vNbYL2yK8P4Gn87X3RZaR5WwtukjUcfU5aGrmhT8NcY=";
+    };
+    meta = {
+      description = "Support for creating standard 'inside-out' classes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassStdFast = buildPerlModule {
+    pname = "Class-Std-Fast";
+    version = "0.0.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz";
+      hash = "sha256-G9Q3Y8ajcxgwl6MOeH9dZxOw2ydRHFLVMyZrWdLPp4A=";
+    };
+    propagatedBuildInputs = [ ClassStd ];
+    nativeCheckInputs = [ TestPod TestPodCoverage ];
+    meta = {
+      description = "Faster but less secure than Class::Std";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassUnload = buildPerlPackage {
+    pname = "Class-Unload";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.11.tar.gz";
+      hash = "sha256-UuKXR6fk0uGiicDh3oEHY08QyEJs18nTHsrIOD5KCl8=";
+    };
+    propagatedBuildInputs = [ ClassInspector ];
+    buildInputs = [ TestRequires ];
+    meta = {
+      description = "Unload a class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassVirtual = buildPerlPackage {
+    pname = "Class-Virtual";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Class-Virtual-0.08.tar.gz";
+      hash = "sha256-xkmbQtO05cZIil6C+8KGmObJhgFlBy3d+mdJNVqc+7I=";
+    };
+    propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassISA ];
+    meta = {
+      description = "Base class for virtual base classes";
+      homepage = "https://metacpan.org/release/Class-Virtual";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClassXSAccessor = buildPerlPackage {
+    pname = "Class-XSAccessor";
+    version = "1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz";
+      hash = "sha256-mcVrOV8SOa8ZkB8v7rEl2ey041Gg2A2qlSkhGkcApvI=";
+    };
+    meta = {
+      description = "Generate fast XS accessors without runtime compilation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CLDRNumber = buildPerlModule {
+    pname = "CLDR-Number";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PATCH/CLDR-Number-0.19.tar.gz";
+      hash = "sha256-xnFkiOZf53n/eag/DyA2rZRGPv49DzSca5kRKXW9hfw=";
+    };
+    buildInputs = [ SoftwareLicense TestDifferences TestException TestWarn ];
+    propagatedBuildInputs =
+      [ ClassMethodModifiers MathRound Moo namespaceclean ];
+    meta = {
+      description = "Localized number formatters using the Unicode CLDR";
+      homepage = "https://github.com/patch/cldr-number-pm5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CLIHelpers = buildPerlPackage {
+    pname = "CLI-Helpers";
+    version = "2.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BL/BLHOTSKY/CLI-Helpers-2.0.tar.gz";
+      hash = "sha256-yhpPFnTzsfMmjyekfJiAszgmrenxI34sEUXnAqfIePY=";
+    };
+    buildInputs = [ PodCoverageTrustPod TestPerlCritic ];
+    propagatedBuildInputs = [ CaptureTiny IOInteractive RefUtil TermReadKey YAML ];
+    meta = {
+      description = "Subroutines for making simple command line scripts";
+      homepage = "https://github.com/reyjrar/CLI-Helpers";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+  Clipboard = buildPerlModule {
+    pname = "Clipboard";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.28.tar.gz";
+      hash = "sha256-no15AVGUJjNXwloPXQlIAP/0O9v5+GAew7DtXrCWbSY=";
+    };
+    propagatedBuildInputs = [ CGI ];
+    # Disable test on darwin because MacPasteboard fails when not logged in interactively.
+    # Mac OS error -4960 (coreFoundationUnknownErr): The unknown error at lib/Clipboard/MacPasteboard.pm line 3.
+    # Mac-Pasteboard-0.009.readme: 'NOTE that Mac OS X appears to restrict pasteboard access to processes that are logged in interactively.
+    #     Ssh sessions and cron jobs can not create the requisite pasteboard handles, giving coreFoundationUnknownErr (-4960)'
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Copy and paste with any OS";
+      homepage = "https://metacpan.org/release/Clipboard";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+
+  Clone = buildPerlPackage {
+    pname = "Clone";
+    version = "0.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GARU/Clone-0.46.tar.gz";
+      hash = "sha256-qt7tXkyL1rvfaMDdAGbLUT4Wq55bQ4LcSgqv1ViQaXs=";
+    };
+    buildInputs = [ BCOW ];
+    meta = {
+      description = "Recursively copy Perl datatypes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CloneChoose = buildPerlPackage {
+    pname = "Clone-Choose";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz";
+      hash = "sha256-ViNIH1jO6O25bNICqtDfViLUJ+X3SLJThR39YuUSNjI=";
+    };
+    buildInputs = [ Clone ClonePP TestWithoutModule ];
+    meta = {
+      description = "Choose appropriate clone utility";
+      homepage = "https://metacpan.org/release/Clone-Choose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ClonePP = buildPerlPackage {
+    pname = "Clone-PP";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz";
+      hash = "sha256-VyAwlKXYV0tqAJUejyOZtmb050+VEdnJ+1tFPV0R9Xg=";
+    };
+    meta = {
+      description = "Recursively copy Perl datatypes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CodeTidyAll = buildPerlPackage {
+    pname = "Code-TidyAll";
+    version = "0.83";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.83.tar.gz";
+      hash = "sha256-FqBS0DprF/xYqEqZb68p5C7O124sQMRyc+uKsxzBXKE=";
+    };
+    propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
+    buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
+    meta = {
+      description = "Engine for tidyall, your all-in-one code tidier and validator";
+      homepage = "https://metacpan.org/release/Code-TidyAll";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "tidyall";
+    };
+  };
+
+  CodeTidyAllPluginPerlAlignMooseAttributes = buildPerlPackage {
+    pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz";
+      hash = "sha256-jR3inlbwczFoXqONGDr87f8hCOccSp2zb0GeUN0sHOU=";
+    };
+    propagatedBuildInputs = [ CodeTidyAll TextAligner ];
+    meta = {
+      description = "TidyAll plugin to sort and align Moose-style attributes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ColorLibrary = buildPerlPackage {
+    pname = "Color-Library";
+    version = "0.021";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROKR/Color-Library-0.021.tar.gz";
+      hash = "sha256-WMv34zPTpKQCl6vENBKzIdpEnGgWAg5PpmJasHn8kKU=";
+    };
+    buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ];
+    propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ];
+    meta = {
+      description = "An easy-to-use and comprehensive named-color library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CommandRunner = buildPerlModule {
+    pname = "Command-Runner";
+    version = "0.200";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/Command-Runner-0.200.tar.gz";
+      hash = "sha256-WtJtBhEb/s1TyPW7XeqUvyAl9seOlfbYAS5M+oninyY=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ CaptureTiny Filepushd StringShellQuote Win32ShellQuote ];
+    meta = {
+      description = "Run external commands and Perl code refs";
+      homepage = "https://github.com/skaji/Command-Runner";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  commonsense = buildPerlPackage {
+    pname = "common-sense";
+    version = "3.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz";
+      hash = "sha256-qGocTKTzAG10eQZEJaCfpbZonlcmH8uZT+Z9Bhy6Dn4=";
+    };
+    meta = {
+      description = "Implements some sane defaults for Perl programs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompilerLexer = buildPerlModule {
+    pname = "Compiler-Lexer";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GO/GOCCY/Compiler-Lexer-0.23.tar.gz";
+      hash = "sha256-YDHOSv67+k9JKidJSb57gjIxTpECOCjEOOR5gf8Kmds=";
+    };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
+    buildInputs = [ ModuleBuildXSUtil ];
+    meta = {
+      homepage = "https://github.com/goccy/p5-Compiler-Lexer";
+      description = "Lexical Analyzer for Perl5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompressBzip2 = buildPerlPackage {
+    pname = "Compress-Bzip2";
+    version = "2.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz";
+      hash = "sha256-hZ+DXD9cmYgQ2LKm+eKC/5nWy2bM+lXK5+Ztr7A1EW4=";
+    };
+    meta = {
+      description = "Interface to Bzip2 compression library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompressLZF = buildPerlPackage rec {
+    pname = "Compress-LZF";
+    version = "3.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
+      hash = "sha256-XR9d9IzhO03uHMnyeOzb+Bd4d7C5iBWk6zyRw0ZnFvI=";
+    };
+    meta = {
+      description = "Extremely light-weight Lempel-Ziv-Free compression";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompressRawBzip2 = buildPerlPackage {
+    pname = "Compress-Raw-Bzip2";
+    version = "2.206";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.206.tar.gz";
+      hash = "sha256-ISuB2xwK6CLRmShhmmA70QjLXVxHAPxn3HyxaeDMZSU=";
+    };
+
+    # Don't build a private copy of bzip2.
+    BUILD_BZIP2 = false;
+    BZIP2_LIB = "${pkgs.bzip2.out}/lib";
+    BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include";
+
+    meta = {
+      description = "Low-Level Interface to bzip2 compression library";
+      homepage = "https://github.com/pmqs/Compress-Raw-Bzip2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompressRawLzma = buildPerlPackage {
+    pname = "Compress-Raw-Lzma";
+    version = "2.206";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.206.tar.gz";
+      hash = "sha256-4BpwQLhL3GdZLRPuwMeIWQ4faW0dTwfHCXvXKk+IbrQ=";
+    };
+    preConfigure = ''
+      cat > config.in <<EOF
+        INCLUDE      = ${pkgs.xz.dev}/include
+        LIB          = ${pkgs.xz.out}/lib
+      EOF
+    '';
+    meta = {
+      description = "Low-Level Interface to lzma compression library";
+      homepage = "https://github.com/pmqs/Compress-Raw-Lzma";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompressRawZlib = buildPerlPackage {
+    pname = "Compress-Raw-Zlib";
+    version = "2.206";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.206.tar.gz";
+      hash = "sha256-Rnhaajg6HIQ4lbf58l1ddZ58MFFZ+dHgSjYE63THc3Q=";
+    };
+
+    preConfigure = ''
+      cat > config.in <<EOF
+        BUILD_ZLIB   = False
+        INCLUDE      = ${pkgs.zlib.dev}/include
+        LIB          = ${pkgs.zlib.out}/lib
+        OLD_ZLIB     = False
+        GZIP_OS_CODE = AUTO_DETECT
+        USE_ZLIB_NG  = False
+      EOF
+    '';
+
+    doCheck = !stdenv.isDarwin;
+
+    meta = {
+      description = "Low-Level Interface to zlib or zlib-ng compression library";
+      homepage = "https://github.com/pmqs/Compress-Raw-Zlib";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CompressUnLZMA = buildPerlPackage {
+    pname = "Compress-unLZMA";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Compress-unLZMA-0.05.tar.gz";
+      hash = "sha256-TegBoo2S1ekJR0Zc60jU45/WQJOF6cIw5MBIKdllF7g=";
+    };
+    meta = {
+      description = "Interface to LZMA decompression library";
+      license = with lib.licenses; [ artistic1 gpl1Plus lgpl21Plus ];
+    };
+  };
+
+  ConfigAny = buildPerlPackage {
+    pname = "Config-Any";
+    version = "0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Config-Any-0.33.tar.gz";
+      hash = "sha256-wGaOtfLNNVvyBVfwTcGKJUdLegvPp5Vi4xZdmjx4kzM=";
+    };
+    propagatedBuildInputs = [ ModulePluggable ];
+    meta = {
+      description = "Load configuration from different file formats, transparently";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigAutoConf = buildPerlPackage {
+    pname = "Config-AutoConf";
+    version = "0.320";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMBS/Config-AutoConf-0.320.tar.gz";
+      hash = "sha256-u1epWO9J0/cWInba4Up71a9D/R2FEyMa811mVFlFQCM=";
+    };
+    propagatedBuildInputs = [ CaptureTiny ];
+    meta = {
+      description = "A module to implement some of AutoConf macros in pure perl";
+      homepage = "https://metacpan.org/release/Config-AutoConf";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigGeneral = buildPerlPackage {
+    pname = "Config-General";
+    version = "2.65";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.65.tar.gz";
+      hash = "sha256-TW1XVL46nzCQaDbwzBDlVMiDLhTnoTQe+xWwXXBvxY8=";
+    };
+    meta = {
+      description = "Generic Config Module";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ConfigGitLike = buildPerlPackage {
+    pname = "Config-GitLike";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.18.tar.gz";
+      hash = "sha256-9650QPOtq1uf+apXIW2E/UpoEAm5WE4y2kL4u3HjMsU=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
+    meta = {
+      description = "Git-compatible config file parsing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigGrammar = buildPerlPackage {
+    pname = "Config-Grammar";
+    version = "1.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Config-Grammar-1.13.tar.gz";
+      hash = "sha256-qLOjosnIxDuS3EAb8nCdZRTxW0Z/1PcsSNNWM1dx1uM=";
+    };
+    meta = {
+      description = "A grammar-based, user-friendly config parser";
+      homepage = "https://github.com/schweikert/Config-Grammar";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigINI = buildPerlPackage {
+    pname = "Config-INI";
+    version = "0.029";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-0.029.tar.gz";
+      hash = "sha256-C755enMCEGRKkH2QzUqisjrVgMsnvTk5O/xqfvn9/eo=";
+    };
+    propagatedBuildInputs = [ MixinLinewise ];
+    meta = {
+      description = "Simple .ini-file format";
+      homepage = "https://github.com/rjbs/Config-INI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigIdentity = buildPerlPackage {
+    pname = "Config-Identity";
+    version = "0.0019";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Config-Identity-0.0019.tar.gz";
+      hash = "sha256-KVIL2zdlnmQUkbDGlmFCmhqJtqLkdcL5tOvyfkXoEqg=";
+    };
+    propagatedBuildInputs = [ FileHomeDir IPCRun ];
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Load (and optionally decrypt via GnuPG) user/pass identity information ";
+      homepage = "https://github.com/dagolden/Config-Identity";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigIniFiles = buildPerlPackage {
+    pname = "Config-IniFiles";
+    version = "3.000003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz";
+      hash = "sha256-PEV7ZdmOX/QL25z4FLDVmD6wxT+4aWvaO6A1rSrNaAI=";
+    };
+    propagatedBuildInputs = [ IOStringy ];
+    meta = {
+      description = "A module for reading .ini-style configuration files";
+      homepage = "https://metacpan.org/release/Config-IniFiles";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  ConfigMerge = buildPerlPackage {
+    pname = "Config-Merge";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DRTECH/Config-Merge-1.04.tar.gz";
+      hash = "sha256-qTJHe0OuX7BKFvBxqJHae9IIbBDGgFkvKIj6nZlyzM8=";
+    };
+    buildInputs = [ YAML ];
+    propagatedBuildInputs = [ ConfigAny ];
+    meta = {
+      description = "Load a configuration directory tree containing YAML, JSON, XML, Perl, INI or Config::General files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigOnion = buildPerlPackage {
+    pname = "Config-Onion";
+    version = "1.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSHEROH/Config-Onion-1.007.tar.gz";
+      hash = "sha256-Mn/d9o4TiyRp5aK643xzP4fKhMr2Hhz6qUm+PZUNqK8=";
+    };
+    propagatedBuildInputs = [ ConfigAny HashMergeSimple Moo ];
+    buildInputs = [ TestException YAML ];
+    meta = {
+      description = "Layered configuration, because configs are like ogres";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigMVP = buildPerlPackage {
+    pname = "Config-MVP";
+    version = "2.200013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-2.200013.tar.gz";
+      hash = "sha256-AY0WFiPuOmf4YNnmgOIuYbeermAY8OfDtSX8k09bfUU=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ModulePluggable MooseXOneArgNew RoleHasMessage RoleIdentifiable Throwable TieIxHash ];
+    meta = {
+      description = "Multivalue-property package-oriented configuration";
+      homepage = "https://github.com/rjbs/Config-MVP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigMVPReaderINI = buildPerlPackage {
+    pname = "Config-MVP-Reader-INI";
+    version = "2.101465";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-Reader-INI-2.101465.tar.gz";
+      hash = "sha256-E8eqJ8HfmM0zraOZ5Z/zj6v6nWVRPkKvAvcsLT9jYkc=";
+    };
+    propagatedBuildInputs = [ ConfigINI ConfigMVP ];
+    meta = {
+      description = "An MVP config reader for .ini files";
+      homepage = "https://github.com/rjbs/Config-MVP-Reader-INI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigProperties = buildPerlPackage {
+    pname = "Config-Properties";
+    version = "1.80";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Config-Properties-1.80.tar.gz";
+      hash = "sha256-XQQ5W+fhTpcKA+qVL7dimuME2XwDH5DMHCm9Cmpi/EA=";
+    };
+    meta = {
+      description = "Read and write property files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigSimple = buildPerlPackage {
+    pname = "Config-Simple";
+    version = "4.58";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHERZODR/Config-Simple-4.58.tar.gz";
+      hash = "sha256-3ZmVcG8Pk4ShXM/+EWw7biL0K6LljY8k7QPEoOOG7bQ=";
+    };
+    meta = {
+      description = "Simple configuration file class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigStd = buildPerlModule {
+    pname = "Config-Std";
+    version = "0.903";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRICKER/Config-Std-0.903.tar.gz";
+      hash = "sha256-t3Cf9mO9J50mSrnC9R6elYhHmjNnqMTPwYZZwqEUgP4=";
+    };
+    propagatedBuildInputs = [ ClassStd ];
+    meta = {
+      description = "Load and save configuration files in a standard format";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigTiny = buildPerlPackage {
+    pname = "Config-Tiny";
+    version = "2.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Config-Tiny-2.29.tgz";
+      hash = "sha256-PeebDqA6jWqT6dkSj+hF+1ViIrFGmaT28NXKBXrjMzs=";
+    };
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "Read/Write .ini style files with as little code as possible";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConfigVersioned = buildPerlPackage {
+    pname = "Config-Versioned";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Config-Versioned-1.01.tar.gz";
+      hash = "sha256-vJpK43OL2J+GoHvKZzYnyjySupaXN81tvHq3rRfNI0g=";
+    };
+    propagatedBuildInputs = [ ConfigStd GitPurePerl ];
+    doCheck = false;
+    meta = {
+      description = "Simple, versioned access to configuration data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cfgver";
+    };
+  };
+
+  Connector = buildPerlModule {
+    pname = "Connector";
+    version = "1.53";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Connector-1.53.tar.gz";
+      hash = "sha256-1D50VEcZ/7lKDgZFhqetRXVbKTZPGJHZ4ncEFqsSTPo=";
+    };
+    buildInputs = [ ModuleBuildTiny ConfigMerge ConfigStd ConfigVersioned DBDSQLite DBI IOSocketSSL JSON LWP LWPProtocolHttps ProcSafeExec TemplateToolkit YAML ];
+    propagatedBuildInputs = [ LogLog4perl Moose ];
+    prePatch = ''
+      # Attempts to use network.
+      rm t/01-proxy-http.t
+      rm t/01-proxy-proc-safeexec.t
+
+      # crypt() tests that use DES
+      rm t/01-builtin-password.t
+      rm t/01-builtin-password-scheme.t
+    '';
+    meta = {
+      description = "A generic connection to a hierarchical-structured data set";
+      homepage = "https://github.com/whiterabbitsecurity/connector";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConstFast = buildPerlModule {
+    pname = "Const-Fast";
+    version = "0.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Const-Fast-0.014.tar.gz";
+      hash = "sha256-+AWVOgjFeEahak2F17dmOYr698NsFGX8sd6gnl+jlNs=";
+    };
+    propagatedBuildInputs = [ SubExporterProgressive ];
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    meta = {
+      description = "Facility for creating read-only scalars, arrays, and hashes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConvertASCIIArmour = buildPerlPackage {
+    pname = "Convert-ASCII-Armour";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz";
+      hash = "sha256-l+istusqKpGvfWzw0t/2+kKq+Tn8fW0cYFek8N9SyQQ=";
+    };
+    meta = {
+      description = "Convert binary octets into ASCII armoured messages";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ConvertASN1 = buildPerlPackage {
+    pname = "Convert-ASN1";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Convert-ASN1-0.34.tar.gz";
+      hash = "sha256-pijXydOQVo+3Y1mXX6A/YmzlfxDcF5gOjjWH13E+Tuc=";
+    };
+    meta = {
+      description = "ASN.1 Encode/Decode library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConvertBase32 = buildPerlPackage {
+    pname = "Convert-Base32";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IK/IKEGAMI/Convert-Base32-0.06.tar.gz";
+      hash = "sha256-S6gsFnxB9FWqgoRzhyfkyUouvLHEznl/b9oHJFpkIRU=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Encoding and decoding of base32 strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ConvertBencode = buildPerlPackage rec {
+    pname = "Convert-Bencode";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OR/ORCLEV/Convert-Bencode-1.03.tar.gz";
+      hash = "sha256-Jp89+GVpJZbeIU/kK5Lc+H1qa8It237Sq8f0i4LkXmw=";
+    };
+    meta = {
+      description = "Functions for converting to/from bencoded strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConvertColor = buildPerlModule {
+    pname = "Convert-Color";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Convert-Color-0.17.tar.gz";
+      hash = "sha256-5/jDN8VSXqoDd3xXaD6hGvm5j/HQURojSvH4CkMiTsc=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ ListUtilsBy ModulePluggable ];
+    meta = {
+      description = "Color space conversions and named lookups";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ConvertUU = buildPerlPackage rec {
+    pname = "Convert-UU";
+    version = "0.5201";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDK/Convert-UU-0.5201.tar.gz";
+      hash = "sha256-kjKc4cMrWVLEjhIj2wGMjFjOr+8Dv6D9SBfNicNVo70=";
+    };
+    meta = {
+      description = "Perl module for uuencode and uudecode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  constantboolean = buildPerlModule {
+    pname = "constant-boolean";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/constant-boolean-0.02.tar.gz";
+      hash = "sha256-zSxZ1YBhzhpJdaMTFg33GG9i7qJlW4XVIOXiTp7rD+k=";
+    };
+    propagatedBuildInputs = [ SymbolUtil ];
+    meta = {
+      description = "Define TRUE and FALSE constants";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  curry = buildPerlPackage {
+    pname = "curry";
+    version = "2.000001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/curry-2.000001.tar.gz";
+      hash = "sha256-yY/iBQ+t7KOYGdboDVROkSGE/oRsvnNTnGhpT7G1HAg=";
+    };
+    meta = {
+      description = "Create automatic curried method call closures for any class or object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  constant-defer = buildPerlPackage {
+    pname = "constant-defer";
+    version = "6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/constant-defer-6.tar.gz";
+      hash = "sha256-eyEmMZjKImhu//OumHokC+Qj3SFgr96yn+cW0DKYb/o=";
+    };
+    meta = {
+      description = "Constant subs with deferred value calculation";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  ContextPreserve = buildPerlPackage {
+    pname = "Context-Preserve";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Context-Preserve-0.03.tar.gz";
+      hash = "sha256-CZFKTCx725nKtoDBg8v0kuyY1uI/vMSH/MSuEFZ9/R8=";
+    };
+    buildInputs = [ TestException TestSimple13 ];
+    meta = {
+      description = "Run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement in the caller";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CookieBaker = buildPerlModule {
+    pname = "Cookie-Baker";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.11.tar.gz";
+      hash = "sha256-WSdfR04HwKo2EePmhLiU59uRMzPYIUQgvmPxLsGM16s=";
+    };
+    buildInputs = [ ModuleBuildTiny TestTime ];
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Cookie string generator / parser";
+      homepage = "https://github.com/kazeburo/Cookie-Baker";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CookieXS = buildPerlPackage {
+    pname = "Cookie-XS";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGENT/Cookie-XS-0.11.tar.gz";
+      hash = "sha256-o7lxB4CiJC5w750G5R+Rt/PqCq5o9Tx25CxYLCzLJpg=";
+    };
+    propagatedBuildInputs = [ CGICookieXS ];
+    meta = {
+      description = "HTTP Cookie parser in C (Please use CGI::Cookie::XS instead)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Coro = buildPerlPackage {
+    pname = "Coro";
+    version = "6.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.57.tar.gz";
+      hash = "sha256-GSjkgDNUDhHr9VBpht0QGveNJCHSEPllmSI7FdUXFMY=";
+    };
+    propagatedBuildInputs = [ AnyEvent Guard commonsense ];
+    buildInputs = [ CanaryStability ];
+    meta = {
+      description = "The only real threads in perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CoroEV = buildPerlPackage rec {
+    pname = "CoroEV";
+    version = "6.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-${version}.tar.gz";
+      hash = "sha256-Q9ecAnFw/NpMoO6Sc0YFvJXhImhvUHG5TZB2TIGuijA=";
+    };
+    buildInputs = [ CanaryStability ];
+    propagatedBuildInputs = [ AnyEvent Coro EV Guard commonsense ];
+    preConfigure = ''
+      cd EV
+    '';
+    meta = {
+      description = "Do events the coro-way, with EV";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Corona = buildPerlPackage {
+    pname = "Corona";
+    version = "0.1004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Corona-0.1004.tar.gz";
+      hash = "sha256-//XRnoPeem0mWfNGgpgmsWUrtmZlS4eDsRmlNFS9rzw=";
+    };
+    propagatedBuildInputs = [ NetServerCoro Plack ];
+    buildInputs = [ TestSharedFork TestTCP ];
+    meta = {
+      description = "Coro based PSGI web server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "corona";
+    };
+  };
+
+  CPAN = buildPerlPackage {
+    pname = "CPAN";
+    version = "2.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.36.tar.gz";
+      hash = "sha256-HXKl60DliOPBDx88hckC6HGxaDdH1ncjOvd3yCv8kJ4=";
+    };
+    propagatedBuildInputs = [ ArchiveZip CPANChecksums CPANPerlReleases CompressBzip2 Expect FileHomeDir FileWhich LWP LogLog4perl ModuleSignature TermReadKey TextGlob YAML YAMLLibYAML YAMLSyck IOSocketSSL ];
+    meta = {
+      description = "Query, download and build perl modules from CPAN sites";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpan";
+    };
+  };
+
+  CPANAudit = buildPerlPackage {
+    pname = "CPAN-Audit";
+    version = "20230826.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/CPAN-Audit-20230826.001.tar.gz";
+      hash = "sha256-DXU7O9fdpXweIKycWScKcKTNkfttfN4mJEPoVUy2Geo=";
+    };
+    buildInputs = [ CaptureTiny YAMLTiny ];
+    propagatedBuildInputs = [ CPANDistnameInfo IOInteractive JSON ModuleCPANfile ModuleExtractVERSION PerlIOgzip Mojolicious ];
+    meta = {
+      homepage = "https://github.com/briandfoy/cpan-audit";
+      description = "Audit CPAN distributions for known vulnerabilities";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CPANMini = buildPerlPackage {
+    pname = "CPAN-Mini";
+    version = "1.111017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Mini-1.111017.tar.gz";
+      hash = "sha256-8gQpO+JqyEGsyHBEoYjbD1kegIgTFseiiK7A7s4wYVU=";
+    };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ FileHomeDir LWPProtocolHttps ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/minicpan
+    '';
+
+    meta = {
+      description = "Create a minimal mirror of CPAN";
+      homepage = "https://github.com/rjbs/CPAN-Mini";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+      mainProgram = "minicpan";
+    };
+  };
+
+  CpanelJSONXS = buildPerlPackage {
+    pname = "Cpanel-JSON-XS";
+    version = "4.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.37.tar.gz";
+      hash = "sha256-wkFhWg4X/3Raqoa79Gam4pzSQFFeZfBqegUBe2GebUs=";
+    };
+    meta = {
+      description = "CPanel fork of JSON::XS, fast and correct serializing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpanel_json_xs";
+    };
+  };
+
+  CPAN02PackagesSearch = buildPerlModule {
+    pname = "CPAN-02Packages-Search";
+    version = "0.100";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/CPAN-02Packages-Search-0.100.tar.gz";
+      hash = "sha256-prabrHmiUwA0RrKD76bzrv+mCdDBxStCCYeCEtpw+as=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ TieHandleOffset ];
+    meta = {
+      description = "Search packages in 02packages.details.txt";
+      homepage = "https://github.com/skaji/CPAN-02Packages-Search";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  CPANChanges = buildPerlPackage {
+    pname = "CPAN-Changes";
+    version = "0.400002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-0.400002.tar.gz";
+      hash = "sha256-Ae7eqQ0HRoy1jkpQv6O7HU7tqQc1lq3REY/DWRU6vo0=";
+    };
+    meta = {
+      description = "Read and write Changes files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "tidy_changelog";
+    };
+  };
+
+  CPANChecksums = buildPerlPackage {
+    pname = "CPAN-Checksums";
+    version = "2.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-Checksums-2.14.tar.gz";
+      hash = "sha256-QIBxbF2n4DtQTjzA6h/V757WkV9vtzdWTp4T01Wonjk=";
+    };
+    propagatedBuildInputs = [ CompressBzip2 DataCompare ModuleSignature ];
+    meta = {
+      description = "Write a CHECKSUMS file for a directory as on CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CPANCommonIndex = buildPerlPackage {
+    pname = "CPAN-Common-Index";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/CPAN-Common-Index-0.010.tar.gz";
+      hash = "sha256-xD3bsi/UKwYRj+Y1f1NwD7139TG6PEJ/qvvzA8v06vA=";
+    };
+    buildInputs = [ TestDeep TestFailWarnings TestFatal ];
+    propagatedBuildInputs = [ CPANDistnameInfo ClassTiny TieHandleOffset URI ];
+    meta = {
+      description = "Common library for searching CPAN modules, authors and distributions";
+      homepage = "https://github.com/Perl-Toolchain-Gang/CPAN-Common-Index";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  CPANDistnameInfo = buildPerlPackage {
+    pname = "CPAN-DistnameInfo";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz";
+      hash = "sha256-LyT76ffurLwmnTX8YWGDIvwXvkme4M2QGPNwk0qfJDU=";
+    };
+    meta = {
+      description = "Extract distribution name and version from a distribution filename";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CPANMetaCheck = buildPerlPackage {
+    pname = "CPAN-Meta-Check";
+    version = "0.018";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.018.tar.gz";
+      hash = "sha256-9hnS316g/ZHIz4PrVKzMteQ9nm7Bo/cns9CsFdDPN4o=";
+    };
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Verify requirements in a CPAN::Meta object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CPANPerlReleases = buildPerlPackage {
+    pname = "CPAN-Perl-Releases";
+    version = "5.20230920";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20230920.tar.gz";
+      hash = "sha256-MbyTiJR2uOx1iRjdmSSmKYPgh7BsjN6Sb7mnp+h60cA=";
+    };
+    meta = {
+      description = "Mapping Perl releases on CPAN to the location of the tarballs";
+      homepage = "https://github.com/bingos/cpan-perl-releases";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CPANPLUS = buildPerlPackage {
+    pname = "CPANPLUS";
+    version = "0.9914";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9914.tar.gz";
+      hash = "sha256-dsPl2mI6SvYP5krexEj7H44Mrp9nmKNraIZZdAROm2c=";
+    };
+    propagatedBuildInputs = [ ArchiveExtract ModulePluggable ObjectAccessor PackageConstants TermUI ];
+    meta = {
+      description = "Ameliorated interface to the CPAN";
+      homepage = "https://github.com/jib/cpanplus-devel";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpanp";
+    };
+  };
+
+  CPANUploader = buildPerlPackage {
+    pname = "CPAN-Uploader";
+    version = "0.103018";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103018.tar.gz";
+      hash = "sha256-xP/k7enbebOW47/F583w4umCHh8eCH9SO8+nTJ/J4kg=";
+    };
+    propagatedBuildInputs = [ FileHomeDir GetoptLongDescriptive LWPProtocolHttps TermReadKey ];
+    meta = {
+      description = "Upload things to the CPAN";
+      homepage = "https://github.com/rjbs/CPAN-Uploader";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpan-upload";
+    };
+  };
+
+  CryptArgon2 = buildPerlModule {
+    pname = "Crypt-Argon2";
+    version = "0.019";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.019.tar.gz";
+      hash = "sha256-+Fm+6NL2tAf11EZFwiOu4hL+AFkd/YLlBlrhvnio5Dg=";
+    };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
+    meta = {
+      description = "Perl interface to the Argon2 key derivation functions";
+      license = with lib.licenses; [ cc0 ];
+    };
+  };
+
+  CryptBcrypt = buildPerlPackage {
+    pname = "Crypt-Bcrypt";
+    version = "0.011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Bcrypt-0.011.tar.gz";
+      hash = "sha256-Z/ymiwUm5zTi2VvGsyutAcMZ5Yer9j5M80Itpmu+o6A=";
+    };
+    meta = {
+      description = "modern bcrypt implementation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptBlowfish = buildPerlPackage {
+    pname = "Crypt-Blowfish";
+    version = "2.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz";
+      hash = "sha256-RrNDH/tr9bnLNZ95Vl1IQH5lKtKwT99cpipp5xl6Z7E=";
+    };
+    meta = {
+      description = "Perl Blowfish encryption module";
+      license = with lib.licenses; [ bsdOriginalShortened ];
+    };
+  };
+
+  CryptCAST5_PP = buildPerlPackage {
+    pname = "Crypt-CAST5_PP";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz";
+      hash = "sha256-y6mKgEA/uJihTJKPI39EgWtISGQYQM4lFzY8LAcbUyc=";
+    };
+    meta = {
+      description = "CAST5 block cipher in pure Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptCBC = buildPerlPackage {
+    pname = "Crypt-CBC";
+    version = "2.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz";
+      hash = "sha256-anDeIbbMfysQAGfo4Yjblm6agAG122+pdufLWylK5kU=";
+    };
+    meta = {
+      description = "Encrypt Data with Cipher Block Chaining Mode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptCurve25519 = buildPerlPackage {
+    pname = "Crypt-Curve25519";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KARASIK/Crypt-Curve25519-0.07.tar.gz";
+      hash = "sha256-Z6mIcTclIdb34R/dYnyq21wdVAFCag6c9CFnpDxbSx0=";
+    };
+    meta = {
+      description = "Generate shared secret using elliptic-curve Diffie-Hellman function";
+      homepage = "https://metacpan.org/release/Crypt-Curve25519";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptDES = buildPerlPackage {
+    pname = "Crypt-DES";
+    version = "2.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-DES-2.07.tar.gz";
+      hash = "sha256-LbHrtYN7TLIAUcDuW3M7RFPjE33wqSMGA0yGdiHt1+c=";
+    };
+    meta = {
+      description = "Perl DES encryption module";
+      license = with lib.licenses; [ bsdOriginalShortened ];
+    };
+  };
+
+  CryptDES_EDE3 = buildPerlPackage {
+    pname = "Crypt-DES_EDE3";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz";
+      hash = "sha256-nLLgS2JenMCDPNSZ92/RJVZYPs7KeCqXWKVeP5aXSNY=";
+    };
+    propagatedBuildInputs = [ CryptDES ];
+    meta = {
+      description = "Triple-DES EDE encryption/decryption";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptDH = buildPerlPackage {
+    pname = "Crypt-DH";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MITHALDU/Crypt-DH-0.07.tar.gz";
+      hash = "sha256-yIzzQjsB5nguiYbX/lMEQ2q4SwklxEmMb9+hfvmjf18=";
+    };
+    propagatedBuildInputs = [ MathBigIntGMP ];
+    meta = {
+      description = "Diffie-Hellman key exchange system";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptDHGMP = buildPerlPackage {
+    pname = "Crypt-DH-GMP";
+    version = "0.00012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMAKI/Crypt-DH-GMP-0.00012.tar.gz";
+      hash = "sha256-UeekeuWUz1X2bAdi9mkhVIbn2LNGC9rf55NQzPJtrzg=";
+    };
+    buildInputs = [ pkgs.gmp DevelChecklib TestRequires ];
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      description = "Crypt::DH Using GMP Directly";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptDSA = buildPerlPackage {
+    pname = "Crypt-DSA";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
+      hash = "sha256-0bhYX2v3RvduXcXaNkHTJe1la8Ll80S1RRS1XDEAmgM=";
+    };
+    propagatedBuildInputs = [ DataBuffer DigestSHA1 FileWhich ];
+    meta = {
+      description = "DSA Signatures and Key Generation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptECB = buildPerlPackage {
+    pname = "Crypt-ECB";
+    version = "2.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.22.tar.gz";
+      hash = "sha256-9a9i6QjNMaNLK4ExNaBxgBb9AD/6ACH/vdhMUBWCZ6o=";
+    };
+    meta = {
+      description = "Use block ciphers using ECB mode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptEksblowfish = buildPerlModule {
+    pname = "Crypt-Eksblowfish";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-0.009.tar.gz";
+      hash = "sha256-PMcSbVhBEHI3qb4txcf7wWfPPEtM40Z4qESLhQdXAUw=";
+    };
+    propagatedBuildInputs = [ ClassMix ];
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
+    meta = {
+      description = "The Eksblowfish block cipher";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptFormat = buildPerlPackage {
+    pname = "Crypt-Format";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Format-0.12.tar.gz";
+      hash = "sha256-p1cdS+9XeOGln0O2XPLVaAtJ+nu78z89IfRSL0Pmp9o=";
+    };
+    buildInputs = [ TestException TestFailWarnings ];
+    meta = {
+      description = "Conversion utilities for encryption applications";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptHSXKPasswd = buildPerlPackage {
+    pname = "Crypt-HSXKPasswd";
+    version = "3.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BARTB/Crypt-HSXKPasswd-v3.6.tar.gz";
+      hash = "sha256-lZ3MX58BG/ALha0i31ZrerK/XqHTYrDeD7WuKfvEWLM=";
+    };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ Clone DateTime FileHomeDir FileShare FileShareDir GetoptLong JSON ListMoreUtils MathRound Readonly TextUnidecode TypeTiny ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/hsxkpasswd
+    '';
+
+    meta = {
+      description = "A secure memorable password generator";
+      homepage = "http://www.bartb.ie/hsxkpasswd";
+      license = with lib.licenses; [ bsd2 ];
+      maintainers = [ maintainers.dannixon ];
+      mainProgram = "hsxkpasswd";
+    };
+    # Two tests fail as a result of https://github.com/bbusschots/hsxkpasswd/issues/42
+    # (also see https://github.com/bbusschots/hsxkpasswd/issues/43)
+    doCheck = false;
+  };
+
+  CryptIDEA = buildPerlPackage {
+    pname = "Crypt-IDEA";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz";
+      hash = "sha256-M714wRkkoPwf8+7d6UB4y79rbKnt4EbSsvVh6emnIBk=";
+    };
+    meta = {
+      description = "Perl interface to IDEA block cipher";
+      license = with lib.licenses; [ bsdOriginalShortened ];
+    };
+  };
+
+  CryptJWT = buildPerlPackage {
+    pname = "Crypt-JWT";
+    version = "0.035";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.035.tar.gz";
+      hash = "sha256-XPvVX63DrtNtZ0/AU6zoZ7XT4aTOiiDPu3wmef3wlkE=";
+    };
+    propagatedBuildInputs = [ CryptX JSON ];
+    meta = {
+      description = "JSON Web Token";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptPassphrase = buildPerlPackage {
+    pname = "Crypt-Passphrase";
+    version = "0.016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-0.016.tar.gz";
+      hash = "sha256-TOtPi1SsM/PYHJq0euTPoejDbzhJ76ghcDycMH46T8c=";
+    };
+    propagatedBuildInputs = [ CryptURandom ];
+    meta = {
+      description = "A module for managing passwords in a cryptographically agile manner";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptPassphraseArgon2 = buildPerlPackage {
+    pname = "Crypt-Passphrase-Argon2";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.009.tar.gz";
+      hash = "sha256-M39AVZY6EG2bt7tcJvwPSHCGYJ2XKHVgucpEwEPCF1I=";
+    };
+    propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
+    meta = {
+      description = "An Argon2 encoder for Crypt::Passphrase";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptPassphraseBcrypt = buildPerlPackage {
+    pname = "Crypt-Passphrase-Bcrypt";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Bcrypt-0.007.tar.gz";
+      hash = "sha256-/k1NHTm9TxODQaJZUFzhE3EnCnZ8nndH90H7dGH9sA8=";
+    };
+    propagatedBuildInputs = [ CryptBcrypt CryptPassphrase ];
+    meta = {
+      description = "A bcrypt encoder for Crypt::Passphrase";
+      homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptPasswdMD5 = buildPerlPackage {
+    pname = "Crypt-PasswdMD5";
+    version = "1.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.42.tgz";
+      hash = "sha256-/Tlubn9E7rkj6TyZOUC49nqa7Vb8dKrK8Dj8QFPvO1k=";
+    };
+    meta = {
+      description = "Provide interoperable MD5-based crypt() functions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptPKCS10 = buildPerlModule {
+    pname = "Crypt-PKCS10";
+    version = "2.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-PKCS10-2.005.tar.gz";
+      hash = "sha256-LdEv0JHCPjp8NKZqw1rDq/kHQCOUtVV0mO3kj8QUU6c=";
+    };
+    buildInputs = [ CryptX ModuleBuildTiny pkgs.unzip ];
+    propagatedBuildInputs = [ ConvertASN1 ];
+    meta = {
+      description = "Parse PKCS #10 certificate requests";
+      homepage = "https://github.com/openxpki/Crypt-PKCS10";
+      license = with lib.licenses; [ gpl1Only ];
+    };
+  };
+
+  CryptRandomSeed = buildPerlPackage {
+    pname = "Crypt-Random-Seed";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-Seed-0.03.tar.gz";
+      hash = "sha256-WT2lS1IsCcwmu8wOTknByOaIpv0zsHJq+AHXIqXI0PE=";
+    };
+    propagatedBuildInputs = [ CryptRandomTESHA2 ];
+    meta = {
+      description = "Provide strong randomness for seeding";
+      homepage = "https://github.com/danaj/Crypt-Random-Seed";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptRandom = buildPerlPackage rec {
+    pname = "Crypt-Random";
+    version = "1.54";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Crypt-Random-1.54.tar.gz";
+      hash = "sha256-1m+OF+3Dh3zHl/3VneU045kGNvjxpecmBiFZr35n2sw=";
+    };
+    propagatedBuildInputs = [ ClassLoader MathPari StatisticsChiSquare ];
+    meta = {
+      description = "Interface to /dev/random and /dev/urandom";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "makerandom";
+    };
+  };
+
+  CryptRandomSource = buildPerlModule {
+    pname = "Crypt-Random-Source";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Crypt-Random-Source-0.14.tar.gz";
+      hash = "sha256-7E7OJp+a0ZWMbimOzuLlpDReNX86T/ssdIEWr4du7eY=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
+    propagatedBuildInputs = [ CaptureTiny ModuleFind Moo SubExporter TypeTiny namespaceclean ];
+    meta = {
+      description = "Get weak or strong random data from pluggable sources";
+      homepage = "https://github.com/karenetheridge/Crypt-Random-Source";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptRandomTESHA2 = buildPerlPackage {
+    pname = "Crypt-Random-TESHA2";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-TESHA2-0.01.tar.gz";
+      hash = "sha256-oJErQsUr4XPaUo1VJ+QNlnMkvASseNn8LdyR/xb+ljM=";
+    };
+    meta = {
+      description = "Random numbers using timer/schedule entropy, aka userspace voodoo entropy";
+      homepage = "https://github.com/danaj/Crypt-Random-TESHA2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptRC4 = buildPerlPackage {
+    pname = "Crypt-RC4";
+    version = "2.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SIFUKURT/Crypt-RC4-2.02.tar.gz";
+      hash = "sha256-XsRCXGvCIgeIljC+c1DZlobmKkTGE2lgEQIDzVlK4Oo=";
+    };
+    meta = {
+      description = "Perl implementation of the RC4 encryption algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptRandPasswd = buildPerlPackage {
+    pname = "Crypt-RandPasswd";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JANITOR/Crypt-RandPasswd-0.07.tar.gz";
+      hash = "sha256-bd26Sdx+DwBRr6oKvhbxN4OiRM0eu1+B2qEay2KKSWE=";
+    };
+    meta = {
+      description = "Random password generator based on FIPS-181";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptRIPEMD160 = buildPerlPackage {
+    pname = "Crypt-RIPEMD160";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-RIPEMD160-0.08.tar.gz";
+      hash = "sha256-NNHIdgf2yd76s3QbdtMbzPu21NIBr4Dg9gg8N4EwsjI=";
+    };
+    meta = {
+      description = "Perl extension for the RIPEMD-160 Hash function";
+      homepage = "https://wiki.github.com/toddr/Crypt-RIPEMD160";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptMySQL = buildPerlModule {
+    pname = "Crypt-MySQL";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IK/IKEBE/Crypt-MySQL-0.04.tar.gz";
+      hash = "sha256-k+vfqu/P6atoPwEhyF8kR12Bl/C87EYBghnkERQ03eM=";
+    };
+    propagatedBuildInputs = [ DigestSHA1 ];
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
+    meta = {
+      description = "Emulate MySQL PASSWORD() function";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptRijndael = buildPerlPackage {
+    pname = "Crypt-Rijndael";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-1.16.tar.gz";
+      hash = "sha256-ZUAIXjgEuCpvB1LBEiz3jK3SIZkBNt1v1MCX0FbITUA=";
+    };
+    meta = {
+      description = "Crypt::CBC compliant Rijndael encryption module";
+      license = with lib.licenses; [ gpl3Only ];
+    };
+  };
+
+  CryptUnixCryptXS = buildPerlPackage {
+    pname = "Crypt-UnixCrypt_XS";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BORISZ/Crypt-UnixCrypt_XS-0.11.tar.gz";
+      hash = "sha256-Yus0EsLJG9TcK4pNnuJtW94usRkycDtu6sR3Pk0fT6o=";
+    };
+    meta = {
+      description = "Perl xs interface for a portable traditional crypt function";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptURandom = buildPerlPackage {
+    pname = "Crypt-URandom";
+    version = "0.39";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DD/DDICK/Crypt-URandom-0.39.tar.gz";
+      hash = "sha256-Jol7PPualWAJFRLWCHMaPVv08pn20Pj3LIXzmQEkQSI=";
+    };
+    meta = {
+      description = "Provide non blocking randomness";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptScryptKDF = buildPerlModule {
+    pname = "Crypt-ScryptKDF";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.010.tar.gz";
+      hash = "sha256-fRbulczj61TBdGc6cpn0wIb7o6yF+EfQ4TT+7V93YBc=";
+    };
+    propagatedBuildInputs = [ CryptOpenSSLRandom ];
+    perlPreHook = "export LD=$CC";
+    meta = {
+      description = "Scrypt password based key derivation function";
+      homepage = "https://github.com/DCIT/perl-Crypt-ScryptKDF";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptSmbHash = buildPerlPackage {
+    pname = "Crypt-SmbHash";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BJ/BJKUIT/Crypt-SmbHash-0.12.tar.gz";
+      hash = "sha256-aMSsfqv6lX3PiUwsI7zsCW+H6M8G3t/Lv3AuVTHbsTc=";
+    };
+    meta = {
+      description = "Perl-only implementation of lanman and nt md4 hash functions, for use in Samba style smbpasswd entries";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  CryptSodium = buildPerlPackage {
+    pname = "Crypt-Sodium";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MG/MGREGORO/Crypt-Sodium-0.11.tar.gz";
+      hash = "sha256-kHxzoQVs6gV9qYGa6kipKreG5qqq858c3ZZHsj8RbHg=";
+    };
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium";
+    meta = {
+      description = "Perl bindings for libsodium (NaCL)";
+      homepage = "https://metacpan.org/release/Crypt-Sodium";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptTwofish = buildPerlPackage {
+    pname = "Crypt-Twofish";
+    version = "2.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMS/Crypt-Twofish-2.18.tar.gz";
+      hash = "sha256-WIFVXWGHlyojgqoNTbLXTJcLBndMYhtspSNzkjbS1QE=";
+    };
+    meta = {
+      description = "The Twofish Encryption Algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptOpenPGP = buildPerlPackage {
+    pname = "Crypt-OpenPGP";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz";
+      hash = "sha256-6Kf/Kpk7dqaa1t/9vlV1W+Vni4Tm7ElNzZq5Zvdm9Q4=";
+    };
+    patches = [
+      # See https://github.com/NixOS/nixpkgs/pull/93599
+      ../development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
+    ];
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ AltCryptRSABigInt CryptCAST5_PP CryptDES_EDE3 CryptDSA CryptIDEA CryptRIPEMD160 CryptRijndael CryptTwofish FileHomeDir LWP ];
+
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/pgplet
+    '';
+    doCheck = false; /* test fails with 'No random source available!' */
+
+    meta = {
+      description = "Pure-Perl OpenPGP implementation";
+      homepage = "https://github.com/btrott/Crypt-OpenPGP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+      mainProgram = "pgplet";
+    };
+  };
+
+  CryptOpenSSLAES = buildPerlPackage {
+    pname = "Crypt-OpenSSL-AES";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-OpenSSL-AES-0.17.tar.gz";
+      hash = "sha256-7+GBsYxtIqc/LlNWOQ6Fdyes5UY2JeIhHdhgIyvtO7c=";
+    };
+    buildInputs = [ CryptOpenSSLGuess FileWhich pkgs.openssl ];
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
+    meta = {
+      description = "Perl wrapper around OpenSSL's AES library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptOpenSSLBignum = buildPerlPackage {
+    pname = "Crypt-OpenSSL-Bignum";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-0.09.tar.gz";
+      hash = "sha256-I05y+4OW1FUn5v1F5DdZxcPzogjPjynmoiFhqZb9Qtw=";
+    };
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
+    meta = {
+      description = "OpenSSL's multiprecision integer arithmetic";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptOpenSSLGuess = buildPerlPackage {
+    pname = "Crypt-OpenSSL-Guess";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-0.15.tar.gz";
+      hash = "sha256-HFAzOBgZ/bTJCH3SkbkOxw54ENMdV+remziOzP1wOG0=";
+    };
+    meta = {
+      description = "Guess OpenSSL include path";
+      homepage = "https://github.com/akiym/Crypt-OpenSSL-Guess";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptOpenSSLRandom = buildPerlPackage {
+    pname = "Crypt-OpenSSL-Random";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-0.15.tar.gz";
+      hash = "sha256-8IdvqhujER45uGqnMMYDIR7/KQXkYMcqV7YejPR1zvQ=";
+    };
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
+    OPENSSL_PREFIX = pkgs.openssl;
+    buildInputs = [ CryptOpenSSLGuess ];
+    meta = {
+      description = "OpenSSL/LibreSSL pseudo-random number generator access";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptOpenSSLRSA = buildPerlPackage {
+    pname = "Crypt-OpenSSL-RSA";
+    version = "0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-0.33.tar.gz";
+      hash = "sha256-vb5jD21vVAMldGrZmXcnKshmT/gb0Z8K2rptb0Xv2GQ=";
+    };
+    propagatedBuildInputs = [ CryptOpenSSLRandom ];
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
+    OPENSSL_PREFIX = pkgs.openssl;
+    buildInputs = [ CryptOpenSSLGuess ];
+    meta = {
+      description = "RSA encoding and decoding, using the openSSL libraries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptOpenSSLX509 = buildPerlPackage rec {
+    pname = "Crypt-OpenSSL-X509";
+    version = "1.915";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.915.tar.gz";
+      hash = "sha256-xNvBbE/CloV4I3v8MkWH/9eSSacQFQJlLbnjjUSJUX8=";
+    };
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
+    OPENSSL_PREFIX = pkgs.openssl;
+    buildInputs = [ CryptOpenSSLGuess ];
+    propagatedBuildInputs = [ ConvertASN1 ];
+    meta = {
+      description = "Perl extension to OpenSSL's X509 API";
+      homepage = "https://github.com/dsully/perl-crypt-openssl-x509";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptPBKDF2 = buildPerlPackage {
+    pname = "Crypt-PBKDF2";
+    version = "0.161520";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.161520.tar.gz";
+      hash = "sha256-l9+nmjCaCG4YSk5hBH+KEP+z2wUQJefSIqJfGRMLpBc=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ DigestHMAC DigestSHA3 Moo TypeTiny namespaceautoclean strictures ];
+    meta = {
+      description = "The PBKDF2 password hash algorithm";
+      homepage = "https://metacpan.org/release/Crypt-PBKDF2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptPerl = buildPerlPackage {
+    pname = "Crypt-Perl";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Perl-0.38.tar.gz";
+      hash = "sha256-eJdUj7AeFqIK5JDt3UZX+Br3sZKEFLkvbbQsY10ax+A=";
+    };
+    nativeCheckInputs = [ pkgs.openssl MathBigIntGMP ];
+    buildInputs = [ CallContext ExtUtilsMakeMakerCPANfile FileSlurp FileWhich TestClass TestDeep TestException TestFailWarnings TestNoWarnings ];
+    propagatedBuildInputs = [ BytesRandomSecureTiny ClassAccessor ConvertASN1 CryptFormat MathProvablePrime SymbolGet TryTiny ];
+    meta = {
+      description = "Cryptography in pure Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptEd25519 = buildPerlPackage {
+    pname = "Crypt-Ed25519";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Crypt-Ed25519-1.05.tar.gz";
+      hash = "sha256-sdEaWU/rUeQG2BsUfcDRClV8z0yrgcDbP4mBAmd9JKg=";
+    };
+
+    nativeBuildInputs = [ CanaryStability ];
+    buildInputs = [ CanaryStability ];
+
+    meta = {
+      description = "Minimal Ed25519 bindings";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
+  CryptSSLeay = buildPerlPackage {
+    pname = "Crypt-SSLeay";
+    version = "0.73_06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NA/NANIS/Crypt-SSLeay-0.73_06.tar.gz";
+      hash = "sha256-+OzKRch+uRMlmSsT8FlPgI5vG8TDuafxQbmoODhNJSw=";
+    };
+
+    makeMakerFlags = [ "--libpath=${lib.getLib pkgs.openssl}/lib" "--incpath=${pkgs.openssl.dev}/include" ];
+    buildInputs = [ PathClass ];
+    propagatedBuildInputs = [ BytesRandomSecure LWPProtocolHttps ];
+    meta = {
+      description = "OpenSSL support for LWP";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  CSSDOM = buildPerlPackage {
+    pname = "CSS-DOM";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SP/SPROUT/CSS-DOM-0.17.tar.gz";
+      hash = "sha256-Zbl46/PDmF5V7jK7baHp+upJSoXTAFxjuux+lphZ8CY=";
+    };
+
+    patches = [
+      # Replace apostrophe as package separator
+      # https://rt.cpan.org/Public/Bug/Display.html?id=146661
+      ../development/perl-modules/CSSDOM-replace-apostrophe.patch
+    ];
+
+    propagatedBuildInputs = [ Clone ];
+    meta = {
+      description = "Document Object Model for Cascading Style Sheets";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CSSMinifier = buildPerlPackage {
+    pname = "CSS-Minifier";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMICHAUX/CSS-Minifier-0.01.tar.gz";
+      hash = "sha256-0Kk0m46LfoOrcM+IVM+7Qv8pwfbHyCmPIlfdIaoMf+8=";
+    };
+    meta = {
+      description = "Perl extension for minifying CSS";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  CSSMinifierXS = buildPerlPackage {
+    pname = "CSS-Minifier-XS";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.13.tar.gz";
+      hash = "sha256-xBnjCM3IKvHCXWuNB7L/JjR6Yit6Y+wghWq+jbQFH4I=";
+    };
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
+    buildInputs = [ TestDiagINC ];
+    meta = {
+      description = "XS based CSS minifier";
+      homepage = "https://metacpan.org/release/CSS-Minifier-XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CSSSquish = buildPerlPackage {
+    pname = "CSS-Squish";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TS/TSIBLEY/CSS-Squish-0.10.tar.gz";
+      hash = "sha256-ZfwNaazR+jPZpMOwnM4PvXN9dHsfzE6dh+vZEFDLy04=";
+    };
+    buildInputs = [ TestLongString ];
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Compact many CSS files into one big file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Curses = buildPerlPackage {
+    pname = "Curses";
+    version = "1.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GI/GIRAFFED/Curses-1.44.tar.gz";
+      hash = "sha256-ou+4x8iG1pL/xNshNhx2gJoGXliOQ/rQ1n5E751CvTA=";
+    };
+    preConfigure = ''
+      substituteInPlace makeConfig \
+        --replace '#! /usr/bin/perl' '#!${perl}/bin/perl'
+    '';
+    propagatedBuildInputs = [ pkgs.ncurses ];
+    NIX_CFLAGS_LINK = "-L${pkgs.ncurses.out}/lib -lncurses";
+    meta = {
+      description = "Perl bindings to ncurses";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  CursesUI = buildPerlPackage {
+    pname = "Curses-UI";
+    version = "0.9609";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MD/MDXI/Curses-UI-0.9609.tar.gz";
+      hash = "sha256-CrgnpRO24UQDGE+wZajqHS69oSLSF4y/RceB8xEkDq8=";
+    };
+    propagatedBuildInputs = [ Curses TermReadKey ];
+    meta = {
+      description = "A curses based OO user interface framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CursesUIGrid = buildPerlPackage {
+    pname = "Curses-UI-Grid";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADRIANWIT/Curses-UI-Grid-0.15.tar.gz";
+      hash = "sha256-CCDKSp+5SbqPr5evV0AYuu/7aU6YDFCHu2UiqnC52+w=";
+    };
+    propagatedBuildInputs = [ CursesUI TestPod TestPodCoverage ];
+    meta = {
+      description = "Create and manipulate data in grid model";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptX = buildPerlPackage {
+    pname = "CryptX";
+    version = "0.080";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIK/CryptX-0.080.tar.gz";
+      hash = "sha256-tFe3khlKbJwT8G/goLXqFYllwygvOFypPh8AorM+fok=";
+    };
+    meta = {
+      description = "Cryptographic toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptX509 = buildPerlPackage {
+    pname = "Crypt-X509";
+    version = "0.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-X509-0.55.tar.gz";
+      hash = "sha256-FHlrEdFfdq10ROeKYZtw/92RMIaN0LANhYV5yTA4Icc=";
+    };
+    propagatedBuildInputs = [ ConvertASN1 ];
+    meta = {
+      description = "Parse a X.509 certificate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CwdGuard = buildPerlModule {
+    pname = "Cwd-Guard";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cwd-Guard-0.05.tar.gz";
+      hash = "sha256-evx8orlQLkQCQZOK2Xo+fr1VAYDr1hQuHbOUGGsmjnc=";
+    };
+    buildInputs = [ TestRequires ];
+    meta = {
+      description = "Temporary changing working directory (chdir)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataClone = buildPerlPackage {
+    pname = "Data-Clone";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/Data-Clone-0.004.tar.gz";
+      hash = "sha256-L+XheYgqa5Jt/vChCLSiyHof+waJK88vuI5Mj0uEODw=";
+    };
+    buildInputs = [ TestRequires ];
+    patches = [
+      ../development/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch
+    ];
+    meta = {
+      description = "Polymorphic data cloning";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataCompactReadonly = buildPerlPackage {
+    pname = "Data-CompactReadonly";
+    version = "0.1.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-CompactReadonly-0.1.0.tar.gz";
+      hash = "sha256-fVYJCEz1E7p6d4u1lSNHDoNXdn1ZHL1CxYTgPfO+xug=";
+    };
+    propagatedBuildInputs = [ DataIEEE754 DevelStackTrace ScalarType StringBinaryInterpolation TestDifferences TestException ];
+    meta = {
+      description = "A Compact Read Only Database that consumes very little memory";
+      license = with lib.licenses; [ artistic1 gpl2Only ];
+    };
+  };
+
+  DataCompare = buildPerlPackage {
+    pname = "Data-Compare";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Compare-1.29.tar.gz";
+      hash = "sha256-U8nbO5MmPIiqo8QHLYGere0CTXo2s4wMN3N9KI1a+ow=";
+    };
+    propagatedBuildInputs = [ Clone FileFindRule ];
+    meta = {
+      description = "Compare perl data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataDump = buildPerlPackage {
+    pname = "Data-Dump";
+    version = "1.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz";
+      hash = "sha256-pKpuDdvznVrUm93+D4nZ2oZOO8APYnEl0bxYBHL1P70=";
+    };
+    meta = {
+      description = "Pretty printing of data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataDumperAutoEncode = buildPerlModule {
+    pname = "Data-Dumper-AutoEncode";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BAYASHI/Data-Dumper-AutoEncode-1.00.tar.gz";
+      hash = "sha256-LZoCYq1EPTIdxInvbfp7Pu0RonCKddOX03G7JYXl7KE=";
+    };
+    buildInputs = [ ModuleBuildPluggable ModuleBuildPluggableCPANfile ];
+    propagatedBuildInputs = [ IOInteractiveTiny ];
+    meta = {
+      description = "Dump with recursive encoding";
+      license = with lib.licenses; [ artistic2 ];
+      mainProgram = "edumper";
+    };
+  };
+
+  DataDumperConcise = buildPerlPackage {
+    pname = "Data-Dumper-Concise";
+    version = "2.023";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Dumper-Concise-2.023.tar.gz";
+      hash = "sha256-psIvETyvMRN1kN7xtwKKfnGO+s4yKCctBnLCXgNdWFM=";
+    };
+    meta = {
+      description = "Less indentation and newlines plus sub deparsing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataEntropy = buildPerlModule {
+    pname = "Data-Entropy";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-0.007.tar.gz";
+      hash = "sha256-JhHEoaMDhZTXnqTtFNnhWpr493EF9RZneV/k+KU0J+Q=";
+    };
+    propagatedBuildInputs = [ CryptRijndael DataFloat HTTPLite ParamsClassify ];
+    meta = {
+      description = "Entropy (randomness) management";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataFloat = buildPerlModule {
+    pname = "Data-Float";
+    version = "0.013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-0.013.tar.gz";
+      hash = "sha256-4rFSPYWJMLi729GW8II19eZ4uEkZuodxLiYxO5wnUYo=";
+    };
+    meta = {
+      description = "Details of the floating point data type";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataFormValidator = buildPerlPackage {
+    pname = "Data-FormValidator";
+    version = "4.88";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DF/DFARRELL/Data-FormValidator-4.88.tar.gz";
+      hash = "sha256-waU5+RySy82KjYNZfsmnZD/NjM9alOFTgsN2UokXAGY=";
+    };
+    propagatedBuildInputs = [ DateCalc EmailValid FileMMagic ImageSize MIMETypes RegexpCommon ];
+    buildInputs = [ CGI ];
+    meta = {
+      description = "Validates user input (usually from an HTML form) based on input profile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataGUID = buildPerlPackage {
+    pname = "Data-GUID";
+    version = "0.051";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-GUID-0.051.tar.gz";
+      hash = "sha256-aOp3xz/KiROC8gbhJEkJRQG2+/Llf1SQLVBkInz9ji4=";
+    };
+    propagatedBuildInputs = [ DataUUID SubExporter ];
+    meta = {
+      description = "Globally unique identifiers";
+      homepage = "https://github.com/rjbs/Data-GUID";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataHexDump = buildPerlPackage {
+    pname = "Data-HexDump";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Data-HexDump-0.04.tar.gz";
+      hash = "sha256-vDb0BEOKw2rSuSlVOSJ9Nvmc0WI/HjR693xZTEDMvPg=";
+    };
+    meta = {
+      description = "Hexadecial Dumper";
+      homepage = "https://github.com/neilb/Data-HexDump";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ AndersonTorres ];
+      mainProgram = "hexdump";
+    };
+  };
+
+  DataHexdumper = buildPerlPackage {
+    pname = "Data-Hexdumper";
+    version = "3.0001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Hexdumper-3.0001.tar.gz";
+      hash = "sha256-+SQ8vor/7VBF/k31BXJqenKJRx4wxRrAZbPtbODRpgQ=";
+    };
+    meta = {
+      description = "Make binary data human-readable";
+      license = with lib.licenses; [ artistic1 gpl2Only ];
+    };
+  };
+
+  DataHierarchy = buildPerlPackage {
+    pname = "Data-Hierarchy";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLKAO/Data-Hierarchy-0.34.tar.gz";
+      hash = "sha256-s6jmK1Pin3HdWYmu75n7+vH0tuJyoGgAOBNg1Z6f2e0=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Handle data in a hierarchical structure";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataICal = buildPerlPackage {
+    pname = "Data-ICal";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Data-ICal-0.24.tar.gz";
+      hash = "sha256-czHHyEiGxTM3wNuCNhXg5xNKjxPv0oTlwgcm1bzVLf8=";
+    };
+    buildInputs = [ TestLongString TestNoWarnings TestWarn ];
+    propagatedBuildInputs = [ ClassReturnValue TextvFileasData ];
+    meta = {
+      description = "Generates iCalendar (RFC 2445) calendar files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataIEEE754 = buildPerlPackage {
+    pname = "Data-IEEE754";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/Data-IEEE754-0.02.tar.gz";
+      hash = "sha256-xvSrE0ZygjQTtQ8HR5saGwUfTO5C3Tzn6xWD1mkbZx0=";
+    };
+    buildInputs = [ TestBits ];
+    meta = {
+      description = "Pack and unpack big-endian IEEE754 floats and doubles";
+      homepage = "https://metacpan.org/release/Data-IEEE754";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DataInteger = buildPerlModule {
+    pname = "Data-Integer";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-0.006.tar.gz";
+      hash = "sha256-Y7d+3jtjnONRUlA0hjYpr5iavL/0qwOxT8Tq1GH/o1Q=";
+    };
+    meta = {
+      description = "Details of the native integer data type";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataMessagePack = buildPerlModule {
+    pname = "Data-MessagePack";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.02.tar.gz";
+      hash = "sha256-wz20R5CqjSVBR4guI3jf/pcK1gMxNQveBi0XlTSCsbc=";
+    };
+    buildInputs = [ ModuleBuildXSUtil TestRequires ];
+    meta = {
+      description = "A grep-like program for searching source code";
+      homepage = "https://github.com/msgpack/msgpack-perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataMessagePack.x86_64-darwin
+    };
+  };
+
+  DataOptList = buildPerlPackage {
+    pname = "Data-OptList";
+    version = "0.114";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-OptList-0.114.tar.gz";
+      hash = "sha256-n9EJO5F6Ift5rhYH21PRE7TgrY/grndssHen5QBE/fM=";
+    };
+    propagatedBuildInputs = [ ParamsUtil SubInstall ];
+    meta = {
+      description = "Parse and validate simple name/value option pairs";
+      homepage = "https://github.com/rjbs/Data-OptList";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataPage = buildPerlPackage {
+    pname = "Data-Page";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Page-2.03.tar.gz";
+      hash = "sha256-LvpSFn0ferNZAs8yrgJ3amI3BdeRnUEYmBKHsETOPYs=";
+    };
+    propagatedBuildInputs = [ ClassAccessorChained ];
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Help when paging through sets of results";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataPagePageset = buildPerlModule {
+    pname = "Data-Page-Pageset";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHUNZI/Data-Page-Pageset-1.02.tar.gz";
+      hash = "sha256-zqwbtVQ+I9qyUZUTxibj/+ZaF3uOHtnlagMNRVHUUZA=";
+    };
+    buildInputs = [ ClassAccessor DataPage TestException ];
+    meta = {
+      description = "Change long page list to be shorter and well navigate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataPassword = buildPerlPackage {
+    pname = "Data-Password";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RAZINF/Data-Password-1.12.tar.gz";
+      hash = "sha256-gwzegXQf84Q4VBLhb6ulV0WlSnzAGd0j1+1PBdVRqWE=";
+    };
+    meta = {
+      description = "Perl extension for assessing password quality";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataPerl = buildPerlPackage {
+    pname = "Data-Perl";
+    version = "0.002011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Data-Perl-0.002011.tar.gz";
+      hash = "sha256-jTTb4xTPotmb2arlRrvelMOLsFt0sHyJveFnOm9sVfQ=";
+    };
+    buildInputs = [ TestDeep TestFatal TestOutput ];
+    propagatedBuildInputs = [ ClassMethodModifiers ListMoreUtils ModuleRuntime RoleTiny strictures ];
+    meta = {
+      description = "Base classes wrapping fundamental Perl data types";
+      homepage = "https://github.com/tobyink/Data-Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataPrinter = buildPerlPackage {
+    pname = "Data-Printer";
+    version = "1.001001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-1.001001.tar.gz";
+      hash = "sha256-q64DMVUU0rcxxkYrjwZ2SN2ZChA1SyFgbHeM/ZHUe4A=";
+    };
+    propagatedBuildInputs = [ ClonePP FileHomeDir PackageStash SortNaturally ];
+    meta = {
+      description = "Colored & full-featured pretty print of Perl data structures and objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataRandom = buildPerlPackage {
+    pname = "Data-Random";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BAREFOOT/Data-Random-0.13.tar.gz";
+      hash = "sha256-61kBhKjbKKfknqsJ4l+GUMM/H2aLakcoKd50pTJWv8A=";
+    };
+    buildInputs = [ FileShareDirInstall TestMockTime ];
+    meta = {
+      description = "Perl module to generate random data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataSection = buildPerlPackage {
+    pname = "Data-Section";
+    version = "0.200008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-Section-0.200008.tar.gz";
+      hash = "sha256-g6zHpV091+026deNNQrzE4xpz6F4pEdlgicS/0M7mQ4=";
+    };
+    propagatedBuildInputs = [ MROCompat SubExporter ];
+    buildInputs = [ TestFailWarnings ];
+    meta = {
+      description = "Read multiple hunks of data out of your DATA section";
+      homepage = "https://github.com/rjbs/Data-Section";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataSectionSimple = buildPerlPackage {
+    pname = "Data-Section-Simple";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Data-Section-Simple-0.07.tar.gz";
+      hash = "sha256-CzA1/9uQmqH33ta2CPqdiUQhyCwJfVHnFxFw1nV5qcs=";
+    };
+    buildInputs = [ TestRequires ];
+    meta = {
+      description = "Read data from __DATA__";
+      homepage = "https://github.com/miyagawa/Data-Section-Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataSerializer = buildPerlModule {
+    pname = "Data-Serializer";
+    version = "0.65";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.65.tar.gz";
+      hash = "sha256-EhVaUgADPYCl8HVzd19JPxcAcs97KK48otFStZGXHxE=";
+    };
+    meta = {
+      description = "Modules that serialize data structures";
+      homepage = "https://metacpan.org/release/Data-Serializer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataSExpression = buildPerlPackage {
+    pname = "Data-SExpression";
+    version = "0.41";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NELHAGE/Data-SExpression-0.41.tar.gz";
+      hash = "sha256-gWJCakKFoJQ4X9+vbQnO0QbVr1dVP5U6yx1Whn3QFJs=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ ClassAccessor ];
+    meta = {
+      description = "Parse Lisp S-Expressions into perl data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataSpreadPagination = buildPerlPackage {
+    pname = "Data-SpreadPagination";
+    version = "0.1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KN/KNEW/Data-SpreadPagination-0.1.2.tar.gz";
+      hash = "sha256-dOv9hHEyw4zJ6DXhToLEPxgJqVy8mLuE0ffOLk70h+M=";
+    };
+    propagatedBuildInputs = [ DataPage MathRound ];
+    meta = {
+      description = "Page numbering and spread pagination";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataStag = buildPerlPackage {
+    pname = "Data-Stag";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CM/CMUNGALL/Data-Stag-0.14.tar.gz";
+      hash = "sha256-SrEiUI0vuG0XGhX0AG5c+JbV+s+mUhnAskOomQYljlk=";
+    };
+    propagatedBuildInputs = [ IOString ];
+    meta = {
+      description = "Structured Tags";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataStreamBulk = buildPerlPackage {
+    pname = "Data-Stream-Bulk";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/Data-Stream-Bulk-0.11.tar.gz";
+      hash = "sha256-BuCEMqa5dwVgbJJXCbmRKa2SZRbkd9WORGHks9nzCRc=";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ Moose PathClass namespaceclean ];
+    meta = {
+      description = "N at a time iteration API";
+      homepage = "https://metacpan.org/release/Data-Stream-Bulk";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataStructureUtil = buildPerlPackage {
+    pname = "Data-Structure-Util";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/Data-Structure-Util-0.16.tar.gz";
+      hash = "sha256-nNQqE+ZcsV86diluuaE02iIBaOx0fFaNMxpQrnot28Y=";
+    };
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "Change nature of data within a structure";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataTaxi = buildPerlPackage {
+    pname = "Data-Taxi";
+    version = "0.96";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKO/Data-Taxi-0.96.tar.gz";
+      hash = "sha256-q8s2EPygbZodmRaraYB0OmHYWvVfn9N2vqZxKommnHg=";
+    };
+    buildInputs = [ DebugShowStuff ];
+    meta = {
+      description = "Taint-aware, XML-ish data serialization";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataULID = buildPerlPackage {
+    pname = "Data-ULID";
+    version = "1.2.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.2.1.tar.gz";
+      hash = "sha256-SbThGyY0inXfNONGF0UuMZ/XpygasJQgYvFieeqKHSc=";
+    };
+    propagatedBuildInputs = [ CryptX ];
+    meta = {
+      description = "Universally Unique Lexicographically Sortable Identifier";
+      homepage = "https://metacpan.org/release/Data-ULID";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  DataUniqid = buildPerlPackage {
+    pname = "Data-Uniqid";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar.gz";
+      hash = "sha256-tpGbpJuf6Yv98+isyue5t/eNyeceu9C3/vekXZkyTMs=";
+    };
+    meta = {
+      description = "Perl extension for simple genrating of unique id's";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataUtil = buildPerlModule {
+    pname = "Data-Util";
+    version = "0.67";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-Util-0.67.tar.gz";
+      hash = "sha256-tVypHHafgTN8xrCrIMMmg4eOWyZj8cwljFEamZpd/dM=";
+    };
+    buildInputs = [ HashUtilFieldHashCompat ModuleBuildXSUtil ScopeGuard TestException ];
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "A selection of utilities for data and data types";
+      homepage = "https://github.com/gfx/Perl-Data-Util";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
+    };
+  };
+
+  DataURIEncode = buildPerlPackage {
+    pname = "Data-URIEncode";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RH/RHANDOM/Data-URIEncode-0.11.tar.gz";
+      hash = "sha256-Ucnvv4QjhTYW6qJIQeTRmWstsANpAGF/sdvHbHWh82A=";
+    };
+    meta = {
+      description = "Allow complex data structures to be encoded using flat URIs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataUUID = buildPerlPackage {
+    pname = "Data-UUID";
+    version = "1.226";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.226.tar.gz";
+      hash = "sha256-CT1X/6DUEalLr6+uSVaX2yb1ydAncZj+P3zyviKZZFM=";
+    };
+    patches = [
+      ../development/perl-modules/Data-UUID-CVE-2013-4184.patch
+    ];
+    meta = {
+      description = "Globally/Universally Unique Identifiers (GUIDs/UUIDs)";
+      license = with lib.licenses; [ bsd0 ];
+    };
+  };
+
+  DataUUIDMT = buildPerlPackage {
+    pname = "Data-UUID-MT";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Data-UUID-MT-1.001.tar.gz";
+      hash = "sha256-MExLmBKDEfhLf1KccBi6hJx102Q6qA6jgrSwgFfEZy0=";
+    };
+    buildInputs = [ ListAllUtils ];
+    propagatedBuildInputs = [ MathRandomMTAuto ];
+    meta = {
+      description = "Fast random UUID generator using the Mersenne Twister algorithm";
+      homepage = "https://metacpan.org/release/Data-UUID-MT";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  DataValidateDomain = buildPerlPackage {
+    pname = "Data-Validate-Domain";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-Domain-0.15.tar.gz";
+      hash = "sha256-PJ95GHsNPHGt0fj1WbgN8VmTAKbSA+CxYcvhjhdqqzY=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ NetDomainTLD ];
+    meta = {
+      description = "Domain and host name validation";
+      homepage = "https://metacpan.org/release/Data-Validate-Domain";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataValidateIP = buildPerlPackage {
+    pname = "Data-Validate-IP";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-0.31.tar.gz";
+      hash = "sha256-c0r/hrb5ytQOHE2oHyj68Y4IAsdqVm2V5WE9QxgYL8E=";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ NetAddrIP ];
+    meta = {
+      description = "IPv4 and IPv6 validation methods";
+      homepage = "https://metacpan.org/release/Data-Validate-IP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataValidateURI = buildPerlPackage {
+    pname = "Data-Validate-URI";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SO/SONNEN/Data-Validate-URI-0.07.tar.gz";
+      hash = "sha256-8GQY0qRgORPRts5SsWfdE+eH4TvyvjJaBl331Aj3nGA=";
+    };
+    propagatedBuildInputs = [ DataValidateDomain DataValidateIP ];
+    meta = {
+      description = "Common URL validation methods";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataVisitor = buildPerlPackage {
+    pname = "Data-Visitor";
+    version = "0.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Visitor-0.32.tar.gz";
+      hash = "sha256-sZQpDyV8xidaA5N0ERVUxmahZQ5MAa15nB4KJ39HkX0=";
+    };
+    buildInputs = [ TestNeeds ];
+    propagatedBuildInputs = [ Moose TieToObject namespaceclean ];
+    meta = {
+      description = "Visitor style traversal of Perl data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateCalc = buildPerlPackage {
+    pname = "Date-Calc";
+    version = "6.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-6.4.tar.gz";
+      hash = "sha256-fOE3sueXt8CQHzrfGgWhk0M1bNHwRnaqHFap9iT4Wa0=";
+    };
+    propagatedBuildInputs = [ BitVector ];
+    doCheck = false; # some of the checks rely on the year being <2015
+    meta = {
+      description = "Gregorian calendar date calculations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateExtract = buildPerlPackage {
+    pname = "Date-Extract";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Date-Extract-0.07.tar.gz";
+      hash = "sha256-+geIBK3k7uwd4UcuDguwR65i5MjU1QIHAbnlBXfFuPQ=";
+    };
+    buildInputs = [ TestMockTimeHiRes ];
+    propagatedBuildInputs = [ ClassDataInheritable DateTimeFormatNatural ];
+    meta = {
+      description = "Extract probable dates from strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateManip = buildPerlPackage {
+    pname = "Date-Manip";
+    version = "6.92";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.92.tar.gz";
+      hash = "sha256-q5Yr05ygnsb8/n5aaRKvcbDB9vA+TtK+9uRHHJ02ehM=";
+    };
+    # for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
+    patchPhase = ''
+      sed -i "s#/bin/date#${pkgs.coreutils}/bin/date#" lib/Date/Manip/TZ.pm
+    '';
+    doCheck = !stdenv.isi686; # build freezes during tests on i686
+    buildInputs = [ TestInter ];
+    meta = {
+      description = "Date manipulation routines";
+      homepage = "https://github.com/SBECK-github/Date-Manip";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateRange = buildPerlPackage {
+    pname = "Date-Range";
+    version = "1.41";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TM/TMTM/Date-Range-1.41.tar.gz";
+      hash = "sha256-v5iXSSsQHAUDh50Up+fr6QJUQ4NgGufGmpXedcvZSLk=";
+    };
+    propagatedBuildInputs = [ DateSimple ];
+    meta = {
+      description = "work with a range of dates";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  DateSimple = buildPerlPackage {
+    pname = "Date-Simple";
+    version = "3.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IZ/IZUT/Date-Simple-3.03.tar.gz";
+      hash = "sha256-KaGSYxTOFoGjEtYVXClZDHcd2s+Rt0hYc85EnvIJ3QQ=";
+    };
+    meta = {
+      description = "A simple date object";
+      license = with lib.licenses; [ artistic1 gpl2Plus ];
+    };
+  };
+
+  DateTime = buildPerlPackage {
+    pname = "DateTime";
+    version = "1.59";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.59.tar.gz";
+      hash = "sha256-3j6aY84VRwtNtK2tS6asjsKX2IwMbGs1SwgYg7CmdpU=";
+    };
+    buildInputs = [ CPANMetaCheck TestFatal TestWarnings TestWithoutModule ];
+    propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
+    meta = {
+      description = "A date and time object for Perl";
+      homepage = "https://metacpan.org/release/DateTime";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DateTimeCalendarJulian = buildPerlPackage {
+    pname = "DateTime-Calendar-Julian";
+    version = "0.107";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WY/WYANT/DateTime-Calendar-Julian-0.107.tar.gz";
+      hash = "sha256-/LK0JIRLsTvK1GsceqI5taCbqyVW9TvR8n+tkMJg0z0=";
+    };
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      description = "DateTime object in the Julian calendar";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeEventICal = buildPerlPackage {
+    pname = "DateTime-Event-ICal";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-ICal-0.13.tar.gz";
+      hash = "sha256-U9pDhO9c8w7ofcATH0tu7iEhzA66NHFioyi5vPr0deo=";
+    };
+    propagatedBuildInputs = [ DateTimeEventRecurrence ];
+    meta = {
+      description = "DateTime rfc2445 recurrences";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeEventRecurrence = buildPerlPackage {
+    pname = "DateTime-Event-Recurrence";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-Recurrence-0.19.tar.gz";
+      hash = "sha256-+UCHiaRhEHdmyhojK7PsHnAu7HyoFnQB6m7D9LbQtaU=";
+    };
+    propagatedBuildInputs = [ DateTimeSet ];
+    meta = {
+      description = "DateTime::Set extension for create basic recurrence sets";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatBuilder = buildPerlPackage {
+    pname = "DateTime-Format-Builder";
+    version = "0.83";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz";
+      hash = "sha256-Yf+yPYWzyheGstoyiembV+BiX+DknbAqbcDLYsaJ4vI=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatStrptime ParamsValidate ];
+    meta = {
+      description = "Create DateTime parser classes and objects";
+      homepage = "https://metacpan.org/release/DateTime-Format-Builder";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DateTimeFormatDateParse = buildPerlModule {
+    pname = "DateTime-Format-DateParse";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHOBLITT/DateTime-Format-DateParse-0.05.tar.gz";
+      hash = "sha256-9uykyL5mzpmS7hUJMvj88HgJ/T0WZMryALil/Tp+Xrw=";
+    };
+    propagatedBuildInputs = [ DateTime TimeDate ];
+    meta = {
+      description = "Parses Date::Parse compatible formats";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatFlexible = buildPerlPackage {
+    pname = "DateTime-Format-Flexible";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TH/THINC/DateTime-Format-Flexible-0.34.tar.gz";
+      hash = "sha256-g2rvXSXm/4gnMIpDv/dBkeXSAiDao9ISAFC8w0FI/PE=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatBuilder ListMoreUtils ModulePluggable ];
+    buildInputs = [ TestException TestMockTime TestNoWarnings ];
+    meta = {
+      description = "Flexibly parse strings and turn them into DateTime objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatHTTP = buildPerlModule {
+    pname = "DateTime-Format-HTTP";
+    version = "0.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CK/CKRAS/DateTime-Format-HTTP-0.42.tar.gz";
+      hash = "sha256-0E52nfRZaN/S0b3GR6Mlxod2FAaXYnhubxN/H17D2EA=";
+    };
+    propagatedBuildInputs = [ DateTime HTTPDate ];
+    meta = {
+      description = "Date conversion routines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatICal = buildPerlModule {
+    pname = "DateTime-Format-ICal";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ICal-0.09.tar.gz";
+      hash = "sha256-iwn2U59enA3w5hNQMWme1O+e74Fl/ICu/uzIF++ZfDM=";
+    };
+    propagatedBuildInputs = [ DateTimeEventICal ];
+    meta = {
+      description = "Parse and format iCal datetime and duration strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatISO8601 = buildPerlPackage {
+    pname = "DateTime-Format-ISO8601";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ISO8601-0.16.tar.gz";
+      hash = "sha256-WChH9uApBlM0oAVk8gzXwo9OXNTsIVE9D2klMe07VuE=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatBuilder ];
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Parses ISO8601 formats";
+      homepage = "https://metacpan.org/release/DateTime-HiRes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatMail = buildPerlPackage {
+    pname = "DateTime-Format-Mail";
+    version = "0.403";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/DateTime-Format-Mail-0.403.tar.gz";
+      hash = "sha256-jfjjXER3OI/1x86LPotq5O0wIJx6UFHUFze9FNdV/LA=";
+    };
+    propagatedBuildInputs = [ DateTime ParamsValidate ];
+    meta = {
+      description = "Convert between DateTime and RFC2822/822 formats";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatNatural = buildPerlModule {
+    pname = "DateTime-Format-Natural";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.18.tar.gz";
+      hash = "sha256-2TRqRhUDVFnYvO4PrD1OuuoDj09DsoT2nt9z9u1XUf4=";
+    };
+    buildInputs = [ ModuleUtil TestMockTimeHiRes ];
+    propagatedBuildInputs = [ Clone DateTime DateTimeHiRes DateTimeTimeZone ListMoreUtils ParamsValidate boolean ];
+    meta = {
+      description = "Parse informal natural language date/time strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dateparse";
+    };
+  };
+
+  DateTimeFormatMySQL = buildPerlModule {
+    pname = "DateTime-Format-MySQL";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XM/XMIKEW/DateTime-Format-MySQL-0.08.tar.gz";
+      hash = "sha256-Gctw6YWEZV41TS1qjnHMXKkC3dw6xEQWcS+RY9Eiueg=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatBuilder ];
+    meta = {
+      description = "Parse and format MySQL dates and times";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatPg = buildPerlModule {
+    pname = "DateTime-Format-Pg";
+    version = "0.16014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMAKI/DateTime-Format-Pg-0.16014.tar.gz";
+      hash = "sha256-OLuWZlJNw4TDNm9jQsuWVsULrA+XFqPUTxz1Usy+Drk=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatBuilder ];
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Parse and format PostgreSQL dates and times";
+      homepage = "https://github.com/lestrrat-p5/DateTime-Format-Pg";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatStrptime = buildPerlPackage {
+    pname = "DateTime-Format-Strptime";
+    version = "1.79";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.79.tar.gz";
+      hash = "sha256-cB5GgCyG7U2IaVwabay76QszkL7reU84fnx5IwADdXk=";
+    };
+    buildInputs = [ TestFatal TestWarnings ];
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      description = "Parse and format strp and strf time patterns";
+      homepage = "https://metacpan.org/release/DateTime-Format-Strptime";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DateTimeFormatSQLite = buildPerlPackage {
+    pname = "DateTime-Format-SQLite";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFAERBER/DateTime-Format-SQLite-0.11.tar.gz";
+      hash = "sha256-zB9OCuHTmw1MPd3M/XQjx3xnpwlQxLXsq/jKVTqylLQ=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatBuilder ];
+    meta = {
+      description = "Parse and format SQLite dates and times";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatW3CDTF = buildPerlPackage {
+    pname = "DateTime-Format-W3CDTF";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GW/GWILLIAMS/DateTime-Format-W3CDTF-0.08.tar.gz";
+      hash = "sha256-3MIAoHOiHLpIEipdrgtqh135PT+MiunURtzdm++qQTo=";
+    };
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      description = "Parse and format W3CDTF datetime strings";
+      homepage = "https://metacpan.org/release/DateTime-Format-W3CDTF";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeHiRes = buildPerlPackage {
+    pname = "DateTime-HiRes";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-HiRes-0.04.tar.gz";
+      hash = "sha256-HCMVkzLDD566VLdeZpK+TeqAUiQ+r/MCbJyQuLZLw5U=";
+    };
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      homepage = "https://metacpan.org/release/DateTime-HiRes";
+      description = "Create DateTime objects with sub-second current time resolution";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeLocale = buildPerlPackage {
+    pname = "DateTime-Locale";
+    version = "1.39";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-1.39.tar.gz";
+      hash = "sha256-EMFFpsfa9xGIZOl0grSun5T5O5QUIS7uiqMLFqgTUQA=";
+    };
+    buildInputs = [ CPANMetaCheck FileShareDirInstall IPCSystemSimple PathTiny Test2PluginNoWarnings Test2Suite TestFileShareDir ];
+    propagatedBuildInputs = [ FileShareDir ParamsValidationCompiler Specio namespaceautoclean ];
+    meta = {
+      description = "Localization support for DateTime.pm";
+      homepage = "https://metacpan.org/release/DateTime-Locale";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeFormatRFC3339 = buildPerlPackage rec {
+    pname = "DateTime-Format-RFC3339";
+    version = "1.2.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v${version}.tar.gz";
+      hash = "sha256-E27hIkwxxuAXaSqfXlb9tPcKlfRq7DrYVdN4PeNaDfc=";
+    };
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      description = "Parse and format RFC3339 datetime strings";
+      homepage = "https://search.cpan.org/dist/DateTime-Format-RFC3339";
+      license = with lib.licenses; [ cc0 ];
+    };
+  };
+
+  DateTimeSet = buildPerlModule {
+    pname = "DateTime-Set";
+    version = "0.3900";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.3900.tar.gz";
+      hash = "sha256-lPQcOSSq/eTvf6a1jgWV1AONisX/1iuhEbE8X028CUY=";
+    };
+    propagatedBuildInputs = [ DateTime ParamsValidate SetInfinite ];
+    meta = {
+      description = "DateTime set objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeTimeZone = buildPerlPackage {
+    pname = "DateTime-TimeZone";
+    version = "2.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.60.tar.gz";
+      hash = "sha256-8EYNN5MjkFtXm+1E4UEjejN9wl3Sa2qwxgrCuAYpMj0=";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ ClassSingleton ParamsValidationCompiler Specio namespaceautoclean ];
+    meta = {
+      description = "Time zone object base class and factory";
+      homepage = "https://metacpan.org/release/DateTime-TimeZone";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DateTimeXEasy = buildPerlPackage {
+    pname = "DateTimeX-Easy";
+    version = "0.091";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/DateTimeX-Easy-0.091.tar.gz";
+      hash = "sha256-pfjbvntpZdUD4VJYIBXaKk+B46WGA9/t1Oc9H92s/II=";
+    };
+    buildInputs = [ TestMost ];
+    propagatedBuildInputs = [ DateTimeFormatFlexible DateTimeFormatICal DateTimeFormatNatural TimeDate ];
+    doCheck = false;
+    meta = {
+      description = "Parse a date/time string using the best method available";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DebugShowStuff = buildPerlModule {
+    pname = "Debug-ShowStuff";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKO/Debug-ShowStuff-1.16.tar.gz";
+      hash = "sha256-pN1dLNfbjqbkhhsZPgJLQYeisO0rmdWHBi37EaXNLLc=";
+    };
+    propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
+    meta = {
+      description = "A collection of handy debugging routines for displaying the values of variables with a minimum of coding";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Deliantra = buildPerlPackage rec {
+    pname = "Deliantra";
+    version = "2.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
+      hash = "sha256-JxbZsfBWJ9YJQs4GNLnBolEJsWSBgoXUW2Ca6FluKxc=";
+    };
+    propagatedBuildInputs = [ AnyEvent CompressLZF JSONXS commonsense ];
+    meta = {
+      description = "Deliantra suppport module to read/write archetypes, maps etc";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelCaller = buildPerlPackage {
+    pname = "Devel-Caller";
+    version = "2.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Devel-Caller-2.07.tar.gz";
+      hash = "sha256-tnmisYA0sLcg3oLDcIckw2SxCmyhZMvGfNw68oPzUD8=";
+    };
+    propagatedBuildInputs = [ PadWalker ];
+    meta = {
+      description = "Meatier versions of caller";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelCheckBin = buildPerlPackage {
+    pname = "Devel-CheckBin";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-0.04.tar.gz";
+      hash = "sha256-FX89tZwp7R1JEzpGnO53LIha1O5k6GkqkbPr/b4v4+Q=";
+    };
+    meta = {
+      description = "Check that a command is available";
+      homepage = "https://github.com/tokuhirom/Devel-CheckBin";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelCheckCompiler = buildPerlModule {
+    pname = "Devel-CheckCompiler";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Devel-CheckCompiler-0.07.tar.gz";
+      hash = "sha256-dot2l7S41NNyx1B7ZendJqpCI/cQAYO7tNOvRtQ4abU=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Check the compiler's availability";
+      homepage = "https://github.com/tokuhirom/Devel-CheckCompiler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelChecklib = buildPerlPackage {
+    pname = "Devel-CheckLib";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTN/Devel-CheckLib-1.16.tar.gz";
+      hash = "sha256-hp04wljmRtzvZ2YJ8N18qQ8IX1bPb9cAGwGaXVuDH8o=";
+    };
+    buildInputs = [ CaptureTiny MockConfig ];
+    meta = {
+      description = "Check that a library is available";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelCheckOS = buildPerlPackage {
+    pname = "Devel-CheckOS";
+    version = "1.96";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.96.tar.gz";
+      hash = "sha256-+GB5BfT1reSI9+9Et8HnyFI/ure5HS3IMLMa6cqBPfU=";
+    };
+    buildInputs = [ TestWarnings ];
+    propagatedBuildInputs = [ FileFindRule ];
+    meta = {
+      description = "Check what OS we're running on";
+      license = with lib.licenses; [ gpl2Only artistic1 ];
+    };
+  };
+
+  DevelDeprecationsEnvironmental = buildPerlPackage {
+    pname = "Devel-Deprecations-Environmental";
+    version = "1.101";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Deprecations-Environmental-1.101.tar.gz";
+      hash = "sha256-S+SC08PcOtHvR0P6s4DOuQG3QVZQeVOoNITfadolpqY=";
+    };
+    propagatedBuildInputs = [ DevelCheckOS DevelHide TestException TestTime ];
+    meta = {
+      description = "A framework for managing deprecations";
+      homepage = "https://github.com/DrHyde/perl-modules-Devel-Deprecations-Environmental";
+      license = with lib.licenses; [ gpl2Only artistic1 ];
+    };
+  };
+
+  DevelLeak = buildPerlPackage rec {
+    pname = "Devel-Leak";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NI-S/Devel-Leak-0.03.tar.gz";
+      hash = "sha256-b0LDTxHitOPqLg5rlBaoimha3UR5EMr02R3SwXgXclI=";
+    };
+    meta = {
+      description = "Utility for looking for perl objects that are not reclaimed";
+      homepage = "https://metacpan.org/release/Devel-Leak";
+      license = with lib.licenses; [ artistic1 gpl1Plus ]; # According to Debian
+    };
+  };
+
+  DevelPatchPerl = buildPerlPackage {
+    pname = "Devel-PatchPerl";
+    version = "2.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-2.08.tar.gz";
+      hash = "sha256-acbpcBYmD0COnX5Ej5QrNqbUnfWvBzQPHWXX4jAWdBk=";
+    };
+    propagatedBuildInputs = [ Filepushd ModulePluggable ];
+    meta = {
+      description = "Patch perl source a la Devel::PPPort's buildperl.pl";
+      homepage = "https://github.com/bingos/devel-patchperl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "patchperl";
+    };
+  };
+
+  DevelRefcount = buildPerlModule {
+    pname = "Devel-Refcount";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Devel-Refcount-0.10.tar.gz";
+      hash = "sha256-tlTUaWPRqIFCa6FZlPKPUuuDmw0TW/I5tNG/OLHKyko=";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Obtain the REFCNT value of a referent";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelPPPort = buildPerlPackage {
+    pname = "Devel-PPPort";
+    version = "3.68";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.68.tar.gz";
+      hash = "sha256-UpDVu4TN6enmEROiDGe11HJn645loRmookjMlqrAuts=";
+    };
+    meta = {
+      description = "Perl/Pollution/Portability";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelTrace = buildPerlPackage {
+    pname = "Devel-Trace";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MJ/MJD/Devel-Trace-0.12.tar.gz";
+      hash = "sha256-9QHK93b/fphvduAlRNbOI0yJdwFzKD8x333MV4AKOGg=";
+    };
+    meta = {
+      description = "Print out each line before it is executed (like sh -x)";
+      license = with lib.licenses; [ publicDomain ];
+    };
+  };
+
+  DeviceMAC = buildPerlPackage {
+    pname = "Device-MAC";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JASONK/Device-MAC-1.00.tar.gz";
+      hash = "sha256-xCGCqahImjFMv+bhyEUvMrO2Jqpsif7h2JJebftk+tU=";
+    };
+    buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
+    propagatedBuildInputs = [ DeviceOUI Moose ];
+    meta = {
+      description = "Handle hardware MAC Addresses (EUI-48 and EUI-64)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DeviceOUI = buildPerlPackage {
+    pname = "Device-OUI";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JASONK/Device-OUI-1.04.tar.gz";
+      hash = "sha256-SzZ+YbH63ed/tvtynzzVrNHUbnEhjZb0Bry6ONQ7S+8=";
+    };
+    buildInputs = [ TestException ];
+    patches = [ ../development/perl-modules/Device-OUI-1.04-hash.patch ];
+    propagatedBuildInputs = [ ClassAccessorGrouped LWP SubExporter ];
+    meta = {
+      description = "Resolve an Organizationally Unique Identifier";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DBDCSV = buildPerlPackage {
+    pname = "DBD-CSV";
+    version = "0.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBD-CSV-0.60.tgz";
+      hash = "sha256-AYuDow95mXm8jDwwRMixyAAc32C9w+dGhIgYGVJUtOc=";
+    };
+    propagatedBuildInputs = [ DBI SQLStatement TextCSV_XS ];
+    meta = {
+      description = "DBI driver for CSV files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBDMock = buildPerlModule {
+    pname = "DBD-Mock";
+    version = "1.59";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JL/JLCOOPER/DBD-Mock-1.59.tar.gz";
+      hash = "sha256-ClqllTq2XPeQaB5sBFLjGK1X2ArCf1dfhJGMYDqkdAY=";
+    };
+    propagatedBuildInputs = [ DBI ];
+    buildInputs = [ ModuleBuildTiny TestException ];
+    meta = {
+      description = "Mock database driver for testing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBDSQLite = buildPerlPackage {
+    pname = "DBD-SQLite";
+    version = "1.74";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.74.tar.gz";
+      hash = "sha256-iZSZfYS5/rRUd5X3h0bGYfty48tqJdvdeJtzH1aIpN0=";
+    };
+
+    propagatedBuildInputs = [ DBI ];
+    buildInputs = [ pkgs.sqlite ];
+
+    patches = [
+      # Support building against our own sqlite.
+      ../development/perl-modules/DBD-SQLite/external-sqlite.patch
+
+      # Pull upstream fix for test failures against sqlite-3.37.
+      (fetchpatch {
+        name = "sqlite-3.37-compat.patch";
+        url = "https://github.com/DBD-SQLite/DBD-SQLite/commit/ba4f472e7372dbf453444c7764d1c342e7af12b8.patch";
+        hash = "sha256-nn4JvaIGlr2lUnUC+0ABe9AFrRrC5bfdTQiefo0Pjwo=";
+      })
+    ];
+
+    makeMakerFlags = [ "SQLITE_INC=${pkgs.sqlite.dev}/include" "SQLITE_LIB=${pkgs.sqlite.out}/lib" ];
+
+    postInstall = ''
+      # Get rid of a pointless copy of the SQLite sources.
+      rm -rf $out/${perl.libPrefix}/*/*/auto/share
+    '';
+
+    preCheck = "rm t/65_db_config.t"; # do not run failing tests
+
+    meta = {
+      description = "Self Contained SQLite RDBMS in a DBI Driver";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.unix;
+    };
+  };
+
+  DBDMariaDB = buildPerlPackage {
+    pname = "DBD-MariaDB";
+    version = "1.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PALI/DBD-MariaDB-1.23.tar.gz";
+      hash = "sha256-DQx2xmDd1VVw5I8+L96o9iGmmsDtSBkOjPyvy16bhZ0=";
+    };
+    buildInputs = [ pkgs.mariadb-connector-c DevelChecklib TestDeep TestDistManifest TestPod ];
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      description = "MariaDB and MySQL driver for the Perl5 Database Interface (DBI)";
+      homepage = "https://github.com/gooddata/DBD-MariaDB";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DBDmysql = buildPerlPackage {
+    pname = "DBD-mysql";
+    version = "4.050";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz";
+      hash = "sha256-T0hUH/FaCnQF92rcEPgWJ8M5lvv1bJXCbAlERMCSjXg=";
+    };
+
+    buildInputs = [ pkgs.libmysqlclient DevelChecklib TestDeep TestDistManifest TestPod ];
+    propagatedBuildInputs = [ DBI ];
+
+    doCheck = false;
+
+  #  makeMakerFlags = "MYSQL_HOME=${mysql}";
+    meta = {
+      description = "MySQL driver for the Perl5 Database Interface (DBI)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBDOracle = buildPerlPackage {
+    pname = "DBD-Oracle";
+    version = "1.83";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/DBD-Oracle-1.83.tar.gz";
+      hash = "sha256-Uf6cFYlV/aDKkXqAaGPwvFEGi1M/u8dCOzzErVle0VM=";
+    };
+
+    ORACLE_HOME = "${pkgs.oracle-instantclient.lib}/lib";
+
+    buildInputs = [ pkgs.oracle-instantclient TestNoWarnings ];
+    propagatedBuildInputs = [ DBI ];
+
+    postBuild = lib.optionalString stdenv.isDarwin ''
+      install_name_tool -add_rpath "${pkgs.oracle-instantclient.lib}/lib" blib/arch/auto/DBD/Oracle/Oracle.bundle
+    '';
+    meta = {
+      description = "Oracle database driver for the DBI module";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBDPg = buildPerlPackage {
+    pname = "DBD-Pg";
+    version = "3.17.0";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.17.0.tar.gz";
+      hash = "sha256-jZANTA50nzchh1KmZh+w01V6sfzMjeo4TLWHw4LeIZs=";
+    };
+
+    buildInputs = [ pkgs.postgresql ];
+    propagatedBuildInputs = [ DBI ];
+
+    makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
+
+    # tests freeze in a sandbox
+    doCheck = false;
+
+    meta = {
+      description = "DBI PostgreSQL interface";
+      homepage = "https://search.cpan.org/dist/DBD-Pg";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.unix;
+    };
+  };
+
+  DBDsybase = buildPerlPackage {
+    pname = "DBD-Sybase";
+    version = "1.23";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ME/MEWP/DBD-Sybase-1.23.tar.gz";
+      hash = "sha256-B1e6aqyaKaLcOFmV1myPQSqIlo/SNsDYu0ZZAo5OmWU=";
+    };
+
+    SYBASE = pkgs.freetds;
+
+    buildInputs = [ pkgs.freetds ];
+    propagatedBuildInputs = [ DBI ];
+
+    doCheck = false;
+
+    meta = {
+      description = "DBI driver for Sybase datasources";
+      license = with lib.licenses; [ artistic1 gpl1Only ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DBDsybase.x86_64-darwin
+    };
+  };
+
+  DBFile = buildPerlPackage {
+    pname = "DB_File";
+    version = "1.859";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.859.tar.gz";
+      hash = "sha256-VnTg0s0LBgxNElNnDqAixk2EKlUlf5647bGcD1PiVlw=";
+    };
+
+    preConfigure = ''
+      cat > config.in <<EOF
+      PREFIX = size_t
+      HASH = u_int32_t
+      LIB = ${pkgs.db.out}/lib
+      INCLUDE = ${pkgs.db.dev}/include
+      EOF
+    '';
+    meta = {
+      description = "Perl5 access to Berkeley DB version 1.x";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBI = buildPerlPackage {
+    pname = "DBI";
+    version = "1.643";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMB/DBI-1.643.tar.gz";
+      hash = "sha256-iiuZPbVgosNzwXTul2pRAn3XgOx2auF2IMIDk9LoNvo=";
+    };
+    postInstall = lib.optionalString (perl ? crossVersion) ''
+      mkdir -p $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI
+      cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI.pm <<EOF
+      package DBI;
+      BEGIN {
+      our \$VERSION = "$version";
+      }
+      1;
+      EOF
+
+      autodir=$(echo $out/${perl.libPrefix}/${perl.version}/*/auto/DBI)
+      cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI/DBD.pm <<EOF
+      package DBI::DBD;
+      use Exporter ();
+      use vars qw (@ISA @EXPORT);
+      @ISA = qw(Exporter);
+      @EXPORT = qw(dbd_postamble);
+      sub dbd_postamble {
+          return '
+      # --- This section was generated by DBI::DBD::dbd_postamble()
+      DBI_INSTARCH_DIR=$autodir
+      DBI_DRIVER_XST=$autodir/Driver.xst
+
+      # The main dependency (technically correct but probably not used)
+      \$(BASEEXT).c: \$(BASEEXT).xsi
+
+      # This dependency is needed since MakeMaker uses the .xs.o rule
+      \$(BASEEXT)\$(OBJ_EXT): \$(BASEEXT).xsi
+
+      \$(BASEEXT).xsi: \$(DBI_DRIVER_XST) $autodir/Driver_xst.h
+      ''\t\$(PERL) -p -e "s/~DRIVER~/\$(BASEEXT)/g" \$(DBI_DRIVER_XST) > \$(BASEEXT).xsi
+
+      # ---
+      ';
+      }
+      1;
+      EOF
+    '';
+    meta = {
+      description = "Database independent interface for Perl";
+      homepage = "https://dbi.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBICxTestDatabase = buildPerlPackage {
+    pname = "DBICx-TestDatabase";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JR/JROCKWAY/DBICx-TestDatabase-0.05.tar.gz";
+      hash = "sha256-jjvCUwsBIWGIw6plrNvS9ZxOYx864IXfxDmr2J+PCs8=";
+    };
+    buildInputs = [ DBIxClass TestSimple13 ];
+    propagatedBuildInputs = [ DBDSQLite SQLTranslator ];
+    meta = {
+      description = "Create a temporary database from a DBIx::Class::Schema";
+      homepage = "https://metacpan.org/pod/DBICx::TestDatabase";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DBIxClass = buildPerlPackage {
+    pname = "DBIx-Class";
+    version = "0.082843";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082843.tar.gz";
+      hash = "sha256-NB4Lbssp2MSRdKbAnXxtvzhym6QBXuf9cDYKT/7h8lE=";
+    };
+    buildInputs = [ DBDSQLite TestDeep TestException TestWarn ];
+    propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ];
+    meta = {
+      description = "Extensible and flexible object <-> relational mapper";
+      homepage = "https://metacpan.org/pod/DBIx::Class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dbicadmin";
+    };
+  };
+
+  DBIxClassCandy = buildPerlPackage {
+    pname = "DBIx-Class-Candy";
+    version = "0.005003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.005003.tar.gz";
+      hash = "sha256-uKIpp7FfVZCV1FYc+CIEYBKFQbp/w1Re01hpkj1GVlw=";
+    };
+    buildInputs = [ TestDeep TestFatal ];
+    propagatedBuildInputs = [ DBIxClass LinguaENInflect SubExporter ];
+    meta = {
+      description = "Sugar for your favorite ORM, DBIx::Class";
+      homepage = "https://github.com/frioux/DBIx-Class-Candy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxClassCursorCached = buildPerlPackage {
+    pname = "DBIx-Class-Cursor-Cached";
+    version = "1.001004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARCANEZ/DBIx-Class-Cursor-Cached-1.001004.tar.gz";
+      hash = "sha256-NwhSMqEjClqodUOZ+1mw+PzV9Zeh4uNIxSJ0YaGSYiU=";
+    };
+    buildInputs = [ CacheCache DBDSQLite ];
+    propagatedBuildInputs = [ CarpClan DBIxClass ];
+    meta = {
+      description = "Cursor class with built-in caching support";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxClassDynamicDefault = buildPerlPackage {
+    pname = "DBIx-Class-DynamicDefault";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/DBIx-Class-DynamicDefault-0.04.tar.gz";
+      hash = "sha256-Io9RqyJGQlhLTcY9tt4mZ8W/riqJSpN2shChBIBqWvs=";
+    };
+    buildInputs = [ DBICxTestDatabase ];
+    propagatedBuildInputs = [ DBIxClass ];
+    meta = {
+      description = "Automatically set and update fields";
+      homepage = "https://metacpan.org/pod/DBIx::Class::DynamicDefault";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DBIxClassHTMLWidget = buildPerlPackage {
+    pname = "DBIx-Class-HTMLWidget";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDREMAR/DBIx-Class-HTMLWidget-0.16.tar.gz";
+      hash = "sha256-QUJ1YyFu31qTllCQrg4chaldN6gdcg8CwTYM+n208Bc=";
+    };
+    propagatedBuildInputs = [ DBIxClass HTMLWidget ];
+    meta = {
+      description = "Like FromForm but with DBIx::Class and HTML::Widget";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxClassHelpers = buildPerlPackage {
+    pname = "DBIx-Class-Helpers";
+    version = "2.036000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz";
+      hash = "sha256-t7i0iRqYPANO8LRfQRJASgpAVQxOIX2ut6IsoWhh79s=";
+    };
+    buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ];
+    propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ];
+    meta = {
+      description = "Simplify the common case stuff for DBIx::Class";
+      homepage = "https://github.com/frioux/DBIx-Class-Helpers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxClassInflateColumnSerializer = buildPerlPackage {
+    pname = "DBIx-Class-InflateColumn-Serializer";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRUIZ/DBIx-Class-InflateColumn-Serializer-0.09.tar.gz";
+      hash = "sha256-YmK0hx22psRaDL583o8biQsiwpGt1OzEDKruq1o6b1A=";
+    };
+    buildInputs = [ DBDSQLite TestException ];
+    propagatedBuildInputs = [ DBIxClass JSONMaybeXS YAML ];
+    meta = {
+      description = "Inflators to serialize data structures for DBIx::Class";
+      homepage = "https://metacpan.org/release/DBIx-Class-InflateColumn-Serializer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DBIxClassIntrospectableM2M = buildPerlPackage {
+    pname = "DBIx-Class-IntrospectableM2M";
+    version = "0.001002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/DBIx-Class-IntrospectableM2M-0.001002.tar.gz";
+      hash = "sha256-xrqvtCQWk/2zSynr2QaZOt02S/Mar6RGLz4GIgTMh/A=";
+    };
+    propagatedBuildInputs = [ DBIxClass ];
+    meta = {
+      description = "Introspect many-to-many relationships";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxClassSchemaLoader = buildPerlPackage {
+    pname = "DBIx-Class-Schema-Loader";
+    version = "0.07051";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VE/VEESH/DBIx-Class-Schema-Loader-0.07051.tar.gz";
+      hash = "sha256-GgieUISlJ2j0J0vCGB3LrhTcxXnk2YD89WnGeBsGCSw=";
+    };
+    buildInputs = [ DBDSQLite TestDeep TestDifferences TestException TestWarn ];
+    propagatedBuildInputs = [ CarpClan ClassUnload DBIxClass DataDump StringCamelCase StringToIdentifierEN curry ];
+    meta = {
+      description = "Create a DBIx::Class::Schema based on a database";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dbicdump";
+    };
+  };
+
+  DBIxConnector = buildPerlPackage {
+    pname = "DBIx-Connector";
+    version = "0.59";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/DBIx-Connector-0.59.tar.gz";
+      hash = "sha256-eCmU8T9JVVhAU4SU+EBrC/JVj1M8zahsjSuV4jAQh/Q=";
+    };
+    buildInputs = [ TestMockModule ];
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      description = "Fast, safe DBI connection and transaction management";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxDBSchema = buildPerlPackage {
+    pname = "DBIx-DBSchema";
+    version = "0.47";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IV/IVAN/DBIx-DBSchema-0.47.tar.gz";
+      hash = "sha256-7u4hDcFKjWPrAawtZsZ6HcJ5+Sib6WphckyJUXkcUhI=";
+    };
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      description = "Database-independent schema objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxSearchBuilder = buildPerlPackage {
+    pname = "DBIx-SearchBuilder";
+    version = "1.77";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/DBIx-SearchBuilder-1.77.tar.gz";
+      hash = "sha256-O/il1cjF/cYK0vY/Y/c90fZJP/TYJYcoOj4iM36P4HA=";
+    };
+    buildInputs = [ DBDSQLite ];
+    propagatedBuildInputs = [ CacheSimpleTimedExpiry ClassAccessor ClassReturnValue Clone DBIxDBSchema Want capitalization ];
+    meta = {
+      description = "Encapsulate SQL queries and rows in simple perl objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBIxSimple = buildPerlPackage {
+    pname = "DBIx-Simple";
+    version = "1.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JU/JUERD/DBIx-Simple-1.37.tar.gz";
+      hash = "sha256-RtMRqizgiQdAHFYRllhCbbsETFpA3nPZp7eb9QOQyuM=";
+    };
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      description = "Very complete easy-to-use OO interface to DBI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DBMDeep = buildPerlPackage {
+    pname = "DBM-Deep";
+    version = "2.0017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/DBM-Deep-2.0017.tar.gz";
+      hash = "sha256-1yNFIFdVO72UXWMhXr/gqnepLsbg+jOw2spXrhuKTSQ=";
+    };
+    buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
+    meta = {
+      description = "A pure perl multi-level hash/array DBM that supports transactions";
+      homepage = "https://github.com/robkinyon/dbm-deep";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DataBinary = buildPerlPackage {
+    pname = "Data-Binary";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SN/SNKWATT/Data-Binary-0.01.tar.gz";
+      hash = "sha256-SCGi3hCscQj03LKEpxuHaYGwyx6mxe1q+xd78ufLjXM=";
+    };
+    meta = {
+      description = "Simple detection of binary versus text in strings";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DataBuffer = buildPerlPackage {
+    pname = "Data-Buffer";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz";
+      hash = "sha256-Kz0Jt7zzifwRYgeyg77iUONI1EycY0YL7mfvq03SG7Q=";
+    };
+    meta = {
+      description = "Read/write buffer class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DBIxIntrospector = buildPerlPackage {
+    pname = "DBIx-Introspector";
+    version = "0.001005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Introspector-0.001005.tar.gz";
+      hash = "sha256-lqlNLMaQwfqP00ET47CEvypGmjI6l4AoWu+S3cOB5jo=";
+    };
+
+    propagatedBuildInputs = [ DBI Moo ];
+    buildInputs = [ DBDSQLite TestFatal TestRoo ];
+    meta = {
+      description = "Detect what database you are connected to";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelCamelcadedb = buildPerlPackage {
+    pname = "Devel-Camelcadedb";
+    version = "2023.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HU/HURRICUP/Devel-Camelcadedb-v2023.1.tar.gz";
+      hash = "sha256-z/jSTllF45RN6/ITmVprFVuR5YE0aRVrE9Ws819qXZ8=";
+    };
+    propagatedBuildInputs = [ HashStoredIterator JSONXS PadWalker ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Perl side of the Perl debugger for IntelliJ IDEA and other JetBrains IDEs";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  DevelCycle = buildPerlPackage {
+    pname = "Devel-Cycle";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz";
+      hash = "sha256-/TNlxNiYsrK927eKRtUHoYzKhJCikBmVR9q38ec5C8I=";
+    };
+    meta = {
+      description = "Find memory cycles in objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelDeclare = buildPerlPackage {
+    pname = "Devel-Declare";
+    version = "0.006022";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz";
+      hash = "sha256-cvKco1ZGpZO+mDEf/dtyAzrh6KnYJUxiqiSL1iYOWW4=";
+    };
+    buildInputs = [ ExtUtilsDepends TestRequires ];
+    propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
+    meta = {
+      description = "(DEPRECATED) Adding keywords to perl, in perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelFindPerl = buildPerlPackage {
+    pname = "Devel-FindPerl";
+    version = "0.016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Devel-FindPerl-0.016.tar.gz";
+      hash = "sha256-Q6K/L3h6PxuIEXkGMWKyqj58sET25eduxkZq6QqGETg=";
+    };
+    meta = {
+      description = "Find the path to your perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelGlobalDestruction = buildPerlPackage {
+    pname = "Devel-GlobalDestruction";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz";
+      hash = "sha256-NLil8pmRMRRo/mkTytq6df1dKws+47tB/ltT76uRVKs=";
+    };
+    propagatedBuildInputs = [ SubExporterProgressive ];
+    meta = {
+      description = "Provides function returning the equivalent of \${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls";
+      homepage = "https://metacpan.org/release/Devel-GlobalDestruction";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelGlobalPhase = buildPerlPackage {
+    pname = "Devel-GlobalPhase";
+    version = "0.003003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz";
+      hash = "sha256-jaMCL3ynHf2/SqYGmJRNcgCsMUn0c32KnJG/Q4f/MvU=";
+    };
+    meta = {
+      description = "Detect perl's global phase on older perls";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelHide = buildPerlPackage {
+    pname = "Devel-Hide";
+    version = "0.0015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0015.tar.gz";
+      hash = "sha256-/I2+t/fXWnjtSWseDgXPyZxorKs6LpLP8VXKXw+l31g=";
+    };
+    meta = {
+      description = "Forces the unavailability of specified Perl modules (for testing)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelNYTProf = buildPerlPackage {
+    pname = "Devel-NYTProf";
+    version = "6.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKEENAN/Devel-NYTProf-6.12.tar.gz";
+      hash = "sha256-qDtZheTalr24X1McFqtvPUkHGnM80JSqMPqF+2pLAsQ=";
+    };
+    propagatedBuildInputs = [ FileWhich JSONMaybeXS ];
+    buildInputs = [ CaptureTiny TestDifferences ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/*
+    '';
+    meta = {
+      description = "Powerful fast feature-rich Perl source code profiler";
+      homepage = "https://code.google.com/p/perl-devel-nytprof";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelOverloadInfo = buildPerlPackage {
+    pname = "Devel-OverloadInfo";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz";
+      hash = "sha256-IaGEFjuQ+R8G/8f13guWg1ZUaum0AKnXXFc8lYwkYiI=";
+    };
+    propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Introspect overloaded operators";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelOverrideGlobalRequire = buildPerlPackage {
+    pname = "Devel-OverrideGlobalRequire";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalRequire-0.001.tar.gz";
+      hash = "sha256-B5GJLeOuKSr0qU44LyHbHuiCEIdQMYUebqgsNBB4Xvk=";
+    };
+    meta = {
+      homepage = "https://metacpan.org/release/Devel-OverrideGlobalRequire";
+      description = "Override CORE::GLOBAL::require safely";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelPartialDump = buildPerlPackage {
+    pname = "Devel-PartialDump";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-PartialDump-0.20.tar.gz";
+      hash = "sha256-rvD/PqWalpGWfCiFEY/2ZxVghJVwicQ4j0nbZG/T2Qc=";
+    };
+    propagatedBuildInputs = [ ClassTiny SubExporter namespaceclean ];
+    buildInputs = [ TestSimple13 TestWarnings ];
+    meta = {
+      description = "Partial dumping of data structures, optimized for argument printing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelStackTrace = buildPerlPackage {
+    pname = "Devel-StackTrace";
+    version = "2.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz";
+      hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU=";
+    };
+    meta = {
+      description = "An object representing a stack trace";
+      homepage = "https://metacpan.org/release/Devel-StackTrace";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DevelSize = buildPerlPackage {
+    pname = "Devel-Size";
+    version = "0.83";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NW/NWCLARK/Devel-Size-0.83.tar.gz";
+      hash = "sha256-dXpn4KpZrhA+pcoJLL7MAlZE69wyZzFoj/q2+II+9LM=";
+    };
+    meta = {
+      description = "Perl extension for finding the memory usage of Perl variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelStackTraceAsHTML = buildPerlPackage {
+    pname = "Devel-StackTrace-AsHTML";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz";
+      hash = "sha256-YoPb4hl+LyAAnMS0SZl3Qhac3ZUb/ETLxuYsKpYtMUc=";
+    };
+    propagatedBuildInputs = [ DevelStackTrace ];
+    meta = {
+      description = "Displays stack trace in HTML";
+      homepage = "https://github.com/miyagawa/Devel-StackTrace-AsHTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DevelSymdump = buildPerlPackage {
+    pname = "Devel-Symdump";
+    version = "2.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz";
+      hash = "sha256-gm+BoQf1WSolFnZu1DvrR+EMyD7cnqSAkLAqNgQHdsA=";
+    };
+    meta = {
+      description = "Dump symbol names or the symbol table";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DigestCRC = buildPerlPackage {
+    pname = "Digest-CRC";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-0.24.tar.gz";
+      hash = "sha256-ugIqBbGtvsc3EsRvIz2Eif4Tobn8QKH8zu2bUvkN78E=";
+    };
+    meta = {
+      description = "Module that calculates CRC sums of all sorts";
+      license = with lib.licenses; [ publicDomain ];
+    };
+  };
+
+  DigestHMAC = buildPerlPackage {
+    pname = "Digest-HMAC";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz";
+      hash = "sha256-1ryBVqonXETXlLfBj0TNrEpYFAJFyVnmsZssODiwjtQ=";
+    };
+    meta = {
+      description = "Keyed-Hashing for Message Authentication";
+      homepage = "https://metacpan.org/release/Digest-HMAC";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DigestJHash = buildPerlPackage {
+    pname = "Digest-JHash";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Digest-JHash-0.10.tar.gz";
+      hash = "sha256-x0bPCoYaAECQJjzVTXco0MdZWgz5DLv9hAmzlu47AGM=";
+    };
+    meta = {
+      description = "Perl extension for 32 bit Jenkins Hashing Algorithm";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DigestMD2 = buildPerlPackage {
+    pname = "Digest-MD2";
+    version = "2.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz";
+      hash = "sha256-0Kq/SDTCCsQRvqQnxKMItZpfyqMnZ571KUwdaKtx7tM=";
+    };
+    meta = {
+      description = "Perl interface to the MD2 Algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  DigestMD4 = buildPerlPackage {
+    pname = "Digest-MD4";
+    version = "1.9";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/Digest-MD4-1.9.tar.gz";
+      hash = "sha256-ZlEQu6MkcPOY8xHNZGL9iXXXyDZ1/2dLwvbHtysMqqY=";
+    };
+    meta = {
+      description = "Perl interface to the MD4 Algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DigestMD5File = buildPerlPackage {
+    pname = "Digest-MD5-File";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMUEY/Digest-MD5-File-0.08.tar.gz";
+      hash = "sha256-rbQ6VOMmJ7T35XyWQObrBtC7edjqVM0L157TVoj7Ehg=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Perl extension for getting MD5 sums for files and urls";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DigestPerlMD5 = buildPerlPackage {
+    pname = "Digest-Perl-MD5";
+    version = "1.9";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DELTA/Digest-Perl-MD5-1.9.tar.gz";
+      hash = "sha256-cQDLoXEPRfsOkH2LGnvYyu81xkrNMdfyJa/1r/7s2bE=";
+    };
+    meta = {
+      description = "Perl Implementation of Rivest's MD5 algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DigestSHA1 = buildPerlPackage {
+    pname = "Digest-SHA1";
+    version = "2.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz";
+      hash = "sha256-aMHawhh0IfDrer9xRSoG8ZAYG4/Eso7e31uQKW+5Q8w=";
+    };
+    meta = {
+      description = "Perl interface to the SHA-1 algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DigestSHA3 = buildPerlPackage {
+    pname = "Digest-SHA3";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSHELOR/Digest-SHA3-1.05.tar.gz";
+      hash = "sha256-rfG5B5sreBdV5XBId6FDCl8SmX6oIgX9KWbJzEZahSI=";
+    };
+    meta = {
+      description = "Perl extension for SHA-3";
+      homepage = "https://metacpan.org/release/Digest-SHA3";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+      mainProgram = "sha3sum";
+    };
+  };
+
+  DigestSRI = buildPerlPackage {
+    pname = "Digest-SRI";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAUKEX/Digest-SRI-0.02.tar.gz";
+      hash = "sha256-VITN/m68OYwkZfeBx3w++1OKOULNSyDWiBjG//kHT8c=";
+    };
+    meta = {
+      description = "Calculate and verify Subresource Integrity hashes (SRI)";
+      homepage = "https://github.com/haukex/Digest-SRI";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  DirManifest = buildPerlModule {
+    pname = "Dir-Manifest";
+    version = "0.6.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Dir-Manifest-0.6.1.tar.gz";
+      hash = "sha256-hP9yJoc9XoZW7Hc0TAg4wVOp8BW0a2Dh/oeYuykn5QU=";
+    };
+    propagatedBuildInputs = [ Moo PathTiny ];
+    meta = {
+      description = "Treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs";
+      homepage = "https://metacpan.org/release/Dir-Manifest";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  DirSelf = buildPerlPackage {
+    pname = "Dir-Self";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAUKE/Dir-Self-0.11.tar.gz";
+      hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU=";
+    };
+    meta = {
+      description = "A __DIR__ constant for the directory your source file is in";
+      homepage = "https://github.com/mauke/Dir-Self";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DispatchClass = buildPerlPackage {
+    pname = "Dispatch-Class";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAUKE/Dispatch-Class-0.02.tar.gz";
+      hash = "sha256-1020Oxr56L1G/8Fb/k3x5dgQxCzoWC6TdRDcKiyhZYI=";
+    };
+    propagatedBuildInputs = [ ExporterTiny ];
+    meta = {
+      description = "Dispatch on the type (class) of an argument";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistCheckConflicts = buildPerlPackage {
+    pname = "Dist-CheckConflicts";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz";
+      hash = "sha256-6oRLlobJTWZtnURDIddkSQss3i+YXEFltMLHdmXK7cQ=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ModuleRuntime ];
+    meta = {
+      description = "Declare version conflicts for your dist";
+      homepage = "https://metacpan.org/release/Dist-CheckConflicts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZilla = buildPerlPackage {
+    pname = "Dist-Zilla";
+    version = "6.030";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.030.tar.gz";
+      hash = "sha256-xAa75oCelO23DKlDJMMBQz1sij375wsC3xLh3/LzsTA=";
+    };
+    buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
+    propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/dzil
+    '';
+    doCheck = false;
+    meta = {
+      description = "Distribution builder; installer not included!";
+      homepage = "https://dzil.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dzil";
+    };
+  };
+
+  DistZillaPluginBundleTestingMania = buildPerlModule {
+    pname = "Dist-Zilla-PluginBundle-TestingMania";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.25.tar.gz";
+      hash = "sha256-XguywA8UD9ZNy9EvpdPJ4kS5NWgor0ZRmLYjBGnUWRw=";
+    };
+    buildInputs = [ MooseAutobox TestCPANMeta TestPerlCritic TestVersion ];
+    propagatedBuildInputs = [ DistZillaPluginMojibakeTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestNoTabs DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion PodCoverageTrustPod ];
+    doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
+    meta = {
+      description = "Test your dist with every testing plugin conceivable";
+      homepage = "https://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginCheckChangeLog = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-CheckChangeLog";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FA/FAYLAND/Dist-Zilla-Plugin-CheckChangeLog-0.05.tar.gz";
+      hash = "sha256-sLNNbXC1bxlE0DxfDcO49vJEdMgW0HtlehFsaSwuBSo=";
+    };
+    propagatedBuildInputs = [ DistZilla ];
+    buildInputs = [ PathClass PodCoverage PodCoverageTrustPod PodMarkdown TestDeep TestException TestPod TestPodCoverage ];
+    meta = {
+      description = "Dist::Zilla with Changes check";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginMojibakeTests = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-MojibakeTests";
+    version = "0.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYP/Dist-Zilla-Plugin-MojibakeTests-0.8.tar.gz";
+      hash = "sha256-8f/1R+okqPekg0Bqcu1sQFjXRtna6WNyVQLdugJas4A=";
+    };
+    propagatedBuildInputs = [ DistZilla ];
+    buildInputs = [ TestMojibake ];
+    meta = {
+      description = "Author tests for source encoding";
+      homepage = "https://github.com/creaktive/Dist-Zilla-Plugin-MojibakeTests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginPodWeaver = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-PodWeaver";
+    version = "4.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-4.010.tar.gz";
+      hash = "sha256-Zm1S1UXUjSpn8VN63HTPOMdkofmVHQtiNiP2IGDLYj4=";
+    };
+    propagatedBuildInputs = [ DistZilla PodElementalPerlMunger PodWeaver ];
+    meta = {
+      description = "Weave your Pod together from configuration and Dist::Zilla";
+      homepage = "https://github.com/rjbs/Dist-Zilla-Plugin-PodWeaver";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginReadmeAnyFromPod = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-ReadmeAnyFromPod";
+    version = "0.163250";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeAnyFromPod-0.163250.tar.gz";
+      hash = "sha256-1E8nmZIveLKnlh7YkSPhG913q/6FuiBA2CuArXLtE7w=";
+    };
+    buildInputs = [ TestDeep TestDifferences TestException TestFatal TestMost TestRequires TestSharedFork TestWarn ];
+    propagatedBuildInputs = [ DistZillaRoleFileWatcher MooseXHasSugar PodMarkdownGithub ];
+    meta = {
+      description = "Automatically convert POD to a README in any format for Dist::Zilla";
+      homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeAnyFromPod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginReadmeMarkdownFromPod = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
+    version = "0.141140";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeMarkdownFromPod-0.141140.tar.gz";
+      hash = "sha256-nKrXs2bqWRGa1zzdmdzdU/h3pRW9AWT8KLM5wBc5qAE=";
+    };
+    buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
+    propagatedBuildInputs = [ DistZillaPluginReadmeAnyFromPod ];
+    meta = {
+      description = "Automatically convert POD to a README.mkdn for Dist::Zilla";
+      homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestCPANChanges = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-Test-CPAN-Changes";
+    version = "0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Changes-0.012.tar.gz";
+      hash = "sha256-IVs6XDxYyLqw6icTBEG72uxzfuzADwZwk39gi9v2SAY=";
+    };
+    buildInputs = [ CPANChanges TestDeep ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Release tests for your changelog";
+      homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestCPANMetaJSON = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-CPAN-Meta-JSON";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Meta-JSON-0.004.tar.gz";
+      hash = "sha256-Clc+HVZAN05u5NVtT7lKPGfU511Ss93q5wz6ZFDhryI=";
+    };
+    buildInputs = [ MooseAutobox TestCPANMetaJSON TestDeep ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Validate your CPAN META.json files";
+      homepage = "https://p3rl.org/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DistZillaPluginTestCompile = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-Compile";
+    version = "2.058";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Compile-2.058.tar.gz";
+      hash = "sha256-0M+T5SXxAuyg9/OWcSTS5Z0KIS9zjOVMHd2R3aJo2Io=";
+    };
+    buildInputs = [ CPANMetaCheck ModuleBuildTiny TestDeep TestMinimumVersion TestWarnings ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Assert that your Perl files compile OK";
+      homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Compile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestDistManifest = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-DistManifest";
+    version = "2.000006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-DistManifest-2.000006.tar.gz";
+      hash = "sha256-Wj2kW/yYzjhf7X3BZTp4kGEfC57xVsABOueFdPiWYH0=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestDistManifest TestOutput ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Author test that validates a package MANIFEST";
+      homepage = "https://github.com/jawnsy/Test-DistManifest";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestEOL = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-EOL";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-EOL-0.19.tar.gz";
+      hash = "sha256-orlZx6AszDLt1D7lhgmHVhPv1Ty8u9YDmeF/FUZ6Qzg=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestEOL TestWarnings ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Check the correct line endings in your project";
+      homepage = "https://github.com/karenetheridge/Test-EOL";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestKwalitee = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-Kwalitee";
+    version = "2.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Kwalitee-2.12.tar.gz";
+      hash = "sha256-vdvPzHXo6y0tnIYRVS8AzcGwUfDwB5hiO4aS/1Awry8=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestKwalitee ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Test the Kwalitee of a distribution before you release it";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestMinimumVersion = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-MinimumVersion";
+    version = "2.000010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-MinimumVersion-2.000010.tar.gz";
+      hash = "sha256-uLcfS2S2ifS2R6OofWqqrkWmiJLTXja6qXb2BXNjcPs=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestMinimumVersion TestOutput ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Release tests for minimum required versions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestNoTabs = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-NoTabs";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz";
+      hash = "sha256-G2EMQpFpKbtwFDw2t55XF1JbDp3njj1GCal4ZCtk0KQ=";
+    };
+    propagatedBuildInputs = [ DistZilla ];
+    buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ];
+    meta = {
+      description = "Check the presence of tabs in your project";
+      homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestPerlCritic = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-Perl-Critic";
+    version = "3.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Perl-Critic-3.001.tar.gz";
+      hash = "sha256-klC1nV3Brkxok7p4O9PwUTGxT/npGvtFVTFPVSaKOCU=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestPerlCritic ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Tests to check your code against best practices";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestPodLinkCheck = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-Test-Pod-LinkCheck";
+    version = "1.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Dist-Zilla-Plugin-Test-Pod-LinkCheck-1.004.tar.gz";
+      hash = "sha256-Ml0jbaCUA4jSqobsXBMmUWtK1Fre+Oek+Du5HV7hVJA=";
+    };
+    # buildInputs = [ TestPodLinkCheck ];
+    propagatedBuildInputs = [ DistZilla ];
+    buildInputs = [ TestPodLinkCheck ];
+    meta = {
+      description = "Add release tests for POD links";
+      homepage = "https://github.com/rwstauner/Dist-Zilla-Plugin-Test-Pod-LinkCheck";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestPortability = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-Portability";
+    version = "2.001001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Portability-2.001001.tar.gz";
+      hash = "sha256-07kxVx4VoidI6BJwmq/aclEKdMAA/AaiyrWHVYEACyA=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestPortabilityFiles TestWarnings ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Author tests for portability";
+      homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Portability";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestSynopsis = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-Test-Synopsis";
+    version = "2.000007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-Synopsis-2.000007.tar.gz";
+      hash = "sha256-59XiUwzYpbtarfPhZpplOqqW4yyte9a5yrprQlzqtWM=";
+    };
+    buildInputs = [ TestDeep TestOutput TestSynopsis ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Release tests for synopses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestUnusedVars = buildPerlModule {
+    pname = "Dist-Zilla-Plugin-Test-UnusedVars";
+    version = "2.001001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-UnusedVars-2.001001.tar.gz";
+      hash = "sha256-df7W0NzCv0B/8nrJ4W7yFTRnFEuYbPovmPhpuqWNdkc=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestOutput TestVars ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Release tests for unused variables";
+      homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  DistZillaPluginTestVersion = buildPerlPackage {
+    pname = "Dist-Zilla-Plugin-Test-Version";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Dist-Zilla-Plugin-Test-Version-1.09.tar.gz";
+      hash = "sha256-ckBQhzG8G/bfrXcB7GVFChjvkkWlIasm69ass5qevhc=";
+    };
+    buildInputs = [ Filechdir TestDeep TestEOL TestNoTabs TestScript TestVersion ];
+    propagatedBuildInputs = [ DistZilla ];
+    meta = {
+      description = "Release Test::Version tests";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  DistZillaRoleFileWatcher = buildPerlModule {
+    pname = "Dist-Zilla-Role-FileWatcher";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz";
+      hash = "sha256-/jpEuVhtrxJ3/Lu69yFrAs4j77vWlPDfEbf3U0S+TpY=";
+    };
+    propagatedBuildInputs = [ DistZilla SafeIsa ];
+    buildInputs = [ ModuleBuildTiny TestDeep TestFatal ];
+    meta = {
+      description = "Receive notification when something changes a file's contents";
+      homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Dotenv = buildPerlPackage {
+    pname = "Dotenv";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz";
+      hash = "sha256-BMenzEURYX16cMTKQQ0QcH3EliSM2tICQK4kIiMhJFQ=";
+    };
+    buildInputs = [ TestCPANMeta TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ PathTiny ];
+    meta = {
+      description = "Support for dotenv in Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Dumbbench = buildPerlPackage {
+    pname = "Dumbbench";
+    version = "0.503";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Dumbbench-0.503.tar.gz";
+      hash = "sha256-0BYBmoGDE+cERk8oDPZB72Dodx0HeRtZuZ4XoeyAH6k=";
+    };
+    propagatedBuildInputs = [ CaptureTiny ClassXSAccessor DevelCheckOS NumberWithError StatisticsCaseResampling ];
+    meta = {
+      description = "More reliable benchmarking with the least amount of thinking";
+      homepage = "https://github.com/briandfoy/dumbbench";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dumbbench";
+    };
+  };
+
+  EmailAbstract = buildPerlPackage {
+    pname = "Email-Abstract";
+    version = "3.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.010.tar.gz";
+      hash = "sha256-jBL2i1l0yvyZ10lCq+/IWXGTA1qv0nYxKOaqr8pLftY=";
+    };
+    propagatedBuildInputs = [ EmailSimple MROCompat ModulePluggable ];
+    meta = {
+      description = "Unified interface to mail representations";
+      homepage = "https://github.com/rjbs/Email-Abstract";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailAddress = buildPerlPackage {
+    pname = "Email-Address";
+    version = "1.913";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.913.tar.gz";
+      hash = "sha256-avtUH232tTXM92QtNhrhjXqVo/k6zhvFNz9kwkEMpa8=";
+    };
+    meta = {
+      description = "RFC 2822 Address Parsing and Creation";
+      homepage = "https://github.com/rjbs/Email-Address";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailAddressList = buildPerlPackage {
+    pname = "Email-Address-List";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Email-Address-List-0.06.tar.gz";
+      hash = "sha256-MFuUx3gBHO5w2fIVFNkumF+p3Mu4TGR5jwwfCyTrhw4=";
+    };
+    buildInputs = [ JSON ];
+    propagatedBuildInputs = [ EmailAddress ];
+    meta = {
+      description = "RFC close address list parsing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailAddressXS = buildPerlPackage {
+    pname = "Email-Address-XS";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.05.tar.gz";
+      hash = "sha256-FRC38Q1nIBA3zVDSLJ1rJu7KVe3tpM20a7yiflmk6hY=";
+    };
+    meta = {
+      description = "Parse and format RFC 5322 email addresses and groups";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailDateFormat = buildPerlPackage {
+    pname = "Email-Date-Format";
+    version = "1.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Date-Format-1.008.tar.gz";
+      hash = "sha256-Qyt8g/+IdJrxKAA/UlfFc67BpGNBjbkO0ihDy7wli08=";
+    };
+    meta = {
+      description = "Produce RFC 2822 date strings";
+      homepage = "https://github.com/rjbs/Email-Date-Format";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailReply = buildPerlPackage {
+    pname = "Email-Reply";
+    version = "1.204";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Reply-1.204.tar.gz";
+      hash = "sha256-uk/YCsUBfW0TLgNYx4aw7NHHrcvu5cGfs9opZHkaVvA=";
+    };
+    propagatedBuildInputs = [ EmailAbstract EmailAddress EmailMIME ];
+    meta = {
+      description = "Reply to an email message";
+      homepage = "https://github.com/Perl-Email-Project/Email-Reply";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailMessageID = buildPerlPackage {
+    pname = "Email-MessageID";
+    version = "1.408";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.408.tar.gz";
+      hash = "sha256-Hz1bT/Cxx7OemsfDGPs3rc0LrJVWA2VGSU0U8G3FZDw=";
+    };
+    meta = {
+      description = "Generate world unique message-ids";
+      homepage = "https://github.com/rjbs/Email-MessageID";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailMIME = buildPerlPackage {
+    pname = "Email-MIME";
+    version = "1.953";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.953.tar.gz";
+      hash = "sha256-mPsGeFBpmiJLq8NI8c7+MNdExg2okC56XOnYt+c99zU=";
+    };
+    propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ];
+    meta = {
+      description = "Easy MIME message handling";
+      homepage = "https://github.com/rjbs/Email-MIME";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailMIMEAttachmentStripper = buildPerlPackage {
+    pname = "Email-MIME-Attachment-Stripper";
+    version = "1.317";
+    buildInputs = [ CaptureTiny ];
+    propagatedBuildInputs = [ EmailAbstract EmailMIME ];
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Attachment-Stripper-1.317.tar.gz";
+      hash = "sha256-3LmLCdw+j3V+w4gqQjRUgQi7LRLjz635WibO84Gp54k=";
+    };
+    meta = {
+      description = "Strip the attachments from an email";
+      homepage = "https://github.com/rjbs/Email-MIME-Attachment-Stripper";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailMIMEContentType = buildPerlPackage {
+    pname = "Email-MIME-ContentType";
+    version = "1.028";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.028.tar.gz";
+      hash = "sha256-55UCRkM/ftbD5P1N8iJ+DyNBE3w8qxmJAY/DcPWBRcQ=";
+    };
+    propagatedBuildInputs = [ TextUnidecode ];
+    meta = {
+      description = "Parse and build a MIME Content-Type or Content-Disposition Header";
+      homepage = "https://github.com/rjbs/Email-MIME-ContentType";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailMIMEEncodings = buildPerlPackage {
+    pname = "Email-MIME-Encodings";
+    version = "1.317";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Encodings-1.317.tar.gz";
+      hash = "sha256-SppBZxqdFQTE2iQb5BmpUD+jSGJiUm7bgeyp4uvqC68=";
+    };
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      description = "A unified interface to MIME encoding and decoding";
+      homepage = "https://github.com/rjbs/Email-MIME-Encodings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailSend = buildPerlPackage {
+    pname = "Email-Send";
+    version = "2.201";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.201.tar.gz";
+      hash = "sha256-S77JM1WNfMm4FSutht0xPeJ3ohqJtOqD2E5hWH6V28Y=";
+    };
+    propagatedBuildInputs = [ EmailAbstract EmailAddress ReturnValue ];
+    buildInputs = [ MIMETools MailTools ];
+    meta = {
+      description = "Simply Sending Email";
+      homepage = "https://github.com/rjbs/Email-Send";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailOutlookMessage = buildPerlModule {
+    pname = "Email-Outlook-Message";
+    version = "0.921";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MV/MVZ/Email-Outlook-Message-0.921.tar.gz";
+      hash = "sha256-+0q+6hTNpRweYLwhHPlSG7uq50uEEYym1Y8KciNoA4g=";
+    };
+    propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ];
+    preCheck = "rm t/internals.t t/plain_jpeg_attached.t"; # these tests expect EmailMIME version 1.946 and fail with 1.949 (the output difference in benign)
+    meta = {
+      homepage = "https://www.matijs.net/software/msgconv/";
+      description = "A .MSG to mbox converter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ peterhoeg ];
+      mainProgram = "msgconvert";
+    };
+  };
+
+  EmailSender = buildPerlPackage {
+    pname = "Email-Sender";
+    version = "2.600";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Sender-2.600.tar.gz";
+      hash = "sha256-7MZ10DDXnZpPsGRWfqiFxmsXw4Yjea0w+CBaKBzY7ik=";
+    };
+    buildInputs = [ CaptureTiny ];
+    propagatedBuildInputs = [ EmailAbstract EmailAddressXS EmailSimple ModuleRuntime Moo MooXTypesMooseLike SubExporter Throwable TryTiny ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postPatch = ''
+      patchShebangs --build util
+    '';
+    preCheck = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang util/sendmail
+    '';
+    meta = {
+      description = "A library for sending email";
+      homepage = "https://github.com/rjbs/Email-Sender";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailSimple = buildPerlPackage {
+    pname = "Email-Simple";
+    version = "2.218";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.218.tar.gz";
+      hash = "sha256-Lc4daP3pnVPbnKQ+IRtpsWm6Lvrs+HpVyzOpM2BHyW0=";
+    };
+    propagatedBuildInputs = [ EmailDateFormat ];
+    meta = {
+      description = "Simple parsing of RFC2822 message format and headers";
+      homepage = "https://github.com/rjbs/Email-Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailStuffer = buildPerlPackage {
+    pname = "Email-Stuffer";
+    version = "0.020";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Stuffer-0.020.tar.gz";
+      hash = "sha256-Ch77fy3t05BSsSb3GMotO1hFpBI6OTkv2d+gx25gV8c=";
+    };
+    buildInputs = [ Moo TestFatal ];
+    propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ];
+    meta = {
+      description = "A more casual approach to creating and sending Email:: emails";
+      homepage = "https://github.com/rjbs/Email-Stuffer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  EmailValid = buildPerlPackage {
+    pname = "Email-Valid";
+    version = "1.203";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-1.203.tar.gz";
+      hash = "sha256-ICG/ux4sJ55evYRoDllvlzRNQphQsjIme3b0kDdSK5M=";
+    };
+    propagatedBuildInputs = [ IOCaptureOutput MailTools NetDNS NetDomainTLD ];
+    doCheck = false;
+    meta = {
+      description = "Check validity of Internet email addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EmailValidLoose = buildPerlPackage {
+    pname = "Email-Valid-Loose";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Email-Valid-Loose-0.05.tar.gz";
+      hash = "sha256-5xjnbt3uJAJRyZnhOcjL5vLMgBktpa+HXL0S+oq5Olk=";
+    };
+    propagatedBuildInputs = [ EmailValid ];
+    meta = {
+      description = "Email::Valid which allows dot before at mark";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Encode = buildPerlPackage {
+    pname = "Encode";
+    version = "3.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.19.tar.gz";
+      hash = "sha256-kWP4SO72nk1MyIODl/CGH9nqft4AERfb2WlPjZUFLvU=";
+    };
+    meta = {
+      description = "Character encodings in Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "piconv";
+    };
+  };
+
+  EncodeBase32GMP = buildPerlPackage {
+    pname = "Encode-Base32-GMP";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JW/JWANG/Encode-Base32-GMP-0.02.tar.gz";
+      hash = "sha256-RUIG+n2C5V4DJ0aYcyNBtgcVDwDo4q7FjzUyagMIMtw=";
+    };
+    buildInputs = [ TestBase ];
+    propagatedBuildInputs = [ MathGMPz ];
+    meta = {
+      description = "High speed Base32 encoding using GMP with BigInt and MD5 support";
+      homepage = "https://metacpan.org/release/Encode-Base32-GMP";
+      license = with lib.licenses; [ mit ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  EncodeDetect = buildPerlModule {
+    pname = "Encode-Detect";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-1.01.tar.gz";
+      hash = "sha256-g02JOqfbbOPxWK+9DkMtbtFaJ24JQNsKdL4T/ZxLu/E=";
+    };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
+    meta = {
+      description = "An Encode::Encoding subclass that detects the encoding of data";
+      license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora
+    };
+  };
+
+
+  EncodeEUCJPASCII = buildPerlPackage {
+    pname = "Encode-EUCJPASCII";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz";
+      hash = "sha256-+ZjTTVX9nILPkQeGoESNHt+mC/aOLCMGckymfGKd6GE=";
+    };
+    outputs = [ "out" ];
+    meta = {
+      description = "EucJP-ascii - An eucJP-open mapping";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EncodeHanExtra = buildPerlPackage {
+    pname = "Encode-HanExtra";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz";
+      hash = "sha256-H9SwbK2nCFgAOvFT+UyGOzuV8uPQO6GNBFGoHVHbRDo=";
+    };
+    meta = {
+      description = "Extra sets of Chinese encodings";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  EncodeIMAPUTF7 = buildPerlPackage {
+    pname = "Encode-IMAPUTF7";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMAKHOLM/Encode-IMAPUTF7-1.05.tar.gz";
+      hash = "sha256-RwMF3cN0g8/o08FtE3cKKAEfYAv1V6y4w+B3OZl8N+E=";
+    };
+    nativeCheckInputs = [ TestNoWarnings ];
+    meta = {
+      description = "IMAP modified UTF-7 encoding";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EncodeJIS2K = buildPerlPackage {
+    pname = "Encode-JIS2K";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.03.tar.gz";
+      hash = "sha256-HshNcts53rTa1vypWs/MIQM/RaJNNHwg+aGmlolsNcw=";
+    };
+    outputs = [ "out" ];
+    meta = {
+      description = "JIS X 0212 (aka JIS 2000) Encodings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EncodeLocale = buildPerlPackage {
+    pname = "Encode-Locale";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz";
+      hash = "sha256-F2+gJ3H1QqTvsdvCpMko6PQ5G/QHhHO9YEDY8RrbDsE=";
+    };
+    preCheck = if stdenv.isCygwin then ''
+      sed -i"" -e "s@plan tests => 13@plan tests => 10@" t/env.t
+      sed -i"" -e "s@ok(env(\"\\\x@#ok(env(\"\\\x@" t/env.t
+      sed -i"" -e "s@ok(\$ENV{\"\\\x@#ok(\$ENV{\"\\\x@" t/env.t
+    '' else null;
+    meta = {
+      description = "Determine the locale encoding";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EncodeNewlines = buildPerlPackage {
+    pname = "Encode-Newlines";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz";
+      hash = "sha256-NLMfysjI/cghubNDSoLXEzIT73TM/yVf4UioavloN74=";
+    };
+    meta = {
+      description = "Normalize line ending sequences";
+      homepage = "https://github.com/neilb/Encode-Newlines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EncodePunycode = buildPerlPackage {
+    pname = "Encode-Punycode";
+    version = "1.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFAERBER/Encode-Punycode-1.002.tar.gz";
+      hash = "sha256-yjrO7NuAtdRaoQ4c3o/sTpC0+MkYnHUE3YZY8HH3cZQ=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    propagatedBuildInputs = [ NetIDNEncode ];
+    meta = {
+      description = "Encode plugin for Punycode (RFC 3492)";
+      homepage = "https://search.cpan.org/dist/Encode-Punycode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  enum = buildPerlPackage {
+    pname = "enum";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/enum-1.12.tar.gz";
+      hash = "sha256-aaeokc04iO2LAsXpmh9In5KmLsNRwLx4lP1719FEfqk=";
+    };
+    meta = {
+      description = "C style enumerated types and bitmask flags in Perl";
+      homepage = "https://github.com/neilb/enum";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Env = buildPerlPackage {
+    pname = "Env";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/Env-1.04.tar.gz";
+      hash = "sha256-2Uo9QS3yRq/cMaIZnL2K6RUWej9GhPe3AUzhIAJR67A=";
+    };
+    meta = {
+      description = "Perl module that imports environment variables as scalars or arrays";
+      homepage = "https://search.cpan.org/dist/Env";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EnvPath = buildPerlPackage {
+    pname = "Env-Path";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz";
+      hash = "sha256-JEvwk3mIMqfYQdnuW0sOa0iZlu72NUHlBQkao0qQFeI=";
+    };
+    meta = {
+      description = "Advanced operations on path variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "envpath";
+    };
+  };
+
+  EnvSanctify = buildPerlPackage {
+    pname = "Env-Sanctify";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Env-Sanctify-1.12.tar.gz";
+      hash = "sha256-IOO1ZhwmVHSmnyiZR46ye5RkklWGu2tvtmYSnlgoMl8=";
+    };
+    meta = {
+      description = "Lexically scoped sanctification of %ENV";
+      homepage = "https://github.com/bingos/env-sanctify";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ENVUtil = buildPerlPackage {
+    pname = "ENV-Util";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GARU/ENV-Util-0.03.tar.gz";
+      hash = "sha256-B1574ehSxD6wiGYvr978FS9O9WyEPB4F2QDaGQb3P60=";
+    };
+    meta = {
+      description = "Parse prefixed environment variables and dotnev (.env) files into Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Error = buildPerlModule {
+    pname = "Error";
+    version = "0.17029";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Error-0.17029.tar.gz";
+      hash = "sha256-GiP3kTAyrtbUtoMhNzo4mcpmWQ9HJzkaCR7BnJW/etw=";
+    };
+    meta = {
+      description = "Error/exception handling in an OO-ish way";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EV = buildPerlPackage {
+    pname = "EV";
+    version = "4.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.34.tar.gz";
+      hash = "sha256-EhFoPc57Z3H0q3EMwVNxK913umFXoTKU0LtzSR/QZWA=";
+    };
+    buildInputs = [ CanaryStability ];
+    propagatedBuildInputs = [ commonsense ];
+    meta = {
+      description = "Perl interface to libev, a high performance full-featured event loop";
+      license = with lib.licenses; [ gpl1Plus ];
+    };
+  };
+
+  EvalClosure = buildPerlPackage {
+    pname = "Eval-Closure";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz";
+      hash = "sha256-6glE8vXsmNiVvvbVA+bko3b+pjg6a8ZMdnDUb/IhjK0=";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    meta = {
+      description = "Safely and cleanly create closures via string eval";
+      homepage = "https://metacpan.org/release/Eval-Closure";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  EvalSafe = buildPerlPackage rec {
+    pname = "Eval-Safe";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATHIAS/Eval-Safe/Eval-Safe-${version}.tar.gz";
+      hash = "sha256-VaUsIz4troYRP58Zs09hftz8hBb5vs5nEme9GBGxIRE=";
+    };
+    outputs = [ "out" ];
+    meta = with lib; {
+      description = "Simplified safe evaluation of Perl code";
+      homepage = "https://github.com/mkende/perl-eval-safe";
+      license = licenses.mit;
+      maintainers = with maintainers; [ figsoda ];
+    };
+  };
+
+  ExcelWriterXLSX = buildPerlPackage {
+    pname = "Excel-Writer-XLSX";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Excel-Writer-XLSX-1.11.tar.gz";
+      hash = "sha256-yzMA0jEZxpiGTvC3PBmnLLpxi/wG7QBzWaUxP5YcwqA=";
+    };
+    propagatedBuildInputs = [ ArchiveZip ];
+    meta = {
+      description = "Create a new file in the Excel 2007+ XLSX format";
+      homepage = "https://jmcnamara.github.com/excel-writer-xlsx";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "extract_vba";
+    };
+  };
+
+  ExceptionBase = buildPerlModule {
+    pname = "Exception-Base";
+    version = "0.2501";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.2501.tar.gz";
+      hash = "sha256-VyPdePSsC00mKgXqRq9mPqANgJay6cCkNRXCEHYOHnU=";
+    };
+    buildInputs = [ TestUnitLite ];
+    patches = [
+      ../development/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch
+    ];
+    meta = {
+      description = "Lightweight exceptions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExceptionClass = buildPerlPackage {
+    pname = "Exception-Class";
+    version = "1.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz";
+      hash = "sha256-VIKnfvAnyh+fOeH0jFWDVulUk2/I+73ubIEcUScBskk=";
+    };
+    propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
+    meta = {
+      description = "An Exception Object Class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExceptionDied = buildPerlModule {
+    pname = "Exception-Died";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Died-0.06.tar.gz";
+      hash = "sha256-NcRAvCr9TVfiQaDbG05o2dUpXfLbjXidObX0UQWXirU=";
+    };
+    buildInputs = [ TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionBase constantboolean ];
+    meta = {
+      description = "Convert simple die into real exception object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExceptionWarning = buildPerlModule {
+    pname = "Exception-Warning";
+    version = "0.0401";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Warning-0.0401.tar.gz";
+      hash = "sha256-ezacps61se3ytdX4cOl0x8k+kwNnw5o5AL/2CZce06g=";
+    };
+    buildInputs = [ TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionBase ];
+    meta = {
+      description = "Convert simple warn into real exception object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExporterDeclare = buildPerlModule {
+    pname = "Exporter-Declare";
+    version = "0.114";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Exporter-Declare-0.114.tar.gz";
+      hash = "sha256-S9cNbKdvb2un5MYY1KyTuFk6WPEjPMvhixD18gTx1OQ=";
+    };
+    buildInputs = [ FennecLite TestException ];
+    propagatedBuildInputs = [ MetaBuilder aliased ];
+    meta = {
+      description = "Exporting done right";
+      homepage = "http://open-exodus.net/projects/Exporter-Declare";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExporterLite = buildPerlPackage {
+    pname = "Exporter-Lite";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Exporter-Lite-0.09.tar.gz";
+      hash = "sha256-edixT9UBOSLGPoUPFb9RBZ8lAkBFNetmkO8jYSwqGY0=";
+    };
+    meta = {
+      description = "Lightweight exporting of functions and variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExporterTiny = buildPerlPackage {
+    pname = "Exporter-Tiny";
+    version = "1.006002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006002.tar.gz";
+      hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40=";
+    };
+    meta = {
+      description = "An exporter with the features of Sub::Exporter but only core dependencies";
+      homepage = "https://metacpan.org/release/Exporter-Tiny";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Expect = buildPerlPackage {
+    pname = "Expect";
+    version = "1.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JACOBY/Expect-1.35.tar.gz";
+      hash = "sha256-CdknYUId7NSVhTEDN5FlqZ779FLHIPMCd2As8jZ5/QY=";
+    };
+    propagatedBuildInputs = [ IOTty ];
+    meta = {
+      description = "Automate interactions with command line programs that expose a text terminal interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExpectSimple = buildPerlPackage {
+    pname = "Expect-Simple";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DJ/DJERIUS/Expect-Simple-0.04.tar.gz";
+      hash = "sha256-r4O5IYXmQmlZE/8Tjv6Bl1LoCFd1mZber8qrJwCtXbU=";
+    };
+    propagatedBuildInputs = [ Expect ];
+    meta = {
+      description = "Wrapper around the Expect module";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsCChecker = buildPerlModule {
+    pname = "ExtUtils-CChecker";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/ExtUtils-CChecker-0.11.tar.gz";
+      hash = "sha256-EXc2Z343/GEfW3Y3TX+VLhlw64Dh9q1RUNUW565TG/U=";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Configure-time utilities for using C headers,";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsConfig = buildPerlPackage {
+    pname = "ExtUtils-Config";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz";
+      hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
+    };
+    meta = {
+      description = "A wrapper for perl's configuration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsConstant = buildPerlPackage {
+    pname = "ExtUtils-Constant";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NW/NWCLARK/ExtUtils-Constant-0.25.tar.gz";
+      hash = "sha256-aTPQ6WO2IoHvdWEGjmrsrIxKwrR2srugmrC5D7rJ11c=";
+    };
+    patches = [
+      ../development/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch
+    ];
+    meta = {
+      description = "Generate XS code to import C header constants";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsCppGuess = buildPerlPackage {
+    pname = "ExtUtils-CppGuess";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz";
+      hash = "sha256-yLNiuGAXKkB2rO4AQ49SuGRk8sUAcCz891J4Ef+aaD4=";
+    };
+    doCheck = !stdenv.isDarwin;
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
+    propagatedBuildInputs = [ CaptureTiny ];
+    buildInputs = [ ModuleBuild ];
+    meta = {
+      description = "Guess C++ compiler and flags";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsDepends = buildPerlPackage {
+    pname = "ExtUtils-Depends";
+    version = "0.8001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-0.8001.tar.gz";
+      hash = "sha256-ZzxDh+eJbBohYJnB+7P6qndj1/X5WhpWpgoqKQbBMcU=";
+    };
+    meta = {
+      description = "Easily build XS extensions that depend on XS extensions";
+      license = with lib.licenses; [ artistic1 gpl1Plus artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsF77 = buildPerlPackage rec {
+    pname = "ExtUtils-F77";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-F77-1.26.tar.gz";
+      hash = "sha256-q90dPuxMpPyuXxUrQLyqhi48gG4H5KqRI3V/aqSLndY=";
+    };
+    buildInputs = [ pkgs.gfortran ];
+    propagatedBuildInputs = [ FileWhich ];
+    meta = {
+      description = "A simple interface to F77 libs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsHelpers = buildPerlPackage {
+    pname = "ExtUtils-Helpers";
+    version = "0.026";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz";
+      hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY=";
+    };
+    meta = {
+      description = "Various portability utilities for module builders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsInstall = buildPerlPackage {
+    pname = "ExtUtils-Install";
+    version = "2.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-Install-2.22.tar.gz";
+      hash = "sha256-M3Jbr77Tgp1hPkxlHC4a0SBnDH0qxc8F+DdX/Jddb/I=";
+    };
+    meta = {
+      description = "Install files from here to there";
+      homepage = "https://metacpan.org/release/ExtUtils-Install";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsInstallPaths = buildPerlPackage {
+    pname = "ExtUtils-InstallPaths";
+    version = "0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz";
+      hash = "sha256-hHNeMDe6sf3/o8JQhWetQSp4XJFZnbPBJZOlCh3UNO0=";
+    };
+    propagatedBuildInputs = [ ExtUtilsConfig ];
+    meta = {
+      description = "Build.PL install path logic made easy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsLibBuilder = buildPerlModule {
+    pname = "ExtUtils-LibBuilder";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.08.tar.gz";
+      hash = "sha256-xRFx4G3lMDnwvKHZemRx7DeUH/Weij0csXDr3SVztdI=";
+    };
+    perlPreHook = "export LD=$CC";
+    meta = {
+      description = "A tool to build C libraries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsMakeMaker = buildPerlPackage {
+    pname = "ExtUtils-MakeMaker";
+    version = "7.70";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.70.tar.gz";
+      hash = "sha256-8Qi9RkINLwDSQoJfhlsPaIUQhJJJJPkiYdaExJ4+enQ=";
+    };
+    meta = {
+      description = "Create a module Makefile";
+      homepage = "https://metacpan.org/release/ExtUtils-MakeMaker";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "instmodsh";
+    };
+  };
+
+  ExtUtilsMakeMakerCPANfile = buildPerlPackage {
+    pname = "ExtUtils-MakeMaker-CPANfile";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz";
+      hash = "sha256-LAd2B9SwoQhWkHTf926BaGWQYq2jpq94swzKDUD44nU=";
+    };
+    propagatedBuildInputs = [ ModuleCPANfile ];
+    meta = {
+      description = "Cpanfile support for EUMM";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsPkgConfig = buildPerlPackage {
+    pname = "ExtUtils-PkgConfig";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz";
+      hash = "sha256-u+rO2ZXX2NEM/FGjpaZtpBzrK8BP7cq1DhDmMA6AHG4=";
+    };
+    nativeBuildInputs = [ buildPackages.pkg-config ];
+    propagatedBuildInputs = [ pkgs.pkg-config ];
+    postPatch = ''
+      # no pkg-config binary when cross-compiling so the check fails
+      substituteInPlace Makefile.PL \
+        --replace "pkg-config" "$PKG_CONFIG"
+    '';
+    doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH
+    meta = {
+      description = "Simplistic interface to pkg-config";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  # From CPAN[1]:
+  #   This module exists merely as a compatibility wrapper around
+  #   ExtUtils::Typemaps. In a nutshell, ExtUtils::Typemap was renamed to
+  #   ExtUtils::Typemaps because the Typemap directory in lib/ could collide with
+  #   the typemap file on case-insensitive file systems.
+  #
+  #   The ExtUtils::Typemaps module is part of the ExtUtils::ParseXS distribution
+  #   and ships with the standard library of perl starting with perl version
+  #   5.16.
+  #
+  # [1] https://metacpan.org/pod/release/SMUELLER/ExtUtils-Typemap-1.00/lib/ExtUtils/Typemap.pm:
+  ExtUtilsTypemap = buildPerlPackage {
+    pname = "ExtUtils-Typemap";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemap-1.00.tar.gz";
+      hash = "sha256-sbAVdy27BouToPb/oC9dlIIjZeYBisXtK8U8pmkHH8c=";
+    };
+    meta = {
+      description = "Read/Write/Modify Perl/XS typemap files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsTypemapsDefault = buildPerlModule {
+    pname = "ExtUtils-Typemaps-Default";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemaps-Default-1.05.tar.gz";
+      hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4=";
+    };
+    meta = {
+      description = "A set of useful typemaps";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsXSBuilder = buildPerlPackage {
+    pname = "ExtUtils-XSBuilder";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRICHTER/ExtUtils-XSBuilder-0.28.tar.gz";
+      hash = "sha256-jM7ThuPVRMXsLes67QVbcuvPwuqabIB9qHxCRScv6Ao=";
+    };
+    propagatedBuildInputs = [ ParseRecDescent TieIxHash ];
+    meta = {
+      description = "Automatic Perl XS glue code generation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ExtUtilsXSpp = buildPerlModule {
+    pname = "ExtUtils-XSpp";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-XSpp-0.18.tar.gz";
+      hash = "sha256-kXatZGcp470nz3q/EUvt00JL/xumEYXPx9VPOpIjqP8=";
+    };
+    buildInputs = [ TestBase TestDifferences ];
+    meta = {
+      description = "XS for C++";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "xspp";
+    };
+  };
+
+  FatalException = buildPerlModule {
+    pname = "Fatal-Exception";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz";
+      hash = "sha256-KAldIT+zKknJwjKmhEg375Rdua1unmHkULTfTQjj7k8=";
+    };
+    buildInputs = [ ExceptionWarning TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionDied ];
+    meta = {
+      description = "Thrown when core function has a fatal error";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FCGI = buildPerlPackage {
+    pname = "FCGI";
+    version = "0.82";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/FCGI-0.82.tar.gz";
+      hash = "sha256-TH1g4m2iwH8Fik40UCHpJQUnOzPJVCIVl34IRhHwns8=";
+    };
+    buildInputs = [ FCGIClient ];
+    postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      sed -i '/use IO::File/d' Makefile.PL
+    '';
+    meta = {
+      description = "Fast CGI module";
+      license = with lib.licenses; [ oml ];
+    };
+  };
+
+  FCGIClient = buildPerlModule {
+    pname = "FCGI-Client";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz";
+      hash = "sha256-1TfLCc5aqz9Eemu0QV5GzAbv4BYRzVYom1WCvbRiIeg=";
+    };
+    propagatedBuildInputs = [ Moo TypeTiny ];
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Client library for fastcgi protocol";
+      homepage = "https://github.com/tokuhirom/p5-fcgi-client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FCGIProcManager = buildPerlPackage {
+    pname = "FCGI-ProcManager";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARODLAND/FCGI-ProcManager-0.28.tar.gz";
+      hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4=";
+    };
+    meta = {
+      description = "A perl-based FastCGI process manager";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  FFIC = buildPerlPackage {
+    pname = "FFI-C";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-0.15.tar.gz";
+      hash = "sha256-63BgfmZzvMsY3yf0zuRZ+23EGODak+aSzcNVX+QNL04=";
+    };
+    buildInputs = [ CaptureTiny PathTiny Test2Suite ];
+    propagatedBuildInputs = [ ClassInspector FFIPlatypus FFIPlatypusTypeEnum RefUtil SubIdentify SubInstall ];
+    meta = {
+      homepage = "https://metacpan.org/pod/FFI::C";
+      description = "C data types for FFI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  FFICheckLib = buildPerlPackage {
+    pname = "FFI-CheckLib";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz";
+      hash = "sha256-BNiF/Dd9RIluXqHE7DEPl5uwTy8YZYp+ek1Qn36Au4A=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ FileWhich ];
+    meta = {
+      description = "Check that a library is available for FFI";
+      homepage = "https://metacpan.org/pod/FFI::CheckLib";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FeatureCompatTry = buildPerlModule {
+    pname = "Feature-Compat-Try";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Feature-Compat-Try-0.05.tar.gz";
+      hash = "sha256-WaHHFzysMNsTHF8T+jhA9xhYju+bV5NS/+FWtVBxbXw=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ SyntaxKeywordTry ];
+    meta = {
+      description = "Make C<try/catch> syntax available";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FFICStat = buildPerlPackage {
+    pname = "FFI-C-Stat";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.02.tar.gz";
+      hash = "sha256-ThXY9vn5hAfGUtnTE7URUHcTkgGOBx18GShDrILBvlk=";
+    };
+    buildInputs = [ Filechdir PathTiny Test2Suite TestScript ];
+    propagatedBuildInputs = [ FFIPlatypus RefUtil ];
+    meta = {
+      homepage = "https://metacpan.org/pod/FFI::C::Stat";
+      description = "Object-oriented FFI interface to native stat and lstat";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  FFIPlatypus = buildPerlPackage {
+    pname = "FFI-Platypus";
+    version = "2.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-2.08.tar.gz";
+      hash = "sha256-EbOrEU7ZY1YxzYWzjSKXhuFEv5Sjr5rAnD17s0M2uSQ=";
+    };
+    buildInputs = [ AlienFFI Test2Suite ];
+    propagatedBuildInputs = [ CaptureTiny FFICheckLib ];
+    meta = {
+      homepage = "https://pl.atypus.org";
+      description = "Write Perl bindings to non-Perl libraries with FFI. No XS required";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  FFIPlatypusTypePtrObject = buildPerlPackage {
+    pname = "FFI-Platypus-Type-PtrObject";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-PtrObject-0.03.tar.gz";
+      hash = "sha256-4elJB++QtANgqabAPSlaEwR9T2ybVqyvHfK1TRcwf3Q=";
+    };
+    buildInputs = [ Test2Suite Test2ToolsFFI ];
+    propagatedBuildInputs = [ FFIPlatypus RefUtil ];
+    meta = {
+      homepage = "https://metacpan.org/pod/FFI::Platypus::Type::PtrObject";
+      description = "Platypus custom type for an object wrapped around an opaque pointer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  FFIPlatypusTypeEnum = buildPerlPackage {
+    pname = "FFI-Platypus-Type-Enum";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-Enum-0.06.tar.gz";
+      hash = "sha256-yVSmBPfWkpYk+pQT2NDh2DtL2XfQVifKznPtU6lcd98=";
+    };
+    buildInputs = [ FFIPlatypus Test2Suite ];
+    propagatedBuildInputs = [ RefUtil ];
+    meta = {
+      homepage = "https://metacpan.org/pod/FFI::Platypus::Type::Enum";
+      description = "Custom platypus type for dealing with C enumerated types";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  FennecLite = buildPerlModule {
+    pname = "Fennec-Lite";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Fennec-Lite-0.004.tar.gz";
+      hash = "sha256-3OKOOTJ2LC/5KqUtkEBcBuiY6By3sWTMrolmrnfx3Ks=";
+    };
+    meta = {
+      description = "Minimalist Fennec, the commonly used bits";
+      homepage = "http://open-exodus.net/projects/Fennec-Lite";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileChangeNotify = buildPerlPackage {
+    pname = "File-ChangeNotify";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-ChangeNotify-0.31.tar.gz";
+      hash = "sha256-GSvbHOdiZsamlKjpYtA5463uuCm2rB4j9QV/K1Bjkr0=";
+    };
+    buildInputs = [ Test2Suite TestRequires TestWithoutModule ];
+    propagatedBuildInputs = [ ModulePluggable Moo TypeTiny namespaceautoclean ];
+    meta = {
+      description = "Watch for changes to files, cross-platform style";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  Filechdir = buildPerlPackage {
+    pname = "File-chdir";
+    version = "0.1011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz";
+      hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk=";
+    };
+    meta = {
+      description = "A more sensible way to change directories";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileBaseDir = buildPerlPackage {
+    version = "0.09";
+    pname = "File-BaseDir";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-BaseDir-0.09.tar.gz";
+      hash = "sha256-bab3KBVirI8R7xo69q7bUcQRgrYPHxIs7QB579kpZ9k=";
+    };
+    propagatedBuildInputs = [ IPCSystemSimple ];
+    nativeCheckInputs = [ FileWhich ];
+    meta = {
+      description = "Use the Freedesktop.org base directory specification";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileBOM = buildPerlModule {
+    pname = "File-BOM";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz";
+      hash = "sha256-KO3EP8sRjhG8RYya6InVbTiMHZvCmZewCx3/2Fc4I6M=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Readonly ];
+    meta = {
+      description = "Utilities for handling Byte Order Marks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileCheckTree = buildPerlPackage {
+    pname = "File-CheckTree";
+    version = "4.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/File-CheckTree-4.42.tar.gz";
+      hash = "sha256-ZvtBf4/4peW36iVgYVbnDiBIYcWfqMODGSW03T8VX4o=";
+    };
+    meta = {
+      description = "Run many filetest checks on a tree";
+      homepage = "https://search.cpan.org/dist/File-CheckTree";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Filechmod = buildPerlPackage {
+    pname = "File-chmod";
+    version = "0.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XE/XENO/File-chmod-0.42.tar.gz";
+      hash = "sha256-bK+v/2i8hCFRaLVe3g0ZHctX+aMgG1HWHtsoWKJAd5U=";
+    };
+    meta = {
+      description = "Implements symbolic and ls chmod modes";
+      homepage = "https://metacpan.org/dist/File-chmod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FilechmodRecursive = buildPerlPackage {
+    pname = "File-chmod-Recursive";
+    version = "1.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MITHUN/File-chmod-Recursive-v1.0.3.tar.gz";
+      hash = "sha256-k0jKXFuI3q3MSDuTme98Lg/CUE+QWNtl88PFPEETmqc=";
+    };
+    propagatedBuildInputs = [ Filechmod ];
+    meta = {
+      description = "Run chmod recursively against directories";
+      homepage = "https://github.com/mithun/perl-file-chmod-recursive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileCopyRecursive = buildPerlPackage {
+    pname = "File-Copy-Recursive";
+    version = "0.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz";
+      hash = "sha256-05cc94qDReOAQrIIu3s5y2lQgDhq9in0oE/9ZUnfEVc=";
+    };
+    buildInputs = [ PathTiny TestDeep TestFatal TestFile TestWarnings ];
+    meta = {
+      description = "Perl extension for recursively copying files and directories";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileCopyRecursiveReduced = buildPerlPackage {
+    pname = "File-Copy-Recursive-Reduced";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.007.tar.gz";
+      hash = "sha256-07WFIuaYA6kUN+KcCZ63Bug3Px7vBRik3DZp3T383Cc=";
+    };
+    buildInputs = [ CaptureTiny PathTiny ];
+    meta = {
+      description = "Recursive copying of files and directories within Perl 5 toolchain";
+      homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileCountLines = buildPerlPackage {
+    pname = "File-CountLines";
+    version = "0.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MORITZ/File-CountLines-v0.0.3.tar.gz";
+      hash = "sha256-z9l8znyWE+TladR4dKK1cE8b6eztLwc5yHByVpQ4KmI=";
+    };
+    meta = {
+      description = "Efficiently count the number of line breaks in a file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileDesktopEntry = buildPerlPackage {
+    version = "0.22";
+    pname = "File-DesktopEntry";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-DesktopEntry-0.22.tar.gz";
+      hash = "sha256-FpwB49ri9il2e+wanxzb1uxtcT0VAeCyeG5N0SNWNbg=";
+    };
+    propagatedBuildInputs = [ FileBaseDir URI ];
+    meta = {
+      description = "Object to handle .desktop files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileDirList = buildPerlPackage {
+    version = "0.05";
+    pname = "File-DirList";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TP/TPABA/File-DirList/File-DirList-0.05.tar.gz";
+      sha256 = "sha256-mTt9dmLlV5hEih7azLmr0oHSvSO+fquZ9Wm44pYtO8M=";
+    };
+    preCheck = ''
+      export HOME="$TMPDIR"
+    '';
+    meta = {
+      description = "Provide a sorted list of directory content";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileFindIterator = buildPerlPackage {
+    pname = "File-Find-Iterator";
+    version = "0.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TE/TEXMEC/File-Find-Iterator-0.4.tar.gz";
+      hash = "sha256-orh6uXVqLlu2dK29OZN2Y+0gwoxxa/WhCVo8pE1Uqyw=";
+    };
+    propagatedBuildInputs = [ ClassIterator ];
+    meta = {
+      description = "Iterator interface for search files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileFindObject = buildPerlModule {
+    pname = "File-Find-Object";
+    version = "0.3.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-0.3.8.tar.gz";
+      hash = "sha256-TlJRRt6GTt+8kJsIRGKe7O0AY7YdQYuXLu8D+ES7NRQ=";
+    };
+    buildInputs = [ FileTreeCreate TestFile ];
+    propagatedBuildInputs = [ ClassXSAccessor ];
+    meta = {
+      description = "An object oriented File::Find replacement";
+      homepage = "https://metacpan.org/release/File-Find-Object";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  FileFindObjectRule = buildPerlModule {
+    pname = "File-Find-Object-Rule";
+    version = "0.0313";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-0.0313.tar.gz";
+      hash = "sha256-gZQPKZ1khySPvzDY8ft99sajSz35RApWIbE1yONPz/I=";
+    };
+    buildInputs = [ FileTreeCreate ];
+    propagatedBuildInputs = [ ClassXSAccessor FileFindObject NumberCompare TextGlob ];
+    # restore t/sample-data which is corrupted by patching shebangs
+    preCheck = ''
+      tar xf $src */t/sample-data --strip-components=1
+    '';
+    meta = {
+      description = "Alternative interface to File::Find::Object";
+      homepage = "https://www.shlomifish.org/open-source/projects/File-Find-Object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "findorule";
+    };
+  };
+
+  FileFindRule = buildPerlPackage {
+    pname = "File-Find-Rule";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz";
+      hash = "sha256-fm8WzDPrHyn/Jb7lHVE/S4qElHu/oY7bLTzECi1kyv4=";
+    };
+    propagatedBuildInputs = [ NumberCompare TextGlob ];
+    meta = {
+      description = "File::Find::Rule is a friendlier interface to File::Find";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "findrule";
+    };
+  };
+
+  FileFindRulePerl = buildPerlPackage {
+    pname = "File-Find-Rule-Perl";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/File-Find-Rule-Perl-1.16.tar.gz";
+      hash = "sha256-rhiGBQ2cohIjwHPihwq9yA3DDj9VKJoRw32jggqDIf8=";
+    };
+    propagatedBuildInputs = [ FileFindRule ParamsUtil ];
+    meta = {
+      description = "Common rules for searching for Perl things";
+      homepage = "https://github.com/karenetheridge/File-Find-Rule-Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileFinder = buildPerlPackage {
+    pname = "File-Finder";
+    version = "0.53";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-0.53.tar.gz";
+      hash = "sha256-LsvBmsZ6nmNchyqAeo0+qv9bq8BU8VoZHUfN/F8XanQ=";
+    };
+    propagatedBuildInputs = [ TextGlob ];
+    meta = {
+      description = "Nice wrapper for File::Find ala find(1)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileFnMatch = buildPerlPackage {
+    pname = "File-FnMatch";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MJ/MJP/File-FnMatch-0.02.tar.gz";
+      hash = "sha256-liRUuOhr6osTK/ivNXV9DGqPXVmQFb1qXWjLeuep6RY=";
+    };
+    meta = {
+      description = "Simple filename and pathname matching";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  FileGrep = buildPerlPackage {
+    pname = "File-Grep";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz";
+      hash = "sha256-Ri4VJ062J4UhQH6jAtnupyUs1EyrI4KHH33oM9X4VjI=";
+    };
+    meta = {
+      description = "Find matches to a pattern in a series of files and related functions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  FileHandleUnget = buildPerlPackage {
+    pname = "FileHandle-Unget";
+    version = "0.1634";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCOPPIT/FileHandle-Unget-0.1634.tar.gz";
+      hash = "sha256-OA80rTzl6exmHUxGi7M5IjHBYjF9QXLfN4FGtCqrF4U=";
+    };
+    buildInputs = [ FileSlurper TestCompile UNIVERSALrequire URI ];
+    meta = {
+      description = "FileHandle which supports multi-byte unget";
+      homepage = "https://github.com/coppit/filehandle-unget";
+      license = with lib.licenses; [ gpl2Only ];
+      maintainers = with maintainers; [ romildo ];
+    };
+  };
+
+  FileHomeDir = buildPerlPackage {
+    pname = "File-HomeDir";
+    version = "1.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/File-HomeDir-1.006.tar.gz";
+      hash = "sha256-WTc3xi3w9tq11BIuC0R2QXlFu2Jiwz7twAlmXvFUiFI=";
+    };
+    propagatedBuildInputs = [ FileWhich ];
+    preCheck = "export HOME=$TMPDIR";
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Find your home and other directories on any platform";
+      homepage = "https://metacpan.org/release/File-HomeDir";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileKeePass = buildPerlPackage {
+    pname = "File-KeePass";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RH/RHANDOM/File-KeePass-2.03.tar.gz";
+      hash = "sha256-wwxogCelL/T1jNadbY7zVHKnzxBtTOlOtzp5a6fH/6c=";
+    };
+    propagatedBuildInputs = [ CryptRijndael ];
+    meta = {
+      description = "Interface to KeePass V1 and V2 database files";
+      license = with lib.licenses; [ gpl2Only gpl3Only ];
+    };
+  };
+
+  Filelchown = buildPerlModule {
+    pname = "File-lchown";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/File-lchown-0.02.tar.gz";
+      hash = "sha256-oC+/KFQGqKTZOZKE8DLy1VxWl1FUwuFnS9EJg3uAluw=";
+    };
+    buildInputs = [ ExtUtilsCChecker ];
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "Modify attributes of symlinks without dereferencing them";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileLibMagic = buildPerlPackage {
+    pname = "File-LibMagic";
+    version = "1.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.23.tar.gz";
+      hash = "sha256-Uuax3Hyy2HpM30OboUXguejPKMwmpIo8+Zd8g0Y5Z+4=";
+    };
+    buildInputs = [ pkgs.file ConfigAutoConf TestFatal ];
+    makeMakerFlags = [ "--lib=${pkgs.file}/lib" ];
+    preCheck = ''
+      substituteInPlace t/oo-api.t \
+        --replace "/usr/share/file/magic.mgc" "${pkgs.file}/share/misc/magic.mgc"
+    '';
+    meta = {
+      description = "Determine MIME types of data or files using libmagic";
+      homepage = "https://metacpan.org/release/File::LibMagic";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin
+    };
+  };
+
+  FileListing = buildPerlPackage {
+    pname = "File-Listing";
+    version = "6.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-6.16.tar.gz";
+      hash = "sha256-GJs6E/wKG6QSudnsWQHp5eREzHRrnwFW1DmTcNM2VcY=";
+    };
+    propagatedBuildInputs = [ HTTPDate ];
+    meta = {
+      description = "Parse directory listing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileLoadLines = buildPerlPackage {
+    pname = "File-LoadLines";
+    version = "1.021";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/File-LoadLines-1.021.tar.gz";
+      hash = "sha256-mOQS98aSYRNPNLh4W926sxVrj0UlU9u1tWytaDuG//A=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Load lines from file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileMimeInfo = buildPerlPackage {
+    pname = "File-MimeInfo";
+    version = "0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-MimeInfo-0.33.tar.gz";
+      hash = "sha256-9r6ms4kGITJeycJ5KvruiOlIoK4dEIcvpyxxELPhscQ=";
+    };
+    doCheck = false; # Failed test 'desktop file is the right one'
+    buildInputs = [ FileBaseDir FileDesktopEntry EncodeLocale ];
+    meta = {
+      description = "Determine file type from the file name";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileMMagic = buildPerlPackage {
+    pname = "File-MMagic";
+    version = "1.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KN/KNOK/File-MMagic-1.30.tar.gz";
+      hash = "sha256-zwwbHrKXBcAtl8KRNkgAnAvkLOk+wks2xpa/LU9evX4=";
+    };
+    meta = {
+      description = "Guess file type from contents";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  FileMap = buildPerlModule {
+    pname = "File-Map";
+    version = "0.71";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.71.tar.gz";
+      hash = "sha256-yOJpM4BOhw1KupJiO3iGrIs8dgyY+/zTvcSyMFxGR1k=";
+    };
+    perlPreHook = "export LD=$CC";
+    propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
+    buildInputs = [ TestFatal TestWarnings ];
+    meta = {
+      description = "Memory mapping made simple and safe";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileModified = buildPerlPackage {
+    pname = "File-Modified";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/File-Modified-0.10.tar.gz";
+      hash = "sha256-a1CxqrbsaZigF/ZAPCc1s7weHPRhh70TTX623z/EUUQ=";
+    };
+    meta = {
+      description = "Checks intelligently if files have changed";
+      homepage = "https://github.com/neilbowers/File-Modified";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileNext = buildPerlPackage {
+    pname = "File-Next";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/File-Next-1.18.tar.gz";
+      hash = "sha256-+QDLOVBetuFoqcpRoQtz8bveGRS5I6CezXLZwC5uwu8=";
+    };
+    meta = {
+      description = "File-finding iterator";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  FileNFSLock = buildPerlPackage {
+    pname = "File-NFSLock";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBB/File-NFSLock-1.29.tar.gz";
+      hash = "sha256-YdQVmbSBFk7fm4vsq77y0j9iKpcn9sGDZekrV4LU+jc=";
+    };
+    meta = {
+      description = "Perl module to do NFS (or not) locking";
+      license = with lib.licenses; [ artistic1 gpl1Only ];
+    };
+  };
+
+  FilePath = buildPerlPackage {
+    pname = "File-Path";
+    version = "2.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Path-2.18.tar.gz";
+      hash = "sha256-mA8KF+2zU99G6c17NX+fWSnN4PgMRf16Bs9+DovWrd0=";
+    };
+    meta = {
+      description = "Create or remove directory trees";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FilePid = buildPerlPackage {
+    pname = "File-Pid";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz";
+      hash = "sha256-uv7uj9yW6wYwagxYu9tyCbbeRfhQ51/caxbbV24F5CI=";
+    };
+    patches = [(fetchpatch {
+      name = "missing-pidfile.patch";
+      url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch";
+      hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM=";
+    })];
+    propagatedBuildInputs = [ ClassAccessor ];
+    meta = {
+      description = "Pid File Manipulation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  Filepushd = buildPerlPackage {
+    pname = "File-pushd";
+    version = "1.016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-pushd-1.016.tar.gz";
+      hash = "sha256-1zp/CUQpg7CYJg3z33qDKl9mB3OjE8onP6i1ZmX5fNw=";
+    };
+    meta = {
+      description = "Change directory temporarily for a limited scope";
+      homepage = "https://github.com/dagolden/File-pushd";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  FileReadBackwards = buildPerlPackage {
+    pname = "File-ReadBackwards";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ReadBackwards-1.06.tar.gz";
+      hash = "sha256-MrKgVJOJqviIde8D1+u//y1ZeeyoW3yBL2tLsQ0QL2I=";
+    };
+    meta = {
+      description = "Read a file backwards by lines";
+      homepage = "https://metacpan.org/pod/File::ReadBackwards";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileRemove = buildPerlModule {
+    pname = "File-Remove";
+    version = "1.61";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Remove-1.61.tar.gz";
+      hash = "sha256-/YV/WFkI/FA0YbnkizyFlOZTV2a8FL6xfJC6WNXcSXU=";
+    };
+    meta = {
+      description = "Remove files and directories";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileShare = buildPerlPackage {
+    pname = "File-Share";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/File-Share-0.27.tar.gz";
+      hash = "sha256-1uj0tV69OOC7ReRDkuP6J9wf3harxdH/U+FX4ZpXVb4=";
+    };
+    propagatedBuildInputs = [ FileShareDir Readonly ];
+    meta = {
+      description = "Extend File::ShareDir to Local Libraries";
+      homepage = "https://github.com/ingydotnet/file-share-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileShareDir = buildPerlPackage {
+    pname = "File-ShareDir";
+    version = "1.118";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz";
+      hash = "sha256-O7KiC6Nd+VjcCk8jBvwF2QPYuMTePIvu/OF3OdKByVg=";
+    };
+    propagatedBuildInputs = [ ClassInspector ];
+    buildInputs = [ FileShareDirInstall ];
+    meta = {
+      description = "Locate per-dist and per-module shared files";
+      homepage = "https://metacpan.org/release/File-ShareDir";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileShareDirDist = buildPerlPackage {
+    pname = "File-ShareDir-Dist";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ShareDir-Dist-0.07.tar.gz";
+      hash = "sha256-jX/l0O4iNR9B75Wtwi29VsMf+iqbLBmEMA6S/36f6G0=";
+    };
+    meta = {
+      homepage = "https://metacpan.org/pod/File::ShareDir::Dist";
+      description = "Locate per-dist shared files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  FileShareDirInstall = buildPerlPackage {
+    pname = "File-ShareDir-Install";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz";
+      hash = "sha256-j5UzsZjy1KmlKIy8fSJPdnmtBaeoVzdFWZeJQovFrqA=";
+    };
+    meta = {
+      description = "Install shared files";
+      homepage = "https://github.com/Perl-Toolchain-Gang/File-ShareDir-Install";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FilesysDf = buildPerlPackage {
+    pname = "Filesys-Df";
+    version = "0.92";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IG/IGUTHRIE/Filesys-Df-0.92.tar.gz";
+      hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo=";
+    };
+    meta = {
+      description = "Perl extension for filesystem disk space information.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FilesysNotifySimple = buildPerlPackage {
+    pname = "Filesys-Notify-Simple";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz";
+      hash = "sha256-H9pxLUul4YaBWe019vjvv66dQ11jdvVgbVM7ywgFVaQ=";
+    };
+    buildInputs = [ TestSharedFork ];
+    meta = {
+      description = "Simple and dumb file system watcher";
+      homepage = "https://github.com/miyagawa/Filesys-Notify-Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FilesysDiskUsage = buildPerlPackage {
+    pname = "Filesys-DiskUsage";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/Filesys-DiskUsage-0.13.tar.gz";
+      hash = "sha256-/T5SxvYkEnGigTSNHUPEQVTC9hoyVD20aqnhVpLRtxM=";
+    };
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Estimate file space usage (similar to `du`)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "fdu";
+    };
+  };
+
+  FileSlurp = buildPerlPackage {
+    pname = "File-Slurp";
+    version = "9999.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.32.tar.gz";
+      hash = "sha256-TDwhmSqdQr46ed10o8g9J9OAVyadZVCaL1VeoPsrxbA=";
+    };
+    meta = {
+      description = "Simple and Efficient Reading/Writing/Modifying of Complete Files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileSlurper = buildPerlPackage {
+    pname = "File-Slurper";
+    version = "0.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz";
+      hash = "sha256-1aNkhzOYiMPNdY5kgWDuHXDrQVPKy6/1eEbbzvs0Sww=";
+    };
+    buildInputs = [ TestWarnings ];
+    meta = {
+      description = "A simple, sane and efficient module to slurp a file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileSlurpTiny = buildPerlPackage {
+    pname = "File-Slurp-Tiny";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz";
+      hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4=";
+    };
+    meta = {
+      description = "A simple, sane and efficient file slurper [DISCOURAGED]";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileTail = buildPerlPackage {
+    pname = "File-Tail";
+    version = "1.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MG/MGRABNAR/File-Tail-1.3.tar.gz";
+      hash = "sha256-JtCfgYNuQ+rkACjVKD/lYg/m/mJ4vz6462AMSOw0r8c=";
+    };
+    meta = {
+      description = "Perl extension for reading from continously updated files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  FileTouch = buildPerlPackage {
+    pname = "File-Touch";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/File-Touch-0.12.tar.gz";
+      hash = "sha256-KgTcQk30jpjFRVbGBFyrAmpJ43N6qUohz0l3YbDy5Zw=";
+    };
+    meta = {
+      description = "Update file access and modification times, optionally creating files if needed";
+      homepage = "https://github.com/neilb/File-Touch";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  FileTreeCreate = buildPerlModule {
+    pname = "File-TreeCreate";
+    version = "0.0.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-TreeCreate-0.0.1.tar.gz";
+      hash = "sha256-V2hvEIQ76Br/rRha5BMXkLoMSvNtIQTW+2kSZSgFUmc=";
+    };
+    meta = {
+      homepage = "http://metacpan.org/release/File-TreeCreate";
+      description = "Recursively create a directory tree";
+      license = lib.licenses.mit;
+    };
+  };
+
+  FileType = buildPerlModule {
+    pname = "File-Type";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMISON/File-Type-0.22.tar.gz";
+      hash = "sha256-01zZX+9X/U39iDH2LDTilNfEuGH8kJ4Ct2Bxc51S00E=";
+    };
+    meta = {
+      description = "Uses magic numbers (typically at the start of a file) to determine the MIME type of that file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileUtil = buildPerlModule {
+    pname = "File-Util";
+    version = "4.201720";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOMMY/File-Util-4.201720.tar.gz";
+      hash = "sha256-1EkQIYUNXFy9cCx+R0SFgHmEHS+pPxwtCd3Jp4Y2CN8=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    meta = {
+      description = "Easy, versatile, portable file handling";
+      homepage = "https://github.com/tommybutler/file-util/wiki";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileUtilTempdir = buildPerlPackage {
+    pname = "File-Util-Tempdir";
+    version = "0.034";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/File-Util-Tempdir-0.034.tar.gz";
+      hash = "sha256-0R3izl5vrT8GFLymR0ykScNa7TUSXVsyJ+ZpvBdv3Bw=";
+    };
+    buildInputs = [ Perlosnames TestException ];
+    meta = {
+      description = "Cross-platform way to get system-wide & user private temporary directory";
+      homepage = "https://metacpan.org/release/File-Util-Tempdir";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  FileWhich = buildPerlPackage {
+    pname = "File-Which";
+    version = "1.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz";
+      hash = "sha256-MgHxpg4/FkhAguYEXIloQiYfw0Xen7LmIP0qLHrzqTo=";
+    };
+    meta = {
+      description = "Perl implementation of the which utility as an API";
+      homepage = "https://metacpan.org/pod/File::Which";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FileZglob = buildPerlPackage {
+    pname = "File-Zglob";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz";
+      hash = "sha256-HLHt3iCsCU7wA3lLr+8sdiQWnPhALHNn2bdGD2wOZps=";
+    };
+    meta = {
+      description = "Extended globs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Filter = buildPerlPackage {
+    pname = "Filter";
+    version = "1.64";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Filter-1.64.tar.gz";
+      hash = "sha256-E+f7fh0yZZjjZgEDzxl0vun2kKxbQ7M58sAi8rX87yw=";
+    };
+    meta = {
+      description = "Source Filters";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FinanceQuote = buildPerlPackage rec {
+    pname = "Finance-Quote";
+    version = "1.58";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
+      hash = "sha256-jN3qDTgJo2aVzuaaKGK+qs1hU1f+uv23JkGnerRna4A=";
+    };
+    buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
+    meta = {
+      homepage = "https://finance-quote.sourceforge.net/";
+      changelog = "https://github.com/finance-quote/finance-quote/releases/tag/v${version}";
+      description = "Get stock and mutual fund quotes from various exchanges";
+      license = with lib.licenses; [ gpl2Plus ];
+      maintainers = with lib.maintainers; [ nevivurn ];
+    };
+  };
+
+  FindLib = buildPerlPackage {
+    pname = "Find-Lib";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YANNK/Find-Lib-1.04.tar.gz";
+      hash = "sha256-HXOSHjBh4bBG/kJo4tBf/VpMV2Jmbi5HI/g6rMFG6FE=";
+    };
+    meta = {
+      description = "Helper to smartly find libs to use in the filesystem tree";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FontAFM = buildPerlPackage {
+    pname = "Font-AFM";
+    version = "1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/Font-AFM-1.20.tar.gz";
+      hash = "sha256-MmcRZtoyWWoPa6rNDBIzglpgrK8lgF15yBo/GNYIi8E=";
+    };
+    meta = {
+      description = "Interface to Adobe Font Metrics files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FontTTF = buildPerlPackage {
+    pname = "Font-TTF";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz";
+      hash = "sha256-S2l9REJZdZ6gLSxELJv/5f/hTJIUCEoB90NpOpRMwpM=";
+    };
+    buildInputs = [ IOString ];
+    meta = {
+      description = "TTF font support for Perl";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ForksSuper = buildPerlPackage {
+    pname = "Forks-Super";
+    version = "0.97";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.97.tar.gz";
+      hash = "sha256-M9tDV+Es1vQPKlijq5b+tP/9JedC29SL75B9skLQKk4=";
+    };
+    doCheck = false;
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Extensions and convenience methods to manage background processes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FormValidatorSimple = buildPerlPackage {
+    pname = "FormValidator-Simple";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LY/LYOKATO/FormValidator-Simple-0.29.tar.gz";
+      hash = "sha256-/Dpj3FS5YtdFhgcBdq2vW+hp8JtWG7MPX9Mu9TF5JmY=";
+    };
+    propagatedBuildInputs = [ ClassAccessor ClassDataAccessor DateCalc DateTimeFormatStrptime EmailValidLoose ListMoreUtils TieIxHash UNIVERSALrequire YAML ];
+    buildInputs = [ CGI ];
+    meta = {
+      description = "Validation with simple chains of constraints";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FreezeThaw = buildPerlPackage {
+    pname = "FreezeThaw";
+    version = "0.5001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.5001.tar.gz";
+      hash = "sha256-PF4IMpEG+c7jq0RLgTMcWTX4MIShUdiFBeekZdpUD0E=";
+    };
+    doCheck = false;
+    meta = {
+      description = "Converting Perl structures to strings and back";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FunctionParameters = buildPerlPackage {
+    pname = "Function-Parameters";
+    version = "2.002004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAUKE/Function-Parameters-2.002004.tar.gz";
+      hash = "sha256-KKvqWODAnOMnmaCMvXr3DaHimXd8KZEZQpygaacYg+g=";
+    };
+    buildInputs = [ DirSelf TestFatal ];
+    meta = {
+      description = "Define functions and methods with parameter lists (\"subroutine signatures\")";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Furl = buildPerlModule {
+    pname = "Furl";
+    version = "3.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Furl-3.14.tar.gz";
+      hash = "sha256-Nd29iIDXHxniAkM+F2H9EXc4XmML9QaFvEi2t6y4V7k=";
+    };
+    propagatedBuildInputs = [ ClassAccessorLite HTTPParserXS MozillaCA ];
+    buildInputs = [ HTTPCookieJar HTTPProxy ModuleBuildTiny Plack Starlet TestFakeHTTPD TestRequires TestSharedFork TestTCP TestValgrind URI ];
+    meta = {
+      description = "Lightning-fast URL fetcher";
+      homepage = "https://github.com/tokuhirom/Furl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Future = buildPerlModule {
+    pname = "Future";
+    version = "0.50";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.50.tar.gz";
+      hash = "sha256-wDXj2eaaOvFEszrINN7p5lrTYPKlHbnxWNw0Ls3dX0Q=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Represent an operation awaiting completion";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  FutureAsyncAwait = buildPerlModule rec {
+    pname = "Future-AsyncAwait";
+    version = "0.66";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-AsyncAwait-0.66.tar.gz";
+      hash = "sha256-xqD03kYr8yS1usoXddGZ7DJGo1jBPbm2Ssv82+bl7CE=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ Future XSParseKeyword XSParseSublike ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Deferred subroutine syntax for futures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  FutureIO = buildPerlModule {
+    pname = "Future-IO";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-IO-0.14.tar.gz";
+      hash = "sha256-a1j++vwwlMJwHwp7mMsUCwmItRaKfV3069Hu6OhyBgo=";
+    };
+    buildInputs = [ TestFutureIOImpl ];
+    propagatedBuildInputs = [ Future StructDumb ];
+    preCheck = "rm t/06connect.t"; # this test fails in sandbox
+    meta = {
+      description = "Future-returning IO methods";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  FutureQueue = buildPerlModule {
+    pname = "Future-Queue";
+    version = "0.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-Queue-0.51.tar.gz";
+      hash = "sha256-HVAcOpot3/x8YPlvpmlp1AyykuCSBM9t7NHCuLUAPNY=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ Future ];
+    meta = {
+      description = "A FIFO queue of values that uses L<Future>s";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GamesSolitaireVerify = buildPerlModule {
+    pname = "Games-Solitaire-Verify";
+    version = "0.2403";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz";
+      hash = "sha256-5atHXIK6HLCIrSj0I8pRTUaUTWrjw+tV6WNunn8dyJM=";
+    };
+    buildInputs = [ DirManifest TestDifferences ];
+    propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ];
+    meta = {
+      description = "Verify solutions for solitaire games";
+      homepage = "https://metacpan.org/release/Games-Solitaire-Verify";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "verify-solitaire-solution";
+    };
+  };
+
+  GD = buildPerlPackage {
+    pname = "GD";
+    version = "2.78";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz";
+      hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ=";
+    };
+
+    buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype pkgs.libpng pkgs.fontconfig pkgs.xorg.libXpm ExtUtilsPkgConfig TestFork TestNoWarnings ];
+
+    # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]"
+    hardeningDisable = [ "format" ];
+
+    makeMakerFlags = [ "--lib_png_path=${pkgs.libpng.out}" "--lib_jpeg_path=${pkgs.libjpeg.out}" "--lib_zlib_path=${pkgs.zlib.out}" "--lib_ft_path=${pkgs.freetype.out}" "--lib_fontconfig_path=${pkgs.fontconfig.lib}" "--lib_xpm_path=${pkgs.xorg.libXpm.out}" ];
+
+    meta = {
+      description = "Perl interface to the gd2 graphics library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "bdf2gdfont.pl";
+    };
+  };
+
+  GDGraph = buildPerlPackage {
+    pname = "GDGraph";
+    version = "1.56";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/GDGraph-1.56.tar.gz";
+      hash = "sha256-b0nMTlkBVIDbnJtrGK/YxQvjCIZoe2lBFRPQbziXERM=";
+    };
+    propagatedBuildInputs = [ GDText ];
+    buildInputs = [ CaptureTiny TestException ];
+    meta = {
+      description = "Graph Plotting Module for Perl 5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GDSecurityImage = buildPerlPackage {
+    pname = "GD-SecurityImage";
+    version = "1.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BU/BURAK/GD-SecurityImage-1.75.tar.gz";
+      hash = "sha256-Pd4k2ay6lRzd5bVp0eQsrZRs/bUSgORGnzNv1f4MjqY=";
+    };
+    propagatedBuildInputs = [ GD ];
+    meta = {
+      description = "Security image (captcha) generator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GDText = buildPerlPackage {
+    pname = "GDTextUtil";
+    version = "0.86";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz";
+      hash = "sha256-iG7L+Fz+lPQTXuVonEhHqa54PsuZ5nWeEsc08t1hFrw=";
+    };
+    propagatedBuildInputs = [ GD ];
+    meta = {
+      description = "Text utilities for use with GD";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GeoIP = buildPerlPackage {
+    pname = "Geo-IP";
+    version = "1.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-1.51.tar.gz";
+      hash = "sha256-FjAgMV1cVEGDaseeCKd7Qo8nf9CQvqT6gNpwd7JDaro=";
+    };
+    makeMakerFlags = [ "LIBS=-L${pkgs.geoip}/lib" "INC=-I${pkgs.geoip}/include" ];
+    doCheck = false; # seems to access the network
+    meta = {
+      description = "Look up location and network information by IP Address";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GeoIP2 = buildPerlPackage {
+    pname = "GeoIP2";
+    version = "2.006002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/GeoIP2-2.006002.tar.gz";
+      hash = "sha256-CQVCqO7pvTwS5ZxLZWJMidAf/ZQgTx8Hah20CybAmDQ=";
+    };
+    propagatedBuildInputs = [ JSONMaybeXS LWPProtocolHttps MaxMindDBReader ParamsValidate Throwable ];
+    buildInputs = [ PathClass TestFatal TestNumberDelta ];
+    meta = {
+      description = "Perl API for MaxMind's GeoIP2 web services and databases";
+      homepage = "https://metacpan.org/release/GeoIP2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "web-service-request";
+    };
+  };
+
+  GetoptArgvFile = buildPerlPackage {
+    pname = "Getopt-ArgvFile";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-1.11.tar.gz";
+      hash = "sha256-NwmqUTzm/XHRpVoC400vCQAX1TUKm9RHAFZTybCDWyI=";
+    };
+    meta = {
+      description = "Interpolates script options from files into @ARGV or another array";
+      license = with lib.licenses; [ artistic1 ];
+      maintainers = [ maintainers.pSub ];
+    };
+  };
+
+  GetoptLong = buildPerlPackage {
+    pname = "Getopt-Long";
+    version = "2.54";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/Getopt-Long-2.54.tar.gz";
+      hash = "sha256-WEujyZuy1rNBN1IS+bh0YT9wbPsBzuIbiiZ2qYq5hf4=";
+    };
+    meta = {
+      description = "Extended processing of command line options";
+      license = with lib.licenses; [ artistic1 gpl2Plus ];
+    };
+  };
+
+  GetoptLongDescriptive = buildPerlPackage {
+    pname = "Getopt-Long-Descriptive";
+    version = "0.111";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.111.tar.gz";
+      hash = "sha256-m40V/K8Y/ddAJGtDjw5+uRS4McUdnXCMCZ7Kd2YiB20=";
+    };
+    buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
+    propagatedBuildInputs = [ ParamsValidate SubExporter ];
+    meta = {
+      description = "Getopt::Long, but simpler and more powerful";
+      homepage = "https://github.com/rjbs/Getopt-Long-Descriptive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GetoptTabular = buildPerlPackage {
+    pname = "Getopt-Tabular";
+    version = "0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz";
+      hash = "sha256-m98GdjO1kTEngg9OgDXtxT0INy+qzla6a/oAyWiiU3c=";
+    };
+    meta = {
+      description = "Table-driven argument parsing for Perl 5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Git = buildPerlPackage {
+    pname = "Git";
+    version = "0.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSOUTH/Git-0.42.tar.gz";
+      hash = "sha256-lGmp85jzor8rBQBWbuQdP/b65GBBKhNxhXZ6HMR4Om0=";
+    };
+    propagatedBuildInputs = [ Error ];
+    meta = {
+      description = "This is the Git.pm, plus the other files in the perl/Git directory, from github's git/git";
+      license = with lib.licenses; [ gpl2Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  GitAutofixup = buildPerlPackage rec {
+    pname = "App-Git-Autofixup";
+    version = "0.004001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-0.004001.tar.gz";
+      hash = "sha256-WroBPI3hOZD1iRoOKjnJcHTQcnvjZTIMLGrxnTbF3aw=";
+    };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/git-autofixup
+    '';
+    meta = {
+      description = "Create fixup commits for topic branches";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.DamienCassou ];
+      mainProgram = "git-autofixup";
+    };
+  };
+
+  GitPurePerl = buildPerlPackage {
+    pname = "Git-PurePerl";
+    version = "0.53";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BROQ/Git-PurePerl-0.53.tar.gz";
+      hash = "sha256-mHx0NmzEw37ghAUPmF+iVDWcicElB/W4v8ZgfeU41ag=";
+    };
+    buildInputs = [ Testutf8 ];
+    propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ];
+    doCheck = false;
+    meta = {
+      description = "A Pure Perl interface to Git repositories";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GitRepository = buildPerlPackage {
+    pname = "Git-Repository";
+    version = "1.325";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Repository-1.325.tar.gz";
+      hash = "sha256-mypPoZT0oOtFI1XQyAhyfl6cFsFFrH0kw+qW0Kvv7UM=";
+    };
+    buildInputs = [ TestRequiresGit ];
+    propagatedBuildInputs = [ GitVersionCompare SystemCommand namespaceclean ];
+    meta = {
+      description = "Perl interface to Git repositories";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GitVersionCompare = buildPerlPackage {
+    pname = "Git-Version-Compare";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Version-Compare-1.005.tar.gz";
+      hash = "sha256-NX/e2eVflesvUWoY9dwbRyCp3u+eLA52vNX+SuubPLs=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    meta = {
+      description = "Functions to compare Git versions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Glib = buildPerlPackage {
+    pname = "Glib";
+    version = "1.3294";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3294.tar.gz";
+      hash = "sha256-1xX1qGvMGHB13oXnrlvAewcU1u3BlqktpDmG76ROXLs=";
+    };
+    buildInputs = [ pkgs.glib ];
+    propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
+    meta = {
+      description = "Perl wrappers for the GLib utility and Object libraries";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Only ];
+    };
+  };
+
+  GlibObjectIntrospection = buildPerlPackage {
+    pname = "Glib-Object-Introspection";
+    version = "0.051";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.051.tar.gz";
+      hash = "sha256-ZWlhHcyArBSCx8IiZLGujJw1HUmDUR65psX0ehAVAIk=";
+    };
+    nativeCheckInputs = [ pkgs.cairo CairoGObject ];
+    propagatedBuildInputs = [ pkgs.gobject-introspection Glib ];
+    preCheck = ''
+      # Our gobject-introspection patches make the shared library paths absolute
+      # in the GIR files. When running tests, the library is not yet installed,
+      # though, so we need to replace the absolute path with a local one during build.
+      # We are using a symlink that we will delete after the execution of the tests.
+      mkdir -p $out/lib
+      ln -s $PWD/build/*.so $out/lib/
+    '';
+    postCheck = ''
+      rm -r $out/lib
+    '';
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Dynamically create Perl language bindings";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Only ];
+    };
+  };
+
+  Gnome2 = buildPerlPackage {
+    pname = "Gnome2";
+    version = "1.048";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-1.048.tar.gz";
+      hash = "sha256-ZPzDgnFKvY1XaSrDdjKMOiDGy8i81zKwB9FMv5ooLd0=";
+    };
+    buildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gnome2Canvas Gnome2VFS Gtk2 ];
+    propagatedBuildInputs = [ pkgs.gnome2.libgnomeui ];
+    meta = {
+      description = "(DEPRECATED) Perl interface to the 2.x series of the GNOME libraries";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gnome2Canvas.x86_64-darwin
+    };
+  };
+
+  Gnome2Canvas = buildPerlPackage {
+    pname = "Gnome2-Canvas";
+    version = "1.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-Canvas-1.006.tar.gz";
+      hash = "sha256-aQZnxziSHeLWUWtOtjlVOlceSoMQ2AMfFYZYU23lq0I=";
+    };
+    buildInputs = [ pkgs.gnome2.libgnomecanvas ];
+    propagatedBuildInputs = [ Gtk2 ];
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "(DEPRECATED) A structured graphics canvas";
+      license = with lib.licenses; [ lgpl2Plus ];
+    };
+  };
+
+  Gnome2VFS = buildPerlPackage {
+    pname = "Gnome2-VFS";
+    version = "1.084";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-VFS-1.084.tar.gz";
+      hash = "sha256-PI2Mlca2XCN9ueiJx57bK7gIvzfAhKvfu9mFn+93h8w=";
+    };
+    propagatedBuildInputs = [ pkgs.gnome2.gnome_vfs Glib ];
+    meta = {
+      description = "(DEPRECATED) Perl interface to the 2.x series of the GNOME VFS";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  Gnome2Wnck = buildPerlPackage {
+    pname = "Gnome2-Wnck";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-Wnck-0.18.tar.gz";
+      hash = "sha256-RL7OyLLX9B8ngKc7CSJp/bec1JJluuDI/zkQN8RWSjU=";
+    };
+    buildInputs = [ pkgs.libwnck2 pkgs.glib pkgs.gtk2 ];
+    propagatedBuildInputs = [ Gtk2 ];
+    meta = {
+      description = "(DEPRECATED) Perl interface to the Window Navigator";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  GnuPG = buildPerlPackage {
+    pname = "GnuPG";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YANICK/GnuPG-0.19.tar.gz";
+      hash = "sha256-r1Py0/Yyl+BGZ26uFKdilq/dKRDglyO2sRNwhiK3mJs=";
+    };
+    buildInputs = [ pkgs.gnupg1orig ];
+    doCheck = false;
+    meta = {
+      description = "Perl interface to the GNU Privacy Guard";
+      license = with lib.licenses; [ gpl2Plus ];
+      mainProgram = "gpgmailtunl";
+    };
+  };
+
+  GnuPGInterface = buildPerlPackage {
+    pname = "GnuPG-Interface";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.03.tar.gz";
+      hash = "sha256-WvVmMPD6wpDXJCGD9kSaoOAoKfRhHcYrxunps4CPGHo=";
+    };
+    buildInputs = [ pkgs.which pkgs.gnupg1compat ];
+    propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
+    doCheck = false;
+    meta = {
+      description = "Supply object methods for interacting with GnuPG";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GoferTransporthttp = buildPerlPackage {
+    pname = "GoferTransport-http";
+    version = "1.017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMB/GoferTransport-http-1.017.tar.gz";
+      hash = "sha256-9z7/4+p6+hkHzol3yHOHq7DUQE+FpySuJjeymnMVSps=";
+    };
+    propagatedBuildInputs = [ DBI LWP mod_perl2 ];
+    doCheck = false; # no make target 'test'
+    meta = {
+      description = "HTTP transport for DBI stateless proxy driver DBD::Gofer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GooCanvas = buildPerlPackage {
+    pname = "Goo-Canvas";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YE/YEWENBIN/Goo-Canvas-0.06.tar.gz";
+      hash = "sha256-DFiMUH7tXmLRLtHMHkkcb/Oh9ZxPs9Q14UIUs3qzklE=";
+    };
+    propagatedBuildInputs = [ pkgs.goocanvas pkgs.gtk2 Gtk2 ];
+    meta = {
+      description = "Perl interface to the GooCanvas";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GooCanvas2 = buildPerlPackage {
+    pname = "GooCanvas2";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLMAX/GooCanvas2-0.06.tar.gz";
+      hash = "sha256-4kyHhz4ZBj3U1eLHCcqs+MCuiIEEQ5W7hl3CtP3WO1A=";
+    };
+    buildInputs = [ pkgs.gtk3 ];
+    propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
+    meta = {
+      description = "Perl binding for GooCanvas2 widget using Glib::Object::Introspection";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GooCanvas2CairoTypes = buildPerlPackage rec {
+    pname = "GooCanvas2-CairoTypes";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/GooCanvas2-CairoTypes-${version}.tar.gz";
+      hash = "sha256-uoBnNuvMnePYFBp2Omgr3quxy4cCveKZrf1XSs6HUFI=";
+    };
+    propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
+    meta = {
+      description = "Bridge between GooCanvas2 and Cairo types";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GoogleProtocolBuffers = buildPerlPackage {
+    pname = "Google-ProtocolBuffers";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/protobuf/Google-ProtocolBuffers-0.12.tar.gz";
+      hash = "sha256-s4RJxguaJxLd5IFIXMerA7KgrBw/1ICzhT5BEawpTXE=";
+    };
+    propagatedBuildInputs = [ ClassAccessor ParseRecDescent ];
+    patches =
+      [ ../development/perl-modules/Google-ProtocolBuffers-multiline-comments.patch ];
+    meta = {
+      description = "Simple interface to Google Protocol Buffers";
+      homepage = "https://github.com/csirtgadgets/google-protocolbuffers-perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "protoc-perl";
+    };
+  };
+
+  gotofile = buildPerlPackage {
+    pname = "goto-file";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/goto-file-0.005.tar.gz";
+      hash = "sha256-xs3V7kps3L2/MU2SpPmYXbzfnkJYBIyudhJcBSqjH3c=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Stop parsing the current file and move on to a different one";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Graph = buildPerlPackage {
+    pname = "Graph";
+    version = "0.9727";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/Graph-0.9727.tar.gz";
+      hash = "sha256-OSqJFtyVExq+jJE9/Kx2mEhL9IZrQq9fcEPABi50Iik=";
+    };
+    propagatedBuildInputs = [ HeapFibonacci SetObject ];
+    meta = {
+      description = "GRaph data structures and algorithms";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GraphicsColor = buildPerlPackage {
+    pname = "Graphics-Color";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GP/GPHAT/Graphics-Color-0.31.tar.gz";
+      hash = "sha256-+qj+1bLYDlFgr5duXbIkLAs1VVQs4QQldf9raUWHoz0=";
+    };
+    buildInputs = [ TestNumberDelta ModulePluggable ];
+    propagatedBuildInputs = [ ColorLibrary Moose MooseXAliases MooseXClone MooseXStorage MooseXTypes ];
+    meta = {
+      description = "Device and library agnostic color spaces";
+      homepage = "https://github.com/gphat/graphics-color";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GraphicsTIFF = buildPerlPackage {
+    pname = "Graphics-TIFF";
+    version = "20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Graphics-TIFF-20.tar.gz";
+      hash = "sha256-PlXMIJRl4GQBmiFaUvBf9RBAKX0CA5P+n7PeJ60CDjU=";
+    };
+    buildInputs = [ pkgs.libtiff ExtUtilsDepends ExtUtilsPkgConfig ];
+    propagatedBuildInputs = [ Readonly ];
+    nativeCheckInputs = [ TestRequires TestDeep pkgs.hexdump ];
+    meta = {
+      description = "Perl extension for the libtiff library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GraphicsToolkitColor = buildPerlPackage {
+    pname = "Graphics-Toolkit-Color";
+    version = "1.71";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Graphics-Toolkit-Color-1.71.tar.gz";
+      hash = "sha256-NOiLb2hY9H2ZYQHxWC8esA23+G4Snl8dYb9/m922LvI=";
+    };
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Color palette constructor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GraphViz = buildPerlPackage {
+    pname = "GraphViz";
+    version = "2.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz-2.26.tar.gz";
+      hash = "sha256-ml0lILMmK/MEdSct12SkRfjn+TG++Ivg49O/9EXacyg=";
+    };
+
+    # XXX: It'd be nicer it `GraphViz.pm' could record the path to graphviz.
+    buildInputs = [ pkgs.graphviz TestPod ];
+    propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath ];
+
+    meta = {
+      description = "Perl interface to the GraphViz graphing tool";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  GraphViz2 = buildPerlPackage {
+    pname = "GraphViz2";
+    version = "2.67";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz2-2.67.tar.gz";
+      hash = "sha256-h8hcbt/86k+W5rSAD2+VEq6rGeuNOzSDAachMxvLhYA=";
+    };
+
+    # XXX: It'd be nicer if `GraphViz.pm' could record the path to graphviz.
+    buildInputs = [ pkgs.graphviz TestPod Moo IPCRun3 TypeTiny TestSnapshot Graph ];
+    propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath DataSectionSimple ];
+
+    # needed for fontconfig tests
+    HOME = "/build";
+    FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts";
+
+    meta = {
+      description = "Perl interface to the GraphViz graphing tool";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  grepmail = buildPerlPackage {
+    pname = "grepmail";
+    version = "5.3111";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCOPPIT/grepmail-5.3111.tar.gz";
+      hash = "sha256-0JhOP3ob4XrgFFdfcMFngVGlvMliIYXcWgUstjJxp2E=";
+    };
+    buildInputs = [ FileHomeDir FileSlurper TestCompile UNIVERSALrequire URI ];
+    propagatedBuildInputs = [ MailMboxMessageParser TimeDate ];
+    outputs = [ "out" ];
+    meta = {
+      description = "Search mailboxes for mail matching a regular expression";
+      homepage = "https://github.com/coppit/grepmail";
+      license = with lib.licenses; [ gpl2Only ];
+      maintainers = with maintainers; [ romildo ];
+    };
+  };
+
+  GrowlGNTP = buildPerlModule {
+    pname = "Growl-GNTP";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTN/Growl-GNTP-0.21.tar.gz";
+      hash = "sha256-KHl/jkJ0BnIFhMr9EOeAp47CtWnFVaGHQ9dFU9X1CD8=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ CryptCBC DataUUID ];
+    meta = {
+      description = "Perl implementation of GNTP Protocol (Client Part)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  GSSAPI = buildPerlPackage {
+    pname = "GSSAPI";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz";
+      hash = "sha256-fY8se2F2L7TsctLsKBKQ8vh/nH0pgnPaRSVDKmXncNY=";
+    };
+    propagatedBuildInputs = [ pkgs.krb5.dev ];
+    makeMakerFlags = [ "--gssapiimpl" "${pkgs.krb5.dev}" ];
+    meta = {
+      description = "Perl extension providing access to the GSSAPIv2 library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  Gtk2 = buildPerlPackage {
+    pname = "Gtk2";
+    version = "1.24993";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
+      hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
+    };
+    patches = [
+      # Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`).
+      ../development/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch
+    ];
+    buildInputs = [ pkgs.gtk2 ];
+    # https://rt.cpan.org/Public/Bug/Display.html?id=130742
+    # doCheck = !stdenv.isDarwin;
+    doCheck = false;
+    propagatedBuildInputs = [ Pango ];
+    meta = {
+      description = "Perl interface to the 2.x series of the Gimp Toolkit library";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  Gtk2TrayIcon = buildPerlPackage {
+    pname = "Gtk2-TrayIcon";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-TrayIcon-0.07.tar.gz";
+      hash = "sha256-OfwrmabmE9qeqXfYy1MD+l4H5poVJIk03hIXqXuWRVQ=";
+    };
+    propagatedBuildInputs = [ pkgs.gtk2 Gtk2 ];
+    meta = {
+      description = "(DEPRECATED) Perl interface to the EggTrayIcon library";
+      license = with lib.licenses; [ gpl2Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2TrayIcon.x86_64-darwin
+    };
+  };
+
+  Gtk2AppIndicator = buildPerlPackage {
+    pname = "Gtk2-AppIndicator";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Gtk2-AppIndicator-0.15.tar.gz";
+      hash = "sha256-olywceIU+4m0RQqkYFAx6uibeWHhSbDW6PSRwZwUqQo=";
+    };
+    propagatedBuildInputs = [ pkgs.libappindicator-gtk2 pkgs.libdbusmenu-gtk2 pkgs.gtk2 pkgs.pkg-config Gtk2 ];
+    # Tests fail due to no display:
+    #   Gtk-WARNING **: cannot open display:  at /nix/store/HASH-perl-Gtk2-1.2498/lib/perl5/site_perl/5.22.2/x86_64-linux-thread-multi/Gtk2.pm line 126.
+    doCheck = false;
+    meta = {
+      description = "Perl extension for libappindicator";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  Gtk2ImageView = buildPerlPackage {
+    pname = "Gtk2-ImageView";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk2-ImageView-0.05.tar.gz";
+      hash = "sha256-CHGGw2k6zxlkUc9ZzIt/XPmnsFq+INMty8uggilT+4A=";
+    };
+    buildInputs = [ pkgs.gtkimageview pkgs.gtk2 ];
+    propagatedBuildInputs = [ Gtk2 ];
+    # Tests fail due to no display server:
+    #   Gtk-WARNING **: cannot open display:  at /nix/store/HASH-perl-Gtk2-1.2498/lib/perl5/site_perl/5.22.2/x86_64-linux-thread-multi/Gtk2.pm line 126.
+    #   t/animview.t ...........
+    doCheck = false;
+    meta = {
+      description = "Perl bindings for the GtkImageView widget";
+      license = with lib.licenses; [ lgpl3Plus ];
+    };
+  };
+
+  Gtk2Unique = buildPerlPackage {
+    pname = "Gtk2-Unique";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-Unique-0.07.tar.gz";
+      hash = "sha256-nOX2ikFgC8z31u/eMMBwqxFOk57XqKx8O3rZE5mJGGc=";
+    };
+    propagatedBuildInputs = [ pkgs.libunique pkgs.gtk2 Gtk2 ];
+    meta = {
+      description = "(DEPRECATED) Use single instance applications";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2Unique.x86_64-darwin
+    };
+  };
+
+  Gtk3 = buildPerlPackage rec {
+    pname = "Gtk3";
+    version = "0.038";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-${version}.tar.gz";
+      hash = "sha256-cNxL8qp0mBx54V/SmNmY4FqS66SBHxrVyfH03jdzesw=";
+    };
+    propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];
+    preCheck = lib.optionalString stdenv.isDarwin "rm t/overrides.t"; # Currently failing on macOS
+    meta = {
+      description = "Perl interface to the 3.x series of the gtk+ toolkit";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  Gtk3ImageView = buildPerlPackage rec {
+    pname = "Gtk3-ImageView";
+    version = "10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/Gtk3-ImageView-${version}.tar.gz";
+      hash = "sha256-vHfnBgaeZPK7hBgZcP1KjepG+IvsDE3XwrH9U4xoN+Y=";
+    };
+    buildInputs = [ pkgs.gtk3 ];
+    propagatedBuildInputs = [ Readonly Gtk3 ];
+    nativeCheckInputs = [ TestDifferences TestDeep ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ];
+    checkPhase = ''
+      ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \
+        make test
+    '';
+    meta = {
+      description = "Image viewer widget for Gtk3";
+      homepage = "https://github.com/carygravel/gtk3-imageview";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Gtk3SimpleList = buildPerlPackage {
+    pname = "Gtk3-SimpleList";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz";
+      hash = "sha256-HURlEAvzvAR0opRppAb9AzVituNzYYgSEAA3KrKtqIQ=";
+    };
+    propagatedBuildInputs = [ Gtk3 ];
+    meta = {
+      description = "A simple interface to Gtk3's complex MVC list widget";
+      homepage = "https://github.com/soig/Gtk3-SimpleList";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  Guard = buildPerlPackage {
+    pname = "Guard";
+    version = "1.023";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Guard-1.023.tar.gz";
+      hash = "sha256-NMTd+R/JPRCQ2G2hTfcG0XWxYQxnNywB4SzpVV1N0dw=";
+    };
+    meta = {
+      description = "Safe cleanup blocks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HamAPRSFAP = buildPerlPackage {
+    pname = "Ham-APRS-FAP";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HE/HESSU/Ham-APRS-FAP-1.21.tar.gz";
+      hash = "sha256-4BtFXUb0RxDbzyG2+oQ/CTWM5g7uHEFBvHTgogTToCA=";
+    };
+    propagatedBuildInputs = [ DateCalc ];
+    meta = {
+      description = "Finnish APRS Parser (Fabulous APRS Parser)";
+      maintainers = with maintainers; [ andrew-d ];
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Hailo = buildPerlPackage {
+    pname = "Hailo";
+    version = "0.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AV/AVAR/Hailo-0.75.tar.gz";
+      hash = "sha256-u6mcsM+j7oYy3YmQbG5voF/muzZ/IoLoiQnO/Y+RdMI=";
+    };
+    buildInputs = [ BotTrainingMegaHAL BotTrainingStarCraft DataSection FileSlurp PodSection TestException TestExpect TestOutput TestScript TestScriptRun ];
+    propagatedBuildInputs = [ ClassLoad DBDSQLite DataDump DirSelf FileCountLines GetoptLongDescriptive IOInteractive IPCSystemSimple ListMoreUtils Moose MooseXGetopt MooseXStrictConstructor MooseXTypes RegexpCommon TermSk namespaceclean ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    patches = [
+      ../development/perl-modules/Hailo-fix-test-gld.patch
+    ];
+    postPatch = ''
+      patchShebangs bin
+    '';
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/hailo
+    '';
+    meta = {
+      description = "A pluggable Markov engine analogous to MegaHAL";
+      homepage = "https://hailo.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "hailo";
+    };
+  };
+
+  HashDiff = buildPerlPackage {
+    pname = "Hash-Diff";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOLAV/Hash-Diff-0.010.tar.gz";
+      hash = "sha256-vJpKo47JjwqYKJ41q/mhfC8qMjmiIJoymADglwqi4MU=";
+    };
+    propagatedBuildInputs = [ HashMerge ];
+    buildInputs = [ TestSimple13 ];
+
+    meta = {
+      description = "Return difference between two hashes as a hash";
+      homepage = "https://github.com/bolav/hash-diff";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ham = callPackage ../development/perl-modules/ham { };
+
+  HashFlatten = buildPerlPackage {
+    pname = "Hash-Flatten";
+    version = "1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBC/Hash-Flatten-1.19.tar.gz";
+      hash = "sha256-cMbEnYtsRgdGQXpQmO3SoP0x/YuGxUv4SS6FPB9OS5g=";
+    };
+    buildInputs = [ TestAssertions ];
+    propagatedBuildInputs = [ LogTrace ];
+    meta = {
+      description = "Flatten/unflatten complex data hashes";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  HashMerge = buildPerlPackage {
+    pname = "Hash-Merge";
+    version = "0.302";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HE/HERMES/Hash-Merge-0.302.tar.gz";
+      hash = "sha256-rgUi92U5YIth3eFGcOeWd+DzkQNoMvcKIfMa3eJThkQ=";
+    };
+    propagatedBuildInputs = [ CloneChoose ];
+    buildInputs = [ Clone ClonePP ];
+    meta = {
+      description = "Merges arbitrarily deep hashes into a single hash";
+      homepage = "https://metacpan.org/release/Hash-Merge";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HashMergeSimple = buildPerlPackage {
+    pname = "Hash-Merge-Simple";
+    version = "0.051";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROKR/Hash-Merge-Simple-0.051.tar.gz";
+      hash = "sha256-HFYyeHPS8E1XInd/BEhj2WiRBGaZd0DVWnVAccYoe3M=";
+    };
+    buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
+    propagatedBuildInputs = [ Clone ];
+    meta = {
+      description = "Recursively merge two or more hashes, simply";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HashMoreUtils = buildPerlPackage {
+    pname = "Hash-MoreUtils";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/Hash-MoreUtils-0.06.tar.gz";
+      hash = "sha256-25qPuGfVB1PDgIiaXlQHVlG14IybO3IctyIMCINUfeg=";
+    };
+    meta = {
+      description = "Provide the stuff missing in Hash::Util";
+      homepage = "https://metacpan.org/release/Hash-MoreUtils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HashMultiValue = buildPerlPackage {
+    pname = "Hash-MultiValue";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz";
+      hash = "sha256-Zhgd96po4nhvr2iVyIsYuVyACo5Ob7TAf9F2QQo8c/Q=";
+    };
+    meta = {
+      description = "Store multiple values per key";
+      homepage = "https://github.com/miyagawa/Hash-MultiValue";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HashOrdered = buildPerlPackage {
+    pname = "Hash-Ordered";
+    version = "0.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Hash-Ordered-0.014.tar.gz";
+      hash = "sha256-jcNs15FVrjerij3l/ZEg/7qaMeQJJYwoUp7FJRxZdHs=";
+    };
+    buildInputs = [ TestDeep TestFailWarnings TestFatal ];
+    meta = {
+      homepage = "https://github.com/dagolden/Hash-Ordered";
+      description = "A fast, pure-Perl ordered hash class";
+      license = lib.licenses.asl20;
+    };
+  };
+
+  HashSafeKeys = buildPerlPackage {
+    pname = "Hash-SafeKeys";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MOB/Hash-SafeKeys-0.04.tar.gz";
+      hash = "sha256-pSStO/naZ3wfi+bhWXG3ZXVAj3RJI9onZHro8dPDfMw=";
+    };
+    meta = {
+      description = "Get hash contents without resetting each iterator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HashSharedMem = buildPerlModule {
+    pname = "Hash-SharedMem";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Hash-SharedMem-0.005.tar.gz";
+      hash = "sha256-Mkd2gIYC973EStqpN4lTZUVAKakm+mEfMhyb9rlAu14=";
+    };
+    env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-mno-outline-atomics";
+    buildInputs = [ ScalarString ];
+    meta = {
+      description = "Efficient shared mutable hash";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin
+    };
+  };
+
+  HashStoredIterator = buildPerlModule {
+    pname = "Hash-StoredIterator";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Hash-StoredIterator-0.008.tar.gz";
+      hash = "sha256-ucvE3NgjPo0dfxSB3beaSl+dtxgMs+8CtLy+4F5l6gw=";
+    };
+    buildInputs = [ Test2Suite ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Functions for accessing a hashes internal iterator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HashUtilFieldHashCompat = buildPerlPackage {
+    pname = "Hash-Util-FieldHash-Compat";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Hash-Util-FieldHash-Compat-0.11.tar.gz";
+      hash = "sha256-ZC5Gp1tTe6EUILMPiwNAPJCgahVFjNgAnzOf6eXzdBs=";
+    };
+    meta = {
+      description = "Use Hash::Util::FieldHash or ties, depending on availability";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HeapFibonacci = buildPerlPackage {
+    pname = "Heap";
+    version = "0.80";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMM/Heap-0.80.tar.gz";
+      hash = "sha256-zNop88kxdq0P3/9N1vXkrJCzcMuksCg4a3NDv2QTm94=";
+    };
+    meta = {
+      description = "Perl extensions for keeping data partially sorted";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HookLexWrap = buildPerlPackage {
+    pname = "Hook-LexWrap";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Hook-LexWrap-0.26.tar.gz";
+      hash = "sha256-tgvcX5j5T5KUsGre+CsdmW2hktXxg/n0NLYQ/RE37C0=";
+    };
+    buildInputs = [ pkgs.unzip ];
+    meta = {
+      description = "Lexically scoped subroutine wrappers";
+      homepage = "https://github.com/karenetheridge/Hook-LexWrap";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLClean = buildPerlPackage {
+    pname = "HTML-Clean";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AZ/AZJADFTRE/HTML-Clean-1.4.tar.gz";
+      hash = "sha256-pn1KvadR/DxrSjUYU3eoi8pbZRxgszN5gEtOkKF4hwY=";
+    };
+    meta = {
+      description = "Cleans up HTML code for web browsers, not humans";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "htmlclean";
+    };
+  };
+
+  HTMLElementExtended = buildPerlPackage {
+    pname = "HTML-Element-Extended";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-Element-Extended-1.18.tar.gz";
+      hash = "sha256-8+8a8Qjyf+8V6+xmR58lHOCKpJvQCwRiycgMhrS2sys=";
+    };
+    propagatedBuildInputs = [ HTMLTree ];
+    meta = {
+      description = "Perl extension for HTML::Element(3)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLEscape = buildPerlModule {
+    pname = "HTML-Escape";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTML-Escape-1.11.tar.gz";
+      hash = "sha256-Wl7viWUA0epsJKkIXs++mkOr7mjPxmwD+InSostoml0=";
+    };
+    buildInputs = [ ModuleBuildPluggablePPPort TestRequires ];
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "Extremely fast HTML escaping";
+      homepage = "https://github.com/tokuhirom/HTML-Escape";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin
+    };
+  };
+
+  HTMLFromANSI = buildPerlPackage {
+    pname = "HTML-FromANSI";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NU/NUFFIN/HTML-FromANSI-2.03.tar.gz";
+      hash = "sha256-IXdjRe1wGywEx7CTgK+UP5mEzH+ZYkCHrqRdtfwJw1k=";
+    };
+    propagatedBuildInputs = [ HTMLParser TermVT102Boundless ];
+    meta = {
+      description = "Mark up ANSI sequences as HTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ansi2html";
+    };
+  };
+
+  HTMLForm = buildPerlPackage {
+    pname = "HTML-Form";
+    version = "6.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz";
+      hash = "sha256-Q7+qcIc5NIfS1RJhoap/b4Gpex2P73pI/PbvMrFtZFQ=";
+    };
+    buildInputs = [ TestWarnings ];
+    propagatedBuildInputs = [ HTMLParser URI ];
+    meta = {
+      description = "Class that represents an HTML form element";
+      homepage = "https://github.com/libwww-perl/HTML-Form";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLFormatter = buildPerlPackage {
+    pname = "HTML-Formatter";
+    version = "2.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Formatter-2.16.tar.gz";
+      hash = "sha256-ywoN2Kpei6nKIUzkUb9N8zqgnBPpB+jTCC3a/rMBUcw=";
+    };
+    buildInputs = [ FileSlurper TestWarnings ];
+    propagatedBuildInputs = [ FontAFM HTMLTree ];
+    meta = {
+      description = "Base class for HTML formatters";
+      homepage = "https://metacpan.org/release/HTML-Formatter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLFormatExternal = buildPerlPackage {
+    pname = "HTML-FormatExternal";
+    version = "26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/HTML-FormatExternal-26.tar.gz";
+      hash = "sha256-PFnyM9CxBoaoWu0MmUARzsaGJtoBKN6pC1xP3BdGz8M=";
+    };
+    propagatedBuildInputs = [ IPCRun URI constant-defer ];
+    meta = {
+      description = "HTML to text formatting using external programs";
+      homepage = "https://user42.tuxfamily.org/html-formatexternal/index.html";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  HTMLFormatTextWithLinks = buildPerlModule {
+    pname = "HTML-FormatText-WithLinks";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STRUAN/HTML-FormatText-WithLinks-0.15.tar.gz";
+      hash = "sha256-f8wat561j7l9Q+W90U4heRolCiBJmJGMYtahcRMYM7E=";
+    };
+    propagatedBuildInputs = [ HTMLFormatter ];
+    meta = {
+      description = "HTML to text conversion with links as footnotes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLFormatTextWithLinksAndTables = buildPerlPackage {
+    pname = "HTML-FormatText-WithLinks-AndTables";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-0.07.tar.gz";
+      hash = "sha256-gJ7i8RcFcGszxUMStce+5nSDjyvqrtr4y5RecCquObY=";
+    };
+    propagatedBuildInputs = [ HTMLFormatTextWithLinks ];
+    meta = {
+      description = "Converts HTML to Text with tables intact";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLFormFu = buildPerlPackage {
+    pname = "HTML-FormFu";
+    version = "2.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-FormFu-2.07.tar.gz";
+      hash = "sha256-Ty8Bf3qHVPu26RIGyI7RPHVqFOO+oXgYjDuXdGNm6zI=";
+    };
+    buildInputs = [ CGI FileShareDirInstall RegexpAssemble TestException TestMemoryCycle TestRequiresInternet ];
+    propagatedBuildInputs = [ ConfigAny DataVisitor DateTimeFormatBuilder DateTimeFormatNatural EmailValid HTMLScrubber HTMLTokeParserSimple HashFlatten JSONMaybeXS MooseXAliases MooseXAttributeChained NumberFormat PathClass Readonly RegexpCommon TaskWeaken YAMLLibYAML ];
+    meta = {
+      description = "HTML Form Creation, Rendering and Validation Framework";
+      homepage = "https://github.com/FormFu/HTML-FormFu";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLFormFuMultiForm = buildPerlPackage {
+    pname = "HTML-FormFu-MultiForm";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz";
+      hash = "sha256-NvAM12u4luTaCd0rsOXYkGZ/cMePVCUa9NJYyCFJFZ8=";
+    };
+    propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ];
+    meta = {
+      description = "Handle multi-page/stage forms with FormFu";
+      homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLFormHandler = buildPerlPackage {
+    pname = "HTML-FormHandler";
+    version = "0.40068";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40068.tar.gz";
+      hash = "sha256-63t43aMSV1LMi8wDltOXf70o2jPS1ExQQq1tNdbN6Cc=";
+    };
+    # a single test is failing on perl 5.20
+    doCheck = false;
+    buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle TestWarn ];
+    propagatedBuildInputs = [ CryptBlowfish CryptCBC DataClone DateTimeFormatStrptime EmailValid HTMLTree JSONMaybeXS MooseXGetopt MooseXTypesCommon MooseXTypesLoadableClass aliased ];
+    meta = {
+      description = "HTML forms using Moose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLGumbo = buildPerlModule {
+    pname = "HTML-Gumbo";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Gumbo-0.18.tar.gz";
+      hash = "sha256-v1C2HCRlbMP8lYYC2AqcfQFyR6842Nv6Dp3sW3VCXV8=";
+    };
+    propagatedBuildInputs = [ AlienLibGumbo ];
+    meta = {
+      description = "HTML5 parser based on gumbo C library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLMason = buildPerlPackage {
+    pname = "HTML-Mason";
+    version = "1.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.60.tar.gz";
+      hash = "sha256-qgu9WmtjxiyJVfjFXsCF43DXktZSZrbDtcXweIu8d+Y=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ];
+    meta = {
+      description = "High-performance, dynamic web site authoring system";
+      homepage = "https://metacpan.org/release/HTML-Mason";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLMasonPSGIHandler = buildPerlPackage {
+    pname = "HTML-Mason-PSGIHandler";
+    version = "0.53";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Mason-PSGIHandler-0.53.tar.gz";
+      hash = "sha256-6v18dlXfqCYd80RrkxooPTAwaHe4OsRnHEnP906n8As=";
+    };
+    buildInputs = [ Plack ];
+    propagatedBuildInputs = [ CGIPSGI HTMLMason ];
+    meta = {
+      description = "PSGI handler for HTML::Mason";
+      homepage = "https://search.cpan.org/dist/HTML-Mason-PSGIHandler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLParser = buildPerlPackage {
+    pname = "HTML-Parser";
+    version = "3.81";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz";
+      hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I=";
+    };
+    propagatedBuildInputs = [ HTMLTagset HTTPMessage ];
+    meta = {
+      description = "HTML parser class";
+      homepage = "https://github.com/libwww-perl/HTML-Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTagCloud = buildPerlModule {
+    pname = "HTML-TagCloud";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBERTSD/HTML-TagCloud-0.38.tar.gz";
+      hash = "sha256-SYCZRy3vhmtEi/YvQYLfrfWUcuE/JMuGZKZxynm2cBU=";
+    };
+    meta = {
+      description = "Generate An HTML Tag Cloud";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLQuoted = buildPerlPackage {
+    pname = "HTML-Quoted";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-Quoted-0.04.tar.gz";
+      hash = "sha256-i0HzE/3BgS8C9vbDfVjyEshP3PeCf3/UsDCQfzncZQw=";
+    };
+    propagatedBuildInputs = [ HTMLParser ];
+    meta = {
+      description = "Extract structure of quoted HTML mail message";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLRewriteAttributes = buildPerlPackage {
+    pname = "HTML-RewriteAttributes";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-0.05.tar.gz";
+      hash = "sha256-GAjsfN9A0nCFdf5hVaiPEDsX/sd5c6WDHC8kwlDnpYw=";
+    };
+    propagatedBuildInputs = [ HTMLParser ];
+    meta = {
+      description = "Concise attribute rewriting";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLSelectorXPath = buildPerlPackage {
+    pname = "HTML-Selector-XPath";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.28.tar.gz";
+      hash = "sha256-QycX8D7Szz1kETDP09ShU/Ca1PhW2gB4E3kv4LLljQ8=";
+    };
+    buildInputs = [ TestBase ];
+    meta = {
+      description = "CSS Selector to XPath compiler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLScrubber = buildPerlPackage {
+    pname = "HTML-Scrubber";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-0.19.tar.gz";
+      hash = "sha256-rihVePhWX5FUxj5CNHBLV7aDX3ei+C/+ckiZ1FMmK7E=";
+    };
+    propagatedBuildInputs = [ HTMLParser ];
+    buildInputs = [ TestDifferences TestMemoryCycle ];
+    meta = {
+      description = "Perl extension for scrubbing/sanitizing HTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLStripScripts = buildPerlPackage {
+    pname = "HTML-StripScripts";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-1.06.tar.gz";
+      hash = "sha256-Iiv7fsH9+kZeMto9xKvtLtxzZLvhno48UTx9WFsBCa0=";
+    };
+    meta = {
+      description = "Strip scripting constructs out of HTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLStripScriptsParser = buildPerlPackage {
+    pname = "HTML-StripScripts-Parser";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-Parser-1.03.tar.gz";
+      hash = "sha256-R4waTkbrd/p7zpa6KIFo8LmMJ/JQ4A3GMSNlCBrtNAc=";
+    };
+    propagatedBuildInputs = [ HTMLParser HTMLStripScripts ];
+    meta = {
+      description = "XSS filter using HTML::Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTableExtract = buildPerlPackage {
+    pname = "HTML-TableExtract";
+    version = "2.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-TableExtract-2.15.tar.gz";
+      hash = "sha256-hsWcnVjaPKF02l5i9aD7AvTaArGx4B355dFLtl5MPs8=";
+    };
+    preCheck = ''
+      # https://rt.cpan.org/Public/Bug/Display.html?id=121920
+      rm t/30_tree.t
+    '';
+    propagatedBuildInputs = [ HTMLElementExtended ];
+    meta = {
+      description = "Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTagset = buildPerlPackage {
+    pname = "HTML-Tagset";
+    version = "3.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz";
+      hash = "sha256-rbF9rJ42zQEfUkOIHJc5QX/RAvznYPjeTpvkxxMRCOI=";
+    };
+    meta = {
+      description = "Data tables useful in parsing HTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTemplate = buildPerlPackage {
+    pname = "HTML-Template";
+    version = "2.97";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/HTML-Template-2.97.tar.gz";
+      hash = "sha256-ZUevYfOqhXk/hhYZCTjWd9eZX7O3IMFiWAQLyTXiEp8=";
+    };
+    propagatedBuildInputs = [ CGI ];
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "Perl module to use HTML-like templating language";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTidy = buildPerlPackage {
+    pname = "HTML-Tidy";
+    version = "1.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-1.60.tar.gz";
+      hash = "sha256-vPv2XWh/jmcs9gyYIbzWXV6McqeCcrZ7sKwcaZoT18c=";
+    };
+
+    patchPhase = ''
+      sed -i "s#/usr/include/tidyp#${pkgs.tidyp}/include/tidyp#" Makefile.PL
+      sed -i "s#/usr/lib#${pkgs.tidyp}/lib#" Makefile.PL
+    '';
+    buildInputs = [ TestException ];
+    meta = {
+      description = "(X)HTML validation in a Perl object";
+      homepage = "https://github.com/petdance/html-tidy";
+      license = with lib.licenses; [ artistic2 ];
+      mainProgram = "webtidy";
+    };
+  };
+
+  HTMLTiny = buildPerlPackage {
+    pname = "HTML-Tiny";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/HTML-Tiny-1.08.tar.gz";
+      hash = "sha256-DwHfDJ/ICz2dooi6q/jApTdHRE964euWAOevxKPc/rU=";
+    };
+    meta = {
+      description = "Lightweight, dependency free HTML/XML generation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTokeParserSimple = buildPerlModule {
+    pname = "HTML-TokeParser-Simple";
+    version = "3.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-3.16.tar.gz";
+      hash = "sha256-7RETXGg55uDq+WlS5qw1Oi8i67QKchZZZx5dLcwOSp0=";
+    };
+    propagatedBuildInputs = [ HTMLParser SubOverride ];
+    meta = {
+      description = "Easy to use HTML::TokeParser interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLTree = buildPerlModule {
+    pname = "HTML-Tree";
+    version = "5.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KE/KENTNL/HTML-Tree-5.07.tar.gz";
+      hash = "sha256-8DdNuEcxwgS4bB1bkJdf7w0wqGvZ3vkZND5VTjGp278=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ HTMLParser ];
+    meta = {
+      description = "Work with HTML in a DOM-like tree structure";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "htmltree";
+    };
+  };
+
+  HTMLTreeBuilderXPath = buildPerlPackage {
+    pname = "HTML-TreeBuilder-XPath";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-0.14.tar.gz";
+      hash = "sha256-Jeu9skRKClma5eekV9deCe/N8yZqXFcAsUA8y3SIpPM=";
+    };
+    propagatedBuildInputs = [ HTMLTree XMLXPathEngine ];
+    meta = {
+      description = "Add XPath support to HTML::TreeBuilder";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTMLWidget = buildPerlPackage {
+    pname = "HTML-Widget";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz";
+      hash = "sha256-vkLfQFWSXOalob818eB60SvEP2VJ91JJAuozMFoOggs=";
+    };
+    doCheck = false;
+    propagatedBuildInputs = [ ClassAccessorChained ClassDataAccessor DateCalc EmailValid HTMLScrubber HTMLTree ModulePluggableFast ];
+    buildInputs = [ TestNoWarnings ];
+    meta = {
+      description = "HTML Widget And Validation Framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPAcceptLanguage = buildPerlModule {
+    pname = "HTTP-AcceptLanguage";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YAPPO/HTTP-AcceptLanguage-0.02.tar.gz";
+      hash = "sha256-LmBfVk7J66tlVI/17sk/nF3qvv7XBzpyneCuKE5OQq8=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Accept-Language header parser and find available language";
+      homepage = "https://github.com/yappo/p5-HTTP-AcceptLanguage";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPBody = buildPerlPackage {
+    pname = "HTTP-Body";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.22.tar.gz";
+      hash = "sha256-/A0sWFs70VMtkmCZZdWJ4Mh804DnzKQvua0KExEicpc=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ HTTPMessage ];
+    meta = {
+      description = "HTTP Body Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPCookieJar = buildPerlPackage {
+    pname = "HTTP-CookieJar";
+    version = "0.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-0.014.tar.gz";
+      hash = "sha256-cJTqXJH1NtJjuF6Dq06alj4RxECM4I7K5VP6nAzEfnM=";
+    };
+    propagatedBuildInputs = [ HTTPDate ];
+    buildInputs = [ TestDeep TestRequires URI ];
+    # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373
+    doCheck = false;
+    meta = {
+      description = "A minimalist HTTP user agent cookie jar";
+      homepage = "https://github.com/dagolden/HTTP-CookieJar";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  HTTPCookies = buildPerlPackage {
+    pname = "HTTP-Cookies";
+    version = "6.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz";
+      hash = "sha256-4282Yzxc5rXkuHb/z3R4fMXv4HNt1/SHvdc8FPC9cAc=";
+    };
+    propagatedBuildInputs = [ HTTPMessage ];
+    meta = {
+      description = "HTTP cookie jars";
+      homepage = "https://github.com/libwww-perl/HTTP-Cookies";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPDaemon = buildPerlPackage rec {
+    pname = "HTTP-Daemon";
+    version = "6.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz";
+      hash = "sha256-s40JJyXm+k4MTcKkfhVwcEkbr6Db4Wx4o1joBqp+Fz0=";
+    };
+    buildInputs = [ ModuleBuildTiny TestNeeds ];
+    propagatedBuildInputs = [ HTTPMessage ];
+    meta = {
+      description = "A simple http server class";
+      homepage = "https://github.com/libwww-perl/HTTP-Daemon";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPDate = buildPerlPackage {
+    pname = "HTTP-Date";
+    version = "6.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Date-6.06.tar.gz";
+      hash = "sha256-e2hRkcasw+dz0fwCyV7h+frpT3d4MXX154wYHMktK1I=";
+    };
+    propagatedBuildInputs = [ TimeDate ];
+    meta = {
+      description = "Date conversion routines";
+      homepage = "https://github.com/libwww-perl/HTTP-Date";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPEntityParser = buildPerlModule {
+    pname = "HTTP-Entity-Parser";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz";
+      hash = "sha256-OozQ2Muj0XzYwE7oLXNB36okfb3ZSknrlLU/aeSD7Do=";
+    };
+    propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ];
+    buildInputs = [ HTTPMessage ModuleBuildTiny ];
+    meta = {
+      description = "PSGI compliant HTTP Entity Parser";
+      homepage = "https://github.com/kazeburo/HTTP-Entity-Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPDAV = buildPerlPackage rec {
+    pname = "HTTP-DAV";
+    version = "0.49";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/COSIMO/HTTP-DAV-0.49.tar.gz";
+      hash = "sha256-MzOd+ewQbeN9hgnP0NPAg8z7sGwWxlG1s4UaVtF6lXw=";
+    };
+    propagatedBuildInputs = [ XMLDOM ];
+    meta = {
+      description = "WebDAV client library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dave";
+    };
+  };
+
+  HTTPHeadersActionPack = buildPerlPackage {
+    pname = "HTTP-Headers-ActionPack";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTTP-Headers-ActionPack-0.09.tar.gz";
+      hash = "sha256-x4ERq4V+SMaYJJA9S2zoKT/v/GtdZw21UKdn+FOsx9o=";
+    };
+    buildInputs = [ TestFatal TestWarnings ];
+    propagatedBuildInputs = [ HTTPDate HTTPMessage ModuleRuntime SubExporter URI ];
+    meta = {
+      description = "HTTP Action, Adventure and Excitement";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPHeaderParserXS = buildPerlPackage {
+    pname = "HTTP-HeaderParser-XS";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz";
+      hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8=";
+    };
+    meta = {
+      description = "An XS extension for processing HTTP headers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken =
+        stdenv.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
+        || stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTTPHeaderParserXS.x86_64-darwin
+    };
+  };
+
+  HTTPHeadersFast = buildPerlModule {
+    pname = "HTTP-Headers-Fast";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz";
+      hash = "sha256-zEMdtoSW3YhNtLwMC3ESwfSk8dxoxPWjyqdXoedIG0g=";
+    };
+    buildInputs = [ ModuleBuildTiny TestRequires ];
+    propagatedBuildInputs = [ HTTPDate ];
+    meta = {
+      description = "Faster implementation of HTTP::Headers";
+      homepage = "https://github.com/tokuhirom/HTTP-Headers-Fast";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPLite = buildPerlPackage {
+    pname = "HTTP-Lite";
+    version = "2.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-2.44.tar.gz";
+      hash = "sha256-OOQ9eRHPwU46OPA4K2zHptVZMH0jsQnOc6x9JKmz53w=";
+    };
+    buildInputs = [ CGI ];
+    meta = {
+      description = "Lightweight HTTP implementation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPMessage = buildPerlPackage {
+    pname = "HTTP-Message";
+    version = "6.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz";
+      hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4=";
+    };
+    buildInputs = [ TestNeeds TryTiny ];
+    propagatedBuildInputs = [ Clone EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
+    meta = {
+      description = "HTTP style message (base class)";
+      homepage = "https://github.com/libwww-perl/HTTP-Message";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPMultiPartParser = buildPerlPackage {
+    pname = "HTTP-MultiPartParser";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz";
+      hash = "sha256-Xt3aFZ9U0W+GjgMkQKwrAk5VqsSJMYcbYmJ/GhbQCxI=";
+    };
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "HTTP MultiPart Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPNegotiate = buildPerlPackage {
+    pname = "HTTP-Negotiate";
+    version = "6.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz";
+      hash = "sha256-HHKcHqYxAOh4QFzafWb5rf0+1PHWysrKDukVLfco4BY=";
+    };
+    propagatedBuildInputs = [ HTTPMessage ];
+    meta = {
+      description = "Choose a variant to serve";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPParserXS = buildPerlPackage {
+    pname = "HTTP-Parser-XS";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/HTTP-Parser-XS-0.17.tar.gz";
+      hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk=";
+    };
+    meta = {
+      description = "A fast, primitive HTTP request parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPProxy = buildPerlPackage {
+    pname = "HTTP-Proxy";
+    version = "0.304";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/HTTP-Proxy-0.304.tar.gz";
+      hash = "sha256-sFKQU07HNiXCGgVl/DUXCJDasWOEPZUzHCksI/UExp0=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    # tests fail because they require network access
+    doCheck = false;
+    meta = {
+      description = "A pure Perl HTTP proxy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPRequestAsCGI = buildPerlPackage {
+    pname = "HTTP-Request-AsCGI";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/HTTP-Request-AsCGI-1.2.tar.gz";
+      hash = "sha256-lFv7B8bRr1J3P7eEW6YuOnQRGzXL0tXkPvgxnlWsvOo=";
+    };
+    propagatedBuildInputs = [ ClassAccessor HTTPMessage ];
+    meta = {
+      description = "Set up a CGI environment from an HTTP::Request";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPResponseEncoding = buildPerlPackage {
+    pname = "HTTP-Response-Encoding";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/HTTP-Response-Encoding-0.06.tar.gz";
+      hash = "sha256-EBZ7jiOKaCAEqw16zL6dduri21evB8WuLfqAgHSkqKo=";
+    };
+    propagatedBuildInputs = [ HTTPMessage ];
+    buildInputs = [ LWP ];
+    meta = {
+      description = "Adds encoding() to HTTP::Response";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPServerSimple = buildPerlPackage {
+    pname = "HTTP-Server-Simple";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/HTTP-Server-Simple-0.52.tar.gz";
+      hash = "sha256-2JOfpPEr1rjAQ1N/0L+WsFWsNoa5zdn6dz3KauZ5y0w=";
+    };
+    doCheck = false;
+    propagatedBuildInputs = [ CGI ];
+    meta = {
+      description = "Lightweight HTTP server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPServerSimpleAuthen = buildPerlPackage {
+    pname = "HTTP-Server-Simple-Authen";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-Authen-0.04.tar.gz";
+      hash = "sha256-Ld3Iq53ImGmAFR5LqDamu/CR9Fzxlb4XaOvbSpk+1Zs=";
+    };
+    propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ];
+    meta = {
+      description = "Authentication plugin for HTTP::Server::Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPServerSimpleMason = buildPerlPackage {
+    pname = "HTTP-Server-Simple-Mason";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JESSE/HTTP-Server-Simple-Mason-0.14.tar.gz";
+      hash = "sha256-t6Sdjm5Vv/Cx8CeNlRaFRmsUMkO2+eWeBx9UcsoqAlo=";
+    };
+    propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ];
+    meta = {
+      description = "A simple mason server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPServerSimplePSGI = buildPerlPackage {
+    pname = "HTTP-Server-Simple-PSGI";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz";
+      hash = "sha256-X3zLhFMEO5cnhJKnVzKBFuEeA1LyhUooqcY05ukTHbo=";
+    };
+    propagatedBuildInputs = [ HTTPServerSimple ];
+    meta = {
+      description = "Perl Web Server Gateway Interface Specification";
+      homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  HTTPTinyCache = buildPerlPackage {
+    pname = "HTTP-Tiny-Cache";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/HTTP-Tiny-Cache-0.002.tar.gz";
+      hash = "sha256-c323zxncN4By2Rysdnh/sorNg8DRB85OTrS708kRhiE=";
+    };
+    propagatedBuildInputs = [ FileUtilTempdir Logger ];
+    meta = {
+      description = "Cache HTTP::Tiny responses";
+      homepage = "https://metacpan.org/release/HTTP-Tiny-Cache";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  HTTPTinyish = buildPerlPackage {
+    pname = "HTTP-Tinyish";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.18.tar.gz";
+      hash = "sha256-gDgLjTPGv6lrsBBPpqQcJ9zE6cg6SN8frTkJf1/c/eU=";
+    };
+    propagatedBuildInputs = [ FileWhich IPCRun3 ];
+    meta = {
+      description = "HTTP::Tiny compatible HTTP client wrappers";
+      homepage = "https://github.com/miyagawa/HTTP-Tinyish";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  iCalParser = buildPerlPackage {
+    pname = "iCal-Parser";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RI/RIXED/iCal-Parser-1.21.tar.gz";
+      hash = "sha256-DXk5pkSo5nAX7HI509lgTzmGu5pP+Avmj+cpnr/SJww=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatICal FreezeThaw IOString TextvFileasData ];
+    meta = {
+      description = "Parse iCalendar files into a data structure";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ImagePNGLibpng = buildPerlPackage {
+    pname = "Image-PNG-Libpng";
+    version = "0.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz";
+      hash = "sha256-+vu/6/9CP3u4XvJ6MEH7YpG1AzbHpYIiSlysQzHDx9k=";
+    };
+    buildInputs = [ pkgs.libpng ];
+    meta = {
+      description = "Perl interface to libpng";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pnginspect";
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin
+    };
+  };
+
+  Imager = buildPerlPackage {
+    pname = "Imager";
+    version = "1.019";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.019.tar.gz";
+      hash = "sha256-dNRNcBwfFPxLmE+toelVcmtQTC2LBtJl56hh+llDy0g=";
+    };
+    buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ];
+    makeMakerFlags = [ "--incpath ${pkgs.libjpeg.dev}/include" "--libpath ${pkgs.libjpeg.out}/lib" "--incpath" "${pkgs.libpng.dev}/include" "--libpath" "${pkgs.libpng.out}/lib" ];
+    meta = {
+      description = "Perl extension for Generating 24 bit Images";
+      homepage = "http://imager.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ImagerQRCode = buildPerlPackage {
+    pname = "Imager-QRCode";
+    version = "0.035";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KU/KURIHARA/Imager-QRCode-0.035.tar.gz";
+      hash = "sha256-KoSN66Kes5QsRHCaaFPjGKyrDEaMv+27m6rlR2ADJRM=";
+    };
+    propagatedBuildInputs = [ Imager ];
+    meta = {
+      description = "Generate QR Code with Imager using libqrencode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  ImageInfo = buildPerlPackage {
+    pname = "Image-Info";
+    version = "1.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SREZIC/Image-Info-1.44.tar.gz";
+      hash = "sha256-y3/GXdHv/gHrR8HHmlLdFlT0KOOpfbHvI7EmzgFjbw0=";
+    };
+    propagatedBuildInputs = [ IOStringy ];
+    meta = {
+      description = "Extract meta information from image files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ImageSane = buildPerlPackage {
+    pname = "Image-Sane";
+    version = "5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Image-Sane-5.tar.gz";
+      hash = "sha256-Ipqg6fBJ76dg88L25h2dU5r0PY92S1Cm4DBktHKaNf8=";
+    };
+    buildInputs = [ pkgs.sane-backends ExtUtilsDepends ExtUtilsPkgConfig TestRequires TryTiny ];
+    propagatedBuildInputs = [ ExceptionClass Readonly ];
+    meta = {
+      description = "Perl extension for the SANE (Scanner Access Now Easy) Project";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ImageScale = buildPerlPackage {
+    pname = "Image-Scale";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/Image-Scale-0.14.tar.gz";
+      hash = "sha256-8JxfBmO4dzg2WsKBnhhrkJq+ue2F2DvBXudocslHzfg=";
+    };
+    buildInputs = [ pkgs.libpng pkgs.libjpeg TestNoWarnings ];
+    propagatedBuildInputs = [ pkgs.zlib ];
+    makeMakerFlags = [ "--with-jpeg-includes=${pkgs.libjpeg.dev}/include" "--with-jpeg-libs=${pkgs.libjpeg.out}/lib" "--with-png-includes=${pkgs.libpng.dev}/include" "--with-png-libs=${pkgs.libpng.out}/lib" ];
+    meta = {
+      description = "Fast, high-quality fixed-point image resizing";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  ImageSize = buildPerlPackage {
+    pname = "Image-Size";
+    version = "3.300";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-3.300.tar.gz";
+      hash = "sha256-U8mx+GUxzeBg7mNwnR/ac8q8DPLVgdKbIrAUeBufAms=";
+    };
+    buildInputs = [ ModuleBuild ];
+    meta = {
+      description = "A library to extract height/width from images";
+      homepage = "https://search.cpan.org/dist/Image-Size";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "imgsize";
+    };
+  };
+
+  ImageOCRTesseract = buildPerlPackage {
+    pname = "Image-OCR-Tesseract";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/Image-OCR-Tesseract-1.26.tar.gz";
+      hash = "sha256-mNkEJmpwYvCcm0b3fE6UUp4f6ZM54/g/2h+SAT8AfOo=";
+    };
+    nativeBuildInputs = [ pkgs.which pkgs.makeWrapper pkgs.tesseract pkgs.imagemagick ];
+    propagatedBuildInputs = [ FileFindRule FileWhich LEOCHARRECLI StringShellQuote ];
+    postPatch = ''
+      substituteInPlace lib/Image/OCR/Tesseract.pm \
+        --replace "which('tesseract')" "\"${pkgs.tesseract}/bin/tesseract\"" \
+        --replace "which('convert')" "\"${pkgs.imagemagick}/bin/convert"\"
+    '';
+    postInstall = ''
+      wrapProgram $out/bin/ocr --prefix PATH : ${lib.makeBinPath [ pkgs.tesseract pkgs.imagemagick ]}
+    '';
+    meta = {
+      description = "Read an image with tesseract ocr and get output";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ocr";
+    };
+  };
+
+  IMAPClient = buildPerlPackage {
+    pname = "IMAP-Client";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CONTEB/IMAP-Client-0.13.tar.gz";
+      hash = "sha256-inovpVt1qFPEgBQXeDk62sKUts0gfN9UFA9nwS8kypU=";
+    };
+    doCheck = false; # nondeterministic
+    meta = {
+      description = "Advanced manipulation of IMAP services w/ referral support";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Importer = buildPerlPackage {
+    pname = "Importer";
+    version = "0.026";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Importer-0.026.tar.gz";
+      hash = "sha256-4I+oThPLmYt6iX/I7Jw0WfzBcWr/Jcw0Pjbvh1iRsO8=";
+    };
+    meta = {
+      description = "Alternative but compatible interface to modules that export symbols";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ImportInto = buildPerlPackage {
+    pname = "Import-Into";
+    version = "1.002005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Import-Into-1.002005.tar.gz";
+      hash = "sha256-vZ53o/tmK0C0OxjTKAzTUu35+tjZQoPlGBgcwc6fBWc=";
+    };
+    propagatedBuildInputs = [ ModuleRuntime ];
+    meta = {
+      description = "Import packages into other packages";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IO = buildPerlPackage {
+    pname = "IO";
+    version = "1.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/IO-1.51.tar.gz";
+      hash = "sha256-VJPqVZmHKM0rfsuCNMWPtdXfJwmNDwet3KIkRNdhbOA=";
+    };
+    doCheck = false;
+    meta = {
+      description = "Perl core IO modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOAIO = buildPerlPackage {
+    pname = "IO-AIO";
+    version = "4.73";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/IO-AIO-4.73.tar.gz";
+      hash = "sha256-mltHx4Ak+rdmPR5a90ob6rRQ19Y7poV+MbP9gobkrFo=";
+    };
+    buildInputs = [ CanaryStability ];
+    propagatedBuildInputs = [ commonsense ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/treescan
+    '';
+    meta = {
+      description = "Asynchronous/Advanced Input/Output";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "treescan";
+    };
+  };
+
+  IOAll = buildPerlPackage {
+    pname = "IO-All";
+    version = "0.87";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/IO-All-0.87.tar.gz";
+      hash = "sha256-VOIdJQwCKRJ+MLd6NGHhAHeFTsJE8m+2cPG0Re1MTVs=";
+    };
+    meta = {
+      description = "IO::All of it to Graham and Damian!";
+      homepage = "https://github.com/ingydotnet/io-all-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOAsync = buildPerlModule {
+    pname = "IO-Async";
+    version = "0.802";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.802.tar.gz";
+      hash = "sha256-5YJzFXd2fEfqxDXvKQRmPUp1Cw5oAqSmGJo38Mswhzg";
+    };
+    preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox
+    propagatedBuildInputs = [ Future StructDumb ];
+    buildInputs = [ TestFatal TestFutureIOImpl TestIdentity TestMetricsAny TestRefcount ];
+    meta = {
+      description = "Asynchronous event-driven programming";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOAsyncSSL = buildPerlModule {
+    pname = "IO-Async-SSL";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-SSL-0.25.tar.gz";
+      hash = "sha256-Te9IXbHv9OE5tLWRIgLA/WHDrtLOw1vVq4v3u9g/WnU=";
+    };
+    buildInputs = [ TestIdentity ];
+    propagatedBuildInputs = [ Future IOAsync IOSocketSSL ];
+    meta = {
+      description = "Use SSL/TLS with IO::Async";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  IOCapture = buildPerlPackage {
+    pname = "IO-Capture";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REYNOLDS/IO-Capture-0.05.tar.gz";
+      hash = "sha256-wsFaJUynT7jFfSXXtsvK/3ejtPtWlUI/H4C7Qjq//qk=";
+    };
+    meta = {
+      description = "Abstract Base Class to build modules to capture output";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOCaptureOutput = buildPerlPackage {
+    pname = "IO-CaptureOutput";
+    version = "1.1105";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-1.1105.tar.gz";
+      hash = "sha256-rpkAn8oSc4APFp7LgvTtHMbHZ5XxVr7lwAkwBdVy9Ic=";
+    };
+    meta = {
+      description = "(DEPRECATED) capture STDOUT and STDERR from Perl code, subprocesses or XS";
+      homepage = "https://github.com/dagolden/IO-CaptureOutput";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOCompress = buildPerlPackage {
+    pname = "IO-Compress";
+    version = "2.206";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.206.tar.gz";
+      hash = "sha256-fTBiuaSU91fo0GFPIg2D8icxu9oa6198/w5yqD9DPTU=";
+    };
+    propagatedBuildInputs = [ CompressRawBzip2 CompressRawZlib ];
+    # Same as CompressRawZlib
+    doCheck = false && !stdenv.isDarwin;
+    meta = {
+      description = "IO Interface to compressed data files/buffers";
+      homepage = "https://github.com/pmqs/IO-Compress";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "streamzip";
+    };
+  };
+
+  IODigest = buildPerlPackage {
+    pname = "IO-Digest";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.11.tar.gz";
+      hash = "sha256-j/z4Wn9iE+XpQUCtzCsXntAkmOrchDCUV+kE3sk/f5I=";
+    };
+    propagatedBuildInputs = [ PerlIOviadynamic ];
+    meta = {
+      description = "Calculate digests while reading or writing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOHTML = buildPerlPackage {
+    pname = "IO-HTML";
+    version = "1.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz";
+      hash = "sha256-yHst9ZRju/LDlZZ3PftcA73g9+EFGvM5+WP1jBy9i/U=";
+    };
+    meta = {
+      description = "Open an HTML file with automatic charset detection";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOHandleUtil = buildPerlModule {
+    pname = "IO-Handle-Util";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz";
+      hash = "sha256-jblmqRPaxORkIwcCqiIr84r+ISGT5ja8DzzGUbrezO4=";
+    };
+    propagatedBuildInputs = [ IOString SubExporter asa ];
+    buildInputs = [ ModuleBuildTiny TestSimple13 ];
+    meta = {
+      description = "Functions for working with IO::Handle like objects";
+      homepage = "https://github.com/karenetheridge/IO-Handle-Util";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOInterface = buildPerlModule {
+    pname = "IO-Interface";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz";
+      hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo=";
+    };
+    meta = {
+      description = "Access and modify network interface card configuration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOInteractive = buildPerlPackage {
+    pname = "IO-Interactive";
+    version = "1.025";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-1.025.tar.gz";
+      hash = "sha256-yh7G+6t6AnXdLpz2e3yw4ARYY/MVMyEMfcVEYxtqqqc=";
+    };
+    meta = {
+      description = "Utilities for interactive I/O";
+      homepage = "https://github.com/briandfoy/io-interactive";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  IOInteractiveTiny = buildPerlPackage {
+    pname = "IO-Interactive-Tiny";
+    version = "0.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMUEY/IO-Interactive-Tiny-0.2.tar.gz";
+      hash = "sha256-RcBpZQXH5DR4RfXNJRK3sbx4+85MvtK1gAgoP8lepfk=";
+    };
+    meta = {
+      description = "Is_interactive() without large deps";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  IOLockedFile = buildPerlPackage {
+    pname = "IO-LockedFile";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RANI/IO-LockedFile-0.23.tar.gz";
+      hash = "sha256-sdt+amvxvh4GFabstc6+eLAOKHsSfVhW0/FrNd1H+LU=";
+    };
+    meta = {
+      description = "Supply object methods for locking files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOMultiplex = buildPerlPackage {
+    pname = "IO-Multiplex";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBB/IO-Multiplex-1.16.tar.gz";
+      hash = "sha256-dNIsRLWtLnGQ4nhuihfXS79M74m00RV7ozWYtaJyDa0=";
+    };
+    meta = {
+      description = "Supply object methods for locking files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOPager = buildPerlPackage {
+    version = "2.10";
+    pname = "IO-Pager";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-2.10.tgz";
+      hash = "sha256-vLTYwtKAyANLglkcwLnrZ6AE+QzpqgWXn8YHEwessZU=";
+    };
+    propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
+    meta = {
+      description = "Select a pager (possibly perl-based) & pipe it text if a TTY";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "tp";
+    };
+  };
+
+  IOPty = buildPerlModule {
+    pname = "IO-Pty";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.16.tar.gz";
+      hash = "sha256-jxoJwHBzitxpXfkD8uf3QwjdjZkbkUwLw5Cg5gISlN0=";
+    };
+    buildPhase = "make";
+    checkPhase = "make test";
+    installPhase = "make install";
+    meta = {
+      homepage = "https://github.com/toddr/IO-Tty";
+      description = "Pseudo TTY object class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOPrompt = buildPerlModule {
+    pname = "IO-Prompt";
+    version = "0.997004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCONWAY/IO-Prompt-0.997004.tar.gz";
+      hash = "sha256-8XuzBe5qyLWyA+bYJuuUDE8/bW9L/nGcOzoiX0b1hhU=";
+    };
+    propagatedBuildInputs = [ TermReadKey Want ];
+    doCheck = false; # needs access to /dev/tty
+    meta = {
+      description = "Interactively prompt for user input";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOSessionData = buildPerlPackage {
+    pname = "IO-SessionData";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz";
+      hash = "sha256-ZKRxKj7bs/0QIw2ylsKcjGbwZq37wMPfakglj+85Ld0=";
+    };
+    outputs = [ "out" "dev" ]; # no "devdoc"
+    meta = {
+      description = "Supporting module for SOAP::Lite";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOSocketINET6 = buildPerlModule {
+    pname = "IO-Socket-INET6";
+    version = "2.73";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-2.73.tar.gz";
+      hash = "sha256-ttp0aFMlPVtKxDGRtPaaRxlZXuE6fKZ2qAVM825tFrs=";
+    };
+    propagatedBuildInputs = [ Socket6 ];
+    doCheck = false;
+    meta = {
+      description = "[DEPRECATED] Object interface for AF_INET/AF_INET6 domain sockets";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOSocketSSL = buildPerlPackage {
+    pname = "IO-Socket-SSL";
+    version = "2.083";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.083.tar.gz";
+      hash = "sha256-kE7yh2VECpfYqaDfWX+MPX88sKBT0bCCwQvtA7yAIGk=";
+    };
+    propagatedBuildInputs = [ MozillaCA NetSSLeay ];
+    # Fix path to default certificate store.
+    postPatch = ''
+      substituteInPlace lib/IO/Socket/SSL.pm \
+        --replace "\$openssldir/cert.pem" "/etc/ssl/certs/ca-certificates.crt"
+    '';
+    doCheck = false; # tries to connect to facebook.com etc.
+    meta = {
+      description = "Nearly transparent SSL encapsulation for IO::Socket::INET";
+      homepage = "https://github.com/noxxi/p5-io-socket-ssl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOSocketTimeout = buildPerlModule {
+    pname = "IO-Socket-Timeout";
+    version = "0.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAMS/IO-Socket-Timeout-0.32.tar.gz";
+      hash = "sha256-7fkV1sxmvuQ1A6ptwrNzNm846v9wFYIYPa0Qy4rfKXI=";
+    };
+    buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
+    propagatedBuildInputs = [ PerlIOviaTimeout ];
+    meta = {
+      description = "IO::Socket with read/write timeout";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOString = buildPerlPackage {
+    pname = "IO-String";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz";
+      hash = "sha256-Kj9K2EQtkHB4DljvQ3ItGdHuIagDv3yCBod6EEgt5aA=";
+    };
+    meta = {
+      description = "Emulate file interface for in-core strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOStringy = buildPerlPackage {
+    pname = "IO-Stringy";
+    version = "2.113";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/IO-Stringy-2.113.tar.gz";
+      hash = "sha256-USIPyvn2amObadJR17B1e/QgL0+d69Rb3TQaaspi/k4=";
+    };
+    meta = {
+      description = "I/O on in-core objects like strings and arrays";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOStty = buildPerlModule {
+    pname = "IO-Stty";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Stty-0.04.tar.gz";
+      hash = "sha256-XJUJ8ahpPYKH+gE97wv4eqZM2ScThGHvjetVUDxmUcI=";
+    };
+    buildPhase = "make";
+    checkPhase = "make test";
+    installPhase = "make install";
+    meta = {
+      description = "Change and print terminal line settings";
+      homepage = "https://wiki.github.com/toddr/IO-Stty";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOTee = buildPerlPackage {
+    pname = "IO-Tee";
+    version = "0.66";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/IO-Tee-0.66.tar.gz";
+      hash = "sha256-LZznIGUW+cMIY6NnqhwrmzVwLjabCrqhX5n7LMCFUuA=";
+    };
+    meta = {
+      description = "Multiplex output to multiple output handles";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOTieCombine = buildPerlPackage {
+    pname = "IO-TieCombine";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.005.tar.gz";
+      hash = "sha256-QC1NuDALPScWMvSZXgreMp2JKAp+R/K634s4r25Vaa8=";
+    };
+    meta = {
+      description = "Produce tied (and other) separate but combined variables";
+      homepage = "https://github.com/rjbs/IO-TieCombine";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOTty = buildPerlPackage {
+    pname = "IO-Tty";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.17.tar.gz";
+      hash = "sha256-pfGoMCC8W13WwbVw9Ix1RuCo9/rBCgaHQLA5Ja2eFOg=";
+    };
+    patches = [ ../development/perl-modules/IO-Tty-fix-makefile.patch ];
+    doCheck = !stdenv.isDarwin;  # openpty fails in the sandbox
+    meta = {
+      description = "Low-level allocate a pseudo-Tty, import constants";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IPCConcurrencyLimit = buildPerlPackage {
+    pname = "IPC-ConcurrencyLimit";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTK/IPC-ConcurrencyLimit-0.17.tar.gz";
+      hash = "sha256-Lk11vlLpD8YFg31ajp+yacCofdPTYfMBLA/5Sl+9z+8=";
+    };
+    buildInputs = [ ExtUtilsMakeMaker ];
+    propagatedBuildInputs = [ FilePath IO ];
+    meta = {
+      description = "Lock-based limits on cooperative multi-processing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IPCountry = buildPerlPackage {
+    pname = "IP-Country";
+    version = "2.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NW/NWETTERS/IP-Country-2.28.tar.gz";
+      hash = "sha256-iNuDOlqyLtBstT1vIFcl47U3GyVFlgU3OIhekfoQX3U=";
+    };
+    propagatedBuildInputs = [ GeographyCountries ];
+    meta = {
+      description = "Fast lookup of country codes from IP addresses";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "ip2cc";
+    };
+  };
+
+  GeographyCountries = buildPerlPackage {
+    pname = "Geography-Countries";
+    version = "2009041301";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Geography-Countries-2009041301.tar.gz";
+      hash = "sha256-SMQuQOgoG6fJgXQ6hUxI5t7y1R6wkl6myW4lx0SX8g8=";
+    };
+    meta = {
+      description = "2-letter, 3-letter, and numerical codes for countries";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+
+  IPCRun = buildPerlPackage {
+    pname = "IPC-Run";
+    version = "20231003.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20231003.0.tar.gz";
+      hash = "sha256-6yW731kT0pF5fvG/6ZjxUTC0VdPtAqrN5oVvCyXk/lc=";
+    };
+    doCheck = false; /* attempts a network connection to localhost */
+    propagatedBuildInputs = [ IOTty ];
+    buildInputs = [ Readonly ];
+    meta = {
+      description = "System() and background procs w/ piping, redirs, ptys (Unix, Win32)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IPCRun3 = buildPerlPackage {
+    pname = "IPC-Run3";
+    version = "0.048";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz";
+      hash = "sha256-PYHDzBtc/2nMqTYeLG443wNSJRrntB4v8/68hQ5GNWU=";
+    };
+    meta = {
+      description = "Run a subprocess with input/output redirection";
+      license = with lib.licenses; [ artistic1 gpl1Plus bsd3 ];
+    };
+  };
+
+  IPCShareLite = buildPerlPackage {
+    pname = "IPC-ShareLite";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/IPC-ShareLite-0.17.tar.gz";
+      hash = "sha256-FNQGuR2pbWUh0NGoLSKjBidHZSJrhrClbn/93Plq578=";
+    };
+    meta = {
+      description = "Lightweight interface to shared memory";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IPCSystemSimple = buildPerlPackage {
+    pname = "IPC-System-Simple";
+    version = "1.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz";
+      hash = "sha256-Iub1IitQXuUTBY/co1q3oeq4BTm5jlykqSOnCorpup4=";
+    };
+    meta = {
+      description = "Run commands simply, with detailed diagnostics";
+      homepage = "http://thenceforward.net/perl/modules/IPC-System-Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IPCSysV = buildPerlPackage {
+    pname = "IPC-SysV";
+    version = "2.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MH/MHX/IPC-SysV-2.09.tar.gz";
+      hash = "sha256-GJdUHHTVSP0QB+tsB/NBnTx1ddgFamK1ulJwohZtLb0=";
+    };
+    meta = {
+      description = "System V IPC constants and system calls";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IRCUtils = buildPerlPackage {
+    pname = "IRC-Utils";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
+      hash = "sha256-x9YxHrbHnpg4M8nmtOjUJtB6mHTSD0vGQbMTuZybyKA=";
+    };
+    meta = {
+      description = "Common utilities for IRC-related tasks";
+      homepage = "https://metacpan.org/release/IRC-Utils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  ImageExifTool = buildPerlPackage rec {
+    pname = "Image-ExifTool";
+    version = "12.70";
+
+    src = fetchurl {
+      url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz";
+      hash = "sha256-TLJSJEXMPj870TkExq6uraX8Wl4kmNerrSlX3LQsr/4=";
+    };
+
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/exiftool
+    '';
+
+    meta = {
+      description = "A tool to read, write and edit EXIF meta information";
+      longDescription = ''
+        ExifTool is a platform-independent Perl library plus a command-line
+        application for reading, writing and editing meta information in a wide
+        variety of files. ExifTool supports many different metadata formats
+        including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop
+        IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital
+        cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP,
+        JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon,
+        Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One,
+        Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
+      '';
+      homepage = "https://exiftool.org/";
+      changelog = "https://exiftool.org/history.html";
+      license = with lib.licenses; [ gpl1Plus /* or */ artistic2 ];
+      maintainers = with maintainers; [ kiloreux anthonyroussel ];
+      mainProgram = "exiftool";
+    };
+  };
+
+  Inline = buildPerlPackage {
+    pname = "Inline";
+    version = "0.86";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/Inline-0.86.tar.gz";
+      hash = "sha256-UQp94tARsNuAsIdOjA9zkAEJkQAK4TXP90dN8ebVHjo=";
+    };
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Write Perl Subroutines in Other Programming Languages";
+      longDescription = ''
+        The Inline module allows you to put source code from other
+        programming languages directly "inline" in a Perl script or
+        module. The code is automatically compiled as needed, and then loaded
+        for immediate access from Perl.
+      '';
+      homepage = "https://github.com/ingydotnet/inline-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  InlineC = buildPerlPackage {
+    pname = "Inline-C";
+    version = "0.82";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-C-0.82.tar.gz";
+      hash = "sha256-EPvPHhWNHI134d2TTjeRZbEmpFwTZFrQvp3AfRUd0Mw=";
+    };
+    buildInputs = [ FileCopyRecursive TestWarn YAMLLibYAML ];
+    propagatedBuildInputs = [ Inline ParseRecDescent Pegex ];
+    postPatch = ''
+      # this test will fail with chroot builds
+      rm -f t/08taint.t
+      rm -f t/28autowrap.t
+    '';
+    meta = {
+      description = "C Language Support for Inline";
+      homepage = "https://github.com/ingydotnet/inline-c-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  InlineJava = buildPerlPackage {
+    pname = "Inline-Java";
+    version = "0.67";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-Java-0.67.tar.gz";
+      hash = "sha256-9YVLMcvOFjwz4mJN0jFODA2X4JRDcbcYjlkBuj9vpMk=";
+    };
+
+    buildInputs = [ FileWhich ];
+    propagatedBuildInputs = [ Inline ];
+
+    # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
+    makeMakerFlags = [ "J2SDK=${pkgs.jdk8}" ];
+
+    # FIXME: Apparently tests want to access the network.
+    doCheck = false;
+
+    meta = {
+      description = "Write Perl classes in Java";
+      longDescription = ''
+        The Inline::Java module allows you to put Java source code directly
+        "inline" in a Perl script or module.  A Java compiler is launched and
+        the Java code is compiled.  Then Perl asks the Java classes what
+        public methods have been defined.  These classes and methods are
+        available to the Perl program as if they had been written in Perl.
+      '';
+      license = with lib.licenses; [ artistic2 ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.InlineJava.x86_64-darwin
+    };
+  };
+
+  IPCSignal = buildPerlPackage {
+    pname = "IPC-Signal";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROSCH/IPC-Signal-1.00.tar.gz";
+      hash = "sha256-fCH5yMLQwPDw9G533nw9h53VYmaN3wUlh1w4zvIHb9A=";
+    };
+    meta = {
+      description = "Utility functions dealing with signals";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JavaScriptMinifierXS = buildPerlPackage {
+    pname = "JavaScript-Minifier-XS";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.15.tar.gz";
+      hash = "sha256-XZsDT1jwtv9bZGR708WpzgWypw7e4zn7wxc67nR8wFA=";
+    };
+    buildInputs = [ TestDiagINC ];
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
+    meta = {
+      description = "XS based JavaScript minifier";
+      homepage = "https://metacpan.org/release/JavaScript-Minifier-XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JavaScriptValueEscape = buildPerlModule {
+    pname = "JavaScript-Value-Escape";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz";
+      hash = "sha256-msvaNwjt4R9r6uXxEvGIw6kCOk0myOzYmqgru2kxo9w=";
+    };
+    meta = {
+      description = "Avoid XSS with JavaScript value interpolation";
+      homepage = "https://github.com/kazeburo/JavaScript-Value-Escape";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSON = buildPerlPackage {
+    pname = "JSON";
+    version = "4.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-4.10.tar.gz";
+      hash = "sha256-34tRQ9mn3pnEe1XxoXC9H2n3EZNcGGptwKtW3QV1jjU=";
+    };
+    # Do not abort cross-compilation on failure to load native JSON module into host perl
+    preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+      substituteInPlace Makefile.PL --replace "exit 0;" ""
+    '';
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "JSON (JavaScript Object Notation) encoder/decoder";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSONAny = buildPerlPackage {
+    pname = "JSON-Any";
+    version = "1.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz";
+      hash = "sha256-CDJWJVpICU/ZrBI54P6ooQojg6nNHvSxxyZO3htEAKs=";
+    };
+    buildInputs = [ TestFatal TestNeeds TestWarnings TestWithoutModule ];
+    meta = {
+      description = "(DEPRECATED) Wrapper Class for the various JSON classes";
+      homepage = "https://github.com/karenetheridge/JSON-Any";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSONCreate = buildPerlPackage {
+    pname = "JSON-Create";
+    version = "0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Create-0.35.tar.gz";
+      hash = "sha256-X67+DYM7gTJWiGUwjzI5082qG4oezJtWJNzx774QaD4=";
+    };
+    propagatedBuildInputs = [ JSONParse UnicodeUTF8 ];
+    meta = {
+      description = "Create JSON";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSONMaybeXS = buildPerlPackage {
+    pname = "JSON-MaybeXS";
+    version = "1.004005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004005.tar.gz";
+      hash = "sha256-9ba8GfV55mtymfh0i4rD4XGTbcTn/LcqiiV6m9SCozE=";
+    };
+    buildInputs = [ TestNeeds ];
+    meta = {
+      description = "Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSONPP = buildPerlPackage {
+    pname = "JSON-PP";
+    version = "4.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-PP-4.16.tar.gz";
+      hash = "sha256-i8LxYrr8QmRcSJkFrXJUDw08KEs2DJYpkJUYPDDMl4k=";
+    };
+    meta = {
+      description = "JSON::XS compatible pure-Perl module";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "json_pp";
+    };
+  };
+
+  JSONPPCompat5006 = buildPerlPackage {
+    pname = "JSON-PP-Compat5006";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-PP-Compat5006-1.09.tar.gz";
+      hash = "sha256-GXAw31JjX5u+Ja8QdC7qW9dJcUcxGMETEfyry2LjcWo=";
+    };
+    meta = {
+      description = "Helper module in using JSON::PP in Perl 5.6";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSONParse = buildPerlPackage {
+    pname = "JSON-Parse";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.62.tar.gz";
+      hash = "sha256-YnMYD5OSSXQB3dbYIHBvWqhsG+iIkd1qq02Qa1z/Ztk=";
+    };
+    meta = {
+      description = "Parse JSON";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "validjson";
+    };
+  };
+
+  JSONValidator = buildPerlPackage {
+    pname = "JSON-Validator";
+    version = "5.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-5.14.tar.gz";
+      hash = "sha256-YISl1AdeQhqTj/su6XuFBPqjXoZtD3tbWBETr17ijhs=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
+    meta = {
+      description = "Validate data against a JSON schema";
+      homepage = "https://github.com/mojolicious/json-validator";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  JSONWebToken = buildPerlModule {
+    pname = "JSON-WebToken";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAICRON/JSON-WebToken-0.10.tar.gz";
+      hash = "sha256-d8GCqYUo8XFNgq/FSNWztNyT5nBpEou5uUE/JM8HJIs=";
+    };
+    buildInputs = [ TestMockGuard TestRequires ];
+    propagatedBuildInputs = [ JSON ModuleRuntime ];
+    meta = {
+      description = "JSON Web Token (JWT) implementation";
+      homepage = "https://github.com/xaicron/p5-JSON-WebToken";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  JSONXS = buildPerlPackage {
+    pname = "JSON-XS";
+    version = "4.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz";
+      hash = "sha256-UVU29F8voafojIgkUzdY0BIdJnq5y0U6G1iHyKVrkGg=";
+    };
+    propagatedBuildInputs = [ TypesSerialiser ];
+    buildInputs = [ CanaryStability ];
+    meta = {
+      description = "JSON serialising/deserialising, done correctly and fast";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "json_xs";
+    };
+  };
+
+  JSONXSVersionOneAndTwo = buildPerlPackage {
+    pname = "JSON-XS-VersionOneAndTwo";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LB/LBROCARD/JSON-XS-VersionOneAndTwo-0.31.tar.gz";
+      hash = "sha256-5gksTZYfrnd6z3/pn7PNbltxD+yFdlprkEF0gOTJSjQ=";
+    };
+    propagatedBuildInputs = [ JSONXS ];
+    meta = {
+      description = "Support versions 1 and 2 of JSON::XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Later = buildPerlPackage {
+    version = "0.21";
+    pname = "Object-Realize-Later";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/Object-Realize-Later-0.21.tar.gz";
+      hash = "sha256-j3uWQMyONOqSvPbAEEmgPBReDrRuViJ14o3d06jW2Nk=";
+    };
+    meta = {
+      description = "Delayed creation of objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LatexIndent = buildPerlPackage rec {
+    pname = "latexindent.pl";
+    version = "3.21";
+
+    src = fetchFromGitHub {
+      owner = "cmhughes";
+      repo = pname;
+      rev = "V${version}";
+      hash = "sha256-STXHOzsshyN7rc2VtJxxt6La4UPGpRYlMO8TX1Jd7pM=";
+    };
+
+    outputs = [ "out" ];
+
+    propagatedBuildInputs = [ FileHomeDir YAMLTiny ];
+
+    preBuild = ''
+      patchShebangs ./latexindent.pl
+    '';
+
+    meta = {
+      description = "Perl script to add indentation to LaTeX files";
+      homepage = "https://github.com/cmhughes/latexindent.pl";
+      license = lib.licenses.gpl3Plus;
+    };
+  };
+
+  LaTeXML = buildPerlPackage rec {
+    pname = "LaTeXML";
+    version = "0.8.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz";
+      hash = "sha256-JdqdlEB3newNrdTMLUIn6Oq4dDfAcZh3J03PuQakzHk=";
+    };
+    outputs = [ "out" "tex" ];
+    propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageMagick ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ];
+    nativeBuildInputs = [ pkgs.makeWrapper ] ++ lib.optional stdenv.isDarwin shortenPerlShebang;
+    makeMakerFlags = [ "TEXMF=\${tex}" "NOMKTEXLSR" ];
+    # shebangs need to be patched before executables are copied to $out
+    preBuild = ''
+      patchShebangs bin/
+    '' + lib.optionalString stdenv.isDarwin ''
+      for file in bin/*; do
+        shortenPerlShebang "$file"
+      done
+    '';
+    postInstall = ''
+      for file in latexmlc latexmlmath latexmlpost ; do
+        # add runtime dependencies that cause silent failures when missing
+        wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]}
+      done
+    '';
+    passthru = {
+      tlType = "run";
+      pkgs = [ LaTeXML.tex ];
+    };
+    meta = {
+      description = "Transforms TeX and LaTeX into XML/HTML/MathML";
+      homepage = "https://dlmf.nist.gov/LaTeXML/";
+      license = with lib.licenses; [ publicDomain ];
+      maintainers = with maintainers; [ xworld21 ];
+      mainProgram = "latexml";
+    };
+  };
+
+  LEOCHARRECLI = buildPerlPackage {
+    pname = "LEOCHARRE-CLI";
+    version = "1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-CLI-1.19.tar.gz";
+      hash = "sha256-N4NfEe41MmJBtNMDaK4bwZWlBBSzZi2z4TuGW9Uvzek=";
+    };
+    propagatedBuildInputs = [ FileWhich Filechmod LEOCHARREDebug Linuxusermod YAML ];
+    meta = {
+      description = "Useful subs for coding cli scripts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LEOCHARREDebug = buildPerlPackage {
+    pname = "LEOCHARRE-Debug";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-Debug-1.03.tar.gz";
+      hash = "sha256-wWZao6vUV8yGJLjEGMb4vfWPs6aG+O7VFc9+k1FN8ZI=";
+    };
+    meta = {
+      description = "Debug sub";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LexicalSealRequireHints = buildPerlModule {
+    pname = "Lexical-SealRequireHints";
+    version = "0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-0.012.tar.gz";
+      hash = "sha256-wyvcOOBvjWyQdlu74xaMNYJH2n2uhbgLqEotoXY3V90=";
+    };
+    meta = {
+      description = "Prevent leakage of lexical hints";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  libapreq2 = buildPerlPackage rec {
+    pname = "libapreq2";
+    version = "2.17";
+    src = fetchurl {
+      url = "mirror://apache/httpd/libapreq/${pname}-${version}.tar.gz";
+      hash = "sha256-BGSH8ITBL6HIIq/8X33lbv7ZtIkFpCbmMaa5ScEU2Gw=";
+    };
+    outputs = [ "out" ];
+    buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ];
+    propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ];
+    makeMakerFlags = [
+      "--with-apache2-src=${pkgs.apacheHttpd.dev}"
+      "--with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs"
+      "--with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd"
+      "--with-apr-config=${pkgs.apr.dev}/bin/apr-1-config"
+      "--with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config"
+    ];
+    preConfigure = ''
+      # override broken prereq check
+      substituteInPlace configure --replace "prereq_check=\"\$PERL \$PERL_OPTS build/version_check.pl\"" "prereq_check=\"echo\""
+      '';
+    preBuild = ''
+      substituteInPlace apreq2-config --replace "dirname" "${pkgs.coreutils}/bin/dirname"
+      '';
+    installPhase = ''
+      mkdir $out
+
+      # install the library
+      make install DESTDIR=$out
+      cp -r $out/${pkgs.apacheHttpd.dev}/. $out/.
+      cp -r $out/$out/. $out/.
+
+      # install the perl module
+      pushd glue/perl
+      perl Makefile.PL
+      make install DESTDIR=$out
+      cp -r $out/${perl}/lib/perl5 $out/lib/
+      popd
+
+      # install the apache module
+      # https://computergod.typepad.com/home/2007/06/webgui_and_suse.html
+      # NOTE: if using the apache module you must use "apreq" as the module name, not "apreq2"
+      # services.httpd.extraModules = [ { name = "apreq"; path = "''${pkgs.perlPackages.libapreq2}/modules/mod_apreq2.so"; } ];
+      pushd module
+      make install DESTDIR=$out
+      cp -r $out/${pkgs.apacheHttpd.out}/modules $out/
+      popd
+
+      rm -r $out/nix
+    '';
+    doCheck = false; # test would need to start apache httpd
+    meta = {
+      description = "Wrapper for libapreq2's module/handle API";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  libintl-perl = buildPerlPackage {
+    pname = "libintl-perl";
+    version = "1.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GU/GUIDO/libintl-perl-1.33.tar.gz";
+      hash = "sha256-USbtqczQ7rENuC3e9jy8r329dx54zA+xEMw7WmuGeec=";
+    };
+    meta = {
+      description = "Portable l10n and i10n functions";
+      license = with lib.licenses; [ gpl3Only ];
+    };
+  };
+
+  libnet = buildPerlPackage {
+    pname = "libnet";
+    version = "3.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHAY/libnet-3.15.tar.gz";
+      hash = "sha256-px9NtYDhp2fWk2+qW6848fpheCQ0LaB4tWEoPob49KI=";
+    };
+    meta = {
+      description = "Collection of network protocol modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  librelative = buildPerlPackage {
+    pname = "lib-relative";
+    version = "1.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.002.tar.gz";
+      hash = "sha256-5EcCFRZ8QGkXYD54vk2TESz2kTzTQq64ALQS4BHIp4s=";
+    };
+    meta = {
+      description = "Add paths relative to the current file to @INC";
+      homepage = "https://github.com/Grinnz/lib-relative";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  libwwwperl = buildPerlPackage {
+    pname = "libwww-perl";
+    version = "6.72";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
+      hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
+    };
+    buildInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
+    propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
+    meta = {
+      homepage = "https://github.com/libwww-perl/libwww-perl";
+      description = "The World-Wide Web library for Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  libxml_perl = buildPerlPackage {
+    pname = "libxml-perl";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz";
+      hash = "sha256-RXEFm3tdSLfOUrATieldeYv1zyAgUjwVP/J7SYFTycs=";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+    meta = {
+      description = "Collection of Perl modules for working with XML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaENFindNumber = buildPerlPackage {
+    pname = "Lingua-EN-FindNumber";
+    version = "1.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-FindNumber-1.32.tar.gz";
+      hash = "sha256-HRdtHIY/uYRL0Z0sKk5ooO1z2hWPckqJQFuQ236NvQQ=";
+    };
+    propagatedBuildInputs = [ LinguaENWords2Nums ];
+    meta = {
+      description = "Locate (written) numbers in English text ";
+      homepage = "https://github.com/neilb/Lingua-EN-FindNumber";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaENInflect = buildPerlPackage {
+    pname = "Lingua-EN-Inflect";
+    version = "1.905";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.905.tar.gz";
+      hash = "sha256-BcKew0guVyMTpg2iGBsLMMXbfPAfiudhatZ+G2YmMpY=";
+    };
+    meta = {
+      description = "Convert singular to plural. Select 'a' or 'an'";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaENInflectNumber = buildPerlPackage {
+    pname = "Lingua-EN-Inflect-Number";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-Inflect-Number-1.12.tar.gz";
+      hash = "sha256-Zvszg4USdG9cWX6AJk/qZmQ/fyZXDsL5IFthNa1nrL8=";
+    };
+    propagatedBuildInputs = [ LinguaENInflect ];
+    meta = {
+      description = "Force number of words to singular or plural";
+      homepage = "https://github.com/neilbowers/Lingua-EN-Inflect-Number";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaENInflectPhrase = buildPerlPackage {
+    pname = "Lingua-EN-Inflect-Phrase";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Inflect-Phrase-0.20.tar.gz";
+      hash = "sha256-VQWJEamfF1XePrRJqZ/765LYjAH/XcYFEaJGeQUN3qg=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    propagatedBuildInputs = [ LinguaENInflectNumber LinguaENNumberIsOrdinal LinguaENTagger ];
+    meta = {
+      description = "Inflect short English Phrases";
+      homepage = "https://metacpan.org/release/Lingua-EN-Inflect-Phrase";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaENNumberIsOrdinal = buildPerlPackage {
+    pname = "Lingua-EN-Number-IsOrdinal";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Number-IsOrdinal-0.05.tar.gz";
+      hash = "sha256-KNVpVADA9OK9IJeTy3T22iuSVzVqrLKUfGA0JeCWGNY=";
+    };
+    buildInputs = [ TestFatal TryTiny ];
+    propagatedBuildInputs = [ LinguaENFindNumber ];
+    meta = {
+      description = "Detect if English number is ordinal or cardinal";
+      homepage = "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaENTagger = buildPerlPackage {
+    pname = "Lingua-EN-Tagger";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.31.tar.gz";
+      hash = "sha256-lJ6Mh+SAj3uglrl5Ig/wgbvgO21XiQ0u7NS4Ouhy6ZM=";
+    };
+    propagatedBuildInputs = [ HTMLParser LinguaStem MemoizeExpireLRU ];
+    meta = {
+      description = "Part-of-speech tagger for English natural language processing";
+      license = with lib.licenses; [ gpl3Only ];
+    };
+  };
+
+  LinguaENWords2Nums = buildPerlPackage {
+    pname = "Lingua-EN-Words2Nums";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JO/JOEY/Lingua-EN-Words2Nums-0.18.tar.gz";
+      hash = "sha256-aGVWeXzSpOqgZvGbvwOrJcBieCksnq0vGH39kDHqHYU=";
+    };
+    meta = {
+      description = "Convert English text to numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaPTStemmer = buildPerlPackage {
+    pname = "Lingua-PT-Stemmer";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz";
+      hash = "sha256-WW3wH4q3n//9RQ6Ug2pUQ3HYpMk6FffojqLxt5xGhJ0=";
+    };
+    meta = {
+      description = "Portuguese language stemming";
+      homepage = "https://github.com/neilb/Lingua-PT-Stemmer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaStem = buildPerlModule {
+    pname = "Lingua-Stem";
+    version = "2.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SN/SNOWHARE/Lingua-Stem-2.31.tar.gz";
+      hash = "sha256-qhqZMrZCflmCU+YajM0NBMxVn66dWNh3TCAncItjAmQ=";
+    };
+    doCheck = false;
+    propagatedBuildInputs = [ LinguaPTStemmer LinguaStemFr LinguaStemIt LinguaStemRu LinguaStemSnowballDa SnowballNorwegian SnowballSwedish TextGerman ];
+    meta = {
+      description = "Stemming of words";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaStemFr = buildPerlPackage {
+    pname = "Lingua-Stem-Fr";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz";
+      hash = "sha256-nU9ks6iJihhTQyGFJtWsaKSh+ObEQY1rqV1i9fnV2W8=";
+    };
+    meta = {
+      description = "Perl French Stemming";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaStemIt = buildPerlPackage {
+    pname = "Lingua-Stem-It";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz";
+      hash = "sha256-OOZz+3T+ARWILlrbJnTesIH6tyHXKO4qgRQWPVDIB4g=";
+    };
+    meta = {
+      description = "Porter's stemming algorithm for Italian";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaStemRu = buildPerlPackage {
+    pname = "Lingua-Stem-Ru";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz";
+      hash = "sha256-EnDOt0dk/blYNwqAiDSvl26H9pqFRw+LxGJYeX6rUig=";
+    };
+    meta = {
+      description = "Porter's stemming algorithm for Russian (KOI8-R only)";
+      homepage = "https://github.com/neilb/Lingua-Stem-Ru";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LinguaStemSnowballDa = buildPerlPackage {
+    pname = "Lingua-Stem-Snowball-Da";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz";
+      hash = "sha256-Ljm+TuAVx+xHwrBnhYAYp0BuONUSHWVcikaHSt+poFY=";
+    };
+    meta = {
+      description = "Porters stemming algorithm for Denmark";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  LinguaTranslit = buildPerlPackage {
+    pname = "Lingua-Translit";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz";
+      hash = "sha256-GtL6vAB52tcIt9nVVDfJ67GS5hC/lgryWUWFi5JZd1I=";
+    };
+    doCheck = false;
+    meta = {
+      description = "Transliterates text between writing systems";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "translit";
+    };
+  };
+
+  LinkEmbedder = buildPerlPackage {
+    pname = "LinkEmbedder";
+    version = "1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz";
+      hash = "sha256-sd6LTiXHIplEOeesA0vorjeiCUijG/SF8iu0hvzI3KU=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "Embed / expand oEmbed resources and other URL / links";
+      homepage = "https://github.com/jhthorsen/linkembedder";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  LinuxACL = buildPerlPackage {
+    pname = "Linux-ACL";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NA/NAZAROV/Linux-ACL-0.05.tar.gz";
+      hash = "sha256-MSlAwfYPR8T8k/oKnSpiZCX6qDcEDIwvGtWO4J9i83E=";
+    };
+    buildInputs = [ pkgs.acl ];
+    NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl";
+    meta = {
+      description = "Perl extension for reading and setting Access Control Lists for files by libacl linux library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  LinuxDesktopFiles = buildPerlModule {
+    pname = "Linux-DesktopFiles";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.25.tar.gz";
+      hash = "sha256-YDd6dPupD6RlIA7hx0MNvd5p1FTYX57hAcA5gDoH5fU=";
+    };
+    meta = {
+      description = "Fast parsing of the Linux desktop files";
+      homepage = "https://github.com/trizen/Linux-DesktopFiles";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  LinuxDistribution = buildPerlModule {
+    pname = "Linux-Distribution";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Linux-Distribution-0.23.tar.gz";
+      hash = "sha256-YD4n2mB7PocqZp16ZtdZgvCWkVPqstSyDDQTR7Tr2l8=";
+    };
+    # The tests fail if the distro it's built on isn't in the supported list.
+    # This includes NixOS.
+    doCheck = false;
+    meta = {
+      description = "Perl extension to detect on which Linux distribution we are running";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.linux;
+    };
+  };
+
+  LinuxFD = buildPerlModule {
+    pname = "Linux-FD";
+    version = "0.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Linux-FD-0.014.tar.gz";
+      hash = "sha256-eDHcJkxG2bh/dkNhdNdmFBRSQ2Mwg+CQqrTZo1LwQ60=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ SubExporter ];
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "Linux specific special filehandles";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.linux;
+    };
+  };
+
+  LinuxInotify2 = buildPerlPackage {
+    pname = "Linux-Inotify2";
+    version = "2.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Linux-Inotify2-2.3.tar.gz";
+      hash = "sha256-y5kVD5/6UdvDvl7pjY6RyYzf6uIuuI5xjyzzZ78nDRc=";
+    };
+    propagatedBuildInputs = [ commonsense ];
+
+    meta = {
+      description = "Scalable directory/file change notification for Perl on Linux";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.linux;
+    };
+  };
+
+  Linuxusermod = buildPerlPackage {
+    pname = "Linux-usermod";
+    version = "0.69";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIDUL/Linux-usermod-0.69.tar.gz";
+      hash = "sha256-l8oYajxBa/ae1i2gRvGmDYjYm45u0lAIsvlueH3unWA=";
+    };
+    meta = {
+      description = "This module adds, removes and modify user and group accounts according to the passwd and shadow files syntax";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.linux;
+    };
+  };
+
+  ListAllUtils = buildPerlPackage {
+    pname = "List-AllUtils";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz";
+      hash = "sha256-MKgUarIad4e4xW1YKc+afysVJ207P8oHM2rDjTAC/7w=";
+    };
+    propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ];
+    meta = {
+      description = "Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package";
+      homepage = "https://metacpan.org/release/List-AllUtils";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ListBinarySearch = buildPerlPackage {
+    pname = "List-BinarySearch";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVIDO/List-BinarySearch-0.25.tar.gz";
+      hash = "sha256-yBEwcb1gQANe6KsBzxtyqRBXQZLx0XkQKud1qXPy6Co=";
+    };
+    meta = {
+      description = "Binary Search within a sorted array";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ListCompare = buildPerlPackage {
+    pname = "List-Compare";
+    version = "0.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKEENAN/List-Compare-0.55.tar.gz";
+      hash = "sha256-zHGUeYNledUrArwyjtgKmPZ53wQ6mbVxCrLBkWaeuDc=";
+    };
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      description = "Compare elements of two or more lists";
+      homepage = "http://thenceforward.net/perl/modules/List-Compare";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ListMoreUtils = buildPerlPackage {
+    pname = "List-MoreUtils";
+    version = "0.430";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz";
+      hash = "sha256-Y7H3hCzULZtTjR404DMN5f8VWeTCc3NCUGQYJ29kZSc=";
+    };
+    propagatedBuildInputs = [ ExporterTiny ListMoreUtilsXS ];
+    buildInputs = [ TestLeakTrace ];
+    meta = {
+      description = "Provide the stuff missing in List::Util";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ListMoreUtilsXS = buildPerlPackage {
+    pname = "List-MoreUtils-XS";
+    version = "0.430";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz";
+      hash = "sha256-6M5G1XwXnuzYdYKT6UAP8wCq8g/v4KnRW5/iMCucskI=";
+    };
+    preConfigure = ''
+      export LD=$CC
+    '';
+    meta = {
+      description = "Provide the stuff missing in List::Util in XS";
+      homepage = "https://metacpan.org/release/List-MoreUtils-XS";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  ListSomeUtils = buildPerlPackage {
+    pname = "List-SomeUtils";
+    version = "0.59";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz";
+      hash = "sha256-+rMDcuTGe/WkYGLaONHQyHVief6tqGbrQ5+ilXGi3Hs=";
+    };
+    buildInputs = [ TestLeakTrace ];
+    propagatedBuildInputs = [ ModuleImplementation ];
+    meta = {
+      description = "Provide the stuff missing in List::Util";
+      homepage = "https://metacpan.org/release/List-SomeUtils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ListUtilsBy = buildPerlModule {
+    pname = "List-UtilsBy";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz";
+      hash = "sha256-//EoH9Rp/pgrGlgES+z9lw8xO/86JuHHsrP0wKXtceA=";
+    };
+    meta = {
+      description = "Higher-order list utility functions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleCodes = buildPerlPackage {
+    pname = "Locale-Codes";
+    version = "3.76";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.76.tar.gz";
+      hash = "sha256-Qo00GFUJ7fbaYoYoAJcohrsCwySTRU/L4Y+Zmk9DXzk=";
+    };
+    buildInputs = [ TestInter ];
+    meta = {
+      description = "A distribution of modules to handle locale codes";
+      homepage = "https://github.com/SBECK-github/Locale-Codes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleGettext = buildPerlPackage {
+    pname = "gettext";
+    version = "1.07";
+    strictDeps = true;
+    buildInputs = [ pkgs.gettext ];
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz";
+      hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU=";
+    };
+    LANG="C";
+    meta = {
+      description = "Perl extension for emulating gettext-related API";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleMaketextLexiconGetcontext = buildPerlPackage {
+    pname = "Locale-Maketext-Lexicon-Getcontext";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAPER/Locale-Maketext-Lexicon-Getcontext-0.05.tar.gz";
+      hash = "sha256-dcsz35RypZYt5UCC9CxqdrJg/EBboQylMkb7H4LAkgg=";
+    };
+    propagatedBuildInputs = [ LocaleMaketextLexicon ];
+    meta = {
+      description = "PO file parser for Maketext";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  LocaleMOFile = buildPerlPackage {
+    pname = "Locale-MO-File";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz";
+      hash = "sha256-lwNtw/Cds3BSrp2aUUSH6IS1bZDHbKEtbKtAXSNWSj8=";
+    };
+    propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ];
+    meta = {
+      description = "Write or read gettext MO files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleMaketextFuzzy = buildPerlPackage {
+    pname = "Locale-Maketext-Fuzzy";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-0.11.tar.gz";
+      hash = "sha256-N4UXHOt4zHZxMZo6bYztmxkOCX382bKp68gEzRooL5Y=";
+    };
+    meta = {
+      description = "Maketext from already interpolated strings";
+      license = with lib.licenses; [ cc0 ];
+    };
+  };
+
+  LocaleMaketextLexicon = buildPerlPackage {
+    pname = "Locale-Maketext-Lexicon";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-1.00.tar.gz";
+      hash = "sha256-tz9rBKWNPw446/IRWkwVMvGk7vb6xcaipEnk4Uwd3Hw=";
+    };
+    meta = {
+      description = "Use other catalog formats in Maketext";
+      homepage = "https://search.cpan.org/dist/Locale-Maketext-Lexicon";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "xgettext.pl";
+    };
+  };
+
+  LocaleMsgfmt = buildPerlPackage {
+    pname = "Locale-Msgfmt";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AZ/AZAWAWI/Locale-Msgfmt-0.15.tar.gz";
+      hash = "sha256-wydoMcvuz1i+AggbzBgL00jao12iGnc3t7A4pZ9kOrQ=";
+    };
+    meta = {
+      description = "Compile .po files to .mo files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocalePO = buildPerlPackage {
+    pname = "Locale-PO";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/COSIMO/Locale-PO-0.27.tar.gz";
+      hash = "sha256-PJlKS2Pm5Og2xveak/UZIcq3fJDJdT/g+LVCkiDVFrk=";
+    };
+    propagatedBuildInputs = [ FileSlurp ];
+    meta = {
+      description = "Perl module for manipulating .po entries from GNU gettext";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleTextDomainOO = buildPerlPackage {
+    pname = "Locale-TextDomain-OO";
+    version = "1.036";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz";
+      hash = "sha256-tReD4aiWICE+oqg+RbrsOqhunL4en6W590+HSbBUDjg=";
+    };
+    propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleTextDomainOOUtil = buildPerlPackage {
+    pname = "Locale-TextDomain-OO-Util";
+    version = "4.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz";
+      hash = "sha256-PF+gf2Xtd8Ap4g0kahBAQRSPGptH4332PzflHQK9RqA=";
+    };
+    propagatedBuildInputs = [ namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::TextDomain::OO::Util - Lexicon utils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleUtilsPlaceholderBabelFish = buildPerlPackage {
+    pname = "Locale-Utils-PlaceholderBabelFish";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz";
+      hash = "sha256-LhwAU5ljqeyr0se5te+QpWBna7A0giUXYin8jqS0pMw=";
+    };
+    propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleUtilsPlaceholderMaketext = buildPerlPackage {
+    pname = "Locale-Utils-PlaceholderMaketext";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz";
+      hash = "sha256-UChgS9jzPY0yymkp+9DagP9L30KN6ARfs/Bbp9FdNOs=";
+    };
+    propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LocaleUtilsPlaceholderNamed = buildPerlPackage {
+    pname = "Locale-Utils-PlaceholderNamed";
+    version = "1.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz";
+      hash = "sha256-b9eOojm1w1m6lCJ1N2b2OO5PkM0hdRpZs4YVXipFpr0=";
+    };
+    propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  locallib = buildPerlPackage {
+    pname = "local-lib";
+    version = "2.000029";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz";
+      hash = "sha256-jfh6EMFMjpCcW0fFcB5LgYfVGeUlHofIBwmwK7M+/dc=";
+    };
+    propagatedBuildInputs = [ ModuleBuild ];
+    meta = {
+      description = "Create and use a local lib/ for perl modules with PERL5LIB";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LockFileSimple = buildPerlPackage {
+    pname = "LockFile-Simple";
+    version = "0.208";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCHWIGON/lockfile-simple/LockFile-Simple-0.208.tar.gz";
+      hash = "sha256-Rcd4lrKloKRfYgKm+BP0N/+LKD+EocYNDE83MIAq86I=";
+    };
+    meta = {
+      description = "Simple file locking scheme";
+      license = with lib.licenses; [ artistic1 gpl2Plus ];
+    };
+  };
+
+  LogAny = buildPerlPackage {
+    pname = "Log-Any";
+    version = "1.717";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-1.717.tar.gz";
+      hash = "sha256-VmSdoPOQAjDJ49KSUssKdIBvst3r0igFrNc2iVmmW8o=";
+    };
+    # Syslog test fails.
+    preCheck = "rm t/syslog.t";
+    meta = {
+      description = "Bringing loggers and listeners together";
+      homepage = "https://github.com/preaction/Log-Any";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogAnyAdapterLog4perl = buildPerlPackage {
+    pname = "Log-Any-Adapter-Log4perl";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-Adapter-Log4perl-0.09.tar.gz";
+      hash = "sha256-EZfT5BIhS+IIgAz3v1BXsf6hVCRTmip5J8/kb3FuwaU=";
+    };
+    propagatedBuildInputs = [ LogAny LogLog4perl ];
+    meta = {
+      description = "Log::Any adapter for Log::Log4perl";
+      homepage = "https://github.com/preaction/Log-Any-Adapter-Log4perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogAnyAdapterTAP = buildPerlPackage {
+    pname = "Log-Any-Adapter-TAP";
+    version = "0.003003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NERDVANA/Log-Any-Adapter-TAP-0.003003.tar.gz";
+      hash = "sha256-Ex8GibK0KxsxRJcUxu2o+BHdlqfIZ0jx4DsjnP0BIcA=";
+    };
+    propagatedBuildInputs = [ LogAny TryTiny ];
+    meta = {
+      description = "Logger suitable for use with TAP test files";
+      homepage = "https://github.com/silverdirk/perl-Log-Any-Adapter-TAP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogContextual = buildPerlPackage {
+    pname = "Log-Contextual";
+    version = "0.008001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.008001.tar.gz";
+      hash = "sha256-uTy8+7h5bVHINuOwAkPNpWMICMFSwU7uXyDKCclFGZM=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ];
+    meta = {
+      description = "Simple logging interface with a contextual log";
+      homepage = "https://github.com/frioux/Log-Contextual";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogDispatch = buildPerlPackage {
+    pname = "Log-Dispatch";
+    version = "2.71";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Log-Dispatch-2.71.tar.gz";
+      hash = "sha256-nWDZZIw1zidUcx603rfwWAns4b1jO3TXR5Wu2exzJXA=";
+    };
+    propagatedBuildInputs = [ DevelGlobalDestruction ParamsValidationCompiler Specio namespaceautoclean ];
+    buildInputs = [ IPCRun3 TestFatal TestNeeds ];
+    meta = {
+      description = "Dispatches messages to one or more outputs";
+      homepage = "https://metacpan.org/release/Log-Dispatch";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  LogDispatchFileRotate = buildPerlPackage {
+    pname = "Log-Dispatch-FileRotate";
+    version = "1.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Log-Dispatch-FileRotate-1.38.tar.gz";
+      hash = "sha256-tV1s7ePwoGQmSI+/pVT0VhMgsBTBAjiTztKVCOW85Ow=";
+    };
+    propagatedBuildInputs = [ DateManip LogDispatch ];
+    buildInputs = [ PathTiny TestWarn ];
+    meta = {
+      description = "Log to Files that Archive/Rotate Themselves";
+      homepage = "https://github.com/mschout/perl-log-dispatch-filerotate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogfileRotate = buildPerlPackage {
+    pname = "Logfile-Rotate";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PAULG/Logfile-Rotate-1.04.tar.gz";
+      hash = "sha256-gQ+LfM2GV9Ox71PNR1glR4Rc67WCArBVObNAhjjK2j4=";
+    };
+    meta = {
+      description = "Perl module to rotate logfiles";
+      homepage = "https://metacpan.org/dist/Logfile-Rotate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  Logger = buildPerlPackage {
+    pname = "Log-ger";
+    version = "0.040";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Log-ger-0.040.tar.gz";
+      hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA=";
+    };
+    meta = {
+      description = "A lightweight, flexible logging framework";
+      homepage = "https://metacpan.org/release/Log-ger";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  LogHandler = buildPerlModule {
+    pname = "Log-Handler";
+    version = "0.90";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz";
+      hash = "sha256-OlyA5xKEVHcPg6yrjL0+cOXsPVmmHcMnkqF48LMb900=";
+    };
+    propagatedBuildInputs = [ ParamsValidate ];
+    meta = {
+      description = "Log messages to several outputs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogMessage = buildPerlPackage {
+    pname = "Log-Message";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-0.08.tar.gz";
+      hash = "sha256-vWl91iqvJtEY6fCggTQp3rHFRORQFVmHm2H8vf6Z/kY=";
+    };
+    meta = {
+      description = "Powerful and flexible message logging mechanism";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogMessageSimple = buildPerlPackage {
+    pname = "Log-Message-Simple";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz";
+      hash = "sha256-qhLRpMCsJguU1Ej6Af66JCqKhctsv9xmQy47W0aK3ZY=";
+    };
+    propagatedBuildInputs = [ LogMessage ];
+    meta = {
+      description = "Simplified interface to Log::Message";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogTrace = buildPerlPackage {
+    pname = "Log-Trace";
+    version = "1.070";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBC/Log-Trace-1.070.tar.gz";
+      hash = "sha256-nsuCWO8wwvJN7/SRckDQ/nMkLaWyGSQC95gVsJLtNuM=";
+    };
+    meta = {
+      description = "Provides a unified approach to tracing";
+      license = with lib.licenses; [ gpl1Only ];
+    };
+  };
+
+  MCE = buildPerlPackage {
+    pname = "MCE";
+    version = "1.889";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.889.tar.gz";
+      hash = "sha256-22FT5HTQRvwlMFC/U8VAAthM1Mp30hwrnfVv7rgJu+0=";
+    };
+    meta = {
+      description = "Many-Core Engine for Perl providing parallel processing capabilities";
+      homepage = "https://github.com/marioroy/mce-perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogLog4perl = buildPerlPackage {
+    pname = "Log-Log4perl";
+    version = "1.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz";
+      hash = "sha256-D4/Ldjio89tMeX35T9vFYBN0kULy+Uy8lbQ8n8oJahM=";
+    };
+    meta = {
+      description = "Log4j implementation for Perl";
+      homepage = "https://mschilli.github.io/log4perl/";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "l4p-tmpl";
+    };
+  };
+
+  LogDispatchArray = buildPerlPackage {
+    pname = "Log-Dispatch-Array";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.005.tar.gz";
+      hash = "sha256-MRZAt6ln+N18m7QaInBzVlY21w30/MHUT+2KgiOzR8o=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ LogDispatch ];
+    meta = {
+      description = "Log events to an array (reference)";
+      homepage = "https://github.com/rjbs/Log-Dispatch-Array";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogDispatchouli = buildPerlPackage {
+    pname = "Log-Dispatchouli";
+    version = "3.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-3.007.tar.gz";
+      hash = "sha256-mIEYlllSukmo+nkaZTaIDIkBf0651ywXRe1n0VwNJyw=";
+    };
+    buildInputs = [ TestDeep TestFatal ];
+    propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ];
+    meta = {
+      description = "A simple wrapper around Log::Dispatch";
+      homepage = "https://github.com/rjbs/Log-Dispatchouli";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogJournald = buildPerlModule rec {
+    pname = "Log-Journald";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/Log-Journald-0.30.tar.gz";
+      hash = "sha256-VZks+aHh+4M/QoMAUlv6fPftRrg+xBT4KgkXibN9CKM=";
+    };
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ pkgs.systemd ];
+    postPatch = ''
+      substituteInPlace Build.PL \
+        --replace "libsystemd-journal" "libsystemd"
+    '';
+    meta = {
+      description = "Send messages to a systemd journal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LogLogLite = buildPerlPackage {
+    pname = "Log-LogLite";
+    version = "0.82";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RANI/Log-LogLite-0.82.tar.gz";
+      hash = "sha256-BQn7i8VDrJZ1pI6xplpjUoYIxsP99ioZ4XBzUA5RGms=";
+    };
+    propagatedBuildInputs = [ IOLockedFile ];
+    meta = {
+      description = "Helps us create simple logs for our application";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LongJump = buildPerlPackage {
+    pname = "Long-Jump";
+    version = "0.000001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Long-Jump-0.000001.tar.gz";
+      hash = "sha256-1dZFbYaZK1Wdj2b8kJYPkZKSzTgDwTQD+qxXV2LHevQ=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Mechanism for returning to a specific point from a deeply nested stack";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWP = buildPerlPackage {
+    pname = "libwww-perl";
+    version = "6.72";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
+      hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
+    };
+    propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPCookieJar HTTPNegotiate NetHTTP TryTiny WWWRobotRules ];
+    preCheck = ''
+      export NO_NETWORK_TESTING=1
+    '';
+    # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module)
+    postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+      substituteInPlace Makefile.PL --replace 'if has_module' 'if 0; #'
+    '';
+    doCheck = !stdenv.isDarwin;
+    nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
+    meta = {
+      description = "The World-Wide Web library for Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPAuthenOAuth = buildPerlPackage {
+    pname = "LWP-Authen-OAuth";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMBRODY/LWP-Authen-OAuth-1.02.tar.gz";
+      hash = "sha256-544L196AAs+0dgBzJY1VXvVbLCfAepSz2KIWahf9lrw=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Generate signed OAuth requests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPMediaTypes = buildPerlPackage {
+    pname = "LWP-MediaTypes";
+    version = "6.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz";
+      hash = "sha256-jxvKEtqxahwqfAOknF5YzOQab+yVGfCq37qNrZl5Gdk=";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Guess media type for a file or a URL";
+      homepage = "https://github.com/libwww-perl/lwp-mediatypes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPProtocolConnect = buildPerlPackage {
+    pname = "LWP-Protocol-connect";
+    version = "6.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BE/BENNING/LWP-Protocol-connect-6.09.tar.gz";
+      hash = "sha256-nyUjlHdeI6pCwxdmEeWTBjirUo1RkBELRzGqWwvzWhU=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ LWPProtocolHttps ];
+    meta = {
+      description = "Provides HTTP/CONNECT proxy support for LWP::UserAgent";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPProtocolHttps = buildPerlPackage {
+    pname = "LWP-Protocol-https";
+    version = "6.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.11.tar.gz";
+      hash = "sha256-ATLdvwNmFWXKhQUPKlCU+5Jjy7w8yxpNnEGsm7CDuRc=";
+    };
+    patches = [ ../development/perl-modules/lwp-protocol-https-cert-file.patch ];
+    propagatedBuildInputs = [ IOSocketSSL LWP ];
+    preCheck = ''
+      export NO_NETWORK_TESTING=1
+    '';
+    buildInputs = [ TestRequiresInternet TestNeeds ];
+    meta = {
+      description = "Provide https support for LWP::UserAgent";
+      homepage = "https://github.com/libwww-perl/LWP-Protocol-https";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPProtocolhttp10 = buildPerlPackage {
+    pname = "LWP-Protocol-http10";
+    version = "6.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz";
+      hash = "sha256-8/+pEfnVkYHxcXkQ6iZiCQXCmLdNww99TlE57jAguNM=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Legacy HTTP/1.0 support for LWP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPUserAgentCached = buildPerlPackage {
+    pname = "LWP-UserAgent-Cached";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OL/OLEG/LWP-UserAgent-Cached-0.08.tar.gz";
+      hash = "sha256-Pc5atMeAQWVs54Vk92Az5b0ew4b1TS57MHQK5I7nh8M=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "LWP::UserAgent with simple caching mechanism";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPUserAgentDNSHosts = buildPerlModule {
+    pname = "LWP-UserAgent-DNS-Hosts";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MASAKI/LWP-UserAgent-DNS-Hosts-0.14.tar.gz";
+      hash = "sha256-mWl5RD8Ib/yLNmvbukSGWR2T+SF7wgSz5dZrlHIghx8=";
+    };
+    propagatedBuildInputs = [ LWP ScopeGuard ];
+    buildInputs = [ ModuleBuildTiny TestFakeHTTPD TestSharedFork TestTCP TestUseAllModules ];
+    meta = {
+      description = "Override LWP HTTP/HTTPS request's host like /etc/hosts";
+      homepage = "https://github.com/masaki/p5-LWP-UserAgent-DNS-Hosts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPUserAgentDetermined = buildPerlPackage {
+    pname = "LWP-UserAgent-Determined";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/LWP-UserAgent-Determined-1.07.tar.gz";
+      hash = "sha256-BtjVDozTaSoRy0+0Si+E5UdqmPDi5qSg386fZ+Vd21M=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "A virtual browser that retries errors";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPUserAgentMockable = buildPerlModule {
+    pname = "LWP-UserAgent-Mockable";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MJ/MJEMMESON/LWP-UserAgent-Mockable-1.18.tar.gz";
+      hash = "sha256-JYZPUOOlIZ+J00oYQlmFSUWussXtSBjzbw8wIShUQyQ=";
+    };
+    propagatedBuildInputs = [ HookLexWrap LWP SafeIsa ];
+    # Tests require network connectivity
+    # https://rt.cpan.org/Public/Bug/Display.html?id=63966 is the bug upstream,
+    # which doesn't look like it will get fixed anytime soon.
+    doCheck = false;
+    buildInputs = [ ModuleBuildTiny TestRequiresInternet ];
+    meta = {
+      description = "Permits recording, and later playing back of LWP requests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  LWPxParanoidAgent = buildPerlPackage {
+    pname = "LWPx-ParanoidAgent";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/lwp/LWPx-ParanoidAgent-1.12.tar.gz";
+      hash = "sha256-zAQa7bdOGDzfkcvryhx71tdk/e5o+9yE8r4IveTg0D0=";
+    };
+    doCheck = false; # 3 tests fail, probably because they try to connect to the network
+    propagatedBuildInputs = [ LWP NetDNS ];
+    meta = {
+      description = "Subclass of LWP::UserAgent that protects you from harm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  maatkit = callPackage ../development/perl-modules/maatkit { };
+
+  MacPasteboard = buildPerlPackage {
+    pname = "Mac-Pasteboard";
+    version = "0.103";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WY/WYANT/Mac-Pasteboard-0.103.tar.gz";
+      hash = "sha256-L16N0tsNZEVVhITKbULYOcWpfuiqGyUOaU1n1bf2Y0w=";
+    };
+    buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
+    meta = {
+      description = "Manipulate Mac OS X pasteboards";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.darwin;
+      mainProgram = "pbtool";
+    };
+  };
+
+  MacPropertyList = buildPerlPackage {
+    pname = "Mac-PropertyList";
+    version = "1.504";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Mac-PropertyList-1.504.tar.gz";
+      hash = "sha256-aIl96Yw2j76c22iF1H3qADxG7Ho3MmNSPvZkVwc7eq4=";
+    };
+    propagatedBuildInputs = [ XMLEntities ];
+    meta = {
+      description = "Work with Mac plists at a low level";
+      homepage = "https://github.com/briandfoy/mac-propertylist";
+      license = lib.licenses.artistic2;
+    };
+  };
+
+  MacSysProfile = buildPerlPackage {
+    pname = "Mac-SysProfile";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMUEY/Mac-SysProfile-0.05.tar.gz";
+      hash = "sha256-QDOXa3dbOcwqaTtyoC1l71p7oDveTU2w3/RuEmx9n2w=";
+    };
+    propagatedBuildInputs = [ MacPropertyList ];
+    meta = {
+      description = "Perl extension for OS X system_profiler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.darwin;
+    };
+  };
+
+  MailAuthenticationResults = buildPerlPackage {
+    pname = "Mail-AuthenticationResults";
+    version = "2.20230112";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-2.20230112.tar.gz";
+      hash = "sha256-wtFEyuAiX4vJ0PX60cPxOdJ89TT85+rHB2T79m/SI0E=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Clone JSON ];
+    meta = {
+      description = "Object Oriented Authentication-Results Headers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailDMARC = buildPerlPackage {
+    pname = "Mail-DMARC";
+    version = "1.20230215";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DMARC-1.20230215.tar.gz";
+      hash = "sha256-V9z1R1nLkkSOVukUE0D2E0QnTFjZ3WWqkKqczw5+uQM=";
+    };
+    buildInputs = [ ExtUtilsMakeMaker FileShareDirInstall ];
+    doCheck = false;  # uses actual DNS at runtime
+    checkInputs = [ XMLSAX XMLValidatorSchema TestException TestFileShareDir TestMore TestOutput ];
+    propagatedBuildInputs = [
+      ConfigTiny DBDSQLite DBIxSimple EmailMIME EmailSender Encode FileShareDir GetoptLong
+      IOCompress IO IOSocketSSL NetDNS NetIDNEncode NetIP NetSSLeay RegexpCommon Socket6
+      SysSyslog URI XMLLibXML
+    ];
+    meta = {
+      description = "Perl implementation of DMARC";
+      homepage = "https://github.com/msimerson/mail-dmarc";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailMaildir = buildPerlPackage {
+    version = "1.0.0";
+    pname = "Mail-Maildir";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEROALTI/Mail-Maildir-100/Mail-Maildir-1.0.0.tar.bz2";
+      hash = "sha256-RF6s2ixmN5ApbXGbypzHKYVUX6GgkBRhdnFgo6/DM88=";
+    };
+    meta = {
+      description = "Handle Maildir folders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailBox = buildPerlPackage {
+    version = "3.010";
+    pname = "Mail-Box";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Box-3.010.tar.gz";
+      hash = "sha256-rhlPolDFRcm5FT4/tRA8qyn3nPKs1On9dc7FMiAalWQ=";
+    };
+
+    doCheck = false;
+
+    propagatedBuildInputs = [ DevelGlobalDestruction FileRemove Later MailTransport ];
+    meta = {
+      description = "Manage a mailbox, a folder with messages";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailMboxMessageParser = buildPerlPackage {
+    pname = "Mail-Mbox-MessageParser";
+    version = "1.5111";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCOPPIT/Mail-Mbox-MessageParser-1.5111.tar.gz";
+      hash = "sha256-VyPAqpzBC6ue0eO/2dXJX3FZ5xwaR1QU6xrx3uOkYjc=";
+    };
+    buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ];
+    propagatedBuildInputs = [ FileHandleUnget ];
+    meta = {
+      description = "A fast and simple mbox folder reader";
+      homepage = "https://github.com/coppit/mail-mbox-messageparser";
+      license = with lib.licenses; [ gpl2Only ];
+      maintainers = with maintainers; [ romildo ];
+    };
+  };
+
+  MailMessage = buildPerlPackage {
+    pname = "Mail-Message";
+    version = "3.013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.013.tar.gz";
+      hash = "sha256-yK1YiNsBWkUOti7Cqj6mbcLdwRtwpdtsjKGn+fgg6B8=";
+    };
+    propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
+    meta = {
+      description = "Processing MIME messages";
+      homepage = "http://perl.overmeer.net/CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailDKIM = buildPerlPackage {
+    pname = "Mail-DKIM";
+    version = "1.20230911";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20230911.tar.gz";
+      hash = "sha256-kecxcoK3JM+9LJtuZjDvFDKISLb8UgPv1w3sL7hyaMo=";
+    };
+    propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ];
+    doCheck = false; # tries to access the domain name system
+    buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ];
+    meta = {
+      description = "Signs/verifies Internet mail with DKIM/DomainKey signatures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailIMAPClient = buildPerlPackage {
+    pname = "Mail-IMAPClient";
+    version = "3.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-3.43.tar.gz";
+      hash = "sha256-CTyX+sFbR6j+TSk27y3zd6v3fMirdAktISi7lF0ftG8=";
+    };
+    propagatedBuildInputs = [ ParseRecDescent ];
+    meta = {
+      description = "An IMAP Client API";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailPOP3Client = buildPerlPackage {
+    pname = "Mail-POP3Client";
+    version = "2.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SD/SDOWD/Mail-POP3Client-2.21.tar.gz";
+      hash = "sha256-sW7yFJtuNXOHPx5ZDk1RNmxZlLi1MV3xaSXRe4niSQE=";
+    };
+    meta = {
+      description = "Perl 5 module to talk to a POP3 (RFC1939) server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailRFC822Address = buildPerlPackage {
+    pname = "Mail-RFC822-Address";
+    version = "0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PD/PDWARREN/Mail-RFC822-Address-0.3.tar.gz";
+      hash = "sha256-NR70EE7LZ17K5pAIJD+ugkPRp+U8aB7rdZ57eBaEyKc=";
+    };
+    meta = {
+      description = "Perl extension for validating email addresses according to RFC822";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  MailSender = buildPerlPackage {
+    pname = "Mail-Sender";
+    version = "0.903";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/Mail-Sender-0.903.tar.gz";
+      hash = "sha256-RBPrSfUgqDGBUYEcywWo1UKXOq2iCqUDrTL5/8mKOb8=";
+    };
+    meta = {
+      description = "(DEPRECATED) module for sending mails with attachments through an SMTP server";
+      homepage = "https://github.com/Perl-Email-Project/Mail-Sender";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailSendmail = buildPerlPackage {
+    pname = "Mail-Sendmail";
+    version = "0.80";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Mail-Sendmail-0.80.tar.gz";
+      hash = "sha256-W4qYy1zDnYBEGjiqsBCIXd+A5vzY5uAxQ5LLI+fCaOQ=";
+    };
+    # The test suite simply loads the module and attempts to send an email to
+    # the module's author, the latter of which is a) more of an integration
+    # test, b) impossible to verify, and c) won't work from a sandbox. Replace
+    # it in its entirety with the following simple smoke test.
+    checkPhase = ''
+      perl -I blib/lib -MMail::Sendmail -e 'print "1..1\nok 1\n"'
+    '';
+    meta = {
+      description = "Simple platform independent mailer";
+      homepage = "https://github.com/neilb/Mail-Sendmail";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  MailSPF = buildPerlPackage {
+    pname = "Mail-SPF";
+    version = "2.9.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.9.0.tar.gz";
+      hash = "sha256-YctZFfHHrMepMf/Bv8EpG9+sVV4qRusjkbmV6p7LYWI=";
+    };
+    # remove this patch patches = [ ../development/perl-modules/Mail-SPF.patch ];
+
+    buildInputs = [ ModuleBuild NetDNSResolverProgrammable ];
+    propagatedBuildInputs = [ Error NetAddrIP NetDNS URI ];
+
+    buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\" --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build ";
+
+    doCheck = false; # The main test performs network access
+    meta = {
+      description = "An object-oriented implementation of Sender Policy Framework";
+      license = with lib.licenses; [ bsd3 ];
+      mainProgram = "spfquery";
+    };
+  };
+
+
+  MailTools = buildPerlPackage {
+    pname = "MailTools";
+    version = "2.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.21.tar.gz";
+      hash = "sha256-Stm9aCa28DonJzMkZrG30piQyNmaMrSzsKjZJu4aRMs=";
+    };
+    propagatedBuildInputs = [ TimeDate ];
+    meta = {
+      description = "Various ancient e-mail related modules";
+      homepage = "http://perl.overmeer.net/CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MailTransport = buildPerlPackage {
+    pname = "Mail-Transport";
+    version = "3.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz";
+      hash = "sha256-0Ny5P3BcEoXYCONN59htvijR7WaqKn3oMPZlH8NRlqM=";
+    };
+    propagatedBuildInputs = [ MailMessage ];
+    meta = {
+      description = "Email message exchange";
+      homepage = "http://perl.overmeer.net/CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathBase85 = buildPerlPackage {
+    pname = "Math-Base85";
+    version = "0.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PT/PTC/Math-Base85-0.5.tar.gz";
+      hash = "sha256-CwX3+2UKh5ezktjqkPLnK/uNCFBcmi4LlV39RacqNOU=";
+    };
+    meta = {
+      description = "Perl extension for base 85 numbers, as referenced by RFC 1924";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathBaseConvert = buildPerlPackage {
+    pname = "Math-Base-Convert";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKER/Math-Base-Convert-0.11.tar.gz";
+      hash = "sha256-jAlxNV8kyTt553rVSkVwCQoaWY/Lm4b1wX66QvOLQOA=";
+    };
+    meta = {
+      description = "Very fast base to base conversion";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathLibm = buildPerlPackage {
+    pname = "Math-Libm";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSLEWART/Math-Libm-1.00.tar.gz";
+      hash = "sha256-v9MJ8oOsjLm/AK+MfDoQvyWr/WQoYcICLvr/CkpSwnY=";
+    };
+    meta = {
+      description = "Perl extension for the C math library, libm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathCalcParser = buildPerlPackage {
+    pname = "Math-Calc-Parser";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz";
+      hash = "sha256-r8PrSWqzo6MBs0N68H4ZfrdDwGCQ8BAdrPggMC8rf3U=";
+    };
+    buildInputs = [ TestNeeds ];
+    meta = {
+      description = "Parse and evaluate mathematical expressions";
+      homepage = "https://github.com/Grinnz/Math-Calc-Parser";
+      broken = true;
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  MathCalcUnits = buildPerlPackage {
+    pname = "Math-Calc-Units";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SF/SFINK/Math-Calc-Units-1.07.tar.gz";
+      hash = "sha256-YePP2ye7O+4nvrlxJN2TB2DhA57cHreBbC9WJ3Zfj48=";
+    };
+    meta = {
+      description = "Human-readable unit-aware calculator";
+      license = with lib.licenses; [ artistic1 gpl2Only ];
+      mainProgram = "ucalc";
+    };
+  };
+
+  MathBigInt = buildPerlPackage {
+    pname = "Math-BigInt";
+    version = "1.999842";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.999842.tar.gz";
+      hash = "sha256-VGAcUMaZPn7hPYw6wzRs8VpNgGMUnNu+husB5WEORnU=";
+    };
+    meta = {
+      description = "Arbitrary size integer/float math package";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathBigIntGMP = buildPerlPackage {
+    pname = "Math-BigInt-GMP";
+    version = "1.6013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.6013.tar.gz";
+      hash = "sha256-yxqS4CJn1AUV+OA6TiEvZv0wfJdMu9MT4j3jL98Q9rU=";
+    };
+    buildInputs = [ pkgs.gmp ];
+    doCheck = false;
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    propagatedBuildInputs = [ MathBigInt ];
+    meta = {
+      description = "Backend library for Math::BigInt etc. based on GMP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathBigIntLite = buildPerlPackage {
+    pname = "Math-BigInt-Lite";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.29.tar.gz";
+      hash = "sha256-R4YN/KYxl4txxKqZkaGynk7LrzYbW7nrOVl1t//Nd/U=";
+    };
+    propagatedBuildInputs = [ MathBigInt ];
+    meta = {
+      description = "What Math::BigInts are before they become big";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathClipper = buildPerlModule {
+    pname = "Math-Clipper";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHELDRAKE/Math-Clipper-1.29.tar.gz";
+      hash = "sha256-UyfE8TOGbenXmzGGV/Zp7LSZhgVQs5aGmNRyiHr4dZM=";
+    };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
+    buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp TestDeep ];
+    meta = {
+      description = "Polygon clipping in 2D";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathConvexHullMonotoneChain = buildPerlPackage {
+    pname = "Math-ConvexHull-MonotoneChain";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/Math-ConvexHull-MonotoneChain-0.01.tar.gz";
+      hash = "sha256-KIvEWQgmMkVUj5FIKrEkiGjdne5Ef5yibK15YT47lPU=";
+    };
+    meta = {
+      description = "Andrew's monotone chain algorithm for finding a convex hull in 2D";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathFibonacci = buildPerlPackage {
+    pname = "Math-Fibonacci";
+    version = "1.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Math-Fibonacci-1.5.tar.gz";
+      hash = "sha256-cKgobpRVjfmdyS9S2D4eIKe494UrzDod59njOCYLmbo=";
+    };
+    meta = {
+      description = "This module provides a few functions related to Fibonacci numbers";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  MathGMP = buildPerlPackage {
+    pname = "Math-GMP";
+    version = "2.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Math-GMP-2.25.tar.gz";
+      hash = "sha256-OCtx5Udi9jnppCqbBpNBUZh7pX0Ru3DTXjvsiNUEUM4=";
+    };
+    buildInputs = [ pkgs.gmp AlienGMP ];
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      description = "High speed arbitrary size integer math";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  MathGMPz = buildPerlPackage {
+    pname = "Math-GMPz";
+    version = "0.59";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SISYPHUS/Math-GMPz-0.59.tar.gz";
+      hash = "sha256-mmrN45G0Ff5f7HwUyCTVUf/j+W81rycYRWuJ3jpkEaQ=";
+    };
+    buildInputs = [ TestWarn pkgs.gmp ];
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      description = "Perl interface to the GMP integer functions";
+      homepage = "https://github.com/sisyphus/math-gmpz";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  MathGeometryVoronoi = buildPerlPackage {
+    pname = "Math-Geometry-Voronoi";
+    version = "1.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/Math-Geometry-Voronoi-1.3.tar.gz";
+      hash = "sha256-cgdeTpiDzuUURrqVESZMjDKgFagPSlZIo/azgsU0QCw=";
+    };
+    propagatedBuildInputs = [ ClassAccessor ParamsValidate ];
+    meta = {
+      description = "Compute Voronoi diagrams from sets of points";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathInt128 = buildPerlPackage {
+    pname = "Math-Int128";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int128-0.22.tar.gz";
+      hash = "sha256-pjDKQBdThmlV8Rc4SKtbSsStXKatkIfxHN+R3ehRGbw=";
+    };
+    propagatedBuildInputs = [ MathInt64 ];
+    meta = {
+      description = "Manipulate 128 bits integers in Perl";
+      homepage = "https://metacpan.org/release/Math-Int128";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.is32bit; # compiler doesn't support a 128-bit integer type
+    };
+  };
+
+  MathInt64 = buildPerlPackage {
+    pname = "Math-Int64";
+    version = "0.54";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int64-0.54.tar.gz";
+      hash = "sha256-3PxR5phDfqa5zv4CdiFcVs22p/hePiSitrQYnxlg01E=";
+    };
+    meta = {
+      description = "Manipulate 64 bits integers in Perl";
+      homepage = "https://metacpan.org/release/Math-Int64";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathPari = buildPerlPackage rec {
+    pname = "Math-Pari";
+    version = "2.030523";
+    nativeBuildInputs = [ pkgs.unzip ];
+    pariversion = "2.1.7";
+    pari_tgz = fetchurl {
+      url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
+      hash = "sha256-kULyza8wg8iWLxpcK7Dp/okV99lJDAMxKsI2HH6hVfo=";
+    };
+    # Workaround build failure on -fno-common toolchains:
+    #   ld: libPARI/libPARI.a(compat.o):(.bss+0x8): multiple definition of
+    #   `overflow'; Pari.o:(.bss+0x80): first defined here
+    env.NIX_CFLAGS_COMPILE = "-fcommon";
+    preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
+    makeMakerFlags = [ "pari_tgz=pari-${pariversion}.tgz" ];
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.030518.zip";
+      hash = "sha256-3DiVWpaQvmuvqN4lJiEjd8Psn+jaXsAiY6nK+UtYu5E=";
+    };
+    meta = {
+      description = "Perl interface to PARI";
+      license = with lib.licenses; [ artistic1 gpl1Plus gpl2Only ];
+    };
+  };
+
+  MathPlanePath = buildPerlPackage {
+    pname = "Math-PlanePath";
+    version = "129";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/Math-PlanePath-129.tar.gz";
+      hash = "sha256-jaFdDk1Qd7bF0gN2WyiFv3KOUJ4y3pJkYFwIYhN+OX4=";
+    };
+    propagatedBuildInputs = [ MathLibm constant-defer ];
+    buildInputs = [ DataFloat MathBigIntLite NumberFraction ];
+    meta = {
+      description = "Points on a path through the 2-D plane";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  MathPrimeUtil = buildPerlPackage {
+    pname = "Math-Prime-Util";
+    version = "0.73";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz";
+      hash = "sha256-Svpt2M25dJm9TsppJYYYEsKdn1oPGsJ62dLZybVgKJQ=";
+    };
+    propagatedBuildInputs = [ MathPrimeUtilGMP ];
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Utilities related to prime numbers, including fast sieves and factoring";
+      homepage = "https://github.com/danaj/Math-Prime-Util";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MathPrimeUtilGMP = buildPerlPackage {
+    pname = "Math-Prime-Util-GMP";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz";
+      hash = "sha256-JpfH/Vx+Nf3sf1DtVqZ76Aei8iZXWJ5jfa01knRAA74=";
+    };
+    buildInputs = [ pkgs.gmp ];
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      description = "Utilities related to prime numbers, using GMP";
+      homepage = "https://github.com/danaj/Math-Prime-Util-GMP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MathProvablePrime = buildPerlPackage {
+    pname = "Math-ProvablePrime";
+    version = "0.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FELIPE/Math-ProvablePrime-0.51.tar.gz";
+      hash = "sha256-D7YWRJ+weorR6KgJxwghthjlPcD/3ayWVnYY3jPEbBE=";
+    };
+    buildInputs = [ FileWhich TestClass TestDeep TestException TestFailWarnings ];
+    propagatedBuildInputs = [ BytesRandomSecureTiny ];
+    meta = {
+      description = "Generate a provable prime number, in pure Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MathRandom = buildPerlPackage {
+    pname = "Math-Random";
+    version = "0.72";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Random-0.72.tar.gz";
+      hash = "sha256-vgUiMogR2W3lBdnrrD0JY1kCb6jVw497uZmnjsW8JUw=";
+    };
+    meta = {
+      description = "Random Number Generators";
+      license = with lib.licenses; [ artistic1 gpl1Plus publicDomain ];
+    };
+  };
+
+  MathRandomISAAC = buildPerlPackage {
+    pname = "Math-Random-ISAAC";
+    version = "1.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz";
+      hash = "sha256-J3PwL78gfpdF52oDffCL9ajMmH7SPFcEDOf3sVYfK3w=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    meta = {
+      description = "Perl interface to the ISAAC PRNG algorithm";
+      homepage = "https://search.cpan.org/dist/Math-Random-ISAAC";
+      license = with lib.licenses; [ publicDomain mit artistic2 gpl1Plus ];
+    };
+  };
+
+  MathRandomMTAuto = buildPerlPackage {
+    pname = "Math-Random-MT-Auto";
+    version = "6.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Math-Random-MT-Auto-6.23.tar.gz";
+      hash = "sha256-WLy1rTFilk/1oMTS3LqgICwshdnEcElvO3qZh1d3YxM=";
+    };
+    propagatedBuildInputs = [ ObjectInsideOut ];
+    meta = {
+      description = "Auto-seeded Mersenne Twister PRNGs";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+  MathRandomSecure = buildPerlPackage {
+    pname = "Math-Random-Secure";
+    version = "0.080001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/Math-Random-Secure-0.080001.tar.gz";
+      hash = "sha256-v6Sk6BfspyIGfB/z2hKrWrgNbFfapeXnq5NQyixx6zU=";
+    };
+    buildInputs = [ ListMoreUtils TestSharedFork TestWarn ];
+    propagatedBuildInputs = [ CryptRandomSource MathRandomISAAC ];
+    meta = {
+      description = "Cryptographically-secure, cross-platform replacement for rand()";
+      homepage = "https://github.com/frioux/Math-Random-Secure";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  MathRound = buildPerlPackage {
+    pname = "Math-Round";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Round-0.07.tar.gz";
+      hash = "sha256-c6cymoblSlwppEA4LlgDCVtY8zEp5hod8Ak7SCTekyc=";
+    };
+    meta = {
+      description = "Perl extension for rounding numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MathVecStat = buildPerlPackage {
+    pname = "Math-VecStat";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASPINELLI/Math-VecStat-0.08.tar.gz";
+      hash = "sha256-QJqODksQJcjoD2KPZal3iqd6soUWFAbKSmwJexNlbQ0=";
+    };
+    meta = {
+      description = "Some basic numeric stats on vectors";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MaxMindDBCommon = buildPerlPackage {
+    pname = "MaxMind-DB-Common";
+    version = "0.040001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Common-0.040001.tar.gz";
+      hash = "sha256-a8bfS9NjANB6pKX4GYrmaUyn4xPAOBCciNvDqZeyG9c=";
+    };
+    propagatedBuildInputs = [ DataDumperConcise DateTime ListAllUtils MooXStrictConstructor ];
+    meta = {
+      description = "Code shared by the MaxMind DB reader and writer modules";
+      homepage = "https://metacpan.org/release/MaxMind-DB-Common";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  MaxMindDBReader = buildPerlPackage {
+    pname = "MaxMind-DB-Reader";
+    version = "1.000014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-1.000014.tar.gz";
+      hash = "sha256-OCAHj5yWf5qIch6kDKBeSZnBxTAb68HRGQYPntXOOak=";
+    };
+    propagatedBuildInputs = [ DataIEEE754 DataPrinter DataValidateIP MaxMindDBCommon ];
+    buildInputs = [ PathClass TestBits TestFatal TestNumberDelta TestRequires ];
+    meta = {
+      description = "Read MaxMind DB files and look up IP addresses";
+      homepage = "https://metacpan.org/release/MaxMind-DB-Reader";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  MaxMindDBReaderXS = buildPerlModule {
+    pname = "MaxMind-DB-Reader-XS";
+    version = "1.000009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-XS-1.000009.tar.gz";
+      hash = "sha256-qm+4f+0Z1UnymxNd55l+6SsSJ9Ymyw6JBgCpHK3DBTo=";
+    };
+    propagatedBuildInputs = [ pkgs.libmaxminddb MathInt128 MaxMindDBReader ];
+    buildInputs = [ NetWorks PathClass TestFatal TestNumberDelta TestRequires ];
+    meta = {
+      description = "Fast XS implementation of MaxMind DB reader";
+      homepage = "https://metacpan.org/release/MaxMind-DB-Reader-XS";
+      license = with lib.licenses; [ artistic2 ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin
+    };
+  };
+
+  MaxMindDBWriter = buildPerlModule {
+    pname = "MaxMind-DB-Writer";
+    version = "0.300003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Writer-0.300003.tar.gz";
+      hash = "sha256-ulP1upZfekd/ZxZNl7R1oMESCIcv7fI4mIVQ2SvN6z4=";
+    };
+    propagatedBuildInputs = [ DigestSHA1 MaxMindDBReader MooseXParamsValidate MooseXStrictConstructor NetWorks SerealDecoder SerealEncoder ];
+    buildInputs = [ DevelRefcount JSON TestBits TestDeep TestFatal TestHexDifferences TestRequires TestWarnings ];
+    hardeningDisable = [ "format" ];
+    meta = {
+      description = "Create MaxMind DB database files";
+      homepage = "https://metacpan.org/release/MaxMind-DB-Writer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin
+    };
+  };
+
+  Memoize = buildPerlPackage {
+    pname = "Memoize";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Memoize-1.16.tar.gz";
+      hash = "sha256-CRlSvPSS7O41ueW41ykgxYAjRB15IIwduHg3xcV4B74=";
+    };
+    meta = {
+      description = "Make functions faster by trading space for time";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MemoizeExpireLRU = buildPerlPackage {
+    pname = "Memoize-ExpireLRU";
+    version = "0.56";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz";
+      hash = "sha256-7oNjAcu6uaJLBfxlft+pS3/YV42YNuVmoZHQpbAc1/Y=";
+    };
+    meta = {
+      description = "Expiry plug-in for Memoize that adds LRU cache expiration";
+      homepage = "https://github.com/neilb/Memoize-ExpireLRU";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Menlo = buildPerlPackage {
+    pname = "Menlo";
+    version = "1.9019";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-1.9019.tar.gz";
+      hash = "sha256-O1c/aOezo2qHyGC+JYWZMw+sJItRiFTftWV6xIPcpWU=";
+    };
+    propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ];
+    meta = {
+      description = "A CPAN client";
+      homepage = "https://github.com/miyagawa/cpanminus";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MenloLegacy = buildPerlPackage {
+    pname = "Menlo-Legacy";
+    version = "1.9022";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-Legacy-1.9022.tar.gz";
+      hash = "sha256-pqysP+4xioBLQ53lSsvHwn8LRM/a2FUbvJzUWYarwgE=";
+    };
+    propagatedBuildInputs = [ Menlo ];
+    meta = {
+      description = "Legacy internal and client support for Menlo";
+      homepage = "https://github.com/miyagawa/cpanminus";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MetaBuilder = buildPerlModule {
+    pname = "Meta-Builder";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Meta-Builder-0.004.tar.gz";
+      hash = "sha256-rLSZqnIG652yHrhTV6dFIb/jva5KZBbVCnx1uTnPVv4=";
+    };
+    buildInputs = [ FennecLite TestException ];
+    meta = {
+      description = "Tools for creating Meta objects to track custom metrics";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MetaCPANClient = buildPerlPackage {
+    pname = "MetaCPAN-Client";
+    version = "2.030000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.030000.tar.gz";
+      hash = "sha256-2bdlxSN3VPFyYmljgqc4XZCy0BmGl5gXhisWZLBt068=";
+    };
+
+    # Most tests are online, so we only include offline tests
+    postPatch = ''
+      substituteInPlace Makefile.PL \
+        --replace '"t/*.t t/api/*.t"' \
+        '"t/00-report-prereqs.t t/api/_get.t t/api/_get_or_search.t t/api/_search.t t/entity.t t/request.t t/resultset.t"'
+    '';
+
+    buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ];
+    propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ];
+    meta = {
+      description = "A comprehensive, DWIM-featured client to the MetaCPAN API";
+      homepage = "https://github.com/metacpan/metacpan-client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  MethodSignaturesSimple = buildPerlPackage {
+    pname = "Method-Signatures-Simple";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RH/RHESA/Method-Signatures-Simple-1.07.tar.gz";
+      hash = "sha256-yM19Rxl3zIh2BEGSq9mKga/d/yomu5oQu+NY76Nx2tw=";
+    };
+    propagatedBuildInputs = [ DevelDeclare ];
+    meta = {
+      description = "Basic method declarations with signatures, without source filters";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MetricsAny = buildPerlModule {
+    pname = "Metrics-Any";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.10.tar.gz";
+      hash = "sha256-qQ6t+civJKUWu5obZwYfZBhT+QuP7p/8JNK7lyDouZs=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Abstract collection of monitoring metrics";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  # TODO: use CPAN version
+  MHonArc = buildPerlPackage rec {
+    pname = "MHonArc";
+    version = "2.6.24";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-2.6.24.tar.gz";
+      hash = "sha256-RX3HN07lnLdaBynlHO8vLFK0gYD3Odj9lW6hmIKBXzM=";
+    };
+
+    outputs = [ "out" "dev" ]; # no "devdoc"
+
+    installTargets = [ "install" ];
+
+    meta = {
+      homepage = "https://www.mhonarc.org/";
+      description = "A mail-to-HTML converter";
+      mainProgram = "mhonarc";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  MIMECharset = buildPerlPackage {
+    pname = "MIME-Charset";
+    version = "1.013.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz";
+      hash = "sha256-G7em4MDSUfI9bmC/hMmt78W3TuxYR1v+5NORB+YIcPA=";
+    };
+    meta = {
+      description = "Charset Information for MIME";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  mimeConstruct = buildPerlPackage {
+    pname = "mime-construct";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROSCH/mime-construct-1.11.tar.gz";
+      hash = "sha256-TNe7YbUdQRktFJjBBRqmpMzXWusJtx0uxwanCEpKkwM=";
+    };
+    outputs = [ "out" ];
+    buildInputs = [ ProcWaitStat ];
+    meta = {
+      description = "Construct and optionally mail MIME messages";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  MIMEEncWords = buildPerlPackage {
+    pname = "MIME-EncWords";
+    version = "1.014.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-EncWords-1.014.3.tar.gz";
+      hash = "sha256-6a+1SGEdTn5sULfwa70rG7KAjjeoEN7vtTfGevVIUjg=";
+    };
+    propagatedBuildInputs = [ MIMECharset ];
+    meta = {
+      description = "Deal with RFC 2047 encoded words (improved)";
+      homepage = "https://metacpan.org/pod/MIME::EncWords";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MIMELite = buildPerlPackage {
+    pname = "MIME-Lite";
+    version = "3.033";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/MIME-Lite-3.033.tar.gz";
+      hash = "sha256-eKJ58dLiQlUcNH75ehP8Z1dmYCy4TCqAxWlAD082i6s=";
+    };
+    propagatedBuildInputs = [ EmailDateFormat ];
+    meta = {
+      description = "Low-calorie MIME generator (DEPRECATED)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MIMELiteHTML = buildPerlPackage {
+    pname = "MIME-Lite-HTML";
+    version = "1.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALIAN/MIME-Lite-HTML-1.24.tar.gz";
+      hash = "sha256-22A8y/ZlO80oz6gk1y5RHq0Bn8ivufGFTshy2y082No=";
+    };
+    doCheck = false;
+    propagatedBuildInputs = [ LWP MIMELite ];
+    meta = {
+      description = "Provide routine to transform a HTML page in a MIME-Lite mail";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MIMETools = buildPerlPackage {
+    pname = "MIME-tools";
+    version = "5.509";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-5.509.tar.gz";
+      hash = "sha256-ZFefDJI9gdmiGUWG5Hw0dVGeJkbktcECqJIHWfrPaXM=";
+    };
+    propagatedBuildInputs = [ MailTools ];
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Tools to manipulate MIME messages";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MIMETypes = buildPerlPackage {
+    pname = "MIME-Types";
+    version = "2.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-2.24.tar.gz";
+      hash = "sha256-Yp42HyKyIL5QwtpzVOI8BFF1dwmgPCWiLzFg7blMtl8=";
+    };
+    meta = {
+      description = "Definition of MIME types";
+      homepage = "http://perl.overmeer.net/CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Minion = buildPerlPackage {
+    pname = "Minion";
+    version = "10.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.25.tar.gz";
+      hash = "sha256-C+CoN1N2iJ2gRgRpY4TAz5iyYh0mUNnrAwf25LlAra0=";
+    };
+    propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
+    meta = {
+      description = "A high performance job queue for Perl";
+      homepage = "https://github.com/mojolicious/minion";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MinionBackendRedis = buildPerlModule {
+    pname = "Minion-Backend-Redis";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DF/DFUG/Minion-Backend-Redis-0.003.tar.gz";
+      hash = "sha256-zXZRIQbfHKmQF75fObSmXgSCawzZQxe3GsAWGzXzI6A=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Minion MojoRedis Mojolicious SortVersions ];
+    meta = {
+      homepage = "https://github.com/Difegue/Minion-Backend-Redis";
+      description = "Redis backend for Minion job queue";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  MinionBackendSQLite = buildPerlModule {
+    pname = "Minion-Backend-SQLite";
+    version = "5.0.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.7.tar.gz";
+      hash = "sha256-zd49IrGv+n32seErKlLp88G2gci1k6G+TeO+aOTaXHI=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Minion MojoSQLite ];
+    meta = {
+      description = "SQLite backend for Minion job queue";
+      homepage = "https://github.com/Grinnz/Minion-Backend-SQLite";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MinionBackendmysql = buildPerlPackage {
+    pname = "Minion-Backend-mysql";
+    version = "1.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-1.003.tar.gz";
+      hash = "sha256-aaJcJAyw5NTvTxqjKgTt+Nolt+jTqCDP1kVhWZ7aRUI=";
+    };
+    buildInputs = [ Testmysqld ];
+    propagatedBuildInputs = [ Minion Mojomysql ];
+    meta = {
+      description = "MySQL backend for the Minion job queue";
+      homepage = "https://github.com/preaction/Minion-Backend-mysql";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MixinLinewise = buildPerlPackage {
+    pname = "Mixin-Linewise";
+    version = "0.111";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Mixin-Linewise-0.111.tar.gz";
+      hash = "sha256-0o6IUWzptSlcMWMdzM3A/I8qt9ilzIdrsbIBMQh7Ads=";
+    };
+    propagatedBuildInputs = [ PerlIOutf8_strict SubExporter ];
+    meta = {
+      description = "Write your linewise code for handles; this does the rest";
+      homepage = "https://github.com/rjbs/Mixin-Linewise";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MLDBM = buildPerlModule {
+    pname = "MLDBM";
+    version = "2.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/MLDBM-2.05.tar.gz";
+      hash = "sha256-WGiA7QwggBq79nNHR+E+AgPt7+zm68TyDdtQWfAqF6I=";
+    };
+    meta = {
+      description = "Store multi-level Perl hash structure in single level tied hash";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MNI-Perllib = callPackage ../development/perl-modules/MNI {};
+
+  Mo = buildPerlPackage {
+    pname = "Mo";
+    version = "0.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz";
+      hash = "sha256-kdJBUjkfjCeX7jUDkTja6m3j7gO98+G4ck+lx1VAzrk=";
+    };
+    meta = {
+      description = "Micro Objects. Mo is less";
+      homepage = "https://github.com/ingydotnet/mo-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mo-inline";
+    };
+  };
+
+  MockConfig = buildPerlPackage {
+    pname = "Mock-Config";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz";
+      hash = "sha256-pbg0V1fKTyuTNfW+FOk+u7UChlIzp1W/U7xxVt7sABs=";
+    };
+    meta = {
+      description = "Temporarily set Config or XSConfig values";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModernPerl = buildPerlPackage {
+    pname = "Modern-Perl";
+    version = "1.20230106";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz";
+      hash = "sha256-BFncq4DOgrY0Yf2B7pTgbpplFdmPP7wxmDjdHmAoUfc=";
+    };
+    meta = {
+      description = "Enable all of the features of Modern Perl with one import";
+      homepage = "https://github.com/chromatic/Modern-Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Modulecpmfile = buildPerlModule {
+    pname = "Module-cpmfile";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/Module-cpmfile-0.006.tar.gz";
+      hash = "sha256-G8l24pN3JIlsn26unl3KmB4n+YQwuS3icO41FP0ArA8=";
+    };
+    buildInputs = [ ModuleBuildTiny ModuleCPANfile Test2Suite ];
+    propagatedBuildInputs = [ YAMLPP ];
+    meta = {
+      description = "Parse cpmfile";
+      homepage = "https://github.com/skaji/cpmfile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  ModuleBuild = buildPerlPackage {
+    pname = "Module-Build";
+    version = "0.4234";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4234.tar.gz";
+      hash = "sha256-Zq6sYSdBi+XkcerTdEZIx2a9AUgoJcW2ZlJnXyvIao8=";
+    };
+    postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      # for unknown reason, the first run of Build fails
+      ./Build || true
+    '';
+    postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      # remove version check since miniperl uses a stub of File::Temp, which do not provide a version:
+      # https://github.com/arsv/perl-cross/blob/master/cnf/stub/File/Temp.pm
+      sed -i '/File::Temp/d' \
+        Build.PL
+
+      # fix discover perl function, it can not handle a wrapped perl
+      sed -i "s,\$self->_discover_perl_interpreter,'$(type -p perl)',g" \
+        lib/Module/Build/Base.pm
+    '';
+    meta = {
+      description = "Build and install Perl modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "config_data";
+    };
+  };
+
+  ModuleBuildDeprecated = buildPerlModule {
+    pname = "Module-Build-Deprecated";
+    version = "0.4210";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Deprecated-0.4210.tar.gz";
+      hash = "sha256-vgiTE/wjjuIYNHOsqMhrVfs89EeXMSy+m4ktY2JiFwM=";
+    };
+    doCheck = false;
+    meta = {
+      description = "A collection of modules removed from Module-Build";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleBuildPluggable = buildPerlModule {
+    pname = "Module-Build-Pluggable";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-0.10.tar.gz";
+      hash = "sha256-5bsqyxF3ksmEYogSrLD+w3bLlwyu6O3ldTXgTXYrDkA=";
+    };
+    propagatedBuildInputs = [ ClassAccessorLite ClassMethodModifiers DataOptList ];
+    buildInputs = [ TestSharedFork ];
+    meta = {
+      description = "Module::Build meets plugins";
+      homepage = "https://github.com/tokuhirom/Module-Build-Pluggable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleBuildPluggableCPANfile = buildPerlModule {
+    pname = "Module-Build-Pluggable-CPANfile";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Module-Build-Pluggable-CPANfile-0.05.tar.gz";
+      hash = "sha256-SuxsuiQMtueAFkBrajqHVjTMKuwI/8XxVy2hzcQOHnw=";
+    };
+    buildInputs = [ CaptureTiny TestRequires TestSharedFork ];
+    propagatedBuildInputs = [ ModuleBuildPluggable ModuleCPANfile ];
+    meta = {
+      description = "Include cpanfile";
+      homepage = "https://github.com/kazeburo/Module-Build-Pluggable-CPANfile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleBuildPluggablePPPort = buildPerlModule {
+    pname = "Module-Build-Pluggable-PPPort";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-PPPort-0.04.tar.gz";
+      hash = "sha256-RAhLo9iBXzQ705FYWsXYM5pIB85cDdhMmNuPMQtkwOo=";
+    };
+    buildInputs = [ TestRequires TestSharedFork ];
+    propagatedBuildInputs = [ ModuleBuildPluggable ];
+    meta = {
+      description = "Generate ppport.h";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleBuildTiny = buildPerlModule {
+    pname = "Module-Build-Tiny";
+    version = "0.047";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Tiny-0.047.tar.gz";
+      hash = "sha256-cSYOlCG5PDPdGz59DPFfdZwMp8dT+oQCeew75w+PjJ0=";
+    };
+    buildInputs = [ FileShareDir ];
+    propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ];
+    meta = {
+      description = "A tiny replacement for Module::Build";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleBuildWithXSpp = buildPerlModule {
+    pname = "Module-Build-WithXSpp";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/Module-Build-WithXSpp-0.14.tar.gz";
+      hash = "sha256-U7PIyP29UPw9rT0Z2iDxtkFO9wZluTEXEMgClp50aTQ=";
+    };
+    propagatedBuildInputs = [ ExtUtilsCppGuess ExtUtilsXSpp ];
+    meta = {
+      description = "XS++ enhanced flavour of Module::Build";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleBuildXSUtil = buildPerlModule {
+    pname = "Module-Build-XSUtil";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HI/HIDEAKIO/Module-Build-XSUtil-0.19.tar.gz";
+      hash = "sha256-kGOzw0bt60IoB//kn/sjA4xPkA1Kd7hFzktT2XvylAA=";
+    };
+    buildInputs = [ CaptureTiny CwdGuard FileCopyRecursiveReduced ];
+    propagatedBuildInputs = [ DevelCheckCompiler ];
+    perlPreHook = "export LD=$CC";
+    meta = {
+      description = "A Module::Build class for building XS modules";
+      homepage = "https://github.com/hideo55/Module-Build-XSUtil";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleCompile = buildPerlPackage rec {
+    pname = "Module-Compile";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/Module-Compile-0.38.tar.gz";
+      hash = "sha256-gJDPu2ESNDfu/sPjvthgBdH3xaUp+2/aLr68ZWS5qhA=";
+    };
+    propagatedBuildInputs = [ CaptureTiny DigestSHA1 ];
+    meta = {
+      description = "Perl Module Compilation";
+      homepage = "https://github.com/ingydotnet/module-compile-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleCPANTSAnalyse = buildPerlPackage {
+    pname = "Module-CPANTS-Analyse";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.02.tar.gz";
+      hash = "sha256-nhFzm5zQi6LXWllzfx+yl/RYA/KJBjxcdZv8eP1Rbns=";
+    };
+    propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff ClassAccessor DataBinary FileFindObject ModuleFind ParseDistname PerlPrereqScannerNotQuiteLite SoftwareLicense ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ];
+    meta = {
+      description = "Generate Kwalitee ratings for a distribution";
+      homepage = "https://cpants.cpanauthors.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleCPANfile = buildPerlPackage {
+    pname = "Module-CPANfile";
+    version = "1.1004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz";
+      hash = "sha256-iO++LppkLc6qGGQw/t/PmZqvDgb2zO0opxS45WtRSSE=";
+    };
+    buildInputs = [ Filepushd ];
+    meta = {
+      description = "Parse cpanfile";
+      homepage = "https://github.com/miyagawa/cpanfile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleExtractUse = buildPerlModule {
+    pname = "Module-ExtractUse";
+    version = "0.345";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.345.tar.gz";
+      hash = "sha256-juJOh0KrnaeSKL4Yfdoxm01fUKkaHs+H1JQhO1uzDdE=";
+    };
+    propagatedBuildInputs = [ ParseRecDescent PodStrip ];
+    buildInputs = [ TestDeep TestNoWarnings ];
+    meta = {
+      description = "Find out what modules are used";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleExtractVERSION = buildPerlPackage {
+    pname = "Module-Extract-VERSION";
+    version = "1.116";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Module-Extract-VERSION-1.116.tar.gz";
+      hash = "sha256-QZA6BoUXgoU0X12oVdkluUVO5xCpeV48TDJ7ri9Vdpg=";
+    };
+    meta = {
+      homepage = "https://github.com/briandfoy/module-extract-version";
+      description = "Extract a module version safely";
+      license = lib.licenses.artistic2;
+    };
+  };
+
+  ModuleFind = buildPerlPackage {
+    pname = "Module-Find";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.16.tar.gz";
+      hash = "sha256-S8qqN2kVAUco1PUzqYxbWdZlBRzTzbr8lg5aZv0TEJI=";
+    };
+    meta = {
+      description = "Find and use installed modules in a (sub)category";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleImplementation = buildPerlPackage {
+    pname = "Module-Implementation";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz";
+      hash = "sha256-wV8aEvDCEwye//PC4a/liHsIzNAzvRMhhtHn1Qh/1m0=";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ ModuleRuntime TryTiny ];
+    meta = {
+      description = "Loads one of several alternate underlying implementations for a module";
+      homepage = "https://metacpan.org/release/Module-Implementation";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ModuleInfo = buildPerlPackage {
+    pname = "Module-Info";
+    version = "0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Info-0.37.tar.gz";
+      hash = "sha256-jqgCUpeQsZwfNzoeR9g4FmT5xMH3ao2LvG221zEcJEg=";
+    };
+    buildInputs = [ TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ BUtils ];
+    meta = {
+      description = "Information about Perl modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "module_info";
+    };
+  };
+
+  ModuleInstall = buildPerlPackage {
+    pname = "Module-Install";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Install-1.21.tar.gz";
+      hash = "sha256-+/kQB/MFZfOSDhBgVf0NQoeYHV59rYs1MjzktzPxWns=";
+    };
+    propagatedBuildInputs = [ FileRemove ModuleBuild ModuleScanDeps YAMLTiny ];
+    meta = {
+      description = "Standalone, extensible Perl module installer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleInstallAuthorRequires = buildPerlPackage {
+    pname = "Module-Install-AuthorRequires";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/Module-Install-AuthorRequires-0.02.tar.gz";
+      hash = "sha256-zGMhU310XSqDqChvhe8zRnRZOcw7NBAgRb7IVg6PTOw=";
+    };
+    propagatedBuildInputs = [ ModuleInstall ];
+    meta = {
+      description = "Declare author-only dependencies";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleInstallAuthorTests = buildPerlPackage {
+    pname = "Module-Install-AuthorTests";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Module-Install-AuthorTests-0.002.tar.gz";
+      hash = "sha256-QCVyLeY1ft9TwoUBsA59qSzS+fxhG6B1N2Gg4d/zLYg=";
+    };
+    propagatedBuildInputs = [ ModuleInstall ];
+    meta = {
+      description = "Designate tests only run by module authors";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleInstallGithubMeta = buildPerlPackage {
+    pname = "Module-Install-GithubMeta";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-GithubMeta-0.30.tar.gz";
+      hash = "sha256-Lq1EyXPHSNctnxmeQcRNwYAf6a4GsPrcWUR2k6PJgoE=";
+    };
+    buildInputs = [ CaptureTiny ];
+    propagatedBuildInputs = [ ModuleInstall ];
+    meta = {
+      description = "A Module::Install extension to include GitHub meta information in META.yml";
+      homepage = "https://github.com/bingos/module-install-githubmeta";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ModuleInstallReadmeFromPod = buildPerlPackage {
+    pname = "Module-Install-ReadmeFromPod";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-ReadmeFromPod-0.30.tar.gz";
+      hash = "sha256-efbfVTZhn6/72mlr3SXMrRfEab8y5RzT5hM2bUlAAWk=";
+    };
+    buildInputs = [ TestInDistDir ];
+    propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ];
+    meta = {
+      description = "A Module::Install extension to automatically convert POD to a README";
+      homepage = "https://github.com/bingos/module-install-readmefrompod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ModuleInstallReadmeMarkdownFromPod = buildPerlPackage {
+    pname = "Module-Install-ReadmeMarkdownFromPod";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTN/Module-Install-ReadmeMarkdownFromPod-0.04.tar.gz";
+      hash = "sha256-MAsuJE+DuaVKlfhATBzTrwY1tPrpdMplOQ7kKOxmhZE=";
+    };
+    buildInputs = [ URI ];
+    propagatedBuildInputs = [ ModuleInstall PodMarkdown ];
+    meta = {
+      description = "Create README.mkdn from POD";
+      homepage = "https://search.cpan.org/dist/Module-Install-ReadmeMarkdownFromPod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ModuleInstallRepository = buildPerlPackage {
+    pname = "Module-Install-Repository";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-Install-Repository-0.06.tar.gz";
+      hash = "sha256-AOJZDQkznMzL2qMo0SrY7HfoMaOMmtZjcF5Z7LsYcis=";
+    };
+    buildInputs = [ PathClass ];
+    meta = {
+      description = "Automatically sets repository URL from svn/svk/Git checkout";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ModuleInstallXSUtil = buildPerlPackage {
+    pname = "Module-Install-XSUtil";
+    version = "0.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/Module-Install-XSUtil-0.45.tar.gz";
+      hash = "sha256-/nHlMyC+4TGXdJoLF2CaomP3H/RuXiwTDpR0Lqar31Y=";
+    };
+    buildInputs = [ BHooksOPAnnotation ];
+    propagatedBuildInputs = [ ModuleInstall ];
+    meta = {
+      description = "Utility functions for XS modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleManifest = buildPerlPackage {
+    pname = "Module-Manifest";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-1.09.tar.gz";
+      hash = "sha256-o5X4D/FeoOZv1sRThEtnh+1Kh1o82N+ffikoAlC9U5s=";
+    };
+    buildInputs = [ TestException TestWarn ];
+    propagatedBuildInputs = [ ParamsUtil ];
+    meta = {
+      description = "Parse and examine a Perl distribution MANIFEST file";
+      homepage = "https://github.com/karenetheridge/Module-Manifest";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModulePath = buildPerlPackage {
+    pname = "Module-Path";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.19.tar.gz";
+      hash = "sha256-szF5zk3XPfzefUaAiAS5/7sR2wJF/kVafQAXR1Yv6so=";
+    };
+    buildInputs = [ DevelFindPerl ];
+    meta = {
+      description = "Get the full path to a locally installed module";
+      homepage = "https://github.com/neilbowers/Module-Path";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mpath";
+    };
+  };
+
+  ModulePluggable = buildPerlPackage {
+    pname = "Module-Pluggable";
+    version = "5.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-5.2.tar.gz";
+      hash = "sha256-s/KtReT9ELP7kNkS142LeVqylUgNtW3GToa5+nXFpt8=";
+    };
+    patches = [
+      # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
+      ../development/perl-modules/module-pluggable.patch
+    ];
+    buildInputs = [ AppFatPacker ];
+    meta = {
+      description = "Automatically give your module the ability to have plugins";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModulePluggableFast = buildPerlPackage {
+    pname = "Module-Pluggable-Fast";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Module-Pluggable-Fast-0.19.tar.gz";
+      hash = "sha256-CMhXcFjxmTLKG2Zre5EmoYtVajmwi+b7ObBqRTkqB18=";
+    };
+    propagatedBuildInputs = [ UNIVERSALrequire ];
+    meta = {
+      description = "Fast plugins with instantiation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleRefresh = buildPerlPackage {
+    pname = "Module-Refresh";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Module-Refresh-0.18.tar.gz";
+      hash = "sha256-4JTaqQmv32SJqeKzJzP2haLBy1zIh2BhB1SGEJsN71k=";
+    };
+    buildInputs = [ PathClass ];
+    meta = {
+      description = "Refresh %INC files when updated on disk";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleRuntime = buildPerlModule {
+    pname = "Module-Runtime";
+    version = "0.016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz";
+      hash = "sha256-aDAuxkaDNUfUEL4o4JZ223UAb0qlihHzvbRP/pnw8CQ=";
+    };
+    meta = {
+      description = "Runtime module handling";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleRuntimeConflicts = buildPerlPackage {
+    pname = "Module-Runtime-Conflicts";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz";
+      hash = "sha256-cHzcdQOMcP6Rd5uIisBQ8ShWXTlnupZoDhscfMlzOHU=";
+    };
+    propagatedBuildInputs = [ DistCheckConflicts ];
+    meta = {
+      description = "Provide information on conflicts for Module::Runtime";
+      homepage = "https://github.com/karenetheridge/Module-Runtime-Conflicts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleScanDeps = buildPerlPackage {
+    pname = "Module-ScanDeps";
+    version = "1.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSCHUPP/Module-ScanDeps-1.34.tar.gz";
+      hash = "sha256-ysUw5c/EE+BneXx9I3xsXNMpFcPZ+u5dlANcjzqFUOs=";
+    };
+    buildInputs = [ TestRequires IPCRun3 ];
+    propagatedBuildInputs = [ TextParsewords ];
+    meta = {
+      description = "Recursively scan Perl code for dependencies";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scandeps.pl";
+    };
+  };
+
+  ModuleSignature = buildPerlPackage {
+    pname = "Module-Signature";
+    version = "0.87";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AU/AUDREYT/Module-Signature-0.87.tar.gz";
+      hash = "sha256-IU6AVcUP7DcalXQ1IP4mlAAE52FpBjsrROyQoNRdaYI=";
+    };
+    buildInputs = [ IPCRun ];
+    meta = {
+      description = "Module signature file manipulation";
+      license = with lib.licenses; [ cc0 ];
+      mainProgram = "cpansign";
+    };
+  };
+
+  ModuleUtil = buildPerlModule {
+    pname = "Module-Util";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz";
+      hash = "sha256-bPvLakUGREbsiqDuGn3dxCC1RGkwM0QYeu+E0sfz4sY=";
+    };
+    meta = {
+      description = "Module name tools and transformations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pm_which";
+    };
+  };
+
+  ModuleVersions = buildPerlPackage {
+    pname = "Module-Versions";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TH/THW/Module-Versions-0.02.zip";
+      hash = "sha256-DTimWxenrFGI1zh8/+f6oSY4Rw3JNxYevz2kh7fR+Dw=";
+    };
+    buildInputs = [ pkgs.unzip ];
+    meta = {
+      description = "Handle versions of loaded modules with flexible result interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ModuleVersionsReport = buildPerlPackage {
+    pname = "Module-Versions-Report";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JESSE/Module-Versions-Report-1.06.tar.gz";
+      hash = "sha256-oyYdDYSxdnjYxP1V6w+JL1FE2BylPqmjjXXRoArZeWo=";
+    };
+    meta = {
+      description = "Report versions of all modules in memory";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MojoDOM58 = buildPerlPackage {
+    pname = "Mojo-DOM58";
+    version = "3.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-DOM58-3.001.tar.gz";
+      hash = "sha256-GLJtVB5TFEFa3d8xQ2nZQMi6BrESNMpQb9vmzyJPV5Y=";
+    };
+    meta = {
+      description = "Minimalistic HTML/XML DOM parser with CSS selectors";
+      homepage = "https://github.com/Grinnz/Mojo-DOM58";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  mod_perl2 = buildPerlPackage {
+    pname = "mod_perl";
+    version = "2.0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHAY/mod_perl-2.0.12.tar.gz";
+      hash = "sha256-9bghtZsP3JZw5G7Q/PMtiRHyUSYYmotowWUvkiHu4mk=";
+    };
+
+    makeMakerFlags = [ "MP_AP_DESTDIR=$out" ];
+    buildInputs = [ pkgs.apacheHttpd ];
+    doCheck = false; # would try to start Apache HTTP server
+    passthru.tests = nixosTests.mod_perl;
+    meta = {
+      description = "Embed a Perl interpreter in the Apache/2.x HTTP server";
+      license = with lib.licenses; [ asl20 ];
+      mainProgram = "mp2bug";
+    };
+  };
+
+  Mojolicious = buildPerlPackage {
+    pname = "Mojolicious";
+    version = "9.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.35.tar.gz";
+      hash = "sha256-akpEbuB/ynxtty9dgXVA1oMwCcuN58zkxvskoV7n1Gs=";
+    };
+    meta = {
+      description = "Real-time web framework";
+      homepage = "https://mojolicious.org";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = with maintainers; [ thoughtpolice sgo ];
+      mainProgram = "mojo";
+    };
+  };
+
+  MojoliciousPluginAssetPack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-AssetPack";
+    version = "2.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-AssetPack-2.14.tar.gz";
+      hash = "sha256-jwWMyIw1mb6/ZjeK7GS91uvNkMljGL3m1ov6551j6qM=";
+    };
+    propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious ];
+    meta = {
+      description = "Compress and convert css, less, sass, javascript and coffeescript files";
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  MojoliciousPluginGravatar = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Gravatar";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-Gravatar-0.04.tar.gz";
+      hash = "sha256-pJ+XDGxw+ZMLMEp1IWPLlfHZmHEvecsTZAgy5Le2dd0=";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "Globally Recognized Avatars for Mojolicious";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  MojoliciousPluginI18N = buildPerlModule {
+    pname = "Mojolicious-Plugin-I18N";
+    version = "1.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-I18N-1.6.tar.gz";
+      hash = "sha256-Mvte+AN9lUt+zr71wbKyS0IKvYKXAjEvStQnlPUrUU0=";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/sharifulin/Mojolicious-Plugin-I18N";
+      description = "Internationalization Plugin for Mojolicious";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MojoliciousPluginMail = buildPerlModule {
+    pname = "Mojolicious-Plugin-Mail";
+    version = "1.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-Mail-1.5.tar.gz";
+      hash = "sha256-VvDTQevDp6zzkZ9a3UPpghbqEoWqDYfn+wDAK7Dv8UY=";
+    };
+    propagatedBuildInputs = [ MIMEEncWords MIMELite Mojolicious ];
+    meta = {
+      description = "Mojolicious Plugin for send mail";
+      homepage = "https://github.com/sharifulin/Mojolicious-Plugin-Mail";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoliciousPluginOpenAPI = buildPerlPackage {
+    pname = "Mojolicious-Plugin-OpenAPI";
+    version = "5.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-5.09.tar.gz";
+      hash = "sha256-BIJdfOIe20G80Ujrz6Gu+Ek258QOhKOdvyeGcdSaMQY=";
+    };
+    propagatedBuildInputs = [ JSONValidator Mojolicious ];
+    meta = {
+      description = "OpenAPI / Swagger plugin for Mojolicious";
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-openapi";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoliciousPluginRenderFile = buildPerlPackage {
+    pname = "Mojolicious-Plugin-RenderFile";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-RenderFile-0.12.tar.gz";
+      hash = "sha256-AT5CoswGvHBBuxPJ3ziK8kAQ5peTqN8PCrHSQKphFz8=";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "\"render_file\" helper for Mojolicious";
+      homepage = "https://github.com/koorchik/Mojolicious-Plugin-RenderFile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  MojoliciousPluginStatus = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Status";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.17.tar.gz";
+      hash = "sha256-TCsfr+PhkSYby0TiDo75rz+YjR25akrgsG7tQSArh7Q=";
+    };
+    propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious Sereal ];
+    meta = {
+      description = "Mojolicious server status";
+      homepage = "https://mojolicious.org";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
+  MojoliciousPluginSyslog = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Syslog";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.06.tar.gz";
+      hash = "sha256-IuxL9TYwDseyAYuoV3C9g2ZFDBAwVDZ9srFp9Mh3QRM=";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "A plugin for enabling a Mojolicious app to log to syslog";
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoliciousPluginTemplateToolkit = buildPerlModule {
+    pname = "Mojolicious-Plugin-TemplateToolkit";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojolicious-Plugin-TemplateToolkit-0.006.tar.gz";
+      hash = "sha256-dBoFAmtTArtrKc+I3KICC3rv0iNHgWELpZNaqPCXNKY=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ ClassMethodModifiers Mojolicious TemplateToolkit ];
+    meta = {
+      homepage = "https://github.com/Grinnz/Mojolicious-Plugin-TemplateToolkit";
+      description = "Template Toolkit renderer plugin for Mojolicious";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  MojoliciousPluginTextExceptions = buildPerlPackage {
+    pname = "Mojolicious-Plugin-TextExceptions";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.02.tar.gz";
+      hash = "sha256-Oht0BcV4TO5mHP8bARpzlRBN1IS7kbnnWT+ralOb+HQ=";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "Render exceptions as text in command line user agents";
+      homepage = "https://github.com/marcusramberg/mojolicious-plugin-textexceptions";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoliciousPluginWebpack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Webpack";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-1.02.tar.gz";
+      hash = "sha256-REzqioOZquelrWt8iQ/yFgk8WM6uaxyKBl77cBC3zn0=";
+    };
+    propagatedBuildInputs = [ Mojolicious Filechdir ];
+    meta = {
+      description = "Mojolicious <3 Webpack";
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoRedis = buildPerlPackage {
+    pname = "Mojo-Redis";
+    version = "3.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-Redis-3.29.tar.gz";
+      hash = "sha256-oDMZpF0uYTpsfS1ZrAD9SwtHiGVi5ish3pG0r4llgII=";
+    };
+    propagatedBuildInputs = [ Mojolicious ProtocolRedisFaster ];
+    meta = {
+      description = "Redis driver based on Mojo::IOLoop";
+      homepage = "https://github.com/jhthorsen/mojo-redis";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoSAML = buildPerlModule {
+    pname = "Mojo-SAML";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-SAML-0.07.tar.gz";
+      hash = "sha256-csJMrNtvHXp14uqgBDfHFKv1eafSENSqTT8g8e/0cQ0=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
+    meta = {
+      description = "A SAML2 toolkit using the Mojo toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoSQLite = buildPerlModule {
+    pname = "Mojo-SQLite";
+    version = "3.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.009.tar.gz";
+      hash = "sha256-Vzmprz/A/BYrOAMt9hCgcANSY7++C+wWrsUvDd3Xtkc=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ];
+    meta = {
+      description = "A tiny Mojolicious wrapper for SQLite";
+      homepage = "https://github.com/Grinnz/Mojo-SQLite";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  Mojomysql = buildPerlPackage rec {
+    pname = "Mojo-mysql";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.26.tar.gz";
+      hash = "sha256-H9LjBlr4Je9N2x2W9g9MVc9NCCD77L0wrHGdTeJx5rw=";
+    };
+    propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ];
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Mojolicious and Async MySQL/MariaDB";
+      homepage = "https://github.com/jhthorsen/mojo-mysql";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoIOLoopDelay = buildPerlModule {
+    pname = "Mojo-IOLoop-Delay";
+    version = "8.76";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-Delay-8.76.tar.gz";
+      hash = "sha256-jsvAYUg3IdkgRZQya+zpXM2/vbbRihc8gt1xgXLQqe0=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "(DISCOURAGED) Promises/A+ and flow-control helpers";
+      homepage = "https://github.com/jberger/Mojo-IOLoop-Delay";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  MojoIOLoopForkCall = buildPerlModule {
+    pname = "Mojo-IOLoop-ForkCall";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-ForkCall-0.21.tar.gz";
+      hash = "sha256-8dpdh4RxvdhvAcQjhQgAgE9ttCtUU8IW8Jslt5RYS3g=";
+    };
+    propagatedBuildInputs = [ IOPipely Mojolicious MojoIOLoopDelay ];
+    preBuild = ''
+      # This module needs the deprecated Mojo::IOLoop::Delay
+      substituteInPlace lib/Mojo/IOLoop/ForkCall.pm \
+        --replace "use Mojo::IOLoop;" "use Mojo::IOLoop; use Mojo::IOLoop::Delay;"
+    '';
+    meta = {
+      description = "(DEPRECATED) run blocking functions asynchronously by forking";
+      homepage = "https://github.com/jberger/Mojo-IOLoop-ForkCall";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  MojoJWT = buildPerlModule {
+    pname = "Mojo-JWT";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-JWT-0.09.tar.gz";
+      hash = "sha256-wE4DmD4MbyvORdCOoucph5yWee+mNLDmjLa4t7SoWIY=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      description = "JSON Web Token the Mojo way";
+      homepage = "https://github.com/jberger/Mojo-JWT";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoPg = buildPerlPackage {
+    pname = "Mojo-Pg";
+    version = "4.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.27.tar.gz";
+      hash = "sha256-oyLI3wDj5WVf300LernXmSiTIOKfZP6ZrHrxJEhO+dg=";
+    };
+    propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstractPg ];
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Mojolicious ♥ PostgreSQL";
+      homepage = "https://mojolicious.org";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MojoUserAgentCached = buildPerlPackage {
+    pname = "Mojo-UserAgent-Cached";
+    version = "1.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.25.tar.gz";
+      hash = "sha256-lZmikTjq/ZKPWF7jDvFm0j/x3FKkBn50hyxR4W3shko=";
+    };
+    buildInputs = [ ModuleInstall ];
+    propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ];
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent";
+      homepage = "https://github.com/nicomen/mojo-useragent-cached";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MongoDB = buildPerlPackage {
+    pname = "MongoDB";
+    version = "2.2.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MONGODB/MongoDB-v2.2.2.tar.gz";
+      hash = "sha256-IBk1+S2slPOcNd5zZh6LJSQ55JbyKGV9uF/5MlfDJo8=";
+    };
+    buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal TimeMoment ];
+    propagatedBuildInputs = [ AuthenSASLSASLprep AuthenSCRAM BSON IOSocketSSL NetSSLeay ClassXSAccessor BSONXS TypeTinyXS MozillaCA Moo NetDNS SafeIsa SubQuote TieIxHash TypeTiny UUIDURandom boolean namespaceclean ];
+    meta = {
+      description = "Official MongoDB Driver for Perl (EOL)";
+      homepage = "https://github.com/mongodb-labs/mongo-perl-driver";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  MonitoringPlugin = buildPerlPackage {
+    pname = "Monitoring-Plugin";
+    version = "0.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NIERLEIN/Monitoring-Plugin-0.40.tar.gz";
+      hash = "sha256-+LprfifSuwpPmjKVWiRC1OQo0cSLgMixIUL/YRvnI28=";
+    };
+    propagatedBuildInputs = [ ClassAccessor ConfigTiny MathCalcUnits ParamsValidate ];
+    meta = {
+      description = ''
+        A family of perl modules to streamline writing Naemon,
+        Nagios, Icinga or Shinken (and compatible) plugins
+      '';
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  IOPipely = buildPerlPackage {
+    pname = "IO-Pipely";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/IO-Pipely-0.006.tar.gz";
+      hash = "sha256-Dj/NhBoyfvtUn6AbIIPcNpXnLqDGMwPlbtUWG/gQQTs=";
+    };
+    meta = {
+      description = "Portably create pipe() or pipe-like handles, one way or another";
+      homepage = "https://search.cpan.org/dist/IO-Pipely";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Moo = buildPerlPackage {
+    pname = "Moo";
+    version = "2.005005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.005005.tar.gz";
+      hash = "sha256-+1opUmSfrtBzc/Igt4AEqcaro4dzkTN0DBdw6bH0sQg=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ];
+    meta = {
+      description = "Minimalist Object Orientation (with Moose compatibility)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Moose = buildPerlPackage {
+    pname = "Moose";
+    version = "2.2206";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-2.2206.tar.gz";
+      hash = "sha256-Z5csTivDn72jhRgXevDme7vrVIVi5OxLdZoaelg+UFs=";
+    };
+    buildInputs = [ DistCheckConflicts CPANMetaCheck TestCleanNamespaces TestFatal TestNeeds TestRequires ];
+    propagatedBuildInputs = [ ClassLoadXS DataOptList DevelGlobalDestruction DevelOverloadInfo DevelStackTrace EvalClosure MROCompat ModuleRuntimeConflicts PackageDeprecationManager PackageStashXS ParamsUtil SubExporter TryTiny ];
+    preConfigure = ''
+      export LD=$CC
+    '';
+    meta = {
+      description = "A postmodern object system for Perl 5";
+      homepage = "http://moose.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.eelco ];
+      mainProgram = "moose-outdated";
+    };
+  };
+
+  MooXHandlesVia = buildPerlPackage {
+    pname = "MooX-HandlesVia";
+    version = "0.001009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-0.001009.tar.gz";
+      hash = "sha256-cWNT44iU7Lfo5MF7yVSD219ZACsDVBtUpywn8qjzbBI=";
+    };
+    buildInputs = [ MooXTypesMooseLike TestException TestFatal ];
+    propagatedBuildInputs = [ DataPerl Moo ];
+    meta = {
+      description = "NativeTrait-like behavior for Moo";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXLocalePassthrough = buildPerlPackage {
+    pname = "MooX-Locale-Passthrough";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz";
+      hash = "sha256-egWCflKrWh3eLqXHEpJ7HljI0lFmTZZmJ6353TDsBRI=";
+    };
+    propagatedBuildInputs = [ Moo ];
+    meta = {
+      description = "Provide API used in translator modules without translating";
+      homepage = "https://metacpan.org/release/MooX-Locale-Passthrough";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXLocaleTextDomainOO = buildPerlPackage {
+    pname = "MooX-Locale-TextDomain-OO";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz";
+      hash = "sha256-W45Sz/3YSpXTaMoQuUNUG5lqk+DQY5b0/hkzVojkFz0=";
+    };
+    propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ];
+    meta = {
+      description = "Provide API used in translator modules without translating";
+      homepage = "https://metacpan.org/release/MooX-Locale-TextDomain-OO";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXOptions = buildPerlPackage {
+    pname = "MooX-Options";
+    version = "4.103";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz";
+      hash = "sha256-TfnVdPjybbAivwbBvaRwgolFEJjC4VYzNd840jsHMm0=";
+    };
+    propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ];
+    buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ];
+    preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275
+    meta = {
+      description = "Explicit Options eXtension for Object Class";
+      homepage = "https://metacpan.org/celogeek/MooX-Options";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXSingleton = buildPerlModule {
+    pname = "MooX-Singleton";
+    version = "1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz";
+      hash = "sha256-99dib//emPhewSwe4msB8Tmk3d0vRT6lbDQd8ZTjIQ4=";
+    };
+    propagatedBuildInputs = [ RoleTiny ];
+    buildInputs = [ Moo ];
+    meta = {
+      description = "Turn your Moo class into singleton";
+      homepage = "https://search.cpan.org/dist/MooX-Singleton";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXStrictConstructor = buildPerlPackage {
+    pname = "MooX-StrictConstructor";
+    version = "0.011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz";
+      hash = "sha256-2jgvgi/8TiKgOqQZpCVydJmdNtiaThI27PT892vGU+I=";
+    };
+    propagatedBuildInputs = [ Moo strictures ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Make your Moo-based object constructors blow up on unknown attributes";
+      homepage = "https://metacpan.org/release/MooX-StrictConstructor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXTypesMooseLike = buildPerlPackage {
+    pname = "MooX-Types-MooseLike";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz";
+      hash = "sha256-HTeAqpvqQwr75lqox25xjxBFzniKrdpBFvWdO3p60rQ=";
+    };
+    propagatedBuildInputs = [ ModuleRuntime ];
+    buildInputs = [ Moo TestFatal ];
+    meta = {
+      description = "Some Moosish types and a type builder";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXTypesMooseLikeNumeric = buildPerlPackage {
+    pname = "MooX-Types-MooseLike-Numeric";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-Numeric-1.03.tar.gz";
+      hash = "sha256-Fq3rYXuWPQEBeZIsLk6HYt93x1Iy4XMgtFmGjElwxEs=";
+    };
+    buildInputs = [ Moo TestFatal ];
+    propagatedBuildInputs = [ MooXTypesMooseLike ];
+    meta = {
+      description = "Moo types for numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXTypeTiny = buildPerlPackage {
+    pname = "MooX-TypeTiny";
+    version = "0.002003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-TypeTiny-0.002003.tar.gz";
+      hash = "sha256-2B4m/2+NsQJh8Ah/ltxUNn3LSanz3o1TI4+DTs4ZYks=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moo TypeTiny ];
+    meta = {
+      description = "Tiny, yet Moo(se)-compatible type constraint";
+      homepage = "https://typetiny.toby.ink";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseAutobox = buildPerlModule {
+    pname = "Moose-Autobox";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-Autobox-0.16.tar.gz";
+      hash = "sha256-kkAdpM9ITrcYjsGWtoGG76eCoQK0UeoVbNi4dy5ocFU=";
+    };
+    buildInputs = [ ModuleBuildTiny TestException ];
+    propagatedBuildInputs = [ ListMoreUtils Moose SyntaxKeywordJunction autobox namespaceautoclean ];
+    meta = {
+      description = "Autoboxed wrappers for Native Perl datatypes";
+      homepage = "https://github.com/moose/Moose-Autobox";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXABC = buildPerlPackage {
+    pname = "MooseX-ABC";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-ABC-0.06.tar.gz";
+      hash = "sha256-Tr7suUbkVSssRyH1u/I+9huTJlELVzlr9ZkLEW8Dfuo=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Abstract base classes for Moose";
+      homepage = "https://metacpan.org/release/MooseX-ABC";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXAliases = buildPerlPackage {
+    pname = "MooseX-Aliases";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-Aliases-0.11.tar.gz";
+      hash = "sha256-xIUPlyQmw0R6ru2Ny0Az6ERgylFwWtPqeLY6+Rn+B0g=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Easy aliasing of methods and attributes in Moose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXAppCmd = buildPerlModule {
+    pname = "MooseX-App-Cmd";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-App-Cmd-0.34.tar.gz";
+      hash = "sha256-9eLy7xKcOI8qPjb1PeWYBErxtyLofXEFKdBcwl0jesI=";
+    };
+    buildInputs = [ ModuleBuildTiny MooseXConfigFromFile TestOutput YAML ];
+    propagatedBuildInputs = [ AppCmd MooseXGetopt MooseXNonMoose ];
+    meta = {
+      description = "Mashes up MooseX::Getopt and App::Cmd";
+      homepage = "https://github.com/moose/MooseX-App-Cmd";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXStorageFormatJSONpm = buildPerlPackage {
+    pname = "MooseX-Storage-Format-JSONpm";
+    version = "0.093094";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Storage-Format-JSONpm-0.093094.tar.gz";
+      hash = "sha256-9sgItyC99HI4VaZ4sblQLHSSABXFq8YL2uasYNFGxYQ=";
+    };
+    buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
+    propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ];
+    meta = {
+      description = "A format role for MooseX::Storage using JSON.pm";
+      homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooX = buildPerlPackage {
+    pname = "MooX";
+    version = "0.101";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GE/GETTY/MooX-0.101.tar.gz";
+      hash = "sha256-L/kaZW54quCspCKTgp16flrLm/IrBAFjWyq2yHDeMtU=";
+    };
+    propagatedBuildInputs = [ DataOptList ImportInto Moo ];
+    meta = {
+      description = "Using Moo and MooX:: packages the most lazy way";
+      homepage = "https://github.com/Getty/p5-moox";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXAliases = buildPerlPackage {
+    pname = "MooX-Aliases";
+    version = "0.001006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-Aliases-0.001006.tar.gz";
+      hash = "sha256-AWAxJ4ysYSY9AZUt/lv7XztGtLhCsv/6nyybiKrGOGc=";
+    };
+    propagatedBuildInputs = [ Moo strictures ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Easy aliasing of methods and attributes in Moo";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXCmd = buildPerlPackage {
+    pname = "MooX-Cmd";
+    version = "0.017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz";
+      hash = "sha256-lD/yjaqAiXMnx8X+xacQDPqsktrw+fl8OOOnfQCucPU=";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ];
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      description = "Giving an easy Moo style way to make command organized CLI apps";
+      homepage = "https://metacpan.org/release/MooX-Cmd";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooXlate = buildPerlPackage {
+    pname = "MooX-late";
+    version = "0.100";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz";
+      hash = "sha256-KuWx49pavA5ABieOy8+o+nwiTqVSmmpoisuyKcCeal8=";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ Moo SubHandlesVia ];
+    meta = {
+      description = "Easily translate Moose code to Moo";
+      homepage = "https://metacpan.org/release/MooX-late";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MouseXSimpleConfig = buildPerlPackage {
+    pname = "MouseX-SimpleConfig";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MJ/MJGARDNER/MouseX-SimpleConfig-0.11.tar.gz";
+      hash = "sha256-JX84QJHTPTQDc6YVOUcDnGmNxEnR75iTNWRPw9LaAGk=";
+    };
+    propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ];
+    meta = {
+      description = "A Mouse role for setting attributes from a simple configfile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestArchiveLibarchive = buildPerlPackage {
+    pname = "Test-Archive-Libarchive";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Archive-Libarchive-0.02.tar.gz";
+      hash = "sha256-KxkYZx4F2i2dIiwQx9kXWFpiQYb+r7j4SQhZnDRwJ1E=";
+    };
+    propagatedBuildInputs = [ RefUtil Test2Suite ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Test::Archive::Libarchive";
+      description = "Testing tools for Archive::Libarchive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  TestPostgreSQL = buildPerlModule {
+    pname = "Test-PostgreSQL";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TJ/TJC/Test-PostgreSQL-1.29.tar.gz";
+      hash = "sha256-GKz35YnKTMqc3kdgm1NsnYI8hWLRqlIQwWjl6xuOT54=";
+    };
+    buildInputs = [ ModuleBuildTiny TestSharedFork pkgs.postgresql ];
+    propagatedBuildInputs = [ DBDPg DBI FileWhich FunctionParameters Moo TieHashMethod TryTiny TypeTiny ];
+
+    makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
+
+    meta = {
+      description = "PostgreSQL runner for tests";
+      homepage = "https://github.com/TJC/Test-postgresql";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestUseAllModules = buildPerlPackage {
+    pname = "Test-UseAllModules";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Test-UseAllModules-0.17.tar.gz";
+      hash = "sha256-px8v6LlquL/Cdgqh0xNeoEmlsg3LEFRXt2mhGVx6JQk=";
+    };
+    meta = {
+      description = "Do use_ok() for all the MANIFESTed modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestValgrind = buildPerlPackage {
+    pname = "Test-Valgrind";
+    version = "1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VP/VPIT/Test-Valgrind-1.19.tar.gz";
+      hash = "sha256-GDinoV/ueo8Gnk5rRhxeFpBYthW437Q3hLPV2hpggRs=";
+    };
+    propagatedBuildInputs = [ EnvSanctify FileHomeDir PerlDestructLevel XMLTwig ];
+    meta = {
+      description = "Generate suppressions, analyse and test any command with valgrind";
+      homepage = "https://search.cpan.org/dist/Test-Valgrind";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MouseXTypesPathClass = buildPerlPackage {
+    pname = "MouseX-Types-Path-Class";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-Types-Path-Class-0.07.tar.gz";
+      hash = "sha256-Io1LTz8O2VRyeGkdC3xf5T2Qh0pp33CaSXA8avh8Cd4=";
+    };
+    buildInputs = [ TestUseAllModules ];
+    propagatedBuildInputs = [ MouseXTypes PathClass ];
+    meta = {
+      description = "Cross-platform path specification manipulation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MouseXTypes = buildPerlPackage {
+    pname = "MouseX-Types";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Types-0.06.tar.gz";
+      hash = "sha256-dyiEQf2t0Vvu7JoIE+zorsFULx2M6q7BR1Wz8xb7z4s=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ AnyMoose ];
+    meta = {
+      description = "Organize your Mouse types in libraries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MouseXConfigFromFile = buildPerlPackage {
+    pname = "MouseX-ConfigFromFile";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-ConfigFromFile-0.05.tar.gz";
+      hash = "sha256-khsxyxP8H5gqYC+OI4Fbet0joiQlfkN5Dih1BM6HlTQ=";
+    };
+    buildInputs = [ TestUseAllModules ];
+    propagatedBuildInputs = [ MouseXTypesPathClass ];
+    meta = {
+      description = "An abstract Mouse role for setting attributes from a configfile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MouseXGetopt = buildPerlModule {
+    pname = "MouseX-Getopt";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Getopt-0.38.tar.gz";
+      hash = "sha256-3j6o70Ut2VAeqMTtqHRLciRgJgKwRpJgft19YrefA48=";
+    };
+    patches = [
+      ../development/perl-modules/MouseX-Getopt-gld-tests.patch
+    ];
+    buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ];
+    propagatedBuildInputs = [ GetoptLongDescriptive Mouse ];
+    meta = {
+      description = "A Mouse role for processing command line options";
+      homepage = "https://github.com/gfx/mousex-getopt";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXAttributeChained = buildPerlModule {
+    pname = "MooseX-Attribute-Chained";
+    version = "1.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOMHUKINS/MooseX-Attribute-Chained-1.0.3.tar.gz";
+      hash = "sha256-5+OKp8O3i1c06dQ892gy/OAHZ+alPV3Xmhci2GdtXk4=";
+    };
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Attribute that returns the instance to allow for chaining";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXAttributeHelpers = buildPerlModule {
+    pname = "MooseX-AttributeHelpers";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-AttributeHelpers-0.25.tar.gz";
+      hash = "sha256-sMgZ7IOZmyWLJI+CBZ+ll1oM7jZUI6u+4O+spUAcXsY=";
+    };
+    buildInputs = [ ModuleBuildTiny TestException ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "(DEPRECATED) Extend your attribute interfaces";
+      homepage = "https://github.com/moose/MooseX-AttributeHelpers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXClone = buildPerlModule {
+    pname = "MooseX-Clone";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Clone-0.06.tar.gz";
+      hash = "sha256-y9eCXbnnSwU/UkVEoBTwZv3OKQMW67Vo+HZ5GBs5jac=";
+    };
+    propagatedBuildInputs = [ DataVisitor HashUtilFieldHashCompat namespaceautoclean ];
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Fine-grained cloning support for Moose objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXConfigFromFile = buildPerlModule {
+    pname = "MooseX-ConfigFromFile";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.14.tar.gz";
+      hash = "sha256-mtNDzZ+G1xS+m1S5xopEPYrMZQG2rWsV6coBMLLpbwg=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ];
+    propagatedBuildInputs = [ MooseXTypesPathTiny ];
+    meta = {
+      description = "An abstract Moose role for setting attributes from a configfile";
+      homepage = "https://github.com/moose/MooseX-ConfigFromFile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXDaemonize = buildPerlModule {
+    pname = "MooseX-Daemonize";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Daemonize-0.22.tar.gz";
+      hash = "sha256-in+5mdypuAKoUTahAUGy0zeKPs3gUnwd9z1V7bKOWbM=";
+    };
+    buildInputs = [ DevelCheckOS ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ MooseXGetopt MooseXTypesPathClass ];
+    meta = {
+      description = "Role for daemonizing your Moose based application";
+      homepage = "https://github.com/moose/MooseX-Daemonize";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXEmulateClassAccessorFast = buildPerlPackage {
+    pname = "MooseX-Emulate-Class-Accessor-Fast";
+    version = "0.009032";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz";
+      hash = "sha256-gu637x8NJUGK5AbqJpErJBQo1LKrlRDV6d6z9ywYeZQ=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ Moose namespaceclean ];
+    meta = {
+      description = "Emulate Class::Accessor::Fast behavior using Moose attributes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXGetopt = buildPerlModule {
+    pname = "MooseX-Getopt";
+    version = "0.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Getopt-0.75.tar.gz";
+      hash = "sha256-Y/O+W7K8OB6eSLW5XAMw8hcYtmVuj/sZyZ0u4KwU68g=";
+    };
+    buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ];
+    propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ];
+    meta = {
+      description = "A Moose role for processing command line options";
+      homepage = "https://github.com/moose/MooseX-Getopt";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXHasOptions = buildPerlPackage {
+    pname = "MooseX-Has-Options";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PS/PSHANGOV/MooseX-Has-Options-0.003.tar.gz";
+      hash = "sha256-B8Ic+O1QCycgIP+NoZ8ZRyi7QU4AEqLwzFTvLvYiKmg=";
+    };
+    buildInputs = [ Moose TestDeep TestDifferences TestException TestMost TestWarn namespaceautoclean ];
+    propagatedBuildInputs = [ ClassLoad ListMoreUtils StringRewritePrefix ];
+    meta = {
+      description = "Succinct options for Moose";
+      homepage = "https://github.com/pshangov/moosex-has-options";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXHasSugar = buildPerlPackage {
+    pname = "MooseX-Has-Sugar";
+    version = "1.000006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KE/KENTNL/MooseX-Has-Sugar-1.000006.tar.gz";
+      hash = "sha256-7+7T3bOo6hj0FtSF88KwQnFF0mfmM2jGUdSI6qjCjQk=";
+    };
+    buildInputs = [ TestFatal namespaceclean ];
+    propagatedBuildInputs = [ SubExporterProgressive ];
+    meta = {
+      description = "Sugar Syntax for moose 'has' fields";
+      homepage = "https://github.com/kentnl/MooseX-Has-Sugar";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXLazyRequire = buildPerlModule {
+    pname = "MooseX-LazyRequire";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-LazyRequire-0.11.tar.gz";
+      hash = "sha256-72IMHgGdr5zz8jqUPSWpTJHpOrMSvNY74ul0DsC5Qog=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
+    meta = {
+      description = "Required attributes which fail only when trying to use them";
+      homepage = "https://github.com/moose/MooseX-LazyRequire";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXMarkAsMethods = buildPerlPackage {
+    pname = "MooseX-MarkAsMethods";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSRCHBOY/MooseX-MarkAsMethods-0.15.tar.gz";
+      hash = "sha256-yezBM3bQ/326SBl3M3wz6nTl0makKLavMVUqKRnvfvg=";
+    };
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Mark overload code symbols as methods";
+      homepage = "https://metacpan.org/release/MooseX-MarkAsMethods";
+      license = with lib.licenses; [ lgpl21Only ];
+    };
+  };
+
+  MooseXMethodAttributes = buildPerlPackage {
+    pname = "MooseX-MethodAttributes";
+    version = "0.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz";
+      hash = "sha256-yzOIZXS30t05xCwNzccHrNsK7H273pohwEImYDaMGXs=";
+    };
+    buildInputs = [ MooseXRoleParameterized TestFatal TestNeeds ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Code attribute introspection";
+      homepage = "https://github.com/moose/MooseX-MethodAttributes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXNonMoose = buildPerlPackage {
+    pname = "MooseX-NonMoose";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.26.tar.gz";
+      hash = "sha256-y75S7PFgOCMfvX8sxrzhZqNWnIyzlq6A7EUXwuCNqn0=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ListMoreUtils Moose ];
+    meta = {
+      description = "Easy subclassing of non-Moose classes";
+      homepage = "https://metacpan.org/release/MooseX-NonMoose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXOneArgNew = buildPerlPackage {
+    pname = "MooseX-OneArgNew";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.007.tar.gz";
+      hash = "sha256-hCgkNfEWnPCddRP6k4fiCReRY1zzWgeLUAuCmu6gYTg=";
+    };
+    propagatedBuildInputs = [ MooseXRoleParameterized ];
+    meta = {
+      description = "Teach ->new to accept single, non-hashref arguments";
+      homepage = "https://github.com/rjbs/MooseX-OneArgNew";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXRelatedClassRoles = buildPerlPackage {
+    pname = "MooseX-RelatedClassRoles";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HD/HDP/MooseX-RelatedClassRoles-0.004.tar.gz";
+      hash = "sha256-MNt6I33SYCIhb/+5cLmFKFNHEws2kjxxGqCVaty0fp8=";
+    };
+    propagatedBuildInputs = [ MooseXRoleParameterized ];
+    meta = { description = "Apply roles to a class related to yours";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXParamsValidate = buildPerlPackage {
+    pname = "MooseX-Params-Validate";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-Params-Validate-0.21.tar.gz";
+      hash = "sha256-iClURqupmcu4+ZjX+5onAdZhc5SlHW1yTHdObZ/xOdk=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ];
+    meta = {
+      description = "An extension of Params::Validate using Moose's types";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXRoleParameterized = buildPerlModule {
+    pname = "MooseX-Role-Parameterized";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz";
+      hash = "sha256-HP52bF1/Dsq1f3M9zKQwoqKs1rmVdXFBuUCt42kr7J4=";
+    };
+    buildInputs = [ CPANMetaCheck ModuleBuildTiny TestFatal TestNeeds ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Moose roles with composition parameters";
+      homepage = "https://github.com/moose/MooseX-Role-Parameterized";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXRoleWithOverloading = buildPerlPackage {
+    pname = "MooseX-Role-WithOverloading";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-WithOverloading-0.17.tar.gz";
+      hash = "sha256-krCV1z8SIPnC7S06qlugcutaot4gm3xFXaWocBuYaGU=";
+    };
+    propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
+    meta = {
+      description = "(DEPRECATED) Roles which support overloading";
+      homepage = "https://github.com/moose/MooseX-Role-WithOverloading";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXRunnable = buildPerlModule {
+    pname = "MooseX-Runnable";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Runnable-0.10.tar.gz";
+      hash = "sha256-QNj9G1UkrpZZZaHxRNegoMhQWUxSRAKyMZsk1cSvEZk=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 TestTableDriven ];
+    propagatedBuildInputs = [ ListSomeUtils MooseXTypesPathTiny ];
+    meta = {
+      description = "Tag a class as a runnable application";
+      homepage = "https://github.com/moose/MooseX-Runnable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mx-run";
+    };
+  };
+
+  MooseXSemiAffordanceAccessor = buildPerlPackage {
+    pname = "MooseX-SemiAffordanceAccessor";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-SemiAffordanceAccessor-0.10.tar.gz";
+      hash = "sha256-pbhXdrzd7RaAJ6H/ZktBxfZYhnIc3VQ+OvnVN1misdU=";
+    };
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Name your accessors foo() and set_foo()";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  MooseXSetOnce = buildPerlPackage {
+    pname = "MooseX-SetOnce";
+    version = "0.200002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-SetOnce-0.200002.tar.gz";
+      hash = "sha256-y+0Gt/zTU/DZm/gKh8HAtYEWBpcjGzrZpgjaIxuitlk=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Write-once, read-many attributes for Moose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXSingleton = buildPerlModule {
+    pname = "MooseX-Singleton";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Singleton-0.30.tar.gz";
+      hash = "sha256-ZYSy8xsdPrbdfiMShzjnP2wBWxUhOLCoFX09DVnQZUE=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal TestRequires TestWarnings ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Turn your Moose class into a singleton";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXStorage = buildPerlPackage {
+    pname = "MooseX-Storage";
+    version = "0.53";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Storage-0.53.tar.gz";
+      hash = "sha256-hwS/5QX2azQPYuhcn/MZwZ6WcLJtSwEskfThA7HarOA=";
+    };
+    buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
+    propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ];
+    meta = {
+      description = "A serialization framework for Moose classes";
+      homepage = "https://github.com/moose/MooseX-Storage";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXStrictConstructor = buildPerlPackage {
+    pname = "MooseX-StrictConstructor";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.21.tar.gz";
+      hash = "sha256-xypa6Vg3Bszexx1AHcswVAE6dTa3UN8UNmE9hY6ikg0=";
+    };
+    buildInputs = [ Moo TestFatal TestNeeds ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Make your object constructors blow up on unknown attributes";
+      homepage = "https://metacpan.org/release/MooseX-StrictConstructor";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  MooseXTraits = buildPerlModule {
+    pname = "MooseX-Traits";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Traits-0.13.tar.gz";
+      hash = "sha256-dK/gxPr047l8V/KJQ3yqYL7Mo0zVgh9IndTMnaT74po=";
+    };
+    buildInputs = [ ModuleBuildTiny MooseXRoleParameterized TestFatal TestRequires TestSimple13 ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Automatically apply roles at object creation time";
+      homepage = "https://github.com/moose/MooseX-Traits";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTraitsPluggable = buildPerlPackage {
+    pname = "MooseX-Traits-Pluggable";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/MooseX-Traits-Pluggable-0.12.tar.gz";
+      hash = "sha256-q5a3lQ7L8puDb9/uu+Cqwiylc+cYO+fLfW0S3yKrWMo=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ ListMoreUtils Moose namespaceautoclean ];
+    meta = {
+      description = "Trait loading and resolution for Moose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypes = buildPerlModule {
+    pname = "MooseX-Types";
+    version = "0.50";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-0.50.tar.gz";
+      hash = "sha256-nNh7NJLL8L6dLfkxeyrfn8MGY3cOaZBmVL6j9BsXywg=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal TestRequires ];
+    propagatedBuildInputs = [ CarpClan Moose SubExporterForMethods namespaceautoclean ];
+    meta = {
+      description = "Organise your Moose types in libraries";
+      homepage = "https://github.com/moose/MooseX-Types";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesCommon = buildPerlModule {
+    pname = "MooseX-Types-Common";
+    version = "0.001014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Common-0.001014.tar.gz";
+      hash = "sha256-75Nxi20vJA1QtcOssadLTCoZGGllFHAAGoK+HzXQ7w8=";
+    };
+    buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ];
+    propagatedBuildInputs = [ MooseXTypes ];
+    meta = {
+      description = "A library of commonly used type constraints";
+      homepage = "https://github.com/moose/MooseX-Types-Common";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesDateTime = buildPerlModule {
+    pname = "MooseX-Types-DateTime";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-0.13.tar.gz";
+      hash = "sha256-uJ+iZjb2oX6qOGi0UUNARytou9whYaHXmiKhv1sdOcY=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
+    propagatedBuildInputs = [ DateTime MooseXTypes ];
+    meta = {
+      description = "DateTime related constraints and coercions for Moose";
+      homepage = "https://github.com/moose/MooseX-Types-DateTime";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesDateTimeMoreCoercions = buildPerlModule {
+    pname = "MooseX-Types-DateTime-MoreCoercions";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-MoreCoercions-0.15.tar.gz";
+      hash = "sha256-Ibs6WXcZiI7bbOqhMkGNXPkuy5KlDM43uUJZpV4ON5Y=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
+    propagatedBuildInputs = [ DateTimeXEasy MooseXTypesDateTime TimeDurationParse ];
+    meta = {
+      description = "Extensions to MooseX::Types::DateTime";
+      homepage = "https://github.com/moose/MooseX-Types-DateTime-MoreCoercions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesLoadableClass = buildPerlModule {
+    pname = "MooseX-Types-LoadableClass";
+    version = "0.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-LoadableClass-0.015.tar.gz";
+      hash = "sha256-4DfTd4JT3PkpRkNXFbraDmRJwKKAj6P/MqllBk1aO/Q=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ MooseXTypes ];
+    meta = {
+      description = "ClassName type constraint with coercion to load the class";
+      homepage = "https://github.com/moose/MooseX-Types-LoadableClass";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesPathClass = buildPerlModule {
+    pname = "MooseX-Types-Path-Class";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Class-0.09.tar.gz";
+      hash = "sha256-54S6tTaYrpWnCahmMwYUX/7FVmjfbPMWFTM1I/vn734=";
+    };
+    propagatedBuildInputs = [ MooseXTypes PathClass ];
+    buildInputs = [ ModuleBuildTiny TestNeeds ];
+    meta = {
+      description = "A Path::Class type library for Moose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesPathTiny = buildPerlModule {
+    pname = "MooseX-Types-Path-Tiny";
+    version = "0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Tiny-0.012.tar.gz";
+      hash = "sha256-Ge7eAt1lTnD3PjTNevAGN2UXO8rv7v8b2+ITGOz9kVg=";
+    };
+    buildInputs = [ Filepushd ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ MooseXGetopt MooseXTypesStringlike PathTiny ];
+    meta = {
+      description = "Path::Tiny types and coercions for Moose";
+      homepage = "https://github.com/karenetheridge/moosex-types-path-tiny";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  MooseXTypesPerl = buildPerlPackage {
+    pname = "MooseX-Types-Perl";
+    version = "0.101344";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101344.tar.gz";
+      hash = "sha256-h2RDVPdPplI1yyv8pEJ3kwp+q+UazF+B+2MVMKg1XiQ=";
+    };
+    propagatedBuildInputs = [ MooseXTypes ];
+    meta = {
+      description = "Moose types that check against Perl syntax";
+      homepage = "https://github.com/rjbs/MooseX-Types-Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesStringlike = buildPerlPackage {
+    pname = "MooseX-Types-Stringlike";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.003.tar.gz";
+      hash = "sha256-LuNJ7FxSmm80f0L/ZA5HskVWS5PMowXfY8eCH1tVzxk=";
+    };
+    propagatedBuildInputs = [ MooseXTypes ];
+    meta = {
+      description = "Moose type constraints for strings or string-like objects";
+      homepage = "https://github.com/dagolden/MooseX-Types-Stringlike";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  MooseXTypesStructured = buildPerlModule {
+    pname = "MooseX-Types-Structured";
+    version = "0.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Structured-0.36.tar.gz";
+      hash = "sha256-Q822UvljhyPjV3yw+LVGhiAkTJY252WYEeW0qAFgPVc=";
+    };
+    buildInputs = [ DateTime ModuleBuildTiny MooseXTypesDateTime TestFatal TestNeeds ];
+    propagatedBuildInputs = [ DevelPartialDump MooseXTypes ];
+    meta = {
+      description = "Structured Type Constraints for Moose";
+      homepage = "https://github.com/moose/MooseX-Types-Structured";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MooseXTypesURI = buildPerlModule {
+    pname = "MooseX-Types-URI";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-URI-0.09.tar.gz";
+      hash = "sha256-Jxd1Ta25EIbhHSH+oGy6qaEuYBtB0VRDFQ7dfZUI7+g=";
+    };
+    buildInputs = [ ModuleBuildTiny TestNeeds TestWithoutModule ];
+    propagatedBuildInputs = [ MooseXTypes URI URIFromHash namespaceautoclean ];
+    meta = {
+      description = "URI related types and coercions for Moose";
+      homepage = "https://github.com/moose/MooseX-Types-URI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MP3CutGapless = buildPerlPackage {
+    pname = "MP3-Cut-Gapless";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/MP3-Cut-Gapless-0.03.tar.gz";
+      hash = "sha256-PoS3OdHx4902FvhR3GV14WXTKEZ/AySGB5UOWVH+pPM=";
+    };
+    propagatedBuildInputs = [ AudioCuefileParser ];
+    meta = {
+      description = "Split an MP3 file without gaps (based on pcutmp3)";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  MP3Info = buildPerlPackage {
+    pname = "MP3-Info";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz";
+      hash = "sha256-V2I0BzJCHyUCp3DWoSblhPLNljNR0rwle9J4w5vOi+c=";
+    };
+    meta = {
+      description = "Manipulate / fetch info from MP3 audio files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MP3Tag = buildPerlPackage {
+    pname = "MP3-Tag";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.16.zip";
+      hash = "sha256-UDhQk6owAFa8Jiu2pACpbiGVl3wcXh6/FaXgdak3e4Y=";
+    };
+    buildInputs = [ pkgs.unzip ];
+
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'"
+    '';
+    postFixup = ''
+      perl data_pod.PL PERL5LIB:$PERL5LIB
+    '';
+    outputs = [ "out" ];
+    meta = {
+      description = "Module for reading tags of MP3 audio files";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  MockMonkeyPatch = buildPerlModule {
+    pname = "Mock-MonkeyPatch";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mock-MonkeyPatch-1.02.tar.gz";
+      hash = "sha256-xbaUTKVP6DVXN2cwYO1OnvhyNyZXfXluHK5eVr8bAYE=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Monkey patching with test mocking in mind";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Mouse = buildPerlModule {
+    pname = "Mouse";
+    version = "2.5.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz";
+      hash = "sha256-zo3COUYVOkZ/8JdlFn7iWQ9cUCEg9IotlEFzPzmqMu4=";
+    };
+    buildInputs = [ ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ];
+    perlPreHook = "export LD=$CC";
+    env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-fno-stack-protector";
+    hardeningDisable = lib.optional stdenv.isi686 "stackprotector";
+    meta = {
+      description = "Moose minus the antlers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MouseXNativeTraits = buildPerlPackage {
+    pname = "MouseX-NativeTraits";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-NativeTraits-1.09.tar.gz";
+      hash = "sha256-+KW/WihwLfsTyAk75cQcq5xfwcXSR6uR4i591ydky14=";
+    };
+    buildInputs = [ AnyMoose TestFatal ];
+    propagatedBuildInputs = [ Mouse ];
+    meta = {
+      description = "Extend your attribute interfaces for Mouse";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MozillaCA = buildPerlPackage {
+    pname = "Mozilla-CA";
+    version = "20230821";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LW/LWP/Mozilla-CA-20230821.tar.gz";
+      hash = "sha256-MuHQBFKZAEBFucTRbC2q5FOiFiCIc97qJED3EmCnzaE=";
+    };
+
+    postPatch = ''
+      ln -s --force ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt lib/Mozilla/CA/cacert.pem
+    '';
+
+    meta = {
+      description = "Mozilla's CA cert bundle in PEM format";
+      homepage = "https://github.com/gisle/mozilla-ca";
+      license = with lib.licenses; [ mpl20 ];
+    };
+  };
+
+  MozillaLdap = callPackage ../development/perl-modules/Mozilla-LDAP { };
+
+  MROCompat = buildPerlPackage {
+    pname = "MRO-Compat";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz";
+      hash = "sha256-DUU1+I5Dur2Eq2BIZiFfxNBDmL1Nt7IYUtSjGxwV72E=";
+    };
+    meta = {
+      description = "Mro::* interface compatibility for Perls < 5.9.5";
+      homepage = "https://metacpan.org/release/MRO-Compat";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MsgPackRaw = buildPerlPackage rec {
+    pname = "MsgPack-Raw";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JACQUESG/MsgPack-Raw-${version}.tar.gz";
+      hash = "sha256-hVnitkzZjZmrxmbt8qTIckyVNGEmFq8R9OsLvQ1CLaw=";
+    };
+    checkInputs = [ TestPod TestPodCoverage ];
+    meta = with lib; {
+      description = "Perl bindings to the msgpack C library";
+      homepage = "https://github.com/jacquesg/p5-MsgPack-Raw";
+      license = with licenses; [ gpl1Plus /* or */ artistic1 ];
+      maintainers = with maintainers; [ figsoda ];
+    };
+  };
+
+  MusicBrainzDiscID = buildPerlPackage {
+    pname = "MusicBrainz-DiscID";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NJ/NJH/MusicBrainz-DiscID-0.06.tar.gz";
+      hash = "sha256-ugtu0JiX/1Y7pZhy7pNxW+83FXUVsZt8bW8obmVI7Ks=";
+    };
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    # Makefile.PL in this package uses which to find pkg-config -- make it use path instead
+    patchPhase = ''sed -ie 's/`which pkg-config`/"pkg-config"/' Makefile.PL'';
+    doCheck = false; # The main test performs network access
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    propagatedBuildInputs = [ pkgs.libdiscid ];
+    meta = {
+      description = "- Perl interface for the MusicBrainz libdiscid library";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  MusicBrainz = buildPerlModule {
+    pname = "WebService-MusicBrainz";
+    version = "1.0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BF/BFAIST/WebService-MusicBrainz-1.0.6.tar.gz";
+      hash = "sha256-XpH1ZZZ3w5CJv28lO0Eoe7zTVh9qJaB5Zc6DsmKIUuE=";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    doCheck = false; # Test performs network access.
+    meta = {
+      description = "API to search the musicbrainz.org database";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MustacheSimple = buildPerlPackage {
+    pname = "Mustache-Simple";
+    version = "1.3.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CM/CMS/Mustache-Simple-v1.3.6.tar.gz";
+      hash = "sha256-UdtdUf9LJaZw2L+r45ArbUVDTs94spvB//Ga9uc4MAM=";
+    };
+    propagatedBuildInputs = [ YAMLLibYAML ];
+    meta = {
+      description = "A simple Mustache Renderer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  MySQLDiff = buildPerlPackage rec {
+    pname = "MySQL-Diff";
+    version = "0.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ES/ESTRABD/MySQL-Diff-0.60.tar.gz";
+      hash = "sha256-XXCApL1XFP+e9Taqd0p62zxvDnYCFcpsOdijVFNE+VY=";
+    };
+    propagatedBuildInputs = [ pkgs.mariadb.client FileSlurp StringShellQuote ];
+    meta = {
+      description = "Generates a database upgrade instruction set";
+      homepage = "https://github.com/estrabd/mysqldiff";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+      mainProgram = "mysqldiff";
+    };
+  };
+
+  namespaceautoclean = buildPerlPackage {
+    pname = "namespace-autoclean";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz";
+      hash = "sha256-RevY5kpUqG+I2OAa5VISlnyKqP7VfoFAhd73YIrGWAQ=";
+    };
+    buildInputs = [ TestNeeds ];
+    propagatedBuildInputs = [ SubIdentify namespaceclean ];
+    meta = {
+      description = "Keep imports out of your namespace";
+      homepage = "https://github.com/moose/namespace-autoclean";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  namespaceclean = buildPerlPackage {
+    pname = "namespace-clean";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz";
+      hash = "sha256-ihCoPD4YPcePnnt6pNCbR8EftOfTozuaEpEv0i4xr50=";
+    };
+    propagatedBuildInputs = [ BHooksEndOfScope PackageStash ];
+    meta = {
+      description = "Keep imports and functions out of your namespace";
+      homepage = "https://search.cpan.org/dist/namespace-clean";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NeovimExt = buildPerlPackage rec {
+    pname = "Neovim-Ext";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JACQUESG/Neovim-Ext-${version}.tar.gz";
+      hash = "sha256-bSzrMGLJZzfbpVbLIEYxMPxABocbJbfE9mzTgZ1FBLg=";
+    };
+    propagatedBuildInputs = [
+      ClassAccessor
+      EvalSafe
+      IOAsync
+      MsgPackRaw
+    ];
+    checkInputs = [
+      ArchiveZip
+      FileSlurper
+      FileWhich
+      ProcBackground
+      TestPod
+      TestPodCoverage
+    ];
+    # TODO: fix tests
+    doCheck = false;
+    meta = with lib; {
+      description = "Perl bindings for Neovim";
+      homepage = "https://github.com/jacquesg/p5-Neovim-Ext";
+      license = with licenses; [ gpl1Plus /* or */ artistic1 ];
+      maintainers = with maintainers; [ figsoda ];
+    };
+  };
+
+  NetDNSNative = buildPerlPackage {
+    pname = "Net-DNS-Native";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OL/OLEG/Net-DNS-Native-0.22.tar.gz";
+      hash = "sha256-EI2d7bq5/69qDQFSVSbeGJSITpUL/YM3F+XNOJBcMNU=";
+    };
+    meta = {
+      description = "Non-blocking system DNS resolver";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  NetIdent = buildPerlPackage {
+    pname = "Net-Ident";
+    version = "1.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Net-Ident-1.25.tar.gz";
+      hash = "sha256-LlvViwHCpm6ASaL42ck+G19tzlPg7jpIHOam9BHyyPg=";
+    };
+    meta = {
+      description = "Lookup the username on the remote end of a TCP/IP connection";
+      homepage = "https://github.com/toddr/Net-Ident";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  NetINET6Glue = buildPerlPackage {
+    pname = "Net-INET6Glue";
+    version = "0.604";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SU/SULLR/Net-INET6Glue-0.604.tar.gz";
+      hash = "sha256-kMNjmPlQFBTMzaiynyOn908vK09VLhLevxYhjHNbuxc=";
+    };
+    meta = {
+      description = "Make common modules IPv6 ready by hotpatching";
+      homepage = "https://github.com/noxxi/p5-net-inet6glue";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetAddrIP = buildPerlPackage {
+    pname = "NetAddr-IP";
+    version = "4.079";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gz";
+      hash = "sha256-7FqC37cCi80ouz1Wn5XYfdQWbMGYZ/IYTtOln21soOc=";
+    };
+    meta = {
+      description = "Manages IPv4 and IPv6 addresses and subnets";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetAmazonAWSSign = buildPerlPackage {
+    pname = "Net-Amazon-AWSSign";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NA/NATON/Net-Amazon-AWSSign-0.12.tar.gz";
+      hash = "sha256-HQQMazseorVlkFefnBjgUAtsaiF7WdiDHw2WBMqX7T4=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Perl extension to create signatures for AWS requests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetAmazonEC2 = buildPerlPackage {
+    pname = "Net-Amazon-EC2";
+    version = "0.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MALLEN/Net-Amazon-EC2-0.36.tar.gz";
+      hash = "sha256-Tig2kufwZsJBjtrpIz47YkAPk1X01SH5lRXlL3t9cvE=";
+    };
+    propagatedBuildInputs = [ LWPProtocolHttps Moose ParamsValidate XMLSimple ];
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Perl interface to the Amazon Elastic Compute Cloud (EC2) environment";
+      homepage = "https://metacpan.org/dist/Net-Amazon-EC2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetAmazonMechanicalTurk = buildPerlModule {
+    pname = "Net-Amazon-MechanicalTurk";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MT/MTURK/Net-Amazon-MechanicalTurk-1.02.tar.gz";
+      hash = "sha256-jQlewUjglLJ/TMzHnhyvnDHzzA5t2CzoqORCyNx7D44=";
+    };
+    patches =
+      [ ../development/perl-modules/net-amazon-mechanicalturk.patch ];
+    propagatedBuildInputs = [ DigestHMAC LWPProtocolHttps XMLParser ];
+    doCheck = false; /* wants network */
+    meta = {
+      description = "Amazon Mechanical Turk SDK for Perl";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  NetAmazonS3 = buildPerlPackage {
+    pname = "Net-Amazon-S3";
+    version = "0.991";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BARNEY/Net-Amazon-S3-0.991.tar.gz";
+      hash = "sha256-+3r4umSUjRo/MdgJ13EFImiA8GmYrH8Rn4JITmijI9M=";
+    };
+    buildInputs = [ TestDeep TestException TestLWPUserAgent TestMockTime TestWarnings ];
+    propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SafeIsa SubOverride TermEncoding TermProgressBarSimple XMLLibXML ];
+    meta = {
+      description = "Use the Amazon S3 - Simple Storage Service";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "s3cl";
+    };
+  };
+
+  NetAmazonS3Policy = buildPerlModule {
+    pname = "Net-Amazon-S3-Policy";
+    version = "0.1.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.6.tar.gz";
+      hash = "sha256-0rFukwhnSHQ0tHdHhooAP0scyECy15WfiPw2vQ2G2RQ=";
+    };
+    propagatedBuildInputs = [ JSON ];
+    meta = {
+      description = "Manage Amazon S3 policies for HTTP POST forms";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetAsyncHTTP = buildPerlModule {
+    pname = "Net-Async-HTTP";
+    version = "0.49";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.49.tar.gz";
+      hash = "sha256-OSBtBpSV0bhq7jeqitPJM0025ZzObPec04asDPN5jNs=";
+    };
+    buildInputs = [ HTTPCookies Test2Suite TestMetricsAny ];
+    propagatedBuildInputs = [ Future HTTPMessage IOAsync MetricsAny StructDumb URI ];
+    preCheck = lib.optionalString stdenv.isDarwin ''
+      # network tests fail on Darwin/sandbox, so disable these
+      rm -f t/20local-connect.t t/22local-connect-pipeline.t t/23local-connect-redir.t
+      rm -f t/90rt75615.t t/90rt75616.t t/90rt93232.t
+    '';
+    meta = {
+      description = "Use HTTP with IO::Async";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  NetAsyncHTTPServer = buildPerlModule {
+    pname = "Net-Async-HTTP-Server";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.14.tar.gz";
+      hash = "sha256-6nG3kcEtD6X3JubMA/Zuo20bRhNxj2xb84EzvRinsrY=";
+    };
+    buildInputs = [ Test2Suite TestMetricsAny TestRefcount ];
+    propagatedBuildInputs = [ HTTPMessage IOAsync MetricsAny ];
+    meta = {
+      description = "Serve HTTP with IO::Async";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.anoa ];
+    };
+  };
+
+  NetAsyncPing = buildPerlPackage {
+    pname = "Net-Async-Ping";
+    version = "0.004001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Net-Async-Ping-0.004001.tar.gz";
+      hash = "sha256-kFfoUHYMcT2rB6DBycj4isEfbnTop0gcEObyc12K6Vs=";
+    };
+    propagatedBuildInputs = [ IOAsync Moo NetFrameLayerIPv6 namespaceclean ];
+    buildInputs = [ TestFatal ];
+    preCheck = "rm t/icmp_ps.t t/icmpv6_ps.t"; # ping socket tests fail
+    meta = {
+      description = "Asyncronously check remote host for reachability";
+      homepage = "https://github.com/frioux/Net-Async-Ping";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetAsyncWebSocket = buildPerlModule {
+    pname = "Net-Async-WebSocket";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz";
+      hash = "sha256-DayDQtPHii/syr1GZxRd1a3U+4zRjRVtKXoead/hFgA=";
+    };
+    propagatedBuildInputs = [ IOAsync ProtocolWebSocket URI ];
+    preCheck = lib.optionalString stdenv.isDarwin ''
+      # network tests fail on Darwin/sandbox, so disable these
+      rm -f t/02server.t t/03cross.t
+    '';
+    meta = {
+      description = "Use WebSockets with IO::Async";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  NetAMQP = buildPerlModule {
+    pname = "Net-AMQP";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz";
+      hash = "sha256-Cyun3izX3dX+ECouKueuuiHqqxB4vzv9PFpyKTclY4A=";
+    };
+    doCheck = false; # failures on 32bit
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ ClassAccessor ClassDataInheritable XMLLibXML ];
+    meta = {
+      description = "Advanced Message Queue Protocol (de)serialization and representation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetCIDR = buildPerlPackage {
+    pname = "Net-CIDR";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRSAM/Net-CIDR-0.21.tar.gz";
+      hash = "sha256-MPMDwHNZSNozNw3sx+h8+mi8QwqkS4HRj42CO20av78=";
+    };
+    meta = {
+      description = "Manipulate IPv4/IPv6 netblocks in CIDR notation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.bjornfor ];
+    };
+  };
+
+  NetCIDRLite = buildPerlPackage {
+    pname = "Net-CIDR-Lite";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz";
+      hash = "sha256-QxfYyzQaYXueCIjaQ8Cc3//8sMnt97jJko10KlY7hRc=";
+    };
+    meta = {
+      description = "Perl extension for merging IPv4 or IPv6 CIDR addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  NetCoverArtArchive = buildPerlPackage {
+    pname = "Net-CoverArtArchive";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CY/CYCLES/Net-CoverArtArchive-1.02.tar.gz";
+      hash = "sha256-VyXiCCZDVq1rP6++uXVqz8Kny5WDiMpcCHqsJzNF3dE=";
+    };
+    buildInputs = [ FileFindRule ];
+    propagatedBuildInputs = [ JSONAny LWP Moose namespaceautoclean ];
+    meta = {
+      description = "Query the coverartarchive.org";
+      homepage = "https://github.com/metabrainz/CoverArtArchive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetCUPS = buildPerlPackage {
+    pname = "Net-CUPS";
+    version = "0.64";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NINE/Net-CUPS-0.64.tar.gz";
+      hash = "sha256-17x3/w9iv4dMhDxZDrEqgLvUR0mi+3Tb7URcNdDoWoU=";
+    };
+    buildInputs = [ pkgs.cups pkgs.cups-filters ];
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups";
+    meta = {
+      description = "Common Unix Printing System Interface";
+      homepage = "https://github.com/niner/perl-Net-CUPS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetDBus = buildPerlPackage {
+    pname = "Net-DBus";
+    version = "1.2.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz";
+      hash = "sha256-56GsnvShI1s/29WIj4bDRxgjBkZ715q8mwdWpktEHLw=";
+    };
+    nativeBuildInputs = [ buildPackages.pkg-config ];
+    buildInputs = [ pkgs.dbus TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ XMLTwig ];
+
+    # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
+    patches = fetchpatch {
+      url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
+      hash = "sha256-68kyUxM3E7w99rM2AZWZQMpGcaQxfSWaBs3DnmwnzqY=";
+    };
+
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
+    '';
+
+    meta = {
+      description = "Extension for the DBus bindings";
+      homepage = "https://www.freedesktop.org/wiki/Software/dbus";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetDNS = buildPerlPackage {
+    pname = "Net-DNS";
+    version = "1.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.40.tar.gz";
+      hash = "sha256-IJu9QN6NSMG9eq3kjaI3/gpJn4nSebqi4amb1eySLdw=";
+    };
+    propagatedBuildInputs = [ DigestHMAC ];
+    makeMakerFlags = [ "--noonline-tests" ];
+    meta = {
+      description = "Perl Interface to the Domain Name System";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  NetDNSResolverMock = buildPerlPackage {
+    pname = "Net-DNS-Resolver-Mock";
+    version = "1.20230216";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20230216.tar.gz";
+      hash = "sha256-7UkwV3/Rop1kNbWHVTPTso9cElijWDP+bKLLaiaFpJs=";
+    };
+    propagatedBuildInputs = [ NetDNS ];
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Mock a DNS Resolver object for testing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetDomainTLD = buildPerlPackage {
+    pname = "Net-Domain-TLD";
+    version = "1.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXP/Net-Domain-TLD-1.75.tar.gz";
+      hash = "sha256-TDf4ERhNaKxBedSMEOoxki3V/KLBv/zc2VxaKjtAAu4=";
+    };
+    meta = {
+      description = "Work with TLD names";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetFastCGI = buildPerlPackage {
+    pname = "Net-FastCGI";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz";
+      hash = "sha256-EZOQCk/V6eupzNBuE4+RCSG3Ugf/i1JLZDqIyD61WWo=";
+    };
+    buildInputs = [ TestException TestHexString ];
+    meta = {
+      description = "FastCGI Toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetFrame = buildPerlModule {
+    pname = "Net-Frame";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-1.21.tar.gz";
+      hash = "sha256-vLNXootjnwyvfWLTPS5g/wv8z4lNAHzmAfY1UTiD1zk=";
+    };
+    propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ];
+    preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries
+    meta = {
+      description = "The base framework for frame crafting";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  NetFrameLayerIPv6 = buildPerlModule {
+    pname = "Net-Frame-Layer-IPv6";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-Layer-IPv6-1.08.tar.gz";
+      hash = "sha256-ui2FK+jzf1iE4wfagriqPNeU4YoVyAdSGsLKKtE599c=";
+    };
+    propagatedBuildInputs = [ NetFrame ];
+    meta = {
+      description = "Internet Protocol v6 layer object";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  NetFreeDB = buildPerlPackage {
+    pname = "Net-FreeDB";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz";
+      hash = "sha256-90PhIjjrFslIBK+0sxCwJUj3C8rxeRZOrlZ/i0mIroU=";
+    };
+    buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
+    propagatedBuildInputs = [ CDDBFile Moo ];
+    meta = {
+      description = "OOP Interface to FreeDB Server(s)";
+      license = with lib.licenses; [ artistic1 ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.NetFreeDB.x86_64-darwin
+    };
+  };
+
+  NetHTTP = buildPerlPackage {
+    pname = "Net-HTTP";
+    version = "6.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz";
+      hash = "sha256-DWXAndbIWJsq4RGBdNPBphcDtuz8FKNEKox0r2XgyU4=";
+    };
+    propagatedBuildInputs = [ URI ];
+    __darwinAllowLocalNetworking = true;
+    doCheck = false; /* wants network */
+    meta = {
+      description = "Low-level HTTP connection (client)";
+      homepage = "https://github.com/libwww-perl/Net-HTTP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetHTTPSNB = buildPerlPackage {
+    pname = "Net-HTTPS-NB";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OL/OLEG/Net-HTTPS-NB-0.15.tar.gz";
+      hash = "sha256-amnPT6Vfuju70iYu4UKC7YMQc22PWslNGmxZfNEnjE8=";
+    };
+    propagatedBuildInputs = [ IOSocketSSL NetHTTP ];
+    meta = {
+      description = "Non-blocking HTTPS client";
+      homepage = "https://github.com/olegwtf/p5-Net-HTTPS-NB";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetIDNEncode = buildPerlModule {
+    pname = "Net-IDN-Encode";
+    version = "2.500";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-2.500.tar.gz";
+      hash = "sha256-VUU2M+P/JM4yWzS8LIFXuYWZYqMatc8ov3zMHJs6Pqo=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    perlPreHook = "export LD=$CC";
+    meta = {
+      description = "Internationalizing Domain Names in Applications (UTS #46)";
+      homepage = "https://metacpan.org/release/Net-IDN-Encode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetIMAPClient = buildPerlPackage {
+    pname = "Net-IMAP-Client";
+    version = "0.9507";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GANGLION/Net-IMAP-Client-0.9507.tar.gz";
+      hash = "sha256-QE5vW7xQjPFnxAUqXhRwXv7sb7eTvPm1xCniX0cYNUk=";
+    };
+    propagatedBuildInputs = [ IOSocketSSL ListMoreUtils ];
+    meta = {
+      description = "Not so simple IMAP client library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetIP = buildPerlPackage {
+    pname = "Net-IP";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz";
+      hash = "sha256-BA8W8wZmR9dhtySjtwdU0oy9Hm/l6gHGPtHNhXEX1jk=";
+    };
+    meta = {
+      description = "Perl extension for manipulating IPv4/IPv6 addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetIPLite = buildPerlPackage {
+    pname = "Net-IP-Lite";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXKOM/Net-IP-Lite-0.03.tar.gz";
+      hash = "sha256-yZFubPqlO+J1N5zksqVQrhdt36tQ2tQ7Q+1D6CZ4Aqk=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Perl extension for manipulating IPv4/IPv6 addresses";
+      homepage = "https://metacpan.org/pod/Net::IP::Lite";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  NetIPv4Addr = buildPerlPackage {
+    pname = "Net-IPv4Addr";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FRAJULAC/Net-IPv4Addr-0.10.tar.gz";
+      hash = "sha256-OEXeTzCxfIQrGSys6Iedu2IU3paSz6cPCq8JgUIqY/4=";
+    };
+    meta = {
+      description = "Perl extension for manipulating IPv4 addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ipv4calc";
+    };
+  };
+
+  NetIPv6Addr = buildPerlPackage {
+    pname = "Net-IPv6Addr";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BK/BKB/Net-IPv6Addr-1.02.tar.gz";
+      hash = "sha256-sjQBwSJv7o3+Yn9a4OkMVaxUcBDso5gRDcFjH0HJ7H0=";
+    };
+    propagatedBuildInputs = [ MathBase85 NetIPv4Addr ];
+    meta = {
+      description = "Check and manipulate IPv6 addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetIPXS = buildPerlPackage {
+    pname = "Net-IP-XS";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOMHRR/Net-IP-XS-0.22.tar.gz";
+      hash = "sha256-JZe0aDizgur3S6XJnD9gpqC1poHsNqFBchJL9E9LGSA=";
+    };
+    propagatedBuildInputs = [ IOCapture TieSimple ];
+    meta = {
+      homepage = "https://github.com/tomhrr/p5-Net-IP-XS";
+      description = "IPv4/IPv6 address library";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  NetLDAPServer = buildPerlPackage {
+    pname = "Net-LDAP-Server";
+    version = "0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AA/AAR/Net-LDAP-Server-0.43.tar.gz";
+      hash = "sha256-3WxMtNMLwyEUsHh/qioeK0/t0bkcLvN5Zey6ETMbsGI=";
+    };
+    propagatedBuildInputs = [ perlldap ConvertASN1 ];
+    meta = {
+      description = "LDAP server side protocol handling";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetLDAPSID = buildPerlPackage {
+    pname = "Net-LDAP-SID";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-SID-0.001.tar.gz";
+      hash = "sha256-qMLNQGeQl/w7hCV24bU+w1/UNIGoalA4PutOJOu81tY=";
+    };
+    meta = {
+      description = "Active Directory Security Identifier manipulation";
+      homepage = "https://github.com/karpet/net-ldap-sid";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetLDAPServerTest = buildPerlPackage {
+    pname = "Net-LDAP-Server-Test";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-Server-Test-0.22.tar.gz";
+      hash = "sha256-sSBxe18fb2sTsxQ3/dIY7g/GnrASGN4U2SL5Kc+NLY4=";
+    };
+    propagatedBuildInputs = [ perlldap NetLDAPServer DataDump NetLDAPSID ];
+    meta = {
+      description = "Test Net::LDAP code";
+      homepage = "https://github.com/karpet/net-ldap-server-test";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetLibIDN2 = buildPerlModule {
+    pname = "Net-LibIDN2";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TH/THOR/Net-LibIDN2-1.02.tar.gz";
+      hash = "sha256-0fMK/GrPplQbAMCafkx059jkuknjJ3wLvEGuNcE5DQc=";
+    };
+    propagatedBuildInputs = [ pkgs.libidn2 ];
+    meta = {
+      description = "Perl bindings for GNU Libidn2";
+      homepage = "https://github.com/gnuthor/Net--LibIDN2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetNetmask = buildPerlPackage {
+    pname = "Net-Netmask";
+    version = "2.0002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-2.0002.tar.gz";
+      hash = "sha256-JKmy58a8wTAteXROukwCG/PeR/FJqvrM2U+bBC/dv5Q=";
+    };
+    buildInputs = [ Test2Suite TestUseAllModules ];
+    meta = {
+      description = "Understand and manipulate IP netmasks";
+      homepage = "https://search.cpan.org/~jmaslak/Net-Netmask";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetMPD = buildPerlModule {
+    pname = "Net-MPD";
+    version = "0.07";
+    buildInputs = [ ModuleBuildTiny ];
+    src = fetchurl {
+      url = "https://cpan.metacpan.org/authors/id/A/AB/ABERNDT/Net-MPD-0.07.tar.gz";
+      hash = "sha256-M4L7nG9cJd4mKPVhRCn6igB5FSFnjELaBoyZ57KU6VM=";
+    };
+    meta = {
+      description = "Communicate with an MPD server";
+      homepage = "https://metacpan.org/pod/Net::MPD";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  NetMQTTSimple = buildPerlPackage {
+    pname = "Net-MQTT-Simple";
+    version = "1.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JU/JUERD/Net-MQTT-Simple-1.28.tar.gz";
+      hash = "sha256-Sp6hB+a8IuJrUzZ4oKPMbEI7N4TsP8ROjjM5t8Vr7gM=";
+    };
+    meta = {
+      description = "Minimal MQTT version 3 interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetNVD = buildPerlPackage {
+    pname = "Net-NVD";
+    version = "0.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GARU/Net-NVD-0.0.3.tar.gz";
+      hash = "sha256-uKZXEg+UsO7R2OvbA4i8M2DSj6Xw+CNrnNjNrovv5Bg=";
+    };
+    propagatedBuildInputs = [ IOSocketSSL JSON ];
+    meta = {
+      description = "Query CVE data from NIST's NVD (National Vulnerability Database)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetOAuth = buildPerlModule {
+    pname = "Net-OAuth";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KG/KGRENNAN/Net-OAuth-0.28.tar.gz";
+      hash = "sha256-e/wxnaCsV44Ali81o1DPUREKOjEwFtH9wwciAooikEw=";
+    };
+    buildInputs = [ TestWarn ];
+    propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ];
+    meta = {
+      description = "An implementation of the OAuth protocol";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetPatricia = buildPerlPackage {
+    pname = "Net-Patricia";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-1.22.tar.gz";
+      hash = "sha256-cINakm4cWo0DJMcv/+6C7rfsbBQd7gT9RGggtk9xxVI=";
+    };
+    propagatedBuildInputs = [ NetCIDRLite Socket6 ];
+    meta = {
+      description = "Patricia Trie perl module for fast IP address lookups";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  NetPing = buildPerlPackage {
+    pname = "Net-Ping";
+    version = "2.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.75.tar.gz";
+      hash = "sha256-tH3zz9lpLM0Aca05/nRxjrwy9ZcBVWpgT9FaCfCeDXQ=";
+    };
+    meta = {
+      description = "Check a remote host for reachability";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetDNSResolverProgrammable = buildPerlPackage {
+    pname = "Net-DNS-Resolver-Programmable";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BIGPRESH/Net-DNS-Resolver-Programmable-0.009.tar.gz";
+      hash = "sha256-gICiq3dmKVhZEa8Reb23xNwr6/1LXv13sR0drGJFS/g=";
+    };
+    propagatedBuildInputs = [ NetDNS ];
+    meta = {
+      description = "Programmable DNS resolver class for offline emulation of DNS";
+      homepage = "https://github.com/bigpresh/Net-DNS-Resolver-Programmable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetPrometheus = buildPerlModule {
+    pname = "Net-Prometheus";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.12.tar.gz";
+      hash = "sha256-rs73NJygSW/yNahKkQ+KBDZtB/WqQfrieixKxbip6SM=";
+    };
+    propagatedBuildInputs = [ RefUtil StructDumb URI ];
+    buildInputs = [ HTTPMessage TestFatal ];
+    meta = {
+      description = "Export monitoring metrics for prometheus";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSCP = buildPerlPackage {
+    pname = "Net-SCP";
+    version = "0.08.reprise";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SCP-0.08.reprise.tar.gz";
+      hash = "sha256-iKmy32nnaeWFWkCLGfYZFbguj+Bwq1z01SXdO4u+McE=";
+    };
+    propagatedBuildInputs = [ pkgs.openssl ];
+    patchPhase = ''
+      sed -i 's|$scp = "scp";|$scp = "${pkgs.openssh}/bin/scp";|' SCP.pm
+    '';
+    buildInputs = [ NetSSH StringShellQuote ];
+    meta = {
+      description = "Simple wrappers around ssh and scp commands";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetServer = buildPerlPackage {
+    pname = "Net-Server";
+    version = "2.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RH/RHANDOM/Net-Server-2.014.tar.gz";
+      hash = "sha256-NAa5ylpmKgB17tR/t43hMWtgHJT2Kg7jSlVE25uqNyA=";
+    };
+    doCheck = false; # seems to hang waiting for connections
+    meta = {
+      description = "Extensible Perl internet server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "net-server";
+    };
+  };
+
+  NetSFTPForeign = buildPerlPackage {
+    pname = "Net-SFTP-Foreign";
+    version = "1.93";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Net-SFTP-Foreign-1.93.tar.gz";
+      hash = "sha256-bH1kJQh2hz2kNIAOUGCovvekZFHYH4F+N+Q8/aUaD3o=";
+    };
+    propagatedBuildInputs = [ pkgs.openssl ];
+    patchPhase = ''
+      sed -i "s|$ssh_cmd = 'ssh'|$ssh_cmd = '${pkgs.openssh}/bin/ssh'|" lib/Net/SFTP/Foreign/Backend/Unix.pm
+    '';
+    meta = {
+      description = "Secure File Transfer Protocol client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetServerCoro = buildPerlPackage {
+    pname = "Net-Server-Coro";
+    version = "1.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz";
+      hash = "sha256-HhpwKw3TkMPmKfip6EzKY7eU0eInlX9Cm2dgEHV3+4Y=";
+    };
+    propagatedBuildInputs = [ Coro NetServer ];
+    meta = {
+      description = "A co-operative multithreaded server using Coro";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  NetServerSSPrefork = buildPerlPackage {
+    pname = "Net-Server-SS-PreFork";
+    version = "0.06pre";
+    src = fetchFromGitHub {
+      owner = "kazuho";
+      repo = "p5-Net-Server-SS-PreFork";
+      rev = "5fccc0c270e25c65ef634304630af74b48807d21";
+      hash = "sha256-pveVyFdEe/TQCEI83RrQTWr7aoYrgOGaNqc1wJeiAnw=";
+    };
+    nativeCheckInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ];
+    buildInputs = [ ModuleInstall ];
+    propagatedBuildInputs = [ NetServer ServerStarter ];
+    meta = {
+      description = "A hot-deployable variant of Net::Server::PreFork";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSMTPSSL = buildPerlPackage {
+    pname = "Net-SMTP-SSL";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Net-SMTP-SSL-1.04.tar.gz";
+      hash = "sha256-eynEWt0Z09UIS3Ufe6iajkBHmkRs4hz9nMdB5VgzKgA=";
+    };
+    propagatedBuildInputs = [ IOSocketSSL ];
+    meta = {
+      description = "SSL support for Net::SMTP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSMTPTLS = buildPerlPackage {
+    pname = "Net-SMTP-TLS";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz";
+      hash = "sha256-7+dyZnrDdwK5a221KXzIJ0J6Ozo4GbekMVsIudRE5KU=";
+    };
+    propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
+    meta = {
+      description = "An SMTP client supporting TLS and AUTH";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSMTPTLSButMaintained = buildPerlPackage {
+    pname = "Net-SMTP-TLS-ButMaintained";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FA/FAYLAND/Net-SMTP-TLS-ButMaintained-0.24.tar.gz";
+      hash = "sha256-a5XAj3FXnYUcAYP1AqcAyGof7O9XDjzugybF5M5mJW4=";
+    };
+    propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
+    meta = {
+      description = "An SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSNMP = buildPerlModule {
+    pname = "Net-SNMP";
+    version = "6.0.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz";
+      hash = "sha256-FMN7wcuz883H1sE+DyeoWfFM3P1epUoEZ6iLwlmwt0E=";
+    };
+    doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799
+    meta = {
+      description = "Object oriented interface to SNMP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "snmpkey";
+    };
+  };
+
+  NetSNPP = buildPerlPackage rec {
+    pname = "Net-SNPP";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBEYA/Net-SNPP-1.17.tar.gz";
+      hash = "sha256-BrhR1kWWYl6GY1n7AX3Q0Ilz4OvFDDI/Sh1Q7N2GjnY=";
+    };
+
+    doCheck = false;
+    meta = {
+      description = "Simple Network Pager Protocol Client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSSH = buildPerlPackage {
+    pname = "Net-SSH";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz";
+      hash = "sha256-fHHHw8vpUyNN/iW8wa1+2w4fWgV4YB9VI7xgcCYqOBc=";
+    };
+    propagatedBuildInputs = [ pkgs.openssl ];
+    patchPhase = ''
+      sed -i 's|$ssh = "ssh";|$ssh = "${pkgs.openssh}/bin/ssh";|' SSH.pm
+    '';
+    meta = {
+      description = "Simple wrappers around ssh commands";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSSHPerl = buildPerlPackage {
+    pname = "Net-SSH-Perl";
+    version = "2.142";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Net-SSH-Perl-2.142.tar.gz";
+      hash = "sha256-UAHbPllS/BjYXDF5Uhr2kT0VQ+tP30/ZfcYDpHSMLJY=";
+    };
+    propagatedBuildInputs = [ CryptCurve25519 CryptIDEA CryptX FileHomeDir MathGMP StringCRC32 ];
+    preCheck = "export HOME=$TMPDIR";
+    meta = {
+      description = "Perl client interface to SSH";
+      homepage = "https://search.cpan.org/dist/Net-SSH-Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetSSLeay = buildPerlPackage {
+    pname = "Net-SSLeay";
+    version = "1.92";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz";
+      hash = "sha256-R8LyswDy5xYtcdaZ9jPdajWwYloAy9qMUKwBFEqTlqk=";
+    };
+    buildInputs = [ pkgs.openssl pkgs.zlib ];
+    doCheck = false; # Test performs network access.
+    preConfigure = ''
+      mkdir openssl
+      ln -s ${lib.getLib pkgs.openssl}/lib openssl
+      ln -s ${pkgs.openssl.bin}/bin openssl
+      ln -s ${pkgs.openssl.dev}/include openssl
+      export OPENSSL_PREFIX=$(realpath openssl)
+    '';
+    meta = {
+      description = "Perl bindings for OpenSSL and LibreSSL";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  NetStatsd = buildPerlPackage {
+    pname = "Net-Statsd";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz";
+      hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw=";
+    };
+    meta = {
+      description = "Perl client for Etsy's statsd daemon";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "benchmark.pl";
+    };
+  };
+
+  NetTelnet = buildPerlPackage {
+    pname = "Net-Telnet";
+    version = "3.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.05.tar.gz";
+      hash = "sha256-Z39ouizSqCT64yP6guGDv349A8PEmckdkjvWKDeWp0M=";
+    };
+    meta = {
+      description = "Interact with TELNET port or other TCP ports";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetTwitterLite = buildPerlModule {
+    pname = "Net-Twitter-Lite";
+    version = "0.12008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MM/MMIMS/Net-Twitter-Lite-0.12008.tar.gz";
+      hash = "sha256-suq+Hyo/LGTezWDye8O0buZSVgsCTExWgRVhbI1KRo4=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ JSON LWPProtocolHttps ];
+    doCheck = false;
+    meta = {
+      description = "A perl API library for the Twitter API";
+      homepage = "https://github.com/semifor/net-twitter-lite";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetWhoisIP = buildPerlPackage {
+    pname = "Net-Whois-IP";
+    version = "1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BS/BSCHMITZ/Net-Whois-IP-1.19.tar.gz";
+      hash = "sha256-8JvfoPHSZltTSCa186hmI0mTDu0pmO/k2Nv5iBMUciI=";
+    };
+    doCheck = false;
+
+    # https://rt.cpan.org/Public/Bug/Display.html?id=99377
+    postPatch = ''
+      substituteInPlace IP.pm --replace " AutoLoader" ""
+    '';
+    buildInputs = [ RegexpIPv6 ];
+    meta = {
+      description = "Perl extension for looking up the whois information for ip addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetWorks = buildPerlPackage {
+    pname = "Net-Works";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAXMIND/Net-Works-0.22.tar.gz";
+      hash = "sha256-CsmyPfvKGE4ocpskU5S8ZpOq22/EUcqplbS3GewO6f8=";
+    };
+    propagatedBuildInputs = [ ListAllUtils MathInt128 Moo namespaceautoclean ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Sane APIs for IP addresses and networks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NumberBytesHuman = buildPerlPackage {
+    pname = "Number-Bytes-Human";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Number-Bytes-Human-0.11.tar.gz";
+      hash = "sha256-X8ecSbC0DfeAR5xDaWOBND4ratH+UoWfYLxltm6+byw=";
+    };
+    meta = {
+      description = "Convert byte count to human readable format";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NumberCompare = buildPerlPackage {
+    pname = "Number-Compare";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz";
+      hash = "sha256-gyk3N+gDtDESgwRD+1II7FIIoubqUS7VTvjk3SuICCc=";
+    };
+    meta = {
+      description = "Numeric comparisons";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NumberFormat = buildPerlPackage {
+    pname = "Number-Format";
+    version = "1.76";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Number-Format-1.76.tar.gz";
+      hash = "sha256-DgBg6zY2NaiFcGxqJvX8qv6udZ97Ksrkndpw4ZXdRNY=";
+    };
+    meta = {
+      description = "Perl extension for formatting numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NumberFraction = buildPerlModule {
+    pname = "Number-Fraction";
+    version = "3.0.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Number-Fraction-v3.0.4.tar.gz";
+      hash = "sha256-xkGcird4/XKbENfmp487ewf8CJV8H3nlZm3Ny01iwIU=";
+    };
+    propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
+    meta = {
+      description = "Perl extension to model fractions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NumberMisc = buildPerlModule {
+    pname = "Number-Misc";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz";
+      hash = "sha256-d7m2jGAKBpzxb02BJuyzIVHmvNNLDtsXt4re5onckdg=";
+    };
+    meta = {
+      description = "Number::Misc - handy utilities for numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NumberPhone = buildPerlPackage {
+    pname = "Number-Phone";
+    version = "4.0000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Number-Phone-4.0000.tar.gz";
+      hash = "sha256-H0mX/oMJSrDNgUDwvn/cHz+JGQKareajOYH4fLBIZjQ=";
+    };
+    buildInputs = [ DevelHide FileShareDirInstall ParallelForkManager TestDifferences TestWarnings ];
+    propagatedBuildInputs = [ DataDumperConcise DataCompactReadonly DevelCheckOS DevelDeprecationsEnvironmental FileFindRule FileShareDir ];
+    preCheck = ''
+      # Remove slow memory hungry tests
+      rm t/fork.t
+      rm t/uk_slurp.t
+    '';
+    meta = {
+      description = "Large suite of perl modules for parsing and dealing with phone numbers";
+      homepage = "https://github.com/DrHyde/perl-modules-Number-Phone";
+      license = with lib.licenses; [ artistic1 gpl2Only asl20 ];
+    };
+  };
+
+  NumberWithError = buildPerlPackage {
+    pname = "Number-WithError";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/Number-WithError-1.01.tar.gz";
+      hash = "sha256-3/agcn54ROpng3vfrdVSuG9rIW0Y7o7kaEKyLM7w9VQ=";
+    };
+    propagatedBuildInputs = [ ParamsUtil prefork ];
+    buildInputs = [ TestLectroTest ];
+    meta = {
+      description = "Numbers with error propagation and scientific rounding";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NTLM = buildPerlPackage {
+    pname = "NTLM";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NB/NBEBOUT/NTLM-1.09.tar.gz";
+      hash = "sha256-yCPjDNp2vBVjblhDAslg4rXu75UXwkSPdFRJiJMVH4U=";
+    };
+    propagatedBuildInputs = [ DigestHMAC ];
+    meta = {
+      description = "An NTLM authentication module";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.pSub ];
+    };
+  };
+
+  ObjectAccessor = buildPerlPackage {
+    pname = "Object-Accessor";
+    version = "0.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Object-Accessor-0.48.tar.gz";
+      hash = "sha256-dsuCSie2tOVgQJ/Pb9Wzv7vTi3Lx89N+0LVL2cC66t4=";
+    };
+    meta = {
+      description = "Per object accessors";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ObjectEvent = buildPerlPackage rec {
+    pname = "Object-Event";
+    version = "1.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz";
+      hash = "sha256-q2u4BQj0/dry1RsgyodqqwOFgqhrUijmQ1QRNIr1PII=";
+    };
+    propagatedBuildInputs = [ AnyEvent commonsense ];
+    meta = {
+      description = "A class that provides an event callback interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ObjectInsideOut = buildPerlModule {
+    pname = "Object-InsideOut";
+    version = "4.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-4.05.tar.gz";
+      hash = "sha256-nf1sooInJDR+DrZ1nQBwlCWBRwOtXGa9tiFFeYaLysQ=";
+    };
+    propagatedBuildInputs = [ ExceptionClass ];
+    meta = {
+      description = "Comprehensive inside-out object support module";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ObjectPad = buildPerlModule {
+    pname = "Object-Pad";
+    version = "0.804";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Object-Pad-0.804.tar.gz";
+      hash = "sha256-z4jSquGKKHHX1/MPi6bU7lv5U+IP3KileME8dB0W0a0=";
+    };
+    buildInputs = [ Test2Suite TestFatal TestRefcount ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    propagatedBuildInputs = [ XSParseKeyword XSParseSublike ];
+    meta = {
+      description = "A simple syntax for lexical field-based objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  ObjectSignature = buildPerlPackage {
+    pname = "Object-Signature";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Object-Signature-1.08.tar.gz";
+      hash = "sha256-hCFTyU2pPiucs7VN7lcrUGS79JmjanPDiiN5mgIDaYo=";
+    };
+    meta = {
+      description = "Generate cryptographic signatures for objects";
+      homepage = "https://github.com/karenetheridge/Object-Signature";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  OggVorbisHeaderPurePerl = buildPerlPackage {
+    pname = "Ogg-Vorbis-Header-PurePerl";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Ogg-Vorbis-Header-PurePerl-1.05.tar.gz";
+      hash = "sha256-Uh04CPQtcSKmsGwzpurm18OZR6q1fEyMyvzE9gP9pT4=";
+    };
+
+    # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0
+    doCheck = false;
+    meta = {
+      description = "Access Ogg Vorbis info and comment fields";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  OLEStorage_Lite = buildPerlPackage {
+    pname = "OLE-Storage_Lite";
+    version = "0.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-0.22.tar.gz";
+      hash = "sha256-0FZtbCnTl+pzY3ncUVw2hJ9rlxB89wC6glBQXJhM+WU=";
+    };
+    meta = {
+      description = "Read and write OLE storage files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Opcodes = buildPerlPackage {
+    pname = "Opcodes";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Opcodes-0.14.tar.gz";
+      hash = "sha256-f3NlRH5NHFuHtDCRRI8EiOZ8nwNrJsAipUCc1z00OJM=";
+    };
+    meta = {
+      description = "More Opcodes information from opnames.h and opcode.h";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  OpenAPIClient = buildPerlPackage rec {
+    pname = "OpenAPI-Client";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-1.07.tar.gz";
+      hash = "sha256-Ue1kHSg7j0u7wG0BwVZzm9K5qItO+Et7hPlQ+g7hTbM=";
+    };
+    propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
+    meta = {
+      description = "A client for talking to an Open API powered server";
+      homepage = "https://github.com/jhthorsen/openapi-client";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  OpenGL = buildPerlPackage rec {
+    pname = "OpenGL";
+    version = "0.70";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHM/OpenGL-0.70.tar.gz";
+      hash = "sha256-sg4q9EBLSQGrNbumrV46iqYL/3JBPJkojwEBjEz4dOA=";
+    };
+
+    # FIXME: try with libGL + libGLU instead of libGLU libGL
+    buildInputs = [ pkgs.libGLU pkgs.libGL pkgs.libGLU pkgs.freeglut pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXmu pkgs.xorg.libXext pkgs.xdummy ];
+
+    patches = [ ../development/perl-modules/perl-opengl.patch ];
+
+    configurePhase = ''
+      substituteInPlace Makefile.PL \
+        --replace "@@libpaths@@" '${lib.concatStringsSep "\n" (map (f: "-L${f}/lib") buildInputs)}'
+
+      cp -v ${../development/perl-modules/perl-opengl-gl-extensions.txt} utils/glversion.txt
+
+      perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags
+    '';
+
+    doCheck = false;
+    meta = {
+      description = "Perl OpenGL bindings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from EPEL
+    };
+  };
+
+  OpenOfficeOODoc = buildPerlPackage {
+    pname = "OpenOffice-OODoc";
+    version = "2.125";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMGDOC/OpenOffice-OODoc-2.125.tar.gz";
+      hash = "sha256-wRRIlwaTxCqLnpPaSMrJE1Fs4zqdRKZGhAD3rYeR2rY=";
+    };
+    propagatedBuildInputs = [ ArchiveZip XMLTwig ];
+    meta = {
+      description = "The Perl Open OpenDocument Connector";
+      license = with lib.licenses; [ lgpl21Only ];
+      maintainers = [ maintainers.wentasah ];
+    };
+  };
+
+  NetOpenIDCommon = buildPerlPackage {
+    pname = "Net-OpenID-Common";
+    version = "1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Common-1.20.tar.gz";
+      hash = "sha256-q06X10pHcQ4NtKwMgi9/32Iq+GpgpSunIlWoicKdq8k=";
+    };
+    propagatedBuildInputs = [ CryptDHGMP XMLSimple ];
+    meta = {
+      description = "Libraries shared between Net::OpenID::Consumer and Net::OpenID::Server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetOpenIDConsumer = buildPerlPackage {
+    pname = "Net-OpenID-Consumer";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Consumer-1.18.tar.gz";
+      hash = "sha256-Dhw4b+fBhDBx3Zlr3KymEJEGZK5LXRJ8lf6u/Zk2Tzg=";
+    };
+    propagatedBuildInputs = [ JSON NetOpenIDCommon ];
+    buildInputs = [ CGI ];
+    meta = {
+      description = "Library for consumers of OpenID identities";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetOpenSSH = buildPerlPackage {
+    pname = "Net-OpenSSH";
+    version = "0.84";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.84.tar.gz";
+      hash = "sha256-h4DmLwGxzw20PJy3BclP9JSbAyIzvkvpH8kavHkVOfg=";
+    };
+    meta = {
+      description = "Perl SSH client package implemented on top of OpenSSH";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  NetZooKeeper = buildPerlPackage {
+    pname = "Net-ZooKeeper";
+    version = "0.42pre";
+    src = fetchFromGitHub {
+      owner = "mark-5";
+      repo = "p5-net-zookeeper";
+      rev = "66e1a360aff9c39af728c36092b540a4b6045f70";
+      hash = "sha256-NyY97EWtqWFtKJnwX2HDkKcyviKq57yRtWC7lzajiHY=";
+    };
+    buildInputs = [ pkgs.zookeeper_mt ];
+    # fix "error: format not a string literal and no format arguments [-Werror=format-security]"
+    hardeningDisable = [ "format" ];
+    # Make the async API accessible
+    env.NIX_CFLAGS_COMPILE = "-DTHREADED";
+    NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt";
+    # Most tests are skipped as no server is available in the sandbox.
+    # `t/35_log.t` seems to suffer from a race condition; remove it.  See
+    # https://github.com/NixOS/nixpkgs/pull/104889#issuecomment-737144513
+    preCheck = ''
+      rm t/35_log.t
+    '' + lib.optionalString stdenv.isDarwin ''
+      rm t/30_connect.t
+      rm t/45_class.t
+    '';
+    meta = {
+      description = "Perl extension for Apache ZooKeeper";
+      homepage = "https://github.com/mark-5/p5-net-zookeeper";
+      license = with lib.licenses; [ asl20 ];
+      maintainers = teams.deshaw.members ++ [ maintainers.ztzg ];
+    };
+  };
+
+  PackageConstants = buildPerlPackage {
+    pname = "Package-Constants";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Package-Constants-0.06.tar.gz";
+      hash = "sha256-C1i+eHBszE5L2butQXZ0cEJ/17LPrXSUid4QH4W8XfU=";
+    };
+    meta = {
+      description = "List constants defined in a package";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PackageDeprecationManager = buildPerlPackage {
+    pname = "Package-DeprecationManager";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.18.tar.gz";
+      hash = "sha256-to0/DO1Vt2Ff3btgKbifkqNP4N2Mb9a87/wVfVaDT+g=";
+    };
+    buildInputs = [ TestFatal TestWarnings ];
+    propagatedBuildInputs = [ PackageStash ParamsUtil SubInstall SubName ];
+    meta = {
+      description = "Manage deprecation warnings for your distribution";
+      homepage = "https://metacpan.org/release/Package-DeprecationManager";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  PatchReader = buildPerlPackage {
+    pname = "PatchReader";
+    version = "0.9.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TM/TMANNERM/PatchReader-0.9.6.tar.gz";
+      hash = "sha256-uN43RgNHu1R03AGRbMsx3S/gzZIkLEoy1zDo6wh8Mjw=";
+    };
+    meta = {
+      description = "Utilities to read and manipulate patches and CVS";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  PackageStash = buildPerlPackage {
+    pname = "Package-Stash";
+    version = "0.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz";
+      hash = "sha256-WpcixtnLKe4TPl97CKU2J2KgtWM/9RcGQqWwaG6V4GY=";
+    };
+    buildInputs = [ CPANMetaCheck TestFatal TestNeeds TestRequires ];
+    propagatedBuildInputs = [ DistCheckConflicts ModuleImplementation ];
+    meta = {
+      description = "Routines for manipulating stashes";
+      homepage = "https://github.com/moose/Package-Stash";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "package-stash-conflicts";
+    };
+  };
+
+  PackageStashXS = buildPerlPackage {
+    pname = "Package-Stash-XS";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-XS-0.30.tar.gz";
+      hash = "sha256-JrrWXBlZxXN5s+E53HdvvsX3ApBmF+8nzcKT3fEjkjE=";
+    };
+    buildInputs = [ TestFatal TestNeeds ];
+    meta = {
+      description = "Faster and more correct implementation of the Package::Stash API";
+      homepage = "https://github.com/moose/Package-Stash-XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Pango = buildPerlPackage {
+    pname = "Pango";
+    version = "1.227";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAOC/Pango-1.227.tar.gz";
+      hash = "sha256-NLCkIt8/7NdZdYcEhVJFfUiudkxDu+/SqdYs62yLrHE=";
+    };
+    buildInputs = [ pkgs.pango ];
+    propagatedBuildInputs = [ Cairo Glib ];
+    meta = {
+      description = "Layout and render international text";
+      homepage = "https://gtk2-perl.sourceforge.net";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  ParallelForkManager = buildPerlPackage {
+    pname = "Parallel-ForkManager";
+    version = "2.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz";
+      hash = "sha256-wbKXCou2ZsPefKrEqPTbzAQ6uBm7wzdpLse/J62uRAQ=";
+    };
+    buildInputs = [ TestWarn ];
+    propagatedBuildInputs = [ Moo ];
+    meta = {
+      description = "A simple parallel processing fork manager";
+      homepage = "https://github.com/dluxhu/perl-parallel-forkmanager";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParallelLoops = buildPerlPackage {
+    pname = "Parallel-Loops";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.10.tar.gz";
+      hash = "sha256-b5Z7RuejY7FocbmZHDWeFC3Dsigc/psa85kEcEyL0qo=";
+    };
+    propagatedBuildInputs = [ ParallelForkManager ];
+    meta = {
+      description = "Execute loops using parallel forked subprocesses";
+      homepage = "https://github.com/pmorch/perl-Parallel-Loops";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  ParallelPipes = buildPerlModule {
+    pname = "Parallel-Pipes";
+    version = "0.200";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/Parallel-Pipes-0.200.tar.gz";
+      hash = "sha256-iLmFDqzJ1hjz6RpRyqOGxKZOgswYc1AzUkTjSbgREQY=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Parallel processing using pipe(2) for communication and synchronization";
+      homepage = "https://github.com/skaji/Parallel-Pipes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  ParallelPrefork = buildPerlPackage {
+    pname = "Parallel-Prefork";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/Parallel-Prefork-0.18.tar.gz";
+      hash = "sha256-8cH0jxrhR6WLyI+csvVw1rsV6kwNWJq9TDCE3clhWW4=";
+    };
+    buildInputs = [ TestRequires TestSharedFork ];
+    propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
+    meta = {
+      description = "A simple prefork server framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParamsClassify = buildPerlModule {
+    pname = "Params-Classify";
+    version = "0.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-0.015.tar.gz";
+      hash = "sha256-OY7BXNiZ/Ni+89ueoXSL9jHxX2wyviA+R1tn31EKWRQ=";
+    };
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "Argument type classification";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParamsUtil = buildPerlPackage {
+    pname = "Params-Util";
+    version = "1.102";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/Params-Util-1.102.tar.gz";
+      hash = "sha256-SZuxtILbJP2id6UVJVlq0JLCvVHdUI+o/sLp+EkJdAI=";
+    };
+    meta = {
+      description = "Simple, compact and correct param-checking functions";
+      homepage = "https://metacpan.org/release/Params-Util";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParamsValidate = buildPerlModule {
+    pname = "Params-Validate";
+    version = "1.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz";
+      hash = "sha256-G/JRjvLEhp+RWQ4hn1RcjvEu1TzzE+DrVwSt9/Gylh4=";
+    };
+    buildInputs = [ TestFatal TestRequires ];
+    propagatedBuildInputs = [ ModuleImplementation ];
+    perlPreHook = "export LD=$CC";
+    meta = {
+      description = "Validate method/function parameters";
+      homepage = "https://metacpan.org/release/Params-Validate";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ParamsValidationCompiler = buildPerlPackage {
+    pname = "Params-ValidationCompiler";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz";
+      hash = "sha256-e2SXFz8batsp9dUdjPnsNtLxIZQStLJBDp13qQHoSm0=";
+    };
+    propagatedBuildInputs = [ EvalClosure ExceptionClass ];
+    buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ];
+    meta = {
+      description = "Build an optimized subroutine parameter validator once, use it forever";
+      homepage = "https://metacpan.org/release/Params-ValidationCompiler";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  Paranoid = buildPerlPackage {
+    pname = "Paranoid";
+    version = "2.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORLISS/Paranoid/Paranoid-2.10.tar.gz";
+      hash = "sha256-vvS25l1cmk72C8qjF0hvOg0jm/2rRQqnEgLCl5i4dSk=";
+    };
+    patches = [ ../development/perl-modules/Paranoid-blessed-path.patch ];
+    preConfigure = ''
+      # Capture the path used when compiling this module as the "blessed"
+      # system path, analogous to the module's own use of '/bin:/sbin'.
+      sed -i "s#__BLESSED_PATH__#${pkgs.coreutils}/bin#" lib/Paranoid.pm t/01_init_core.t
+    '';
+    meta = {
+      description = "General function library for safer, more secure programming";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  PARDist = buildPerlPackage {
+    pname = "PAR-Dist";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-Dist-0.52.tar.gz";
+      hash = "sha256-y+ljAJ6nnSRUqF/heU9CW33cHoa3F0nIhNsp1gHqj4g=";
+    };
+    meta = {
+      description = "Create and manipulate PAR distributions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PAUSEPermissions = buildPerlPackage {
+    pname = "PAUSE-Permissions";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz";
+      hash = "sha256-ek6SDeODL5CfJV1aMj942M0hXGCMlJbNbJVwEsi0MQg=";
+    };
+    propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ];
+    buildInputs = [ PathTiny ];
+    meta = {
+      description = "Interface to PAUSE's module permissions file (06perms.txt)";
+      homepage = "https://github.com/neilb/PAUSE-Permissions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pause-permissions";
+    };
+  };
+
+  Parent = buildPerlPackage {
+    pname = "parent";
+    version = "0.241";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.241.tar.gz";
+      hash = "sha256-sQs5YKs5l9q3Vx/+l1ukYtl50IZFB0Ch4Is5WedRKP4=";
+    };
+    meta = {
+      description = "Establish an ISA relationship with base classes at compile time";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParseEDID = buildPerlPackage {
+    pname = "Parse-Edid";
+    version = "1.0.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GROUSSE/Parse-EDID-1.0.7.tar.gz";
+      hash = "sha256-GtwPEFoyGYoqK02lsOD5hfBe/tmc42YZCnkOFl1nW/E=";
+    };
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Extended display identification data (EDID) parser";
+      license = lib.licenses.gpl3Plus;
+    };
+  };
+
+  ParseDebControl = buildPerlPackage {
+    pname = "Parse-DebControl";
+    version = "2.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JAYBONCI/Parse-DebControl-2.005.tar.gz";
+      hash = "sha256-tkvOH/IS1+PvnUNo57YnSc8ndR+oNgzfU+lpEjNGpyk=";
+    };
+    propagatedBuildInputs = [ IOStringy LWP ];
+    meta = {
+      description = "Easy OO parsing of debian control-like files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParseDistname = buildPerlPackage {
+    pname = "Parse-Distname";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-Distname-0.05.tar.gz";
+      hash = "sha256-pfqTvsLat22IPaEtTzRLc7+L6wzEtmwkN28+Dzh67wc=";
+    };
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestDifferences TestUseAllModules ];
+    meta = {
+      description = "Parse a distribution name";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParseIRC = buildPerlPackage {
+    pname = "Parse-IRC";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
+      hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU=";
+    };
+    meta = {
+      description = "A parser for the IRC protocol";
+      homepage = "https://github.com/bingos/parse-irc";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  ParseLocalDistribution = buildPerlPackage {
+    pname = "Parse-LocalDistribution";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz";
+      hash = "sha256-awvDLE6NnoHz8qzB0qdMKi+IepHBUisxzkyNSaQV6Z4=";
+    };
+    propagatedBuildInputs = [ ParsePMFile ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
+    meta = {
+      description = "Parses local .pm files as PAUSE does";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParsePlainConfig = buildPerlPackage {
+    pname = "Parse-PlainConfig";
+    version = "3.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORLISS/Parse-PlainConfig/Parse-PlainConfig-3.06.tar.gz";
+      hash = "sha256-8ffT5OWawrbPbJjaDKpBxdTl2GVcIQdRSBlplS/+G4c=";
+    };
+    propagatedBuildInputs = [ ClassEHierarchy Paranoid ];
+    meta = {
+      description = "Parser/Generator of human-readable conf files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  ParsePMFile = buildPerlPackage {
+    pname = "Parse-PMFile";
+    version = "0.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.44.tar.gz";
+      hash = "sha256-4I8PVkVbOsEtzNjHEWUGErfTzRUPim+K5rQ7LaR9+ZQ=";
+    };
+    buildInputs = [ ExtUtilsMakeMakerCPANfile ];
+    meta = {
+      description = "Parses .pm file as PAUSE does";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParseRecDescent = buildPerlModule {
+    pname = "Parse-RecDescent";
+    version = "1.967015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz";
+      hash = "sha256-GUMzaky1TxeIpzPwgnwMVdtDENXq4V5UJjnJ3YVlbjc=";
+    };
+    meta = {
+      description = "Generate Recursive-Descent Parsers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParseSyslog = buildPerlPackage {
+    pname = "Parse-Syslog";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Parse-Syslog-1.10.tar.gz";
+      hash = "sha256-ZZohRUQe822YNd7K+D2jCPzQP0kTjLPZCSjov8nxOdk=";
+    };
+    meta = {
+      description = "Parse Unix syslog files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParserMGC = buildPerlModule {
+    pname = "Parser-MGC";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Parser-MGC-0.21.tar.gz";
+      hash = "sha256-DmGIpydqn5B1fGIEc98W08mGGRO6viWvIJz0RhWgKk8=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ FeatureCompatTry ];
+    meta = {
+      description = "Build simple recursive-descent parsers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ParseYapp = buildPerlPackage {
+    pname = "Parse-Yapp";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz";
+      hash = "sha256-OBDpmDCPui4PTyYEMDUDKwJ85RzlyKUqi440DKZfE+U=";
+    };
+    meta = {
+      description = "Perl extension for generating and using LALR parsers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "yapp";
+    };
+  };
+
+  PathClass = buildPerlModule {
+    pname = "Path-Class";
+    version = "0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz";
+      hash = "sha256-ZUeBlIYCOG8ssuRHOnOfF9xpU9kqq8JJikyiVhvCSM4=";
+    };
+    meta = {
+      description = "Cross-platform path specification manipulation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PathDispatcher = buildPerlPackage {
+    pname = "Path-Dispatcher";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Path-Dispatcher-1.08.tar.gz";
+      hash = "sha256-ean2HCdAi0/R7SNNrCRpdN3q+n/mNaGP5B7HeDEwrio=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ Moo MooXTypeTiny TryTiny TypeTiny ];
+    meta = {
+      description = "Flexible and extensible dispatch";
+      homepage = "https://github.com/karenetheridge/Path-Dispatcher";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PathIteratorRule = buildPerlPackage {
+    pname = "Path-Iterator-Rule";
+    version = "1.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-1.015.tar.gz";
+      hash = "sha256-87Bixo4Hx29o3lvDOHfP6eB4tjUaYboWUOM+CfUeyyk=";
+    };
+    propagatedBuildInputs = [ NumberCompare TextGlob TryTiny ];
+    buildInputs = [ Filepushd PathTiny TestDeep TestFilename ];
+    meta = {
+      description = "Iterative, recursive file finder";
+      homepage = "https://github.com/dagolden/Path-Iterator-Rule";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  PathTiny = buildPerlPackage {
+    pname = "Path-Tiny";
+    version = "0.144";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.144.tar.gz";
+      hash = "sha256-9uoJTs6EXJUqAsJ4kzJXk1TejUEKcH+bcEW9JBIGSH0=";
+    };
+    preConfigure =
+      ''
+        substituteInPlace lib/Path/Tiny.pm --replace 'use File::Spec 3.40' \
+          'use File::Spec 3.39'
+      '';
+    # This appears to be currently failing tests, though I don't know why.
+    # -- ocharles
+    doCheck = false;
+    meta = {
+      description = "File path utility";
+      homepage = "https://github.com/dagolden/Path-Tiny";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  PathTools = buildPerlPackage {
+    pname = "PathTools";
+    version = "3.75";
+    preConfigure = ''
+      substituteInPlace Cwd.pm --replace '/usr/bin/pwd' '${pkgs.coreutils}/bin/pwd'
+    '';
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XS/XSAWYERX/PathTools-3.75.tar.gz";
+      hash = "sha256-pVhQOqax+McnwAczOQgad4iGBqpwGtoa1i3Z2MP5RaI=";
+    };
+    # cwd() and fastgetcwd() does not work with taint due to PATH in nixpkgs
+    preCheck = "rm t/taint.t";
+    meta = {
+      description = "Get pathname of current working directory";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PBKDF2Tiny = buildPerlPackage {
+    pname = "PBKDF2-Tiny";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/PBKDF2-Tiny-0.005.tar.gz";
+      hash = "sha256-tOIdxZswJl6qpBtwUIfsA0R9nGVaFKxA/0bk3inqv44=";
+    };
+    meta = {
+      description = "Minimalist PBKDF2 (RFC 2898) with HMAC-SHA1 or HMAC-SHA2";
+      homepage = "https://github.com/dagolden/PBKDF2-Tiny";
+      license = with lib.licenses; [ asl20 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  PDFAPI2 = buildPerlPackage {
+    pname = "PDF-API2";
+    version = "2.045";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.045.tar.gz";
+      hash = "sha256-tr204NDNZSYQP91YwXHgVgw2uEO3/jyk3cm7HkyDJAY=";
+    };
+    buildInputs = [ TestException TestMemoryCycle ];
+    propagatedBuildInputs = [ FontTTF ];
+    meta = {
+      description = "Create, modify, and examine PDF files";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  PDFBuilder = buildPerlPackage {
+    pname = "PDF-Builder";
+    version = "3.025";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.025.tar.gz";
+      hash = "sha256-qb6076DsKXWpFFzvBSEYsgmPRtnBUQ3WV4agPQ2j49U=";
+    };
+    nativeCheckInputs = [ TestException TestMemoryCycle ];
+    propagatedBuildInputs = [ FontTTF ];
+    meta = {
+      description = "Facilitates the creation and modification of PDF files";
+      homepage = "https://metacpan.org/pod/PDF::Builder";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  PDL = buildPerlPackage rec {
+    pname = "PDL";
+    version = "2.025";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/PDL-2.025.tar.gz";
+      hash = "sha256-G1oWfq0ndy2V2tJ/jrfQlRnSkVbu1TxvwUQVGUtaitY=";
+    };
+    patchPhase = ''
+      substituteInPlace perldl.conf \
+        --replace 'POSIX_THREADS_LIBS => undef' 'POSIX_THREADS_LIBS => "-L${pkgs.glibc.dev}/lib"' \
+        --replace 'POSIX_THREADS_INC  => undef' 'POSIX_THREADS_INC  => "-I${pkgs.glibc.dev}/include"' \
+        --replace 'WITH_MINUIT => undef' 'WITH_MINUIT => 0' \
+        --replace 'WITH_SLATEC => undef' 'WITH_SLATEC => 0' \
+        --replace 'WITH_HDF => undef' 'WITH_HDF => 0' \
+        --replace 'WITH_GD => undef' 'WITH_GD => 0' \
+        --replace 'WITH_PROJ => undef' 'WITH_PROJ => 0'
+    '';
+
+    nativeBuildInputs = with pkgs; [ autoPatchelfHook libGL.dev glibc.dev mesa_glu.dev ];
+
+    buildInputs = [ DevelChecklib TestDeep TestException TestWarn ] ++
+                  (with pkgs; [ gsl freeglut xorg.libXmu xorg.libXi ]);
+
+    propagatedBuildInputs = [
+      AstroFITSHeader
+      ConvertUU
+      ExtUtilsF77
+      FileMap
+      Inline
+      InlineC
+      ListMoreUtils
+      ModuleCompile
+      OpenGL
+      PodParser
+      TermReadKey
+    ];
+
+    meta = {
+      description = "Perl Data Language";
+      homepage = "https://pdl.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pdl2";
+      platforms = lib.platforms.linux;
+    };
+  };
+
+  Pegex = buildPerlPackage {
+    pname = "Pegex";
+    version = "0.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz";
+      hash = "sha256-TcjTNd6AslJHzbP5RvDRDZugs8NLDtfQAxb9Bo/QXtw=";
+    };
+    buildInputs = [ TestPod TieIxHash ];
+    propagatedBuildInputs = [ FileShareDirInstall XXX ];
+    meta = {
+      description = "Acmeist PEG Parser Framework";
+      homepage = "https://github.com/ingydotnet/pegex-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerconaToolkit = callPackage ../development/perl-modules/Percona-Toolkit { };
+
+  Perl5lib = buildPerlPackage {
+    pname = "perl5lib";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NO/NOBULL/perl5lib-1.02.tar.gz";
+      hash = "sha256-JLlpJYQBU8REJBOYs2/Il24IX9sNh5yRc0cJz5F+zqw=";
+    };
+    meta = {
+      description = "Honour PERL5LIB even in taint mode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Perlosnames = buildPerlPackage {
+    pname = "Perl-osnames";
+    version = "0.122";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz";
+      hash = "sha256-cHWTnXR+N1F40ANI0AxS/52yzrsYuudHPcsJ34JRGKA=";
+    };
+    meta = {
+      description = "List possible $^O ($OSNAME) values, with description";
+      homepage = "https://metacpan.org/release/Perl-osnames";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlCritic = buildPerlModule {
+    pname = "Perl-Critic";
+    version = "1.150";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.150.tar.gz";
+      hash = "sha256-5c2V3j5DvOcHdRdidLqkBfMm/IdA3wBUu4FpdcyNNJs=";
+    };
+    buildInputs = [ TestDeep ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ BKeywords ConfigTiny ExceptionClass FileWhich ListSomeUtils ModulePluggable PPI PPIxQuoteLike PPIxRegexp PPIxUtilities PPIxUtils PerlTidy PodSpell Readonly StringFormat ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/perlcritic
+    '';
+    meta = {
+      description = "Critique Perl source code for best-practices";
+      homepage = "http://perlcritic.com";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlcritic";
+    };
+  };
+
+  PerlCriticCommunity = buildPerlModule {
+    pname = "Perl-Critic-Community";
+    version = "1.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-Critic-Community-v1.0.3.tar.gz";
+      hash = "sha256-Ed3bt5F5/mIp8zPKOS+U/firXNmJzJfZk1IaidXEetU=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ PPI PathTiny PerlCritic PerlCriticPolicyVariablesProhibitLoopOnHash PerlCriticPulp ];
+    meta = {
+      description = "Community-inspired Perl::Critic policies";
+      homepage = "https://github.com/Grinnz/Perl-Critic-Community";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  PerlCriticMoose = buildPerlPackage rec {
+    pname = "Perl-Critic-Moose";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Perl-Critic-Moose-${version}.tar.gz";
+      hash = "sha256-UuuOIsQmQ/F/4peiFxQBfv254phsJOMzfgMPNlD5IgE=";
+    };
+    propagatedBuildInputs = [ PerlCritic Readonly namespaceautoclean ];
+    meta = {
+      description = "Policies for Perl::Critic concerned with using Moose";
+      homepage = "https://metacpan.org/release/Perl-Critic-Moose";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  PerlCriticPolicyVariablesProhibitLoopOnHash = buildPerlPackage {
+    pname = "Perl-Critic-Policy-Variables-ProhibitLoopOnHash";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XS/XSAWYERX/Perl-Critic-Policy-Variables-ProhibitLoopOnHash-0.008.tar.gz";
+      hash = "sha256-EvXwvpbqG9x4KAWFd70cXGPKI8F/rJw3CUUrPf9bhOA=";
+    };
+    propagatedBuildInputs = [ PerlCritic ];
+    meta = {
+      description = "Don't write loops on hashes, only on keys and values of hashes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlCriticPulp = buildPerlPackage {
+    pname = "Perl-Critic-Pulp";
+    version = "99";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/Perl-Critic-Pulp-99.tar.gz";
+      hash = "sha256-uP2oQvy+100hAlfAooS23HsdBVSkej3l2X59VC4j5/4=";
+    };
+    propagatedBuildInputs = [ IOString ListMoreUtils PPI PerlCritic PodMinimumVersion ];
+    meta = {
+      description = "Some add-on policies for Perl::Critic";
+      homepage = "https://user42.tuxfamily.org/perl-critic-pulp/index.html";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  PerlDestructLevel = buildPerlPackage {
+    pname = "Perl-Destruct-Level";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RG/RGARCIA/Perl-Destruct-Level-0.02.tar.gz";
+      hash = "sha256-QLSsCykrYM47h956o5vC+yWhnRDlyfaYZpYchLP20Ts=";
+    };
+    meta = {
+      description = "Allow to change perl's destruction level";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOLayers = buildPerlModule {
+    pname = "PerlIO-Layers";
+    version = "0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz";
+      hash = "sha256-VC2lQvo2uz/de4d24jDTzMAqpnRM6bd7Tu9MyufASt8=";
+    };
+    perlPreHook = "export LD=$CC";
+    meta = {
+      description = "Querying your filehandle's capabilities";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOeol = buildPerlPackage {
+    pname = "PerlIO-eol";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/PerlIO-eol-0.19.tar.gz";
+      hash = "sha256-/3O+xgRP2EepbEGZZPNw5Qn9Nv1XH3o7fDUXX1iviFk=";
+    };
+    meta = {
+      description = "PerlIO layer for normalizing line endings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOgzip = buildPerlPackage {
+    pname = "PerlIO-gzip";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.20.tar.gz";
+      hash = "sha256-SEhnmj8gHj87DF9vlSbmAq9Skj/6RxoqNlfbeGvTvcU=";
+    };
+    buildInputs = [ pkgs.zlib ];
+    NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
+    meta = {
+      description = "Perl extension to provide a PerlIO layer to gzip/gunzip";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOutf8_strict = buildPerlPackage {
+    pname = "PerlIO-utf8_strict";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz";
+      hash = "sha256-vNKEi3LfKQtemE+uixpsqW9tByADzyIjiajJ6OHFcM0=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Fast and correct UTF-8 IO";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOviadynamic = buildPerlPackage {
+    pname = "PerlIO-via-dynamic";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/PerlIO-via-dynamic-0.14.tar.gz";
+      hash = "sha256-is169NivIdKLnBWuE3/nbNBk2tfSbrqKMLl+vG4fa0k=";
+    };
+    meta = {
+      description = "Dynamic PerlIO layers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOviasymlink = buildPerlPackage {
+    pname = "PerlIO-via-symlink";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz";
+      hash = "sha256-QQfUw0pqNilFNEjCVpXZL4JSKv9k4ptxa1alr1hrLVI=";
+    };
+
+    buildInputs = [ ModuleInstall ];
+
+    postPatch = ''
+      # remove outdated inc::Module::Install included with module
+      # causes build failure for perl5.18+
+      rm -r  inc
+    '';
+    meta = {
+      description = "PerlIO layers for create symlinks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlIOviaTimeout = buildPerlModule {
+    pname = "PerlIO-via-Timeout";
+    version = "0.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAMS/PerlIO-via-Timeout-0.32.tar.gz";
+      hash = "sha256-knj572aIUNkT2Y+kwNfn1mfP81AzkfSk6uc6JG8ueRY=";
+    };
+    buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
+    meta = {
+      description = "A PerlIO layer that adds read & write timeout to a handle";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlLanguageServer = buildPerlPackage {
+    pname = "Perl-LanguageServer";
+    version = "2.6.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRICHTER/Perl-LanguageServer-2.6.1.tar.gz";
+      hash = "sha256-IDM0uwsEXMeHAu9DA0CdCB87aN3XRoNEdGOIJ8NMsZg=";
+    };
+    propagatedBuildInputs = [ AnyEvent AnyEventAIO ClassRefresh CompilerLexer Coro DataDump HashSafeKeys IOAIO JSON Moose PadWalker ];
+    meta = {
+      description = "Language Server and Debug Protocol Adapter for Perl";
+      license = lib.licenses.artistic2;
+    };
+  };
+
+  perlldap = buildPerlPackage {
+    pname = "perl-ldap";
+    version = "0.68";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARSCHAP/perl-ldap-0.68.tar.gz";
+      hash = "sha256-4vOJ/j56nkthSIaSkZrXI7mPO0ebUoj2ENqownmVs1E=";
+    };
+    # ldapi socket location should match the one compiled into the openldap package
+    postPatch = ''
+      for f in lib/Net/LDAPI.pm lib/Net/LDAP/Util.pm lib/Net/LDAP.pod lib/Net/LDAP.pm; do
+        sed -i 's:/var/run/ldapi:/run/openldap/ldapi:g' "$f"
+      done
+    '';
+    buildInputs = [ TextSoundex ];
+    propagatedBuildInputs = [ ConvertASN1 ];
+    meta = {
+      description = "LDAP client library";
+      homepage = "https://ldap.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  PerlMagick = ImageMagick; # added 2021-08-02
+  ImageMagick = buildPerlPackage rec {
+    pname = "Image-Magick";
+    version = "7.1.1-20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JC/JCRISTY/Image-Magick-${version}.tar.gz";
+      hash = "sha256-oMAwXQBxuV2FgPHBhUi+toNFPVnRLNjZqdP2q+ki6jg=";
+    };
+    buildInputs = [ pkgs.imagemagick ];
+    preConfigure =
+      ''
+        sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick.dev}/include/ImageMagick";|' Makefile.PL
+      '';
+    meta = {
+      description = "Objected-oriented Perl interface to ImageMagick. Use it to read, manipulate, or write an image or image sequence from within a Perl script";
+      license = with lib.licenses; [ imagemagick ];
+    };
+  };
+
+  PerlTidy = buildPerlPackage rec {
+    pname = "Perl-Tidy";
+    version = "20230912";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20230912.tar.gz";
+      hash = "sha256-DFeIjyBvmHd34WZA5yV0qgp3eEZxn44+0EE8NTJfVUA=";
+    };
+    meta = {
+      description = "Indent and reformat perl scripts";
+      license = with lib.licenses; [ gpl2Plus ];
+      mainProgram = "perltidy";
+    };
+  };
+
+  PHPSerialization = buildPerlPackage {
+    pname = "PHP-Serialization";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/PHP-Serialization-0.34.tar.gz";
+      hash = "sha256-uRLUJumuulSRpeUC58XAOcXapXVCism9yCr/857G8Ho=";
+    };
+    meta = {
+      description = "Simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PkgConfig = buildPerlPackage rec {
+    pname = "PkgConfig";
+    version = "0.25026";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/PkgConfig-0.25026.tar.gz";
+      hash = "sha256-Tbpe08LWpoG5XF6/FLammVzmmRrkcZutfxqvOOmHwqA=";
+    };
+    # support cross-compilation by simplifying the way we get version during build
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace \
+        'do { require "./lib/PkgConfig.pm"; $PkgConfig::VERSION; }' \
+        '"${version}"'
+    '';
+    meta = {
+      description = "Pure-Perl Core-Only replacement for pkg-config";
+      homepage = "https://metacpan.org/pod/PkgConfig";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+      mainProgram = "ppkg-config";
+    };
+  };
+
+  Plack = buildPerlPackage {
+    pname = "Plack";
+    version = "1.0050";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0050.tar.gz";
+      hash = "sha256-0mUa3oLrv/er4KOhifyTLa3Ed5GGzolGjlbQGJ6qbtQ=";
+    };
+    buildInputs = [ AuthenSimplePasswd CGIEmulatePSGI FileShareDirInstall HTTPRequestAsCGI HTTPServerSimplePSGI IOHandleUtil LWP LWPProtocolhttp10 LogDispatchArray MIMETypes TestMockTimeHiRes TestRequires TestSharedFork TestTCP ];
+    propagatedBuildInputs = [ ApacheLogFormatCompiler CookieBaker DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPEntityParser HTTPHeadersFast HTTPMessage TryTiny ];
+    patches = [
+      ../development/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch
+    ];
+    meta = {
+      description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)";
+      homepage = "https://github.com/plack/Plack";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "plackup";
+    };
+  };
+
+  PlackAppProxy = buildPerlPackage {
+    pname = "Plack-App-Proxy";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz";
+      hash = "sha256-BKqanbVKmpAn/nBLyjU/jl6fAr5AhytB0jX86c3ypg8=";
+    };
+    propagatedBuildInputs = [ AnyEventHTTP LWP Plack ];
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "Proxy requests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareAuthDigest = buildPerlModule {
+    pname = "Plack-Middleware-Auth-Digest";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz";
+      hash = "sha256-mr0/kpQ2zV7N+28/DX/foRuUB6OMfWAAYWpQ7eYQFes=";
+    };
+    propagatedBuildInputs = [ DigestHMAC Plack ];
+    buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ];
+    meta = {
+      description = "Digest authentication";
+      homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareConsoleLogger = buildPerlModule {
+    pname = "Plack-Middleware-ConsoleLogger";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz";
+      hash = "sha256-VWc6ylBN4sw0AWpF8yyPft2k7k0oArctZ4TSxBuH+9k=";
+    };
+    propagatedBuildInputs = [ JavaScriptValueEscape Plack ];
+    buildInputs = [ ModuleBuildTiny TestRequires ];
+    meta = {
+      description = "Write logs to Firebug or Webkit Inspector";
+      homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareDebug = buildPerlModule {
+    pname = "Plack-Middleware-Debug";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz";
+      hash = "sha256-GS73nlIckMbv9vQUmtLkv8kR0sld94k1hV6Q1lnprJo=";
+    };
+    buildInputs = [ ModuleBuildTiny TestRequires ];
+    propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ];
+    meta = {
+      description = "Display information about the current request/response";
+      homepage = "https://github.com/miyagawa/Plack-Middleware-Debug";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareDeflater = buildPerlPackage {
+    pname = "Plack-Middleware-Deflater";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz";
+      hash = "sha256-KNqV59pMi1WRrEVFCckhds0IQpYM4HT94w+aEHXcwnU=";
+    };
+    propagatedBuildInputs = [ Plack ];
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "Compress response body with Gzip or Deflate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareFixMissingBodyInRedirect = buildPerlPackage {
+    pname = "Plack-Middleware-FixMissingBodyInRedirect";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz";
+      hash = "sha256-bCLQafWlesIG1GWbKLiGm7knBkC7lV793UUdzFjNs5E=";
+    };
+    propagatedBuildInputs = [ HTMLParser Plack ];
+    meta = {
+      description = "Plack::Middleware which sets body for redirect response, if it's not already set";
+      homepage = "https://github.com/Sweet-kid/Plack-Middleware-FixMissingBodyInRedirect";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareHeader = buildPerlPackage {
+    pname = "Plack-Middleware-Header";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz";
+      hash = "sha256-Xra5/3Ly09VpUOI+K8AnFQqcXnVg1zo0GhZeGu3qXV4=";
+    };
+    propagatedBuildInputs = [ Plack ];
+    meta = {
+      description = "Modify HTTP response headers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareMethodOverride = buildPerlPackage {
+    pname = "Plack-Middleware-MethodOverride";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz";
+      hash = "sha256-2/taLvtIv+sByzrh4cZ34VXce/4hDH5/IhuuPLaqtfE=";
+    };
+    propagatedBuildInputs = [ Plack ];
+    meta = {
+      description = "Override REST methods to Plack apps via POST";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareRemoveRedundantBody = buildPerlPackage {
+    pname = "Plack-Middleware-RemoveRedundantBody";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz";
+      hash = "sha256-gNRfk9a3KQsL2LPO3YSjf8UBRWzD3sAux6rYHAAYCH4=";
+    };
+    propagatedBuildInputs = [ Plack ];
+    meta = {
+      description = "Plack::Middleware which removes body for HTTP response if it's not required";
+      homepage = "https://github.com/upasana-me/Plack-Middleware-RemoveRedundantBody";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareReverseProxy = buildPerlPackage {
+    pname = "Plack-Middleware-ReverseProxy";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz";
+      hash = "sha256-h0kx030HZnug0PN5A7lFEQcfQZH+tz+kV2XaK4wVoSg=";
+    };
+    propagatedBuildInputs = [ Plack ];
+    meta = {
+      description = "Supports app to run as a reverse proxy backend";
+      homepage = "https://github.com/lopnor/Plack-Middleware-ReverseProxy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackMiddlewareSession = buildPerlModule {
+    pname = "Plack-Middleware-Session";
+    version = "0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
+      hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4=";
+    };
+    propagatedBuildInputs = [ DigestHMAC Plack ];
+    buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "Middleware for session management";
+      homepage = "https://github.com/plack/Plack-Middleware-Session";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PlackTestExternalServer = buildPerlPackage {
+    pname = "Plack-Test-ExternalServer";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz";
+      hash = "sha256-W69cV/4MBkEt7snFq+eVKrigT4xHtLvY6emYImiQPtA=";
+    };
+    buildInputs = [ Plack TestSharedFork TestTCP ];
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Run HTTP tests on external live servers";
+      homepage = "https://github.com/perl-catalyst/Plack-Test-ExternalServer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PLS = buildPerlPackage {
+    pname = "PLS";
+    version = "0.905";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.905.tar.gz";
+      hash = "sha256-RVW1J5nBZBXDy/5eMB6gLKDrvDQhTH/lLx19ykUwLik=";
+    };
+    propagatedBuildInputs = [ Future FutureQueue IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/pls
+    '';
+    meta = {
+      description = "Perl Language Server";
+      homepage = "https://github.com/FractalBoy/perl-language-server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.artturin ];
+      mainProgram = "pls";
+    };
+  };
+
+  Po4a = callPackage ../development/perl-modules/Po4a { };
+
+  PodMinimumVersion = buildPerlPackage {
+    pname = "Pod-MinimumVersion";
+    version = "50";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/Pod-MinimumVersion-50.tar.gz";
+      hash = "sha256-C9KBLZqsvZm7cfoQOkuxKelVwTi6dZhzQgfcn7Z7Wm8=";
+    };
+    propagatedBuildInputs = [ IOString PodParser ];
+    meta = {
+      description = "Determine minimum Perl version of POD directives";
+      homepage = "https://user42.tuxfamily.org/pod-minimumversion/index.html";
+      license = with lib.licenses; [ gpl3Plus ];
+      mainProgram = "pod-minimumversion";
+    };
+  };
+
+  POE = buildPerlPackage {
+    pname = "POE";
+    version = "1.370";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/POE-1.370.tar.gz";
+      hash = "sha256-V94rY1sV+joxqeVd1REiFJ5UFOEVjugiNQYmNO4YppM=";
+    };
+    # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
+    # this module don't disable themselves when "run_network_tests" is
+    # not present (see below).
+    propagatedBuildInputs = [ pkgs.cacert IOPipely IOTty POETestLoops ];
+    preCheck = ''
+      set -x
+
+      : Makefile.PL touches the following file as a "marker" to indicate
+      : it should perform tests which use the network. Delete this file
+      : for sandbox builds.
+      rm -f run_network_tests
+
+      : Certs are required if not running in a sandbox.
+      export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt
+
+      : The following flag enables extra tests not normally performed.
+      export RELEASE_TESTING=1
+
+      set +x
+    '';
+    meta = {
+      description = "Portable, event-loop agnostic eventy networking and multitasking";
+      homepage = "http://poe.perl.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+    };
+  };
+
+  POETestLoops = buildPerlPackage {
+    pname = "POE-Test-Loops";
+    version = "1.360";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-Test-Loops-1.360.tar.gz";
+      hash = "sha256-vtDJb+kcmP035utZqASqrJzEqekoRQt21L9VJ6nmpHs=";
+    };
+    meta = {
+      description = "Reusable tests for POE::Loop authors";
+      homepage = "https://search.cpan.org/dist/POE-Test-Loops";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = teams.deshaw.members;
+      mainProgram = "poe-gen-tests";
+    };
+  };
+
+  PPI = buildPerlPackage {
+    pname = "PPI";
+    version = "1.277";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MITHALDU/PPI-1.277.tar.gz";
+      hash = "sha256-h8efg7aHbiBgUZZdUBnSUHxVH4GahnUAgOx+xDsuCvg=";
+    };
+    buildInputs = [ ClassInspector TestDeep TestNoWarnings TestObject TestSubCalls ];
+    propagatedBuildInputs = [ Clone IOString ParamsUtil TaskWeaken ];
+
+    # Remove test that fails due to unexpected shebang after
+    # patchShebang.
+    preCheck = "rm t/03_document.t";
+
+    meta = {
+      description = "Parse, Analyze and Manipulate Perl (without perl)";
+      homepage = "https://github.com/Perl-Critic/PPI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PPIxQuoteLike = buildPerlModule {
+    pname = "PPIx-QuoteLike";
+    version = "0.023";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.023.tar.gz";
+      hash = "sha256-NXajFJ0sU+B+lze3iSvlz7hKSZpu8d8JC3E7BUQjTSE=";
+    };
+    propagatedBuildInputs = [ PPI Readonly ];
+    meta = {
+      description = "Parse Perl string literals and string-literal-like things";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PPIxRegexp = buildPerlModule {
+    pname = "PPIx-Regexp";
+    version = "0.088";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.088.tar.gz";
+      hash = "sha256-iFQz+bEC+tT9NrIccyC7A2A2ERyvmYExv0FvfNXul2Q=";
+    };
+    propagatedBuildInputs = [ PPI ];
+    meta = {
+      description = "Parse regular expressions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PPIxUtilities = buildPerlModule {
+    pname = "PPIx-Utilities";
+    version = "1.001000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz";
+      hash = "sha256-A6SDOG/WosgI8Jd41E2wawLDFA+yS6S/EvhR9G07y5s=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ ExceptionClass PPI Readonly ];
+    meta = {
+      description = "Extensions to PPI|PPI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PPIxUtils = buildPerlPackage {
+    pname = "PPIx-Utils";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/PPIx-Utils-0.003.tar.gz";
+      hash = "sha256-KpvM/I6tA74BtnJI/o4VJSIED3mChvpO9EMrfy79uhE=";
+    };
+    propagatedBuildInputs = [ BKeywords PPI ];
+    meta = {
+      homepage = "https://github.com/Grinnz/PPIx-Utils";
+      description = "Utility functions for PPI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PPR = buildPerlPackage {
+    pname = "PPR";
+    version = "0.001008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.001008.tar.gz";
+      hash = "sha256-EQ5xwF8uLJDrAfCgaU5VqdvpHIV+SBJeF0LRflzbHkk=";
+    };
+    meta = {
+      description = "Pattern-based Perl Recognizer";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.artturin ];
+    };
+  };
+
+  ProcBackground = buildPerlPackage {
+    pname = "Proc-Background";
+    version = "1.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NERDVANA/Proc-Background-1.32.tar.gz";
+      hash = "sha256-Wxp4DduSnKQnJeuQtRgyFCX/d4tKE3+G+sldn7nNKWc=";
+    };
+    meta = {
+      description = "Run asynchronous child processes under Unix or Windows";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "timed-process";
+    };
+  };
+
+  ProcProcessTable = buildPerlPackage {
+    pname = "Proc-ProcessTable";
+    version = "0.636";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JW/JWB/Proc-ProcessTable-0.636.tar.gz";
+      hash = "sha256-lEIk/7APwe81BpYzdwoK/ahiO1x1MtHkq0ip3zlIkP0=";
+    };
+    meta = {
+      description = "Perl extension to access the unix process table";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ProcDaemon = buildPerlPackage {
+    pname = "Proc-Daemon";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AK/AKREAL/Proc-Daemon-0.23.tar.gz";
+      hash = "sha256-NMC4W3lItDHLq8l87lgINeUVzPQ7rb2DOesQlHQIm2k=";
+    };
+    buildInputs = [ ProcProcessTable ];
+    meta = {
+      description = "Run Perl program(s) as a daemon process";
+      homepage = "https://github.com/akreal/Proc-Daemon";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProcPIDFile = buildPerlPackage {
+    pname = "Proc-PID-File";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DM/DMITRI/Proc-PID-File-1.29.tar.gz";
+      hash = "sha256-O87aSd8YLT2BaLcMKlGyBW8v1FlQptBCipmS/TVc1KQ=";
+    };
+    meta = {
+      description = "Manage process id files";
+      homepage = "https://github.com/dtikhonov/Proc-PID-File";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProcFind = buildPerlPackage {
+    pname = "Proc-Find";
+    version = "0.051";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Proc-Find-0.051.tar.gz";
+      hash = "sha256-ZNOQceyU17ZqfKtalQJG8P/wE7WiAKY9EXZDKYfloTU=";
+    };
+    propagatedBuildInputs = [ ProcProcessTable ];
+    meta = {
+      description = "Find processes by name, PID, or some other attributes";
+      homepage = "https://metacpan.org/release/Proc-Find";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProcSafeExec = buildPerlPackage {
+    pname = "Proc-SafeExec";
+    version = "1.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BILBO/Proc-SafeExec-1.5.tar.gz";
+      hash = "sha256-G00JCLysVj00p+W+YcXaPu6Y5KbH+mjCZwzFhEtaLXg=";
+    };
+    meta = {
+      description = "Convenient utility for executing external commands in various ways";
+      license = with lib.licenses; [ gpl1Only bsd2 ];
+    };
+  };
+
+  ProcSimple = buildPerlPackage {
+    pname = "Proc-Simple";
+    version = "1.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHILLI/Proc-Simple-1.32.tar.gz";
+      hash = "sha256-TI8KkksZrXihPac/4PswbTKnudEKMyxSMIf8g6IJqMQ=";
+    };
+    meta = {
+      description = "Launch and control background processes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProcWait3 = buildPerlPackage {
+    pname = "Proc-Wait3";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CT/CTILMES/Proc-Wait3-0.05.tar.gz";
+      hash = "sha256-GpB/XbaTPcKTm7/v/hnurn7TnvG5eivJtyPy8l+ByvM=";
+    };
+    meta = {
+      description = "Perl extension for wait3 system call";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProcWaitStat = buildPerlPackage {
+    pname = "Proc-WaitStat";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROSCH/Proc-WaitStat-1.00.tar.gz";
+      hash = "sha256-0HVj9eeHkJ0W5zkCQeh39Jq3ObHenQ4uoaQb0L9EdLw=";
+    };
+    propagatedBuildInputs = [ IPCSignal ];
+    meta = {
+      description = "Interpret and act on wait() status values";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PrometheusTiny = buildPerlPackage {
+    pname = "Prometheus-Tiny";
+    version = "0.011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-0.011.tar.gz";
+      hash = "sha256-jbFIDzyJ64bUFM9fR/7tjfMRKzjEY8uPZbTAZOILHhM=";
+    };
+    buildInputs = [ HTTPMessage Plack TestException TestWarn ];
+    meta = {
+      description = "A tiny Prometheus client";
+      homepage = "https://github.com/robn/Prometheus-Tiny";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PrometheusTinyShared = buildPerlPackage {
+    pname = "Prometheus-Tiny-Shared";
+    version = "0.027";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-Shared-0.027.tar.gz";
+      hash = "sha256-egULqhjKfA0gsoih1L0nJ3E6lFg/Qmskn5XcjUDty9E=";
+    };
+    buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ];
+    propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ];
+    meta = {
+      description = "A tiny Prometheus client with a shared database behind it";
+      homepage = "https://github.com/robn/Prometheus-Tiny-Shared";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProtocolRedis = buildPerlPackage {
+    pname = "Protocol-Redis";
+    version = "1.0011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/U/UN/UNDEF/Protocol-Redis-1.0011.tar.gz";
+      hash = "sha256-fOtr2ABnyQRGXU/R8XFXJDiMm9w3xsLAA6IM5Wm39Og=";
+    };
+    meta = {
+      description = "Redis protocol parser/encoder with asynchronous capabilities";
+      homepage = "https://github.com/und3f/protocol-redis";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ProtocolRedisFaster = buildPerlPackage {
+    pname = "Protocol-Redis-Faster";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Protocol-Redis-Faster-0.003.tar.gz";
+      hash = "sha256-a5r7PelOwczX20+eai6rolSld5AwHBe8sTuz7f4YULc=";
+    };
+    propagatedBuildInputs = [ ProtocolRedis ];
+    meta = {
+      description = "Optimized pure-perl Redis protocol parser/encoder";
+      homepage = "https://github.com/Grinnz/Protocol-Redis-Faster";
+      license = with lib.licenses; [ artistic2 ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  ProtocolWebSocket = buildPerlModule {
+    pname = "Protocol-WebSocket";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VT/VTI/Protocol-WebSocket-0.26.tar.gz";
+      hash = "sha256-WDfQNxGnoyVPCv7LfkCeiwk3YGDDiluClejumvdXVSI=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "WebSocket protocol";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ProtocolHTTP2 = buildPerlModule {
+    pname = "Protocol-HTTP2";
+    version = "1.10";
+
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.10.tar.gz";
+      hash = "sha256-wmoAWPtK+ul+S/DbxkGJ9nEURRXERH89y1l+zQOWpko=";
+    };
+    buildInputs = [ AnyEvent ModuleBuildTiny NetSSLeay TestLeakTrace TestSharedFork TestTCP ];
+    meta = {
+      description = "HTTP/2 protocol implementation (RFC 7540)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PSGI = buildPerlPackage {
+    pname = "PSGI";
+    version = "1.102";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/PSGI-1.102.tar.gz";
+      hash = "sha256-pWxEZ0CRfahpJcKfxmM7nfg5shz5j2onCGWY7ZDuH0c=";
+    };
+    meta = {
+      description = "Perl Web Server Gateway Interface Specification";
+      license = with lib.licenses; [ cc-by-sa-25 ];
+    };
+  };
+
+  PadWalker = buildPerlPackage {
+    pname = "PadWalker";
+    version = "2.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-2.5.tar.gz";
+      hash = "sha256-B7Jqu4QRRq8yByqNaMuQF2/7F2/ZJo5vL30Qb4F6DNA=";
+    };
+    meta = {
+      description = "Play with other peoples' lexical variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Perl6Junction = buildPerlPackage {
+    pname = "Perl6-Junction";
+    version = "1.60000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFRANKS/Perl6-Junction-1.60000.tar.gz";
+      hash = "sha256-0CN16FGX6PkbTLLTM0rpqJ9gAi949c1gdtzU7G+ycWQ=";
+    };
+    meta = {
+      description = "Perl6 style Junction operators in Perl5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PerlMinimumVersion = buildPerlPackage {
+    pname = "Perl-MinimumVersion";
+    version = "1.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-MinimumVersion-1.40.tar.gz";
+      hash = "sha256-dYmleMtg1wykdVw5WzWStECgzWobB05OzqyTsDGhvpA=";
+    };
+    buildInputs = [ TestScript ];
+    propagatedBuildInputs = [ FileFindRulePerl PerlCritic ];
+    meta = {
+      description = "Find a minimum required version of perl for Perl code";
+      homepage = "https://github.com/neilbowers/Perl-MinimumVersion";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlver";
+    };
+  };
+
+  PerlPrereqScanner = buildPerlPackage {
+    pname = "Perl-PrereqScanner";
+    version = "1.100";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.100.tar.gz";
+      hash = "sha256-ARgdOKLnr/g40mISJWPFBja6SzZS7l0dT471uj9bGGs=";
+    };
+    buildInputs = [ TryTiny ];
+    propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ];
+    meta = {
+      description = "A tool to scan your Perl code for its prerequisites";
+      homepage = "https://github.com/rjbs/Perl-PrereqScanner";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scan-perl-prereqs";
+    };
+  };
+
+  PerlPrereqScannerNotQuiteLite = buildPerlPackage {
+    pname = "Perl-PrereqScanner-NotQuiteLite";
+    version = "0.9917";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9917.tar.gz";
+      hash = "sha256-O6fuF9lfDJqNkqLkwYVLZKcH0cAihGIm3Q36Qvfeud0=";
+    };
+    propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ];
+    meta = {
+      description = "A tool to scan your Perl code for its prerequisites";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scan-perl-prereqs-nqlite";
+    };
+  };
+
+  PerlVersion = buildPerlPackage {
+    pname = "Perl-Version";
+    version = "1.013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Perl-Version-1.013.tar.gz";
+      hash = "sha256-GIdBTRyGidhkyEARQQHgQ+mdfdW5zKaTaaYOgh460Pc=";
+    };
+    propagatedBuildInputs = [ FileSlurpTiny ];
+    meta = {
+      description = "Parse and manipulate Perl version strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perl-reversion";
+    };
+  };
+
+  PodAbstract = buildPerlPackage {
+    pname = "Pod-Abstract";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BL/BLILBURNE/Pod-Abstract-0.20.tar.gz";
+      hash = "sha256-lW73u4hMVUVuL7bn8in5qH3VCmHXAFAMc4248ronf4c=";
+    };
+    propagatedBuildInputs = [ IOString TaskWeaken PodParser ];
+    meta = {
+      description = "An abstract, tree-based interface to perl POD documents";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "paf";
+    };
+  };
+
+  PodChecker = buildPerlPackage {
+    pname = "Pod-Checker";
+    version = "1.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Checker-1.75.tar.gz";
+      hash = "sha256-82O1dOxmCvbtvT5dTJ/8UVodRsvxx8ytmkbO0oh5wiE=";
+    };
+    meta = {
+      description = "Verifies POD documentation contents for compliance with the POD format specifications";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podchecker";
+    };
+  };
+
+  PodCoverage = buildPerlPackage {
+    pname = "Pod-Coverage";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz";
+      hash = "sha256-MLegsMlC9Ep1UsDTTpsfLgugtnlVxh47FYnsNpB0sQc=";
+    };
+    propagatedBuildInputs = [ DevelSymdump PodParser ];
+    meta = {
+      description = "Checks if the documentation of a module is comprehensive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod_cover";
+    };
+  };
+
+  PodCoverageTrustPod = buildPerlPackage {
+    pname = "Pod-Coverage-TrustPod";
+    version = "0.100006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Coverage-TrustPod-0.100006.tar.gz";
+      hash = "sha256-NYrcJQTwOetpCYqpm93mrp3JNTZKjhRPZAXoKTs6fKM=";
+    };
+    propagatedBuildInputs = [ PodCoverage PodEventual ];
+    meta = {
+      description = "Allow a module's pod to contain Pod::Coverage hints";
+      homepage = "https://github.com/rjbs/Pod-Coverage-TrustPod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodElemental = buildPerlPackage {
+    pname = "Pod-Elemental";
+    version = "0.103006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103006.tar.gz";
+      hash = "sha256-dQw6edjhgkdYpu99LdB33N3KUDVCuMNOzNWsu3edxCM=";
+    };
+    buildInputs = [ TestDeep TestDifferences ];
+    propagatedBuildInputs = [ MooseXTypes PodEventual StringRewritePrefix StringTruncate ];
+    meta = {
+      description = "Work with nestable Pod elements";
+      homepage = "https://github.com/rjbs/Pod-Elemental";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodElementalPerlMunger = buildPerlPackage {
+    pname = "Pod-Elemental-PerlMunger";
+    version = "0.200007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-PerlMunger-0.200007.tar.gz";
+      hash = "sha256-UYleTEGgeere+fJPXcSOMkWlwG40BO15yF+lzv63lak=";
+    };
+    buildInputs = [ TestDifferences ];
+    propagatedBuildInputs = [ PPI PodElemental ];
+    meta = {
+      description = "A thing that takes a string of Perl and rewrites its documentation";
+      homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodEventual = buildPerlPackage {
+    pname = "Pod-Eventual";
+    version = "0.094003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Eventual-0.094003.tar.gz";
+      hash = "sha256-fwYMw00RZWzgadsGHj1g7cDKvI+JpKLcfqrpXayFbS0=";
+    };
+    propagatedBuildInputs = [ MixinLinewise ];
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Read a POD document as a series of trivial events";
+      homepage = "https://github.com/rjbs/Pod-Eventual";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodParser = buildPerlPackage {
+    pname = "Pod-Parser";
+    version = "1.66";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Parser-1.66.tar.gz";
+      hash = "sha256-IpKKe//mG0UsBbu7j1IW1LnPn+KoSbd2wlUA0k0g33w=";
+    };
+    meta = {
+      description = "Modules for parsing/translating POD format documents";
+      license = with lib.licenses; [ artistic1 ];
+      mainProgram = "podselect";
+    };
+  };
+
+  PodPOM = buildPerlPackage {
+    pname = "Pod-POM";
+    version = "2.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Pod-POM-2.01.tar.gz";
+      hash = "sha256-G1D7qbvd4+rRkr7roOrd0MYU46+xdD+m//gF9XxW9/Q=";
+    };
+    buildInputs = [ FileSlurper TestDifferences TextDiff ];
+    meta = {
+      description = "POD Object Model";
+      homepage = "https://github.com/neilb/Pod-POM";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pom2";
+    };
+  };
+
+  PodPOMViewTOC = buildPerlPackage {
+    pname = "Pod-POM-View-TOC";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERLER/Pod-POM-View-TOC-0.02.tar.gz";
+      hash = "sha256-zLQicsdQM3nLETE5RiDuUCdtcoRODoDrSwB6nVj4diM=";
+    };
+    propagatedBuildInputs = [ PodPOM ];
+    meta = {
+      description = "Generate the TOC of a POD with Pod::POM";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodSection = buildPerlModule {
+    pname = "Pod-Section";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KT/KTAT/Pod-Section-0.02.tar.gz";
+      hash = "sha256-ydHXUpLzIYgRhOxWmDwW9Aj9LTEtWnIPj7DSyvpykjg=";
+    };
+    propagatedBuildInputs = [ PodAbstract ];
+    meta = {
+      description = "Select specified section from Module's POD";
+      homepage = "https://github.com/ktat/Pod-Section";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podsection";
+    };
+  };
+
+  PodLaTeX = buildPerlModule {
+    pname = "Pod-LaTeX";
+    version = "0.61";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz";
+      hash = "sha256-FahA6hyKds08hl+78v7DOwNhXA2qUPnIAMVODPBlnUY=";
+    };
+    propagatedBuildInputs = [ PodParser ];
+    meta = {
+      description = "Convert Pod data to formatted Latex";
+      homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod2latex";
+    };
+  };
+
+  podlators = buildPerlPackage {
+    pname = "podlators";
+    version = "5.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RR/RRA/podlators-5.01.tar.gz";
+      hash = "sha256-zP0d+fGkfwlbzm1xj61a9A94ziSR8scjlibhW3AgvHE=";
+    };
+    preCheck = ''
+      # remove failing spdx check
+      rm t/docs/spdx-license.t
+    '';
+    meta = {
+      description = "Convert POD data to various other formats";
+      homepage = "https://www.eyrie.org/~eagle/software/podlators";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  podlinkcheck = buildPerlPackage {
+    pname = "podlinkcheck";
+    version = "15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/podlinkcheck-15.tar.gz";
+      hash = "sha256-Tjvr7Bv4Lb+FCpSuJqJTZEz1gG7EGvx05D4XEKNzIds=";
+    };
+    propagatedBuildInputs = [ FileFindIterator FileHomeDir IPCRun PodParser constant-defer libintl-perl ];
+    meta = {
+      description = "Check POD L<> link references";
+      homepage = "https://user42.tuxfamily.org/podlinkcheck/index.html";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  prefork = buildPerlPackage {
+    pname = "prefork";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/prefork-1.05.tar.gz";
+      hash = "sha256-bYe836Y7KM78+ocIA6UZtlkOPqGcMA+YzssOGQuxkwU=";
+    };
+    meta = {
+      description = "Optimized module loading for forking or non-forking processes";
+      homepage = "https://github.com/karenetheridge/prefork";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodPerldoc = buildPerlPackage {
+    pname = "Pod-Perldoc";
+    version = "3.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MALLEN/Pod-Perldoc-3.28.tar.gz";
+      hash = "sha256-zEHmBbjhPECo7mUE/0Y0e1un+9kiA7O7BVQiBRvvxk0=";
+    };
+    meta = {
+      description = "Look up Perl documentation in Pod format";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perldoc";
+    };
+  };
+
+  PodPlainer = buildPerlPackage {
+    pname = "Pod-Plainer";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz";
+      hash = "sha256-G7+/fR1IceWoO6shN+ItCJB4IGgVGQ6x1cEmCjSZRW8=";
+    };
+    propagatedBuildInputs = [ PodParser ];
+    meta = {
+      description = "Perl extension for converting Pod to old-style Pod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodMarkdown = buildPerlPackage {
+    pname = "Pod-Markdown";
+    version = "3.300";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-3.300.tar.gz";
+      hash = "sha256-7HnpkIo2BXScT+tQVHY+toEt0ztUzoWlEzmqfPmZG3k=";
+    };
+    buildInputs = [ TestDifferences ];
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Convert POD to Markdown";
+      homepage = "https://github.com/rwstauner/Pod-Markdown";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod2markdown";
+    };
+  };
+
+  PodMarkdownGithub = buildPerlPackage {
+    pname = "Pod-Markdown-Github";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz";
+      hash = "sha256-s34vAJxMzkkk+yPuQxRuUGcilxvqa87S2sFdCAo7xhM=";
+    };
+    propagatedBuildInputs = [ PodMarkdown ];
+    buildInputs = [ TestDifferences ];
+    meta = {
+      description = "Convert POD to Github's specific markdown";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod2github";
+    };
+  };
+
+  PodSimple = buildPerlPackage {
+    pname = "Pod-Simple";
+    version = "3.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KH/KHW/Pod-Simple-3.45.tar.gz";
+      hash = "sha256-hIO7lc0+QwfWbe8JKjd5+EOvdySCv9wCTj4A0MTbDPo=";
+    };
+    meta = {
+      description = "Framework for parsing Pod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodSpell = buildPerlPackage {
+    pname = "Pod-Spell";
+    version = "1.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Pod-Spell-1.26.tar.gz";
+      hash = "sha256-LwW/yc+wS5b8v6LIVE0eaukIWW02lsRuDiZVa3UK+78=";
+    };
+    propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
+    buildInputs = [ FileShareDirInstall TestDeep ];
+    meta = {
+      description = "A formatter for spellchecking Pod";
+      homepage = "https://github.com/perl-pod/Pod-Spell";
+      license = with lib.licenses; [ artistic2 ];
+      mainProgram = "podspell";
+    };
+  };
+
+  PodStrip = buildPerlModule {
+    pname = "Pod-Strip";
+    version = "1.100";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.100.tar.gz";
+      hash = "sha256-Z1BqZh+pyuzv57pPQvC8FbCm8JZ8eWB3QPbLaXSu1M0=";
+    };
+    meta = {
+      description = "Remove POD from Perl code";
+      homepage = "https://github.com/domm/Pod-Strip";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodTidy = buildPerlModule {
+    pname = "Pod-Tidy";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz";
+      hash = "sha256-iG7hQ+p81Tm0O+16KHmJ0Wc211y/ofheLMzq+eiVnb0=";
+    };
+    propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
+    buildInputs = [ TestCmd ];
+    meta = {
+      description = "A reformatting Pod Processor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podtidy";
+    };
+  };
+
+  PodWeaver = buildPerlPackage {
+    pname = "Pod-Weaver";
+    version = "4.019";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Weaver-4.019.tar.gz";
+      hash = "sha256-aUatHwTq+aoR8kzFRJTh1Xli9Y4FkS82S3T5WT595/c=";
+    };
+    buildInputs = [ PPI SoftwareLicense TestDifferences ];
+    propagatedBuildInputs = [ ConfigMVPReaderINI DateTime ListMoreUtils LogDispatchouli PodElemental ];
+    meta = {
+      description = "Weave together a Pod document from an outline";
+      homepage = "https://github.com/rjbs/Pod-Weaver";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  PodWrap = buildPerlModule {
+    pname = "Pod-Wrap";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
+      hash = "sha256-UMrL4v/7tccNG6XpQn1cit7mGENuxz+W7QU5Iy4si2M=";
+    };
+    propagatedBuildInputs = [ PodParser ];
+    meta = {
+      description = "Wrap pod paragraphs, leaving verbatim text and code alone";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podwrap";
+    };
+  };
+
+  ProbePerl = buildPerlPackage {
+    pname = "Probe-Perl";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz";
+      hash = "sha256-2eTSHi53Y4VZBF+gkEaxtv/2xAO5SZKdshPjCr6KPDE=";
+    };
+    meta = {
+      description = "Information about the currently running perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  POSIXAtFork = buildPerlPackage {
+    pname = "POSIX-AtFork";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors//id/N/NI/NIKOLAS/POSIX-AtFork-0.04.tar.gz";
+      hash = "sha256-wuIpOobUhxRLyPe6COfEt2sRsOTf3EGAmEXTDvoH5g4=";
+    };
+    buildInputs = [ TestSharedFork ];
+    meta = {
+      description = "Hook registrations at fork(2)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  POSIXstrftimeCompiler = buildPerlModule {
+    pname = "POSIX-strftime-Compiler";
+    version = "0.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.44.tar.gz";
+      hash = "sha256-39PJc5jc/lHII2uF49woA1Znt2Ux96oKZTXzqlQFs1o=";
+    };
+    # We cannot change timezones on the fly.
+    prePatch = "rm t/04_tzset.t";
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "GNU C library compatible strftime for loggers and servers";
+      homepage = "https://github.com/kazeburo/POSIX-strftime-Compiler";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Apprainbarf = buildPerlModule {
+    pname = "App-rainbarf";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz";
+      hash = "sha256-TxOa01+q8t4GI9wLsd2J+lpDHlSL/sh97hlM8OJcyX0=";
+    };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/rainbarf
+    '';
+    meta = {
+      description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
+      homepage = "https://github.com/creaktive/rainbarf";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "rainbarf";
+    };
+  };
+
+  Razor2ClientAgent = buildPerlPackage {
+    pname = "Razor2-Client-Agent";
+    version = "2.86";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Razor2-Client-Agent-2.86.tar.gz";
+      hash = "sha256-XgYuAuu2XiS3COfu+lMAxD1vZXvyDQj+xMqKCjuUhF8=";
+    };
+    propagatedBuildInputs = [ DigestSHA1 URI ];
+    meta = {
+      description = "Collaborative, content-based spam filtering network agent";
+      homepage = "https://razor.sourceforge.net/";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+
+  Readonly = buildPerlModule {
+    pname = "Readonly";
+    version = "2.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SANKO/Readonly-2.05.tar.gz";
+      hash = "sha256-SyNUJJGvAQ1EpcfIYSRHOKzHSrq65riDjTVN+xlGK14=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Facility for creating read-only scalars, arrays, hashes";
+      homepage = "https://github.com/sanko/readonly";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ReadonlyX = buildPerlModule {
+    pname = "ReadonlyX";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SANKO/ReadonlyX-1.04.tar.gz";
+      hash = "sha256-gbuX26k6xrXMvOBKQsNZDrBFV9dQGHc+4Y1aMPz0gYg=";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    meta = {
+      description = "Faster facility for creating read-only scalars, arrays, hashes";
+      homepage = "https://github.com/sanko/readonly";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  ReadonlyXS = buildPerlPackage {
+    pname = "Readonly-XS";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz";
+      hash = "sha256-iuXE6FKZ5ci93RsZby7qOPAHCeDcDLYEVNyRFK4//w0=";
+    };
+    propagatedBuildInputs = [ Readonly ];
+    meta = {
+      description = "Companion module for Readonly.pm, to speed up read-only scalar variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Redis = buildPerlModule {
+    pname = "Redis";
+    version = "2.000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-2.000.tar.gz";
+      hash = "sha256-FMuJl5chJhW06T+Rbcva+0jQHF6qsgOP5ssXm/lcb+s=";
+    };
+    buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ];
+    propagatedBuildInputs = [ IOSocketTimeout TryTiny ];
+    meta = {
+      description = "Perl binding for Redis database";
+      homepage = "https://github.com/PerlRedis/perl-redis";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  RefUtil = buildPerlPackage {
+    pname = "Ref-Util";
+    version = "0.204";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARC/Ref-Util-0.204.tar.gz";
+      hash = "sha256-QV+nPbrPRPPV15wUiIzJlFYnIKtGjm9x+RzR92nxBeE=";
+    };
+    meta = {
+      description = "Utility functions for checking references";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  RegexpAssemble = buildPerlPackage {
+    pname = "Regexp-Assemble";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Regexp-Assemble-0.38.tgz";
+      hash = "sha256-oGvn+a4bc8m/1bZmKxQcDXBGnpwZu0QTpu5W+Cra5EI=";
+    };
+    meta = {
+      description = "Assemble multiple Regular Expressions into a single RE";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RegexpCommon = buildPerlPackage {
+    pname = "Regexp-Common";
+    version = "2017060201";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz";
+      hash = "sha256-7geFOu4G8xDgQLa/GgGZoY2BiW0yGbmzXJYw0OtpCJs=";
+    };
+    meta = {
+      description = "Provide commonly requested regular expressions";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  RegexpCommonnetCIDR = buildPerlPackage {
+    pname = "Regexp-Common-net-CIDR";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Regexp-Common-net-CIDR-0.03.tar.gz";
+      hash = "sha256-OWBqV6qyDU9EaDAPLsP6KrVX/MnLeIDsfG4H2AFi2jM=";
+    };
+    propagatedBuildInputs = [ RegexpCommon ];
+    meta = {
+      description = "Provide patterns for CIDR blocks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RegexpCommontime = buildPerlPackage {
+    pname = "Regexp-Common-time";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/Regexp-Common-time-0.16.tar.gz";
+      hash = "sha256-HIEHpQq1XHK/ePsRbJGIxM3xYsGGwVhsH5qu5V/xSso=";
+    };
+    propagatedBuildInputs = [ RegexpCommon ];
+    meta = {
+      description = "Date and time regexps";
+      homepage = "https://github.com/manwar/Regexp-Common-time";
+      license = with lib.licenses; [ artistic2 mit bsd3 ];
+      maintainers = [ maintainers.artturin ];
+    };
+  };
+
+  RegexpGrammars = buildPerlModule {
+    pname = "Regexp-Grammars";
+    version = "1.058";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.058.tar.gz";
+      hash = "sha256-6ojVjiUWdPrjm0n007U0LqzLj8tVhWzTBKoaX/PUHJI=";
+    };
+    meta = {
+      description = "Add grammatical parsing features to Perl 5.10 regexes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RegexpIPv6 = buildPerlPackage {
+    pname = "Regexp-IPv6";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Regexp-IPv6-0.03.tar.gz";
+      hash = "sha256-1ULRfXXOk2Md6LohVtoOC1inVcQJzUoNJ6OHOiZxLOI=";
+    };
+    meta = {
+      description = "Regular expression for IPv6 addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RegexpParser = buildPerlPackage {
+    pname = "Regexp-Parser";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Regexp-Parser-0.23.tar.gz";
+      hash = "sha256-9znauN8rBqrlxI+ZcSUbc3BEZKMtB9jQJfPA+GlUTok=";
+    };
+    meta = {
+      description = "Base class for parsing regexes";
+      homepage = "https://wiki.github.com/toddr/Regexp-Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RegexpTrie = buildPerlPackage {
+    pname = "Regexp-Trie";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Regexp-Trie-0.02.tar.gz";
+      hash = "sha256-+yv5TtjbwfSpXZ/I9xDLZ7P3lsbvycS7TCz6Prqhxfo=";
+    };
+    meta = {
+      description = "Builds trie-ized regexp";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RESTClient = buildPerlPackage {
+    pname = "REST-Client";
+    version = "281";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AK/AKHUETTEL/REST-Client-281.tar.gz";
+      hash = "sha256-+hDSGgA35oJgHv5mc4p1j/dSEJSqASKek8iIpnmyyPY=";
+    };
+    propagatedBuildInputs = [ LWPProtocolHttps ];
+    meta = {
+      description = "A simple client for interacting with RESTful http/https resources";
+      homepage = "https://github.com/milescrawford/cpan-rest-client";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RESTUtils = buildPerlModule {
+    pname = "REST-Utils";
+    version = "0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JA/JALDHAR/REST-Utils-0.6.tar.gz";
+      hash = "sha256-1OlK3YetMf71h8RxFceIx88+EiyS85YyWuLmEsZwuf0=";
+    };
+    buildInputs = [ TestLongString TestWWWMechanize TestWWWMechanizeCGI ];
+    meta = {
+      description = "Utility functions for REST applications";
+      homepage = "https://jaldhar.github.com/REST-Utils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RpcXML = buildPerlPackage {
+    pname = "RPC-XML";
+    version = "0.82";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.82.tar.gz";
+      hash = "sha256-UnnrDRNsUz/4l/aTTDqtbyBQS5l/smBuUsXbvZJ1jnM=";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+    doCheck = false;
+    meta = {
+      description = "Data, client and server classes for XML-RPC";
+      homepage = "https://github.com/rjray/rpc-xml";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "make_method";
+    };
+  };
+
+  ReturnValue = buildPerlPackage {
+    pname = "Return-Value";
+    version = "1.666005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.666005.tar.gz";
+      hash = "sha256-jiJgqWUx6TaGIAuciFDr4AXYjONp/2vHD/GnQFt1UKw=";
+    };
+    meta = {
+      description = "Create context-sensitive return values";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RoleBasic = buildPerlModule {
+    pname = "Role-Basic";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/Role-Basic-0.13.tar.gz";
+      hash = "sha256-OKCVnvnxk/925ywyWp6SEbxIaGib0OKwBXePU/i282o=";
+    };
+    meta = {
+      description = "Just roles. Nothing else";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RoleHasMessage = buildPerlPackage {
+    pname = "Role-HasMessage";
+    version = "0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.007.tar.gz";
+      hash = "sha256-XiZ6TXYgs2hIEgTIjqIES4sqWP+LBVd/JxeydUwEFM4=";
+    };
+    propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ];
+    meta = {
+      description = "A thing with a message method";
+      homepage = "https://github.com/rjbs/Role-HasMessage";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RoleHooks = buildPerlPackage {
+    pname = "Role-Hooks";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Role-Hooks-0.008.tar.gz";
+      hash = "sha256-KNZuoKjcMGt22oP/CHlJPYCPcxhbz5xO03LzlG+1Q+w=";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ ClassMethodModifiers ];
+    meta = {
+      homepage = "https://metacpan.org/release/Role-Hooks";
+      description = "Role callbacks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RoleIdentifiable = buildPerlPackage {
+    pname = "Role-Identifiable";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.009.tar.gz";
+      hash = "sha256-WnNen3F3+euuBH63uuKbfsKewCCuN2N66lNQ0wwIe3Y=";
+    };
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "A thing you can identify somehow";
+      homepage = "https://github.com/rjbs/Role-Identifiable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RoleTiny = buildPerlPackage {
+    pname = "Role-Tiny";
+    version = "2.002004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz";
+      hash = "sha256-173unhOKT4OqUtCpgWJWRL2of/FmQt+oRdy0TZokK0U=";
+    };
+    meta = {
+      description = "Roles: a nouvelle cuisine portion size slice of Moose";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RPCEPCService = buildPerlModule {
+    pname = "RPC-EPC-Service";
+    version = "0.0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KI/KIWANAMI/RPC-EPC-Service-v0.0.11.tar.gz";
+      hash = "sha256-l19BNDZSWPtH+pIZGQU1E625EB8r1CD87+NF8gkSi+M=";
+    };
+    propagatedBuildInputs = [ AnyEvent DataSExpression ];
+    meta = {
+      description = "An Asynchronous Remote Procedure Stack";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+    RPM2 = buildPerlModule {
+    pname = "RPM2";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/RPM2-1.4.tar.gz";
+      hash = "sha256-XstCqmkyTm9AiKv64HMTkG5aq/L0bxIE8/HeWRVbtjY=";
+    };
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ pkgs.rpm ];
+    doCheck = false; # Tries to open /var/lib/rpm
+    meta = {
+      description = "Perl bindings for the RPM Package Manager API";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.linux;
+    };
+  };
+
+  RSSParserLite = buildPerlPackage {
+    pname = "RSS-Parser-Lite";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TF/TFPBL/RSS-Parser-Lite-0.12.tar.gz";
+      hash = "sha256-idw0vKixqp/uC8QK7d5eLBYCL8eYssOryH3gczG5lbk=";
+    };
+    propagatedBuildInputs = [ locallib ];
+    doCheck = false; /* creates files in HOME */
+    meta = {
+      description = "A simple pure perl RSS parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  RTClientREST = buildPerlModule {
+    pname = "RT-Client-REST";
+    version = "0.72";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.72.tar.gz";
+      hash = "sha256-KPIBWKD3sfNLdM423lvdVimeuUAUBHLISXyVNYIm/bM=";
+    };
+    buildInputs = [ CGI HTTPServerSimple TestException ];
+    propagatedBuildInputs = [ DateTimeFormatDateParse Error LWP ParamsValidate ];
+    meta = {
+      description = "Client for RT using REST API";
+      homepage = "https://github.com/RT-Client-REST/RT-Client-REST";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SafeIsa = buildPerlPackage {
+    pname = "Safe-Isa";
+    version = "1.000010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Safe-Isa-1.000010.tar.gz";
+      hash = "sha256-h/QUiqD/HV5lJyMyLqt9r6OAHJZ9b5GskUejxGe4pmo=";
+    };
+    meta = {
+      description = "Call isa, can, does and DOES safely on things that may not be objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ScalarListUtils = buildPerlPackage {
+    pname = "Scalar-List-Utils";
+    version = "1.63";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.63.tar.gz";
+      hash = "sha256-yvvfIS9oJ9yaDdO1e27lDoYFhtcZgiijMmLVXFWesqk=";
+    };
+    meta = {
+      description = "Common Scalar and List utility subroutines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ScalarString = buildPerlModule {
+    pname = "Scalar-String";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-0.003.tar.gz";
+      hash = "sha256-9UoXybeHE7AsxDrfrfYLSUZ+djTTExfouenpfCbWi1I=";
+    };
+    meta = {
+      description = "String aspects of scalars";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ScalarType = buildPerlPackage {
+    pname = "Scalar-Type";
+    version = "0.3.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Scalar-Type-0.3.2.tar.gz";
+      hash = "sha256-WQyv6gz1RZmSoEiFYsDb1vnfdYtfAH8OQ6uhMLRe7oY=";
+    };
+    propagatedBuildInputs = [ CaptureTiny TestException ];
+    meta = {
+      description = "Figure out what type a scalar is";
+      license = with lib.licenses; [ artistic1 gpl2Only ];
+    };
+  };
+
+  SCGI = buildPerlModule {
+    pname = "SCGI";
+    version = "0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPERCODE/SCGI-0.6.tar.gz";
+      hash = "sha256-WLeMWvTuReQ38Hro87DZRckf0sAlFW7pFtgRWA+R2aQ=";
+    };
+    preConfigure = "export HOME=$(mktemp -d)";
+    meta = {
+      description = "This module is for implementing an SCGI interface for an application server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ScopeGuard = buildPerlPackage {
+    pname = "Scope-Guard";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz";
+      hash = "sha256-jJsb6lxWRI4sP63GXQW+nkaQo4I6gPOdLxD92Pd30ng=";
+    };
+    meta = {
+      description = "Lexically-scoped resource management";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ScopeUpper = buildPerlPackage {
+    pname = "Scope-Upper";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.34.tar.gz";
+      hash = "sha256-WB2LxRDevQxFal/HlSy3E4rmZ78486d+ltdz3DGWpB4=";
+    };
+    meta = {
+      description = "Act on upper scopes";
+      homepage = "https://search.cpan.org/dist/Scope-Upper";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SDL = buildPerlModule {
+    pname = "SDL";
+    version = "2.548";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz";
+      hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U=";
+    };
+    patches = [
+      # https://github.com/PerlGameDev/SDL/pull/304
+      ../development/perl-modules/sdl-modern-perl.patch
+    ];
+    perlPreHook = "export LD=$CC";
+    preCheck = "rm t/core_audiospec.t";
+    buildInputs = [ pkgs.SDL pkgs.SDL_gfx pkgs.SDL_mixer pkgs.SDL_image pkgs.SDL_ttf pkgs.SDL_Pango pkgs.SDL_net AlienSDL CaptureTiny TestDeep TestDifferences TestException TestMost TestWarn ];
+    propagatedBuildInputs = [ FileShareDir TieSimple ];
+    meta = {
+      description = "SDL bindings to Perl";
+      license = with lib.licenses; [ lgpl21Plus ];
+    };
+  };
+
+  SearchXapian = buildPerlPackage rec {
+    pname = "Search-Xapian";
+    version = "1.2.25.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OL/OLLY/Search-Xapian-1.2.25.5.tar.gz";
+      hash = "sha256-IE+9xxLWcR/6tmjB9M/AB7Y5qftkrX4ZyyD8EKkQuos=";
+    };
+    buildInputs = [ pkgs.xapian DevelLeak ];
+    meta = {
+      description = "Perl XS frontend to the Xapian C++ search library";
+      homepage = "https://xapian.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SerealDecoder = buildPerlPackage {
+    pname = "Sereal-Decoder";
+    version = "5.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz";
+      hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q=";
+    };
+    buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ];
+    preBuild = "ls";
+    meta = {
+      description = "Fast, compact, powerful binary deserialization";
+      homepage = "https://github.com/Sereal/Sereal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
+  SerealEncoder = buildPerlPackage {
+    pname = "Sereal-Encoder";
+    version = "5.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz";
+      hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs=";
+    };
+    buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ];
+    meta = {
+      description = "Fast, compact, powerful binary serialization";
+      homepage = "https://github.com/Sereal/Sereal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
+  Sereal = buildPerlPackage {
+    pname = "Sereal";
+    version = "5.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz";
+      hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128=";
+    };
+    buildInputs = [ TestDeep TestLongString TestWarn ];
+    propagatedBuildInputs = [ SerealDecoder SerealEncoder ];
+    meta = {
+      description = "Fast, compact, powerful binary (de-)serialization";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
+  DeviceSerialPort = buildPerlPackage rec {
+    pname = "Device-SerialPort";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/COOK/Device-SerialPort-1.04.tar.gz";
+      hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc=";
+    };
+    meta = {
+      description = "Linux/POSIX emulation of Win32::SerialPort functions.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "modemtest";
+    };
+  };
+
+  ServerStarter = buildPerlModule {
+    pname = "Server-Starter";
+    version = "0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.35.tar.gz";
+      hash = "sha256-Z23A1s/0ZIU4Myxjwy+4itCe2GghPqnmLj8Z+tQbnEA=";
+    };
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    doCheck = false; # Tests are slow and unstable
+    meta = {
+      description = "A superdaemon for hot-deploying server programs";
+      homepage = "https://github.com/kazuho/p5-Server-Starter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "start_server";
+    };
+  };
+
+  SessionToken = buildPerlPackage rec {
+    pname = "Session-Token";
+    version = "1.503";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FRACTAL/Session-Token-1.503.tar.gz";
+      hash = "sha256-MsPflu9FXHGHA2Os2VDdxPvISMWU9LxVshtEz5efeaE=";
+    };
+    meta = {
+      description = "Secure, efficient, simple random session token generation";
+      homepage = "https://github.com/hoytech/Session-Token";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  SetInfinite = buildPerlPackage {
+    pname = "Set-Infinite";
+    version = "0.65";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz";
+      hash = "sha256-B7yIBzRJLeQLSjqLWjMXYvZOabRikCn9mp01eyW4fh8=";
+    };
+    meta = {
+      description = "Infinite Sets math";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SetIntSpan = buildPerlPackage {
+    pname = "Set-IntSpan";
+    version = "1.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SW/SWMCD/Set-IntSpan-1.19.tar.gz";
+      hash = "sha256-EbdUmxPsXYfMaV3Ux3fNApg91f6YZgEod/tTD0iz39A=";
+    };
+
+    meta = {
+      description = "Manages sets of integers, newsrc style";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SetObject = buildPerlPackage {
+    pname = "Set-Object";
+    version = "1.42";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.42.tar.gz";
+      hash = "sha256-0YxaiiM+q70CBs89pbAPzdezf+vxKpPcw9HAJub97EU=";
+    };
+    meta = {
+      description = "Unordered collections (sets) of Perl Objects";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  SetScalar = buildPerlPackage {
+    pname = "Set-Scalar";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz";
+      hash = "sha256-o9wVJvPd5y08ZOoAAHuGzmCM3Nk1Z89ubkLcEP3EUR0=";
+    };
+    meta = {
+      description = "Basic set operations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SmartComments = buildPerlPackage rec {
+    pname = "Smart-Comments";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Smart-Comments-1.06.tar.gz";
+      hash = "sha256-3PijEhNKfGuCkmoBFdk7aSRypmLSjNw6m98omEranuM=";
+    };
+    meta = {
+      description = "Comments that do more than just sit there";
+      homepage = "https://github.com/neilb/Smart-Comments";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  SGMLSpm = buildPerlModule {
+    pname = "SGMLSpm";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz";
+      hash = "sha256-VQySRSkcjfIkL36I95IaD2NsfuySxkRBjn2Jz+pwsr0=";
+    };
+    meta = {
+      description = "Library for parsing the output from SGMLS and NSGMLS parsers";
+      license = with lib.licenses; [ gpl2Plus ];
+      mainProgram = "sgmlspl.pl";
+    };
+  };
+
+  SignalMask = buildPerlPackage {
+    pname = "Signal-Mask";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Signal-Mask-0.008.tar.gz";
+      hash = "sha256-BD2ZW2sknZ68BMRn2zG7fdwuVfqgjohb2wULHyM2tz8=";
+    };
+    propagatedBuildInputs = [ IPCSignal ];
+    meta = {
+      description = "Signal masks made easy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SnowballNorwegian = buildPerlModule {
+    pname = "Snowball-Norwegian";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz";
+      hash = "sha256-Hc+NfyazdSCgENzVGXAU4KWDhe5muDtP3gfqtQrZ5Rg=";
+    };
+    meta = {
+      description = "Porters stemming algorithm for norwegian";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "stemmer-no.pl";
+    };
+  };
+
+  SnowballSwedish = buildPerlModule {
+    pname = "Snowball-Swedish";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz";
+      hash = "sha256-76qSNVhZj06IjZelEtYPvMRIHB+cXn3tUnWWKUVg/Ck=";
+    };
+    meta = {
+      description = "Porters stemming algorithm for swedish";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "stemmer-se.pl";
+    };
+  };
+
+  SOAPLite = buildPerlPackage {
+    pname = "SOAP-Lite";
+    version = "1.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz";
+      hash = "sha256-41kQa6saRaFgRKTC+ASfrQNOXe0VF5kLybX42G3d0wE=";
+    };
+    propagatedBuildInputs = [ ClassInspector IOSessionData LWPProtocolHttps TaskWeaken XMLParser ];
+    buildInputs = [ TestWarn XMLParserLite ];
+    nativeCheckInputs = [ HTTPDaemon ];
+    meta = {
+      description = "Perl's Web Services Toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Socket6 = buildPerlPackage {
+    pname = "Socket6";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-0.29.tar.gz";
+      hash = "sha256-RokV+joE3PZXT8lX7/SVkV4kVpQ0lwyR7o5OFFn8kRQ=";
+    };
+    setOutputFlags = false;
+    buildInputs = [ pkgs.which ];
+    patches = [ ../development/perl-modules/Socket6-sv_undef.patch ];
+    meta = {
+      description = "IPv6 related part of the C socket.h defines and structure manipulators";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+  SoftwareLicense = buildPerlPackage {
+    pname = "Software-License";
+    version = "0.104004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Software-License-0.104004.tar.gz";
+      hash = "sha256-of2iTsh3UhmAlzgPuTAMFLV0gmJwzFgNr3UONYX8Jww=";
+    };
+    buildInputs = [ TryTiny ];
+    propagatedBuildInputs = [ DataSection TextTemplate ];
+    meta = {
+      description = "Packages that provide templated software licenses";
+      homepage = "https://github.com/Perl-Toolchain-Gang/Software-License";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SoftwareLicenseCCpack = buildPerlPackage {
+    pname = "Software-License-CCpack";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz";
+      hash = "sha256-WU9carwhbJXNRYd8Qd7FbSvDDh0DFq04VbCiqo5dU7E=";
+    };
+    propagatedBuildInputs = [ SoftwareLicense ];
+    buildInputs = [ TestCheckDeps ];
+    meta = {
+      description = "Software::License pack for Creative Commons' licenses";
+      homepage = "https://github.com/SineSwiper/Software-License-CCpack";
+      license = with lib.licenses; [ lgpl3Plus ];
+    };
+  };
+
+  SortKey = buildPerlPackage {
+    pname = "Sort-Key";
+    version = "1.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz";
+      hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8=";
+    };
+    meta = {
+      description = "The fastest way to sort anything in Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SortVersions = buildPerlPackage {
+    pname = "Sort-Versions";
+    version = "1.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Sort-Versions-1.62.tar.gz";
+      hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo=";
+    };
+    meta = {
+      description = "A perl 5 module for sorting of revision-like numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Specio = buildPerlPackage {
+    pname = "Specio";
+    version = "0.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.48.tar.gz";
+      hash = "sha256-DIV5NYDxJ07wgXMHkTHRAfd7IqzOp6+oJVIC8IEWgrI=";
+    };
+    propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
+    buildInputs = [ TestFatal TestNeeds ];
+    meta = {
+      description = "Type constraints and coercions for Perl";
+      homepage = "https://metacpan.org/release/Specio";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  SpecioLibraryPathTiny = buildPerlPackage {
+    pname = "Specio-Library-Path-Tiny";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.05.tar.gz";
+      hash = "sha256-YN8Lubza6yxmoHi/bfmVTqT5Qz1stoCImULlQsfCelE=";
+    };
+    propagatedBuildInputs = [ PathTiny Specio ];
+    buildInputs = [ Filepushd TestFatal ];
+    meta = {
+      description = "Path::Tiny types and coercions for Specio";
+      homepage = "https://metacpan.org/release/Specio-Library-Path-Tiny";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  Spiffy = buildPerlPackage {
+    pname = "Spiffy";
+    version = "0.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/Spiffy-0.46.tar.gz";
+      hash = "sha256-j1hiCoQgJVxJtsQ8X/WAK9JeTwkkDFHlvysCKDPUHaM=";
+    };
+    meta = {
+      description = "Spiffy Perl Interface Framework For You";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SpreadsheetCSV = buildPerlPackage {
+    pname = "Spreadsheet-CSV";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DD/DDICK/Spreadsheet-CSV-0.20.tar.gz";
+      hash = "sha256-BwuyUqj+i5OKHOT8kFJfgz1OYZttRnOwrgojQI1RSrY=";
+    };
+    nativeBuildInputs = [ CGI ];
+    propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel TextCSV_XS XMLParser ];
+    meta = {
+      description = "Drop-in replacement for Text::CSV_XS with spreadsheet support";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SpreadsheetParseExcel = buildPerlPackage {
+    pname = "Spreadsheet-ParseExcel";
+    version = "0.65";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOUGW/Spreadsheet-ParseExcel-0.65.tar.gz";
+      hash = "sha256-bsTLQpvVjYFkD+EhFvQ1xG9R/xBAxo8JzIt2gcFnW+w=";
+    };
+    propagatedBuildInputs = [ CryptRC4 DigestPerlMD5 IOStringy OLEStorage_Lite ];
+    meta = {
+      description = "Read information from an Excel file";
+      homepage = "https://github.com/runrig/spreadsheet-parseexcel";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SpreadsheetWriteExcel = buildPerlPackage {
+    pname = "Spreadsheet-WriteExcel";
+    version = "2.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-WriteExcel-2.40.tar.gz";
+      hash = "sha256-41aq1oZs8TVzEmjuDpeaGXRDwVoEh46c8+gNAirWwH4=";
+    };
+    propagatedBuildInputs = [ OLEStorage_Lite ParseRecDescent ];
+    meta = {
+      description = "Write to a cross platform Excel binary file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "chartex";
+    };
+  };
+
+  SpreadsheetXLSX = buildPerlPackage {
+    pname = "Spreadsheet-XLSX";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASB/Spreadsheet-XLSX-0.17.tar.gz";
+      hash = "sha256-M7d4knz/FjCQZbdOuMRpawNxZg0szf5FvkYFCSrO6XY=";
+    };
+    buildInputs = [ TestNoWarnings TestWarnings ];
+    propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel ];
+    meta = {
+      homepage = "https://github.com/asb-capfan/Spreadsheet-XLSX";
+      description = "Perl extension for reading MS Excel 2007 files;";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SQLAbstract = buildPerlPackage {
+    pname = "SQL-Abstract";
+    version = "2.000001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Abstract-2.000001.tar.gz";
+      hash = "sha256-NaZCZiw0lCDUS+bg732HZep0PrEq0UOZqjojK7lObpo=";
+    };
+    buildInputs = [ DataDumperConcise TestDeep TestException TestWarn ];
+    propagatedBuildInputs = [ HashMerge MROCompat Moo ];
+    meta = {
+      description = "Generate SQL from Perl data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SQLAbstractClassic = buildPerlPackage {
+    pname = "SQL-Abstract-Classic";
+    version = "1.91";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/SQL-Abstract-Classic-1.91.tar.gz";
+      hash = "sha256-Tj0d/QlbISMmhYa7BrhpKepXE4jU6UGszL3NoeEI7yg=";
+    };
+    buildInputs = [ TestDeep TestException TestWarn ];
+    propagatedBuildInputs = [ SQLAbstract ];
+    meta = {
+      description = "Generate SQL from Perl data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SQLAbstractLimit = buildPerlPackage {
+    pname = "SQL-Abstract-Limit";
+    version = "0.143";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASB/SQL-Abstract-Limit-0.143.tar.gz";
+      hash = "sha256-0Yr9eIk72DC6JGXArmozQlRgFZADhk3tO1rc9RGJyuk=";
+    };
+    propagatedBuildInputs = [ DBI SQLAbstract ];
+    buildInputs = [ TestDeep TestException ];
+    meta = {
+      description = "Portable LIMIT emulation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SQLAbstractPg = buildPerlPackage {
+    pname = "SQL-Abstract-Pg";
+    version = "1.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/SQL-Abstract-Pg-1.0.tar.gz";
+      hash = "sha256-Pic2DfN7jYjzxS2smwNJP5vT7v9sjYj5sIbScRVT9Uc=";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ SQLAbstract ];
+    meta = {
+      description = "PostgreSQL features for SQL::Abstract";
+      homepage = "https://mojolicious.org";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  SQLSplitStatement = buildPerlPackage {
+    pname = "SQL-SplitStatement";
+    version = "1.00023";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-SplitStatement-1.00023.tar.gz";
+      hash = "sha256-GnSEIM0q00HCUk7xGFt273Fylp8XqeS6tvQ3bw3p814=";
+    };
+    buildInputs = [ TestDifferences TestException ];
+    propagatedBuildInputs = [ ClassAccessor ListMoreUtils RegexpCommon ];
+    meta = {
+      description = "Split any SQL code into atomic statements";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "sql-split";
+    };
+  };
+
+  SQLStatement = buildPerlPackage {
+    pname = "SQL-Statement";
+    version = "1.414";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.414.tar.gz";
+      hash = "sha256-3ei9z6ahNu7doGUZug8++uwIXDnbDfnEctwOxs14Gkk=";
+    };
+    buildInputs = [ MathBaseConvert TestDeep TextSoundex ];
+    propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ];
+    meta = {
+      description = "SQL parsing and processing engine";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SQLTokenizer = buildPerlPackage {
+    pname = "SQL-Tokenizer";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IZ/IZUT/SQL-Tokenizer-0.24.tar.gz";
+      hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE=";
+    };
+    meta = {
+      description = "A simple SQL tokenizer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SQLTranslator = buildPerlPackage {
+    pname = "SQL-Translator";
+    version = "1.63";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-Translator-1.63.tar.gz";
+      hash = "sha256-WIWwTJNJi+MqGX3JcjlHUdXeYJNBiTqWZW3oikJgMTM=";
+    };
+    buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ];
+    propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny GraphViz GD ];
+
+    postPatch = ''
+      patchShebangs script
+    '';
+
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      for file in $out/bin/*; do
+        shortenPerlShebang $file
+      done
+    '';
+
+    meta = {
+      description = "SQL DDL transformations and more";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "sqlt";
+    };
+  };
+
+  PackageVariant = buildPerlPackage {
+    pname = "Package-Variant";
+    version = "1.003002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/Package-Variant-1.003002.tar.gz";
+      hash = "sha256-su2EnS9M3WZGdRLao/FDJm1t+BDF+ukXWyUsV7wVNtw=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ImportInto strictures ];
+    meta = {
+      description = "Parameterizable packages";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SortNaturally = buildPerlPackage {
+    pname = "Sort-Naturally";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-1.03.tar.gz";
+      hash = "sha256-6qscXIdXWngmCJMEqx+P+n8Y5s2LOTdiPpmOhl7B50Y=";
+    };
+    meta = {
+      description = "Sort lexically, but sort numeral parts numerically";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Starlet = buildPerlPackage {
+    pname = "Starlet";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz";
+      hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg=";
+    };
+    buildInputs = [ LWP TestSharedFork TestTCP ];
+    propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "A simple, high-performance PSGI/Plack HTTP server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Starman = buildPerlModule {
+    pname = "Starman";
+    version = "0.4017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.4017.tar.gz";
+      hash = "sha256-b/q5FfMj9gCJ4+v4Urm5cH1pFyZt+K/XNw+sBL/f7k4=";
+    };
+    buildInputs = [ LWP ModuleBuildTiny TestRequires TestTCP ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ DataDump HTTPParserXS NetServer Plack NetServerSSPrefork IOSocketINET6 ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/starman
+    '';
+
+    doCheck = false; # binds to various TCP ports
+    meta = {
+      description = "High-performance preforking PSGI/Plack web server";
+      homepage = "https://github.com/miyagawa/Starman";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "starman";
+    };
+  };
+
+  StatisticsBasic = buildPerlPackage {
+    pname = "Statistics-Basic";
+    version = "1.6611";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JETTERO/Statistics-Basic-1.6611.tar.gz";
+      hash = "sha256-aFXOVhX9Phr0z8RRqb9E/ymjFAtOcTADTx8K8lEalPs=";
+    };
+    propagatedBuildInputs = [ NumberFormat ];
+    meta = {
+      description = "A collection of very basic statistics modules";
+      license = with lib.licenses; [ lgpl2Only ];
+    };
+  };
+
+  StatisticsCaseResampling = buildPerlPackage {
+    pname = "Statistics-CaseResampling";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/Statistics-CaseResampling-0.15.tar.gz";
+      hash = "sha256-hRxDvW8Q0yKJUipQxqIJw7JGz9PrVmdz5oYe2gSkkIc=";
+    };
+    meta = {
+      description = "Efficient resampling and calculation of medians with confidence intervals";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StatisticsChiSquare = buildPerlPackage rec {
+    pname = "Statistics-ChiSquare";
+    version = "1.0000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Statistics-ChiSquare-1.0000.tar.gz";
+      hash = "sha256-JVpaODNtBI3bkHciJpHgAJhOkHquCaTqaVqc/Umh3dA=";
+    };
+    meta = {
+      description = "Implements the Chi Squared test, using pre-computed tables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StatisticsDescriptive = buildPerlModule {
+    pname = "Statistics-Descriptive";
+    version = "3.0801";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0801.tar.gz";
+      hash = "sha256-BHtwpj/cqpFhaOD/LVjhVeDrvGjtTMvXOnIT3KMCj2U=";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ];
+    meta = {
+      description = "Module of basic descriptive statistical functions";
+      homepage = "https://metacpan.org/release/Statistics-Descriptive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StatisticsDistributions = buildPerlPackage {
+    pname = "Statistics-Distributions";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKEK/Statistics-Distributions-1.02.tar.gz";
+      hash = "sha256-+Z85ar+EyjeqLOoxrUXXOq7kh1LJmRNsS5E4lCjXM8g=";
+    };
+    meta = {
+      description = "Perl module for calculating critical values and upper probabilities of common statistical distributions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StatisticsTTest = buildPerlPackage {
+    pname = "Statistics-TTest";
+    version = "1.1.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YU/YUNFANG/Statistics-TTest-1.1.0.tar.gz";
+      hash = "sha256-stlZ0ljHKEebfYYu4BRuWtjuqYm+JWN8vFdlUv9zcWY=";
+    };
+    propagatedBuildInputs = [ StatisticsDescriptive StatisticsDistributions ];
+    meta = {
+      description = "Perl module to perform T-test on 2 independent samples Statistics::TTest::Sufficient - Perl module to perfrom T-Test on 2 indepdent samples using sufficient statistics";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StreamBuffered = buildPerlPackage {
+    pname = "Stream-Buffered";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz";
+      hash = "sha256-my1DkLXeawz0VY5K0EMXpzxeE90ZrykUnE5Hw3+yQjs=";
+    };
+    meta = {
+      description = "Temporary buffer to save bytes";
+      homepage = "https://github.com/plack/Stream-Buffered";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  strictures = buildPerlPackage {
+    pname = "strictures";
+    version = "2.000006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/strictures-2.000006.tar.gz";
+      hash = "sha256-CdV5dKbRsjgMgChw/tRxEI9RFw2oFFjidRhZ8nFPjVc=";
+    };
+    meta = {
+      description = "Turn on strict and make most warnings fatal";
+      homepage = "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringApprox = buildPerlPackage {
+    pname = "String-Approx";
+    version = "3.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHI/String-Approx-3.28.tar.gz";
+      hash = "sha256-QyAedi2GmcsKwsB2SlRUvcIwbAdxAU1sj7qCFIBjE0I=";
+    };
+    meta = {
+      description = "Perl extension for approximate matching (fuzzy matching)";
+      license = with lib.licenses; [ artistic2 gpl2Only ];
+    };
+  };
+
+  StringBinaryInterpolation = buildPerlPackage {
+    pname = "String-Binary-Interpolation";
+    version = "1.0.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/String-Binary-Interpolation-1.0.0.tar.gz";
+      hash = "sha256-2lXYmCTBrdniqpWP8OpILyaCLkJI7TOo1rT7vXdYivE=";
+    };
+    meta = {
+      description = "Make it easier to interpolate binary bytes into a string";
+      license = with lib.licenses; [ artistic2 gpl2Only ];
+    };
+  };
+
+  StringCamelCase = buildPerlPackage {
+    pname = "String-CamelCase";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HI/HIO/String-CamelCase-0.04.tar.gz";
+      hash = "sha256-icPevO7Orodk9F10Aj+Pvu4tiDma9nVB29qgsr8nEak=";
+    };
+    meta = {
+      description = "Camelcase, de-camelcase";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringCompareConstantTime = buildPerlPackage {
+    pname = "String-Compare-ConstantTime";
+    version = "0.321";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FRACTAL/String-Compare-ConstantTime-0.321.tar.gz";
+      hash = "sha256-Cya6KxIdgARCXUSF0dRvWQAcg3Y6omYk3/YiDXc11/c=";
+    };
+    meta = {
+      description = "Timing side-channel protected string compare";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringCRC32 = buildPerlPackage {
+    pname = "String-CRC32";
+    version = "2.100";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz";
+      hash = "sha256-lwYJOy0Gi2cV01tMWPUVWON5YAgyAhKfuwClfhmnRxM=";
+    };
+    meta = {
+      description = "Perl interface for cyclic redundancy check generation";
+      license = with lib.licenses; [ publicDomain ];
+    };
+  };
+
+  StringDiff = buildPerlModule {
+    pname = "String-Diff";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YA/YAPPO/String-Diff-0.07.tar.gz";
+      hash = "sha256-chW2fLwyJuLQ4Ys47FjJO+C/YJAnhpi++VU0iCbNCvM=";
+    };
+    patches = [
+      (fetchpatch {
+        url = "https://salsa.debian.org/perl-team/modules/packages/libstring-diff-perl/-/raw/d8120a93f73f4d4aa40d10819b2f0a312608ca9b/debian/patches/0001-Fix-the-test-suite-for-YAML-1.21-compatibility.patch";
+        hash = "sha256-RcYsn0jVa9sSF8iYPuaFTWx00LrF3m7hH9e6fC7j72U=";
+      })
+    ];
+    buildInputs = [ TestBase ModuleBuildTiny ModuleInstallGithubMeta ModuleInstallRepository ModuleInstallReadmeFromPod ModuleInstallReadmeMarkdownFromPod YAML ];
+    propagatedBuildInputs = [ AlgorithmDiff ];
+    meta = {
+      description = "Simple diff to String";
+      homepage = "https://github.com/yappo/p5-String-Diff";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  StringErrf = buildPerlPackage {
+    pname = "String-Errf";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.009.tar.gz";
+      hash = "sha256-4f7b+bT9ZLZOqBA43bdqTGzYX12xW8IfEGVqKYNJ3B8=";
+    };
+    buildInputs = [ JSONMaybeXS TimeDate ];
+    propagatedBuildInputs = [ StringFormatter ];
+    meta = {
+      description = "A simple sprintf-like dialect";
+      homepage = "https://github.com/rjbs/String-Errf";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringEscape = buildPerlPackage {
+    pname = "String-Escape";
+    version = "2010.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EV/EVO/String-Escape-2010.002.tar.gz";
+      hash = "sha256-/WRfizNiJNIKha5/saOEV26sMp963DkjwyQego47moo=";
+    };
+    meta = {
+      description = "Backslash escapes, quoted phrase, word elision, etc";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringFlogger = buildPerlPackage {
+    pname = "String-Flogger";
+    version = "1.101246";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Flogger-1.101246.tar.gz";
+      hash = "sha256-FfhJHgeBi7PPqfa9Oqv2QwuptOMJ8YEUNYvj2Bv/Og8=";
+    };
+    propagatedBuildInputs = [ JSONMaybeXS SubExporter ];
+    meta = {
+      description = "String munging for loggers";
+      homepage = "https://github.com/rjbs/String-Flogger";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringFormat = buildPerlPackage {
+    pname = "String-Format";
+    version = "1.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SREZIC/String-Format-1.18.tar.gz";
+      hash = "sha256-nkF6j42epiO+6i0TpHwNWmlvyGAsBQm4Js1F+Xt253g=";
+    };
+    meta = {
+      description = "sprintf-like string formatting capabilities with arbitrary format definitions";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  StringFormatter = buildPerlPackage {
+    pname = "String-Formatter";
+    version = "1.235";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Formatter-1.235.tar.gz";
+      hash = "sha256-CCNqkTuRHOZSzwhZjnwH0t8/Np/Ee/QBpIWlBKFmB4M=";
+    };
+    propagatedBuildInputs = [ SubExporter ];
+    meta = {
+      description = "Build sprintf-like functions of your own";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  StringInterpolate = buildPerlPackage {
+    pname = "String-Interpolate";
+    version = "0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/String-Interpolate-0.33.tar.gz";
+      hash = "sha256-qH7Qk4kH0xr32qltc6BjL1xko40d4N6HxLRCWDEpxBM=";
+    };
+    meta = {
+      # https://metacpan.org/pod/String::Interpolate
+      description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
+      license = with lib.licenses; [ gpl1Plus ];
+    };
+    propagatedBuildInputs = [ PadWalker SafeHole ];
+  };
+
+  StringInterpolateNamed = buildPerlPackage {
+    pname = "String-Interpolate-Named";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/String-Interpolate-Named-1.03.tar.gz";
+      hash = "sha256-on13VgcnX2jtkqQT85SsAJLn3hzZPWJHnUf7pwF6Jtw=";
+    };
+    meta = {
+      description = "Interpolated named arguments in string";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringMkPasswd = buildPerlPackage {
+    pname = "String-MkPasswd";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz";
+      hash = "sha256-UxD4NGAEVHUHFma1Qj2y8KqC1mhcgC7Hq+bCxBBjm5Y=";
+    };
+    meta = {
+      description = "Random password generator";
+      homepage = "https://github.com/sirhc/string-mkpasswd";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mkpasswd.pl";
+    };
+  };
+
+  StringRandom = buildPerlModule {
+    pname = "String-Random";
+    version = "0.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/String-Random-0.32.tar.gz";
+      hash = "sha256-nZPGeaNP+ibTtPoIN8rtHNLmfXZXKBi5HpfepzRwUkY=";
+    };
+    meta = {
+      description = "Perl module to generate random strings based on a pattern";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringRewritePrefix = buildPerlPackage {
+    pname = "String-RewritePrefix";
+    version = "0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz";
+      hash = "sha256-RJGL7JalSvjKN8qJfkNnCewoSgeyhRbvPM5GZoaWRtU=";
+    };
+    propagatedBuildInputs = [ SubExporter ];
+    meta = {
+      description = "Rewrite strings based on a set of known prefixes";
+      homepage = "https://github.com/rjbs/String-RewritePrefix";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringShellQuote = buildPerlPackage {
+    pname = "String-ShellQuote";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz";
+      hash = "sha256-5gY2UDjOINZG0lXIBe/90y+GR18Y1DynVFWwDk2G3TU=";
+    };
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Quote strings for passing through the shell";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "shell-quote";
+    };
+  };
+
+  StringSimilarity = buildPerlPackage {
+    pname = "String-Similarity";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/String-Similarity-1.04.tar.gz";
+      hash = "sha256-H47aIpC7y3Ia7wzhsL/hOwEgHdPaphijN/LwLikcMkU=";
+    };
+    doCheck = true;
+    meta = {
+      description = "Calculate the similarity of two strings";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  ShellCommand = buildPerlPackage {
+    pname = "Shell-Command";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-0.06.tar.gz";
+      hash = "sha256-8+Te71d5RL5G+nr1rBGKwoKJEXiLAbx2p0SVNVYW7NE=";
+    };
+    meta = {
+      description = "Cross-platform functions emulating common shell commands";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ShellConfigGenerate = buildPerlPackage {
+    pname = "Shell-Config-Generate";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Config-Generate-0.34.tar.gz";
+      hash = "sha256-hPRR8iIV3WjpwYqj992wOoIAfRZs+toAPQ8Wb1ceBWI=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ ShellGuess ];
+    meta = {
+      description = "Portably generate config for any shell";
+      homepage = "https://metacpan.org/pod/Shell::Config::Generate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ShellGuess = buildPerlPackage {
+    pname = "Shell-Guess";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Guess-0.09.tar.gz";
+      hash = "sha256-QGn6JjfkQxGO2VbXECMdFmgj0jsqZOuHuKRocuhloSs=";
+    };
+    meta = {
+      description = "Make an educated guess about the shell in use";
+      homepage = "https://metacpan.org/pod/Shell::Guess";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringToIdentifierEN = buildPerlPackage {
+    pname = "String-ToIdentifier-EN";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/String-ToIdentifier-EN-0.12.tar.gz";
+      hash = "sha256-OvuEIykwuaxbGto4PI3VkHrk4jrsWrsBb3D56AU83Io=";
+    };
+    propagatedBuildInputs = [ LinguaENInflectPhrase TextUnidecode namespaceclean ];
+    meta = {
+      description = "Convert Strings to English Program Identifiers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringTruncate = buildPerlPackage {
+    pname = "String-Truncate";
+    version = "1.100603";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100603.tar.gz";
+      hash = "sha256-q0VgLM4t2VFe37sublzeGc3VSY1hojr9jEbB8R+O7GI=";
+    };
+    propagatedBuildInputs = [ SubExporter ];
+    meta = {
+      description = "A module for when strings are too long to be displayed in...";
+      homepage = "https://github.com/rjbs/String-Truncate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringTT = buildPerlPackage {
+    pname = "String-TT";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/String-TT-0.03.tar.gz";
+      hash = "sha256-92BfCgT5+hI9Ot9PNFeaFMkLfai5O2XS5IkyzNPJUqs=";
+    };
+    buildInputs = [ TestException TestSimple13 TestTableDriven ];
+    propagatedBuildInputs = [ PadWalker SubExporter TemplateToolkit ];
+    meta = {
+      description = "Use TT to interpolate lexical variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  StringUtil = buildPerlModule {
+    pname = "String-Util";
+    version = "1.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BAKERSCOT/String-Util-1.34.tar.gz";
+      hash = "sha256-MZzozWZTQeVlIfoVXZYqGTKOkNn3A2dlklzN4mclxGk=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "String processing utility functions";
+      homepage = "https://github.com/scottchiefbaker/String-Util";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  strip-nondeterminism = callPackage ../development/perl-modules/strip-nondeterminism { };
+
+  StructDumb = buildPerlModule {
+    pname = "Struct-Dumb";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.14.tar.gz";
+      hash = "sha256-E8FIU2sQ4oxuC04TLynkym5ptXSQWcRBV6J+hKVFlDY=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Make simple lightweight record-like structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubExporter = buildPerlPackage {
+    pname = "Sub-Exporter";
+    version = "0.990";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-0.990.tar.gz";
+      hash = "sha256-vGTsWgaGX5zGdiFcBqlEizoMizl0/7I6JPjirQkFRPw=";
+    };
+    propagatedBuildInputs = [ DataOptList ];
+    meta = {
+      description = "A sophisticated exporter for custom-built routines";
+      homepage = "https://github.com/rjbs/Sub-Exporter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubExporterForMethods = buildPerlPackage {
+    pname = "Sub-Exporter-ForMethods";
+    version = "0.100055";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100055.tar.gz";
+      hash = "sha256-eR9CA7p8D32DgLwBvsICFffIvHDX7QPlUu7kRUGr6U4=";
+    };
+    buildInputs = [ namespaceautoclean ];
+    propagatedBuildInputs = [ SubExporter SubName ];
+    meta = {
+      description = "Helper routines for using Sub::Exporter to build methods";
+      homepage = "https://github.com/rjbs/Sub-Exporter-ForMethods";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubExporterGlobExporter = buildPerlPackage {
+    pname = "Sub-Exporter-GlobExporter";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.006.tar.gz";
+      hash = "sha256-3nQ/CAJnAcKmoiKotBxM3CVLGkr+fvmJh806ukzlJpY=";
+    };
+    propagatedBuildInputs = [ SubExporter ];
+    meta = {
+      description = "Export shared globs with Sub::Exporter collectors";
+      homepage = "https://github.com/rjbs/Sub-Exporter-GlobExporter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubExporterProgressive = buildPerlPackage {
+    pname = "Sub-Exporter-Progressive";
+    version = "0.001013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz";
+      hash = "sha256-1TW3lU1k2hrBMFsfrfmCAnaeNZk3aFSyztkMOCvqwFY=";
+    };
+    meta = {
+      description = "Only use Sub::Exporter if you need it";
+      homepage = "https://github.com/frioux/Sub-Exporter-Progressive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubHandlesVia = buildPerlPackage {
+    pname = "Sub-HandlesVia";
+    version = "0.050000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.050000.tar.gz";
+      hash = "sha256-Lfk0k+L56VvleblQtuGf9ST5TIBhOq3AOohhHf91eU8=";
+    };
+    propagatedBuildInputs = [ ClassMethodModifiers RoleHooks RoleTiny TypeTiny ];
+    buildInputs = [ TestFatal TestRequires TryTiny ];
+    meta = {
+      description = "Alternative handles_via implementation";
+      homepage = "https://metacpan.org/release/Sub-HandlesVia";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubIdentify = buildPerlPackage {
+    pname = "Sub-Identify";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz";
+      hash = "sha256-Bo0nIIZRTdHoQrakCxvtuv7mOQDlsIiQ72cAA53vrW8=";
+    };
+    meta = {
+      description = "Retrieve names of code references";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubInfo = buildPerlPackage {
+    pname = "Sub-Info";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Sub-Info-0.002.tar.gz";
+      hash = "sha256-6jBW1pa97/IamdNA1VcIh9OajMR7/yOt/ILfZ1jN0Oo=";
+    };
+    propagatedBuildInputs = [ Importer ];
+    meta = {
+      description = "Tool for inspecting subroutines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubInstall = buildPerlPackage {
+    pname = "Sub-Install";
+    version = "0.929";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Install-0.929.tar.gz";
+      hash = "sha256-gLHigdjNOysx2scR9cihZXqHzYC75przkkvL605dsHc=";
+    };
+    meta = {
+      description = "Install subroutines into packages easily";
+      homepage = "https://github.com/rjbs/Sub-Install";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubName = buildPerlPackage {
+    pname = "Sub-Name";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Sub-Name-0.27.tar.gz";
+      hash = "sha256-7PNvuhxHypPh2qOUlo7TnEGGhnRZ2c0XPEIeK5cgQ+g=";
+    };
+    buildInputs = [ BC DevelCheckBin ];
+    meta = {
+      description = "(Re)name a sub";
+      homepage = "https://github.com/p5sagit/Sub-Name";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubOverride = buildPerlPackage {
+    pname = "Sub-Override";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/Sub-Override-0.09.tar.gz";
+      hash = "sha256-k5pnwfcplo4MyBt0lY23UOG9t8AgvuGiYzMvQiwuJbU=";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Perl extension for easily overriding subroutines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubQuote = buildPerlPackage {
+    pname = "Sub-Quote";
+    version = "2.006008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz";
+      hash = "sha256-lL69UAr1V2LoPqLyvFlNh6+CgHI3DHEQxgwjioANFbI=";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Efficient generation of subroutines via string eval";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubStrictDecl = buildPerlModule {
+    pname = "Sub-StrictDecl";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Sub-StrictDecl-0.005.tar.gz";
+      hash = "sha256-oSfa52RcGpVwzZopcMbcST1SL/BzGKNKOeQJCY9pESU=";
+    };
+    propagatedBuildInputs = [ LexicalSealRequireHints ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Detect undeclared subroutines in compilation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SubUplevel = buildPerlPackage {
+    pname = "Sub-Uplevel";
+    version = "0.2800";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz";
+      hash = "sha256-tPP2O4D2gKQhMy2IUd2+Wo5y/Kp01dHZjzyMxKPs4pM=";
+    };
+    meta = {
+      description = "Apparently run a function in a higher stack frame";
+      homepage = "https://github.com/Perl-Toolchain-Gang/Sub-Uplevel";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SVNSimple = buildPerlPackage {
+    pname = "SVN-Simple";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.28.tar.gz";
+      hash = "sha256-1jzBaeQ2m+mKU5q+nMFhG/zCs2lmplF+Z2aI/tGIT/s=";
+    };
+    propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
+    meta = {
+      description = "A simple interface to subversion's editor interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SafeHole = buildPerlModule {
+    pname = "Safe-Hole";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz";
+      hash = "sha256-9PVui70GxP5K4G2xIYbeyt+6wep3XqGMbAKJSB0V7AU=";
+    };
+    meta = {
+      description = "Lib/Safe/Hole.pm";
+      homepage = "https://github.com/toddr/Safe-Hole";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin;
+    };
+  };
+
+  Swim = buildPerlPackage {
+    pname = "Swim";
+    version = "0.1.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/Swim-0.1.48.tar.gz";
+      hash = "sha256-pfcv0vIpF/orSsuy7iw9MpA9l+5bDkSbDzhwGMd/Tww=";
+    };
+    propagatedBuildInputs = [ HTMLEscape HashMerge IPCRun Pegex TextAutoformat YAMLLibYAML ];
+    meta = {
+      description = "See What I Mean?!";
+      homepage = "https://github.com/ingydotnet/swim-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "swin";
+    };
+  };
+
+  Switch = buildPerlPackage {
+    pname = "Switch";
+    version = "2.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Switch-2.17.tar.gz";
+      hash = "sha256-MTVJdRQP5iNawTChCUlkka0z3UL5xiGJ4j9J91+TbXU=";
+    };
+    doCheck = false;                             # FIXME: 2/293 test failures
+    meta = {
+      description = "A switch statement for Perl, do not use if you can use given/when";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SymbolGet = buildPerlPackage {
+    pname = "Symbol-Get";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FELIPE/Symbol-Get-0.10.tar.gz";
+      hash = "sha256-DuVWjFrjVzyodOCeTQUkRmz8Gtmiwk0LyR1MewbyHZw=";
+    };
+    buildInputs = [ TestDeep TestException ];
+    propagatedBuildInputs = [ CallContext ];
+    meta = {
+      description = "Read Perl's symbol table programmatically";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  SymbolGlobalName = buildPerlPackage {
+    pname = "Symbol-Global-Name";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Symbol-Global-Name-0.05.tar.gz";
+      hash = "sha256-D3Yj6dckdgqmQEAiLaHYLxGIWGeRMpJhzGDa0dYNapI=";
+    };
+    meta = {
+      description = "Finds name and type of a global variable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SymbolUtil = buildPerlModule {
+    pname = "Symbol-Util";
+    version = "0.0203";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Symbol-Util-0.0203.tar.gz";
+      hash = "sha256-VbZh3SL5zpub5afgo/UomsAM0lTCHj2GAyiaVlrm3DI=";
+    };
+    meta = {
+      description = "Additional utils for Perl symbols manipulation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  syntax = buildPerlPackage {
+    pname = "syntax";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHAYLON/syntax-0.004.tar.gz";
+      hash = "sha256-/hm22oqPQ6WqLuVxRBvA4zn7FW0AgcFXoaJOmBLH02U=";
+    };
+    propagatedBuildInputs = [ DataOptList namespaceclean ];
+    meta = {
+      description = "Activate syntax extensions";
+      homepage = "https://github.com/phaylon/syntax/wiki";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SyntaxKeywordJunction = buildPerlPackage {
+    pname = "Syntax-Keyword-Junction";
+    version = "0.003008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003008.tar.gz";
+      hash = "sha256-i0l18hsZkqfmwt9dzJKyVMYZJVle3c368LFJhxeqle8=";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ syntax ];
+    meta = {
+      description = "Perl6 style Junction operators in Perl5";
+      homepage = "https://github.com/frioux/Syntax-Keyword-Junction";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SyntaxKeywordTry = buildPerlModule {
+    pname = "Syntax-Keyword-Try";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-0.29.tar.gz";
+      hash = "sha256-zDIHGdNgjaqVFHQ6Q9rCvpnLjM2Ymx/vooUpDLHVnY8=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ XSParseKeyword ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "A try/catch/finally syntax for perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  SysMmap = buildPerlPackage {
+    pname = "Sys-Mmap";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz";
+      hash = "sha256-GCDOLInxq3NXZE+NsPSfFC9UUmJQ+x4jXbEKqA8V4s8=";
+    };
+    meta = {
+      description = "Use mmap to map in a file as a Perl variable";
+      maintainers = with maintainers; [ peterhoeg ];
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  SysMemInfo = buildPerlPackage {
+    pname = "Sys-MemInfo";
+    version = "0.99";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCRESTO/Sys-MemInfo-0.99.tar.gz";
+      hash = "sha256-B4YxnTo6i65dcnk5JEvxfhQLcU9Sc01en2JyA+TPPjs=";
+    };
+    meta = {
+      description = "Memory information";
+      license = with lib.licenses; [ gpl2Plus ];
+      maintainers = [ maintainers.pSub ];
+    };
+  };
+
+  SysCPU = buildPerlPackage {
+    pname = "Sys-CPU";
+    version = "0.61";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MZ/MZSANFORD/Sys-CPU-0.61.tar.gz";
+      hash = "sha256-JQqGt5wjEAHErnHS9mQoCSpPuyBwlxrK/UcapJc5yeQ=";
+    };
+    patches = [
+      # Bug #95400 for Sys-CPU: Tests fail on ARM and AArch64 Linux
+      # https://rt.cpan.org/Public/Bug/Display.html?id=95400
+      (fetchpatch {
+        url = "https://rt.cpan.org/Ticket/Attachment/1359669/721669/0001-Add-support-for-cpu_type-on-ARM-and-AArch64-Linux-pl.patch";
+        hash = "sha256-oIJQX+Fz/CPmJNPuJyHVpJxJB2K5IQibnvaT4dv/qmY=";
+      })
+      (fetchpatch {
+        url = "https://rt.cpan.org/Ticket/Attachment/1388036/737125/0002-cpu_clock-can-be-undefined-on-an-ARM.patch";
+        hash = "sha256-nCypGyi6bZDEXqdb7wlGGzk9cFzmYkWGP1slBpXDfHw=";
+      })
+    ];
+    buildInputs = lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon;
+    doCheck = !stdenv.isAarch64;
+    meta = {
+      description = "Perl extension for getting CPU information. Currently only number of CPU's supported.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SysCpuAffinity = buildPerlModule {
+    pname = "Sys-CpuAffinity";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MOB/Sys-CpuAffinity-1.12.tar.gz";
+      hash = "sha256-/jLAXz6wWXCMZH8ruFslBFhZHyupBR2Nhm9Uajh+6Eg=";
+    };
+    doCheck = false; # Would run checks for all supported systems
+    meta = {
+      description = "Set CPU affinity for processes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  SysHostnameLong = buildPerlPackage {
+    pname = "Sys-Hostname-Long";
+    version = "1.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCOTT/Sys-Hostname-Long-1.5.tar.gz";
+      hash = "sha256-6Rht83Bqh379YUnyxxHWz4fdbPcvark1uoEhsiWyZcs=";
+    };
+    doCheck = false; # no `hostname' in stdenv
+    meta = {
+      description = "Try every conceivable way to get full hostname";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SysSigAction = buildPerlPackage {
+    pname = "Sys-SigAction";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz";
+      hash = "sha256-xO9sk0VTQDH8u+Ktw0f8cZTUevyUXnpE+sfpVjCV01M=";
+    };
+    doCheck = !stdenv.isAarch64; # it hangs on Aarch64
+    meta = {
+      description = "Perl extension for Consistent Signal Handling";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SysSyslog = buildPerlPackage {
+    pname = "Sys-Syslog";
+    version = "0.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAPER/Sys-Syslog-0.36.tar.gz";
+      hash = "sha256-7UKp5boErUhWzAy1040onDxdN2RUPsBO+vxK9+M3jfg=";
+    };
+    meta = {
+      description = "Perl interface to the UNIX syslog(3) calls";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SystemCommand = buildPerlPackage {
+    pname = "System-Command";
+    version = "1.122";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.122.tar.gz";
+      hash = "sha256-2bgjsmYZqmn3oGFmUKeBDolajfBi3p0iQNZdvlz+dHo=";
+    };
+    propagatedBuildInputs = [ IPCRun ];
+    buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ];
+    meta = {
+      description = "Object for running system commands";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SysVirt = buildPerlModule rec {
+    pname = "Sys-Virt";
+    version = "9.7.0";
+    src = fetchFromGitLab {
+      owner = "libvirt";
+      repo = "libvirt-perl";
+      rev = "v${version}";
+      hash = "sha256-tXXB6Gj27oFZv9WD4dXWdY55jDDLrGYbud4qoyjNe5A=";
+    };
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "Libvirt Perl API";
+      homepage = "https://libvirt.org";
+      license = with lib.licenses; [ gpl2Plus artistic1 ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin
+    };
+  };
+
+  TAPParserSourceHandlerpgTAP = buildPerlModule {
+    pname = "TAP-Parser-SourceHandler-pgTAP";
+    version = "3.36";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.36.tar.gz";
+      hash = "sha256-B75RUy4GPqxu2OWBUFRw7ryB1VBkQa8tzzK8Dr7pjGc=";
+    };
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Stream TAP from pgTAP test scripts";
+      homepage = "https://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TaskCatalystTutorial = buildPerlPackage {
+    pname = "Task-Catalyst-Tutorial";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Task-Catalyst-Tutorial-0.06.tar.gz";
+      hash = "sha256-dbGy2WFVZHhCWHFGzv0N4wlDuFGV6OPspR4PC4ZC1h4=";
+    };
+    propagatedBuildInputs = [ CatalystAuthenticationStoreDBIxClass CatalystControllerHTMLFormFu CatalystDevel CatalystManual CatalystPluginAuthorizationACL CatalystPluginAuthorizationRoles CatalystPluginSessionStateCookie CatalystPluginSessionStoreFastMmap CatalystPluginStackTrace CatalystViewTT ];
+    doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
+    meta = {
+      description = "Everything you need to follow the Catalyst Tutorial";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TaskFreecellSolverTesting = buildPerlModule {
+    pname = "Task-FreecellSolver-Testing";
+    version = "0.0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-FreecellSolver-Testing-0.0.12.tar.gz";
+      hash = "sha256-PRkQt64SVBfG4HeUeOtK8/yc+J4iGVhfiiBBFGP5k6c=";
+    };
+    buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ];
+    propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
+    meta = {
+      description = "Install the CPAN dependencies of the Freecell Solver test suite";
+      homepage = "https://metacpan.org/release/Task-FreecellSolver-Testing";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TaskPlack = buildPerlModule {
+    pname = "Task-Plack";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Task-Plack-0.28.tar.gz";
+      hash = "sha256-edUriAZUjz+Vro1qyRW6Q524SJ/mOxOdCsFym7KfXCo=";
+    };
+    propagatedBuildInputs = [ CGICompile CGIEmulatePSGI CGIPSGI Corona FCGI FCGIClient FCGIProcManager HTTPServerSimplePSGI IOHandleUtil NetFastCGI PSGI PlackAppProxy PlackMiddlewareAuthDigest PlackMiddlewareConsoleLogger PlackMiddlewareDebug PlackMiddlewareDeflater PlackMiddlewareHeader PlackMiddlewareReverseProxy PlackMiddlewareSession Starlet Starman Twiggy ];
+    buildInputs = [ ModuleBuildTiny TestSharedFork ];
+    meta = {
+      description = "Plack bundle";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TaskTestRunAllPlugins = buildPerlModule {
+    pname = "Task-Test-Run-AllPlugins";
+    version = "0.0106";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-Test-Run-AllPlugins-0.0106.tar.gz";
+      hash = "sha256-G40L8IhYBmWbwpiBDw1VCq/2gEWtwjepSaymshp9zng=";
+    };
+    buildInputs = [ TestRun TestRunCmdLine TestRunPluginAlternateInterpreters TestRunPluginBreakOnFailure TestRunPluginColorFileVerdicts TestRunPluginColorSummary TestRunPluginTrimDisplayedFilenames ];
+    meta = {
+      description = "Specifications for installing all the Test::Run";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TaskWeaken = buildPerlPackage {
+    pname = "Task-Weaken";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Task-Weaken-1.06.tar.gz";
+      hash = "sha256-I4P+252672RkaOqCSvv3yAEHZyDPug3yp6B0cm3NZr4=";
+    };
+    meta = {
+      description = "Ensure that a platform has weaken support";
+      homepage = "https://github.com/karenetheridge/Task-Weaken";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Tcl = buildPerlPackage {
+    pname = "Tcl";
+    version = "1.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VK/VKON/Tcl-1.27.tar.gz";
+      hash = "sha256-+DhYd6Sp7Z89OQPS0PfNcPrDzmgyxg9gCmghzuP7WHI=";
+    };
+    propagatedBuildInputs = [
+      pkgs.bwidget
+      pkgs.tcl
+      pkgs.tix
+      pkgs.tk
+    ] ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.CoreServices ];
+    makeMakerFlags = lib.optionals stdenv.isLinux
+      [ "--tclsh=${pkgs.tcl}/bin/tclsh" "--nousestubs" ];
+    meta = {
+      description = "Tcl extension module for Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TclpTk = buildPerlPackage {
+    pname = "Tcl-pTk";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CAC/Tcl-pTk-1.11.tar.gz";
+      hash = "sha256-05PxKxzN7I8ZbN27WJHZSEx5qpQQWmN22f+cRg2CDN0=";
+    };
+    propagatedBuildInputs = [
+      ClassISA
+      SubName
+      Tcl
+      TestDeep
+    ];
+    buildPhase = ''
+      perl Makefile.PL --tclsh "${pkgs.tk.tcl}/bin/tclsh" INSTALL_BASE=$out --no-test-for-tk
+    '';
+    postInstall = ''
+      mkdir -p $out/lib/perl5/site_perl
+      mv $out/lib/perl5/Tcl $out/lib/perl5/site_perl/
+      mv $out/lib/perl5/auto $out/lib/perl5/site_perl/
+    '' + lib.optionalString stdenv.isDarwin ''
+      mv $out/lib/perl5/darwin-thread-multi-2level $out/lib/perl5/site_perl/
+    '';
+    meta = {
+      description = "Interface to Tcl/Tk with Perl/Tk compatible syntax";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TemplatePluginAutoformat = buildPerlPackage {
+    pname = "Template-Plugin-Autoformat";
+    version = "2.77";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KARMAN/Template-Plugin-Autoformat-2.77.tar.gz";
+      hash = "sha256-vd+0kZ8Kuyor56lmUzPg1OCYAy8OOD268ExNiWx0hu0=";
+    };
+    propagatedBuildInputs = [ TemplateToolkit TextAutoformat ];
+    meta = {
+      description = "TT plugin for Text::Autoformat";
+      homepage = "https://github.com/karpet/template-plugin-autoformat";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TemplatePluginClass = buildPerlPackage {
+    pname = "Template-Plugin-Class";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Template-Plugin-Class-0.14.tar.gz";
+      hash = "sha256-BgT+iue/OtlnnmTZsa1MnpAUwXeqgOg11SqG942XB8M=";
+    };
+    propagatedBuildInputs = [ TemplateToolkit ];
+    meta = {
+      description = "Allow calling of class methods on arbitrary classes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TemplatePluginIOAll = buildPerlPackage {
+    pname = "Template-Plugin-IO-All";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XE/XERN/Template-Plugin-IO-All-0.01.tar.gz";
+      hash = "sha256-H3RFQiohky4Ju++TV2bgr2t8zrCI6djgMM16hLzcXuQ=";
+    };
+    propagatedBuildInputs = [ IOAll TemplateToolkit ];
+    meta = {
+      description = "Perl Template Toolkit Plugin for IO::All";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ eelco ];
+    };
+  };
+
+  TemplatePluginJavaScript = buildPerlPackage {
+    pname = "Template-Plugin-JavaScript";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Template-Plugin-JavaScript-0.02.tar.gz";
+      hash = "sha256-6iDYBq1lIoLQNTSY4oYN+BJcgLZJFjDCXSY72IDGGNc=";
+    };
+    propagatedBuildInputs = [ TemplateToolkit ];
+    meta = {
+      description = "Encodes text to be safe in JavaScript";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TemplatePluginJSONEscape = buildPerlPackage {
+    pname = "Template-Plugin-JSON-Escape";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NA/NANTO/Template-Plugin-JSON-Escape-0.02.tar.gz";
+      hash = "sha256-BRqLHTvGAdWPxR4kYGfTZFDP6XAnigRW6KthlA8TzYY=";
+    };
+    propagatedBuildInputs = [ JSON TemplateToolkit ];
+    meta = {
+      description = "Adds a .json vmethod and a json filter";
+      license = with lib.licenses; [ bsd0 ];
+    };
+  };
+
+  TemplateTimer = buildPerlPackage {
+    pname = "Template-Timer";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-1.00.tar.gz";
+      hash = "sha256-tzFMs2UgnZNVe4BU4DEa6MPLXRydIo0es+P8GTpbd7Q=";
+    };
+    propagatedBuildInputs = [ TemplateToolkit ];
+    meta = {
+      description = "Rudimentary profiling for Template Toolkit";
+      license = with lib.licenses; [ artistic2 gpl3Only ];
+    };
+  };
+
+  TemplateTiny = buildPerlPackage {
+    pname = "Template-Tiny";
+    version = "1.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Template-Tiny-1.14.tar.gz";
+      hash = "sha256-gZz6tgREg8/ijOsof938MXaiAlsbbw6YCy3MJtImm0w=";
+    };
+    meta = {
+      description = "Template Toolkit reimplemented in as little code as possible";
+      homepage = "https://github.com/karenetheridge/Template-Tiny";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TemplateToolkit = buildPerlPackage {
+    pname = "Template-Toolkit";
+    version = "3.101";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-3.101.tar.gz";
+      hash = "sha256-0qMt1sIeSzfGqT34CHyp6IDPrmE6Pl766jB7C9yu21g=";
+    };
+    doCheck = !stdenv.isDarwin;
+    propagatedBuildInputs = [ AppConfig ];
+    buildInputs = [ CGI TestLeakTrace ];
+    meta = {
+      description = "Comprehensive template processing system";
+      homepage = "http://www.template-toolkit.org";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TemplateGD = buildPerlPackage {
+    pname = "Template-GD";
+    version = "2.66";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABW/Template-GD-2.66.tar.gz";
+      hash = "sha256-mFI8gZLy6BhAQuWi4XK9dnrCid0uSA819oDc4yFgkFs=";
+    };
+    propagatedBuildInputs = [ GD TemplateToolkit ];
+    meta = {
+      description = "GD plugin(s) for the Template Toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermEncoding = buildPerlPackage {
+    pname = "Term-Encoding";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.03.tar.gz";
+      hash = "sha256-lbqWh9c10lo8vmRQjXiU8AnH+ioXJsPnhuniHaIlHQs=";
+    };
+    meta = {
+      description = "Detect encoding of the current terminal";
+      homepage = "https://github.com/miyagawa/Term-Encoding";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermProgressBar = buildPerlPackage {
+    pname = "Term-ProgressBar";
+    version = "2.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/Term-ProgressBar-2.23.tar.gz";
+      hash = "sha256-3vwD+59KwcnfE1nTEr/zwIZd3vvzq6ZM1CppqGIV1J0=";
+    };
+    buildInputs = [ CaptureTiny TestException TestWarnings ];
+    propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
+    meta = {
+      description = "Provide a progress meter on a standard terminal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermProgressBarQuiet = buildPerlPackage {
+    pname = "Term-ProgressBar-Quiet";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz";
+      hash = "sha256-JWdSkvWIvCnTLnEM82Z9qaKhdR4TmAF3Cp/bGM0hhKY=";
+    };
+    propagatedBuildInputs = [ IOInteractive TermProgressBar ];
+    buildInputs = [ TestMockObject ];
+    meta = {
+      description = "Provide a progress meter if run interactively";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermProgressBarSimple = buildPerlPackage {
+    pname = "Term-ProgressBar-Simple";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz";
+      hash = "sha256-og2zxn1b39DB+rOSxtHCaICn7oQ69gKvT5tTpwQ1eaY=";
+    };
+    propagatedBuildInputs = [ TermProgressBarQuiet ];
+    buildInputs = [ TestMockObject ];
+    meta = {
+      description = "Simpler progress bars";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermReadKey = let
+    cross = stdenv.hostPlatform != stdenv.buildPlatform;
+  in buildPerlPackage {
+    pname = "TermReadKey";
+    version = "2.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz";
+      hash = "sha256-WmRYeNxXCsM2YVgfuwkP8k684X1D6lP9IuEFqFakcpA=";
+    };
+
+    # use native libraries from the host when running build commands
+    postConfigure = lib.optionalString cross (let
+      host_perl = perl.perlOnBuild;
+      host_self = perl.perlOnBuild.pkgs.TermReadKey;
+      perl_lib = "${host_perl}/lib/perl5/${host_perl.version}";
+      self_lib = "${host_self}/lib/perl5/site_perl/${host_perl.version}";
+    in ''
+      sed -ie 's|"-I$(INST_ARCHLIB)"|"-I${perl_lib}" "-I${self_lib}"|g' Makefile
+    '');
+
+    # TermReadKey uses itself in the build process
+    nativeBuildInputs = lib.optionals cross [
+      perl.perlOnBuild.pkgs.TermReadKey
+    ];
+    meta = {
+      description = "A perl module for simple terminal control";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermReadLineGnu = buildPerlPackage {
+    pname = "Term-ReadLine-Gnu";
+    version = "1.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.46.tar.gz";
+      hash = "sha256-sTgyEy5QNmw0/qwSzoKDfAqds0ylMK5dJ9uXz5yWTHs=";
+    };
+    buildInputs = [ pkgs.readline pkgs.ncurses ];
+    NIX_CFLAGS_LINK = "-lreadline -lncursesw";
+
+    # For some crazy reason Makefile.PL doesn't generate a Makefile if
+    # AUTOMATED_TESTING is set.
+    env.AUTOMATED_TESTING = false;
+
+    # Makefile.PL looks for ncurses in Glibc's prefix.
+    preConfigure =
+      ''
+        substituteInPlace Makefile.PL --replace '$Config{libpth}' \
+          "'${pkgs.ncurses.out}/lib'"
+      '';
+
+    # Tests don't work because they require /dev/tty.
+    doCheck = false;
+
+    meta = {
+      description = "Perl extension for the GNU Readline/History Library";
+      homepage = "https://github.com/hirooih/perl-trg";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlsh";
+    };
+  };
+
+  TermReadLineTTYtter = buildPerlPackage {
+    pname = "Term-ReadLine-TTYtter";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CK/CKAISER/Term-ReadLine-TTYtter-1.4.tar.gz";
+      hash = "sha256-rDcxM87hshIqgnP+e0JEYT0O7O/oi2aL2Y/nHR7ErJM=";
+    };
+
+    outputs = [ "out" ];
+
+    meta = {
+      description = "A Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
+      homepage = "https://www.floodgap.com/software/ttytter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermReadPassword = buildPerlPackage rec {
+    pname = "Term-ReadPassword";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHOENIX/${pname}-${version}.tar.gz";
+      hash = "sha256-4ahmNFs1+f/vfQA34T1tTLKAMQCJ+YwgcTiAvHD7QyM=";
+    };
+
+    outputs = [ "out" ];
+
+    meta = {
+      description = "This module lets you ask the user for a password in the traditional way, from the keyboard, without echoing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermShell = buildPerlModule {
+    pname = "Term-Shell";
+    version = "0.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Term-Shell-0.13.tar.gz";
+      hash = "sha256-U6C9smVokcUIpHDZPLfhz+qzjuqeWClWCn2LX2APa/I=";
+    };
+    propagatedBuildInputs = [ TermReadKey TextAutoformat ];
+    meta = {
+      homepage = "https://metacpan.org/release/Term-Shell";
+      description = "A simple command-line shell framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermShellUI = buildPerlPackage {
+    pname = "Term-ShellUI";
+    version = "0.92";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRONSON/Term-ShellUI-0.92.tar.gz";
+      hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s=";
+    };
+    meta = {
+      description = "A fully-featured shell-like command line environment";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TermSizeAny = buildPerlPackage {
+    pname = "Term-Size-Any";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Any-0.002.tar.gz";
+      hash = "sha256-ZPpf2xrjqCMTSqqVrsdTVLwXvdnKEroKeuNKflGz3tI=";
+    };
+    propagatedBuildInputs = [ DevelHide TermSizePerl ];
+    meta = {
+      description = "Retrieve terminal size";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermSizePerl = buildPerlPackage {
+    pname = "Term-Size-Perl";
+    version = "0.031";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Perl-0.031.tar.gz";
+      hash = "sha256-rppnRssbMF3cj42MpGh4VSucESNiiXHhOidRg4IvIJ4=";
+    };
+    meta = {
+      description = "Perl extension for retrieving terminal size (Perl version)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermTable = buildPerlPackage {
+    pname = "Term-Table";
+    version = "0.017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Term-Table-0.017.tar.gz";
+      hash = "sha256-8R20JorYBE9uGhrJU0ygzTrXecQAb/83+uUA25j6yRo=";
+    };
+    propagatedBuildInputs = [ Importer ];
+    meta = {
+      description = "Format a header and rows into a table";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermSk = buildPerlPackage {
+    pname = "Term-Sk";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KE/KEICHNER/Term-Sk-0.18.tar.gz";
+      hash = "sha256-8uSReWBhIFsIaIgCsod5LX2AOwiXIzn7EHC6BWEq+IU=";
+    };
+    meta = {
+      description = "Perl extension for displaying a progress indicator on a terminal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermUI = buildPerlPackage {
+    pname = "Term-UI";
+    version = "0.50";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.50.tar.gz";
+      hash = "sha256-YL/dbUwVi4jTcBM/xlsgSFo2pFsS2QYAC4HHjKUkFj0=";
+    };
+    propagatedBuildInputs = [ LogMessageSimple ];
+    meta = {
+      description = "User interfaces via Term::ReadLine made easy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermVT102 = buildPerlPackage {
+    pname = "Term-VT102";
+    version = "0.91";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AJ/AJWOOD/Term-VT102-0.91.tar.gz";
+      hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ=";
+    };
+    meta = {
+      description = "A class to emulate a DEC VT102 terminal";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TermVT102Boundless = buildPerlPackage {
+    pname = "Term-VT102-Boundless";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FB/FBARRIOS/Term-VT102-Boundless-0.05.tar.gz";
+      hash = "sha256-4d7YWuPXa1nAO4aX9KbLAa4xvWKpNU9bt9GPnpJ7SF8=";
+    };
+    propagatedBuildInputs = [ TermVT102 ];
+    meta = {
+      description = "A Term::VT102 that grows automatically to accommodate whatever you print to it";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TermAnimation = buildPerlPackage {
+    pname = "Term-Animation";
+    version = "2.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz";
+      hash = "sha256-fVw8LU+bZXqLHc5/Xiy74CraLpfHLzoDBL88mdCEsEU=";
+    };
+    propagatedBuildInputs = [ Curses ];
+    meta = {
+      description = "ASCII sprite animation framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Test2Harness = buildPerlPackage {
+    pname = "Test2-Harness";
+    version = "1.000155";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000155.tar.gz";
+      hash = "sha256-Hvi/euDKALaHu24RXzq4yVBI5ICsmuUylzabxpSkc4s=";
+    };
+
+    checkPhase = ''
+      patchShebangs ./t ./scripts/yath
+      export AUTOMATED_TESTING=1
+      ./scripts/yath test -j $NIX_BUILD_CORES
+    '';
+
+    propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
+    meta = {
+      description = "A new and improved test harness with better Test2 integration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "yath";
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
+    };
+  };
+
+  Test2PluginMemUsage = buildPerlPackage {
+    pname = "Test2-Plugin-MemUsage";
+    version = "0.002003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-MemUsage-0.002003.tar.gz";
+      hash = "sha256-XgZi1agjrggWQfXOgoQxEe7BgxzTH4g6bG3lSv34fCU=";
+    };
+    buildInputs = [ Test2Suite ];
+    meta = {
+      description = "Collect and display memory usage information";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Test2PluginUUID = buildPerlPackage {
+    pname = "Test2-Plugin-UUID";
+    version = "0.002001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-UUID-0.002001.tar.gz";
+      hash = "sha256-TGyNSE1xU9h3ncFVqZKyAwlbXFqhz7Hui87c0GAYeMk=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ DataUUID ];
+    meta = {
+      description = "Use REAL UUIDs in Test2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Test2PluginNoWarnings = buildPerlPackage {
+    pname = "Test2-Plugin-NoWarnings";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz";
+      hash = "sha256-vj3YAAQu7zYr8X0gVs+ek03ukczOmOTxeLj7V3Ly+3Q=";
+    };
+    buildInputs = [ IPCRun3 Test2Suite ];
+    propagatedBuildInputs = [ TestSimple13 ];
+    meta = {
+      description = "Fail if tests warn";
+      homepage = "https://metacpan.org/release/Test2-Plugin-NoWarnings";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  Test2Suite = buildPerlPackage {
+    pname = "Test2-Suite";
+    version = "0.000156";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000156.tar.gz";
+      hash = "sha256-vzgq5y86k79+02iFEY+uL/qw/xF3Q/WQON8lTv7yyU4=";
+    };
+    propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
+    meta = {
+      description = "Distribution with a rich set of tools built upon the Test2 framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Test2ToolsFFI = buildPerlPackage {
+    pname = "Test2-Tools-FFI";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-FFI-0.06.tar.gz";
+      hash = "sha256-MA28QKEubG+7y7lv05uQK+bZZXJtrx5qtzuKCv0lLy8=";
+    };
+    buildInputs = [ FileShareDirInstall Test2Suite ];
+    propagatedBuildInputs = [ CaptureTiny FFICheckLib FFIPlatypus FileShareDirDist ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Test2::Tools::FFI";
+      description = "Tools for testing FFI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  Test2ToolsMemoryCycle = buildPerlPackage {
+    pname = "Test2-Tools-MemoryCycle";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-MemoryCycle-0.01.tar.gz";
+      hash = "sha256-U1s9ylQqMyUVEq3ktafb6+PESNg/iA0ZjkPcEnl5aYs=";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ DevelCycle PadWalker ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Test2::Tools::MemoryCycle";
+      description = "Check for memory leaks and circular memory references";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ tomasajt ];
+    };
+  };
+
+  TestAbortable = buildPerlPackage {
+    pname = "Test-Abortable";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.003.tar.gz";
+      hash = "sha256-TVPDXvPLf5wXUrqfEdOpeiETt9hMJg6rj5p8G4Aba40=";
+    };
+    propagatedBuildInputs = [ SubExporter ];
+    buildInputs = [ TestNeeds ];
+    meta = {
+      description = "Subtests that you can die your way out of ... but survive";
+      homepage = "https://github.com/rjbs/Test-Abortable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestAssert = buildPerlModule {
+    pname = "Test-Assert";
+    version = "0.0504";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Assert-0.0504.tar.gz";
+      hash = "sha256-z6NtqWxQQzH/ICZ0e6R9R37+g1z2zyNO4QywX6n7i6Q=";
+    };
+    buildInputs = [ ClassInspector TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionBase constantboolean ];
+    meta = {
+      description = "Assertion methods for those who like JUnit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestAssertions = buildPerlPackage {
+    pname = "Test-Assertions";
+    version = "1.054";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBC/Test-Assertions-1.054.tar.gz";
+      hash = "sha256-/NzkHVcnOIFYGt9oCiCmrfUaTDt+McP2mGb7kQk3AoA=";
+    };
+    propagatedBuildInputs = [ LogTrace ];
+    meta = {
+      description = "A simple set of building blocks for both unit and runtime testing";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  TestAggregate = buildPerlModule {
+    pname = "Test-Aggregate";
+    version = "0.375";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Test-Aggregate-0.375.tar.gz";
+      hash = "sha256-xswKv9DU/OhTcazKk+wkU4GEHTK0yqLWR15LyBMEJ9E=";
+    };
+    buildInputs = [ TestMost TestNoWarnings TestTrap ];
+    meta = {
+      description = "Aggregate *.t tests to make them run faster";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = true; # This module only works with Test::More version < 1.3, but you have 1.302133
+    };
+  };
+
+
+  TestBase = buildPerlPackage {
+    pname = "Test-Base";
+    version = "0.89";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/Test-Base-0.89.tar.gz";
+      hash = "sha256-J5Shqq6x06KH3SxyhiWGY3llYvfbnMxrQkvE8d6K0BQ=";
+    };
+    propagatedBuildInputs = [ Spiffy ];
+    buildInputs = [ AlgorithmDiff TextDiff ];
+    meta = {
+      description = "A Data Driven Testing Framework";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestBits = buildPerlPackage {
+    pname = "Test-Bits";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test-Bits-0.02.tar.gz";
+      hash = "sha256-qYJvVkg6J+LGMVZZDzKKNjPjA3XBDfyJ9mkOOSneC8M=";
+    };
+    propagatedBuildInputs = [ ListAllUtils ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Provides a bits_is() subroutine for testing binary data";
+      homepage = "https://metacpan.org/release/Test-Bits";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestCheckDeps = buildPerlPackage {
+    pname = "Test-CheckDeps";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Test-CheckDeps-0.010.tar.gz";
+      hash = "sha256-ZvzMpsbzMOfsyJi9alGEbiFFs+AteMSZe6a33iO1Ue4=";
+    };
+    propagatedBuildInputs = [ CPANMetaCheck ];
+    meta = {
+      description = "Check for presence of dependencies";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestClass = buildPerlPackage {
+    pname = "Test-Class";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SZ/SZABGAB/Test-Class-0.52.tar.gz";
+      hash = "sha256-QMGx04jwqGdHacJ1KfDMNjTKD9nY9ysZbAUxYRk0vII=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ MROCompat ModuleRuntime TryTiny ];
+    meta = {
+      description = "Easily create test classes in an xUnit/JUnit style";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestClassMost = buildPerlModule {
+    pname = "Test-Class-Most";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz";
+      hash = "sha256-Y0ze2Gu6Xd4Hztcv+4pGcF/5OqhEuY6WveBVQCNMff8=";
+    };
+    buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ];
+    meta = {
+      description = "Test Classes the easy way";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestCleanNamespaces = buildPerlPackage {
+    pname = "Test-CleanNamespaces";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.24.tar.gz";
+      hash = "sha256-M41VaejommVJNfhD7AvISqpIb+jdGJj7nKs+zOzVMno=";
+    };
+    buildInputs = [ Filepushd Moo Mouse RoleTiny SubExporter TestDeep TestNeeds TestWarnings namespaceclean ];
+    propagatedBuildInputs = [ PackageStash SubIdentify ];
+    meta = {
+      description = "Check for uncleaned imports";
+      homepage = "https://github.com/karenetheridge/Test-CleanNamespaces";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestCmd = buildPerlPackage {
+    pname = "Test-Cmd";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz";
+      hash = "sha256-zzMg7N3nkeC4lFogwfbyZdkPHj2rGPHiPLZ3x51yloQ=";
+    };
+      doCheck = false; /* test fails */
+    meta = {
+      description = "Perl module for portable testing of commands and scripts";
+      homepage = "https://github.com/neilb/Test-Cmd";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestCommand = buildPerlModule {
+    pname = "Test-Command";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz";
+      hash = "sha256-KKP8b+pzoZ9WPxG9DygYZ1bUx0IHvm3qyq0m0ggblTM=";
+    };
+    meta = {
+      description = "Test routines for external commands";
+      homepage = "https://metacpan.org/release/Test-Command";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestCompile = buildPerlModule {
+    pname = "Test-Compile";
+    version = "3.3.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v3.3.1.tar.gz";
+      hash = "sha256-gIRQ89Ref0GapNZo4pgodonp6jY4hpO/8YDXhwzj5iE=";
+    };
+    propagatedBuildInputs = [ UNIVERSALrequire ];
+    meta = {
+      description = "Assert that your Perl files compile OK";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestCPANMeta = buildPerlPackage {
+    pname = "Test-CPAN-Meta";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-0.25.tar.gz";
+      hash = "sha256-9VtPnPa8OW0P6AJyZ2hcsqxK/86JfQlnoxf6xttajbU=";
+    };
+    meta = {
+      description = "Validate your CPAN META.json files";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestCPANMetaJSON = buildPerlPackage {
+    pname = "Test-CPAN-Meta-JSON";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz";
+      hash = "sha256-Z6xQmt/7HSslao+MBSPgB2HZYBZhksYHApj3CIqa6ck=";
+    };
+    propagatedBuildInputs = [ JSON ];
+    meta = {
+      description = "Validate your CPAN META.json files";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestDataSplit = buildPerlModule {
+    pname = "Test-Data-Split";
+    version = "0.2.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Data-Split-0.2.2.tar.gz";
+      hash = "sha256-5Qg4kK2tMNfeUHA1adX1zvF0oZhZNSLqe0bOOHuCgCI=";
+    };
+    buildInputs = [ TestDifferences ];
+    propagatedBuildInputs = [ IOAll ListMoreUtils MooX MooXlate ];
+    meta = {
+      description = "Split data-driven tests into several test scripts";
+      homepage = "https://metacpan.org/release/Test-Data-Split";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestDeep = buildPerlPackage {
+    pname = "Test-Deep";
+    version = "1.204";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz";
+      hash = "sha256-tlkfbM3YU8fvyf88V1Y3BAMhHP/kYEfwgrHNFhGoTl8=";
+    };
+    meta = {
+      description = "Extremely flexible deep comparison";
+      homepage = "https://github.com/rjbs/Test-Deep";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestDeepJSON = buildPerlModule {
+    pname = "Test-Deep-JSON";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MOTEMEN/Test-Deep-JSON-0.05.tar.gz";
+      hash = "sha256-rshXG54xtzAeJhMsEyxoAJUtwInGRddpVKOtGms1CFg=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ ExporterLite JSONMaybeXS TestDeep ];
+    meta = {
+      description = "Compare JSON with Test::Deep";
+      homepage = "https://github.com/motemen/perl5-Test-Deep-JSON";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestDeepType = buildPerlPackage {
+    pname = "Test-Deep-Type";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Deep-Type-0.008.tar.gz";
+      hash = "sha256-bnvqGi8edTGaItHFGZbrrFDKXjZj0bwiMTCIfmLpWfE=";
+    };
+    buildInputs = [ TestFatal TestNeeds ];
+    propagatedBuildInputs = [ TestDeep TryTiny ];
+    meta = {
+      description = "A Test::Deep plugin for validating type constraints";
+      homepage = "https://github.com/karenetheridge/Test-Deep-Type";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestDiagINC = buildPerlPackage {
+    pname = "Test-DiagINC";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-DiagINC-0.010.tar.gz";
+      hash = "sha256-W8uNNWxQnjWdU9hpwH79qo/uXWz5mJcBi5qRTOshIi4=";
+    };
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      homepage = "https://github.com/dagolden/Test-DiagINC";
+      description = "List modules and versions loaded if tests fail";
+      license = lib.licenses.asl20;
+    };
+  };
+
+  TestDir = buildPerlPackage {
+    pname = "Test-Dir";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MT/MTHURN/Test-Dir-1.16.tar.gz";
+      hash = "sha256-czKzI5E+tqJoTQlHVRljBLL4YG9w6quRNlTKkfJz6sI=";
+    };
+    meta = {
+      description = "Test directory attributes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestDifferences = buildPerlPackage {
+    pname = "Test-Differences";
+    version = "0.70";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Test-Differences-0.70.tar.gz";
+      hash = "sha256-vuG1GGqpuif+0r8bBnRSDQvQzQUdkTOH+QhsH5SlaFQ=";
+    };
+    propagatedBuildInputs = [ CaptureTiny TextDiff ];
+    meta = {
+      description = "Test strings and data structures and show differences if not ok";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestDistManifest = buildPerlModule {
+    pname = "Test-DistManifest";
+    version = "1.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-1.014.tar.gz";
+      hash = "sha256-PSbCDfQmKJgcv8+lscoCjGzq2zRMHc+XolrWqItz18U=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ ModuleManifest ];
+    meta = {
+      description = "Author test that validates a package MANIFEST";
+      homepage = "https://github.com/jawnsy/Test-DistManifest";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestEOL = buildPerlPackage {
+    pname = "Test-EOL";
+    version = "2.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-2.02.tar.gz";
+      hash = "sha256-KDGZ1/sngH/iImr3sSVxxtwlCNjlwP61BdCJ0xcgr8Q=";
+    };
+    meta = {
+      description = "Check the correct line endings in your project";
+      homepage = "https://github.com/karenetheridge/Test-EOL";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestException = buildPerlPackage {
+    pname = "Test-Exception";
+    version = "0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz";
+      hash = "sha256-FWsT8Hdk92bYtFpDco8kOa+Bo1EmJUON6reDt4g+tTM=";
+    };
+    propagatedBuildInputs = [ SubUplevel ];
+    meta = {
+      description = "Test exception-based code";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestExpect = buildPerlPackage {
+    pname = "Test-Expect";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Test-Expect-0.34.tar.gz";
+      hash = "sha256-Jij87N2l9km9JTI/ZGuWoaB+RVfK3LMnybrU3EG7uZk=";
+    };
+    propagatedBuildInputs = [ ClassAccessorChained ExpectSimple ];
+    meta = {
+      description = "Automated driving and testing of terminal-based programs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestFailWarnings = buildPerlPackage {
+    pname = "Test-FailWarnings";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-0.008.tar.gz";
+      hash = "sha256-2jTvkCn2hJ1gJiAdSRJ9BU7mrEuXnIIhAxX1chlkqW8=";
+    };
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      description = "Add test failures if warnings are caught";
+      homepage = "https://github.com/dagolden/Test-FailWarnings";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  TestFakeHTTPD = buildPerlModule {
+    pname = "Test-Fake-HTTPD";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MASAKI/Test-Fake-HTTPD-0.09.tar.gz";
+      hash = "sha256-FPecsGepCSLpvlVPjks509aXeK5Mj/9E9WD2N/tvLR4=";
+    };
+    propagatedBuildInputs = [ HTTPDaemon Plack ];
+    buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ];
+    meta = {
+      description = "A fake HTTP server";
+      homepage = "https://github.com/masaki/Test-Fake-HTTPD";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestFatal = buildPerlPackage {
+    pname = "Test-Fatal";
+    version = "0.017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz";
+      hash = "sha256-N9//2vuEt2Lv6WsC+yqkHzcCbHPmuDWQ23YilpfzxKY=";
+    };
+    propagatedBuildInputs = [ TryTiny ];
+    meta = {
+      description = "Incredibly simple helpers for testing code with exceptions";
+      homepage = "https://github.com/rjbs/Test-Fatal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestFile = buildPerlPackage {
+    pname = "Test-File";
+    version = "1.993";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-File-1.993.tar.gz";
+      hash = "sha256-7y/+Gq7HtC2HStQR7GR1R7m5vC9fuT5J4zmUiEVq/Ho=";
+    };
+    meta = {
+      description = "Test file attributes";
+      homepage = "https://github.com/briandfoy/test-file";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestFileContents = buildPerlPackage {
+    pname = "Test-File-Contents";
+    version = "0.242";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Test-File-Contents-0.242.tar.gz";
+      hash = "sha256-qDisC29uEOiWE7UMphdzzbqbpHh7qC57tl2q9whKpQs=";
+    };
+    propagatedBuildInputs = [ TextDiff ];
+    meta = {
+      description = "Test routines for examining the contents of files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestFileShareDir = buildPerlPackage {
+    pname = "Test-File-ShareDir";
+    version = "1.001002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz";
+      hash = "sha256-szZHy7Sy8vz73k+LtDg9CslcL4nExXcOtpHxZDozeq0=";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ClassTiny FileCopyRecursive FileShareDir PathTiny ScopeGuard ];
+    meta = {
+      description = "Create a Fake ShareDir for your modules for testing";
+      homepage = "https://github.com/kentnl/Test-File-ShareDir";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestFilename = buildPerlPackage {
+    pname = "Test-Filename";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-0.03.tar.gz";
+      hash = "sha256-akUMxMYoHtESnzKhwHQfIoln/touMqKRX/Yhw2Ul/L4=";
+    };
+    propagatedBuildInputs = [ PathTiny ];
+    meta = {
+      description = "Portable filename comparison";
+      homepage = "https://metacpan.org/release/Test-Filename";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  TestFork = buildPerlModule {
+    pname = "Test-Fork";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Fork-0.02.tar.gz";
+      hash = "sha256-/P77+yT4havoJ8KtB6w9Th/s8hOhRxf8rzw3F1BF0D4=";
+    };
+    meta = {
+      description = "Test code which forks";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestFutureIOImpl = buildPerlModule {
+    pname = "Test-Future-IO-Impl";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Future-IO-Impl-0.14.tar.gz";
+      hash = "sha256-AH22GdPUljQyXFbvvKDh5Vdt0z95RV8t6llb5u344jU=";
+    };
+    propagatedBuildInputs = [ Test2Suite ];
+    meta = {
+      description = "Acceptance tests for C<Future::IO> implementations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestHarnessStraps = buildPerlModule {
+    pname = "Test-Harness-Straps";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Harness-Straps-0.30.tar.gz";
+      hash = "sha256-iwDvqjVyPBo1yMj1+kapnkvFKN+lIDUrVKxBjvbRz6g=";
+    };
+    meta = {
+      description = "Detailed analysis of test results";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestHexDifferences = buildPerlPackage {
+    pname = "Test-HexDifferences";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz";
+      hash = "sha256-pjlF7N1CCvwxEJT5OiIM+zXfIyQt5hnlO6Z0d6E2kKI=";
+    };
+    propagatedBuildInputs = [ SubExporter TextDiff ];
+    buildInputs = [ TestDifferences TestNoWarnings ];
+    meta = {
+      description = "Test binary as hexadecimal string";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestHexString = buildPerlModule {
+    pname = "Test-HexString";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz";
+      hash = "sha256-fUxM3BkvJZTceP916yz00FYfeUs27g6s7oxKGqigP0A=";
+    };
+    meta = {
+      description = "Test binary strings with hex dump diagnostics";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestIdentity = buildPerlModule {
+    pname = "Test-Identity";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Identity-0.01.tar.gz";
+      hash = "sha256-LwIFAJrtFSZoGCqvoWNXqx9HtMvAAeiYcbZzh++OXyM=";
+    };
+    meta = {
+      description = "Assert the referential identity of a reference";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestHTTPServerSimple = buildPerlPackage {
+    pname = "Test-HTTP-Server-Simple";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Test-HTTP-Server-Simple-0.11.tar.gz";
+      hash = "sha256-hcl+vU3rgFKRsXJ3Ay2kiAcijyT4mxzi+zwJ96iWu3g=";
+    };
+    propagatedBuildInputs = [ HTTPServerSimple ];
+    meta = {
+      description = "Test::More functions for HTTP::Server::Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestJSON = buildPerlModule {
+    pname = "Test-JSON";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz";
+      hash = "sha256-B8CKsvzBKFDRrVT89q/prRoloJgxDD5xQq8dPLgh17M=";
+    };
+    propagatedBuildInputs = [ JSONAny ];
+    buildInputs = [ TestDifferences ];
+    meta = {
+      description = "Test JSON data";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestKwalitee = buildPerlPackage {
+    pname = "Test-Kwalitee";
+    version = "1.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz";
+      hash = "sha256-tFNs3XVbWXciMtQyXae9T7f1vlC0WF27r3WO7DBiQ6M=";
+    };
+    propagatedBuildInputs = [ ModuleCPANTSAnalyse ];
+    buildInputs = [ CPANMetaCheck TestDeep TestWarnings ];
+    meta = {
+      description = "Test the Kwalitee of a distribution before you release it";
+      homepage = "https://github.com/karenetheridge/Test-Kwalitee";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "kwalitee-metrics";
+    };
+  };
+
+  TestLWPUserAgent = buildPerlPackage {
+    pname = "Test-LWP-UserAgent";
+    version = "0.036";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.036.tar.gz";
+      hash = "sha256-BTJ1MNNGuAphpulD+9dJmGvcqJIRpOswHAjC0XkxThE=";
+    };
+    propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
+    buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
+    meta = {
+      description = "A LWP::UserAgent suitable for simulating and testing network calls";
+      homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestLeakTrace = buildPerlPackage {
+    pname = "Test-LeakTrace";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz";
+      hash = "sha256-d31k0pOPXqWGMA7vl+8D6stD1MGFPJw7EJHrMxFGeXA=";
+    };
+    meta = {
+      description = "Traces memory leaks";
+      homepage = "https://metacpan.org/release/Test-LeakTrace";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestLectroTest = buildPerlPackage {
+    pname = "Test-LectroTest";
+    version = "0.5001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TM/TMOERTEL/Test-LectroTest-0.5001.tar.gz";
+      hash = "sha256-rCtPDZWJmvGhoex4TLdAsrkCVqvuEcg+eykRA+ye1zU=";
+    };
+    meta = {
+      description = "Easy, automatic, specification-based tests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestLoadAllModules = buildPerlPackage {
+    pname = "Test-LoadAllModules";
+    version = "0.022";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KI/KITANO/Test-LoadAllModules-0.022.tar.gz";
+      hash = "sha256-G4YfVVAgZIp0gdStKBqJ5iQYf4lDepizRjVpGyZeXP4=";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ModulePluggable ];
+    meta = {
+      description = "Do use_ok for modules in search path";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestLongString = buildPerlPackage {
+    pname = "Test-LongString";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz";
+      hash = "sha256-q8Q0nq8E0b7B5GQWajAYWR6oRtjzxcnIr0rEkF0+l08=";
+    };
+    meta = {
+      description = "Tests strings for equality, with more helpful failures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMemoryCycle = buildPerlPackage {
+    pname = "Test-Memory-Cycle";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz";
+      hash = "sha256-nVPd/clkzYRUyw2kxpW2o65HtFg5KRw0y52NHPqrMgI=";
+    };
+    propagatedBuildInputs = [ DevelCycle PadWalker ];
+    meta = {
+      description = "Verifies code hasn't left circular references";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestMemoryGrowth = buildPerlModule {
+    pname = "Test-MemoryGrowth";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.04.tar.gz";
+      hash = "sha256-oGWFJ1Kr1J5BFbmPbbRsdSy71ePkjtAUXO45L3k9LtA=";
+    };
+    meta = {
+      description = "Assert that code does not cause growth in memory usage";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestMemoryGrowth.x86_64-darwin
+    };
+  };
+
+  TestMetricsAny = buildPerlModule {
+    pname = "Test-Metrics-Any";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz";
+      hash = "sha256-JQbIjU6yGydLEIX4BskY3Ml//2nhbRJJ5uGdlDYl5Gg=";
+    };
+    propagatedBuildInputs = [ MetricsAny ];
+    meta = {
+      description = "Assert that code produces metrics via Metrics::Any";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMockClass = buildPerlModule {
+    pname = "Test-Mock-Class";
+    version = "0.0303";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Mock-Class-0.0303.tar.gz";
+      hash = "sha256-zS5S/inKCrtsLmGvvDP7Qui+tCGzhL5rwGSs8xl28wI=";
+    };
+    buildInputs = [ ClassInspector TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ FatalException Moose namespaceclean ];
+    meta = {
+      description = "Simulating other classes";
+      license = with lib.licenses; [ lgpl2Plus ];
+    };
+  };
+
+  TestMockGuard = buildPerlModule {
+    pname = "Test-Mock-Guard";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/X/XA/XAICRON/Test-Mock-Guard-0.10.tar.gz";
+      hash = "sha256-fyKKY/jWzrkqp4QIChPoUHMSGyg17KBteU+XCZUNvT0=";
+    };
+    propagatedBuildInputs = [ ClassLoad ];
+    meta = {
+      description = "Simple mock test library using RAII";
+      homepage = "https://github.com/zigorou/p5-test-mock-guard";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMockHTTPTiny = buildPerlPackage {
+    pname = "Test-Mock-HTTP-Tiny";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OD/ODYNIEC/Test-Mock-HTTP-Tiny-0.002.tar.gz";
+      hash = "sha256-+c+tfYUEZQvtNJO8bSyoLXuRvDcTyGxDXnXriKxb5eY=";
+    };
+    propagatedBuildInputs = [ TestDeep URI ];
+    meta = {
+      description = "Record and replay HTTP requests/responses with HTTP::Tiny";
+      homepage = "https://github.com/odyniec/p5-Test-Mock-HTTP-Tiny";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMockModule = buildPerlModule {
+    pname = "Test-MockModule";
+    version = "0.177.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.177.0.tar.gz";
+      hash = "sha256-G9p6SdzqdgdtQKe2psPz4V5rGchLYXHfRFNNkROPEEU=";
+    };
+    propagatedBuildInputs = [ SUPER ];
+    buildInputs = [ TestWarnings ];
+    meta = {
+      description = "Override subroutines in a module for unit testing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  SUPER = buildPerlModule {
+    pname = "SUPER";
+    version = "1.20190531";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/SUPER-1.20190531.tar.gz";
+      hash = "sha256-aF0e525/DpAGlCkjv334sRwQcTKZKRdZPc9zl9QX05o=";
+    };
+    propagatedBuildInputs = [ SubIdentify ];
+    meta = {
+      description = "Control superclass method dispatch";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+
+  TestMockObject = buildPerlPackage {
+    pname = "Test-MockObject";
+    version = "1.20200122";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.20200122.tar.gz";
+      hash = "sha256-K3+A2of1pv4DYNnuUhBRBTAXRCw6Juhdto36yfgwdiM=";
+    };
+    buildInputs = [ TestException TestWarn ];
+    propagatedBuildInputs = [ UNIVERSALcan UNIVERSALisa ];
+    meta = {
+      description = "Perl extension for emulating troublesome interfaces";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMockTime = buildPerlPackage {
+    pname = "Test-MockTime";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz";
+      hash = "sha256-M2PhGLJgbx1qvJVvIrDQkQl3K3CGFV+1ycf5gzUGAvk=";
+    };
+    meta = {
+      description = "Replaces actual time with simulated time";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMockTimeHiRes = buildPerlModule {
+    pname = "Test-MockTime-HiRes";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz";
+      hash = "sha256-X0n3rviV0yfa/fJ0TznBdsirDkuCJ9LW495omiWb3sE=";
+    };
+    buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestRequires ];
+    propagatedBuildInputs = [ TestMockTime ];
+    meta = {
+      description = "Replaces actual time with simulated high resolution time";
+      homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMojibake = buildPerlPackage {
+    pname = "Test-Mojibake";
+    version = "1.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-1.3.tar.gz";
+      hash = "sha256-j/51/5tpNSSIcn3Kc9uR+KoUtZ8voQTrdxfA1xpfGzM=";
+    };
+    meta = {
+      description = "Check your source for encoding misbehavior";
+      homepage = "https://github.com/creaktive/Test-Mojibake";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scan_mojibake";
+    };
+  };
+
+  TestMoreUTF8 = buildPerlPackage {
+    pname = "Test-More-UTF8";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz";
+      hash = "sha256-ufHEs2qXzf76pT7REV3Tj0tIMDd3X2VZ7h3xSs/RzgQ=";
+    };
+    meta = {
+      description = "Enhancing Test::More for UTF8-based projects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMost = buildPerlPackage {
+    pname = "Test-Most";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.38.tar.gz";
+      hash = "sha256-CJ64lPe6zkw3xjNODikOsgM47hAiOvDILL5ygceDgt8=";
+    };
+    propagatedBuildInputs = [ ExceptionClass ];
+    buildInputs = [ TestDeep TestDifferences TestException TestWarn ];
+    meta = {
+      description = "Most commonly needed test functions and features";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Testmysqld = buildPerlModule {
+    pname = "Test-mysqld";
+    version = "1.0013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz";
+      hash = "sha256-V61BoJBXyWO1gsgaB276UPpW664hd9gwd33oOGBePu8=";
+    };
+    buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ];
+    propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ];
+    meta = {
+      description = "Mysqld runner for tests";
+      homepage = "https://github.com/kazuho/p5-test-mysqld";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  TestNeeds = buildPerlPackage {
+    pname = "Test-Needs";
+    version = "0.002010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz";
+      hash = "sha256-kj/9x4/LqWYJdT5LriawugGGiT3kpjzVI24BLHyQ4gg=";
+    };
+    meta = {
+      description = "Skip tests when modules not available";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestNoTabs = buildPerlPackage {
+    pname = "Test-NoTabs";
+    version = "2.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-2.02.tar.gz";
+      hash = "sha256-+3XGo4ch8BaeEcHn2+UyntchaIWgsBEj80LdhtM1YDA=";
+    };
+    meta = {
+      description = "Check the presence of tabs in your project";
+      homepage = "https://github.com/karenetheridge/Test-NoTabs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestNoWarnings = buildPerlPackage {
+    pname = "Test-NoWarnings";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Test-NoWarnings-1.06.tar.gz";
+      hash = "sha256-wtxRFDt+tjIxIQ4n3yDSyDk3cuCjM1R+yLeiBe1i9zc=";
+    };
+    meta = {
+      description = "Make sure you didn't emit any warnings while testing";
+      license = with lib.licenses; [ lgpl21Only ];
+    };
+  };
+
+  TestObject = buildPerlPackage {
+    pname = "Test-Object";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Object-0.08.tar.gz";
+      hash = "sha256-ZSeJZBR4NzE/QQjlW1lnboo2TW7fAbPcGYruiUqx0Ls=";
+    };
+    meta = {
+      description = "Thoroughly testing objects via registered handlers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestOutput = buildPerlPackage {
+    pname = "Test-Output";
+    version = "1.034";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Output-1.034.tar.gz";
+      hash = "sha256-zULigBwNK0gtGMn7SwbHVwVIGLy7KCTl378zrXo9aaA=";
+    };
+    propagatedBuildInputs = [ CaptureTiny ];
+    meta = {
+      description = "Utilities to test STDOUT and STDERR messages";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestPAUSEPermissions = buildPerlPackage {
+    pname = "Test-PAUSE-Permissions";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz";
+      hash = "sha256-VXDBu/KbxjeoRWcIuaJ0bPT8usE3SF7f82D48I5xBz4=";
+    };
+    propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
+    meta = {
+      description = "Tests module permissions in your distribution";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestPerlCritic = buildPerlModule {
+    pname = "Test-Perl-Critic";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz";
+      hash = "sha256-KPgGtUEseQi1bPFnMIS4tEzhy1TJQX14TZFCjhoECW4=";
+    };
+    propagatedBuildInputs = [ MCE PerlCritic ];
+    meta = {
+      description = "Use Perl::Critic in test programs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestPerlTidy = buildPerlModule rec {
+    pname = "Test-PerlTidy";
+    version = "20230226";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20230226.tar.gz";
+      hash = "sha256-wOJCEQeVeV1Nu2xEFmzlV09cftuninidG8rnZoXYA8E=";
+    };
+    propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ];
+    buildInputs = [ TestPerlCritic ];
+    meta = {
+      description = "Check that all your files are tidy";
+      homepage = "https://metacpan.org/release/Test-PerlTidy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestPod = buildPerlPackage {
+    pname = "Test-Pod";
+    version = "1.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Pod-1.52.tar.gz";
+      hash = "sha256-YKjbzGAWi/HapcwjUCNt+TQ+mHj0q5gwlwpd3m/o5fw=";
+    };
+    meta = {
+      description = "Check for POD errors in files";
+      homepage = "https://search.cpan.org/dist/Test-Pod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestPodCoverage = buildPerlPackage {
+    pname = "Test-Pod-Coverage";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz";
+      hash = "sha256-SMnMqffZnu50EXZEW0Ma3wnAKeGqV8RwPJ9G92AdQNQ=";
+    };
+    propagatedBuildInputs = [ PodCoverage ];
+    meta = {
+      description = "Check for pod coverage in your distribution";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestPodLinkCheck = buildPerlModule {
+    pname = "Test-Pod-LinkCheck";
+    version = "0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-LinkCheck-0.008.tar.gz";
+      hash = "sha256-K/53EXPDi2nusIlQTj92URuOReap5trD5hbkAOpnvPA=";
+    };
+    buildInputs = [ ModuleBuildTiny TestPod ];
+    propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ];
+    meta = {
+      description = "Tests POD for invalid links";
+      homepage = "https://search.cpan.org/dist/Test-Pod-LinkCheck";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestPodNo404s = buildPerlModule {
+    pname = "Test-Pod-No404s";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-No404s-0.02.tar.gz";
+      hash = "sha256-EcYGBW/WK9ROB5977wbEWapYnuhc3tv6DMMl6jV8jnk=";
+    };
+    propagatedBuildInputs = [ LWP URIFind ];
+    buildInputs = [ ModuleBuildTiny TestPod ];
+    meta = {
+      description = "Using this test module will check your POD for any http 404 links";
+      homepage = "https://search.cpan.org/dist/Test-Pod-No404s";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestPortabilityFiles = buildPerlPackage {
+    pname = "Test-Portability-Files";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Test-Portability-Files-0.10.tar.gz";
+      hash = "sha256-COS0MkktwbRLVdXbV5Uut2N5x/Q07o8WrKZNSR9AGhY=";
+    };
+    meta = {
+      description = "Check file names portability";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestRefcount = buildPerlModule {
+    pname = "Test-Refcount";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Refcount-0.10.tar.gz";
+      hash = "sha256-BFfCCklWRz0VfE+q/4gUFUvJP24rVDwoEqGf+OM3DrI=";
+    };
+    meta = {
+      description = "Assert reference counts on objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestRequires = buildPerlPackage {
+    pname = "Test-Requires";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz";
+      hash = "sha256-S4jeVJWX7s3ffDw4pNAgShb1mtgEV3tnGJasBOJOBA8=";
+    };
+    meta = {
+      description = "Checks to see if the module can be loaded";
+      homepage = "https://github.com/tokuhirom/Test-Requires";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestRequiresGit = buildPerlPackage {
+    pname = "Test-Requires-Git";
+    version = "1.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/Test-Requires-Git-1.008.tar.gz";
+      hash = "sha256-cJFiEJcNhNdJFFEVmri2fhUlHIwNrnw99sjYhULqQqY=";
+    };
+    propagatedBuildInputs = [ GitVersionCompare ];
+    meta = {
+      description = "Check your test requirements against the available version of Git";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestRequiresInternet = buildPerlPackage {
+    pname = "Test-RequiresInternet";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz";
+      hash = "sha256-u6ezKhzA1Yzi7CCyAKc0fGljFkHoyuj/RWetJO8egz4=";
+    };
+    meta = {
+      description = "Easily test network connectivity";
+      homepage = "https://metacpan.org/dist/Test-RequiresInternet";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestRoo = buildPerlPackage {
+    pname = "Test-Roo";
+    version = "1.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-1.004.tar.gz";
+      hash = "sha256-IRKaPOy1B7AJSOFs8V/N5dxNsjWrqEr9f0fSIBOp3tY=";
+    };
+
+    propagatedBuildInputs = [ Moo MooXTypesMooseLike SubInstall strictures ];
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      description = "Composable, reusable tests with roles and Moo";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  TestRoutine = buildPerlPackage {
+    pname = "Test-Routine";
+    version = "0.031";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.031.tar.gz";
+      hash = "sha256-f9kp7TPyVMoJkCJQGSYInHeU71d7uoYHbn2YFlYPXAc=";
+    };
+    buildInputs = [ TestAbortable TestFatal ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Composable units of assertion";
+      homepage = "https://github.com/rjbs/Test-Routine";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestRun = buildPerlModule {
+    pname = "Test-Run";
+    version = "0.0305";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-0.0305.tar.gz";
+      hash = "sha256-+Jpx3WD44qd26OYBd8ntXlkJbUAF1QvSmJuSeeCHwkg=";
+    };
+    buildInputs = [ TestTrap ];
+    propagatedBuildInputs = [ IPCSystemSimple ListMoreUtils MooseXStrictConstructor TextSprintfNamed UNIVERSALrequire ];
+    meta = {
+      description = "Base class to run standard TAP scripts";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestRunCmdLine = buildPerlModule {
+    pname = "Test-Run-CmdLine";
+    version = "0.0132";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-CmdLine-0.0132.tar.gz";
+      hash = "sha256-ssORzVRjV378dti/so6tKz1OOm+pLbDvNMANyfTPpwc=";
+    };
+    buildInputs = [ TestRun TestTrap ];
+    propagatedBuildInputs = [ MooseXGetopt UNIVERSALrequire YAMLLibYAML ];
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      description = "Analyze tests from the command line using Test::Run";
+      homepage = "http://web-cpan.berlios.de/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "runprove";
+    };
+  };
+
+  TestRunPluginAlternateInterpreters = buildPerlModule {
+    pname = "Test-Run-Plugin-AlternateInterpreters";
+    version = "0.0125";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-AlternateInterpreters-0.0125.tar.gz";
+      hash = "sha256-UsNomxRdgh8XCj8uXPM6DCkoKE3d6W1sN88VAA8ymbs=";
+    };
+    buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Define different interpreters for different test scripts with Test::Run";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestRunPluginBreakOnFailure = buildPerlModule {
+    pname = "Test-Run-Plugin-BreakOnFailure";
+    version = "0.0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-BreakOnFailure-v0.0.6.tar.gz";
+      hash = "sha256-oBgO4+LwwUQSkFXaBeKTFRC59QcXTQ+6yjwMndBNE6k=";
+    };
+    buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Stop processing the entire test suite";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestRunPluginColorFileVerdicts = buildPerlModule {
+    pname = "Test-Run-Plugin-ColorFileVerdicts";
+    version = "0.0125";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorFileVerdicts-0.0125.tar.gz";
+      hash = "sha256-HCQaLBSm/WZLRy5Lb2iP1gyHlzsxjITgFIccBn8uHkY=";
+    };
+    buildInputs = [ TestRun TestRunCmdLine TestTrap ];
+    propagatedBuildInputs = [ Moose ];
+    moreInputs = [ TestTrap ]; # Added because tests were failing without it
+    doCheck=true;
+    meta = {
+      description = "Make the file verdict ('ok', 'NOT OK')";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestRunPluginColorSummary = buildPerlModule {
+    pname = "Test-Run-Plugin-ColorSummary";
+    version = "0.0203";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorSummary-0.0203.tar.gz";
+      hash = "sha256-e9l5N5spa1EPxVuxwAuKEM00hQ5OIZf1cBtUYAY/iv0=";
+    };
+    buildInputs = [ TestRun TestRunCmdLine TestTrap ];
+    moreInputs = [ TestTrap ]; # Added because tests were failing without it
+    doCheck=true;
+    meta = {
+      description = "A Test::Run plugin that";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestRunPluginTrimDisplayedFilenames = buildPerlModule {
+    pname = "Test-Run-Plugin-TrimDisplayedFilenames";
+    version = "0.0126";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-TrimDisplayedFilenames-0.0126.tar.gz";
+      hash = "sha256-ioZJw8anmIp3N65KcW1g4MazIXMBtAFT6tNquPTqkCg=";
+    };
+    buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      description = "Trim the first components";
+      homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestRunValgrind = buildPerlModule {
+    pname = "Test-RunValgrind";
+    version = "0.2.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-0.2.2.tar.gz";
+      hash = "sha256-aRPRTK3CUbI8W3I1+NSsPeKHE41xK3W9lLACrwuPpe4=";
+    };
+    buildInputs = [ TestTrap ];
+    propagatedBuildInputs = [ PathTiny ];
+    meta = {
+      description = "Tests that an external program is valgrind-clean";
+      homepage = "https://metacpan.org/release/Test-RunValgrind";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestScript = buildPerlPackage {
+    pname = "Test-Script";
+    version = "1.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Script-1.29.tar.gz";
+      hash = "sha256-iS5+bB6nsWcQkJlCz1wL2rcO7i79SqnBbqlS4rkPiVA=";
+    };
+
+    buildInputs = [ Test2Suite ];
+
+    propagatedBuildInputs = [ CaptureTiny ProbePerl ];
+    meta = {
+      description = "Basic cross-platform tests for scripts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestScriptRun = buildPerlPackage {
+    pname = "Test-Script-Run";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SU/SUNNAVY/Test-Script-Run-0.08.tar.gz";
+      hash = "sha256-H+8hbnC8QlrOPixDcN/N3bXnmLCZ77omeSRKTVvBqwo=";
+    };
+    propagatedBuildInputs = [ IPCRun3 TestException ];
+    meta = {
+      description = "Test scripts with run";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestSharedFork = buildPerlPackage {
+    pname = "Test-SharedFork";
+    version = "0.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-SharedFork-0.35.tar.gz";
+      hash = "sha256-KTLoZWEOgHWPdkxYZ1fvjhHbEoTZWOJeS3qFCYQUxZ8=";
+    };
+    buildInputs = [ TestRequires ];
+    meta = {
+      description = "Fork test";
+      homepage = "https://github.com/tokuhirom/Test-SharedFork";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestSimple13 = buildPerlPackage {
+    pname = "Test-Simple";
+    version = "1.302195";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302195.tar.gz";
+      hash = "sha256-s5C7I1kuC5Rsla27PDCxG8Y0ooayhHvmEa2SnFfjmmw=";
+    };
+    meta = {
+      description = "Basic utilities for writing tests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestSnapshot = buildPerlPackage {
+    pname = "Test-Snapshot";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/Test-Snapshot-0.06.tar.gz";
+      hash = "sha256-9N16mlW6oiR1QK40IQzQWgT50QYb7+yXockO2pW/rkU=";
+    };
+    buildInputs = [ CaptureTiny ];
+    propagatedBuildInputs = [ TextDiff ];
+    meta = {
+      description = "Test against data stored in automatically-named file";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestSpec = buildPerlPackage {
+    pname = "Test-Spec";
+    version = "0.54";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AK/AKZHAN/Test-Spec-0.54.tar.gz";
+      hash = "sha256-CjHPEmXc7pC7xCRWrWC7Njr8f6xml//7D9SbupKhZdI=";
+    };
+    propagatedBuildInputs = [ DevelGlobalPhase PackageStash TieIxHash ];
+    buildInputs = [ TestDeep TestTrap ];
+    meta = {
+      description = "Write tests in a declarative specification style";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestSubCalls = buildPerlPackage {
+    pname = "Test-SubCalls";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-SubCalls-1.10.tar.gz";
+      hash = "sha256-y8Hps1oF5x/rwT5e9UejHIJJiZu2AR29ydn/Nm3atsI=";
+    };
+    propagatedBuildInputs = [ HookLexWrap ];
+    meta = {
+      description = "Track the number of times subs are called";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestSynopsis = buildPerlPackage {
+    pname = "Test-Synopsis";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZO/ZOFFIX/Test-Synopsis-0.17.tar.gz";
+      hash = "sha256-0mjJizPS+hTbsisg1lYbq0ie6CWH374ZrSd2IMe4tt4=";
+    };
+    meta = {
+      description = "Test your SYNOPSIS code";
+      homepage = "https://metacpan.org/release/Test-Synopsis";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestTableDriven = buildPerlPackage {
+    pname = "Test-TableDriven";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JR/JROCKWAY/Test-TableDriven-0.02.tar.gz";
+      hash = "sha256-Qlh4r88qFOBHyviRsZFen1/7A2lBYJxDjg370bWxhZo=";
+    };
+    meta = {
+      description = "Write tests, not scripts that run them";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestTempDirTiny = buildPerlPackage {
+    pname = "Test-TempDir-Tiny";
+    version = "0.018";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-TempDir-Tiny-0.018.tar.gz";
+      hash = "sha256-17eh/X/M4BaNRPuIdpGP6KmvSa4OuLCWJbZ7GNcfXoE=";
+    };
+    meta = {
+      description = "Temporary directories that stick around when tests fail";
+      homepage = "https://github.com/dagolden/Test-TempDir-Tiny";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  TestTCP = buildPerlPackage {
+    pname = "Test-TCP";
+    version = "2.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz";
+      hash = "sha256-PlPDwG1tCYCiv+uRVgK3FOaC7iEa6IwRdIzyzHFOe1c=";
+    };
+    buildInputs = [ TestSharedFork ];
+    meta = {
+      description = "Testing TCP program";
+      homepage = "https://github.com/tokuhirom/Test-TCP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestUNIXSock = buildPerlModule rec {
+    pname = "Test-UNIXSock";
+    version = "0.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FU/FUJIWARA/${pname}-${version}.tar.gz";
+      hash = "sha256-NzC0zBA0Es+/b+JHvbwwC+l94wnMmxxcvVc3E7hojz8=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ TestSharedFork TestTCP ];
+    meta = {
+      description = "Testing UNIX domain socket program";
+      homepage = "https://github.com/fujiwara/Test-UNIXSock";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestTime = buildPerlPackage {
+    pname = "Test-Time";
+    version = "0.092";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz";
+      hash = "sha256-MNkPVM6ECJPHuiysKk0e7NTJzfgFkQxZXjronf1kRzg=";
+    };
+    meta = {
+      description = "Overrides the time() and sleep() core functions for testing";
+      homepage = "https://github.com/cho45/Test-Time";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestToolbox = buildPerlModule {
+    pname = "Test-Toolbox";
+    version = "0.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz";
+      hash = "sha256-QCC1x/OhWsmxh9Bd/ZgWuAMOwNSkf/g3P3Yzu2FOvcM=";
+    };
+    meta = {
+      description = "Test::Toolbox - tools for testing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestTrailingSpace = buildPerlModule {
+    pname = "Test-TrailingSpace";
+    version = "0.0601";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0601.tar.gz";
+      hash = "sha256-q7jOdEg6Y9c/4e9gO3zgptR8mO3nMZVdc1eE+tHcT8w=";
+    };
+    buildInputs = [ FileTreeCreate ];
+    propagatedBuildInputs = [ FileFindObjectRule ];
+    meta = {
+      description = "Test for trailing space in source files";
+      homepage = "https://metacpan.org/release/Test-TrailingSpace";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TestUnitLite = buildPerlModule {
+    pname = "Test-Unit-Lite";
+    version = "0.1202";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Unit-Lite-0.1202.tar.gz";
+      hash = "sha256-NR0l7nExYoqvfjmV/h//uJOuf+bvWM8zcO0yCVP1sqg=";
+    };
+    meta = {
+      description = "Unit testing without external dependencies";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWarn = buildPerlPackage {
+    pname = "Test-Warn";
+    version = "0.37";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BIGJ/Test-Warn-0.37.tar.gz";
+      hash = "sha256-mMoy5/L16om4v7mgYJl389FT4kLi5RcFEmy5VPGga1c=";
+    };
+    propagatedBuildInputs = [ SubUplevel ];
+    meta = {
+      description = "Perl extension to test methods for warnings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWarnings = buildPerlPackage {
+    pname = "Test-Warnings";
+    version = "0.032";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.032.tar.gz";
+      hash = "sha256-Ryfa4kFunwfkHi3DqRQ7pq/8HsV2UhF8mdUAOOMT6dk=";
+    };
+    buildInputs = [ CPANMetaCheck PadWalker ];
+    meta = {
+      description = "Test for warnings and the lack of them";
+      homepage = "https://github.com/karenetheridge/Test-Warnings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWeaken = buildPerlPackage {
+    pname = "Test-Weaken";
+    version = "3.022000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/Test-Weaken-3.022000.tar.gz";
+      hash = "sha256-JjGocSExAmLg6WEHpvoO1pSHt3AVIHc77l+prMwpX1s=";
+    };
+    propagatedBuildInputs = [ ScalarListUtils ];
+    meta = {
+      description = "Test that freed memory objects were, indeed, freed";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWithoutModule = buildPerlPackage {
+    pname = "Test-Without-Module";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz";
+      hash = "sha256-PN6vraxIU+vq/miTRtVV2l36PPqdTITj5ee/7lC+7EY=";
+    };
+    meta = {
+      description = "Test fallback behaviour in absence of modules";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWWWMechanize = buildPerlPackage {
+    pname = "Test-WWW-Mechanize";
+    version = "1.60";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-WWW-Mechanize-1.60.tar.gz";
+      hash = "sha256-I/1y5+0b553h0CotFfDfCTQV4Oq2/GFf9rtoh0Emhnc=";
+    };
+    buildInputs = [ TestLongString ];
+    propagatedBuildInputs = [ CarpAssertMore HTTPServerSimple WWWMechanize ];
+    meta = {
+      description = "Testing-specific WWW::Mechanize subclass";
+      homepage = "https://github.com/libwww-perl/WWW-Mechanize";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TestWWWMechanizeCatalyst = buildPerlPackage {
+    pname = "Test-WWW-Mechanize-Catalyst";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/Test-WWW-Mechanize-Catalyst-0.62.tar.gz";
+      hash = "sha256-GDveGuerpw3LPtd3xVSCN/QsPtVR/VvGWM7obQIWrLE=";
+    };
+    doCheck = false; # listens on an external port
+    propagatedBuildInputs = [ CatalystRuntime WWWMechanize ];
+    buildInputs = [ CatalystPluginSession CatalystPluginSessionStateCookie TestException TestWWWMechanize Testutf8 ];
+    meta = {
+      description = "Test::WWW::Mechanize for Catalyst";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWWWMechanizeCGI = buildPerlPackage {
+    pname = "Test-WWW-Mechanize-CGI";
+    version = "0.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Test-WWW-Mechanize-CGI-0.1.tar.gz";
+      hash = "sha256-pXagsi470a/JJ0/FY7A3ru53cThJyev2pq1EFcFsnC8=";
+    };
+    propagatedBuildInputs = [ WWWMechanizeCGI ];
+    buildInputs = [ TestLongString TestWWWMechanize ];
+    meta = {
+      description = "Test CGI applications with Test::WWW::Mechanize";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestWWWMechanizePSGI = buildPerlPackage {
+    pname = "Test-WWW-Mechanize-PSGI";
+    version = "0.39";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/Test-WWW-Mechanize-PSGI-0.39.tar.gz";
+      hash = "sha256-R2s6s7R9U05Nag9JkAIdXTTGnsk3rAcW5mzop7yHmVg=";
+    };
+    buildInputs = [ CGI TestLongString TestWWWMechanize ];
+    propagatedBuildInputs = [ Plack ];
+    meta = {
+      description = "Test PSGI programs using WWW::Mechanize";
+      homepage = "https://github.com/acme/test-www-mechanize-psgi";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestXPath = buildPerlPackage {
+    pname = "Test-XPath";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/Test-XPath-0.20.tar.gz";
+      hash = "sha256-36phHnFGrZyXabW89oiUmXa4Ny3354ekC5M6FI2JIDk=";
+    };
+    propagatedBuildInputs = [ XMLLibXML ];
+    meta = {
+      description = "Test XML and HTML content and structure with XPath expressions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestYAML = buildPerlPackage {
+    pname = "Test-YAML";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TINITA/Test-YAML-1.07.tar.gz";
+      hash = "sha256-HzANA09GKYy5KWCRLMBLrDP7J/BbiFLY8FHhELnNmV8=";
+    };
+    buildInputs = [ TestBase ];
+    meta = {
+      description = "Testing Module for YAML Implementations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "test-yaml";
+    };
+  };
+
+  TextAligner = buildPerlModule {
+    pname = "Text-Aligner";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz";
+      hash = "sha256-XIV9vOWG9X+j18Tr0yACOrOyljsgSUKK4BvTvE8hVyU=";
+    };
+    meta = {
+      description = "Module to align text";
+      homepage = "https://metacpan.org/release/Text-Aligner";
+      license = with lib.licenses; [ isc ];
+    };
+  };
+
+  TextAspell = buildPerlPackage {
+    pname = "Text-Aspell";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HANK/Text-Aspell-0.09.tar.gz";
+      hash = "sha256-K+oyCfGOJzsZPjF1pC0mk5GRnkmrEGtuJSOV0nIYL2U=";
+    };
+    propagatedBuildInputs = [ pkgs.aspell ];
+    ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell";
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.aspell}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell";
+    meta = {
+      description = "Perl interface to the GNU Aspell library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextAutoformat = buildPerlPackage {
+    pname = "Text-Autoformat";
+    version = "1.75";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Autoformat-1.75.tar.gz";
+      hash = "sha256-ndT0zj2uxLTb9bWdrEVoqJRq7RLCi05ZiMjoxgLGt3E=";
+    };
+    propagatedBuildInputs = [ TextReform ];
+    meta = {
+      description = "Automatic text wrapping and reformatting";
+      homepage = "https://github.com/neilb/Text-Autoformat";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextBalanced = buildPerlPackage {
+    pname = "Text-Balanced";
+    version = "2.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHAY/Text-Balanced-2.06.tar.gz";
+      hash = "sha256-dz4PDyHAyyz2ZM7muij/cCWbq8yJL5tlD5y9oAvgkq0=";
+    };
+    meta = {
+      description = "Extract delimited text sequences from strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextBibTeX = buildPerlModule {
+    pname = "Text-BibTeX";
+    version = "0.89";
+    buildInputs = [ CaptureTiny ConfigAutoConf ExtUtilsLibBuilder ];
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-0.89.tar.gz";
+      hash = "sha256-iKeOvwiOx1AvQBxaKxOMhiz1RYU0t3MiO786r0EiQZY=";
+    };
+    # libbtparse.so: cannot open shared object file
+    patches = [ ../development/perl-modules/TextBibTeX-use-lib.patch ];
+    perlPreHook = "export LD=$CC";
+    perlPostHook = lib.optionalString stdenv.isDarwin ''
+      oldPath="$(pwd)/btparse/src/libbtparse.dylib"
+      newPath="$out/lib/libbtparse.dylib"
+
+      install_name_tool -id "$newPath" "$newPath"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames"
+      install_name_tool -change "$oldPath" "$newPath" "$out/${perl.libPrefix}/${perl.version}/darwin"*"-2level/auto/Text/BibTeX/BibTeX.bundle"
+    '';
+    meta = {
+      description = "Interface to read and parse BibTeX files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextBrew = buildPerlPackage {
+    pname = "Text-Brew";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KC/KCIVEY/Text-Brew-0.02.tar.gz";
+      hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw=";
+    };
+    meta = {
+      description = "An implementation of the Brew edit distance";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextCharWidth = buildPerlPackage {
+    pname = "Text-CharWidth";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-CharWidth-0.04.tar.gz";
+      hash = "sha256-q97V9P3ZM46J/S8dgnHESYna5b9Qrs5BthedjiMHBPg=";
+    };
+    meta = {
+      description = "Get number of occupied columns of a string on terminal";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextCSV = buildPerlPackage {
+    pname = "Text-CSV";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Text-CSV-2.03.tar.gz";
+      hash = "sha256-SLvOnyNJNaiFlWGOBN0UFigkbWUPKnJgJN8cE34LZfs=";
+    };
+    meta = {
+      description = "Comma-separated values manipulator (using XS or PurePerl)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextCSVEncoded = buildPerlPackage {
+    pname = "Text-CSV-Encoded";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/Text-CSV-Encoded-0.25.tar.gz";
+      hash = "sha256-JIpZg6IN1XeGY56I2v3WVPO5OSVJASDW1xLaayvludA=";
+    };
+    propagatedBuildInputs = [ TextCSV ];
+    meta = {
+      description = "Encoding aware Text::CSV";
+      homepage = "https://github.com/singingfish/Text-CSV-Encoded";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextCSV_XS = buildPerlPackage {
+    pname = "Text-CSV_XS";
+    version = "1.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.52.tgz";
+      hash = "sha256-5BWqcFut+Es1ncTA8MmC8b9whIHaoUdW8xNufInA5B0=";
+    };
+    meta = {
+      description = "Comma-Separated Values manipulation routines";
+      homepage = "https://metacpan.org/pod/Text::CSV_XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextDiff = buildPerlPackage {
+    pname = "Text-Diff";
+    version = "1.45";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz";
+      hash = "sha256-6Lqgexs/U+AK82NomLv3OuyaD/OPlFNu3h2+lu8IbwQ=";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ];
+    meta = {
+      description = "Perform diffs on files and record sets";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextFormat = buildPerlModule {
+    pname = "Text-Format";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Format-0.62.tar.gz";
+      hash = "sha256-fUKQVzGeEjxZC6B2UzTwreSl656o23wOxNOQLeX5BAQ=";
+    };
+    meta = {
+      description = "Various subroutines to format text";
+      homepage = "https://github.com/shlomif/perl-Module-Format";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ bcdarwin ];
+    };
+  };
+
+  TextDiffFormattedHTML = buildPerlPackage {
+    pname = "Text-Diff-FormattedHTML";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMBS/Text-Diff-FormattedHTML-0.08.tar.gz";
+      hash = "sha256-Oat3WlwFZ0Xyq9jMfBy8VJbf735SqfS9itpqpsnHtw0=";
+    };
+    propagatedBuildInputs = [ FileSlurp StringDiff ];
+    meta = {
+      description = "Generate a colorful HTML diff of strings/files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  TextFuzzy = buildPerlPackage {
+    pname = "Text-Fuzzy";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BK/BKB/Text-Fuzzy-0.29.tar.gz";
+      hash = "sha256-PfXP0soaTFyn/3urPMjVOtIGThNMvxEATzz4xLkFW/8=";
+    };
+    meta = {
+      description = "Partial string matching using edit distances";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextGerman = buildPerlPackage {
+    pname = "Text-German";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz";
+      hash = "sha256-ki1PGQEtl3OxH0pvZCEF6fkT9YZvRGG2BZymdNW7B90=";
+    };
+    meta = {
+      description = "German grundform reduction";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextGlob = buildPerlPackage {
+    pname = "Text-Glob";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz";
+      hash = "sha256-BpzNSdPwot7bEV9L3J+6wHqDWShAlT0fzfw5650wUoc=";
+    };
+    meta = {
+      description = "Match globbing patterns against text";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextHogan = buildPerlPackage {
+    pname = "Text-Hogan";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAORU/Text-Hogan-2.03.tar.gz";
+      hash = "sha256-WNkj7eTFmEiI75u7JW2IVMxdIqRwikd0sxPLU4jFYXo=";
+    };
+    propagatedBuildInputs = [ Clone RefUtil TextTrim ];
+    buildInputs = [ DataVisitor PathTiny TryTiny YAML ];
+    meta = {
+      description = "Text::Hogan - A mustache templating engine statement-for-statement cloned from hogan.js";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextIconv = buildPerlPackage {
+    pname = "Text-Iconv";
+    version = "1.7";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz";
+      hash = "sha256-W4C31ecJ00OTvLqIlxhkoXtEpb8PnkvO44PQKefS1cM=";
+    };
+    meta = {
+      description = "Perl interface to iconv() codeset conversion function";
+      license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from el6
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin
+    };
+  };
+
+  TestInDistDir = buildPerlPackage {
+    pname = "Test-InDistDir";
+    version = "1.112071";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz";
+      hash = "sha256-kixcYzFPQG9MuzXsQjrCFU0sK3GmWt23cyydJAqD/vs=";
+    };
+    meta = {
+      description = "Test environment setup for development with IDE";
+      homepage = "https://github.com/wchristian/Test-InDistDir";
+      license = with lib.licenses; [ wtfpl ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  TestInter = buildPerlPackage {
+    pname = "Test-Inter";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SB/SBECK/Test-Inter-1.10.tar.gz";
+      hash = "sha256-cewRXqwm+2aJGb1mQLQcNzInUuvUjBx222a3O679O10=";
+    };
+    buildInputs = [ FileFindRule TestPod TestPodCoverage ];
+    meta = {
+      description = "Framework for more readable interactive test scripts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextLayout = buildPerlPackage {
+    pname = "Text-Layout";
+    version = "0.031";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JV/JV/Text-Layout-0.031.tar.gz";
+      hash = "sha256-EQ4ObbzKIFhKcckNpxBYAdRrXXYd+QmsTfYQbDM3B34=";
+    };
+    buildInputs = [ IOString PDFAPI2 ];
+    meta = {
+      description = "Pango style markup formatting";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextLevenshteinXS = buildPerlPackage {
+    pname = "Text-LevenshteinXS";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JG/JGOLDBERG/Text-LevenshteinXS-0.03.tar.gz";
+      hash = "sha256-43T/eyN5Gc5eqSRfNW0ctSzIf9JrOlo4s/Pl/4KgFJE=";
+    };
+    meta = {
+      description = "Levenshtein edit distance in a XS way";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextLorem = buildPerlPackage {
+    pname = "Text-Lorem";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADEOLA/Text-Lorem-0.34.tar.gz";
+      hash = "sha256-DOajwZkXsjI0JKGqdC2YiwY8OUQEJ6MQGkzsbb2EcVc=";
+    };
+    meta = {
+      description = "Generate random Latin looking text";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+      mainProgram = "lorem";
+    };
+  };
+
+  TestManifest = buildPerlPackage {
+    pname = "Test-Manifest";
+    version = "2.023";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Manifest-2.023.tar.gz";
+      hash = "sha256-0k5SVT58uc2oH5L/6MkrPkNGcY5HEIAaWzW38lGnceI=";
+    };
+    meta = {
+      description = "Interact with a t/test_manifest file";
+      homepage = "https://github.com/briandfoy/test-manifest";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TextMarkdown = buildPerlPackage {
+    pname = "Text-Markdown";
+    version = "1.000031";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz";
+      hash = "sha256-wZHG1ezrjLdcBWUZI2BmLSAtcWutB6IzxLMppChNxxs=";
+    };
+    nativeBuildInputs = [ shortenPerlShebang ];
+    nativeCheckInputs = [ ListMoreUtils TestDifferences TestException ];
+    postInstall = ''
+      shortenPerlShebang $out/bin/Markdown.pl
+    '';
+    meta = {
+      description = "Convert Markdown syntax to (X)HTML";
+      license = with lib.licenses; [ bsd3 ];
+      mainProgram = "Markdown.pl";
+    };
+  };
+
+  TextMarkdownHoedown = buildPerlModule {
+    pname = "Text-Markdown-Hoedown";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Text-Markdown-Hoedown-1.03.tar.gz";
+      hash = "sha256-U6cw/29IgrmavYVW8mqRH1gvZ1tZ8OFnJe0ey8CE7lA=";
+    };
+    buildInputs = [ Filepushd ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Hoedown for Perl5";
+      homepage = "https://github.com/tokuhirom/Text-Markdown-Hoedown";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMinimumVersion = buildPerlPackage {
+    pname = "Test-MinimumVersion";
+    version = "0.101083";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101083.tar.gz";
+      hash = "sha256-MqHrzYA/oQ7vylU7w87dQ1lqdZ3Dl1revSJoiCPDauo=";
+    };
+    propagatedBuildInputs = [ PerlMinimumVersion ];
+    meta = {
+      description = "Does your code require newer perl than you think?";
+      homepage = "https://github.com/rjbs/Test-MinimumVersion";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextMicroTemplate = buildPerlPackage {
+    pname = "Text-MicroTemplate";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.24.tar.gz";
+      hash = "sha256-MoAecfNe6Kqg1XbOwSXO5Gs9SRWuZCvGSWISDU+XtMg=";
+    };
+    meta = {
+      description = "Micro template engine with Perl5 language";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextMultiMarkdown = buildPerlPackage {
+    pname = "Text-MultiMarkdown";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Text-MultiMarkdown-1.001.tar.gz";
+      hash = "sha256-UB1ErH2lSUSZzqhR6bL7UlOAgLDB6TYjDIwm1n4EhDM=";
+    };
+    buildInputs = [ ListMoreUtils TestException ];
+    propagatedBuildInputs = [ HTMLParser TextMarkdown ];
+    meta = {
+      description = "Convert MultiMarkdown syntax to (X)HTML";
+      license = with lib.licenses; [ bsd3 ];
+      mainProgram = "MultiMarkdown.pl";
+    };
+  };
+
+  TestNumberDelta = buildPerlPackage {
+    pname = "Test-Number-Delta";
+    version = "1.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz";
+      hash = "sha256-U1QwkZ5v32zlX/dumJKvzLo7fUFg20XzrEOw+S/80Ek=";
+    };
+    meta = {
+      description = "Compare the difference between numbers against a given tolerance";
+      homepage = "https://github.com/dagolden/Test-Number-Delta";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  TextParsewords = buildPerlPackage {
+    pname = "Text-ParseWords";
+    version = "3.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Text-ParseWords-3.31.tar.gz";
+      hash = "sha256-KuVVughNdbK4/u640aAJESdoFa2oa8yxRSI2lk1aL8c=";
+    };
+    meta = {
+      description = "Parse text into an array of tokens or array of arrays";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextPasswordPronounceable = buildPerlPackage {
+    pname = "Text-Password-Pronounceable";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TS/TSIBLEY/Text-Password-Pronounceable-0.30.tar.gz";
+      hash = "sha256-wYalAlbgvt+vsX584VfnxS8ZUDu3nhjr8GJVkR9urRo=";
+    };
+    meta = {
+      description = "Generate pronounceable passwords";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextPatch = buildPerlPackage {
+    pname = "Text-Patch";
+    version = "1.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CADE/Text-Patch-1.8.tar.gz";
+      hash = "sha256-6vGOYbpqPhQ4RqfMZvCM5YoMT72pKssxrt4lyztcPcw=";
+    };
+    propagatedBuildInputs = [ TextDiff ];
+    meta = {
+      description = "Patches text with given patch";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  TextPDF = buildPerlPackage {
+    pname = "Text-PDF";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Text-PDF-0.31.tar.gz";
+      hash = "sha256-359RXuFZgEsNWnXVrbk8RYTH7EAdjFnCfp9zkl2NrGg=";
+    };
+    meta = {
+      description = "Module for manipulating PDF files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextQuoted = buildPerlPackage {
+    pname = "Text-Quoted";
+    version = "2.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BP/BPS/Text-Quoted-2.10.tar.gz";
+      hash = "sha256-CBv5XskiCvJs7IkWHmG/c/n7y/7uHZrxUTnl17cI9EU=";
+    };
+    propagatedBuildInputs = [ TextAutoformat ];
+    meta = {
+      description = "Extract the structure of a quoted mail message";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextRecordParser = buildPerlPackage {
+    pname = "Text-RecordParser";
+    version = "1.6.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KC/KCLARK/Text-RecordParser-1.6.5.tar.gz";
+      hash = "sha256-2juBQUxj+NkhjRFnRaiLlIxGyYsYdjT2KYkuVAAbw1o=";
+    };
+
+    # In a NixOS chroot build, the tests fail because the font configuration
+    # at /etc/fonts/font.conf is not available.
+    doCheck = false;
+
+    propagatedBuildInputs = [ ClassAccessor IOStringy ListMoreUtils Readonly TextAutoformat ];
+    buildInputs = [ TestException ];
+    meta = {
+      description = "Read record-oriented files";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  TextReflow = buildPerlPackage {
+    pname = "Text-Reflow";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MW/MWARD/Text-Reflow-1.17.tar.gz";
+      hash = "sha256-S/ITn/YX1uWcwOWc3s18tyPs/SjVrDh6+1U//cBxuGA=";
+    };
+    meta = {
+      description = "Reflow text files using Knuth's paragraphing algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextReform = buildPerlModule {
+    pname = "Text-Reform";
+    version = "1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Text-Reform-1.20.tar.gz";
+      hash = "sha256-qHkt2MGqyXABAyM3s2o1a+luLXTE8DnvmjY7ZB20rmE=";
+    };
+    meta = {
+      description = "Manual text wrapping and reformatting";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextRoman = buildPerlPackage {
+    pname = "Text-Roman";
+    version = "3.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz";
+      hash = "sha256-y0oIo7FRgC/7L84yWKQWVCq4HbD3Oe5HSpWD/7c+BGo=";
+    };
+    meta = {
+      description = "Allows conversion between Roman and Arabic algarisms";
+      homepage = "https://github.com/creaktive/Text-Roman";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextSimpleTable = buildPerlPackage {
+    pname = "Text-SimpleTable";
+    version = "2.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.07.tar.gz";
+      hash = "sha256-JW0/OHZOljMxWLFKsYJXuS8xVcYNZYyvuAOJ9y9GGe0=";
+    };
+    propagatedBuildInputs = [ UnicodeLineBreak ];
+    meta = {
+      description = "Simple eyecandy ASCII tables";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TextSoundex = buildPerlPackage {
+    pname = "Text-Soundex";
+    version = "3.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz";
+      hash = "sha256-9t1VtCgLJd6peCIYOYZDglYAdOHWkzOV+u4lEMLbYO0=";
+    };
+    meta = {
+      description = "Implementation of the soundex algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextSprintfNamed = buildPerlModule {
+    pname = "Text-Sprintf-Named";
+    version = "0.0405";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Sprintf-Named-0.0405.tar.gz";
+      hash = "sha256-m0cNeP/PxAqz+ZgjGzNrnTQXIw+3zlW0fNewVXOnD/w=";
+    };
+    buildInputs = [ TestWarn ];
+    meta = {
+      description = "Sprintf-like function with named conversions";
+      homepage = "https://metacpan.org/release/Text-Sprintf-Named";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TextTable = buildPerlModule {
+    pname = "Text-Table";
+    version = "1.135";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.135.tar.gz";
+      hash = "sha256-/KPBboMSf3xE3ePT9+PHPqUNEJoQVERd6Agv6nlMpdI=";
+    };
+    propagatedBuildInputs = [ TextAligner ];
+    meta = {
+      description = "Organize Data in Tables";
+      homepage = "https://metacpan.org/release/Text-Table";
+      license = with lib.licenses; [ isc ];
+    };
+  };
+
+  TextTabularDisplay = buildPerlPackage {
+    pname = "Text-TabularDisplay";
+    version = "1.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DARREN/Text-TabularDisplay-1.38.tar.gz";
+      hash = "sha256-6wmQ+vpWtmfyPbdkvdpaTcX0sd3EsTg6pe7W8i7Rhug=";
+    };
+    meta = {
+      description = "Display text in formatted table output";
+      license = with lib.licenses; [ gpl2Plus ];
+    };
+  };
+
+  TextTemplate = buildPerlPackage {
+    pname = "Text-Template";
+    version = "1.61";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-1.61.tar.gz";
+      hash = "sha256-opXqfR7yQa4mQMH3hktij45vmewU+x2ngbL18haNzwk=";
+    };
+    buildInputs = [ TestMoreUTF8 TestWarnings ];
+    meta = {
+      description = "Expand template text with embedded Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestTrap = buildPerlModule {
+    pname = "Test-Trap";
+    version = "0.3.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz";
+      hash = "sha256-VPmQFlYrWx1yEQEA8fK+Q3F4zfhDdvSV/9A3bx1+y5o=";
+    };
+    propagatedBuildInputs = [ DataDump ];
+    meta = {
+      description = "Trap exit codes, exceptions, output, etc";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestVars = buildPerlModule {
+    pname = "Test-Vars";
+    version = "0.015";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GF/GFUJI/Test-Vars-0.015.tar.gz";
+      hash = "sha256-4Y3RWCcuTsmTnh37M8dDGrTnXGtAsoDDi16AT9pHGlQ=";
+    };
+
+    buildInputs = [ ModuleBuildTiny ];
+
+    meta = {
+      description = "Detects unused variables in perl modules";
+      homepage = "https://github.com/houseabsolute/p5-Test-Vars";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestVersion = buildPerlPackage {
+    pname = "Test-Version";
+    version = "2.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Version-2.09.tar.gz";
+      hash = "sha256-nOHdKJel8w4bf4lm7Gb1fY2PKA9gXyjHyiIfp5rKOOA=";
+    };
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ FileFindRulePerl ];
+    meta = {
+      description = "Check to see that version's in modules are sane";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TextTrim = buildPerlPackage {
+    pname = "Text-Trim";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJT/Text-Trim-1.04.tar.gz";
+      hash = "sha256-1YeKkHnTPNF2bParxEzWJb0AoCE9LOjjFD/mlEq6qhE=";
+    };
+    meta = {
+      description = "Remove leading and/or trailing whitespace from strings";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextUnaccent = buildPerlPackage {
+    pname = "Text-Unaccent";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDACHARY/Text-Unaccent-1.08.tar.gz";
+      hash = "sha256-J45u/Jsk82mclh77NuvmAqNAi1QVcgF97hMdFScocys=";
+    };
+    # https://rt.cpan.org/Public/Bug/Display.html?id=124815
+    env.NIX_CFLAGS_COMPILE = "-DHAS_VPRINTF";
+    meta = {
+      description = "Remove accents from a string";
+      license = with lib.licenses; [ gpl2Only ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextUnaccent.x86_64-darwin
+    };
+  };
+
+  TextUnidecode = buildPerlPackage {
+    pname = "Text-Unidecode";
+    version = "1.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz";
+      hash = "sha256-bCTxTdwdIOJhYcIHtzyhhO7S71fwi1+y7hlubi6IscY=";
+    };
+    meta = {
+      description = "Plain ASCII transliterations of Unicode tex";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Testutf8 = buildPerlPackage {
+    pname = "Test-utf8";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz";
+      hash = "sha256-34LwnFlAgwslpJ8cgWL6JNNx5gKIDt742aTUv9Zri9c=";
+    };
+    meta = {
+      description = "Handy utf8 tests";
+      homepage = "https://github.com/2shortplanks/Test-utf8/tree";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextNSP = buildPerlPackage {
+    pname = "Text-NSP";
+    version = "1.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TP/TPEDERSE/Text-NSP-1.31.tar.gz";
+      hash = "sha256-oBIBvrKWNrPkHs2ips9lIv0mVBa9bZlPrQL1n7Sc9ZU=";
+    };
+    meta = {
+      description = "Extract collocations and Ngrams from text";
+      license = with lib.licenses; [ gpl2Plus ];
+      maintainers = [ maintainers.bzizou ];
+    };
+  };
+
+  TextvFileasData = buildPerlPackage {
+    pname = "Text-vFile-asData";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-vFile-asData-0.08.tar.gz";
+      hash = "sha256-spGrXg+YfFFyVgppIjRxGnXkWW2DR19y0BJ4NpUy+Co=";
+    };
+    propagatedBuildInputs = [ ClassAccessorChained ];
+    meta = {
+      description = "Parse vFile formatted files into data structures";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextWikiFormat = buildPerlModule {
+    pname = "Text-WikiFormat";
+    version = "0.81";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.81.tar.gz";
+      hash = "sha256-5DzZla2RV6foOdmT7ntsTRhUlH5VfQltnVqvdFB/qzM=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Module for translating Wiki formatted text into other formats";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextWordDiff = buildPerlPackage {
+    pname = "Text-WordDiff";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMK/Text-WordDiff-0.09.tar.gz";
+      hash = "sha256-/uaZynY63KL04Y9KioNv0hArwoIK9wj460M1bVrg1Q4=";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff HTMLParser ];
+    meta = {
+      description = "Track changes between documents";
+      homepage = "https://metacpan.org/release/Text-WordDiff";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextWrapI18N = buildPerlPackage {
+    pname = "Text-WrapI18N";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz";
+      hash = "sha256-S9KaF/DCx5LRLBAFs8J28qsPrjnACFmuF0HXlBhGpIg=";
+    };
+    buildInputs = lib.optionals (!stdenv.isDarwin) [ pkgs.glibcLocales ];
+    propagatedBuildInputs = [ TextCharWidth ];
+    preConfigure = ''
+      substituteInPlace WrapI18N.pm --replace '/usr/bin/locale' '${pkgs.unixtools.locale}/bin/locale'
+    '';
+    meta = {
+      description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TextWrapper = buildPerlPackage {
+    pname = "Text-Wrapper";
+    version = "1.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CJ/CJM/Text-Wrapper-1.05.tar.gz";
+      hash = "sha256-ZCaOFZg6nfR+HZGZpJHzlOifVC5Ur7M/S3jz8xjgmrk=";
+    };
+    buildInputs = [ TestDifferences ];
+    meta = {
+      description = "Word wrap text by breaking long lines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Throwable = buildPerlPackage {
+    pname = "Throwable";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Throwable-1.001.tar.gz";
+      hash = "sha256-0MtenX0G1w8sxW7s+FeoOkXqykOFDc3akdP+tN3eTFE=";
+    };
+    propagatedBuildInputs = [ DevelStackTrace Moo ];
+    meta = {
+      description = "A role for classes that can be thrown";
+      homepage = "https://github.com/rjbs/Throwable";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieCacheLRU = buildPerlPackage {
+    pname = "Tie-Cache-LRU";
+    version = "20150301";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Tie-Cache-LRU-20150301.tar.gz";
+      hash = "sha256-G/dARQ06bXwStIwl99pZZOROfMOLKFcs+3b/IkZPRGk=";
+    };
+    propagatedBuildInputs = [ ClassVirtual enum ];
+    meta = {
+      description = "A Least-Recently Used cache";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieCacheLRUExpires = buildPerlPackage {
+    pname = "Tie-Cache-LRU-Expires";
+    version = "0.55";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Tie-Cache-LRU-Expires-0.55.tar.gz";
+      hash = "sha256-sxbYSazSXyQ0bVWplQ0oH+4HRjmHZ8YBI0EiFZVz65o=";
+    };
+    propagatedBuildInputs = [ TieCacheLRU ];
+    meta = {
+      description = "Extends Tie::Cache::LRU with expiring";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  TieCycle = buildPerlPackage {
+    pname = "Tie-Cycle";
+    version = "1.227";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/Tie-Cycle-1.227.tar.gz";
+      hash = "sha256-eDgzV5HnGjszuKGd4wUpSeGJCkgj3vY5eCPJkiL6Hdg=";
+    };
+    meta = {
+      description = "Cycle through a list of values via a scalar";
+      homepage = "https://github.com/briandfoy/tie-cycle";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  TieEncryptedHash = buildPerlPackage {
+    pname = "Tie-EncryptedHash";
+    version = "1.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz";
+      hash = "sha256-qpoIOiMeQEYXCliUZE48WWecfb0KotEhfchRUN8sHiE=";
+    };
+    propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ];
+    meta = {
+      description = "Hashes (and objects based on hashes) with encrypting fields";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  TieFile = buildPerlPackage {
+    pname = "Tie-File";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Tie-File-1.07.tar.gz";
+      hash = "sha256-S1NUpB/pVBvc6lK0/VMBRPMVME0D8F3Q/vwynYHCawg=";
+    };
+    meta = {
+      description = "Access the lines of a disk file via a Perl array";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieIxHash = buildPerlModule {
+    pname = "Tie-IxHash";
+    version = "1.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz";
+      hash = "sha256-+rsLjJfmfJs0tswY7Wb2xeAcVbJX3PAHVV4LAn1Mr1Y=";
+    };
+    meta = {
+      description = "Ordered associative arrays for Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieHandleOffset = buildPerlPackage {
+    pname = "Tie-Handle-Offset";
+    version = "0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Tie-Handle-Offset-0.004.tar.gz";
+      hash = "sha256-7p85BV3GlaokSiUvVv/Tf4vgcgmzN604eCRyEgbSqJ4=";
+    };
+    meta = {
+      description = "Tied handle that hides the beginning of a file";
+      homepage = "https://github.com/dagolden/tie-handle-offset";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  TieHashIndexed = buildPerlPackage {
+    pname = "Tie-Hash-Indexed";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MH/MHX/Tie-Hash-Indexed-0.08.tar.gz";
+      hash = "sha256-N7xigV9ahIrHeRK5v0eIqfJyiE6DpS4gk9q0qDpKexA=";
+    };
+    doCheck = false; /* test fails on some machines */
+    meta = {
+      description = "Ordered hashes for Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieHashMethod = buildPerlPackage {
+    pname = "Tie-Hash-Method";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Y/YV/YVES/Tie-Hash-Method-0.02.tar.gz";
+      hash = "sha256-1RP7tRQT98oeZKG9zmGU337GB23qVQZtZ7lQGR7sMqk=";
+    };
+    meta = {
+      description = "Tied hash with specific methods overriden by callbacks";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  TieRefHash = buildPerlPackage {
+    pname = "Tie-RefHash";
+    version = "1.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Tie-RefHash-1.40.tar.gz";
+      hash = "sha256-Ws8fUY0vtfYgyq16Gy/x9vdRb++PQLprdD7si5aSftc=";
+    };
+    meta = {
+      description = "Use references as hash keys";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieRegexpHash = buildPerlPackage {
+    pname = "Tie-RegexpHash";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALTREUS/Tie-RegexpHash-0.17.tar.gz";
+      hash = "sha256-DCB4UOd++xZhjgqgFVB5JqNCWzSq1apuPkDYOYmghaM=";
+    };
+    meta = {
+      description = "Use regular expressions as hash keys";
+      license = with lib.licenses; [ artistic1 ];
+    };
+  };
+
+  TieSimple = buildPerlPackage {
+    pname = "Tie-Simple";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HANENKAMP/Tie-Simple-1.04.tar.gz";
+      hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI=";
+    };
+    meta = {
+      description = "Variable ties made much easier: much, much, much easier..";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieSub = buildPerlPackage {
+    pname = "Tie-Sub";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz";
+      hash = "sha256-73GgSCbRNisrduyyHOFzw304pHqf7Cg6qYJDWJD08bE=";
+    };
+    propagatedBuildInputs = [ ParamsValidate ];
+    buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Tie::Sub - Tying a subroutine, function or method to a hash";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TieToObject = buildPerlPackage {
+    pname = "Tie-ToObject";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz";
+      hash = "sha256-oxoNRDD+FPWWIvMdt/JbInXa0uxS8QQL6wMNPoOtOvQ=";
+    };
+    meta = {
+      description = "Tie to an existing object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeDate = buildPerlPackage {
+    pname = "TimeDate";
+    version = "2.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz";
+      hash = "sha256-wLacSwOd5vUBsNnxPsWMhrBAwffpsn7ySWUcFD1gXrI=";
+    };
+    meta = {
+      description = "Miscellaneous timezone manipulations routines";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeDuration = buildPerlPackage {
+    pname = "Time-Duration";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-1.21.tar.gz";
+      hash = "sha256-/jQOuodl+SY2lGdOXf8UgzRD4Zhl5f9Ce715t7X4qbg=";
+    };
+    meta = {
+      description = "Rounded or exact English expression of durations";
+      homepage = "https://github.com/neilbowers/Time-Duration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeDurationParse = buildPerlPackage {
+    pname = "Time-Duration-Parse";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-Parse-0.16.tar.gz";
+      hash = "sha256-EISmRj7ieQ+ZIVvXaxNcpFr+K/ppmPpv1UcLaeG6vBI=";
+    };
+    buildInputs = [ TimeDuration ];
+    propagatedBuildInputs = [ ExporterLite ];
+    meta = {
+      description = "Parse string that represents time duration";
+      homepage = "https://github.com/neilb/Time-Duration-Parse";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeLocal = buildPerlPackage {
+    pname = "Time-Local";
+    version = "1.35";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Time-Local-1.35.tar.gz";
+      hash = "sha256-HRNrcb0EHL5vZsQxgO555nW3KtWjWWq9akTSEQcq2ik=";
+    };
+    meta = {
+      description = "Efficiently compute time from local and GMT time";
+      homepage = "https://metacpan.org/release/Time-Local";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeMoment = buildPerlPackage {
+    pname = "Time-Moment";
+    version = "0.44";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Time-Moment-0.44.tar.gz";
+      hash = "sha256-ZKz6BC9jT8742t9V5/QrpOqriq631SEuuJgVox949v0=";
+    };
+    buildInputs = [ TestFatal TestNumberDelta TestRequires ];
+    meta = {
+      description = "Represents a date and time of day with an offset from UTC";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeOut = buildPerlPackage {
+    pname = "Time-Out";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PATL/Time-Out-0.11.tar.gz";
+      hash = "sha256-k5baaY/UUtnOYNZCzaIQjxHyDtdsiWF3muEbiXroFdI=";
+    };
+    meta = {
+      description = "Easily timeout long running operations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TimeParseDate = buildPerlPackage {
+    pname = "Time-ParseDate";
+    version = "2015.103";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz";
+      hash = "sha256-LBoGI1v4EYE8qsnqqdqnGvdYZnzfewgstZhjIg/K7tE=";
+    };
+    doCheck = false;
+    meta = {
+      description = "Parse and format time values";
+      license = with lib.licenses; [ publicDomain ];
+    };
+  };
+
+  TimePeriod = buildPerlPackage {
+    pname = "Time-Period";
+    version = "1.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PB/PBOYD/Time-Period-1.25.tar.gz";
+      hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg=";
+    };
+    meta = {
+      description = "A Perl module to deal with time periods";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.winpat ];
+    };
+  };
+
+  TimePiece = buildPerlPackage {
+    pname = "Time-Piece";
+    version = "1.3401";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
+      hash = "sha256-S1W3uw6rRc8jmlTf6tJ336BhIaQ+Y7P84IU67P2wTCc=";
+    };
+    meta = {
+      description = "Object Oriented time objects";
+      homepage = "https://metacpan.org/release/Time-Piece";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  Tirex = buildPerlPackage rec {
+    pname = "Tirex";
+    version = "0.7.0";
+
+    src = fetchFromGitHub {
+      owner = "openstreetmap";
+      repo = "tirex";
+      rev = "v${version}";
+      hash = "sha256-0QbPfCPBdNBbUiZ8Ppg2zao98+Ddl3l+yX6y1/J50rg=";
+    };
+
+    patches = [
+      # https://github.com/openstreetmap/tirex/pull/54
+      (fetchpatch {
+        url = "https://github.com/openstreetmap/tirex/commit/da0c5db926bc0939c53dd902a969b689ccf9edde.patch";
+        hash = "sha256-bnL1ZGy8ZNSZuCRbZn59qRVLg3TL0GjFYnhRKroeVO0=";
+      })
+    ];
+
+    buildInputs = [
+      GD
+      IPCShareLite
+      JSON
+      LWP
+      pkgs.mapnik
+    ] ++ pkgs.mapnik.buildInputs;
+
+    installPhase = ''
+      install -m 755 -d $out/usr/libexec
+      make install DESTDIR=$out INSTALLOPTS=""
+      mv $out/$out/lib $out/$out/share $out
+      rmdir $out/$out $out/nix/store $out/nix
+    '';
+
+    meta = {
+      description = "Tools for running a map tile server";
+      homepage = "https://wiki.openstreetmap.org/wiki/Tirex";
+      maintainers = with maintainers; [ jglukasik ];
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  Tk = buildPerlPackage {
+    pname = "Tk";
+    version = "804.036";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.036.tar.gz";
+      hash = "sha256-Mqpycaa9/twzMBGbOCXa3dCqS1yTb4StdOq7kyogCl4=";
+    };
+    patches = [
+      # Fix failing configure test due to implicit int return value of main, which results
+      # in an error with clang 16.
+      ../development/perl-modules/tk-configure-implicit-int-fix.patch
+    ];
+    makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
+    buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
+    doCheck = false;            # Expects working X11.
+    meta = {
+      description = "Tk - a Graphical User Interface Toolkit";
+      license = with lib.licenses; [ tcltk ];
+    };
+  };
+
+  TkToolBar = buildPerlPackage {
+    pname = "Tk-ToolBar";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASB/Tk-ToolBar-0.12.tar.gz";
+      hash = "sha256-Rj4oTsRxN+fEJclpGwKo3sXOJytY6h9jWa6AQaI53Q8=";
+    };
+    makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
+    buildInputs = [ Tk ];
+    doCheck = false;            # Expects working X11.
+    meta = {
+      description = "A toolbar widget for Perl/Tk";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TreeDAGNode = buildPerlPackage {
+    pname = "Tree-DAG_Node";
+    version = "1.32";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-DAG_Node-1.32.tgz";
+      hash = "sha256-ItnePW5vSv2J5tglxmT5SCh4vUninLgTQqcHr0BULT0=";
+    };
+    propagatedBuildInputs = [ FileSlurpTiny ];
+    meta = {
+      description = "An N-ary tree";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TreeSimple = buildPerlPackage {
+    pname = "Tree-Simple";
+    version = "1.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-1.34.tgz";
+      hash = "sha256-t+l5m9Iiu5TP+ZP312WYDL6hts0qql7L6tY1q99H0pw=";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      description = "A simple tree object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TreeSimpleVisitorFactory = buildPerlPackage {
+    pname = "Tree-Simple-VisitorFactory";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-VisitorFactory-0.16.tgz";
+      hash = "sha256-nPU4+qEsVP+0qRQ5lF5IjxhW9iuJrFByqSIRngGIDaY=";
+    };
+    propagatedBuildInputs = [ TreeSimple ];
+    buildInputs = [ TestException ];
+    meta = {
+      description = "A factory object for dispensing Visitor objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TryTiny = buildPerlPackage {
+    pname = "Try-Tiny";
+    version = "0.31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz";
+      hash = "sha256-MwDTHYpAdbJtj0bOhkodkT4OhGfO66ZlXV0rLiBsEb4=";
+    };
+    buildInputs = [ CPANMetaCheck CaptureTiny ];
+    meta = {
+      description = "Minimal try/catch with proper preservation of $@";
+      homepage = "https://github.com/p5sagit/Try-Tiny";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  TryTinyByClass = buildPerlPackage {
+    pname = "Try-Tiny-ByClass";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MAUKE/Try-Tiny-ByClass-0.01.tar.gz";
+      hash = "sha256-A45O9SkpXyacKA/vmZpeTbkVaULwkaw8rXabHkVw8UY=";
+    };
+    propagatedBuildInputs = [ DispatchClass TryTiny ];
+    meta = {
+      description = "Selectively catch exceptions by class name";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Twiggy = buildPerlPackage {
+    pname = "Twiggy";
+    version = "0.1026";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1026.tar.gz";
+      hash = "sha256-TZHqbtmumo70MU3Cp89S6wJrNlvmg4azXqaGTfrFf54=";
+    };
+    propagatedBuildInputs = [ AnyEvent Plack ];
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "AnyEvent HTTP server for PSGI";
+      homepage = "https://github.com/miyagawa/Twiggy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "twiggy";
+    };
+  };
+
+  TypeTiny = buildPerlPackage {
+    pname = "Type-Tiny";
+    version = "2.004000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-2.004000.tar.gz";
+      hash = "sha256-aX5/d17fyF9M8HeS0E/RmwnCUoX5j1k46O/E90UHoSg=";
+    };
+    propagatedBuildInputs = [ ExporterTiny ];
+    buildInputs = [ TestMemoryCycle ];
+    meta = {
+      description = "Tiny, yet Moo(se)-compatible type constraint";
+      homepage = "https://typetiny.toby.ink";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TypeTinyXS = buildPerlPackage {
+    pname = "Type-Tiny-XS";
+    version = "0.025";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-0.025.tar.gz";
+      hash = "sha256-mmFFDdqQKU9gbNej+kTzsaNmvNiKQZkXsFTuXiPRSL0=";
+    };
+    meta = {
+      description = "Provides an XS boost for some of Type::Tiny's built-in type constraints";
+      homepage = "https://metacpan.org/release/Type-Tiny-XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TypesSerialiser = buildPerlPackage {
+    pname = "Types-Serialiser";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz";
+      hash = "sha256-+McXOwkU0OPZVyggd7Nm8MjHAlZxXq7zKY/zK5I4ioA=";
+    };
+    propagatedBuildInputs = [ commonsense ];
+    meta = {
+      description = "Simple data types for common serialisation formats";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UNIVERSALcan = buildPerlPackage {
+    pname = "UNIVERSAL-can";
+    version = "1.20140328";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.20140328.tar.gz";
+      hash = "sha256-Ui2p8nR4b+LLqZvHfMHIHSFhlHkD1/rRC9Yt+38RmQ8=";
+    };
+    meta = {
+      description = "Work around buggy code calling UNIVERSAL::can() as a function";
+      homepage = "https://github.com/chromatic/UNIVERSAL-can";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UNIVERSALisa = buildPerlPackage {
+    pname = "UNIVERSAL-isa";
+    version = "1.20171012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/UNIVERSAL-isa-1.20171012.tar.gz";
+      hash = "sha256-0WlWA2ywHIGd7H0pT274kb4Ltkh2mJYBNUspMWTafys=";
+    };
+    meta = {
+      description = "Attempt to recover from people calling UNIVERSAL::isa as a function";
+      homepage = "https://github.com/karenetheridge/UNIVERSAL-isa";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UNIVERSALrequire = buildPerlPackage {
+    pname = "UNIVERSAL-require";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-0.19.tar.gz";
+      hash = "sha256-1GfNJuBsjDsgP9O8B5aubIN6xeMQCTyCJn/134UPGgM=";
+    };
+    meta = {
+      description = "Require() modules from a variable [deprecated]";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UnicodeCaseFold = buildPerlModule {
+    pname = "Unicode-CaseFold";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARODLAND/Unicode-CaseFold-1.01.tar.gz";
+      hash = "sha256-QYohKAj50Li7MwrJBQltLdNkl2dT1McVNNq5g2pjGU0=";
+    };
+    perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      description = "Unicode case-folding for case-insensitive lookups";
+      homepage = "https://metacpan.org/release/Unicode-CaseFold";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UnicodeCheckUTF8 = buildPerlPackage {
+    pname = "Unicode-CheckUTF8";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRADFITZ/Unicode-CheckUTF8-1.03.tar.gz";
+      hash = "sha256-l/hNrwM+ubSc2P4x2yIf7wNaXC7h11fzEiyIz5diQUw=";
+    };
+    meta = {
+      description = "Checks if scalar is valid UTF-8";
+      license = with lib.licenses; [ ucd /* and */ artistic1 gpl1Plus ];
+    };
+  };
+
+  UnicodeLineBreak = buildPerlPackage {
+    pname = "Unicode-LineBreak";
+    version = "2019.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz";
+      hash = "sha256-SGdi5MrN3Md7E5ifl5oCn4RjC4F15/7xeYnhV9S2MYo=";
+    };
+    propagatedBuildInputs = [ MIMECharset ];
+    meta = {
+      description = "UAX #14 Unicode Line Breaking Algorithm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UnicodeString = buildPerlPackage {
+    pname = "Unicode-String";
+    version = "2.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/GAAS/Unicode-String-2.10.tar.gz";
+      hash = "sha256-iUoRDs5HlUaviv7Aly7scyDIbE3qTms1Tf88dSa6m2g=";
+    };
+    meta = {
+      description = "String of Unicode characters (UTF-16BE)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UnicodeStringprep = buildPerlModule {
+    pname = "Unicode-Stringprep";
+    version = "1.105";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CF/CFAERBER/Unicode-Stringprep-1.105.tar.gz";
+      hash = "sha256-5r67xYQIIx/RMX25ECRJs+faT6Q3559jc4LTYxPv0BE=";
+    };
+    buildInputs = [ TestNoWarnings ];
+    meta = {
+      description = "Preparation of Internationalized Strings (RFC 3454)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  UnicodeUTF8 = buildPerlPackage {
+    pname = "Unicode-UTF8";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
+      hash = "sha256-+oci0LdGluMy/d1EKZRDbqk9O/x5gtS6vc7f3dZX0PY=";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Encoding and decoding of UTF-8 encoding form";
+      homepage = "https://github.com/chansen/p5-unicode-utf8";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
+  UnixGetrusage = buildPerlPackage {
+    pname = "Unix-Getrusage";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TA/TAFFY/Unix-Getrusage-0.03.tar.gz";
+      hash = "sha256-ds3hzuJFMmC4WrvdwnzcmHXwHSRX4XbgPcq/BftETRI=";
+    };
+    meta = {
+      description = "Perl interface to the Unix getrusage system call";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URI = buildPerlPackage {
+    pname = "URI";
+    version = "5.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OA/OALDERS/URI-5.21.tar.gz";
+      hash = "sha256-liZYYM1hveFuhBXc+/EIBW3hYsqgrDf4HraVydLgq3c=";
+    };
+    buildInputs = [ TestFatal TestNeeds TestWarnings ];
+    meta = {
+      description = "Uniform Resource Identifiers (absolute and relative)";
+      homepage = "https://github.com/libwww-perl/URI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URIdb = buildPerlModule {
+    pname = "URI-db";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-0.21.tar.gz";
+      hash = "sha256-pkM9wVF6kH4YmRKkx2td/HYzLj/X/Is4oTfkAZx4CzQ=";
+    };
+    propagatedBuildInputs = [ URINested ];
+    meta = {
+      description = "Database URIs";
+      homepage = "https://search.cpan.org/dist/URI-db";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URIFind = buildPerlModule {
+    pname = "URI-Find";
+    version = "20160806";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSCHWERN/URI-Find-20160806.tar.gz";
+      hash = "sha256-4hOkJaUbX1UyQhHzeQnXh0nQus3qJZulGphV0NGWY9Y=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Find URIs in arbitrary text";
+      homepage = "https://metacpan.org/release/URI-Find";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "urifind";
+    };
+  };
+
+  URIFromHash = buildPerlPackage {
+    pname = "URI-FromHash";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.05.tar.gz";
+      hash = "sha256-p8rFvM7p8uLYrQ9gVAAWNxLNCsZN8vuDT3YPtJ8vb9A=";
+    };
+    propagatedBuildInputs = [ ParamsValidate URI ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Build a URI from a set of named parameters";
+      homepage = "https://metacpan.org/release/URI-FromHash";
+      license = with lib.licenses; [ artistic2 ];
+    };
+  };
+
+  UriGoogleChart = buildPerlPackage {
+    pname = "URI-GoogleChart";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/URI-GoogleChart-1.02.tar.gz";
+      hash = "sha256-WoLCLsYBejXQ/IJv7xNBIiaHL8SiPA4sAUqfqS8rGAI=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Generate Google Chart URIs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UserIdentity = buildPerlPackage {
+    pname = "User-Identity";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.02.tar.gz";
+      hash = "sha256-OySu5/UnjGXD8EEVsHyG5kaTTpnqQJJANj8wiZE+uJk=";
+    };
+    propagatedBuildInputs = [ HashOrdered ];
+    meta = {
+      description = "Collect information about a user";
+      homepage = "http://perl.overmeer.net/CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URIIMAP = buildPerlPackage {
+    pname = "URI-imap";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CW/CWEST/URI-imap-1.01.tar.gz";
+      hash = "sha256-uxSZiW7ONKe08JFinC5yw2imcwDoVzqyIZjJ2HI1uy0=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Support IMAP URI";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URINested = buildPerlModule {
+    pname = "URI-Nested";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-0.10.tar.gz";
+      hash = "sha256-4ZcTOaZfusY6uHFC1LWdPSWdUUF3U8d8tY6jGoIz768=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Nested URIs";
+      homepage = "https://metacpan.org/release/URI-Nested";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URISmartURI = buildPerlPackage {
+    pname = "URI-SmartURI";
+    version = "0.032";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/URI-SmartURI-0.032.tar.gz";
+      hash = "sha256-6xdLeUYi4UK30JT2p+Nqe6T8i7zySF4QPuPaNevMTyw=";
+    };
+    propagatedBuildInputs = [ ClassC3Componentised FileFindRule ListMoreUtils Moose URI namespaceclean ];
+    buildInputs = [ TestFatal TestNoWarnings ];
+    meta = {
+      description = "Subclassable and hostless URIs";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URITemplate = buildPerlPackage {
+    pname = "URI-Template";
+    version = "0.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-0.24.tar.gz";
+      hash = "sha256-aK4tYbV+FNytD4Kvr/3F7AW1B6HpyN9aphOKqipbEd4=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Object for handling URI templates (RFC 6570)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URIcpan = buildPerlPackage {
+    pname = "URI-cpan";
+    version = "1.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/URI-cpan-1.009.tar.gz";
+      hash = "sha256-JFV5sCW2P1d8cndDARmEcjhxykDcNezsjq05riSkjhI=";
+    };
+    propagatedBuildInputs = [ CPANDistnameInfo URI ];
+    meta = {
+      description = "URLs that refer to things on the CPAN";
+      homepage = "https://github.com/rjbs/URI-cpan";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  URIws = buildPerlPackage {
+    pname = "URI-ws";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz";
+      hash = "sha256-bmsOQXKstqU8IiY5wABgjC3WHVCEhkdIKshgDVDlQe8=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "WebSocket support for URI package";
+      homepage = "http://perl.wdlabs.com/URI-ws";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UUID4Tiny = buildPerlPackage {
+    pname = "UUID4-Tiny";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CV/CVLIBRARY/UUID4-Tiny-0.003.tar.gz";
+      hash = "sha256-4S9sgrg1dcORd3O0HA+1HPeDx8bPcuDJkWks4u8Hg2I=";
+    };
+    postPatch = lib.optionalString (stdenv.isAarch64) ''
+      # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h
+      # printf SYS_getrandom | gcc -include sys/syscall.h -E -
+      substituteInPlace lib/UUID4/Tiny.pm \
+        --replace "syscall( 318" "syscall( 278"
+    '';
+    meta = {
+      description = "Cryptographically secure v4 UUIDs for Linux x64";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = lib.platforms.linux; # configure phase fails with "OS unsupported"
+    };
+  };
+
+  UUIDTiny = buildPerlPackage {
+    pname = "UUID-Tiny";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CA/CAUGUSTIN/UUID-Tiny-1.04.tar.gz";
+      hash = "sha256-bc2SYE1k6WzGwYgZSuFqnTpGVWIk93tvPR0TEraPmj0=";
+    };
+    meta = {
+      description = "Pure Perl UUID Support With Functional Interface";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  UUIDURandom = buildPerlPackage {
+    pname = "UUID-URandom";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/UUID-URandom-0.001.tar.gz";
+      hash = "sha256-PxNjGxO5YE+0ieKYlJDJnxA3Q6g3I5va+unWuvVfj0Y=";
+    };
+    propagatedBuildInputs = [ CryptURandom ];
+    meta = {
+      description = "UUIDs based on /dev/urandom or the Windows Crypto API";
+      homepage = "https://github.com/dagolden/UUID-URandom";
+      license = with lib.licenses; [ asl20 ];
+    };
+  };
+
+  VariableMagic = buildPerlPackage {
+    pname = "Variable-Magic";
+    version = "0.63";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VP/VPIT/Variable-Magic-0.63.tar.gz";
+      hash = "sha256-ukCDssMf8mlPI3EzPVVMgmqvJLTZjQPki1tKQ6Kg5nk=";
+    };
+    meta = {
+      description = "Associate user-defined magic to variables from Perl";
+      homepage = "https://search.cpan.org/dist/Variable-Magic";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Version = buildPerlPackage {
+    pname = "version";
+    version = "0.9930";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/version-0.9930.tar.gz";
+      hash = "sha256-YduVX7yzn1kC+myLlXrrJ0HiPUhA+Eq/hGrx9nCu7jA=";
+    };
+    meta = {
+      description = "Structured version objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  vidir = buildPerlPackage {
+    pname = "App-vidir";
+    version = "0.052";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-vidir-0.052.tar.gz";
+      hash = "sha256-GSKQdqXxPvGe1sEbu5Bcrc4iYH+pDoXJrxqqKbWsFQo=";
+    };
+    outputs = [ "out" ];
+    meta = {
+      description = "File manager USING vim itself";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.chreekat ];
+      mainProgram = "vidir";
+    };
+  };
+
+  VMEC2 = buildPerlModule {
+    pname = "VM-EC2";
+    version = "1.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LD/LDS/VM-EC2-1.28.tar.gz";
+      hash = "sha256-srazF0XFdDH8oO+5udC48WjWCBdV4Ej9nWxEab0Qis0=";
+    };
+    propagatedBuildInputs = [ AnyEventCacheDNS AnyEventHTTP JSON StringApprox XMLSimple ];
+    meta = {
+      description = "Perl interface to Amazon EC2, Virtual Private Cloud, Elastic Load Balancing, Autoscaling, and Relational Database services";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  VMEC2SecurityCredentialCache = buildPerlPackage {
+    pname = "VM-EC2-Security-CredentialCache";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCONOVER/VM-EC2-Security-CredentialCache-0.25.tar.gz";
+      hash = "sha256-/H6cFS/ytyHMsiGsQAiZNHdc9YNmrttcwWk2CfhAk3s=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatISO8601 VMEC2 ];
+    meta = {
+      description = "Cache credentials respecting expiration time for IAM roles";
+      homepage = "https://search.cpan.org/dist/VM-EC2-Security-CredentialCache";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  W3CLinkChecker = buildPerlPackage {
+    pname = "W3C-LinkChecker";
+    version = "5.0.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DH/DHM/W3C-LinkChecker-5.0.0.tar.gz";
+      hash = "sha256-CvdY0ZUMswTdqvqnoDmHaHTYjC/teL2KYx6zkG5U+6Y=";
+    };
+    outputs = [ "out" ];
+    propagatedBuildInputs = [ CGI CSSDOM ConfigGeneral LWP LocaleCodes NetIP TermReadKey ];
+    meta = {
+      description = "W3C Link Checker";
+      homepage = "https://validator.w3.org/checklink";
+      license = with lib.licenses; [ w3c ];
+      mainProgram = "checklink";
+    };
+  };
+
+  WWWCurl = buildPerlPackage {
+    pname = "WWW-Curl";
+    version = "4.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz";
+      hash = "sha256-Uv+rEQ4yNI13XyQclz61b5awju28EQ130lfNsKJKt7o=";
+    };
+    patches = [
+      (fetchpatch {
+        url = "https://aur.archlinux.org/cgit/aur.git/plain/makefile.patch?h=perl-www-curl&id=7e004bb8c5dc49c903a5d5fa5ff28c30a58e2595";
+        hash = "sha256-8JZbe4IMfRZyLa118AAH/wsXrazOFy79OoH3Nuy57A4=";
+        name = "perl-www-curl-makefile.patch";
+      })
+    ];
+    env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type";
+    buildInputs = [ pkgs.curl ];
+    doCheck = false; # performs network access
+    meta = {
+      description = "Perl extension interface for libcurl";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  WWWFormUrlEncoded = buildPerlModule {
+    pname = "WWW-Form-UrlEncoded";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz";
+      hash = "sha256-wEgLXx8VtxFj7DJ7jnhCKY8Ms6zpfmPXA0rx6UotkPQ=";
+    };
+    meta = {
+      description = "Parser and builder for application/x-www-form-urlencoded";
+      homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WWWMechanize = buildPerlPackage {
+    pname = "WWW-Mechanize";
+    version = "2.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/WWW-Mechanize-2.17.tar.gz";
+      hash = "sha256-nAIAPoRiHeoSyYDEEB555PjK5OOCzT2iOfqovRmPBjo=";
+    };
+    propagatedBuildInputs = [ HTMLForm HTMLTree LWP ];
+    doCheck = false;
+    buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
+    meta = {
+      description = "Handy web browsing in a Perl object";
+      homepage = "https://github.com/libwww-perl/WWW-Mechanize";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mech-dump";
+    };
+  };
+
+  WWWMechanizeCGI = buildPerlPackage {
+    pname = "WWW-Mechanize-CGI";
+    version = "0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/WWW-Mechanize-CGI-0.3.tar.gz";
+      hash = "sha256-weBNi/Hh8NfP9Rl7I2Z2kyrLgCgJNq7a5PngSFGo0hA=";
+    };
+    propagatedBuildInputs = [ HTTPRequestAsCGI WWWMechanize ];
+    preConfigure = ''
+      substituteInPlace t/cgi-bin/script.cgi \
+        --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
+    '';
+    meta = {
+      description = "Use WWW::Mechanize with CGI applications";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.WWWMechanizeCGI.x86_64-darwin
+    };
+  };
+
+  WWWRobotRules = buildPerlPackage {
+    pname = "WWW-RobotRules";
+    version = "6.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz";
+      hash = "sha256-RrUC56KI1VlCmJHutdl5Rh3T7MalxJHq2F0WW24DpR4=";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Database of robots.txt-derived permissions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WWWTwilioAPI = buildPerlPackage {
+    pname = "WWW-Twilio-API";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SC/SCOTTW/WWW-Twilio-API-0.21.tar.gz";
+      hash = "sha256-WC21OgkfjaNnDAN3MzFPJRCvXo7gukKg45Hi8uPKdzQ=";
+    };
+    prePatch = "rm examples.pl";
+    propagatedBuildInputs = [ LWPProtocolHttps ];
+    meta = {
+      description = "Accessing Twilio's REST API with Perl";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WWWYoutubeViewer = callPackage ../development/perl-modules/WWW-YoutubeViewer { };
+
+  Want = buildPerlPackage {
+    pname = "Want";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBIN/Want-0.29.tar.gz";
+      hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc=";
+    };
+    meta = {
+      description = "A generalisation of wantarray";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Win32ShellQuote = buildPerlPackage {
+    pname = "Win32-ShellQuote";
+    version = "0.003001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz";
+      hash = "sha256-qnSw49wtQc1j9i+FPlIf/Xa42CNHmiYZ4i7bQEm0wNw=";
+    };
+    meta = {
+      description = "Quote argument lists for Win32";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Workflow = buildPerlPackage {
+    pname = "Workflow";
+    version = "1.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JO/JONASBN/Workflow-1.62.tar.gz";
+      hash = "sha256-WNNokAm4j+Gp2DcWfTKaoe4xTzFZeeVik2OGVFs80pU=";
+    };
+    buildInputs = [ DBDMock ListMoreUtils MockMonkeyPatch PodCoverageTrustPod TestException TestKwalitee TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ ClassAccessor ClassFactory DateTime DBI DataUUID DateTimeFormatStrptime ExceptionClass FileSlurp LogLog4perl Readonly XMLSimple ];
+    meta = {
+      description = "Simple, flexible system to implement workflows";
+      homepage = "https://github.com/jonasbn/perl-workflow";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Wx = buildPerlPackage {
+    pname = "Wx";
+    version = "0.9932";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Wx-0.9932.tar.gz";
+      hash = "sha256-HP22U1oPRnbm8aqyydjhbVd74+s7fMBMgHTWheZlG3A=";
+    };
+    patches = [
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/gtk3.patch";
+        hash = "sha256-CokmRzDTFmEMN/jTKw9ECCPvi0mHt5+h8Ojg4Jgd7D4=";
+      })
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_MakeMaker.patch";
+        hash = "sha256-kTJiCGv8yxQbgMych9yT2cOt+2bL1G4oJ0gehNcu0Rc=";
+      })
+      (fetchpatch {
+        url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_port.patch";
+        hash = "sha256-y9LMpcbm7p8+LZ2Hw3PA2jc7bHAFEu0QRa170XuseKw=";
+      })
+    ];
+    # DND.c:453:15: error: incompatible integer to pointer conversion assigning to 'NativeFormat' (aka 'const __CFString *') from 'wxDataFormatId'
+    postPatch = ''
+      substituteInPlace ext/dnd/XS/DataObject.xs \
+        --replace "#ifdef __WXGTK20__" "#if wxUSE_GUI"
+    '';
+    propagatedBuildInputs = [ AlienWxWidgets ];
+    # Testing requires an X server:
+    #   Error: Unable to initialize GTK, is DISPLAY set properly?"
+    doCheck = false;
+    buildInputs = [ ExtUtilsXSpp ];
+    meta = {
+      description = "Interface to the wxWidgets cross-platform GUI toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WxGLCanvas = buildPerlPackage {
+    pname = "Wx-GLCanvas";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBARBON/Wx-GLCanvas-0.09.tar.gz";
+      hash = "sha256-atLCn/Bv+Apci0udHWvwrtV0iegxvlnJRJT09ojcj+A=";
+    };
+    propagatedBuildInputs = [ pkgs.libGLU Wx ];
+    doCheck = false;
+    meta = {
+      description = "wxPerl demo helper for Wx::GLCanvas";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  X11IdleTime = buildPerlPackage {
+    pname = "X11-IdleTime";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AW/AWENDT/X11-IdleTime-0.09.tar.gz";
+      hash = "sha256-2P3cB455ge4xt2CMZTZFyyDwFr3dx8VQtNUn79NiR0g=";
+    };
+    buildInputs = [ pkgs.xorg.libXext pkgs.xorg.libXScrnSaver pkgs.xorg.libX11 ];
+    propagatedBuildInputs = [ InlineC ];
+    patchPhase = "sed -ie 's,-L/usr/X11R6/lib/,-L${pkgs.xorg.libX11.out}/lib/ -L${pkgs.xorg.libXext.out}/lib/ -L${pkgs.xorg.libXScrnSaver}/lib/,' IdleTime.pm";
+    meta = {
+      description = "Get the idle time of X11";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  X11Protocol = buildPerlPackage {
+    pname = "X11-Protocol";
+    version = "0.56";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SM/SMCCAM/X11-Protocol-0.56.tar.gz";
+      hash = "sha256-3pbdbHwfJfMoeqevZJAr+ErKqo4MO7dqoWdjZ+BKCLc=";
+    };
+    doCheck = false; # requires an X server
+    meta = {
+      description = "Perl module for the X Window System Protocol, version 11";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  X11ProtocolOther = buildPerlPackage {
+    pname = "X11-Protocol-Other";
+    version = "31";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-31.tar.gz";
+      hash = "sha256-PGJZk9x6jrHQLgcQimZjAkWcb8b589J2FfdJUVjcc/Q=";
+    };
+    propagatedBuildInputs = [ X11Protocol ];
+    buildInputs = [ EncodeHanExtra ModuleUtil ];
+    meta = {
+      description = "Miscellaneous helpers for X11::Protocol connections";
+      homepage = "https://user42.tuxfamily.org/x11-protocol-other/index.html";
+      license = with lib.licenses; [ gpl1Plus gpl3Plus ];
+    };
+  };
+
+  X11GUITest = buildPerlPackage {
+    pname = "X11-GUITest";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CT/CTRONDLP/X11-GUITest-0.28.tar.gz";
+      hash = "sha256-3O7eU3AGEP/xQtydXE5M0DcMiKTysTcfnL9NjYzm9ks=";
+    };
+    buildInputs = [ pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXt pkgs.xorg.libXtst ];
+    NIX_CFLAGS_LINK = "-lX11";
+    doCheck = false; # requires an X server
+    meta = {
+      description = "Provides GUI testing/interaction routines";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  X11XCB = buildPerlPackage {
+    pname = "X11-XCB";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZH/ZHMYLOVE/X11-XCB-0.20.tar.gz";
+      hash = "sha256-rVY5Yd4gIlVOdZHvXLjZY0ngxzdxIYXkeFBViMZ6L9I=";
+    };
+    env.AUTOMATED_TESTING = false;
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException XSObjectMagic ];
+    propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple ];
+    NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm";
+    doCheck = false; # requires an X server
+    meta = {
+      description = "Perl bindings for libxcb";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLCanonicalizeXML = buildPerlPackage {
+    pname = "XML-CanonicalizeXML";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SJ/SJZASADA/XML-CanonicalizeXML-0.10.tar.gz";
+      hash = "sha256-5yhGSIDLtMHz/XceCQOoUmzWV7OUuzchYDUkXPHihu4=";
+    };
+    buildInputs = [ pkgs.libxml2 ];
+    meta = {
+      description = "Perl extension for inclusive (1.0 and 1.1) and exclusive canonicalization of XML using libxml2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  XMLDescent = buildPerlModule {
+    pname = "XML-Descent";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/XML-Descent-1.04.tar.gz";
+      hash = "sha256-pxG4VvjN9eZHpExx+WfUjAlgNbnb0/Hvvb6kBgWvvVA=";
+    };
+    buildInputs = [ TestDifferences ];
+    propagatedBuildInputs = [ XMLTokeParser ];
+    meta = {
+      description = "Recursive descent XML parsing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLEncoding = buildPerlPackage {
+    pname = "XML-Encoding";
+    version = "2.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHAY/XML-Encoding-2.11.tar.gz";
+      hash = "sha256-pQ5Brwp5uILUiBa5VoHzilWvHmqIgo3NljdKi94jBaE=";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+    meta = {
+      description = "A perl module for parsing XML encoding maps";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLEntities = buildPerlPackage {
+    pname = "XML-Entities";
+    version = "1.0002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SIXTEASE/XML-Entities-1.0002.tar.gz";
+      hash = "sha256-wyqk8wlXPXZIqy5Bb2K2sgZS8q2c/T7sgv1REB/nMQ0=";
+    };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ LWP ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/download-entities.pl
+    '';
+    meta = {
+      description = "Mapping of XML entities to Unicode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLDOM = buildPerlPackage {
+    pname = "XML-DOM";
+    version = "1.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz";
+      hash = "sha256-i6JLC0WbAdbF5bBAiCnH1d/kf/ebNUjIE3WQSAmbF14=";
+    };
+    propagatedBuildInputs = [ XMLRegExp libxml_perl ];
+    meta = {
+      description = "Interface to XML::DOM toolset";
+      license = with lib.licenses; [ gpl2Only ];
+    };
+  };
+
+  XMLFeedPP = buildPerlPackage {
+    pname = "XML-FeedPP";
+    version = "0.95";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-FeedPP-0.95.tar.gz";
+      hash = "sha256-kMOVm/GmC3aimnSac5QfOgx7mllUwTZbyB2vyrsBqPQ=";
+    };
+    propagatedBuildInputs = [ XMLTreePP ];
+    meta = {
+      description = "Parse/write/merge/edit RSS/RDF/Atom syndication feeds";
+      homepage = "http://perl.overmeer.net/CPAN";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLFilterBufferText = buildPerlPackage {
+    pname = "XML-Filter-BufferText";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RB/RBERJON/XML-Filter-BufferText-1.01.tar.gz";
+      hash = "sha256-j9ISbTvuxVTfhSkZ9HOeaJICy7pqF1Bum2bqFlhBp1w=";
+    };
+    doCheck = false;
+    meta = {
+      description = "Filter to put all characters() in one event";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLFilterXInclude = buildPerlPackage {
+    pname = "XML-Filter-XInclude";
+    version = "1.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Filter-XInclude-1.0.tar.gz";
+      hash = "sha256-mHRvPB9vBJSR/sID1FW7j4ycbiUPBBkE3aXXjiEYf5M=";
+    };
+    doCheck = false;
+    meta = {
+      description = "XInclude as a SAX Filter";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLFilterSort = buildPerlPackage {
+    pname = "XML-Filter-Sort";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Filter-Sort-1.01.tar.gz";
+      hash = "sha256-UQWF85pJFszV+o1UXpYXnJHq9vx8l6QBp1aOhBFi+l8=";
+    };
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [
+      XMLSAX
+      XMLSAXWriter
+    ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/xmlsort
+    '';
+    meta = {
+      description = "SAX filter for sorting elements in XML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "xmlsort";
+    };
+  };
+
+  XMLGrove = buildPerlPackage {
+    pname = "XML-Grove";
+    version = "0.46alpha";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KM/KMACLEOD/XML-Grove-0.46alpha.tar.gz";
+      hash = "sha256-/LZtffSsKcsO3B6mLBdQcCyqaob8lHkKlPyxo2vQ0Rc=";
+    };
+    buildInputs = [ pkgs.libxml2 ];
+    propagatedBuildInputs = [ libxml_perl ];
+
+    #patch from https://bugzilla.redhat.com/show_bug.cgi?id=226285
+    patches = [ ../development/perl-modules/xml-grove-utf8.patch ];
+    meta = {
+      description = "Perl-style XML objects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLHandlerYAWriter = buildPerlPackage {
+    pname = "XML-Handler-YAWriter";
+    version = "0.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRAEHE/XML-Handler-YAWriter-0.23.tar.gz";
+      hash = "sha256-50y7vl41wapyYZC/re8cePN7ThV3+JyT2sKgr4MqpIU=";
+    };
+    propagatedBuildInputs = [ libxml_perl ];
+    meta = {
+      description = "Yet another Perl SAX XML Writer";
+      license = with lib.licenses; [ gpl1Only ];
+      mainProgram = "xmlpretty";
+    };
+  };
+
+  XMLLibXML = buildPerlPackage {
+    pname = "XML-LibXML";
+    version = "2.0209";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0209.tar.gz";
+      hash = "sha256-tKWrvNaJqi+7yLe0UznpYcSYTkgQhJTrbCgrR0giJCU=";
+    };
+    SKIP_SAX_INSTALL = 1;
+    buildInputs = [ AlienBuild AlienLibxml2 ]
+      ++ lib.optionals stdenv.isDarwin (with pkgs; [ libiconv zlib ]);
+    patches = [
+      ../development/perl-modules/XML-LibXML-clang16.patch
+    ];
+    # Remove test that fails after LibXML 2.11 upgrade
+    postPatch = ''
+      rm t/35huge_mode.t
+    '';
+    propagatedBuildInputs = [ XMLSAX ];
+    meta = {
+      description = "Perl Binding for libxml2";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLLibXMLSimple = buildPerlPackage {
+    pname = "XML-LibXML-Simple";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz";
+      hash = "sha256-zZjIEEtw12cr+ia0UTt4rfK0uSIOWGqovrGlCFADZaY=";
+    };
+    propagatedBuildInputs = [ XMLLibXML ];
+    meta = {
+      description = "An API for simple XML files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLLibXSLT = buildPerlPackage {
+    pname = "XML-LibXSLT";
+    version = "2.002001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.002001.tar.gz";
+      hash = "sha256-34knxP8ZSfYlgNHB5vAPDNVrU9OpV+5LFxtZv/pjssA=";
+    };
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ];
+    propagatedBuildInputs = [ XMLLibXML ];
+    meta = {
+      description = "Interface to the GNOME libxslt library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLMini = buildPerlPackage {
+    pname = "XML-Mini";
+    version = "1.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PD/PDEEGAN/XML-Mini-1.38.tar.gz";
+      hash = "sha256-r4A9OANqMYThJKaC5UZvG8EH9IqJ7zWwx2R+EaBz/i0=";
+    };
+    meta = {
+      description = "Perl implementation of the XML::Mini XML create/parse interface";
+      license = with lib.licenses; [ gpl3Plus ];
+    };
+  };
+
+  XMLNamespaceSupport = buildPerlPackage {
+    pname = "XML-NamespaceSupport";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz";
+      hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8=";
+    };
+    meta = {
+      description = "A simple generic namespace processor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLParser = buildPerlPackage {
+    pname = "XML-Parser";
+    version = "2.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz";
+      hash = "sha256-0zEzJJHFHMz7TLlP/ET5zXM3jmGEmNSjffngQ2YcUV0=";
+    };
+    patches = [ ../development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ];
+    postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+      substituteInPlace Expat/Makefile.PL --replace 'use English;' '#'
+    '' + lib.optionalString stdenv.isCygwin ''
+      sed -i"" -e "s@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. \$Config{_exe};@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. (\$^O eq 'cygwin' ? \"\" : \$Config{_exe});@" inc/Devel/CheckLib.pm
+    '';
+    makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ];
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "A perl module for parsing XML documents";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLParserLite = buildPerlPackage {
+    pname = "XML-Parser-Lite";
+    version = "0.722";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/XML-Parser-Lite-0.722.tar.gz";
+      hash = "sha256-b5CgJ+FTGg5UBs8d4Txwm1IWlm349z0Lq5q5GSCXY+4=";
+    };
+    buildInputs = [ TestRequires ];
+    meta = {
+      description = "Lightweight pure-perl XML Parser (based on regexps)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLXPath = buildPerlPackage {
+    pname = "XML-XPath";
+    version = "1.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/XML-XPath-1.48.tar.gz";
+      hash = "sha256-e8db42sjnlsucAqVcNK1O0MJPUZ/Kr5qdD+f+Qk3kM0=";
+    };
+    buildInputs = [ PathTiny ];
+    propagatedBuildInputs = [ XMLParser ];
+    meta = {
+      description = "Parse and evaluate XPath statements";
+      license = with lib.licenses; [ artistic2 ];
+      mainProgram = "xpath";
+    };
+  };
+
+  XMLXPathEngine = buildPerlPackage {
+    pname = "XML-XPathEngine";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz";
+      hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ=";
+    };
+    meta = {
+      description = "A re-usable XPath engine for DOM-like trees";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLRegExp = buildPerlPackage {
+    pname = "XML-RegExp";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz";
+      hash = "sha256-3xmQCWA2CFyOLUWQT+GA+Cv+1A8afgUkPzNOoQCQ/FQ=";
+    };
+    meta = {
+      description = "Regular expressions for XML tokens";
+      license = with lib.licenses; [ gpl2Plus];
+    };
+  };
+
+  XMLRPCLite = buildPerlPackage {
+    pname = "XMLRPC-Lite";
+    version = "0.717";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz";
+      hash = "sha256-Op+l8ssfr4t8ZrTDhuqzXKxgiK/E28dX1Pd9KE2rRSQ=";
+    };
+    propagatedBuildInputs = [ SOAPLite ];
+    # disable tests that require network
+    preCheck = "rm t/{26-xmlrpc.t,37-mod_xmlrpc.t}";
+    meta = {
+      description = "Client and server implementation of XML-RPC protocol";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLRSS = buildPerlModule {
+    pname = "XML-RSS";
+    version = "1.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-RSS-1.62.tar.gz";
+      hash = "sha256-0ycGNELH/3FDmTqgwtFv3lEhSRyXFmHrbLcA0uBDi04=";
+    };
+    propagatedBuildInputs = [ DateTimeFormatMail DateTimeFormatW3CDTF XMLParser ];
+    meta = {
+      description = "Creates and updates RSS files";
+      homepage = "https://metacpan.org/release/XML-RSS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLRules = buildPerlModule {
+    pname = "XML-Rules";
+    version = "1.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JE/JENDA/XML-Rules-1.16.tar.gz";
+      hash = "sha256-N4glXAev5BlaDecs4FBlIyDYF1KP8tEMYR9uOSBDhos=";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+    meta = {
+      description = "Parse XML and specify what and how to keep/process for individual tags";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLSAX = buildPerlPackage {
+    pname = "XML-SAX";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz";
+      hash = "sha256-RQbDhwQ6pqd7RV8A9XQJ83IKp+VTSVqyU1JjtO0eoSo=";
+    };
+    propagatedBuildInputs = [ XMLNamespaceSupport XMLSAXBase ];
+    postInstall = ''
+      perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
+      '';
+    meta = {
+      description = "Simple API for XML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLSAXBase = buildPerlPackage {
+    pname = "XML-SAX-Base";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz";
+      hash = "sha256-Zss1W6TvR8EMpzi9NZmXI2RDhqyFOrvrUTKEH16KKtA=";
+    };
+    meta = {
+      description = "Base class for SAX Drivers and Filters";
+      homepage = "https://github.com/grantm/XML-SAX-Base";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLSAXExpat = buildPerlPackage {
+    pname = "XML-SAX-Expat";
+    version = "0.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz";
+      hash = "sha256-TAFiE9DOfbLElOMAhrWZF7MC24wpLc0h853uvZeAyD8=";
+    };
+    propagatedBuildInputs = [ XMLParser XMLSAX ];
+    # Avoid creating perllocal.pod, which contains a timestamp
+    installTargets = [ "pure_install" ];
+    meta = {
+      description = "SAX Driver for Expat";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLSAXWriter = buildPerlPackage {
+    pname = "XML-SAX-Writer";
+    version = "0.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-0.57.tar.gz";
+      hash = "sha256-PWHQfvQ7ASb1tN5PQVolb6hZ+ojcT9q6rXC3vnxoLPA=";
+    };
+    propagatedBuildInputs = [ XMLFilterBufferText XMLNamespaceSupport XMLSAXBase ];
+    meta = {
+      description = "SAX2 XML Writer";
+      homepage = "https://github.com/perigrin/xml-sax-writer";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLSemanticDiff = buildPerlModule {
+    pname = "XML-SemanticDiff";
+    version = "1.0007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SemanticDiff-1.0007.tar.gz";
+      hash = "sha256-Bf3v77vD9rYvx8m1+rr7a2le1o8KPZWFdyUdHwQCoPU=";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+    meta = {
+      description = "Perl extension for comparing XML documents";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLSimple = buildPerlPackage {
+    pname = "XML-Simple";
+    version = "2.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz";
+      hash = "sha256-Ux/drr6iQWdD61xP36sCj1AhI9miIEBaQQDmj8SA2/g=";
+    };
+    propagatedBuildInputs = [ XMLSAXExpat ];
+    meta = {
+      description = "An API for simple XML files";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLTokeParser = buildPerlPackage {
+    pname = "XML-TokeParser";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PO/PODMASTER/XML-TokeParser-0.05.tar.gz";
+      hash = "sha256-hTm0+YQ2sabQiDQai0Uwt5IqzWUfPyk3f4sZSMfi18I=";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+    meta = {
+      description = "Simplified interface to XML::Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLTreePP = buildPerlPackage {
+    pname = "XML-TreePP";
+    version = "0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAWASAKI/XML-TreePP-0.43.tar.gz";
+      hash = "sha256-f74tZDCGAFmJSu7r911MrPG/jXt1KU64fY4VAvgb12A=";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Pure Perl implementation for parsing/writing XML documents";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLTwig = buildPerlPackage {
+    pname = "XML-Twig";
+    version = "3.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.52.tar.gz";
+      hash = "sha256-/vdYJsJPK4d9Cg0mRSEvxPuXVu1NJxFhSsFcSX6GgK0=";
+    };
+    postInstall = ''
+      mkdir -p $out/bin
+      cp tools/xml_grep/xml_grep $out/bin
+    '';
+    propagatedBuildInputs = [ XMLParser ];
+    doCheck = false;  # requires lots of extra packages
+    meta = {
+      description = "A Perl module for processing huge XML documents in tree mode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "xml_grep";
+    };
+  };
+
+  XMLValidatorSchema = buildPerlPackage {
+    pname = "XML-Validator-Schema";
+    version = "1.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/XML-Validator-Schema-1.10.tar.gz";
+      hash = "sha256-YUJnlYAVCokffTIjK14x4rTl5T6Kb6nL7stcI4FPFCI=";
+    };
+    propagatedBuildInputs = [ TreeDAGNode XMLFilterBufferText XMLSAX ];
+    meta = {
+      description = "Validate XML against a subset of W3C XML Schema";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XMLWriter = buildPerlPackage {
+    pname = "XML-Writer";
+    version = "0.900";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz";
+      hash = "sha256-c8j1vT7PKzUPStrm1mdtUuCOzC199KnwifpoNg1ADR8=";
+    };
+    meta = {
+      description = "Module for creating a XML document object oriented with on the fly validating towards the given DTD";
+      license = with lib.licenses; [ gpl1Only ];
+    };
+  };
+
+  XSObjectMagic = buildPerlPackage {
+    pname = "XS-Object-Magic";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz";
+      hash = "sha256-PcnkYM7pLhF0QGJ1RkOjN3jKUqVNIF/K/6SrDzzxXlo=";
+    };
+    buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ];
+    meta = {
+      description = "Opaque, extensible XS pointer backed objects using sv_magic";
+      homepage = "https://github.com/karenetheridge/XS-Object-Magic";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  XSParseKeyword = buildPerlModule {
+    pname = "XS-Parse-Keyword";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.38.tar.gz";
+      hash = "sha256-JQDEeGnPXKjGHdI8Z7rav2a48e+14nkgdlfBzmk+IR4=";
+    };
+    buildInputs = [ ExtUtilsCChecker Test2Suite ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "XS functions to assist in parsing keyword syntax";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  XSParseSublike = buildPerlModule {
+    pname = "XS-Parse-Sublike";
+    version = "0.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Sublike-0.20.tar.gz";
+      hash = "sha256-Wn0myqMroqQQUZwMJLHYCznvMgdRN224vbef2u/pms0=";
+    };
+    buildInputs = [ Test2Suite ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "XS functions to assist in parsing sub-like syntax";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
+  XXX = buildPerlPackage {
+    pname = "XXX";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/XXX-0.38.tar.gz";
+      hash = "sha256-0QUQ6gD2Gav0erKZ8Ui9WzYM+gfcDtUYE4t87HJpLSo=";
+    };
+    propagatedBuildInputs = [ YAMLPP ];
+    meta = {
+      description = "See Your Data in the Nude";
+      homepage = "https://github.com/ingydotnet/xxx-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  YAML = buildPerlPackage {
+    pname = "YAML";
+    version = "1.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-1.30.tar.gz";
+      hash = "sha256-UDCm1sv/rxJYMFC/VSqoANRkbKlnjBh63WSSJ/V0ec0=";
+    };
+
+    buildInputs = [ TestBase TestDeep TestYAML ];
+
+    meta = {
+      description = "YAML Ain't Markup Language (tm)";
+      homepage = "https://github.com/ingydotnet/yaml-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  YAMLOld = buildPerlPackage {
+    pname = "YAML-Old";
+    version = "1.23";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/YAML-Old-1.23.tar.gz";
+      hash = "sha256-+lRvzZrMWjm8iHGQL3/B66UOfceBxc1cCr8a7ObRfs0=";
+    };
+    buildInputs = [ TestYAML TestBase ];
+    meta = {
+      description = "Old YAML.pm Legacy Code";
+      homepage = "https://github.com/ingydotnet/yaml-old-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  YAMLSyck = buildPerlPackage {
+    pname = "YAML-Syck";
+    version = "1.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.34.tar.gz";
+      hash = "sha256-zJFWzK69p5jr/i8xthnoBld/hg7RcEJi8X/608bjQVk=";
+    };
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "Fast, lightweight YAML loader and dumper";
+      homepage = "https://github.com/toddr/YAML-Syck";
+      license = with lib.licenses; [ mit ];
+    };
+  };
+
+  YAMLTiny = buildPerlPackage {
+    pname = "YAML-Tiny";
+    version = "1.74";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/YAML-Tiny-1.74.tar.gz";
+      hash = "sha256-ezjKn1084kIwpri9wfR/Wy2zSOf3+WZsJvWVVjbjPWw=";
+    };
+    meta = {
+      description = "Read/Write YAML files with as little code as possible";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  YAMLLibYAML = buildPerlPackage {
+    pname = "YAML-LibYAML";
+    version = "0.88";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IN/INGY/YAML-LibYAML-0.88.tar.gz";
+      hash = "sha256-qKJzjMzDMqj3VJxMJ/PgCQyasR7vD2yFZEUXc5gTVng=";
+    };
+    meta = {
+      description = "Perl YAML Serialization using XS and libyaml";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  YAMLPP = buildPerlPackage {
+    pname = "YAML-PP";
+    version = "0.036";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.036.tar.gz";
+      hash = "sha256-yLTlBYSt+S73Vz9rsB1u1Y5iF2MsV0J7cnTPp8pG/Bs=";
+    };
+    buildInputs = [ TestDeep TestWarn ];
+    meta = {
+      description = "YAML 1.2 Processor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Yancy = buildPerlPackage {
+    pname = "Yancy";
+    version = "1.088";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PR/PREACTION/Yancy-1.088.tar.gz";
+      hash = "sha256-addqs5ilrGiQc0Paisybr9UZ+0x4WrAU7CagUhA2vSo=";
+    };
+    buildInputs = [ FileShareDirInstall ];
+    propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ];
+    meta = {
+      homepage = "http://preaction.me/yancy/";
+      description = "The Best Web Framework Deserves the Best CMS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WebMachine = buildPerlPackage {
+    pname = "Web-Machine";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Web-Machine-0.17.tar.gz";
+      hash = "sha256-8TnSsxFMVJ6RhH2qq4t1y2meV9r1u/Db0TKT8z/l4io=";
+    };
+    buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
+    propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
+    meta = {
+      description = "A Perl port of Webmachine";
+      homepage = "https://metacpan.org/release/Web-Machine";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WebScraper = buildPerlModule {
+    pname = "Web-Scraper";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-0.38.tar.gz";
+      hash = "sha256-+VtuX41/7r4RbQW/WaK3zxpR7Z0wvKgBI0MOxFZ1Q78=";
+    };
+    buildInputs = [ ModuleBuildTiny TestBase TestRequires ];
+    propagatedBuildInputs = [ HTMLParser HTMLSelectorXPath HTMLTagset HTMLTree HTMLTreeBuilderXPath UNIVERSALrequire URI XMLXPathEngine YAML libwwwperl ];
+    meta = {
+      homepage = "https://github.com/miyagawa/web-scraper";
+      description = "Web Scraping Toolkit using HTML and CSS Selectors or XPath expressions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WebServiceLinode = buildPerlModule {
+    pname = "WebService-Linode";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKEGRB/WebService-Linode-0.29.tar.gz";
+      hash = "sha256-EDqrJFME8I6eh6x7yITdtEpjDea6wHfckh9xbXEVSSI=";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ JSON LWPProtocolHttps ];
+    meta = {
+      description = "Perl Interface to the Linode.com API";
+      homepage = "https://github.com/mikegrb/WebService-Linode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  WebServiceValidatorHTMLW3C = buildPerlModule {
+    pname = "WebService-Validator-HTML-W3C";
+    version = "0.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STRUAN/WebService-Validator-HTML-W3C-0.28.tar.gz";
+      hash = "sha256-zLB60zegOuyBob6gqJzSlUaR/1uzZ9+aMrnZEw8XURA=";
+    };
+    buildInputs = [ ClassAccessor LWP ];
+    meta = {
+      description = "Access the W3Cs online HTML validator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ZonemasterCLI = buildPerlPackage {
+    pname = "Zonemaster-CLI";
+    version = "6.000003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-CLI-v6.0.3.tar.gz";
+      hash = "sha256-oYDBYVygvPUZ9vrGX/y5A0MAQ6zgSsrf6AtUdFcZG4Q=";
+    };
+    propagatedBuildInputs = [
+      JSONXS
+      MooseXGetopt
+      TextReflow
+      ZonemasterEngine
+      ZonemasterLDNS
+      libintl-perl
+    ];
+
+    preConfigure = ''
+      patchShebangs script/
+    '';
+
+    meta = {
+      description = "Run Zonemaster tests from the command line";
+      license = with lib.licenses; [ bsd3 ];
+      maintainers = with lib.maintainers; [ qbit ];
+    };
+  };
+
+  ZonemasterEngine = buildPerlPackage {
+    pname = "Zonemaster-Engine";
+    version = "4.6.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-Engine-v4.6.1.tar.gz";
+      hash = "sha256-4AXo3bZTOLnnPjjX5KNb/2O7MRqcAtlqpz5sPwNN9b0=";
+    };
+    buildInputs = [ PodCoverage TestDifferences TestException TestFatal TestNoWarnings TestPod ];
+    propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ];
+
+    meta = {
+      description = "A tool to check the quality of a DNS zone";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+  ZonemasterLDNS = buildPerlPackage {
+    pname = "Zonemaster-LDNS";
+    version = "3.2.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-LDNS-3.2.0.tar.gz";
+      hash = "sha256-BpsWQRcpX6gtJSlAocqLMIrYsfPocjvk6CaqqX9wbWw=";
+    };
+    env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include -I${pkgs.libidn2}.dev}/include";
+    NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2";
+
+    makeMakerFlags = [ "--prefix-openssl=${pkgs.openssl.dev}" ];
+
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = [ DevelChecklib ModuleInstall ModuleInstallXSUtil TestFatal TestDifferences pkgs.ldns pkgs.libidn2 pkgs.openssl ];
+    meta = {
+      description = "Perl wrapper for the ldns DNS library";
+      license = with lib.licenses; [ bsd3 ];
+    };
+  };
+
+} // lib.optionalAttrs config.allowAliases {
+  autodie = null; # part of Perl
+  AutoLoader = null; # part of Perl 5.22
+  constant = null; # part of Perl 5.22
+  DevelSelfStubber = null; # part of Perl 5.22
+  Digest = null; # part of Perl 5.22
+  Exporter = null; # part of Perl 5.22
+  I18NCollate = null; # part of Perl 5.22
+  lib_ = null; # part of Perl 5.22
+  LocaleMaketextSimple = null; # part of Perl 5.22
+  MathComplex = null; # part of Perl 5.22
+  MIMEBase64 = null; # part of Perl 5.22
+  PerlIOviaQuotedPrint = null; # part of Perl 5.22
+  PodEscapes = null; # part of Perl 5.22
+  Safe = null; # part of Perl 5.22
+  SearchDict = null; # part of Perl 5.22
+  Test = null; # part of Perl 5.22
+  TextAbbrev = null; # part of Perl 5.22
+  TextTabsWrap = null; # part of Perl 5.22
+  DigestSHA = null;
+  "if" = null;
+  TestSimple = null;
+  AttributeHandlers = null; # part of Perl 5.26
+  base = null; # part of Perl 5.26
+  CPANMeta = null; # part of Perl 5.26
+  CPANMetaRequirements = null; # part of Perl 5.26
+  CPANMetaYAML = null; # part of Perl 5.26
+  DigestMD5 = null; # part of Perl 5.26
+  LocaleMaketext = null; # part of Perl 5.26
+  ModuleLoadConditional = null; # part of Perl 5.26
+  ModuleMetadata = null; # part of Perl 5.26
+  PerlOSType = null; # part of Perl 5.26
+  PodUsage = null; # part of Perl 5.26
+  TermANSIColor = null; # part of Perl 5.26
+  TermCap = null; # part of Perl 5.26
+  ThreadSemaphore = null; # part of Perl 5.26
+  UnicodeNormalize = null; # part of Perl 5.26
+  XSLoader = null; # part of Perl 5.26
+
+  Carp = null; # part of Perl 5.28
+  ExtUtilsCBuilder = null; # part of Perl 5.28
+  ExtUtilsParseXS = null; # part of Perl 5.28
+  FilterSimple = null; # part of Perl 5.28
+  IOSocketIP = null; # part of Perl 5.28
+  SelfLoader = null; # part of Perl 5.28
+  Socket = null; # part of Perl 5.28
+  TestHarness = null; # part of Perl 5.28
+  threads = null; # part of Perl 5.28
+  TimeHiRes = null; # part of Perl 5.28
+  UnicodeCollate = null; # part of Perl 5.28
+  ModuleCoreList = null; # part of Perl 5.28.2
+
+  bignum = null; # part of Perl 5.30.3
+  DataDumper = null; # part of Perl 5.30.3
+  ExtUtilsManifest = null; # part of Perl 5.30.3
+  FileTemp = null; # part of Perl 5.30.3
+  MathBigRat = null; # part of Perl 5.30.3
+  Storable = null; # part of Perl 5.30.3
+  threadsshared = null; # part of Perl 5.30.3
+  ThreadQueue = null; # part of Perl 5.30.3
+
+  ArchiveZip_1_53 = self.ArchiveZip;
+  Autobox = self.autobox;
+  CommonSense = self.commonsense; # For backwards compatibility.
+  if_ = self."if"; # For backwards compatibility.
+  Log4Perl = self.LogLog4perl; # For backwards compatibility.
+  MouseXGetOpt = self.MouseXGetopt;
+  NamespaceAutoclean = self.namespaceautoclean; # Deprecated.
+  NamespaceClean = self.namespaceclean; # Deprecated.
+  CatalystPluginUnicodeEncoding = self.CatalystRuntime;
+  ClassAccessorFast = self.ClassAccessor;
+  ClassMOP = self.Moose;
+  CompressZlib = self.IOCompress;
+  constantdefer = self.constant-defer;
+  DigestHMAC_SHA1 = self.DigestHMAC;
+  DistZillaPluginNoTabsTests = self.DistZillaPluginTestNoTabs;
+  EmailMIMEModifier = self.EmailMIME;
+  ExtUtilsCommand = self.ExtUtilsMakeMaker;
+  IOSocketInet6 = self.IOSocketINET6;
+  IOstringy = self.IOStringy;
+  libintl_perl = self.libintl-perl;
+  libintlperl = self.libintl-perl;
+  LWPProtocolconnect = self.LWPProtocolConnect;
+  LWPProtocolhttps = self.LWPProtocolHttps;
+  LWPUserAgent = self.LWP;
+  MIMEtools = self.MIMETools;
+  NetLDAP = self.perlldap;
+  NetSMTP = self.libnet;
+  OLEStorageLight = self.OLEStorage_Lite; # For backwards compatibility. Please use OLEStorage_Lite instead.
+  ParseCPANMeta = self.CPANMeta;
+  TestMoose = self.Moose;
+  TestMore = self.TestSimple;
+  TestTester = self.TestSimple;
+  Testuseok = self.TestSimple;
+  SubExporterUtil = self.SubExporter;
+  version = self.Version;
+
+  Gtk2GladeXML = throw "Gtk2GladeXML has been removed"; # 2022-01-15
+  pcscperl = throw "'pcscperl' has been renamed to 'ChipcardPCSC'"; # Added 2023-12-07
+}
diff --git a/nixpkgs/pkgs/top-level/php-packages.nix b/nixpkgs/pkgs/top-level/php-packages.nix
new file mode 100644
index 000000000000..c424226f76b9
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/php-packages.nix
@@ -0,0 +1,691 @@
+{ stdenv
+, config
+, callPackages
+, lib
+, pkgs
+, phpPackage
+, autoconf
+, pkg-config
+, aspell
+, bzip2
+, curl
+, cyrus_sasl
+, enchant2
+, freetds
+, gd
+, gettext
+, gmp
+, html-tidy
+, icu64
+, libffi
+, libiconv
+, libkrb5
+, libsodium
+, libxml2
+, libxslt
+, libzip
+, net-snmp
+, nix-update-script
+, oniguruma
+, openldap
+, openssl_1_1
+, openssl
+, overrideSDK
+, pam
+, pcre2
+, postgresql
+, bison
+, re2c
+, readline
+, rsync
+, sqlite
+, unixODBC
+, uwimap
+, valgrind
+, zlib
+, fetchpatch
+}:
+
+lib.makeScope pkgs.newScope (self: with self; {
+  buildPecl = callPackage ../build-support/php/build-pecl.nix {
+    php = php.unwrapped;
+  };
+
+  composerHooks = callPackages ../build-support/php/hooks { };
+
+  mkComposerRepository = callPackage ../build-support/php/build-composer-repository.nix { };
+  buildComposerProject = callPackage ../build-support/php/build-composer-project.nix { };
+
+  # Wrap mkDerivation to prepend pname with "php-" to make names consistent
+  # with how buildPecl does it and make the file easier to overview.
+  mkDerivation = origArgs:
+    let
+      args = lib.fix (lib.extends
+        (_: previousAttrs: {
+          pname = "php-${previousAttrs.pname}";
+          passthru = (previousAttrs.passthru or { }) // {
+            updateScript = nix-update-script { };
+          };
+          meta = (previousAttrs.meta or { }) // {
+            mainProgram = previousAttrs.meta.mainProgram or previousAttrs.pname;
+          };
+        })
+        (if lib.isFunction origArgs then origArgs else (_: origArgs))
+      );
+    in
+    pkgs.stdenv.mkDerivation args;
+
+  # Function to build an extension which is shipped as part of the php
+  # source, based on the php version.
+  #
+  # Name passed is the name of the extension and is automatically used
+  # to add the configureFlag "--enable-${name}", which can be overridden.
+  #
+  # Build inputs is used for extra deps that may be needed. And zendExtension
+  # will mark the extension as a zend extension or not.
+  mkExtension = lib.makeOverridable
+    ({ name
+     , configureFlags ? [ "--enable-${extName}" ]
+     , internalDeps ? [ ]
+     , postPhpize ? ""
+     , buildInputs ? [ ]
+     , zendExtension ? false
+     , doCheck ? true
+     , extName ? name
+     , ...
+     }@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // {
+      pname = "php-${name}";
+      extensionName = extName;
+
+      outputs = [ "out" "dev" ];
+
+      inherit (php.unwrapped) version src;
+
+      enableParallelBuilding = true;
+
+      nativeBuildInputs = [
+        php.unwrapped
+        autoconf
+        pkg-config
+        re2c
+        bison
+      ];
+
+      inherit configureFlags internalDeps buildInputs zendExtension doCheck;
+
+      preConfigurePhases = [
+        "genfiles"
+        "cdToExtensionRootPhase"
+      ];
+
+      genfiles = ''
+        if [ -f "scripts/dev/genfiles" ]; then
+          ./scripts/dev/genfiles
+        fi
+      '';
+
+      cdToExtensionRootPhase = ''
+        # Go to extension source root.
+        cd "ext/${extName}"
+      '';
+
+      preConfigure = ''
+        nullglobRestore=$(shopt -p nullglob)
+        shopt -u nullglob   # To make ?-globbing work
+
+        # Some extensions have a config0.m4 or config9.m4
+        if [ -f config?.m4 ]; then
+          mv config?.m4 config.m4
+        fi
+
+        $nullglobRestore
+
+        phpize
+        ${postPhpize}
+
+        ${lib.concatMapStringsSep
+          "\n"
+          (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
+          internalDeps
+        }
+      '';
+
+      checkPhase = ''
+        runHook preCheck
+
+        NO_INTERACTION=yes SKIP_PERF_SENSITIVE=yes make test
+        runHook postCheck
+      '';
+
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/lib/php/extensions
+        cp modules/${extName}.so $out/lib/php/extensions/${extName}.so
+        mkdir -p $dev/include
+        ${rsync}/bin/rsync -r --filter="+ */" \
+                              --filter="+ *.h" \
+                              --filter="- *" \
+                              --prune-empty-dirs \
+                              . $dev/include/
+
+        runHook postInstall
+      '';
+
+      meta = {
+        description = "PHP upstream extension: ${name}";
+        inherit (php.meta) maintainers homepage license;
+      };
+    }));
+
+  php = phpPackage;
+
+  # This is a set of interactive tools based on PHP.
+  tools = {
+    box = callPackage ../development/php-packages/box { };
+
+    castor = callPackage ../development/php-packages/castor { };
+
+    composer = callPackage ../development/php-packages/composer { };
+
+    deployer = callPackage ../development/php-packages/deployer { };
+
+    grumphp = callPackage ../development/php-packages/grumphp { };
+
+    phan = callPackage ../development/php-packages/phan { };
+
+    phing = callPackage ../development/php-packages/phing { };
+
+    phive = callPackage ../development/php-packages/phive { };
+
+    php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { };
+
+    php-parallel-lint = callPackage ../development/php-packages/php-parallel-lint { };
+
+    phpcbf = callPackage ../development/php-packages/phpcbf { };
+
+    phpcs = callPackage ../development/php-packages/phpcs { };
+
+    phpmd = callPackage ../development/php-packages/phpmd { };
+
+    phpspy = callPackage ../development/php-packages/phpspy { };
+
+    phpstan = callPackage ../development/php-packages/phpstan { };
+
+    psalm = callPackage ../development/php-packages/psalm { };
+
+    psysh = callPackage ../development/php-packages/psysh { };
+  };
+
+
+
+  # This is a set of PHP extensions meant to be used in php.buildEnv
+  # or php.withExtensions to extend the functionality of the PHP
+  # interpreter.
+  # The extensions attributes is composed of three sections:
+  # 1. The contrib conditional extensions, which are only available on specific PHP versions
+  # 2. The contrib extensions available
+  # 3. The core extensions
+  extensions =
+  # Contrib extensions
+  {
+    amqp = callPackage ../development/php-packages/amqp { };
+
+    apcu = callPackage ../development/php-packages/apcu { };
+
+    ast = callPackage ../development/php-packages/ast { };
+
+    blackfire = callPackage ../development/tools/misc/blackfire/php-probe.nix { inherit php; };
+
+    couchbase = callPackage ../development/php-packages/couchbase { };
+
+    datadog_trace = callPackage ../development/php-packages/datadog_trace {
+      buildPecl = buildPecl.override {
+        stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+      };
+      inherit (pkgs) darwin;
+    };
+
+    ds = callPackage ../development/php-packages/ds { };
+
+    event = callPackage ../development/php-packages/event { };
+
+    gnupg = callPackage ../development/php-packages/gnupg { };
+
+    grpc = callPackage ../development/php-packages/grpc { };
+
+    igbinary = callPackage ../development/php-packages/igbinary { };
+
+    imagick = callPackage ../development/php-packages/imagick { };
+
+    inotify = callPackage ../development/php-packages/inotify { };
+
+    mailparse = callPackage ../development/php-packages/mailparse { };
+
+    maxminddb = callPackage ../development/php-packages/maxminddb { };
+
+    memcache = callPackage ../development/php-packages/memcache { };
+
+    memcached = callPackage ../development/php-packages/memcached { };
+
+    meminfo = callPackage ../development/php-packages/meminfo { };
+
+    memprof = callPackage ../development/php-packages/memprof { };
+
+    mongodb = callPackage ../development/php-packages/mongodb {
+      inherit (pkgs) darwin;
+    };
+
+    msgpack = callPackage ../development/php-packages/msgpack { };
+
+    oci8 = callPackage ../development/php-packages/oci8 { };
+
+    opentelemetry = callPackage ../development/php-packages/opentelemetry { };
+
+    openswoole = callPackage ../development/php-packages/openswoole { };
+
+    pdlib = callPackage ../development/php-packages/pdlib { };
+
+    pcov = callPackage ../development/php-packages/pcov { };
+
+    pdo_oci = buildPecl rec {
+      inherit (php.unwrapped) src version;
+
+      pname = "pdo_oci";
+      sourceRoot = "php-${version}/ext/pdo_oci";
+
+      buildInputs = [ pkgs.oracle-instantclient ];
+      configureFlags = [ "--with-pdo-oci=instantclient,${pkgs.oracle-instantclient.lib}/lib" ];
+
+      internalDeps = [ php.extensions.pdo ];
+
+      postPatch = ''
+        sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4
+      '';
+
+      meta.maintainers = lib.teams.php.members;
+    };
+
+    pdo_sqlsrv = callPackage ../development/php-packages/pdo_sqlsrv { };
+
+    phalcon = callPackage ../development/php-packages/phalcon { };
+
+    pinba = callPackage ../development/php-packages/pinba { };
+
+    protobuf = callPackage ../development/php-packages/protobuf { };
+
+    rdkafka = callPackage ../development/php-packages/rdkafka { };
+
+    redis = callPackage ../development/php-packages/redis { };
+
+    relay = callPackage ../development/php-packages/relay { inherit php; };
+
+    rrd = callPackage ../development/php-packages/rrd { };
+
+    smbclient = callPackage ../development/php-packages/smbclient { };
+
+    snuffleupagus = callPackage ../development/php-packages/snuffleupagus {
+      inherit (pkgs) darwin;
+    };
+
+    spx = callPackage ../development/php-packages/spx { };
+
+    sqlsrv = callPackage ../development/php-packages/sqlsrv { };
+
+    ssh2 = callPackage ../development/php-packages/ssh2 { };
+
+    swoole = callPackage ../development/php-packages/swoole { };
+
+    uv = callPackage ../development/php-packages/uv { };
+
+    vld = callPackage ../development/php-packages/vld { };
+
+    xdebug = callPackage ../development/php-packages/xdebug { };
+
+    yaml = callPackage ../development/php-packages/yaml { };
+  } // lib.optionalAttrs config.allowAliases {
+    php-spx = throw "php-spx is deprecated, use spx instead";
+  } // (
+    # Core extensions
+    let
+      # This list contains build instructions for different modules that one may
+      # want to build.
+      #
+      # These will be passed as arguments to mkExtension above.
+      extensionData = [
+        { name = "bcmath"; }
+        { name = "bz2"; buildInputs = [ bzip2 ]; configureFlags = [ "--with-bz2=${bzip2.dev}" ]; }
+        { name = "calendar"; }
+        { name = "ctype"; }
+        {
+          name = "curl";
+          buildInputs = [ curl ];
+          configureFlags = [ "--with-curl=${curl.dev}" ];
+          doCheck = false;
+        }
+        { name = "dba"; }
+        {
+          name = "dom";
+          buildInputs = [ libxml2 ];
+          configureFlags = [
+            "--enable-dom"
+          ];
+        }
+        {
+          name = "enchant";
+          buildInputs = [ enchant2 ];
+          configureFlags = [ "--with-enchant" ];
+          doCheck = false;
+        }
+        { name = "exif"; doCheck = false; }
+        { name = "ffi"; buildInputs = [ libffi ]; }
+        {
+          name = "fileinfo";
+          buildInputs = [ pcre2 ];
+        }
+        { name = "filter"; buildInputs = [ pcre2 ]; }
+        { name = "ftp"; buildInputs = [ openssl ]; }
+        {
+          name = "gd";
+          buildInputs = [ zlib gd ];
+          configureFlags = [
+            "--enable-gd"
+            "--with-external-gd=${gd.dev}"
+            "--enable-gd-jis-conv"
+          ];
+          doCheck = false;
+        }
+        {
+          name = "gettext";
+          buildInputs = [ gettext ];
+          postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' '';
+          configureFlags = [ "--with-gettext=${gettext}" ];
+        }
+        {
+          name = "gmp";
+          buildInputs = [ gmp ];
+          configureFlags = [ "--with-gmp=${gmp.dev}" ];
+        }
+        {
+          name = "iconv";
+          configureFlags = [
+            "--with-iconv${lib.optionalString stdenv.isDarwin "=${libiconv}"}"
+          ];
+          doCheck = false;
+        }
+        {
+          name = "imap";
+          buildInputs = [ uwimap openssl pam pcre2 libkrb5 ];
+          configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" "--with-kerberos" ];
+        }
+        {
+          name = "intl";
+          buildInputs = [ icu64 ];
+        }
+        {
+          name = "ldap";
+          buildInputs = [ openldap cyrus_sasl ];
+          configureFlags = [
+            "--with-ldap"
+            "LDAP_DIR=${openldap.dev}"
+            "LDAP_INCDIR=${openldap.dev}/include"
+            "LDAP_LIBDIR=${openldap.out}/lib"
+          ] ++ lib.optionals stdenv.isLinux [
+            "--with-ldap-sasl=${cyrus_sasl.dev}"
+          ];
+          doCheck = false;
+        }
+        {
+          name = "mbstring";
+          buildInputs = [ oniguruma pcre2 ];
+          doCheck = false;
+        }
+        {
+          name = "mysqli";
+          internalDeps = [ php.extensions.mysqlnd ];
+          configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ];
+          doCheck = false;
+        }
+        {
+          name = "mysqlnd";
+          buildInputs = [ zlib openssl ];
+          # The configure script doesn't correctly add library link
+          # flags, so we add them to the variable used by the Makefile
+          # when linking.
+          MYSQLND_SHARED_LIBADD = "-lssl -lcrypto";
+          # The configure script builds a config.h which is never
+          # included. Let's include it in the main header file
+          # included by all .c-files.
+          patches = [
+            (pkgs.writeText "mysqlnd_config.patch" ''
+              --- a/ext/mysqlnd/mysqlnd.h
+              +++ b/ext/mysqlnd/mysqlnd.h
+              @@ -1,3 +1,6 @@
+              +#ifdef HAVE_CONFIG_H
+              +#include "config.h"
+              +#endif
+               /*
+                 +----------------------------------------------------------------------+
+                 | Copyright (c) The PHP Group                                          |
+            '')
+          ];
+        }
+        {
+          name = "opcache";
+          buildInputs = [ pcre2 ] ++
+            lib.optional
+              (!stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind)
+              valgrind.dev;
+          configureFlags = lib.optional php.ztsSupport "--disable-opcache-jit";
+          zendExtension = true;
+          postPatch = lib.optionalString stdenv.isDarwin ''
+            # Tests are flaky on darwin
+            rm ext/opcache/tests/blacklist.phpt
+            rm ext/opcache/tests/bug66338.phpt
+            rm ext/opcache/tests/bug78106.phpt
+            rm ext/opcache/tests/issue0115.phpt
+            rm ext/opcache/tests/issue0149.phpt
+            rm ext/opcache/tests/revalidate_path_01.phpt
+          '';
+          # Tests launch the builtin webserver.
+          __darwinAllowLocalNetworking = true;
+        }
+        {
+          name = "openssl";
+          buildInputs = [ openssl ];
+          configureFlags = [ "--with-openssl" ];
+          doCheck = false;
+        }
+        # This provides a legacy OpenSSL PHP extension
+        # For situations where OpenSSL 3 do not support a set of features
+        # without a specific openssl.cnf file
+        {
+          name = "openssl-legacy";
+          extName = "openssl";
+          buildInputs = [ openssl_1_1 ];
+          configureFlags = [ "--with-openssl" ];
+          doCheck = false;
+        }
+        { name = "pcntl"; }
+        { name = "pdo"; doCheck = false; }
+        {
+          name = "pdo_dblib";
+          internalDeps = [ php.extensions.pdo ];
+          configureFlags = [ "--with-pdo-dblib=${freetds}" ];
+          # Doesn't seem to work on darwin.
+          enable = (!stdenv.isDarwin);
+          doCheck = false;
+        }
+        {
+          name = "pdo_mysql";
+          internalDeps = with php.extensions; [ pdo mysqlnd ];
+          configureFlags = [ "--with-pdo-mysql=mysqlnd" "PHP_MYSQL_SOCK=/run/mysqld/mysqld.sock" ];
+          doCheck = false;
+        }
+        {
+          name = "pdo_odbc";
+          internalDeps = [ php.extensions.pdo ];
+          configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ];
+          doCheck = false;
+        }
+        {
+          name = "pdo_pgsql";
+          internalDeps = [ php.extensions.pdo ];
+          configureFlags = [ "--with-pdo-pgsql=${postgresql}" ];
+          doCheck = false;
+        }
+        {
+          name = "pdo_sqlite";
+          internalDeps = [ php.extensions.pdo ];
+          buildInputs = [ sqlite ];
+          configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
+          doCheck = false;
+        }
+        {
+          name = "pgsql";
+          buildInputs = [ pcre2 ];
+          configureFlags = [ "--with-pgsql=${postgresql}" ];
+          doCheck = false;
+        }
+        { name = "posix"; doCheck = false; }
+        { name = "pspell"; configureFlags = [ "--with-pspell=${aspell}" ]; }
+        {
+          name = "readline";
+          buildInputs = [
+            readline
+          ];
+          configureFlags = [
+            "--with-readline=${readline.dev}"
+          ];
+          postPatch = ''
+            # Fix `--with-readline` option not being available.
+            # `PHP_ALWAYS_SHARED` generated by phpize enables all options
+            # without the possibility to override them. But when `--with-libedit`
+            # is enabled, `--with-readline` is not registered.
+            echo '
+            AC_DEFUN([PHP_ALWAYS_SHARED],[
+              test "[$]$1" != "no" && ext_shared=yes
+            ])dnl
+            ' | cat - ext/readline/config.m4 > ext/readline/config.m4.tmp
+            mv ext/readline/config.m4{.tmp,}
+          '';
+          doCheck = false;
+        }
+        { name = "session";
+          doCheck = false;
+        }
+        { name = "shmop"; }
+        {
+          name = "simplexml";
+          buildInputs = [ libxml2 pcre2 ];
+          configureFlags = [
+            "--enable-simplexml"
+          ];
+        }
+        {
+          name = "snmp";
+          buildInputs = [ net-snmp openssl ];
+          configureFlags = [ "--with-snmp" ];
+          # net-snmp doesn't build on darwin.
+          enable = (!stdenv.isDarwin);
+          doCheck = false;
+        }
+        {
+          name = "soap";
+          buildInputs = [ libxml2 ];
+          configureFlags = [
+            "--enable-soap"
+          ];
+          doCheck = false;
+        }
+        {
+          name = "sockets";
+          doCheck = false;
+        }
+        { name = "sodium"; buildInputs = [ libsodium ]; }
+        {
+          name = "sqlite3";
+          buildInputs = [ sqlite ];
+
+          # The `sqlite3_bind_bug68849.phpt` test is currently broken for i686 Linux systems since sqlite 3.43, cf.:
+          # - https://github.com/php/php-src/issues/12076
+          # - https://www.sqlite.org/forum/forumpost/abbb95376ec6cd5f
+          patches = lib.optional (stdenv.isi686 && stdenv.isLinux) ../development/interpreters/php/skip-sqlite3_bind_bug68849.phpt.patch;
+        }
+        { name = "sysvmsg"; }
+        { name = "sysvsem"; }
+        { name = "sysvshm"; }
+        { name = "tidy"; configureFlags = [ "--with-tidy=${html-tidy}" ]; doCheck = false; }
+        {
+          name = "tokenizer";
+          patches = [ ../development/interpreters/php/fix-tokenizer-php81.patch ];
+        }
+        {
+          name = "xml";
+          buildInputs = [ libxml2 ];
+          configureFlags = [
+            "--enable-xml"
+          ];
+          doCheck = false;
+        }
+        {
+          name = "xmlreader";
+          buildInputs = [ libxml2 ];
+          internalDeps = [ php.extensions.dom ];
+          env.NIX_CFLAGS_COMPILE = toString [ "-I../.." "-DHAVE_DOM" ];
+          doCheck = false;
+          configureFlags = [
+            "--enable-xmlreader"
+          ];
+        }
+        {
+          name = "xmlwriter";
+          buildInputs = [ libxml2 ];
+          configureFlags = [
+            "--enable-xmlwriter"
+          ];
+        }
+        {
+          name = "xsl";
+          buildInputs = [ libxslt libxml2 ];
+          doCheck = false;
+          configureFlags = [ "--with-xsl=${libxslt.dev}" ];
+        }
+        { name = "zend_test"; }
+        {
+          name = "zip";
+          buildInputs = [ libzip pcre2 ];
+          configureFlags = [
+            "--with-zip"
+          ];
+          doCheck = false;
+        }
+        {
+          name = "zlib";
+          buildInputs = [ zlib ];
+          configureFlags = [
+            "--with-zlib"
+          ];
+        }
+      ];
+
+      # Convert the list of attrs:
+      # [ { name = <name>; ... } ... ]
+      # to a list of
+      # [ { name = <name>; value = <extension drv>; } ... ]
+      #
+      # which we later use listToAttrs to make all attrs available by name.
+      #
+      # Also filter out extensions based on the enable property.
+      namedExtensions = builtins.map
+        (drv: {
+          name = drv.name;
+          value = mkExtension drv;
+        })
+        (builtins.filter (i: i.enable or true) extensionData);
+
+      # Produce the final attribute set of all extensions defined.
+    in
+    builtins.listToAttrs namedExtensions
+  );
+})
diff --git a/nixpkgs/pkgs/top-level/pkg-config/defaultPkgConfigPackages.nix b/nixpkgs/pkgs/top-level/pkg-config/defaultPkgConfigPackages.nix
new file mode 100644
index 000000000000..b3cf3cdca2fc
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/pkg-config/defaultPkgConfigPackages.nix
@@ -0,0 +1,45 @@
+/* A set of aliases to be used in generated expressions.
+
+   In case of ambiguity, this will pick a sensible default.
+
+   This was initially based on cabal2nix's mapping.
+
+   It'd be nice to generate this mapping, based on a set of derivations.
+   It can not be fully automated, so it should be a expression or tool
+   that makes suggestions about which pkg-config module names can be added.
+ */
+pkgs:
+
+let
+  inherit (pkgs) lib;
+  inherit (lib)
+    all
+    flip
+    mapAttrs
+    mapAttrsToList
+    getAttrFromPath
+    importJSON
+    ;
+
+  data = importJSON ./pkg-config-data.json;
+  inherit (data) modules;
+
+  platform = pkgs.stdenv.hostPlatform;
+
+  isSupported = moduleData:
+    moduleData?supportedWhenPlatformAttrsEqual ->
+      all (x: x) (
+        mapAttrsToList
+          (k: v: platform?${k} && platform.${k} == v)
+          moduleData.supportedWhenPlatformAttrsEqual
+      );
+
+  modulePkgs = flip mapAttrs modules (_moduleName: moduleData:
+    if moduleData?attrPath && isSupported moduleData then
+      getAttrFromPath moduleData.attrPath pkgs
+    else
+      null
+  );
+
+in
+  modulePkgs
diff --git a/nixpkgs/pkgs/top-level/pkg-config/pkg-config-data.json b/nixpkgs/pkgs/top-level/pkg-config/pkg-config-data.json
new file mode 100644
index 000000000000..50eae9ac572d
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/pkg-config/pkg-config-data.json
@@ -0,0 +1,964 @@
+{
+  "version": {
+    "major": 0,
+    "minor": 1
+  },
+  "modules": {
+    "IL": {
+      "attrPath": [
+        "libdevil"
+      ]
+    },
+    "ImageMagick": {
+      "attrPath": [
+        "imagemagick"
+      ]
+    },
+    "MagickWand": {
+      "attrPath": [
+        "imagemagick"
+      ]
+    },
+    "Qt5Concurrent": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Core": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5DBus": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Gui": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Network": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5OpenGL": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5OpenGLExtensions": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5PrintSupport": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Qml": {
+      "attrPath": [
+        "qt5",
+        "qtdeclarative"
+      ]
+    },
+    "Qt5QmlModels": {
+      "attrPath": [
+        "qt5",
+        "qtdeclarative"
+      ]
+    },
+    "Qt5Quick": {
+      "attrPath": [
+        "qt5",
+        "qtdeclarative"
+      ]
+    },
+    "Qt5QuickTest": {
+      "attrPath": [
+        "qt5",
+        "qtdeclarative"
+      ]
+    },
+    "Qt5QuickWidgets": {
+      "attrPath": [
+        "qt5",
+        "qtdeclarative"
+      ]
+    },
+    "Qt5Sql": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Test": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Widgets": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "Qt5Xml": {
+      "attrPath": [
+        "qt5",
+        "qtbase"
+      ]
+    },
+    "SoapySDR": {
+      "attrPath": [
+        "soapysdr"
+      ]
+    },
+    "alsa": {
+      "attrPath": [
+        "alsa-lib"
+      ]
+    },
+    "alsa-topology": {
+      "attrPath": [
+        "alsa-lib"
+      ]
+    },
+    "appindicator-0.1": {
+      "attrPath": [
+        "libappindicator-gtk2"
+      ]
+    },
+    "appindicator3-0.1": {
+      "attrPath": [
+        "libappindicator-gtk3"
+      ]
+    },
+    "bzip2": {
+      "attrPath": [
+        "bzip2"
+      ]
+    },
+    "cairo-gobject": {
+      "attrPath": [
+        "cairo"
+      ]
+    },
+    "cairo-pdf": {
+      "attrPath": [
+        "cairo"
+      ]
+    },
+    "cairo-ps": {
+      "attrPath": [
+        "cairo"
+      ]
+    },
+    "cairo-svg": {
+      "attrPath": [
+        "cairo"
+      ]
+    },
+    "dbusmenu-glib-0.4": {
+      "attrPath": [
+        "libdbusmenu"
+      ]
+    },
+    "dbusmenu-gtk3-0.4": {
+      "attrPath": [
+        "libdbusmenu-gtk3"
+      ]
+    },
+    "egl": {
+      "attrPath": [
+        "libGL"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "fftw3": {
+      "attrPath": [
+        "fftw"
+      ]
+    },
+    "fftw3f": {
+      "attrPath": [
+        "fftwFloat"
+      ]
+    },
+    "form": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "formw": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "freealut": {
+      "attrPath": [
+        "freealut"
+      ]
+    },
+    "freetype2": {
+      "attrPath": [
+        "freetype"
+      ]
+    },
+    "gdk-2.0": {
+      "attrPath": [
+        "gtk2"
+      ]
+    },
+    "gdk-3.0": {
+      "attrPath": [
+        "gtk3"
+      ]
+    },
+    "gdk-pixbuf-2.0": {
+      "attrPath": [
+        "gdk-pixbuf"
+      ]
+    },
+    "gdk-x11-2.0": {
+      "attrPath": [
+        "gtk2-x11"
+      ]
+    },
+    "gdk-x11-3.0": {
+      "attrPath": [
+        "gtk3-x11"
+      ]
+    },
+    "geos": {
+      "attrPath": [
+        "geos"
+      ]
+    },
+    "gio-2.0": {
+      "attrPath": [
+        "glib"
+      ]
+    },
+    "gl": {
+      "attrPath": [
+        "libGL"
+      ]
+    },
+    "glew": {
+      "attrPath": [
+        "glew"
+      ]
+    },
+    "glu": {
+      "attrPath": [
+        "libGLU"
+      ]
+    },
+    "glut": {
+      "attrPath": [
+        "freeglut"
+      ]
+    },
+    "gnome-keyring-1": {
+      "attrPath": [
+        "libgnome-keyring"
+      ]
+    },
+    "gnome-vfs-2.0": {
+      "attrPath": [
+        "gnome2",
+        "gnome_vfs"
+      ]
+    },
+    "gnome-vfs-module-2.0": {
+      "attrPath": [
+        "gnome2",
+        "gnome_vfs"
+      ]
+    },
+    "gobject-2.0": {
+      "attrPath": [
+        "glib"
+      ]
+    },
+    "gobject-introspection-1.0": {
+      "attrPath": [
+        "gobject-introspection"
+      ]
+    },
+    "gstreamer-audio-1.0": {
+      "attrPath": [
+        "gst_all_1",
+        "gst-plugins-base"
+      ]
+    },
+    "gstreamer-base-1.0": {
+      "attrPath": [
+        "gst_all_1",
+        "gst-plugins-base"
+      ]
+    },
+    "gstreamer-controller-1.0": {
+      "attrPath": [
+        "gst_all_1",
+        "gstreamer"
+      ]
+    },
+    "gstreamer-net-1.0": {
+      "attrPath": [
+        "gst_all_1",
+        "gst-plugins-base"
+      ]
+    },
+    "gstreamer-video-1.0": {
+      "attrPath": [
+        "gst_all_1",
+        "gst-plugins-base"
+      ]
+    },
+    "gthread-2.0": {
+      "attrPath": [
+        "glib"
+      ]
+    },
+    "gtk+-2.0": {
+      "attrPath": [
+        "gtk2"
+      ]
+    },
+    "gtk+-3.0": {
+      "attrPath": [
+        "gtk3"
+      ]
+    },
+    "gtk+-x11-2.0": {
+      "attrPath": [
+        "gtk2-x11"
+      ]
+    },
+    "gtksourceview-3.0": {
+      "attrPath": [
+        "gtksourceview3"
+      ]
+    },
+    "hidapi": {
+      "attrPath": [
+        "hidapi"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": true
+      }
+    },
+    "hidapi-hidraw": {
+      "attrPath": [
+        "hidapi"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "hidapi-libusb": {
+      "attrPath": [
+        "hidapi"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "icu-i18n": {
+      "attrPath": [
+        "icu"
+      ]
+    },
+    "icu-io": {
+      "attrPath": [
+        "icu"
+      ]
+    },
+    "icu-uc": {
+      "attrPath": [
+        "icu"
+      ]
+    },
+    "imlib2": {
+      "attrPath": [
+        "imlib2"
+      ]
+    },
+    "jack": {
+      "attrPath": [
+        "libjack2"
+      ]
+    },
+    "javascriptcoregtk-4.0": {
+      "attrPath": [
+        "webkitgtk"
+      ]
+    },
+    "lapack": {
+      "attrPath": [
+        "liblapack"
+      ]
+    },
+    "libR": {
+      "attrPath": [
+        "R"
+      ]
+    },
+    "libavutil": {
+      "attrPath": [
+        "ffmpeg"
+      ]
+    },
+    "libb2": {
+      "attrPath": [
+        "libb2"
+      ]
+    },
+    "libbrotlidec": {
+      "attrPath": [
+        "brotli"
+      ]
+    },
+    "libbrotlienc": {
+      "attrPath": [
+        "brotli"
+      ]
+    },
+    "libcrypto": {
+      "attrPath": [
+        "openssl"
+      ]
+    },
+    "libcurl": {
+      "attrPath": [
+        "curl"
+      ]
+    },
+    "libecpg": {
+      "attrPath": [
+        "postgresql"
+      ]
+    },
+    "libecpg_compat": {
+      "attrPath": [
+        "postgresql"
+      ]
+    },
+    "libgsasl": {
+      "attrPath": [
+        "gsasl"
+      ]
+    },
+    "libidn": {
+      "attrPath": [
+        "libidn"
+      ]
+    },
+    "libjpeg": {
+      "attrPath": [
+        "libjpeg"
+      ]
+    },
+    "liblzma": {
+      "attrPath": [
+        "xz"
+      ]
+    },
+    "libmagic": {
+      "attrPath": [
+        "file"
+      ]
+    },
+    "libmnl": {
+      "attrPath": [
+        "libmnl"
+      ]
+    },
+    "libnotify": {
+      "attrPath": [
+        "libnotify"
+      ]
+    },
+    "libpcap": {
+      "attrPath": [
+        "libpcap"
+      ]
+    },
+    "libpcre": {
+      "attrPath": [
+        "pcre"
+      ]
+    },
+    "libpcre2-16": {
+      "attrPath": [
+        "pcre2"
+      ]
+    },
+    "libpcre2-32": {
+      "attrPath": [
+        "pcre2"
+      ]
+    },
+    "libpcre2-8": {
+      "attrPath": [
+        "pcre2"
+      ]
+    },
+    "libpcre2-posix": {
+      "attrPath": [
+        "pcre2"
+      ]
+    },
+    "libpgtypes": {
+      "attrPath": [
+        "postgresql"
+      ]
+    },
+    "libpng": {
+      "attrPath": [
+        "libpng"
+      ]
+    },
+    "libpq": {
+      "attrPath": [
+        "postgresql"
+      ]
+    },
+    "libpulse": {
+      "attrPath": [
+        "libpulseaudio"
+      ]
+    },
+    "libpulse-mainloop-glib": {
+      "attrPath": [
+        "libpulseaudio"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "libpulse-simple": {
+      "attrPath": [
+        "libpulseaudio"
+      ]
+    },
+    "libqrencode": {
+      "attrPath": [
+        "qrencode"
+      ]
+    },
+    "librtlsdr": {
+      "attrPath": [
+        "rtl-sdr"
+      ]
+    },
+    "libsass": {
+      "attrPath": [
+        "libsass"
+      ]
+    },
+    "libsctp": {
+      "attrPath": [
+        "lksctp-tools"
+      ]
+    },
+    "libsecp256k1": {
+      "attrPath": [
+        "secp256k1"
+      ]
+    },
+    "libsodium": {
+      "attrPath": [
+        "libsodium"
+      ]
+    },
+    "libsoup-gnome-2.4": {
+      "attrPath": [
+        "libsoup"
+      ]
+    },
+    "libssh2": {
+      "attrPath": [
+        "libssh2"
+      ]
+    },
+    "libssl": {
+      "attrPath": [
+        "openssl"
+      ]
+    },
+    "libstatgrab": {
+      "attrPath": [
+        "libstatgrab"
+      ]
+    },
+    "libsystemd": {
+      "attrPath": [
+        "systemd"
+      ]
+    },
+    "libturbojpeg": {
+      "attrPath": [
+        "libjpeg"
+      ]
+    },
+    "libudev": {
+      "attrPath": [
+        "systemd"
+      ]
+    },
+    "libxml-2.0": {
+      "attrPath": [
+        "libxml2"
+      ]
+    },
+    "libzip": {
+      "attrPath": [
+        "libzip"
+      ]
+    },
+    "libzmq": {
+      "attrPath": [
+        "zeromq"
+      ]
+    },
+    "menu": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "menuw": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "ncurses": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "ncurses++": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "ncurses++w": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "ncursesw": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "netsnmp": {
+      "attrPath": [
+        "net-snmp"
+      ]
+    },
+    "nix-cmd": {
+      "attrPath": [
+        "nix"
+      ]
+    },
+    "nix-expr": {
+      "attrPath": [
+        "nix"
+      ]
+    },
+    "nix-main": {
+      "attrPath": [
+        "nix"
+      ]
+    },
+    "nix-store": {
+      "attrPath": [
+        "nix"
+      ]
+    },
+    "odbc": {
+      "attrPath": [
+        "unixODBC"
+      ]
+    },
+    "ompi": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "ompi-c": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "ompi-cxx": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "ompi-f77": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "ompi-f90": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "ompi-fort": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "openblas": {
+      "attrPath": [
+        "openblasCompat"
+      ]
+    },
+    "openssl": {
+      "attrPath": [
+        "openssl"
+      ]
+    },
+    "orte": {
+      "attrPath": [
+        "openmpi"
+      ]
+    },
+    "panel": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "panelw": {
+      "attrPath": [
+        "ncurses"
+      ]
+    },
+    "pangocairo": {
+      "attrPath": [
+        "pango"
+      ]
+    },
+    "poppler-glib": {
+      "attrPath": [
+        "poppler_gi"
+      ]
+    },
+    "python": {
+      "attrPath": [
+        "python3"
+      ]
+    },
+    "ruby-2.7": {
+      "attrPath": [
+        "ruby_2_7"
+      ]
+    },
+    "ruby-3.1": {
+      "attrPath": [
+        "ruby_3_1"
+      ]
+    },
+    "sdl2": {
+      "attrPath": [
+        "SDL2"
+      ]
+    },
+    "sndfile": {
+      "attrPath": [
+        "libsndfile"
+      ]
+    },
+    "sqlite3": {
+      "attrPath": [
+        "sqlite"
+      ]
+    },
+    "taglib": {
+      "attrPath": [
+        "taglib"
+      ]
+    },
+    "taglib_c": {
+      "attrPath": [
+        "taglib"
+      ]
+    },
+    "tdjson": {
+      "attrPath": [
+        "tdlib"
+      ]
+    },
+    "tensorflow": {
+      "attrPath": [
+        "libtensorflow"
+      ]
+    },
+    "uuid": {
+      "attrPath": [
+        "libossp_uuid"
+      ]
+    },
+    "vte-2.91": {
+      "attrPath": [
+        "vte"
+      ]
+    },
+    "wayland-client": {
+      "attrPath": [
+        "wayland"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "wayland-cursor": {
+      "attrPath": [
+        "wayland"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "wayland-scanner": {
+      "attrPath": [
+        "wayland"
+      ]
+    },
+    "wayland-server": {
+      "attrPath": [
+        "wayland"
+      ],
+      "supportedWhenPlatformAttrsEqual": {
+        "isDarwin": false
+      }
+    },
+    "webkit2gtk-4.0": {
+      "attrPath": [
+        "webkitgtk"
+      ]
+    },
+    "webkit2gtk-web-extension-4.0": {
+      "attrPath": [
+        "webkitgtk"
+      ]
+    },
+    "x11": {
+      "attrPath": [
+        "xorg",
+        "libX11"
+      ]
+    },
+    "xau": {
+      "attrPath": [
+        "xorg",
+        "libXau"
+      ]
+    },
+    "xcursor": {
+      "attrPath": [
+        "xorg",
+        "libXcursor"
+      ]
+    },
+    "xerces-c": {
+      "attrPath": [
+        "xercesc"
+      ]
+    },
+    "xext": {
+      "attrPath": [
+        "xorg",
+        "libXext"
+      ]
+    },
+    "xft": {
+      "attrPath": [
+        "xorg",
+        "libXft"
+      ]
+    },
+    "xi": {
+      "attrPath": [
+        "xorg",
+        "libXi"
+      ]
+    },
+    "xinerama": {
+      "attrPath": [
+        "xorg",
+        "libXinerama"
+      ]
+    },
+    "xkbcommon": {
+      "attrPath": [
+        "libxkbcommon"
+      ]
+    },
+    "xpm": {
+      "attrPath": [
+        "xorg",
+        "libXpm"
+      ]
+    },
+    "xrandr": {
+      "attrPath": [
+        "xorg",
+        "libXrandr"
+      ]
+    },
+    "xrender": {
+      "attrPath": [
+        "xorg",
+        "libXrender"
+      ]
+    },
+    "xscrnsaver": {
+      "attrPath": [
+        "xorg",
+        "libXScrnSaver"
+      ]
+    },
+    "xtst": {
+      "attrPath": [
+        "xorg",
+        "libXtst"
+      ]
+    },
+    "xxf86vm": {
+      "attrPath": [
+        "xorg",
+        "libXxf86vm"
+      ]
+    },
+    "yaml-0.1": {
+      "attrPath": [
+        "libyaml"
+      ]
+    },
+    "zlib": {
+      "attrPath": [
+        "zlib"
+      ]
+    }
+  }
+}
diff --git a/nixpkgs/pkgs/top-level/pkg-config/test-defaultPkgConfigPackages.nix b/nixpkgs/pkgs/top-level/pkg-config/test-defaultPkgConfigPackages.nix
new file mode 100644
index 000000000000..69ec5a0f09c1
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/pkg-config/test-defaultPkgConfigPackages.nix
@@ -0,0 +1,46 @@
+# cd nixpkgs
+# nix-build -A tests.pkg-config.defaultPkgConfigPackages
+{ lib, pkg-config, defaultPkgConfigPackages, runCommand, testers }:
+let
+  inherit (lib.strings) escapeNixIdentifier;
+
+  allTests = lib.mapAttrs (k: v: if v == null then null else makePkgConfigTestMaybe k v)
+    (builtins.removeAttrs defaultPkgConfigPackages ["recurseForDerivations"]);
+
+  # nix-build rejects attribute names with periods
+  # This will build those regardless.
+  tests-combined = runCommand "pkg-config-checks" {
+    allTests = lib.attrValues allTests;
+  } ''
+    touch $out
+  '';
+
+  makePkgConfigTestMaybe = moduleName: pkg:
+    if ! lib.isDerivation pkg
+    then
+      throw "pkg-config module `${escapeNixIdentifier moduleName}` is not defined to be a derivation. Please check the attribute value for `${escapeNixIdentifier moduleName}` in `pkgs/top-level/pkg-config-packages.nix` in Nixpkgs."
+
+    else if ! pkg?meta.unsupported
+    then
+      throw "pkg-config module `${escapeNixIdentifier moduleName}` does not have a `meta.unsupported` attribute. This can't be right. Please check the attribute value for `${escapeNixIdentifier moduleName}` in `pkgs/top-level/pkg-config-packages.nix` in Nixpkgs."
+
+    else if pkg.meta.unsupported
+    then
+      # We return `null` instead of doing a `filterAttrs`, because with
+      # `filterAttrs` the evaluator would not be able to return the attribute
+      # set without first evaluating all of the attribute _values_. This would
+      # be rather expensive, and severly slow down the use case of getting a
+      # single test, which we want to do in `passthru.tests`, or interactively.
+      null
+
+    else if ! pkg?meta.broken
+    then
+      throw "pkg-config module `${escapeNixIdentifier moduleName}` does not have a `meta.broken` attribute. This can't be right. Please check the attribute value for `${escapeNixIdentifier moduleName}` in `pkgs/top-level/pkg-config.packages.nix` in Nixpkgs."
+
+    else if pkg.meta.broken
+    then null
+
+    else testers.hasPkgConfigModules { moduleNames = [ moduleName ]; package = pkg; };
+
+in
+  lib.recurseIntoAttrs allTests // { inherit tests-combined; }
diff --git a/nixpkgs/pkgs/top-level/pkg-config/tests.nix b/nixpkgs/pkgs/top-level/pkg-config/tests.nix
new file mode 100644
index 000000000000..786e2ecc534b
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/pkg-config/tests.nix
@@ -0,0 +1,21 @@
+# cd nixpkgs
+# nix-build -A tests.pkg-config
+{ lib, stdenv, ... }:
+
+let
+  # defaultPkgConfigPackages test needs a Nixpkgs with allowUnsupportedPlatform
+  # in order to filter out the unsupported packages without throwing any errors
+  # tryEval would be too fragile, masking different problems as if they're
+  # unsupported platform problems.
+  allPkgs = import ../default.nix {
+    system = stdenv.hostPlatform.system;
+    localSystem = stdenv.buildPlatform.system;
+    config = {
+      allowUnsupportedSystem = true;
+    };
+    overlays = [];
+  };
+in
+lib.recurseIntoAttrs {
+  defaultPkgConfigPackages = allPkgs.callPackage ./test-defaultPkgConfigPackages.nix { } // { __recurseIntoDerivationForReleaseJobs = true; };
+}
diff --git a/nixpkgs/pkgs/top-level/python-aliases.nix b/nixpkgs/pkgs/top-level/python-aliases.nix
new file mode 100644
index 000000000000..fc1cd2d4a174
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/python-aliases.nix
@@ -0,0 +1,483 @@
+lib: self: super:
+
+with self;
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+      if alias.recurseForDerivations or false then
+            removeAttrs alias ["recurseForDerivations"]
+                else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from
+  # python-packages.nix.
+  checkInPkgs = n: alias: if builtins.hasAttr n super
+                          then throw "Alias ${n} is still in python-packages.nix"
+                          else alias;
+
+  mapAliases = aliases:
+    lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+in
+
+  ### Deprecated aliases - for backward compatibility
+
+mapAliases ({
+  abodepy = jaraco-abode; # added 2023-02-01
+  acebinf = throw "acebinf has been removed because it is abandoned and broken."; # Added 2023-05-19
+  adafruit-nrfutil = throw "adafruit-nrfutil has been promoted to a top-level attribute."; # Added 2023-11-19
+  aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
+  aionotify = throw "aionotify has been removed because is unmaintained and incompatible with python3.11."; # Added 2023-10-27
+  aiosenseme = throw "aiosenseme has been removed, because it does no longer work with the latest firmware and has become unmaintained"; # Added 2023-07-05
+  amazon_kclpy = amazon-kclpy; # added 2023-08-08
+  ansible-base = throw "ansible-base has been removed, because it is end of life"; # added 2022-03-30
+  ansible-doctor = throw "ansible-doctor has been promoted to a top-level attribute"; # Added 2023-05-16
+  ansible-later = throw "ansible-later has been promoted to a top-level attribute"; # Added 2023-05-16
+  ansible-lint = throw "ansible-lint has been promoted to a top-level attribute"; # Added 2023-05-16
+  anyjson = throw "anyjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
+  apache-airflow = throw "apache-airflow has been moved out of pythonPackages and is available as a standalone package"; # added 2023-06-05
+  argon2_cffi = argon2-cffi; # added 2022-05-09
+  APScheduler = apscheduler; # added 2023-02-19
+  async_generator = async-generator; # added 2023-08-08
+  async_stagger = async-stagger; # added 2023-08-08
+  asyncio-nats-client = nats-py; # added 2022-02-08
+  atsim_potentials = atsim-potentials; # added 2023-10-08
+  awkward0 = throw "awkward0 has been removed, use awkward instead"; # added 2022-12-13
+  Babel = babel; # added 2022-05-06
+  backports_csv = throw "backports_csv has been removed, since we no longer need to backport to python2"; # added 2023-07-28
+  backports_functools_lru_cache = throw "backports_functools_lru_cache has been removed, since we no longer need to backport to python3.2"; # added 2023-07-28
+  backports_tempfile = throw "backports_tempfile has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28
+  backports_unittest-mock = throw "backports_unittest-mock has been removed, since we no longer need to backport to python3.2"; # added 2023-07-28
+  backports_weakref = throw "backports_weakref has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28
+  bash_kernel = bash-kernel; # added 2023-11-10
+  beancount_docverif = beancount-docverif; # added 2023-10-08
+  bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
+  bip_utils = bip-utils; # 2023-10-08
+  bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
+  BlinkStick = blinkstick; # added 2023-02-19
+  blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
+  bsblan = python-bsblan; # added 2022-11-04
+  btchip = btchip-python; # added 2023-03-03
+  buildbot = throw "use pkgs.buildbot instead"; # added 2022-04-07
+  buildbot-ui = throw "use pkgs.buildbot-ui instead"; # added 2022-04-07
+  buildbot-full = throw "use pkgs.buildbot-full instead"; # added 2022-04-07
+  buildbot-plugins = throw "use pkgs.buildbot-plugins instead"; # added 2022-04-07
+  buildbot-worker = throw "use pkgs.buildbot-worker instead"; # added 2022-04-07
+  buildbot-pkg = throw "buildbot-pkg has been removed, it's only internally used in buildbot"; # added 2022-04-07
+  bt_proximity = bt-proximity; # added 2021-07-02
+  BTrees = btrees; # added 2023-02-19
+  carrot = throw "carrot has been removed, as its development was discontinued in 2012"; # added 2022-01-18
+  cchardet = faust-cchardet; # added 2023-03-02
+  class-registry = phx-class-registry; # added 2021-10-05
+  cntk = throw "cntk has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-10-09
+  codespell = throw "codespell has been promoted to a top-level attribute"; # Added 2022-10-02
+  ColanderAlchemy = colanderalchemy; # added 2023-02-19
+  CommonMark = commonmark; # added 2023-02-1
+  ConfigArgParse = configargparse; # added 2021-03-18
+  coronavirus = throw "coronavirus was removed, because the source is not providing the data anymore."; # added 2023-05-04
+  cozy = throw "cozy was removed because it was not actually https://pypi.org/project/Cozy/."; # added 2022-01-14
+  cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23
+  cx_Freeze = cx-freeze; # added 2023-08-02
+  d2to1 = throw "d2to1 is archived and no longer works with setuptools v68"; # added 2023-07-30
+  dask-xgboost = throw "dask-xgboost was removed because its features are available in xgboost"; # added 2022-05-24
+  dateutil = python-dateutil; # added 2021-07-03
+  deep_merge = throw "deep_merge has been removed, since it is no longer maintained and may be broken."; # added 2023-10-09
+  demjson = throw "demjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
+  descartes = throw "descartes has been removed, since it is abandoned and broken"; # added 2023-06-21
+  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
+  dftfit = throw "dftfit dependency lammps-cython no longer builds"; # added 2021-07-04
+  dictpath = pathable; # added 2023-01-28
+  diff_cover = diff-cover; # added 2021-07-02
+  discogs_client = discogs-client; # added 2021-07-02
+  distutils_extra = distutils-extra; # added 2023-10-12
+  djangorestframework-jwt = drf-jwt; # added 2021-07-20
+  django-sampledatahelper = throw "django-sampledatahelper was removed because it is no longer compatible to latest Django version"; # added 2022-07-18
+  django_2 = throw "Django 2 has reached it's projected EOL in 2022/04 and has therefore been removed."; # added 2022-03-05
+  django_appconf = django-appconf; # added 2022-03-03
+  django_classytags = django-classy-tags; # added 2023-07-25
+  django_colorful = django-colorful; # added 2023-07-25
+  django_compat = django-compat; # added 2023-07-25
+  django-compat = throw "django-compat has been removed. It provided forward/backport compat for django 1.x, which is long end of life."; # added 2023-07-26
+  django_contrib_comments = django-contrib-comments; # added 2023-07-25
+  django-discover-runner = throw "django-discover-runner was removed because it is no longer maintained."; # added 2022-11-21
+  django_environ = django-environ; # added 2021-12-25
+  django_extensions = django-extensions; # added 2022-01-09
+  django_guardian = django-guardian; # added 2022-05-19
+  django_hijack = django-hijack; # added 2023-05-16
+  django_hijack_admin = django-hijack-admin; # added 2023-05-16
+  django-hijack-admin = throw "django-hijack-admin has been removed, since it is no longer compatible to django-hijack"; # added 2023-06-21
+  django_modelcluster = django-modelcluster; # added 2022-04-02
+  django_nose = django-nose; # added 2023-07-25
+  django_reversion = django-reversion; # added 2022-06-18
+  django_polymorphic = django-polymorphic; # added 2022-05-24
+  django_redis = django-redis; # added 2021-10-11
+  django_silk = django-silk; # added 2023-07-25
+  django_tagging = django-tagging; # added 2023-07-25
+  django_taggit = django-taggit; # added 2021-10-11
+  django_treebeard = django-treebeard; # added 2023-07-25
+  dns = dnspython; # added 2017-12-10
+  dogpile_cache = dogpile-cache; # added 2021-10-28
+  dogpile-core = throw "dogpile-core is no longer maintained, use dogpile-cache instead"; # added 2021-11-20
+  eebrightbox = throw "eebrightbox is unmaintained upstream and has therefore been removed"; # added 2022-02-03
+  EasyProcess = easyprocess; # added 2023-02-19
+  email_validator = email-validator; # added 2022-06-22
+  enhancements = throw "enhancements is unmaintained upstream and has therefore been removed"; # added 2023-10-27
+  et_xmlfile = et-xmlfile; # added 2023-10-16
+  ev3dev2 = python-ev3dev2; # added 2023-06-19
+  Fabric = fabric; # addedd 2023-02-19
+  face_recognition = face-recognition; # added 2022-10-15
+  face_recognition_models = face-recognition-models; # added 2022-10-15
+  factory_boy = factory-boy; # added 2023-10-08
+  fake_factory = throw "fake_factory has been removed because it is unused and deprecated by upstream since 2016."; # added 2022-05-30
+  faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
+  inherit (super.pkgs) fetchPypi; # added 2023-05-25
+  filemagic = throw "inactive since 2014, so use python-magic instead"; # added 2022-11-19
+  flaskbabel = flask-babel; # added 2023-01-19
+  flask_assets = flask-assets; # added 2023-08-23
+  flask_elastic = flask-elastic; # added 2023-08-23
+  flask_login = flask-login; # added 2022-10-17
+  flask_mail = flask-mail; # added 2023-08-23
+  flask_marshmallow = flask-marshmallow; # added 2023-08-16
+  flask_migrate = flask-migrate; # added 2023-08-23
+  flask_principal = flask-principal; # added 2023-08-23
+  flask-restplus = throw "flask-restplus is no longer maintained, use flask-restx instead"; # added 2023-02-21
+  flask_script = flask-script; # added 2023-08-23
+  flask_sqlalchemy = flask-sqlalchemy; # added 2022-07-20
+  flask_testing = flask-testing; # added 2022-04-25
+  flask_wtf = flask-wtf; # added 2022-05-24
+  FormEncode = formencode; # added 2023-02-19
+  foundationdb51 = throw "foundationdb51 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foundationdb52 = throw "foundationdb52 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foundationdb60 = throw "foundationdb60 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  foundationdb61 = throw "foundationdb61 is no longer maintained, use foundationdb71 instead"; # added 2023-06-06
+  functorch = throw "functorch is now part of the torch package and has therefore been removed. See https://github.com/pytorch/functorch/releases/tag/v1.13.0 for more info."; # added 2022-12-01
+  garages-amsterdam = throw "garages-amsterdam has been renamed odp-amsterdam."; # added 2023-01-04
+  garminconnect-ha = garminconnect; # added 2022-02-05
+  gdtoolkit = throw "gdtoolkit has been promoted to a top-level attribute"; # added 2023-02-15
+  GeoIP = geoip; # added 2023-02-19
+  gigalixir = throw "gigalixir has been promoted to a top-level attribute"; # Added 2022-10-02
+  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
+  GitPython = gitpython; # added 2022-10-28
+  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
+  glasgow = throw "glasgow has been promoted to a top-level attribute"; # added 2023-02-05
+  google_api_python_client = google-api-python-client; # added 2021-03-19
+  googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
+  google-apitools = throw "google-apitools was removed because it is deprecated and unsupported by upstream"; # added 2023-02-25
+  gpyopt = throw "gpyopt was remove because it's been archived upstream"; # added 2023-06-07
+  graphite_api = throw "graphite_api was removed, because it is no longer maintained"; # added 2022-07-10
+  graphite_beacon = throw "graphite_beacon was removed, because it is no longer maintained"; # added 2022-07-09
+  grappelli_safe = grappelli-safe; # added 2023-10-08
+  grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
+  guzzle_sphinx_theme = guzzle-sphinx-theme; # added 2023-10-16
+  ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06
+  HAP-python = hap-python; # added 2021-06-01
+  hangups = throw "hangups was removed because Google Hangouts has been shut down"; # added 2023-02-13
+  hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07
+  hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
+  hglib = python-hglib; # added 2023-10-13
+  HTSeq = htseq; # added 2023-02-19
+  hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29
+  ihatemoney = throw "ihatemoney was removed because it is no longer maintained downstream"; # added 2023-04-08
+  IMAPClient = imapclient; # added 2021-10-28
+  imdbpy = throw "imdbpy has been renamed to cinemagoer"; # added 2022-08-08
+  image-match = throw "image-match has been removed because it is no longer maintained"; # added 2023-06-10
+  imgaug = throw "imgaug has been removed as it is no longer maintained"; # added 2023-07-10
+  intreehook =  throw "intreehooks has been removed because it is obsolete as a backend-path key was added to PEP 517"; # added 2023-04-11
+  ipaddress = throw "ipaddress has been removed because it is no longer required since python 2.7."; # added 2022-05-30
+  ipython_genutils = ipython-genutils; # added 2023-10-12
+  influxgraph = throw "influxgraph has been removed because it is no longer maintained"; # added 2022-07-10
+  itanium_demangler = itanium-demangler; # added 2022-10-17
+  jaraco_classes = jaraco-classes; # added 2023-07-14
+  jaraco_collections = jaraco-collections; # added 2023-07-14
+  jaraco_functools = jaraco-functools; # added 2023-07-14
+  jaraco_itertools = jaraco-itertools; # added 2023-07-14
+  jaraco_logging = jaraco-logging; # added 2023-07-14
+  jaraco_text = jaraco-text; # added 2023-07-14
+  jaraco_stream = jaraco-stream; # added 2023-07-14
+  JayDeBeApi = jaydebeapi; # added 2023-02-19
+  jinja2_pluralize = jinja2-pluralize; # added 2023-11-01
+  jinja2_time = jinja2-time; # added 2022-11-07
+  JPype1 = jpype1; # added 2023-02-19
+  jsonschema_3 = throw "jsonschema 3 is neither the latest version nor needed inside nixpkgs anymore"; # added 2023-06-28
+  jupyter_client = jupyter-client; # added 2021-10-15
+  jupyter_console = jupyter-console; # added  2023-07-31
+  jupyter_core = jupyter-core; # added 2023-01-05
+  jupyter_server = jupyter-server; # added 2023-01-05
+  jupyter-server-ydoc = jupyter-collaboration; # added 2023-07-18
+  jupyterlab_launcher = throw "jupyterlab_launcher has been removed as it's abandoned for over 5 years and broken"; # added 2023-11-11
+  jupyterlab_server = jupyterlab-server; # added 2023-11-12
+  Kajiki = kajiki; # added 2023-02-19
+  Keras = keras; # added 2021-11-25
+  ldap = python-ldap; # added 2022-09-16
+  lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04
+  lazr_config = lazr-config; # added 2023-11-03
+  lazr_delegates = lazr-delegates; # added 2023-11-03
+  lazy_imports = lazy-imports; # added 2023-10-13
+  lektor = throw "lektor has been promoted to a top-level attribute"; # added 2023-08-01
+  line_profiler = line-profiler; # added 2023-11-04
+  livestreamer = throw "'livestreamer' has been removed, as it unmaintained. A currently maintained fork is 'streamlink'."; # added 2023-11-14
+  livestreamer-curses = throw "'livestreamer-curses' has been removed as it, and livestreamer itself are unmaintained."; # added 2023-11-14
+  logilab_astng = throw "logilab-astng has not been released since 2013 and is unmaintained"; # added 2022-11-29
+  logilab_common = logilab-common; # added 2022-11-21
+  loo-py = loopy; # added 2022-05-03
+  ludios_wpull = throw "ludios_wpull has been removed because it's unmaintained and broken"; # added 2023-11-12
+  Mako = mako; # added 2023-02-19
+  Markups = markups; # added 2022-02-14
+  markdownsuperscript = throw "markdownsuperscript is unmaintained, use pymdown-extensions"; # added 2023-06-10
+  mask-rcnn = throw "mask-rcnn has been removed as it is unmaintained and its dependency imgaug no longer builds"; # added 2023-07-10
+  MDP = mdp; # added 2023-02-19
+  MechanicalSoup = mechanicalsoup; # added 2021-06-01
+  memcached = python-memcached; # added 2022-05-06
+  mailman = throw "Please use pkgs.mailman"; # added 2022-04-29
+  mailman-hyperkitty = throw "Please use pkgs.mailmanPackages.mailman-hyperkitty"; # added 2022-04-29
+  mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
+  manticore = throw "manticore has been removed because its dependency wasm no longer builds and is unmaintained"; # added 2023-05-20
+  markerlib = throw "markerlib has been removed because it's abandoned since 2013"; # added 2023-05-19
+  memory_profiler = memory-profiler; # added 2023-10-09
+  mistune_0_8 = throw "mistune_0_8 was removed because it was outdated and insecure"; # added 2022-08-12
+  mistune_2_0 = mistune; # added 2022-08-12
+  mox = throw "mox was removed because it is unmaintained"; # added 2023-02-21
+  mrkd = throw "mrkd has been promoted to a top-level attribute"; # added 2023-08-01
+  multi_key_dict = multi-key-dict; # added 2023-11-05
+  mutmut = throw "mutmut has been promoted to a top-level attribute"; # added 2022-10-02
+  net2grid = gridnet; # add 2022-04-22
+  nghttp2 = throw "in 1.52.0 removed deprecated python bindings."; # added 2023-06-08
+  ninja-python = ninja; # add 2022-08-03
+  nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
+  nose_progressive = throw "nose_progressive has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; #added 2023-02-21
+  notifymuch = throw "notifymuch has been promoted to a top-level attribute"; # added 2022-10-02
+  Nuitka = nuitka; # added 2023-02-19
+  ntlm-auth = throw "ntlm-auth has been removed, because it relies on the md4 implementation provided by openssl. Use pyspnego instead.";
+  openapi-schema-pydantic = throw "openapi-schema-pydantic has been removed, since it is no longer maintained"; # added 2023-10-30
+  opencv3 = throw "opencv3 has been removed as it is obsolete"; # added 2023-10-12
+  opsdroid_get_image_size = opsdroid-get-image-size; # added 2023-10-16
+  ordereddict = throw "ordereddict has been removed because it is only useful on unsupported python versions."; # added 2022-05-28
+  pafy = throw "pafy has been removed because it is unmaintained and only a dependency of mps-youtube, itself superseded by yewtube"; # Added 2023-01-19
+  pam = python-pam; # added 2020-09-07.
+  PasteDeploy = pastedeploy; # added 2021-10-07
+  pathpy = path; # added 2022-04-12
+  paypalrestsdk = throw "paypalrestsdk was removed, the upstream repo was archived back in 2020"; # Added 2023-11-25
+  pdfposter = throw "pdfposter was promoted to a top-level attribute"; # Added 2023-06-29
+  pdfminer = pdfminer-six; # added 2022-05-25
+  pep257 = pydocstyle; # added 2022-04-12
+  poetry = throw "poetry was promoted to a top-level attribute, use poetry-core to build Python packages"; # added 2023-01-09
+  poetry2conda = throw "poetry2conda was promoted to a top-level attribute"; # Added 2022-10-02
+  Polygon3 = polygon3; # Added 2023-08-08
+  poster3 = throw "poster3 is unmaintained and source is no longer available"; # added 2023-05-29
+  postorius = throw "Please use pkgs.mailmanPackages.postorius"; # added 2022-04-29
+  powerlineMemSegment = powerline-mem-segment; # added 2021-10-08
+  privacyidea-ldap-proxy = throw "privacyidea-ldap-proxy has been removed from nixpkgs"; # added 2023-10-31
+  prometheus_client = prometheus-client; # added 2021-06-10
+  prompt_toolkit = prompt-toolkit; # added 2021-07-22
+  protonup = protonup-ng; # Added 2022-11-06
+  proxy_tools = proxy-tools; # added 2023-11-05
+  pur = throw "pur has been renamed to pkgs.pur"; # added 2021-11-08
+  pushbullet = pushbullet-py;  # Added 2022-10-15
+  Pweave = pweave; # added 2023-02-19
+  py-radix = throw "py-radix has been removed, since it abandoned"; # added 2023-07-07
+  py_stringmatching = py-stringmatching; # added 2023-11-12
+  pyalmond = throw "pyalmond has been removed, since its API endpoints have been shutdown"; # added 2023-02-02
+  pyblake2 = throw "pyblake2 is deprecated in favor of hashlib"; # added 2023-04-23
+  pyblock = throw "pyblock has been removed, since it is abandoned and broken"; # added 2023-06-20
+  pydrive = throw "pydrive is broken and deprecated and has been replaced with pydrive2."; # added 2022-06-01
+  pygbm = throw "pygbm has been removed, since it is abandoned and broken"; # added 2023-06-20
+  PyGithub = pygithub; # added 2023-02-19
+  pyGtkGlade = throw "Glade support for pygtk has been removed"; # added 2022-01-15
+  pycallgraph = throw "pycallgraph has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
+  pychef = throw "pychef has been removed because it's been archived upstream and abandoned since 2017."; # added 2022-11-14
+  PyChromecast = pychromecast; # added 2023-02-19
+  pycryptodome-test-vectors = throw "pycryptodome-test-vectors has been removed because it is an internal package to pycryptodome"; # added 2022-05-28
+  pyflunearyou = pyoutbreaksnearme; # added 2023-02-11
+  pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
+  pyialarmxr-homeassistant = throw "The package was removed together with the component support in home-assistant 2022.7.0"; # added 2022-07-07
+  PyICU = pyicu; # Added 2022-12-22
+  pyjson5 = json5; # added 2022-08-28
+  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
+  PyLD = pyld; # added 2022-06-22
+  pymaging = throw "pymaging has been removed because it has not been maintained for 10 years and has been archived."; # added 2023-11-04
+  pymaging_png = throw "pymaging_png has been removed because it has not been maintained for 10 years and has been archived."; # added 2023-11-04
+  pymatgen-lammps = throw "pymatgen-lammps has been removed because it is unmaintained and broken"; # added 2023-06-20
+  pymazda = throw "pymazda has been removed, because the upstream repo has been affected by a DCMA claim."; # added 2023-10-16
+  pymc3 = pymc; # added 2022-06-05, module was rename starting with 4.0.0
+  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
+  PyMVGLive = pymvglive; # added 2023-02-19
+  pymyq = python-myq; # added 2023-10-20
+  python-myq = throw "python-myq has been removed, as the service provider has decided to block its API requests"; # added 2023-12-07
+  pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09
+  pyramid_beaker = pyramid-beaker; # added 2023-08-23
+  pyramid_chameleon = pyramid-chameleon; # added 2023-08-23
+  pyramid_exclog = pyramid-exclog; # added 2023-08-24
+  pyramid_hawkauth = throw "pyramid_hawkauth has been removed because it is no longer maintained"; # added 2023-02-2
+  pyramid_jinja2 = pyramid-jinja2; # added 2023-06-06
+  pyramid_mako = pyramid-mako; # added 2023-08-24
+  pyramid_multiauth = pyramid-multiauth; # added 2023-08-24
+  pyreadability = readability-lxml; # added 2022-05-24
+  pyres = throw "pyres has been removed, since it is abandoned and broken"; # added 2023-06-20
+  pyroute2-core = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-ethtool = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-ipdb = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-ipset = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-ndb = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-nftables = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-nslink = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  pyroute2-protocols = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
+  Pyro4 = pyro4; # added 2023-02-19
+  Pyro5 = pyro5; # added 2023-02-19
+  PyRSS2Gen = pyrss2gen; # added 2023-02-19
+  pyruckus = throw "pyruckus has been removed, it was deprecrated in favor of aioruckus."; # added 2023-09-07
+  pysha3 = throw "pysha3 has been removed, use safe-pysha3 instead"; # added 2023-05-20
+  pysmart-smartx = pysmart; # added 2021-10-22
+  pySmartDL = pysmartdl; # added 2023-10-11
+  pysparse = throw "pysparse has been abandoned upstream."; # added 2023-02-28
+  pyspotify = throw "pyspotify has been removed because Spotify stopped supporting libspotify"; # added 2022-05-29
+  PyStemmer = pystemmer; # added 2023-02-19
+  pytest_6 = pytest; # added 2022-02-10
+  pytestcov = pytest-cov; # added 2021-01-04
+  pytest-ordering = throw "pytest-ordering has been removed, since it is no longer maintained and broken"; # added 2023-06-22
+  pytest-pep8 = pytestpep8; # added 2021-01-04
+  pytest-pep257 = throw "pytest-pep257 was removed, as the pep257 package was migrated into pycodestyle"; # added 2022-04-12
+  pytest-pythonpath = throw "pytest-pythonpath is obsolete as of pytest 7.0.0 and has been removed"; # added 2022-03-09
+  pytest-sanic = throw "pytest-sanic has been removed because it is unmaintained and broken"; # added 2023-06-22
+  pytestpep8 = throw "pytestpep8 was removed because it is abandoned and no longer compatible with pytest v6.0"; # added 2020-12-10
+  pytestquickcheck = pytest-quickcheck; # added 2021-07-20
+  pytestrunner = pytest-runner; # added 2021-01-04
+  python-forecastio = throw "python-forecastio has been removed, as the Dark Sky service was shut down."; # added 2023-04-05
+  python-igraph = igraph; # added 2021-11-11
+  python_docs_theme = python-docs-theme; # added 2023-11-04
+  python_fedora = python-fedora; # added 2023-11-15
+  python_keyczar = throw "python_keyczar has been removed because it's been archived upstream and deprecated"; # added 2023-05-16
+  python-lz4 = lz4; # added 2018-06-01
+  python_magic = python-magic; # added 2022-05-07
+  python_mimeparse = python-mimeparse; # added 2021-10-31
+  python-language-server = throw "python-language-server is no longer maintained, use the python-lsp-server community fork instead."; # Added 2022-08-03
+  python-Levenshtein = levenshtein;
+  python-pushover = throw "python-pushover has been removed, since it is unmaintained and is broken"; # added 2023-07-03
+  python-subunit = subunit; # added 2021-09-10
+  pytest_xdist = pytest-xdist; # added 2021-01-04
+  python_simple_hipchat = python-simple-hipchat; # added 2021-07-21
+  pytoml = throw "pytoml has been removed because it is unmaintained and is superseded by toml"; # Added 2023-04-11
+  pytorch = torch; # added 2022-09-30
+  pytorch-bin = torch-bin; # added 2022-09-30
+  pytorchWithCuda = torchWithCuda; # added 2022-09-30
+  pytorchWithoutCuda = torchWithoutCuda; # added 2022-09-30
+  pytwitchapi = twitchapi; # added 2022-03-07
+  pyvcf = throw "pyvcf has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2023-05-19
+  PyVirtualDisplay = pyvirtualdisplay; # added 2023-02-19
+  pywick = throw "pywick has been removed, since it is no longer maintained"; # added 2023-07-01
+  qasm2image = throw "qasm2image is no longer maintained (since November 2018), and is not compatible with the latest pythonPackages.qiskit versions."; # added 2020-12-09
+  qds_sdk = qds-sdk; # added 2023-10-21
+  Quandl = quandl; # added 2023-02-19
+  qcodes-loop = throw "qcodes-loop has been removed due to deprecation"; # added 2023-11-30
+  qiskit-aqua = throw "qiskit-aqua has been removed due to deprecation, with its functionality moved to different qiskit packages";
+  rabbitpy = throw "rabbitpy has been removed, since it is unmaintained and broken"; # added 2023-07-01
+  radio_beam = radio-beam; # added 2023-11-04
+  ratelimiter = throw "ratelimiter has been removed, since it is unmaintained and broken"; # added 2023-10-21
+  rdflib-jsonld = throw "rdflib-jsonld is not compatible with rdflib 6"; # added 2021-11-05
+  recaptcha_client = throw "recaptcha_client has been removed since it is no longer maintained"; # added 2023-10-20
+  rednose = throw "rednose is no longer maintained (since February 2018)"; # added 2023-08-06
+  retworkx = rustworkx; # added 2023-05-14
+  repeated_test = repeated-test; # added 2022-11-15
+  requests_oauthlib = requests-oauthlib; # added 2022-02-12
+  requests_toolbelt = requests-toolbelt; # added 2017-09-26
+  restructuredtext_lint = restructuredtext-lint; # added 2023-11-04
+  rig = throw "rig has been removed because it was pinned to python 2.7 and 3.5, failed to build and is otherwise unmaintained"; # added 2022-11-28
+  rl-coach = "rl-coach was removed because the project is discontinued and was archived by upstream"; # added 2023-05-03
+  roboschool = throw "roboschool is deprecated in favor of PyBullet and has been removed"; # added 2022-01-15
+  ROPGadget = ropgadget; # added 2021-07-06
+  rotate-backups = throw "rotate-backups was removed in favor of the top-level rotate-backups"; # added 2021-07-01
+  ruamel_base = ruamel-base; # added 2021-11-01
+  ruamel_yaml = ruamel-yaml; # added 2021-11-01
+  ruamel_yaml_clib = ruamel-yaml-clib; # added 2021-11-01
+  inherit (super.pkgs) ruff-lsp; # added 2023-06-23
+  runway-python = throw "SDK has been deprecated and was archived by upstream"; # added 2023-05-03
+  sapi-python-client = kbcstorage; # added 2022-04-20
+  scikitimage = scikit-image; # added 2023-05-14
+  scikitlearn = scikit-learn; # added 2021-07-21
+  selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
+  sequoia = throw "python3Packages.sequoia was replaced by pysequoia - built from a dedicated repository, with a new API."; # added 2023-06-24
+  setuptools_scm = setuptools-scm; # added 2021-06-03
+  setuptoolsTrial = setuptools-trial; # added 2023-11-11
+  sharkiqpy = sharkiq; # added 2022-05-21
+  ssh-mitm = throw "ssh-mitm was removed in favor of the top-level ssh-mitm"; # added 2023-05-09
+  smart_open = smart-open; # added 2021-03-14
+  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
+  somecomfort = throw "somecomfort was removed because Home Assistant switched to aiosomecomfort"; # added 2023-02-01
+  sorl_thumbnail = sorl-thumbnail; # added 2023-11-12
+  SPARQLWrapper = sparqlwrapper;
+  sphinx-jquery = sphinxcontrib-jquery; # added 2023-02-24
+  sphinx_pypi_upload = throw "sphinx_pypi_upload has been removed since it is abandoned."; # added 2023-10-11
+  sphinx_rtd_theme = sphinx-rtd-theme; # added 2022-08-03
+  sphinxcontrib-autoapi = sphinx-autoapi; # added 2023-02-28
+  sphinxcontrib_httpdomain = sphinxcontrib-httpdomain; # added 2023-07-20
+  sphinxcontrib_newsfeed = sphinxcontrib-newsfeed; # added 2023-07-20
+  sphinxcontrib_plantuml = sphinxcontrib-plantuml; # added 2021-08-02
+  sphinx-navtree = throw "sphinx-navtree has been removed since it is not compatible with sphinx 3.3 and unmaintained"; # added 2023-07-03
+  sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28
+  SQLAlchemy-ImageAttach = throw "sqlalchemy-imageattach has been removed as it is incompatible with sqlalchemy 1.4 and unmaintained"; # added 2022-04-23
+  subdownloader = throw "subdownloader has been removed, because it depended on pyqt4"; # added 2022-06-09
+  suds-jurko = throw "suds-jurko has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2023-02-27
+  supervise_api = supervise-api; # added 2023-10-11
+  suseapi = throw "suseapi has been removed because it is no longer maintained"; # added 2023-02-27
+  tensorflow-bin_2 = tensorflow-bin; # added 2021-11-25
+  tensorflow-build_2 = tensorflow-build; # added 2021-11-25
+  tensorflow-estimator = tensorflow-estimator-bin; # added 2023-01-17
+  tensorflow-estimator_2 = tensorflow-estimator; # added 2021-11-25
+  tensorflow-tensorboard = tensorboard; # added 2022-03-06
+  tensorflow-tensorboard_2 = tensorflow-tensorboard; # added 2021-11-25
+  Theano = theano; # added 2023-02-19
+  TheanoWithCuda = theanoWithCuda; # added 2023-02-19
+  TheanoWithoutCuda = theanoWithoutCuda; # added 2023-02-19
+  torrent_parser = torrent-parser; # added 2023-11-04
+  transip = throw "transip has been removed because it is no longer maintained. TransIP SOAP V5 API was marked as deprecated"; # added 2023-02-27
+  tumpa = throw "tumpa was promoted to a top-level attribute"; # added 2022-11-19
+  tvdb_api = tvdb-api; # added 2023-10-20
+  tvnamer = throw "tvnamer was moved to pkgs.tvnamer"; # added 2021-07-05
+  types-cryptography = throw "types-cryptography has been removed because it is obsolete since cryptography version 3.4.4."; # added 2022-05-30
+  types-paramiko = throw "types-paramiko has been removed because it was unused."; # added 2022-05-30
+  unittest2 = throw "unittest2 has been removed as it's a backport of unittest that's unmaintained and not needed beyond Python 3.4."; # added 2022-12-01
+  uproot3 = throw "uproot3 has been removed, use uproot instead"; # added 2022-12-13
+  uproot3-methods = throw "uproot3-methods has been removed"; # added 2022-12-13
+  validictory = throw "validictory has been removed, since it abandoned"; # added 2023-07-07
+  vega_datasets = vega-datasets; # added 2023-11-04
+  ViennaRNA = viennarna; # added 2023-08-23
+  virtual-display = throw "virtual-display has been renamed to PyVirtualDisplay"; # added 2023-01-07
+  Wand = wand; # added 2022-11-13
+  wasm = throw "wasm has been removed because it no longer builds and is unmaintained"; # added 2023-05-20
+  WazeRouteCalculator = wazeroutecalculator; # added 2021-09-29
+  weakrefmethod = throw "weakrefmethod was removed since it's not needed in Python >= 3.4"; # added 2022-12-01
+  webapp2 = throw "webapp2 is unmaintained since 2012"; # added 2022-05-29
+  websocket_client = websocket-client; # added 2021-06-15
+  word2vec = throw "word2vec has been removed because it is abandoned"; # added 2023-05-22
+  wxPython_4_0 = throw "wxPython_4_0 has been removed, use wxPython_4_2 instead"; # added 2023-03-19
+  wxPython_4_1 = throw "wxPython_4_1 has been removed, use wxPython_4_2 instead"; # added 2023-03-19
+  WSME = wsme; # added 2023-02-19
+  x11_hash = x11-hash; # added 2023-11-05
+  xenomapper = throw "xenomapper was moved to pkgs.xenomapper"; # added 2021-12-31
+  XlsxWriter = xlsxwriter; # added 2023-02-19
+  Yapsy = yapsy; # added 2023-02-19
+  z3 = z3-solver; # added 2023-12-03
+  zake = throw "zake has been removed because it is abandoned"; # added 2023-06-20
+  zc-buildout221 = zc-buildout; # added 2021-07-21
+  zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
+  zope_broken = throw "zope_broken has been removed because it is obsolete and not needed in zodb>=3.10"; # added 2023-07-26
+  zope_component = zope-component; # added 2023-07-28
+  zope_configuration = zope-configuration; # added 2023-11-12
+  zope_contenttype = zope-contenttype; # added 2023-10-11
+  zope_deprecation = zope-deprecation; # added 2023-10-07
+  zope_dottedname = zope-dottedname; # added 2023-11-12
+  zope_i18nmessageid = zope-i18nmessageid; # added 2023-07-29
+  zope_lifecycleevent = zope-lifecycleevent; # added 2023-10-11
+  zope_proxy = zope-proxy; # added 2023-10-07
+  zope_testing = zope-testing; # added 2023-11-12
+  zxing_cpp = zxing-cpp; # added 2023-11-05
+})
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
new file mode 100644
index 000000000000..3c40cdc0b7c9
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -0,0 +1,16437 @@
+# This file contains the Python packages set.
+# Each attribute is a Python library or a helper function.
+# Expressions for Python libraries are supposed to be in `pkgs/development/python-modules/<name>/default.nix`.
+# Python packages that do not need to be available for each interpreter version do not belong in this packages set.
+# Examples are Python-based cli tools.
+#
+# For more details, please see the Python section in the Nixpkgs manual.
+
+self: super: with self; {
+
+  bootstrap = lib.recurseIntoAttrs {
+    flit-core = toPythonModule (callPackage ../development/python-modules/bootstrap/flit-core { });
+    installer = toPythonModule (callPackage ../development/python-modules/bootstrap/installer {
+      inherit (bootstrap) flit-core;
+    });
+    build = toPythonModule (callPackage ../development/python-modules/bootstrap/build {
+      inherit (bootstrap) flit-core installer;
+    });
+  };
+
+  setuptools = callPackage ../development/python-modules/setuptools { };
+
+  a2wsgi = callPackage ../development/python-modules/a2wsgi { };
+
+  aadict = callPackage ../development/python-modules/aadict { };
+
+  aafigure = callPackage ../development/python-modules/aafigure { };
+
+  aardwolf = callPackage ../development/python-modules/aardwolf { };
+
+  abjad = callPackage ../development/python-modules/abjad { };
+
+  about-time = callPackage ../development/python-modules/about-time { };
+
+  absl-py = callPackage ../development/python-modules/absl-py { };
+
+  accessible-pygments = callPackage ../development/python-modules/accessible-pygments { };
+
+  accelerate = callPackage ../development/python-modules/accelerate { };
+
+  accuweather = callPackage ../development/python-modules/accuweather { };
+
+  accupy = callPackage ../development/python-modules/accupy { };
+
+  acme = callPackage ../development/python-modules/acme { };
+
+  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+
+  acoustics = callPackage ../development/python-modules/acoustics { };
+
+  acquire = callPackage ../development/python-modules/acquire { };
+
+  actdiag = callPackage ../development/python-modules/actdiag { };
+
+  acunetix = callPackage ../development/python-modules/acunetix { };
+
+  adafruit-io = callPackage ../development/python-modules/adafruit-io { };
+
+  adafruit-platformdetect = callPackage ../development/python-modules/adafruit-platformdetect { };
+
+  adafruit-pureio = callPackage ../development/python-modules/adafruit-pureio { };
+
+  adal = callPackage ../development/python-modules/adal { };
+
+  adax = callPackage ../development/python-modules/adax { };
+
+  adax-local = callPackage ../development/python-modules/adax-local { };
+
+  adb-enhanced = callPackage ../development/python-modules/adb-enhanced { };
+
+  adb-homeassistant = callPackage ../development/python-modules/adb-homeassistant { };
+
+  adb-shell = callPackage ../development/python-modules/adb-shell { };
+
+  adblock = callPackage ../development/python-modules/adblock {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  add-trailing-comma = callPackage ../development/python-modules/add-trailing-comma { };
+
+  addict = callPackage ../development/python-modules/addict { };
+
+  adext = callPackage ../development/python-modules/adext { };
+
+  adguardhome = callPackage ../development/python-modules/adguardhome { };
+
+  adjusttext = callPackage ../development/python-modules/adjusttext { };
+
+  adlfs = callPackage ../development/python-modules/adlfs { };
+
+  advantage-air = callPackage ../development/python-modules/advantage-air { };
+
+  advocate = callPackage ../development/python-modules/advocate { };
+
+  aemet-opendata = callPackage ../development/python-modules/aemet-opendata { };
+
+  aenum = callPackage ../development/python-modules/aenum { };
+
+  aeppl = callPackage ../development/python-modules/aeppl { };
+
+  aesara = callPackage ../development/python-modules/aesara { };
+
+  aesedb = callPackage ../development/python-modules/aesedb { };
+
+  afdko = callPackage ../development/python-modules/afdko { };
+
+  affine = callPackage ../development/python-modules/affine { };
+
+  afsapi = callPackage ../development/python-modules/afsapi { };
+
+  agate = callPackage ../development/python-modules/agate { };
+
+  agate-dbf = callPackage ../development/python-modules/agate-dbf { };
+
+  agate-excel = callPackage ../development/python-modules/agate-excel { };
+
+  agate-sql = callPackage ../development/python-modules/agate-sql { };
+
+  agent-py = callPackage ../development/python-modules/agent-py { };
+
+  aggdraw = callPackage ../development/python-modules/aggdraw { };
+
+  aigpy = callPackage ../development/python-modules/aigpy { };
+
+  aio-geojson-client = callPackage ../development/python-modules/aio-geojson-client { };
+
+  aio-geojson-generic-client = callPackage ../development/python-modules/aio-geojson-generic-client { };
+
+  aio-geojson-geonetnz-quakes = callPackage ../development/python-modules/aio-geojson-geonetnz-quakes { };
+
+  aio-geojson-geonetnz-volcano = callPackage ../development/python-modules/aio-geojson-geonetnz-volcano { };
+
+  aio-geojson-nsw-rfs-incidents = callPackage ../development/python-modules/aio-geojson-nsw-rfs-incidents { };
+
+  aio-geojson-usgs-earthquakes = callPackage ../development/python-modules/aio-geojson-usgs-earthquakes { };
+
+  aio-georss-client = callPackage ../development/python-modules/aio-georss-client { };
+
+  aio-georss-gdacs = callPackage ../development/python-modules/aio-georss-gdacs { };
+
+  aio-pika = callPackage ../development/python-modules/aio-pika { };
+
+  aioairzone = callPackage ../development/python-modules/aioairzone { };
+
+  aioairzone-cloud = callPackage ../development/python-modules/aioairzone-cloud { };
+
+  aioairq = callPackage ../development/python-modules/aioairq { };
+
+  aioaladdinconnect = callPackage ../development/python-modules/aioaladdinconnect { };
+
+  aioambient = callPackage ../development/python-modules/aioambient { };
+
+  aioapns = callPackage ../development/python-modules/aioapns { };
+
+  aiocron = callPackage ../development/python-modules/aiocron { };
+
+  ailment = callPackage ../development/python-modules/ailment { };
+
+  aioamqp = callPackage ../development/python-modules/aioamqp { };
+
+  aioaseko = callPackage ../development/python-modules/aioaseko { };
+
+  aioasuswrt = callPackage ../development/python-modules/aioasuswrt { };
+
+  aioazuredevops = callPackage ../development/python-modules/aioazuredevops { };
+
+  aiobafi6 = callPackage ../development/python-modules/aiobafi6 { };
+
+  aioboto3 = callPackage ../development/python-modules/aioboto3 { };
+
+  aioblescan = callPackage ../development/python-modules/aioblescan { };
+
+  aiocache = callPackage ../development/python-modules/aiocache { };
+
+  aiocoap = callPackage ../development/python-modules/aiocoap { };
+
+  aiocomelit = callPackage ../development/python-modules/aiocomelit { };
+
+  aioconsole = callPackage ../development/python-modules/aioconsole { };
+
+  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
+
+  aiocsv = callPackage ../development/python-modules/aiocsv { };
+
+  aiocurrencylayer = callPackage ../development/python-modules/aiocurrencylayer { };
+
+  aiodiscover = callPackage ../development/python-modules/aiodiscover { };
+
+  aiodns = callPackage ../development/python-modules/aiodns { };
+
+  aiodocker = callPackage ../development/python-modules/aiodocker { };
+
+  aioeafm = callPackage ../development/python-modules/aioeafm { };
+
+  aioeagle = callPackage ../development/python-modules/aioeagle { };
+
+  aioecowitt = callPackage ../development/python-modules/aioecowitt { };
+
+  aioelectricitymaps = callPackage ../development/python-modules/aioelectricitymaps { };
+
+  aioemonitor = callPackage ../development/python-modules/aioemonitor { };
+
+  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+
+  aioextensions = callPackage ../development/python-modules/aioextensions { };
+
+  aiofile = callPackage ../development/python-modules/aiofile { };
+
+  aiofiles = callPackage ../development/python-modules/aiofiles { };
+
+  aioflo = callPackage ../development/python-modules/aioflo { };
+
+  aioftp = callPackage ../development/python-modules/aioftp { };
+
+  aioguardian = callPackage ../development/python-modules/aioguardian { };
+
+  aiogithubapi = callPackage ../development/python-modules/aiogithubapi { };
+
+  aiogram = callPackage ../development/python-modules/aiogram { };
+
+  aiohappyeyeballs = callPackage ../development/python-modules/aiohappyeyeballs { };
+
+  aioharmony = callPackage ../development/python-modules/aioharmony { };
+
+  aiohomekit = callPackage ../development/python-modules/aiohomekit { };
+
+  aiohttp = callPackage ../development/python-modules/aiohttp { };
+
+  aiohttp-apispec = callPackage ../development/python-modules/aiohttp-apispec { };
+
+  aiohttp-basicauth = callPackage ../development/python-modules/aiohttp-basicauth { };
+
+  aiohttp-client-cache = callPackage ../development/python-modules/aiohttp-client-cache { };
+
+  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+
+  aiohttp-fast-url-dispatcher = callPackage ../development/python-modules/aiohttp-fast-url-dispatcher { };
+
+  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+
+  aiohttp-oauthlib = callPackage ../development/python-modules/aiohttp-oauthlib { };
+
+  aiohttp-openmetrics = callPackage ../development/python-modules/aiohttp-openmetrics { };
+
+  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+
+  aiohttp-retry = callPackage ../development/python-modules/aiohttp-retry { };
+
+  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+
+  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+
+  aiohttp-wsgi = callPackage ../development/python-modules/aiohttp-wsgi { };
+
+  aiohttp-zlib-ng = callPackage ../development/python-modules/aiohttp-zlib-ng { };
+
+  aioitertools = callPackage ../development/python-modules/aioitertools { };
+
+  aiobiketrax = callPackage ../development/python-modules/aiobiketrax { };
+
+  aiobotocore = callPackage ../development/python-modules/aiobotocore { };
+
+  aiobroadlink = callPackage ../development/python-modules/aiobroadlink { };
+
+  aiohue = callPackage ../development/python-modules/aiohue { };
+
+  aiohwenergy = callPackage ../development/python-modules/aiohwenergy { };
+
+  aioimaplib = callPackage ../development/python-modules/aioimaplib { };
+
+  aioinflux = callPackage ../development/python-modules/aioinflux { };
+
+  aiojobs = callPackage ../development/python-modules/aiojobs { };
+
+  aiokafka = callPackage ../development/python-modules/aiokafka { };
+
+  aiokef = callPackage ../development/python-modules/aiokef { };
+
+  aiolookin = callPackage ../development/python-modules/aiolookin { };
+
+  aiolifx = callPackage ../development/python-modules/aiolifx { };
+
+  aiolifx-connection = callPackage ../development/python-modules/aiolifx-connection { };
+
+  aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { };
+
+  aiolifx-themes = callPackage ../development/python-modules/aiolifx-themes { };
+
+  aiolimiter = callPackage ../development/python-modules/aiolimiter { };
+
+  aiolip = callPackage ../development/python-modules/aiolip { };
+
+  aiolivisi = callPackage ../development/python-modules/aiolivisi { };
+
+  aiolyric = callPackage ../development/python-modules/aiolyric { };
+
+  aiomisc = callPackage ../development/python-modules/aiomisc { };
+
+  aiomisc-pytest = callPackage ../development/python-modules/aiomisc-pytest { };
+
+  aiomodernforms = callPackage ../development/python-modules/aiomodernforms { };
+
+  aiomqtt = callPackage ../development/python-modules/aiomqtt { };
+
+  aiomultiprocess = callPackage ../development/python-modules/aiomultiprocess { };
+
+  aiomusiccast = callPackage ../development/python-modules/aiomusiccast { };
+
+  aiomysensors = callPackage ../development/python-modules/aiomysensors { };
+
+  aiomysql = callPackage ../development/python-modules/aiomysql { };
+
+  aionanoleaf = callPackage ../development/python-modules/aionanoleaf { };
+
+  aionotion = callPackage ../development/python-modules/aionotion { };
+
+  aiooncue = callPackage ../development/python-modules/aiooncue { };
+
+  aioopenexchangerates = callPackage ../development/python-modules/aioopenexchangerates { };
+
+  aioopenssl = callPackage ../development/python-modules/aioopenssl { };
+
+  aiooss2 = callPackage ../development/python-modules/aiooss2 { };
+
+  aiopegelonline = callPackage ../development/python-modules/aiopegelonline { };
+
+  aiopg = callPackage ../development/python-modules/aiopg { };
+
+  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
+
+  aioprometheus = callPackage ../development/python-modules/aioprometheus { };
+
+  aiopulse = callPackage ../development/python-modules/aiopulse { };
+
+  aiopurpleair = callPackage ../development/python-modules/aiopurpleair { };
+
+  aiopvapi = callPackage ../development/python-modules/aiopvapi { };
+
+  aiopvpc = callPackage ../development/python-modules/aiopvpc { };
+
+  aiopyarr = callPackage ../development/python-modules/aiopyarr { };
+
+  aiopylgtv = callPackage ../development/python-modules/aiopylgtv { };
+
+  aioqsw = callPackage ../development/python-modules/aioqsw { };
+
+  aioquic = callPackage ../development/python-modules/aioquic { };
+
+  aioquic-mitmproxy = callPackage ../development/python-modules/aioquic-mitmproxy { };
+
+  aiorecollect = callPackage ../development/python-modules/aiorecollect { };
+
+  aioredis = callPackage ../development/python-modules/aioredis { };
+
+  aioresponses = callPackage ../development/python-modules/aioresponses { };
+
+  aioridwell = callPackage ../development/python-modules/aioridwell { };
+
+  aiormq = callPackage ../development/python-modules/aiormq { };
+
+  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+
+  aiortm = callPackage ../development/python-modules/aiortm { };
+
+  aioruckus = callPackage ../development/python-modules/aioruckus { };
+
+  aiorun = callPackage ../development/python-modules/aiorun { };
+
+  aioruuvigateway = callPackage ../development/python-modules/aioruuvigateway { };
+
+  aiorwlock = callPackage ../development/python-modules/aiorwlock { };
+
+  aiosasl = callPackage ../development/python-modules/aiosasl { };
+
+  aiosql = callPackage ../development/python-modules/aiosql { };
+
+  aiosenz = callPackage ../development/python-modules/aiosenz { };
+
+  aioserial = callPackage ../development/python-modules/aioserial { };
+
+  aioshelly = callPackage ../development/python-modules/aioshelly { };
+
+  aioshutil = callPackage ../development/python-modules/aioshutil { };
+
+  aioskybell = callPackage ../development/python-modules/aioskybell { };
+
+  aiosignal = callPackage ../development/python-modules/aiosignal { };
+
+  aioslimproto = callPackage ../development/python-modules/aioslimproto { };
+
+  aiosmb = callPackage ../development/python-modules/aiosmb { };
+
+  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+
+  aiosmtplib = callPackage ../development/python-modules/aiosmtplib { };
+
+  aiosomecomfort = callPackage ../development/python-modules/aiosomecomfort { };
+
+  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+
+  aiosteamist = callPackage ../development/python-modules/aiosteamist { };
+
+  aiostream = callPackage ../development/python-modules/aiostream { };
+
+  aioswitcher = callPackage ../development/python-modules/aioswitcher { };
+
+  aiosyncthing = callPackage ../development/python-modules/aiosyncthing { };
+
+  aiotractive = callPackage ../development/python-modules/aiotractive { };
+
+  aiounifi = callPackage ../development/python-modules/aiounifi { };
+
+  aiounittest = callPackage ../development/python-modules/aiounittest { };
+
+  aiovlc = callPackage ../development/python-modules/aiovlc { };
+
+  aiovodafone = callPackage ../development/python-modules/aiovodafone { };
+
+  aiowatttime = callPackage ../development/python-modules/aiowatttime { };
+
+  aiowaqi = callPackage ../development/python-modules/aiowaqi { };
+
+  aioweenect = callPackage ../development/python-modules/aioweenect { };
+
+  aiowebostv = callPackage ../development/python-modules/aiowebostv { };
+
+  aiowinreg = callPackage ../development/python-modules/aiowinreg { };
+
+  aiowithings = callPackage ../development/python-modules/aiowithings { };
+
+  aioxmpp = callPackage ../development/python-modules/aioxmpp { };
+
+  aioymaps = callPackage ../development/python-modules/aioymaps { };
+
+  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+
+  airly = callPackage ../development/python-modules/airly { };
+
+  airthings-ble = callPackage ../development/python-modules/airthings-ble { };
+
+  airthings-cloud = callPackage ../development/python-modules/airthings-cloud { };
+
+  airtouch4pyapi = callPackage ../development/python-modules/airtouch4pyapi { };
+
+  ajpy = callPackage ../development/python-modules/ajpy { };
+
+  ajsonrpc = callPackage ../development/python-modules/ajsonrpc { };
+
+  alabaster = callPackage ../development/python-modules/alabaster { };
+
+  aladdin-connect = callPackage ../development/python-modules/aladdin-connect { };
+
+  alarmdecoder = callPackage ../development/python-modules/alarmdecoder { };
+
+  albumentations = callPackage ../development/python-modules/albumentations { };
+
+  ale-py = callPackage ../development/python-modules/ale-py { };
+
+  alectryon = callPackage ../development/python-modules/alectryon { };
+
+  alembic = callPackage ../development/python-modules/alembic { };
+
+  alexapy = callPackage ../development/python-modules/alexapy { };
+
+  algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
+
+  alive-progress = callPackage ../development/python-modules/alive-progress { };
+
+  aliyun-python-sdk-cdn = callPackage ../development/python-modules/aliyun-python-sdk-cdn { };
+
+  aliyun-python-sdk-config = callPackage ../development/python-modules/aliyun-python-sdk-config { };
+
+  aliyun-python-sdk-core = callPackage ../development/python-modules/aliyun-python-sdk-core { };
+
+  aliyun-python-sdk-dbfs = callPackage ../development/python-modules/aliyun-python-sdk-dbfs { };
+
+  aliyun-python-sdk-iot = callPackage ../development/python-modules/aliyun-python-sdk-iot { };
+
+  aliyun-python-sdk-kms = callPackage ../development/python-modules/aliyun-python-sdk-kms { };
+
+  aliyun-python-sdk-sts = callPackage ../development/python-modules/aliyun-python-sdk-sts { };
+
+  allpairspy = callPackage ../development/python-modules/allpairspy { };
+
+  allure-behave = callPackage ../development/python-modules/allure-behave { };
+
+  allure-python-commons = callPackage ../development/python-modules/allure-python-commons { };
+
+  allure-python-commons-test = callPackage ../development/python-modules/allure-python-commons-test { };
+
+  allure-pytest = callPackage ../development/python-modules/allure-pytest { };
+
+  alpha-vantage = callPackage ../development/python-modules/alpha-vantage { };
+
+  altair = callPackage ../development/python-modules/altair { };
+
+  altgraph = callPackage ../development/python-modules/altgraph { };
+
+  amarna = callPackage ../development/python-modules/amarna { };
+
+  amazon-ion = callPackage ../development/python-modules/amazon-ion { };
+
+  amazon-kclpy = callPackage ../development/python-modules/amazon-kclpy { };
+
+  ambee = callPackage ../development/python-modules/ambee { };
+
+  amberelectric = callPackage ../development/python-modules/amberelectric { };
+
+  ambiclimate = callPackage ../development/python-modules/ambiclimate { };
+
+  amcrest = callPackage ../development/python-modules/amcrest { };
+
+  amiibo-py = callPackage ../development/python-modules/amiibo-py { };
+
+  amply = callPackage ../development/python-modules/amply { };
+
+  amqp = callPackage ../development/python-modules/amqp { };
+
+  amqplib = callPackage ../development/python-modules/amqplib { };
+
+  amqtt = callPackage ../development/python-modules/amqtt { };
+
+  anchor-kr = callPackage ../development/python-modules/anchor-kr { };
+
+  ancp-bids = callPackage ../development/python-modules/ancp-bids { };
+
+  android-backup = callPackage ../development/python-modules/android-backup { };
+
+  androidtv = callPackage ../development/python-modules/androidtv { };
+
+  androidtvremote2 = callPackage ../development/python-modules/androidtvremote2 { };
+
+  androguard = callPackage ../development/python-modules/androguard { };
+
+  anel-pwrctrl-homeassistant = callPackage ../development/python-modules/anel-pwrctrl-homeassistant { };
+
+  angr = callPackage ../development/python-modules/angr { };
+
+  angrcli = callPackage ../development/python-modules/angrcli {
+    inherit (pkgs) coreutils;
+  };
+
+  angrop = callPackage ../development/python-modules/angrop { };
+
+  aniso8601 = callPackage ../development/python-modules/aniso8601 { };
+
+  anitopy = callPackage ../development/python-modules/anitopy { };
+
+  annexremote = callPackage ../development/python-modules/annexremote { };
+
+  annotated-types = callPackage ../development/python-modules/annotated-types { };
+
+  annoy = callPackage ../development/python-modules/annoy { };
+
+  anonip = callPackage ../development/python-modules/anonip { };
+
+  ansi2html = callPackage ../development/python-modules/ansi2html { };
+
+  ansi2image = callPackage ../development/python-modules/ansi2image { };
+
+  ansible = callPackage ../development/python-modules/ansible { };
+
+  ansible-compat = callPackage ../development/python-modules/ansible-compat { };
+
+  ansible-core = callPackage ../development/python-modules/ansible/core.nix { };
+
+  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+
+  ansible-pylibssh = callPackage ../development/python-modules/ansible-pylibssh { };
+
+  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+
+  ansible-vault-rw = callPackage ../development/python-modules/ansible-vault-rw { };
+
+  ansi = callPackage ../development/python-modules/ansi { };
+
+  ansicolor = callPackage ../development/python-modules/ansicolor { };
+
+  ansicolors = callPackage ../development/python-modules/ansicolors { };
+
+  ansiconv = callPackage ../development/python-modules/ansiconv { };
+
+  ansimarkup = callPackage ../development/python-modules/ansimarkup { };
+
+  ansiwrap = callPackage ../development/python-modules/ansiwrap { };
+
+  anthemav = callPackage ../development/python-modules/anthemav { };
+
+  anthropic = callPackage ../development/python-modules/anthropic { };
+
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime {
+    inherit (pkgs) antlr4;
+  };
+
+  anyascii = callPackage ../development/python-modules/anyascii { };
+
+  anybadge = callPackage ../development/python-modules/anybadge { };
+
+  anyconfig = callPackage ../development/python-modules/anyconfig { };
+
+  anyio = callPackage ../development/python-modules/anyio { };
+
+  anyqt = callPackage ../development/python-modules/anyqt { };
+
+  anytree = callPackage ../development/python-modules/anytree {
+    inherit (pkgs) graphviz;
+  };
+
+  anywidget = callPackage ../development/python-modules/anywidget { };
+
+  aocd = callPackage ../development/python-modules/aocd { };
+
+  apache-beam = callPackage ../development/python-modules/apache-beam { };
+
+  apcaccess = callPackage ../development/python-modules/apcaccess { };
+
+  apipkg = callPackage ../development/python-modules/apipkg { };
+
+  apischema = callPackage ../development/python-modules/apischema { };
+
+  apispec = callPackage ../development/python-modules/apispec { };
+
+  apispec-webframeworks = callPackage ../development/python-modules/apispec-webframeworks { };
+
+  apkit = callPackage ../development/python-modules/apkit { };
+
+  aplpy = callPackage ../development/python-modules/aplpy { };
+
+  app-model = callPackage ../development/python-modules/app-model { };
+
+  appdirs = callPackage ../development/python-modules/appdirs { };
+
+  apple-weatherkit = callPackage ../development/python-modules/apple-weatherkit { };
+
+  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+
+  appnope = callPackage ../development/python-modules/appnope { };
+
+  apprise = callPackage ../development/python-modules/apprise { };
+
+  approval-utilities = callPackage ../development/python-modules/approval-utilities { };
+
+  approvaltests = callPackage ../development/python-modules/approvaltests { };
+
+  apptools = callPackage ../development/python-modules/apptools { };
+
+  appthreat-vulnerability-db = callPackage ../development/python-modules/appthreat-vulnerability-db { };
+
+  apricot-select = callPackage ../development/python-modules/apricot-select { };
+
+  aprslib = callPackage ../development/python-modules/aprslib { };
+
+  apscheduler = callPackage ../development/python-modules/apscheduler { };
+
+  apsw = callPackage ../development/python-modules/apsw { };
+
+  apycula = callPackage ../development/python-modules/apycula { };
+
+  aqipy-atmotech = callPackage ../development/python-modules/aqipy-atmotech { };
+
+  aqualogic = callPackage ../development/python-modules/aqualogic { };
+
+  arabic-reshaper = callPackage ../development/python-modules/arabic-reshaper { };
+
+  aranet4 = callPackage ../development/python-modules/aranet4 { };
+
+  arc4 = callPackage ../development/python-modules/arc4 { };
+
+  arcam-fmj = callPackage ../development/python-modules/arcam-fmj { };
+
+  archinfo = callPackage ../development/python-modules/archinfo { };
+
+  archspec = callPackage ../development/python-modules/archspec { };
+
+  area = callPackage ../development/python-modules/area { };
+
+  arelle = callPackage ../development/python-modules/arelle {
+    gui = true;
+  };
+
+  arelle-headless = callPackage ../development/python-modules/arelle {
+    gui = false;
+  };
+
+  aresponses = callPackage ../development/python-modules/aresponses { };
+
+  argcomplete = callPackage ../development/python-modules/argcomplete { };
+
+  argh = callPackage ../development/python-modules/argh { };
+
+  argilla = callPackage ../development/python-modules/argilla { };
+
+  argon2-cffi = callPackage ../development/python-modules/argon2-cffi { };
+
+  argon2-cffi-bindings = callPackage ../development/python-modules/argon2-cffi-bindings { };
+
+  argostranslate = callPackage ../development/python-modules/argostranslate {
+    ctranslate2-cpp = pkgs.ctranslate2;
+  };
+
+  argos-translate-files = callPackage ../development/python-modules/argos-translate-files { };
+
+  argparse-addons = callPackage ../development/python-modules/argparse-addons { };
+
+  argparse-dataclass = callPackage ../development/python-modules/argparse-dataclass { };
+
+  args = callPackage ../development/python-modules/args { };
+
+  aria2p = callPackage ../development/python-modules/aria2p { };
+
+  ariadne = callPackage ../development/python-modules/ariadne { };
+
+  arpy = callPackage ../development/python-modules/arpy { };
+
+  arnparse = callPackage ../development/python-modules/arnparse { };
+
+  array-record = callPackage ../development/python-modules/array-record { };
+
+  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+
+  arris-tg2492lg = callPackage ../development/python-modules/arris-tg2492lg { };
+
+  arrow = callPackage ../development/python-modules/arrow { };
+
+  arsenic = callPackage ../development/python-modules/arsenic { };
+
+  art = callPackage ../development/python-modules/art { };
+
+  arviz = callPackage ../development/python-modules/arviz { };
+
+  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
+
+  asana = callPackage ../development/python-modules/asana { };
+
+  ascii-magic = callPackage ../development/python-modules/ascii-magic { };
+
+  asciimatics = callPackage ../development/python-modules/asciimatics { };
+
+  asciitree = callPackage ../development/python-modules/asciitree { };
+
+  asdf = callPackage ../development/python-modules/asdf { };
+
+  asdf-standard = callPackage ../development/python-modules/asdf-standard { };
+
+  asdf-transform-schemas = callPackage ../development/python-modules/asdf-transform-schemas { };
+
+  ase = callPackage ../development/python-modules/ase { };
+
+  asf-search = callPackage ../development/python-modules/asf-search { };
+
+  asgi-csrf = callPackage ../development/python-modules/asgi-csrf { };
+
+  asgi-logger = callPackage ../development/python-modules/asgi-logger { };
+
+  asgineer = callPackage ../development/python-modules/asgineer { };
+
+  asgiref = callPackage ../development/python-modules/asgiref { };
+
+  asks = callPackage ../development/python-modules/asks { };
+
+  asmog = callPackage ../development/python-modules/asmog { };
+
+  asn1 = callPackage ../development/python-modules/asn1 { };
+
+  asn1ate = callPackage ../development/python-modules/asn1ate { };
+
+  asn1crypto = callPackage ../development/python-modules/asn1crypto { };
+
+  asn1tools = callPackage ../development/python-modules/asn1tools { };
+
+  aspectlib = callPackage ../development/python-modules/aspectlib { };
+
+  aspell-python = callPackage ../development/python-modules/aspell-python { };
+
+  aspy-refactor-imports = callPackage ../development/python-modules/aspy-refactor-imports { };
+
+  aspy-yaml = callPackage ../development/python-modules/aspy.yaml { };
+
+  assay = callPackage ../development/python-modules/assay { };
+
+  assertpy = callPackage ../development/python-modules/assertpy { };
+
+  asterisk-mbox = callPackage ../development/python-modules/asterisk-mbox { };
+
+  asteval = callPackage ../development/python-modules/asteval { };
+
+  astor = callPackage ../development/python-modules/astor { };
+
+  astral = callPackage ../development/python-modules/astral { };
+
+  astroid = callPackage ../development/python-modules/astroid { };
+
+  astropy = callPackage ../development/python-modules/astropy { };
+
+  astropy-healpix = callPackage ../development/python-modules/astropy-healpix { };
+
+  astropy-helpers = callPackage ../development/python-modules/astropy-helpers { };
+
+  astropy-extension-helpers = callPackage ../development/python-modules/astropy-extension-helpers { };
+
+  astroquery = callPackage ../development/python-modules/astroquery { };
+
+  asttokens = callPackage ../development/python-modules/asttokens { };
+
+  astunparse = callPackage ../development/python-modules/astunparse { };
+
+  asyauth = callPackage ../development/python-modules/asyauth { };
+
+  async-dns = callPackage ../development/python-modules/async-dns { };
+
+  async-generator = callPackage ../development/python-modules/async-generator { };
+
+  async-interrupt = callPackage ../development/python-modules/async-interrupt { };
+
+  async-lru = callPackage ../development/python-modules/async-lru { };
+
+  async-modbus = callPackage ../development/python-modules/async-modbus { };
+
+  asyncclick = callPackage ../development/python-modules/asyncclick { };
+
+  asynccmd = callPackage ../development/python-modules/asynccmd { };
+
+  asyncinotify = callPackage ../development/python-modules/asyncinotify { };
+
+  asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { };
+
+  asyncio-mqtt = callPackage ../development/python-modules/asyncio-mqtt { };
+
+  asyncio-rlock = callPackage ../development/python-modules/asyncio-rlock { };
+
+  asyncmy = callPackage ../development/python-modules/asyncmy { };
+
+  asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { };
+
+  asyncpg = callPackage ../development/python-modules/asyncpg { };
+
+  asyncserial = callPackage ../development/python-modules/asyncserial { };
+
+  asyncsleepiq = callPackage ../development/python-modules/asyncsleepiq { };
+
+  asyncssh = callPackage ../development/python-modules/asyncssh { };
+
+  asyncstdlib = callPackage ../development/python-modules/asyncstdlib { };
+
+  async-stagger = callPackage ../development/python-modules/async-stagger { };
+
+  asynctest = callPackage ../development/python-modules/asynctest { };
+
+  async-timeout = callPackage ../development/python-modules/async-timeout { };
+
+  async-tkinter-loop = callPackage ../development/python-modules/async-tkinter-loop { };
+
+  asyncua = callPackage ../development/python-modules/asyncua { };
+
+  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+
+  asyncwhois = callPackage ../development/python-modules/asyncwhois { };
+
+  asysocks = callPackage ../development/python-modules/asysocks { };
+
+  atc-ble = callPackage ../development/python-modules/atc-ble { };
+
+  atenpdu = callPackage ../development/python-modules/atenpdu { };
+
+  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+
+  atom = callPackage ../development/python-modules/atom { };
+
+  atomiclong = callPackage ../development/python-modules/atomiclong { };
+
+  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
+
+  atomicwrites-homeassistant = callPackage ../development/python-modules/atomicwrites-homeassistant { };
+
+  atomman = callPackage ../development/python-modules/atomman { };
+
+  atpublic = callPackage ../development/python-modules/atpublic { };
+
+  atsim-potentials = callPackage ../development/python-modules/atsim-potentials { };
+
+  attrdict = callPackage ../development/python-modules/attrdict { };
+
+  attrs = callPackage ../development/python-modules/attrs { };
+
+  aubio = callPackage ../development/python-modules/aubio { };
+
+  audible = callPackage ../development/python-modules/audible { };
+
+  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
+
+  audioread = callPackage ../development/python-modules/audioread { };
+
+  audiotools = callPackage ../development/python-modules/audiotools {
+    inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreServices;
+  };
+
+  auditok = callPackage ../development/python-modules/auditok { };
+
+  auditwheel = callPackage ../development/python-modules/auditwheel {
+    inherit (pkgs) bzip2 gnutar patchelf unzip;
+  };
+
+  augeas = callPackage ../development/python-modules/augeas {
+    inherit (pkgs) augeas;
+  };
+
+  augmax = callPackage ../development/python-modules/augmax { };
+
+  auroranoaa = callPackage ../development/python-modules/auroranoaa { };
+
+  aurorapy = callPackage ../development/python-modules/aurorapy { };
+
+  autarco = callPackage ../development/python-modules/autarco { };
+
+  auth0-python = callPackage ../development/python-modules/auth0-python { };
+
+  authcaptureproxy = callPackage ../development/python-modules/authcaptureproxy { };
+
+  authheaders = callPackage ../development/python-modules/authheaders { };
+
+  authlib = callPackage ../development/python-modules/authlib { };
+
+  authres = callPackage ../development/python-modules/authres { };
+
+  autobahn = callPackage ../development/python-modules/autobahn { };
+
+  autocommand = callPackage ../development/python-modules/autocommand { };
+
+  autofaiss = callPackage ../development/python-modules/autofaiss { };
+
+  autoflake = callPackage ../development/python-modules/autoflake { };
+
+  autograd = callPackage ../development/python-modules/autograd { };
+
+  autograd-gamma = callPackage ../development/python-modules/autograd-gamma { };
+
+  autoit-ripper = callPackage ../development/python-modules/autoit-ripper { };
+
+  autologging = callPackage ../development/python-modules/autologging { };
+
+  automat = callPackage ../development/python-modules/automat { };
+
+  automate-home = callPackage ../development/python-modules/automate-home { };
+
+  automx2 = callPackage ../development/python-modules/automx2 { };
+
+  autopage = callPackage ../development/python-modules/autopage { };
+
+  autopep8 = callPackage ../development/python-modules/autopep8 { };
+
+  autoslot = callPackage ../development/python-modules/autoslot { };
+
+  avahi = toPythonModule (pkgs.avahi.override {
+    inherit python;
+    withPython = true;
+  });
+
+  av = callPackage ../development/python-modules/av { };
+
+  avea = callPackage ../development/python-modules/avea { };
+
+ avidtools = callPackage ../development/python-modules/avidtools { };
+
+  avion = callPackage ../development/python-modules/avion { };
+
+  avro3k = callPackage ../development/python-modules/avro3k { };
+
+  avro = callPackage ../development/python-modules/avro { };
+
+  avro-python3 = callPackage ../development/python-modules/avro-python3 { };
+
+  aw-client = callPackage ../development/python-modules/aw-client { };
+
+  aw-core = callPackage ../development/python-modules/aw-core { };
+
+  awacs = callPackage ../development/python-modules/awacs { };
+
+  awesome-slugify = callPackage ../development/python-modules/awesome-slugify { };
+
+  awesomeversion = callPackage ../development/python-modules/awesomeversion { };
+
+  awkward = callPackage ../development/python-modules/awkward { };
+
+  awkward-cpp = callPackage ../development/python-modules/awkward-cpp {
+    inherit (pkgs) cmake ninja;
+  };
+
+  aws-adfs = callPackage ../development/python-modules/aws-adfs { };
+
+  aws-encryption-sdk = callPackage ../development/python-modules/aws-encryption-sdk { };
+
+  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+
+  aws-sam-translator = callPackage ../development/python-modules/aws-sam-translator { };
+
+  aws-secretsmanager-caching = callPackage ../development/python-modules/aws-secretsmanager-caching { };
+
+  aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
+
+  awscrt = callPackage ../development/python-modules/awscrt {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  awsiotpythonsdk = callPackage ../development/python-modules/awsiotpythonsdk { };
+
+  awslambdaric = callPackage ../development/python-modules/awslambdaric { };
+
+  awswrangler = callPackage ../development/python-modules/awswrangler { };
+
+  ax = callPackage ../development/python-modules/ax { };
+
+  axis = callPackage ../development/python-modules/axis { };
+
+  axisregistry = callPackage ../development/python-modules/axisregistry { };
+
+  azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { };
+
+  azure-applicationinsights = callPackage ../development/python-modules/azure-applicationinsights { };
+
+  azure-batch = callPackage ../development/python-modules/azure-batch { };
+
+  azure-common = callPackage ../development/python-modules/azure-common { };
+
+  azure-containerregistry = callPackage ../development/python-modules/azure-containerregistry { };
+
+  azure-core = callPackage ../development/python-modules/azure-core { };
+
+  azure-cosmos = callPackage ../development/python-modules/azure-cosmos { };
+
+  azure-cosmosdb-nspkg = callPackage ../development/python-modules/azure-cosmosdb-nspkg { };
+
+  azure-cosmosdb-table = callPackage ../development/python-modules/azure-cosmosdb-table { };
+
+  azure-data-tables = callPackage ../development/python-modules/azure-data-tables { };
+
+  azure-datalake-store = callPackage ../development/python-modules/azure-datalake-store { };
+
+  azure-eventgrid = callPackage ../development/python-modules/azure-eventgrid { };
+
+  azure-eventhub = callPackage ../development/python-modules/azure-eventhub { };
+
+  azure-functions-devops-build = callPackage ../development/python-modules/azure-functions-devops-build { };
+
+  azure-graphrbac = callPackage ../development/python-modules/azure-graphrbac { };
+
+  azure-identity = callPackage ../development/python-modules/azure-identity { };
+
+  azure-keyvault = callPackage ../development/python-modules/azure-keyvault { };
+
+  azure-keyvault-administration = callPackage ../development/python-modules/azure-keyvault-administration { };
+
+  azure-keyvault-certificates = callPackage ../development/python-modules/azure-keyvault-certificates { };
+
+  azure-keyvault-keys = callPackage ../development/python-modules/azure-keyvault-keys { };
+
+  azure-keyvault-nspkg = callPackage ../development/python-modules/azure-keyvault-nspkg { };
+
+  azure-keyvault-secrets = callPackage ../development/python-modules/azure-keyvault-secrets { };
+
+  azure-loganalytics = callPackage ../development/python-modules/azure-loganalytics { };
+
+  azure-mgmt-advisor = callPackage ../development/python-modules/azure-mgmt-advisor { };
+
+  azure-mgmt-apimanagement = callPackage ../development/python-modules/azure-mgmt-apimanagement { };
+
+  azure-mgmt-appconfiguration = callPackage ../development/python-modules/azure-mgmt-appconfiguration { };
+
+  azure-mgmt-appcontainers = callPackage ../development/python-modules/azure-mgmt-appcontainers { };
+
+  azure-mgmt-applicationinsights = callPackage ../development/python-modules/azure-mgmt-applicationinsights { };
+
+  azure-mgmt-authorization = callPackage ../development/python-modules/azure-mgmt-authorization { };
+
+  azure-mgmt-batchai = callPackage ../development/python-modules/azure-mgmt-batchai { };
+
+  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
+
+  azure-mgmt-billing = callPackage ../development/python-modules/azure-mgmt-billing { };
+
+  azure-mgmt-botservice = callPackage ../development/python-modules/azure-mgmt-botservice { };
+
+  azure-mgmt-cdn = callPackage ../development/python-modules/azure-mgmt-cdn { };
+
+  azure-mgmt-cognitiveservices = callPackage ../development/python-modules/azure-mgmt-cognitiveservices { };
+
+  azure-mgmt-commerce = callPackage ../development/python-modules/azure-mgmt-commerce { };
+
+  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
+
+  azure-mgmt-compute = callPackage ../development/python-modules/azure-mgmt-compute { };
+
+  azure-mgmt-consumption = callPackage ../development/python-modules/azure-mgmt-consumption { };
+
+  azure-mgmt-containerinstance = callPackage ../development/python-modules/azure-mgmt-containerinstance { };
+
+  azure-mgmt-containerregistry = callPackage ../development/python-modules/azure-mgmt-containerregistry { };
+
+  azure-mgmt-containerservice = callPackage ../development/python-modules/azure-mgmt-containerservice { };
+
+  azure-mgmt-core = callPackage ../development/python-modules/azure-mgmt-core { };
+
+  azure-mgmt-cosmosdb = callPackage ../development/python-modules/azure-mgmt-cosmosdb { };
+
+  azure-mgmt-databoxedge = callPackage ../development/python-modules/azure-mgmt-databoxedge { };
+
+  azure-mgmt-datafactory = callPackage ../development/python-modules/azure-mgmt-datafactory { };
+
+  azure-mgmt-datalake-analytics = callPackage ../development/python-modules/azure-mgmt-datalake-analytics { };
+
+  azure-mgmt-datalake-nspkg = callPackage ../development/python-modules/azure-mgmt-datalake-nspkg { };
+
+  azure-mgmt-datalake-store = callPackage ../development/python-modules/azure-mgmt-datalake-store { };
+
+  azure-mgmt-datamigration = callPackage ../development/python-modules/azure-mgmt-datamigration { };
+
+  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
+
+  azure-mgmt-devspaces = callPackage ../development/python-modules/azure-mgmt-devspaces { };
+
+  azure-mgmt-devtestlabs = callPackage ../development/python-modules/azure-mgmt-devtestlabs { };
+
+  azure-mgmt-dns = callPackage ../development/python-modules/azure-mgmt-dns { };
+
+  azure-mgmt-eventgrid = callPackage ../development/python-modules/azure-mgmt-eventgrid { };
+
+  azure-mgmt-eventhub = callPackage ../development/python-modules/azure-mgmt-eventhub { };
+
+  azure-mgmt-extendedlocation = callPackage ../development/python-modules/azure-mgmt-extendedlocation { };
+
+  azure-mgmt-frontdoor = callPackage ../development/python-modules/azure-mgmt-frontdoor { };
+
+  azure-mgmt-hanaonazure = callPackage ../development/python-modules/azure-mgmt-hanaonazure { };
+
+  azure-mgmt-hdinsight = callPackage ../development/python-modules/azure-mgmt-hdinsight { };
+
+  azure-mgmt-imagebuilder = callPackage ../development/python-modules/azure-mgmt-imagebuilder { };
+
+  azure-mgmt-iotcentral = callPackage ../development/python-modules/azure-mgmt-iotcentral { };
+
+  azure-mgmt-iothub = callPackage ../development/python-modules/azure-mgmt-iothub { };
+
+  azure-mgmt-iothubprovisioningservices = callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
+
+  azure-mgmt-keyvault = callPackage ../development/python-modules/azure-mgmt-keyvault { };
+
+  azure-mgmt-kusto = callPackage ../development/python-modules/azure-mgmt-kusto { };
+
+  azure-mgmt-loganalytics = callPackage ../development/python-modules/azure-mgmt-loganalytics { };
+
+  azure-mgmt-logic = callPackage ../development/python-modules/azure-mgmt-logic { };
+
+  azure-mgmt-machinelearningcompute = callPackage ../development/python-modules/azure-mgmt-machinelearningcompute { };
+
+  azure-mgmt-managedservices = callPackage ../development/python-modules/azure-mgmt-managedservices { };
+
+  azure-mgmt-managementgroups = callPackage ../development/python-modules/azure-mgmt-managementgroups { };
+
+  azure-mgmt-managementpartner = callPackage ../development/python-modules/azure-mgmt-managementpartner { };
+
+  azure-mgmt-maps = callPackage ../development/python-modules/azure-mgmt-maps { };
+
+  azure-mgmt-marketplaceordering = callPackage ../development/python-modules/azure-mgmt-marketplaceordering { };
+
+  azure-mgmt-media = callPackage ../development/python-modules/azure-mgmt-media { };
+
+  azure-mgmt-monitor = callPackage ../development/python-modules/azure-mgmt-monitor { };
+
+  azure-mgmt-msi = callPackage ../development/python-modules/azure-mgmt-msi { };
+
+  azure-mgmt-netapp = callPackage ../development/python-modules/azure-mgmt-netapp { };
+
+  azure-mgmt-network = callPackage ../development/python-modules/azure-mgmt-network { };
+
+  azure-mgmt-notificationhubs = callPackage ../development/python-modules/azure-mgmt-notificationhubs { };
+
+  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
+
+  azure-mgmt-policyinsights = callPackage ../development/python-modules/azure-mgmt-policyinsights { };
+
+  azure-mgmt-powerbiembedded = callPackage ../development/python-modules/azure-mgmt-powerbiembedded { };
+
+  azure-mgmt-privatedns = callPackage ../development/python-modules/azure-mgmt-privatedns { };
+
+  azure-mgmt-rdbms = callPackage ../development/python-modules/azure-mgmt-rdbms { };
+
+  azure-mgmt-recoveryservicesbackup = callPackage ../development/python-modules/azure-mgmt-recoveryservicesbackup { };
+
+  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
+
+  azure-mgmt-redhatopenshift = callPackage ../development/python-modules/azure-mgmt-redhatopenshift { };
+
+  azure-mgmt-redis = callPackage ../development/python-modules/azure-mgmt-redis { };
+
+  azure-mgmt-relay = callPackage ../development/python-modules/azure-mgmt-relay { };
+
+  azure-mgmt-reservations = callPackage ../development/python-modules/azure-mgmt-reservations { };
+
+  azure-mgmt-resource = callPackage ../development/python-modules/azure-mgmt-resource { };
+
+  azure-mgmt-scheduler = callPackage ../development/python-modules/azure-mgmt-scheduler { };
+
+  azure-mgmt-search = callPackage ../development/python-modules/azure-mgmt-search { };
+
+  azure-mgmt-security = callPackage ../development/python-modules/azure-mgmt-security { };
+
+  azure-mgmt-servicebus = callPackage ../development/python-modules/azure-mgmt-servicebus { };
+
+  azure-mgmt-servicefabric = callPackage ../development/python-modules/azure-mgmt-servicefabric { };
+
+  azure-mgmt-servicefabricmanagedclusters = callPackage ../development/python-modules/azure-mgmt-servicefabricmanagedclusters { };
+
+  azure-mgmt-servicelinker = callPackage ../development/python-modules/azure-mgmt-servicelinker { };
+
+  azure-mgmt-signalr = callPackage ../development/python-modules/azure-mgmt-signalr { };
+
+  azure-mgmt-sql = callPackage ../development/python-modules/azure-mgmt-sql { };
+
+  azure-mgmt-sqlvirtualmachine = callPackage ../development/python-modules/azure-mgmt-sqlvirtualmachine { };
+
+  azure-mgmt-storage = callPackage ../development/python-modules/azure-mgmt-storage { };
+
+  azure-mgmt-subscription = callPackage ../development/python-modules/azure-mgmt-subscription { };
+
+  azure-mgmt-synapse = callPackage ../development/python-modules/azure-mgmt-synapse { };
+
+  azure-mgmt-trafficmanager = callPackage ../development/python-modules/azure-mgmt-trafficmanager { };
+
+  azure-mgmt-web = callPackage ../development/python-modules/azure-mgmt-web { };
+
+  azure-monitor-ingestion = callPackage ../development/python-modules/azure-monitor-ingestion { };
+
+  azure-multiapi-storage = callPackage ../development/python-modules/azure-multiapi-storage { };
+
+  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
+
+  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
+
+  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
+
+  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
+
+  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
+
+  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
+
+  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
+
+  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
+
+  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
+
+  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
+
+  azure-synapse-accesscontrol = callPackage ../development/python-modules/azure-synapse-accesscontrol { };
+
+  azure-synapse-artifacts = callPackage ../development/python-modules/azure-synapse-artifacts { };
+
+  azure-synapse-managedprivateendpoints = callPackage ../development/python-modules/azure-synapse-managedprivateendpoints { };
+
+  azure-synapse-spark = callPackage ../development/python-modules/azure-synapse-spark { };
+
+  b2sdk = callPackage ../development/python-modules/b2sdk { };
+
+  babel = callPackage ../development/python-modules/babel { };
+
+  babelfish = callPackage ../development/python-modules/babelfish { };
+
+  babelfont = callPackage ../development/python-modules/babelfont { };
+
+  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
+
+  bambi = callPackage ../development/python-modules/bambi { };
+
+  pad4pi = callPackage ../development/python-modules/pad4pi { };
+
+  paddle-bfloat = callPackage ../development/python-modules/paddle-bfloat { };
+
+  paddle2onnx = callPackage ../development/python-modules/paddle2onnx { };
+
+  paddleocr = callPackage ../development/python-modules/paddleocr { };
+
+  paddlepaddle = callPackage ../development/python-modules/paddlepaddle { };
+
+  pulumi = callPackage ../development/python-modules/pulumi { inherit (pkgs) pulumi; };
+
+  pulumi-aws = callPackage ../development/python-modules/pulumi-aws { };
+
+  pulumi-aws-native = pkgs.pulumiPackages.pulumi-aws-native.sdks.python;
+
+  pulumi-azure-native = pkgs.pulumiPackages.pulumi-azure-native.sdks.python;
+
+  pulumi-command = pkgs.pulumiPackages.pulumi-command.sdks.python;
+
+  pulumi-random = pkgs.pulumiPackages.pulumi-random.sdks.python;
+
+  backcall = callPackage ../development/python-modules/backcall { };
+
+  backoff = callPackage ../development/python-modules/backoff { };
+
+  backports-cached-property = callPackage ../development/python-modules/backports-cached-property { };
+
+  backports-datetime-fromisoformat = callPackage ../development/python-modules/backports-datetime-fromisoformat { };
+
+  backports-entry-points-selectable = callPackage ../development/python-modules/backports-entry-points-selectable { };
+
+  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
+
+  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which { };
+
+  backports-strenum = callPackage ../development/python-modules/backports-strenum { };
+
+  backports-zoneinfo = callPackage ../development/python-modules/backports-zoneinfo { };
+
+  bacpypes = callPackage ../development/python-modules/bacpypes { };
+
+  bagit = callPackage ../development/python-modules/bagit { };
+
+  banal = callPackage ../development/python-modules/banal { };
+
+  bandcamp-api = callPackage ../development/python-modules/bandcamp-api { };
+
+  bandit = callPackage ../development/python-modules/bandit { };
+
+  bangla = callPackage ../development/python-modules/bangla { };
+
+  bap = callPackage ../development/python-modules/bap {
+    inherit (pkgs.ocaml-ng.ocamlPackages) bap;
+  };
+
+  barectf = callPackage ../development/python-modules/barectf { };
+
+  baron = callPackage ../development/python-modules/baron { };
+
+  base36 = callPackage ../development/python-modules/base36 { };
+
+  base58 = callPackage ../development/python-modules/base58 { };
+
+  base58check = callPackage ../development/python-modules/base58check { };
+
+  base64io = callPackage ../development/python-modules/base64io { };
+
+  baseline = callPackage ../development/python-modules/baseline { };
+
+  baselines = callPackage ../development/python-modules/baselines { };
+
+  basemap = callPackage ../development/python-modules/basemap { };
+
+  basemap-data = callPackage ../development/python-modules/basemap-data { };
+
+  bash-kernel = callPackage ../development/python-modules/bash-kernel { };
+
+  bashlex = callPackage ../development/python-modules/bashlex { };
+
+  basiciw = callPackage ../development/python-modules/basiciw { };
+
+  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
+
+  batchspawner = callPackage ../development/python-modules/batchspawner { };
+
+  batinfo = callPackage ../development/python-modules/batinfo { };
+
+  baycomp = callPackage ../development/python-modules/baycomp { };
+
+  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
+
+  bayespy = callPackage ../development/python-modules/bayespy { };
+
+  bbox = callPackage ../development/python-modules/bbox { };
+
+  bc-detect-secrets = callPackage ../development/python-modules/bc-detect-secrets { };
+
+  bc-jsonpath-ng = callPackage ../development/python-modules/bc-jsonpath-ng { };
+
+  bc-python-hcl2 = callPackage ../development/python-modules/bc-python-hcl2 { };
+
+  bcdoc = callPackage ../development/python-modules/bcdoc { };
+
+  bcf = callPackage ../development/python-modules/bcf { };
+
+  bcg = callPackage ../development/python-modules/bcg { };
+
+  bch = callPackage ../development/python-modules/bch { };
+
+  bcrypt = if stdenv.hostPlatform.system == "i686-linux" then
+    callPackage ../development/python-modules/bcrypt/3.nix { }
+  else
+    callPackage ../development/python-modules/bcrypt { };
+
+  bdffont = callPackage ../development/python-modules/bdffont { };
+
+  beaker = callPackage ../development/python-modules/beaker { };
+
+  before-after = callPackage ../development/python-modules/before-after { };
+
+  beancount = callPackage ../development/python-modules/beancount { };
+
+  beancount-black = callPackage ../development/python-modules/beancount-black { };
+
+  beancount-parser = callPackage ../development/python-modules/beancount-parser { };
+
+  beancount-docverif = callPackage ../development/python-modules/beancount-docverif { };
+
+  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
+
+  beartype = callPackage ../development/python-modules/beartype { };
+
+  beautiful-date = callPackage ../development/python-modules/beautiful-date { };
+
+  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
+
+  beautifultable = callPackage ../development/python-modules/beautifultable { };
+
+  beautysh = callPackage ../development/python-modules/beautysh { };
+
+  bech32 = callPackage ../development/python-modules/bech32 { };
+
+  behave = callPackage ../development/python-modules/behave { };
+
+  bellows = callPackage ../development/python-modules/bellows { };
+
+  bencode-py = callPackage ../development/python-modules/bencode-py { };
+
+  bencoder = callPackage ../development/python-modules/bencoder { };
+
+  beniget = callPackage ../development/python-modules/beniget { };
+
+  bentoml = callPackage ../development/python-modules/bentoml { };
+
+  bespon = callPackage ../development/python-modules/bespon { };
+
+  betacode = callPackage ../development/python-modules/betacode { };
+
+  betamax = callPackage ../development/python-modules/betamax { };
+
+  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
+
+  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
+
+  betterproto = callPackage ../development/python-modules/betterproto { };
+
+  beziers = callPackage ../development/python-modules/beziers { };
+
+  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
+
+  bidict = callPackage ../development/python-modules/bidict { };
+
+  bids-validator = callPackage ../development/python-modules/bids-validator { };
+
+  biliass = callPackage ../development/python-modules/biliass { };
+
+  billiard = callPackage ../development/python-modules/billiard { };
+
+  bimmer-connected = callPackage ../development/python-modules/bimmer-connected { };
+
+  binary = callPackage ../development/python-modules/binary { };
+
+  binaryornot = callPackage ../development/python-modules/binaryornot { };
+
+  bincopy = callPackage ../development/python-modules/bincopy { };
+
+  binho-host-adapter = callPackage ../development/python-modules/binho-host-adapter { };
+
+  binwalk = callPackage ../development/python-modules/binwalk { };
+
+  binwalk-full = self.binwalk.override { visualizationSupport = true; };
+
+  biopandas = callPackage ../development/python-modules/biopandas { };
+
+  biopython = callPackage ../development/python-modules/biopython { };
+
+  biplist = callPackage ../development/python-modules/biplist { };
+
+  bip-utils = callPackage ../development/python-modules/bip-utils { };
+
+  bip32 = callPackage ../development/python-modules/bip32 { };
+
+  bitarray = callPackage ../development/python-modules/bitarray { };
+
+  bitbox02 = callPackage ../development/python-modules/bitbox02 { };
+
+  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
+
+  bitcoin-utils-fork-minimal = callPackage ../development/python-modules/bitcoin-utils-fork-minimal { };
+
+  bitcoinrpc = callPackage ../development/python-modules/bitcoinrpc { };
+
+  bite-parser = callPackage ../development/python-modules/bite-parser { };
+
+  bitlist = callPackage ../development/python-modules/bitlist { };
+
+  bitmath = callPackage ../development/python-modules/bitmath { };
+
+  bitsandbytes = callPackage ../development/python-modules/bitsandbytes { };
+
+  bitstring = callPackage ../development/python-modules/bitstring { };
+
+  bitstruct = callPackage ../development/python-modules/bitstruct { };
+
+  bitvavo-aio = callPackage ../development/python-modules/bitvavo-aio { };
+
+  bizkaibus = callPackage ../development/python-modules/bizkaibus { };
+
+  bjoern = callPackage ../development/python-modules/bjoern { };
+
+  bkcharts = callPackage ../development/python-modules/bkcharts { };
+
+  black = callPackage ../development/python-modules/black { };
+
+  blackjax = callPackage ../development/python-modules/blackjax { };
+
+  black-macchiato = callPackage ../development/python-modules/black-macchiato { };
+
+  bleach = callPackage ../development/python-modules/bleach { };
+
+  bleach-allowlist = callPackage ../development/python-modules/bleach-allowlist { };
+
+  bleak = callPackage ../development/python-modules/bleak { };
+
+  bleak-esphome = callPackage ../development/python-modules/bleak-esphome { };
+
+  bleak-retry-connector = callPackage ../development/python-modules/bleak-retry-connector { };
+
+  blebox-uniapi = callPackage ../development/python-modules/blebox-uniapi { };
+
+  bless = callPackage ../development/python-modules/bless { };
+
+  blessed = callPackage ../development/python-modules/blessed { };
+
+  blessings = callPackage ../development/python-modules/blessings { };
+
+  blinker = callPackage ../development/python-modules/blinker { };
+
+  blinkpy = callPackage ../development/python-modules/blinkpy { };
+
+  blinkstick = callPackage ../development/python-modules/blinkstick { };
+
+  blis = callPackage ../development/python-modules/blis { };
+
+  blobfile = callPackage ../development/python-modules/blobfile { };
+
+  blockchain = callPackage ../development/python-modules/blockchain { };
+
+  blockdiag = callPackage ../development/python-modules/blockdiag { };
+
+  block-io = callPackage ../development/python-modules/block-io { };
+
+  blockfrost-python = callPackage ../development/python-modules/blockfrost-python { };
+
+  blocksat-cli = callPackage ../development/python-modules/blocksat-cli { };
+
+  blosc2 = callPackage ../development/python-modules/blosc2 { };
+
+  bluemaestro-ble = callPackage ../development/python-modules/bluemaestro-ble { };
+
+  bluepy = callPackage ../development/python-modules/bluepy { };
+
+  bluepy-devices = callPackage ../development/python-modules/bluepy-devices { };
+
+  bluetooth-adapters = callPackage ../development/python-modules/bluetooth-adapters { };
+
+  bluetooth-auto-recovery = callPackage ../development/python-modules/bluetooth-auto-recovery { };
+
+  bluetooth-data-tools= callPackage ../development/python-modules/bluetooth-data-tools { };
+
+  bluetooth-sensor-state-data = callPackage ../development/python-modules/bluetooth-sensor-state-data { };
+
+  blurhash = callPackage ../development/python-modules/blurhash { };
+
+  bme280spi = callPackage ../development/python-modules/bme280spi { };
+
+  bme680 = callPackage ../development/python-modules/bme680 { };
+
+  bnnumerizer = callPackage ../development/python-modules/bnnumerizer { };
+
+  bnunicodenormalizer = callPackage ../development/python-modules/bnunicodenormalizer { };
+
+  boa-api = callPackage ../development/python-modules/boa-api { };
+
+  boiboite-opener-framework = callPackage ../development/python-modules/boiboite-opener-framework { };
+
+  boilerpy3 = callPackage ../development/python-modules/boilerpy3 { };
+
+  bokeh = callPackage ../development/python-modules/bokeh { };
+
+  boltons = callPackage ../development/python-modules/boltons { };
+
+  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
+
+  bond-api = callPackage ../development/python-modules/bond-api { };
+
+  bond-async = callPackage ../development/python-modules/bond-async { };
+
+  bonsai = callPackage ../development/python-modules/bonsai { };
+
+  booleanoperations = callPackage ../development/python-modules/booleanoperations { };
+
+  boolean-py = callPackage ../development/python-modules/boolean-py { };
+
+  # Build boost for this specific Python version
+  # TODO: use separate output for libboost_python.so
+  boost = toPythonModule (pkgs.boost.override {
+    inherit (self) python numpy;
+    enablePython = true;
+  });
+
+  bork = callPackage ../development/python-modules/bork { };
+
+  boschshcpy = callPackage ../development/python-modules/boschshcpy { };
+
+  bottombar = callPackage ../development/python-modules/bottombar { };
+
+  boost-histogram = callPackage ../development/python-modules/boost-histogram {
+    inherit (pkgs) boost;
+  };
+
+  boto3 = callPackage ../development/python-modules/boto3 { };
+
+  boto3-stubs = callPackage ../development/python-modules/boto3-stubs { };
+
+  boto = callPackage ../development/python-modules/boto { };
+
+  botocore = callPackage ../development/python-modules/botocore { };
+
+  botocore-stubs = callPackage ../development/python-modules/botocore-stubs { };
+
+  botorch = callPackage ../development/python-modules/botorch { };
+
+  bottle = callPackage ../development/python-modules/bottle { };
+
+  bottleneck = callPackage ../development/python-modules/bottleneck { };
+
+  boxx = callPackage ../development/python-modules/boxx { };
+
+  bpycv = callPackage ../development/python-modules/bpycv {};
+
+  bpython = callPackage ../development/python-modules/bpython { };
+
+  bqplot = callPackage ../development/python-modules/bqplot { };
+
+  bqscales = callPackage ../development/python-modules/bqscales { };
+
+  braceexpand = callPackage ../development/python-modules/braceexpand { };
+
+  bracex = callPackage ../development/python-modules/bracex { };
+
+  braintree = callPackage ../development/python-modules/braintree { };
+
+  branca = callPackage ../development/python-modules/branca { };
+
+  bravado-core = callPackage ../development/python-modules/bravado-core { };
+
+  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
+
+  breathe = callPackage ../development/python-modules/breathe { };
+
+  breezy = callPackage ../development/python-modules/breezy { };
+
+  brelpy = callPackage ../development/python-modules/brelpy { };
+
+  brian2 = callPackage ../development/python-modules/brian2 { };
+
+  broadbean = callPackage ../development/python-modules/broadbean { };
+
+  broadlink = callPackage ../development/python-modules/broadlink { };
+
+  brother = callPackage ../development/python-modules/brother { };
+
+  brother-ql = callPackage ../development/python-modules/brother-ql { };
+
+  brotli = callPackage ../development/python-modules/brotli { };
+
+  brotli-asgi = callPackage ../development/python-modules/brotli-asgi { };
+
+  brotlicffi = callPackage ../development/python-modules/brotlicffi {
+    inherit (pkgs) brotli;
+  };
+
+  brotlipy = callPackage ../development/python-modules/brotlipy { };
+
+  brottsplatskartan = callPackage ../development/python-modules/brottsplatskartan { };
+
+  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
+
+  brunt = callPackage ../development/python-modules/brunt { };
+
+  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
+
+  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
+
+  bson = callPackage ../development/python-modules/bson { };
+
+  bsuite = callPackage ../development/python-modules/bsuite { };
+
+  btchip-python = callPackage ../development/python-modules/btchip-python { };
+
+  btest = callPackage ../development/python-modules/btest { };
+
+  bthome-ble = callPackage ../development/python-modules/bthome-ble { };
+
+  bt-proximity = callPackage ../development/python-modules/bt-proximity { };
+
+  btrees = callPackage ../development/python-modules/btrees { };
+
+  btrfs = callPackage ../development/python-modules/btrfs { };
+
+  btrfsutil = callPackage ../development/python-modules/btrfsutil { };
+
+  btsmarthub_devicelist = callPackage ../development/python-modules/btsmarthub_devicelist { };
+
+  btsocket = callPackage ../development/python-modules/btsocket { };
+
+  bucketstore = callPackage ../development/python-modules/bucketstore { };
+
+  bugsnag = callPackage ../development/python-modules/bugsnag { };
+
+  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
+
+  bugz = callPackage ../development/python-modules/bugz { };
+
+  bugzilla = callPackage ../development/python-modules/bugzilla { };
+
+  buienradar = callPackage ../development/python-modules/buienradar { };
+
+  build = callPackage ../development/python-modules/build { };
+
+  buildcatrust = callPackage ../development/python-modules/buildcatrust { };
+
+  bumps = callPackage ../development/python-modules/bumps { };
+
+  bunch = callPackage ../development/python-modules/bunch { };
+
+  bundlewrap = callPackage ../development/python-modules/bundlewrap { };
+
+  busypie = callPackage ../development/python-modules/busypie { };
+
+  bx-py-utils = callPackage ../development/python-modules/bx-py-utils { };
+
+  bx-python = callPackage ../development/python-modules/bx-python { };
+
+  bwapy = callPackage ../development/python-modules/bwapy { };
+
+  bytecode = callPackage ../development/python-modules/bytecode { };
+
+  bytewax = callPackage ../development/python-modules/bytewax { };
+
+  bz2file = callPackage ../development/python-modules/bz2file { };
+
+  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
+
+  cached-property = callPackage ../development/python-modules/cached-property { };
+
+  cachelib = callPackage ../development/python-modules/cachelib { };
+
+  cachetools = callPackage ../development/python-modules/cachetools { };
+
+  cachey = callPackage ../development/python-modules/cachey { };
+
+  cacheyou = callPackage ../development/python-modules/cacheyou { };
+
+  cachier = callPackage ../development/python-modules/cachier { };
+
+  cachy = callPackage ../development/python-modules/cachy { };
+
+  cadquery = callPackage ../development/python-modules/cadquery {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  caffe = toPythonModule (pkgs.caffe.override {
+    pythonSupport = true;
+    inherit (self) python numpy boost;
+  });
+
+  caffeWithCuda = toPythonModule (pkgs.caffeWithCuda.override {
+    pythonSupport = true;
+    inherit (self) python numpy boost;
+  });
+
+  caio = callPackage ../development/python-modules/caio { };
+
+  cairocffi = callPackage ../development/python-modules/cairocffi { };
+
+  cairosvg = callPackage ../development/python-modules/cairosvg { };
+
+  caldav = callPackage ../development/python-modules/caldav { };
+
+  calver = callPackage ../development/python-modules/calver { };
+
+  callee = callPackage ../development/python-modules/callee { };
+
+  calmjs = callPackage ../development/python-modules/calmjs { };
+
+  calmjs-parse = callPackage ../development/python-modules/calmjs-parse { };
+
+  calmjs-types = callPackage ../development/python-modules/calmjs-types { };
+
+  calysto = callPackage ../development/python-modules/calysto { };
+
+  calysto-scheme = callPackage ../development/python-modules/calysto-scheme { };
+
+  camel-converter = callPackage ../development/python-modules/camel-converter { };
+
+  can = callPackage ../development/python-modules/can { };
+
+  canals = callPackage ../development/python-modules/canals { };
+
+  canmatrix = callPackage ../development/python-modules/canmatrix { };
+
+  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
+
+  canopen = callPackage ../development/python-modules/canopen { };
+
+  cantools = callPackage ../development/python-modules/cantools { };
+
+  camelot = callPackage ../development/python-modules/camelot { };
+
+  capstone = callPackage ../development/python-modules/capstone {
+    inherit (pkgs) capstone;
+  };
+
+  captcha = callPackage ../development/python-modules/captcha { };
+
+  capturer = callPackage ../development/python-modules/capturer { };
+
+  carbon = callPackage ../development/python-modules/carbon { };
+
+  cart = callPackage ../development/python-modules/cart { };
+
+  cartopy = callPackage ../development/python-modules/cartopy { };
+
+  casa-formats-io = callPackage ../development/python-modules/casa-formats-io { };
+
+  casbin = callPackage ../development/python-modules/casbin { };
+
+  case = callPackage ../development/python-modules/case { };
+
+  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
+
+  castepxbin = callPackage ../development/python-modules/castepxbin { };
+
+  casttube = callPackage ../development/python-modules/casttube { };
+
+  catalogue = callPackage ../development/python-modules/catalogue { };
+
+  catboost = callPackage ../development/python-modules/catboost {
+    catboost = pkgs.catboost.override {
+      pythonSupport = true;
+      python3Packages = self;
+    };
+  };
+
+  catppuccin = callPackage ../development/python-modules/catppuccin { };
+
+  cattrs = callPackage ../development/python-modules/cattrs { };
+
+  cbeams = callPackage ../misc/cbeams { };
+
+  cbor2 = callPackage ../development/python-modules/cbor2 { };
+
+  cbor = callPackage ../development/python-modules/cbor { };
+
+  cccolutils = callPackage ../development/python-modules/cccolutils { };
+
+  cdcs = callPackage ../development/python-modules/cdcs { };
+
+  celery = callPackage ../development/python-modules/celery { };
+
+  celery-redbeat = callPackage ../development/python-modules/celery-redbeat { };
+
+  celery-singleton = callPackage ../development/python-modules/celery-singleton { };
+
+  celery-types = callPackage ../development/python-modules/celery-types { };
+
+  cement = callPackage ../development/python-modules/cement { };
+
+  cemm = callPackage ../development/python-modules/cemm { };
+
+  censys = callPackage ../development/python-modules/censys { };
+
+  cexprtk = callPackage ../development/python-modules/cexprtk { };
+
+  coffea = callPackage ../development/python-modules/coffea { };
+
+  cohere = callPackage ../development/python-modules/cohere { };
+
+  coincurve = callPackage ../development/python-modules/coincurve {
+    inherit (pkgs) secp256k1;
+  };
+
+  comicon = callPackage ../development/python-modules/comicon { };
+
+  command_runner = callPackage ../development/python-modules/command_runner { };
+
+  connect-box = callPackage ../development/python-modules/connect_box { };
+
+  connection-pool = callPackage ../development/python-modules/connection-pool { };
+
+  connio = callPackage ../development/python-modules/connio { };
+
+  correctionlib = callPackage ../development/python-modules/correctionlib { };
+
+  coqpit = callPackage ../development/python-modules/coqpit { };
+
+  cepa = callPackage ../development/python-modules/cepa { };
+
+  cerberus = callPackage ../development/python-modules/cerberus { };
+
+  cert-chain-resolver = callPackage ../development/python-modules/cert-chain-resolver { };
+
+  certauth = callPackage ../development/python-modules/certauth { };
+
+  certbot = callPackage ../development/python-modules/certbot { };
+
+  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
+
+  certbot-dns-google = callPackage ../development/python-modules/certbot-dns-google { };
+
+  certbot-dns-inwx = callPackage ../development/python-modules/certbot-dns-inwx { };
+
+  certbot-dns-ovh = callPackage ../development/python-modules/certbot-dns-ovh { };
+
+  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
+
+  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
+
+  certifi = callPackage ../development/python-modules/certifi { };
+
+  certipy = callPackage ../development/python-modules/certipy { };
+
+  certipy-ad = callPackage ../development/python-modules/certipy-ad { };
+
+  certomancer = callPackage ../development/python-modules/certomancer { };
+
+  certvalidator = callPackage ../development/python-modules/certvalidator { };
+
+  cf-xarray = callPackage ../development/python-modules/cf-xarray { };
+
+  cffi = callPackage ../development/python-modules/cffi { };
+
+  cffsubr = callPackage ../development/python-modules/cffsubr { };
+
+  cfgv = callPackage ../development/python-modules/cfgv { };
+
+  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
+
+  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
+
+  cfscrape = callPackage ../development/python-modules/cfscrape { };
+
+  cftime = callPackage ../development/python-modules/cftime { };
+
+  cgen = callPackage ../development/python-modules/cgen { };
+
+  cgroup-utils = callPackage ../development/python-modules/cgroup-utils { };
+
+  chacha20poly1305 = callPackage ../development/python-modules/chacha20poly1305 { };
+
+  chacha20poly1305-reuseable = callPackage ../development/python-modules/chacha20poly1305-reuseable { };
+
+  chai = callPackage ../development/python-modules/chai { };
+
+  chainer = callPackage ../development/python-modules/chainer {
+    inherit (pkgs.config) cudaSupport;
+  };
+
+  chainmap = callPackage ../development/python-modules/chainmap { };
+
+  chalice = callPackage ../development/python-modules/chalice { };
+
+  chameleon = callPackage ../development/python-modules/chameleon { };
+
+  channels = callPackage ../development/python-modules/channels { };
+
+  channels-redis = callPackage ../development/python-modules/channels-redis { };
+
+  characteristic = callPackage ../development/python-modules/characteristic { };
+
+  character-encoding-utils = callPackage ../development/python-modules/character-encoding-utils { };
+
+  chardet = callPackage ../development/python-modules/chardet { };
+
+  charset-normalizer = callPackage ../development/python-modules/charset-normalizer { };
+
+  chart-studio = callPackage ../development/python-modules/chart-studio { };
+
+  chat-downloader = callPackage ../development/python-modules/chat-downloader { };
+
+  check-manifest = callPackage ../development/python-modules/check-manifest { };
+
+  checkdmarc = callPackage ../development/python-modules/checkdmarc { };
+
+  checksumdir = callPackage ../development/python-modules/checksumdir { };
+
+  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
+
+  cheroot = callPackage ../development/python-modules/cheroot { };
+
+  cherrypy = callPackage ../development/python-modules/cherrypy { };
+
+  chess = callPackage ../development/python-modules/chess { };
+
+  chevron = callPackage ../development/python-modules/chevron { };
+
+  chex = callPackage ../development/python-modules/chex { };
+
+  chiabip158 = throw "chiabip158 has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  chiapos = throw "chiapos has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  chiavdf = throw "chiavdf has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  chia-rs = throw "chia-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  chirpstack-api = callPackage ../development/python-modules/chirpstack-api { };
+
+  chispa = callPackage ../development/python-modules/chispa { };
+
+  chromaprint = callPackage ../development/python-modules/chromaprint { };
+
+  ci-info = callPackage ../development/python-modules/ci-info { };
+
+  ci-py = callPackage ../development/python-modules/ci-py { };
+
+  cinemagoer = callPackage ../development/python-modules/cinemagoer { };
+
+  circuit-webhook = callPackage ../development/python-modules/circuit-webhook { };
+
+  circuitbreaker = callPackage ../development/python-modules/circuitbreaker { };
+
+  circus = callPackage ../development/python-modules/circus { };
+
+  cirq = callPackage ../development/python-modules/cirq { };
+
+  cirq-aqt = callPackage ../development/python-modules/cirq-aqt { };
+
+  cirq-core = callPackage ../development/python-modules/cirq-core { };
+
+  cirq-ft = callPackage ../development/python-modules/cirq-ft { };
+
+  cirq-ionq = callPackage ../development/python-modules/cirq-ionq { };
+
+  cirq-google = callPackage ../development/python-modules/cirq-google { };
+
+  cirq-rigetti = callPackage ../development/python-modules/cirq-rigetti { };
+
+  cirq-pasqal = callPackage ../development/python-modules/cirq-pasqal { };
+
+  cirq-web = callPackage ../development/python-modules/cirq-web { };
+
+  ciscoconfparse = callPackage ../development/python-modules/ciscoconfparse { };
+
+  ciscomobilityexpress = callPackage ../development/python-modules/ciscomobilityexpress { };
+
+  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
+
+  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
+
+  cjkwrap = callPackage ../development/python-modules/cjkwrap { };
+
+  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
+
+  clarifai = callPackage ../development/python-modules/clarifai { };
+
+  clarifai-grpc = callPackage ../development/python-modules/clarifai-grpc { };
+
+  claripy = callPackage ../development/python-modules/claripy { };
+
+  classify-imports = callPackage ../development/python-modules/classify-imports { };
+
+  cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
+
+  cle = callPackage ../development/python-modules/cle { };
+
+  clean-fid = callPackage ../development/python-modules/clean-fid { };
+
+  cleanlab = callPackage ../development/python-modules/cleanlab { };
+
+  cleo = callPackage ../development/python-modules/cleo { };
+
+  clevercsv = callPackage ../development/python-modules/clevercsv { };
+
+  clf = callPackage ../development/python-modules/clf { };
+
+  clip = callPackage ../development/python-modules/clip { };
+
+  clip-anytorch = callPackage ../development/python-modules/clip-anytorch { };
+
+  clr-loader = callPackage ../development/python-modules/clr-loader { };
+
+  cock = callPackage ../development/python-modules/cock { };
+
+  cobs = callPackage ../development/python-modules/cobs { };
+
+  class-doc = callPackage ../development/python-modules/class-doc { };
+
+  cliche = callPackage ../development/python-modules/cliche { };
+
+  click = callPackage ../development/python-modules/click { };
+
+  clickclick = callPackage ../development/python-modules/clickclick { };
+
+  click-aliases = callPackage ../development/python-modules/click-aliases { };
+
+  click-command-tree = callPackage ../development/python-modules/click-command-tree { };
+
+  click-completion = callPackage ../development/python-modules/click-completion { };
+
+  click-configfile = callPackage ../development/python-modules/click-configfile { };
+
+  click-datetime = callPackage ../development/python-modules/click-datetime { };
+
+  click-default-group = callPackage ../development/python-modules/click-default-group { };
+
+  click-didyoumean = callPackage ../development/python-modules/click-didyoumean { };
+
+  click-help-colors = callPackage ../development/python-modules/click-help-colors { };
+
+  click-log = callPackage ../development/python-modules/click-log { };
+
+  click-odoo = callPackage ../development/python-modules/click-odoo { };
+
+  click-odoo-contrib = callPackage ../development/python-modules/click-odoo-contrib { };
+
+  click-option-group = callPackage ../development/python-modules/click-option-group { };
+
+  click-plugins = callPackage ../development/python-modules/click-plugins { };
+
+  click-shell = callPackage ../development/python-modules/click-shell { };
+
+  click-spinner = callPackage ../development/python-modules/click-spinner { };
+
+  click-repl = callPackage ../development/python-modules/click-repl { };
+
+  click-threading = callPackage ../development/python-modules/click-threading { };
+
+  clickgen = callPackage ../development/python-modules/clickgen { };
+
+  clickhouse-cityhash = callPackage ../development/python-modules/clickhouse-cityhash { };
+
+  clickhouse-cli = callPackage ../development/python-modules/clickhouse-cli { };
+
+  clickhouse-connect = callPackage ../development/python-modules/clickhouse-connect { };
+
+  clickhouse-driver = callPackage ../development/python-modules/clickhouse-driver { };
+
+  cliff = callPackage ../development/python-modules/cliff { };
+
+  clifford = callPackage ../development/python-modules/clifford { };
+
+  cligj = callPackage ../development/python-modules/cligj { };
+
+  cli-helpers = callPackage ../development/python-modules/cli-helpers { };
+
+  clikit = callPackage ../development/python-modules/clikit { };
+
+  clint = callPackage ../development/python-modules/clint { };
+
+  clintermission = callPackage ../development/python-modules/clintermission { };
+
+  clize = callPackage ../development/python-modules/clize { };
+
+  clldutils = callPackage ../development/python-modules/clldutils { };
+
+  cloudflare = callPackage ../development/python-modules/cloudflare { };
+
+  cloudpathlib = callPackage ../development/python-modules/cloudpathlib { };
+
+  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
+
+  cloudscraper = callPackage ../development/python-modules/cloudscraper { };
+
+  cloudsmith-api = callPackage ../development/python-modules/cloudsmith-api { };
+
+  cloudsplaining = callPackage ../development/python-modules/cloudsplaining { };
+
+  cloup = callPackage ../development/python-modules/cloup { };
+
+  clustershell = callPackage ../development/python-modules/clustershell { };
+
+  clvm = throw "clvm has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  clvm-rs = throw "clvm-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  clvm-tools = throw "clvm-tools has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  clvm-tools-rs = throw "clvm-tools-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254";
+
+  cma = callPackage ../development/python-modules/cma { };
+
+  cmaes = callPackage ../development/python-modules/cmaes { };
+
+  cmake = callPackage ../development/python-modules/cmake { inherit (pkgs) cmake; };
+
+  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
+
+  cmd2 = callPackage ../development/python-modules/cmd2 { };
+
+  cmd2-ext-test = callPackage ../development/python-modules/cmd2-ext-test { };
+
+  cmdline = callPackage ../development/python-modules/cmdline { };
+
+  cmdstanpy = callPackage ../development/python-modules/cmdstanpy { };
+
+  cmigemo = callPackage ../development/python-modules/cmigemo {
+    inherit (pkgs) cmigemo;
+  };
+
+  cmsis-pack-manager = callPackage ../development/python-modules/cmsis-pack-manager { };
+
+  cmsis-svd = callPackage ../development/python-modules/cmsis-svd { };
+
+  cnvkit = callPackage ../development/python-modules/cnvkit { };
+
+  co2signal = callPackage ../development/python-modules/co2signal { };
+
+  coapthon3 = callPackage ../development/python-modules/coapthon3 { };
+
+  coconut = callPackage ../development/python-modules/coconut { };
+
+  cocotb = callPackage ../development/python-modules/cocotb { };
+
+  cocotb-bus = callPackage ../development/python-modules/cocotb-bus { };
+
+  codecov = callPackage ../development/python-modules/codecov { };
+
+  codepy = callPackage ../development/python-modules/codepy { };
+
+  cogapp = callPackage ../development/python-modules/cogapp { };
+
+  coinmetrics-api-client = callPackage ../development/python-modules/coinmetrics-api-client { };
+
+  colanderalchemy = callPackage ../development/python-modules/colanderalchemy { };
+
+  colander = callPackage ../development/python-modules/colander { };
+
+  collections-extended = callPackage ../development/python-modules/collections-extended { };
+
+  collidoscope = callPackage ../development/python-modules/collidoscope { };
+
+  colorama = callPackage ../development/python-modules/colorama { };
+
+  colorcet = callPackage ../development/python-modules/colorcet { };
+
+  colorclass = callPackage ../development/python-modules/colorclass { };
+
+  colored = callPackage ../development/python-modules/colored { };
+
+  colored-traceback = callPackage ../development/python-modules/colored-traceback { };
+
+  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
+
+  colorful = callPackage ../development/python-modules/colorful { };
+
+  colorlog = callPackage ../development/python-modules/colorlog { };
+
+  colorlover = callPackage ../development/python-modules/colorlover { };
+
+  colormath = callPackage ../development/python-modules/colormath { };
+
+  colorspacious = callPackage ../development/python-modules/colorspacious { };
+
+  colorthief = callPackage ../development/python-modules/colorthief { };
+
+  colorzero = callPackage ../development/python-modules/colorzero { };
+
+  colour = callPackage ../development/python-modules/colour { };
+
+  colout = callPackage ../development/python-modules/colout { };
+
+  cometblue-lite = callPackage ../development/python-modules/cometblue-lite { };
+
+  comm = callPackage ../development/python-modules/comm { };
+
+  commandlines = callPackage ../development/python-modules/commandlines { };
+
+  commandparse = callPackage ../development/python-modules/commandparse { };
+
+  commentjson = callPackage ../development/python-modules/commentjson { };
+
+  commoncode = callPackage ../development/python-modules/commoncode { };
+
+  commonmark = callPackage ../development/python-modules/commonmark { };
+
+  compiledb = callPackage ../development/python-modules/compiledb { };
+
+  complycube = callPackage ../development/python-modules/complycube { };
+
+  compreffor = callPackage ../development/python-modules/compreffor { };
+
+  compressai = callPackage ../development/python-modules/compressai { };
+
+  concurrent-log-handler = callPackage ../development/python-modules/concurrent-log-handler { };
+
+  conda = callPackage ../development/python-modules/conda { };
+
+  confection = callPackage ../development/python-modules/confection { };
+
+  configargparse = callPackage ../development/python-modules/configargparse { };
+
+  configclass = callPackage ../development/python-modules/configclass { };
+
+  configobj = callPackage ../development/python-modules/configobj { };
+
+  configparser = callPackage ../development/python-modules/configparser { };
+
+  configshell = callPackage ../development/python-modules/configshell { };
+
+  configupdater = callPackage ../development/python-modules/configupdater { };
+
+  confluent-kafka = callPackage ../development/python-modules/confluent-kafka { };
+
+  confuse = callPackage ../development/python-modules/confuse { };
+
+  confight = callPackage ../development/python-modules/confight { };
+
+  connexion = callPackage ../development/python-modules/connexion { };
+
+  cons = callPackage ../development/python-modules/cons { };
+
+  consonance = callPackage ../development/python-modules/consonance { };
+
+  constantly = callPackage ../development/python-modules/constantly { };
+
+  construct = callPackage ../development/python-modules/construct { };
+
+  construct-classes = callPackage ../development/python-modules/construct-classes { };
+
+  consul = callPackage ../development/python-modules/consul { };
+
+  container-inspector = callPackage ../development/python-modules/container-inspector { };
+
+  contexter = callPackage ../development/python-modules/contexter { };
+
+  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
+
+  contexttimer = callPackage ../development/python-modules/contexttimer { };
+
+  contourpy = callPackage ../development/python-modules/contourpy { };
+
+  controku = callPackage ../development/python-modules/controku { };
+
+  convertdate = callPackage ../development/python-modules/convertdate { };
+
+  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
+
+  cookies = callPackage ../development/python-modules/cookies { };
+
+  coordinates = callPackage ../development/python-modules/coordinates { };
+
+  coreapi = callPackage ../development/python-modules/coreapi { };
+
+  coredis = callPackage ../development/python-modules/coredis { };
+
+  coreschema = callPackage ../development/python-modules/coreschema { };
+
+  cornice = callPackage ../development/python-modules/cornice { };
+
+  corsair-scan = callPackage ../development/python-modules/corsair-scan { };
+
+  cose = callPackage ../development/python-modules/cose { };
+
+  cot = callPackage ../development/python-modules/cot { };
+
+  covCore = callPackage ../development/python-modules/cov-core { };
+
+  coverage = callPackage ../development/python-modules/coverage { };
+
+  coveralls = callPackage ../development/python-modules/coveralls { };
+
+  cppe = callPackage ../development/python-modules/cppe {
+    inherit (pkgs) cppe;
+  };
+
+  cppheaderparser = callPackage ../development/python-modules/cppheaderparser { };
+
+  cppy = callPackage ../development/python-modules/cppy { };
+
+  cpyparsing = callPackage ../development/python-modules/cpyparsing { };
+
+  cram = callPackage ../development/python-modules/cram { };
+
+  cramjam = callPackage ../development/python-modules/cramjam { };
+
+  crashtest = callPackage ../development/python-modules/crashtest { };
+
+  crate = callPackage ../development/python-modules/crate { };
+
+  crayons = callPackage ../development/python-modules/crayons { };
+
+  crc = callPackage ../development/python-modules/crc { };
+
+  crc16 = callPackage ../development/python-modules/crc16 { };
+
+  crc32c = callPackage ../development/python-modules/crc32c { };
+
+  crccheck = callPackage ../development/python-modules/crccheck { };
+
+  crcmod = callPackage ../development/python-modules/crcmod { };
+
+  credstash = callPackage ../development/python-modules/credstash { };
+
+  criticality-score = callPackage ../development/python-modules/criticality-score { };
+
+  crocoddyl = toPythonModule (callPackage ../development/libraries/crocoddyl {
+    pythonSupport = true;
+    python3Packages = self;
+  });
+
+  cron-descriptor = callPackage ../development/python-modules/cron-descriptor { };
+
+  croniter = callPackage ../development/python-modules/croniter { };
+
+  cronsim = callPackage ../development/python-modules/cronsim { };
+
+  crossplane = callPackage ../development/python-modules/crossplane { };
+
+  crownstone-cloud = callPackage ../development/python-modules/crownstone-cloud { };
+
+  crownstone-core = callPackage ../development/python-modules/crownstone-core { };
+
+  crownstone-sse = callPackage ../development/python-modules/crownstone-sse { };
+
+  crownstone-uart = callPackage ../development/python-modules/crownstone-uart { };
+
+  cryptacular = callPackage ../development/python-modules/cryptacular { };
+
+  cryptg = callPackage ../development/python-modules/cryptg { };
+
+  cryptodatahub = callPackage ../development/python-modules/cryptodatahub { };
+
+  cryptography = callPackage ../development/python-modules/cryptography {
+    inherit (pkgs.darwin) libiconv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+  };
+
+  cryptolyzer = callPackage ../development/python-modules/cryptolyzer { };
+
+  cryptoparser = callPackage ../development/python-modules/cryptoparser { };
+
+  crysp = callPackage ../development/python-modules/crysp { };
+
+  crytic-compile = callPackage ../development/python-modules/crytic-compile { };
+
+  cson  = callPackage ../development/python-modules/cson { };
+
+  csrmesh  = callPackage ../development/python-modules/csrmesh { };
+
+  cssbeautifier = callPackage ../development/python-modules/cssbeautifier { };
+
+  csscompressor = callPackage ../development/python-modules/csscompressor { };
+
+  cssmin = callPackage ../development/python-modules/cssmin { };
+
+  css-html-js-minify = callPackage ../development/python-modules/css-html-js-minify { };
+
+  css-inline = callPackage ../development/python-modules/css-inline {
+    inherit (pkgs.darwin) libiconv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+  };
+
+  css-parser = callPackage ../development/python-modules/css-parser { };
+
+  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
+
+  cssselect = callPackage ../development/python-modules/cssselect { };
+
+  cssutils = callPackage ../development/python-modules/cssutils { };
+
+  cstruct = callPackage ../development/python-modules/cstruct { };
+
+  csvw = callPackage ../development/python-modules/csvw { };
+
+  ctap-keyring-device = callPackage ../development/python-modules/ctap-keyring-device { };
+
+  ctranslate2 = callPackage ../development/python-modules/ctranslate2 {
+    ctranslate2-cpp = pkgs.ctranslate2;
+  };
+
+  cu2qu = callPackage ../development/python-modules/cu2qu { };
+
+  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
+
+  cufflinks = callPackage ../development/python-modules/cufflinks { };
+
+  # cupy 12.2.0 possibly incompatible with cutensor 2.0 that comes with cudaPackages_12
+  cupy = callPackage ../development/python-modules/cupy { cudaPackages = pkgs.cudaPackages_11; };
+
+  curio = callPackage ../development/python-modules/curio { };
+
+  curlify = callPackage ../development/python-modules/curlify { };
+
+  curtsies = callPackage ../development/python-modules/curtsies { };
+
+  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
+
+  cvelib = callPackage ../development/python-modules/cvelib { };
+
+  cvss = callPackage ../development/python-modules/cvss { };
+
+  cvxopt = callPackage ../development/python-modules/cvxopt { };
+
+  cvxpy = callPackage ../development/python-modules/cvxpy { };
+
+  cwcwidth = callPackage ../development/python-modules/cwcwidth { };
+
+  cwl-upgrader = callPackage ../development/python-modules/cwl-upgrader { };
+
+  cwl-utils = callPackage ../development/python-modules/cwl-utils { };
+
+  cwlformat = callPackage ../development/python-modules/cwlformat { };
+
+  cx-freeze = callPackage ../development/python-modules/cx-freeze { };
+
+  cx_oracle = callPackage ../development/python-modules/cx_oracle { };
+
+  cxxfilt = callPackage ../development/python-modules/cxxfilt { };
+
+  cycler = callPackage ../development/python-modules/cycler { };
+
+  cyclonedx-python-lib = callPackage ../development/python-modules/cyclonedx-python-lib { };
+
+  cymem = callPackage ../development/python-modules/cymem { };
+
+  cypari2 = callPackage ../development/python-modules/cypari2 { };
+
+  cypherpunkpay = callPackage ../development/python-modules/cypherpunkpay { };
+
+  cysignals = callPackage ../development/python-modules/cysignals { };
+
+  cython = callPackage ../development/python-modules/Cython { };
+
+  cython_3 = self.cython.overridePythonAttrs (old: rec {
+    version = "3.0.3";
+    src = old.src.override {
+      inherit version;
+      hash = "sha256-MnMJMBsB9ynxc6lFEcsigMh7oDyJ7UKOiPkT93gkUDA=";
+    };
+    patches = [ ];
+  });
+
+  cython-test-exception-raiser = callPackage ../development/python-modules/cython-test-exception-raiser { };
+
+  cytoolz = callPackage ../development/python-modules/cytoolz { };
+
+  dacite = callPackage ../development/python-modules/dacite { };
+
+  daemonize = callPackage ../development/python-modules/daemonize { };
+
+  daemonocle = callPackage ../development/python-modules/daemonocle { };
+
+  daiquiri = callPackage ../development/python-modules/daiquiri { };
+
+  dalle-mini = callPackage ../development/python-modules/dalle-mini { };
+
+  daphne = callPackage ../development/python-modules/daphne { };
+
+  daqp = callPackage ../development/python-modules/daqp { };
+
+  darkdetect = callPackage ../development/python-modules/darkdetect { };
+
+  dasbus = callPackage ../development/python-modules/dasbus { };
+
+  dash = callPackage ../development/python-modules/dash { };
+
+  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
+
+  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
+
+  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
+
+  dash-table = callPackage ../development/python-modules/dash-table { };
+
+  dashing = callPackage ../development/python-modules/dashing { };
+
+  dask = callPackage ../development/python-modules/dask { };
+
+  dask-awkward = callPackage ../development/python-modules/dask-awkward { };
+
+  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
+
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { };
+
+  dask-glm = callPackage ../development/python-modules/dask-glm { };
+
+  dask-histogram = callPackage ../development/python-modules/dask-histogram { };
+
+  dask-image = callPackage ../development/python-modules/dask-image { };
+
+  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
+
+  dask-ml = callPackage ../development/python-modules/dask-ml { };
+
+  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
+
+  dask-yarn = callPackage ../development/python-modules/dask-yarn { };
+
+  databases = callPackage ../development/python-modules/databases { };
+
+  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
+
+  databricks-connect = callPackage ../development/python-modules/databricks-connect { };
+
+  databricks-sql-connector = callPackage ../development/python-modules/databricks-sql-connector { };
+
+  dataclass-factory = callPackage ../development/python-modules/dataclass-factory { };
+
+  dataclass-wizard = callPackage ../development/python-modules/dataclass-wizard { };
+
+  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
+
+  dataclasses-serialization = callPackage ../development/python-modules/dataclasses-serialization { };
+
+  datadiff = callPackage ../development/python-modules/datadiff { };
+
+  datadog = callPackage ../development/python-modules/datadog { };
+
+  datafusion = callPackage ../development/python-modules/datafusion {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+  };
+
+  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
+
+  datapoint = callPackage ../development/python-modules/datapoint { };
+
+  dataprep-ml = callPackage ../development/python-modules/dataprep-ml { };
+
+  dataproperty = callPackage ../development/python-modules/dataproperty { };
+
+  dataset = callPackage ../development/python-modules/dataset { };
+
+  datasets = callPackage ../development/python-modules/datasets { };
+
+  datasette = callPackage ../development/python-modules/datasette { };
+
+  datasette-publish-fly = callPackage ../development/python-modules/datasette-publish-fly { };
+
+  datasette-template-sql = callPackage ../development/python-modules/datasette-template-sql { };
+
+  datashader = callPackage ../development/python-modules/datashader { };
+
+  datashape = callPackage ../development/python-modules/datashape { };
+
+  datatable = callPackage ../development/python-modules/datatable { };
+
+  datauri = callPackage ../development/python-modules/datauri { };
+
+  datefinder = callPackage ../development/python-modules/datefinder { };
+
+  dateparser = callPackage ../development/python-modules/dateparser { };
+
+  datetime = callPackage ../development/python-modules/datetime { };
+
+  dateutils = callPackage ../development/python-modules/dateutils { };
+
+  datrie = callPackage ../development/python-modules/datrie { };
+
+  dawg-python = callPackage ../development/python-modules/dawg-python { };
+
+  dbf = callPackage ../development/python-modules/dbf { };
+
+  dbfread = callPackage ../development/python-modules/dbfread { };
+
+  dbt-bigquery = callPackage ../development/python-modules/dbt-bigquery { };
+
+  dbt-core = callPackage ../development/python-modules/dbt-core { };
+
+  dbt-extractor = callPackage ../development/python-modules/dbt-extractor { };
+
+  dbt-postgres = callPackage ../development/python-modules/dbt-postgres { };
+
+  dbt-redshift = callPackage ../development/python-modules/dbt-redshift { };
+
+  dbt-semantic-interfaces = callPackage ../development/python-modules/dbt-semantic-interfaces { };
+
+  dbt-snowflake = callPackage ../development/python-modules/dbt-snowflake { };
+
+  dbus-client-gen = callPackage ../development/python-modules/dbus-client-gen { };
+
+  dbus-deviation = callPackage ../development/python-modules/dbus-deviation { };
+
+  dbus-fast = callPackage ../development/python-modules/dbus-fast { };
+
+  dbus-next = callPackage ../development/python-modules/dbus-next { };
+
+  dbus-python = callPackage ../development/python-modules/dbus {
+    inherit (pkgs) dbus;
+  };
+
+  dbus-python-client-gen = callPackage ../development/python-modules/dbus-python-client-gen { };
+
+  dbus-signature-pyparsing = callPackage ../development/python-modules/dbus-signature-pyparsing { };
+
+  dbutils = callPackage ../development/python-modules/dbutils { };
+
+  db-dtypes = callPackage ../development/python-modules/db-dtypes { };
+
+  dcmstack = callPackage ../development/python-modules/dcmstack { };
+
+  dctorch = callPackage ../development/python-modules/dctorch { };
+
+  ddt = callPackage ../development/python-modules/ddt { };
+
+  deal = callPackage ../development/python-modules/deal { };
+
+  deal-solver = callPackage ../development/python-modules/deal-solver { };
+
+  deap = callPackage ../development/python-modules/deap { };
+
+  debian = callPackage ../development/python-modules/debian { };
+
+  debianbts = callPackage ../development/python-modules/debianbts { };
+
+  debian-inspector = callPackage ../development/python-modules/debian-inspector { };
+
+  debtcollector = callPackage ../development/python-modules/debtcollector { };
+
+  debts = callPackage ../development/python-modules/debts { };
+
+  debugpy = callPackage ../development/python-modules/debugpy { };
+
+  debuglater = callPackage ../development/python-modules/debuglater { };
+
+  decli = callPackage ../development/python-modules/decli { };
+
+  decorator = callPackage ../development/python-modules/decorator { };
+
+  decopatch = callPackage ../development/python-modules/decopatch { };
+
+  deemix = callPackage ../development/python-modules/deemix { };
+
+  deep-chainmap = callPackage ../development/python-modules/deep-chainmap { };
+
+  deepdiff = callPackage ../development/python-modules/deepdiff { };
+
+  deepdish = callPackage ../development/python-modules/deepdish { };
+
+  deepl = callPackage ../development/python-modules/deepl { };
+
+  deepmerge = callPackage ../development/python-modules/deepmerge { };
+
+  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
+
+  deepwave = callPackage ../development/python-modules/deepwave { };
+
+  deep-translator = callPackage ../development/python-modules/deep-translator { };
+
+  deezer-py = callPackage ../development/python-modules/deezer-py { };
+
+  deezer-python = callPackage ../development/python-modules/deezer-python { };
+
+  defcon = callPackage ../development/python-modules/defcon { };
+
+  deform = callPackage ../development/python-modules/deform { };
+
+  defusedcsv = callPackage ../development/python-modules/defusedcsv { };
+
+  defusedxml = callPackage ../development/python-modules/defusedxml { };
+
+  dehinter = callPackage ../development/python-modules/dehinter { };
+
+  deid = callPackage ../development/python-modules/deid { };
+
+  delegator-py = callPackage ../development/python-modules/delegator-py { };
+
+  delorean = callPackage ../development/python-modules/delorean { };
+
+  deltachat = callPackage ../development/python-modules/deltachat { };
+
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
+
+  demes = callPackage ../development/python-modules/demes { };
+
+  demesdraw = callPackage ../development/python-modules/demesdraw { };
+
+  demetriek = callPackage ../development/python-modules/demetriek { };
+
+  demjson3 = callPackage ../development/python-modules/demjson3 { };
+
+  dendropy = callPackage ../development/python-modules/dendropy { };
+
+  denonavr = callPackage ../development/python-modules/denonavr { };
+
+  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
+
+  deploykit = callPackage ../development/python-modules/deploykit { };
+
+  deprecat = callPackage ../development/python-modules/deprecat { };
+
+  deprecated = callPackage ../development/python-modules/deprecated { };
+
+  deprecation = callPackage ../development/python-modules/deprecation { };
+
+  derpconf = callPackage ../development/python-modules/derpconf { };
+
+  desktop-entry-lib = callPackage ../development/python-modules/desktop-entry-lib { };
+
+  desktop-notifier = callPackage ../development/python-modules/desktop-notifier { };
+
+  detect-secrets = callPackage ../development/python-modules/detect-secrets { };
+
+  detectron2 = callPackage ../development/python-modules/detectron2 { };
+
+  devialet = callPackage ../development/python-modules/devialet { };
+
+  devito = callPackage ../development/python-modules/devito { };
+
+  devolo-home-control-api = callPackage ../development/python-modules/devolo-home-control-api { };
+
+  devolo-plc-api = callPackage ../development/python-modules/devolo-plc-api { };
+
+  devpi-common = callPackage ../development/python-modules/devpi-common { };
+
+  devtools = callPackage ../development/python-modules/devtools { };
+
+  diagrams = callPackage ../development/python-modules/diagrams { };
+
+  diceware = callPackage ../development/python-modules/diceware { };
+
+  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
+
+  dicom-numpy = callPackage ../development/python-modules/dicom-numpy { };
+
+  dicomweb-client = callPackage ../development/python-modules/dicomweb-client { };
+
+  dict2xml = callPackage ../development/python-modules/dict2xml { };
+
+  dictdiffer = callPackage ../development/python-modules/dictdiffer { };
+
+  dictionaries = callPackage ../development/python-modules/dictionaries { };
+
+  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
+
+  dicttoxml2 = callPackage ../development/python-modules/dicttoxml2 { };
+
+  diff-cover = callPackage ../development/python-modules/diff-cover { };
+
+  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
+
+  diffimg = callPackage ../development/python-modules/diffimg { };
+
+  diffsync = callPackage ../development/python-modules/diffsync { };
+
+  diffusers = callPackage ../development/python-modules/diffusers { };
+
+  digital-ocean = callPackage ../development/python-modules/digitalocean { };
+
+  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
+
+  dill = callPackage ../development/python-modules/dill { };
+
+  dingz = callPackage ../development/python-modules/dingz { };
+
+  dinghy = callPackage ../development/python-modules/dinghy { };
+
+  diofant = callPackage ../development/python-modules/diofant { };
+
+  dipy = callPackage ../development/python-modules/dipy { };
+
+  directv = callPackage ../development/python-modules/directv { };
+
+  dirty-equals = callPackage ../development/python-modules/dirty-equals { };
+
+  discid = callPackage ../development/python-modules/discid { };
+
+  discogs-client = callPackage ../development/python-modules/discogs-client { };
+
+  discordpy = callPackage ../development/python-modules/discordpy { };
+
+  discovery30303 = callPackage ../development/python-modules/discovery30303 { };
+
+  diskcache = callPackage ../development/python-modules/diskcache { };
+
+  dissect = callPackage ../development/python-modules/dissect { };
+
+  dissect-cim = callPackage ../development/python-modules/dissect-cim { };
+
+  dissect-clfs = callPackage ../development/python-modules/dissect-clfs { };
+
+  dissect-cobaltstrike = callPackage ../development/python-modules/dissect-cobaltstrike { };
+
+  dissect-cstruct = callPackage ../development/python-modules/dissect-cstruct { };
+
+  dissect-fat = callPackage ../development/python-modules/dissect-fat { };
+
+  dissect-ffs = callPackage ../development/python-modules/dissect-ffs { };
+
+  dissect-esedb = callPackage ../development/python-modules/dissect-esedb { };
+
+  dissect-etl = callPackage ../development/python-modules/dissect-etl { };
+
+  dissect-eventlog = callPackage ../development/python-modules/dissect-eventlog { };
+
+  dissect-evidence = callPackage ../development/python-modules/dissect-evidence { };
+
+  dissect-executable = callPackage ../development/python-modules/dissect-executable { };
+
+  dissect-extfs = callPackage ../development/python-modules/dissect-extfs { };
+
+  dissect-hypervisor = callPackage ../development/python-modules/dissect-hypervisor { };
+
+  dissect-ntfs = callPackage ../development/python-modules/dissect-ntfs { };
+
+  dissect-ole = callPackage ../development/python-modules/dissect-ole { };
+
+  dissect-regf = callPackage ../development/python-modules/dissect-regf { };
+
+  dissect-shellitem = callPackage ../development/python-modules/dissect-shellitem { };
+
+  dissect-squashfs = callPackage ../development/python-modules/dissect-squashfs { };
+
+  dissect-sql = callPackage ../development/python-modules/dissect-sql { };
+
+  dissect-target = callPackage ../development/python-modules/dissect-target { };
+
+  dissect-thumbcache = callPackage ../development/python-modules/dissect-thumbcache { };
+
+  dissect-util = callPackage ../development/python-modules/dissect-util { };
+
+  dissect-vmfs = callPackage ../development/python-modules/dissect-vmfs { };
+
+  dissect-volume = callPackage ../development/python-modules/dissect-volume { };
+
+  dissect-xfs = callPackage ../development/python-modules/dissect-xfs { };
+
+  dissononce = callPackage ../development/python-modules/dissononce { };
+
+  distlib = callPackage ../development/python-modules/distlib { };
+
+  distorm3 = callPackage ../development/python-modules/distorm3 { };
+
+  distrax = callPackage ../development/python-modules/distrax { };
+
+  distributed = callPackage ../development/python-modules/distributed { };
+
+  distro = callPackage ../development/python-modules/distro { };
+
+  distutils-extra = callPackage ../development/python-modules/distutils-extra { };
+
+  # LTS in extended support phase
+  django_3 = callPackage ../development/python-modules/django/3.nix { };
+
+  # LTS with mainsteam support
+  django = self.django_4;
+  django_4 = callPackage ../development/python-modules/django/4.nix { };
+
+  # Pre-release
+  django_5 = callPackage ../development/python-modules/django/5.nix { };
+
+  django-admin-datta = callPackage ../development/python-modules/django-admin-datta { };
+
+  django-admin-sortable2 = callPackage ../development/python-modules/django-admin-sortable2 { };
+
+  django-allauth = callPackage ../development/python-modules/django-allauth { };
+
+  django-allauth-2fa = callPackage ../development/python-modules/django-allauth-2fa { };
+
+  django-anymail = callPackage ../development/python-modules/django-anymail { };
+
+  django-annoying = callPackage ../development/python-modules/django-annoying { };
+
+  django-appconf = callPackage ../development/python-modules/django-appconf { };
+
+  django-auditlog = callPackage ../development/python-modules/django-auditlog { };
+
+  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
+
+  django-autocomplete-light = callPackage ../development/python-modules/django-autocomplete-light { };
+
+  django-bootstrap3 = callPackage ../development/python-modules/django-bootstrap3 { };
+
+  django-bootstrap4 = callPackage ../development/python-modules/django-bootstrap4 { };
+
+  django-bootstrap5 = callPackage ../development/python-modules/django-bootstrap5 { };
+
+  django-cachalot = callPackage ../development/python-modules/django-cachalot { };
+
+  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
+
+  django-cacheops = callPackage ../development/python-modules/django-cacheops { };
+
+  django-celery-beat = callPackage ../development/python-modules/django-celery-beat { };
+
+  django-celery-email = callPackage ../development/python-modules/django-celery-email { };
+
+  django-celery-results = callPackage ../development/python-modules/django-celery-results { };
+
+  django-ckeditor = callPackage ../development/python-modules/django-ckeditor { };
+
+  django-classy-tags = callPackage ../development/python-modules/django-classy-tags { };
+
+  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
+
+  django-colorful = callPackage ../development/python-modules/django-colorful { };
+
+  django-compressor = callPackage ../development/python-modules/django-compressor { };
+
+  django-compression-middleware = callPackage ../development/python-modules/django-compression-middleware { };
+
+  django-configurations = callPackage ../development/python-modules/django-configurations { };
+
+  django-context-decorator = callPackage ../development/python-modules/django-context-decorator { };
+
+  django-contrib-comments = callPackage ../development/python-modules/django-contrib-comments { };
+
+  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
+
+  django-countries = callPackage ../development/python-modules/django-countries { };
+
+  django-crispy-bootstrap4 = callPackage ../development/python-modules/django-crispy-bootstrap4 { };
+
+  django-crispy-forms = callPackage ../development/python-modules/django-crispy-forms { };
+
+  django-crontab = callPackage ../development/python-modules/django-crontab { };
+
+  django-cryptography = callPackage ../development/python-modules/django-cryptography { };
+
+  django-csp = callPackage ../development/python-modules/django-csp { };
+
+  django-debug-toolbar = callPackage ../development/python-modules/django-debug-toolbar { };
+
+  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
+
+  django-encrypted-model-fields = callPackage ../development/python-modules/django-encrypted-model-fields { };
+
+  django-environ = callPackage ../development/python-modules/django-environ { };
+
+  django-extensions = callPackage ../development/python-modules/django-extensions { };
+
+  django-filter = callPackage ../development/python-modules/django-filter { };
+
+  django-formtools = callPackage ../development/python-modules/django-formtools { };
+
+  django-formset-js-improved = callPackage ../development/python-modules/django-formset-js-improved { };
+
+  django-graphiql-debug-toolbar = callPackage ../development/python-modules/django-graphiql-debug-toolbar { };
+
+  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
+
+  django-google-analytics-app = callPackage ../development/python-modules/django-google-analytics-app { };
+
+  django-guardian = callPackage ../development/python-modules/django-guardian { };
+
+  django-haystack = callPackage ../development/python-modules/django-haystack { };
+
+  django-hcaptcha = callPackage ../development/python-modules/django-hcaptcha { };
+
+  django-health-check = callPackage ../development/python-modules/django-health-check { };
+
+  django-hierarkey = callPackage ../development/python-modules/django-hierarkey { };
+
+  django-hijack = callPackage ../development/python-modules/django-hijack { };
+
+  django-i18nfield = callPackage ../development/python-modules/django-i18nfield { };
+
+  django-import-export = callPackage ../development/python-modules/django-import-export { };
+
+  django-ipware = callPackage ../development/python-modules/django-ipware { };
+
+  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
+
+  django-jquery-js = callPackage ../development/python-modules/django-jquery-js { };
+
+  django-js-asset = callPackage ../development/python-modules/django-js-asset { };
+
+  django-js-reverse = callPackage ../development/python-modules/django-js-reverse { };
+
+  django-libsass = callPackage ../development/python-modules/django-libsass { };
+
+  django-leaflet = callPackage ../development/python-modules/django-leaflet { };
+
+  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
+
+  django-login-required-middleware = callPackage ../development/python-modules/django-login-required-middleware { };
+
+  django-localflavor = callPackage ../development/python-modules/django-localflavor { };
+
+  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
+
+  django-markup = callPackage ../development/python-modules/django-markup { };
+
+  django-model-utils = callPackage ../development/python-modules/django-model-utils { };
+
+  django-modelcluster = callPackage ../development/python-modules/django-modelcluster { };
+
+  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
+
+  django-maintenance-mode = callPackage ../development/python-modules/django-maintenance-mode { };
+
+  django-mptt = callPackage ../development/python-modules/django-mptt { };
+
+  django-mysql = callPackage ../development/python-modules/django-mysql { };
+
+  django-ninja = callPackage ../development/python-modules/django-ninja { };
+
+  django-nose = callPackage ../development/python-modules/django-nose { };
+
+  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
+
+  django-otp = callPackage ../development/python-modules/django-otp { };
+
+  django-paintstore = callPackage ../development/python-modules/django-paintstore { };
+
+  django-parler = callPackage ../development/python-modules/django-parler { };
+
+  django-pattern-library = callPackage ../development/python-modules/django-pattern-library { };
+
+  django-payments = callPackage ../development/python-modules/django-payments { };
+
+  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
+
+  django-phonenumber-field = callPackage ../development/python-modules/django-phonenumber-field { };
+
+  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
+
+  django-polymorphic = callPackage ../development/python-modules/django-polymorphic { };
+
+  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
+
+  django-prometheus = callPackage ../development/python-modules/django-prometheus { };
+
+  django-pwa = callPackage ../development/python-modules/django-pwa { };
+
+  django-q = callPackage ../development/python-modules/django-q { };
+
+  django-scheduler = callPackage ../development/python-modules/django-scheduler { };
+
+  django-scim2 = callPackage ../development/python-modules/django-scim2 { };
+
+  django-shortuuidfield = callPackage ../development/python-modules/django-shortuuidfield { };
+
+  django-scopes = callPackage ../development/python-modules/django-scopes { };
+
+  djangoql = callPackage ../development/python-modules/djangoql { };
+
+  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
+
+  django-raster = callPackage ../development/python-modules/django-raster { };
+
+  django-redis = callPackage ../development/python-modules/django-redis { };
+
+  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
+
+  django-rest-polymorphic = callPackage ../development/python-modules/django-rest-polymorphic { };
+
+  django-rest-registration = callPackage ../development/python-modules/django-rest-registration { };
+
+  django-rosetta = callPackage ../development/python-modules/django-rosetta { };
+
+  django-rq = callPackage ../development/python-modules/django-rq { };
+
+  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
+
+  djangorestframework-dataclasses = callPackage ../development/python-modules/djangorestframework-dataclasses { };
+
+  djangorestframework-camel-case = callPackage ../development/python-modules/djangorestframework-camel-case { };
+
+  djangorestframework-guardian = callPackage ../development/python-modules/djangorestframework-guardian { };
+
+  djangorestframework-guardian2 = callPackage ../development/python-modules/djangorestframework-guardian2 { };
+
+  djangorestframework-recursive = callPackage ../development/python-modules/djangorestframework-recursive { };
+
+  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
+
+  djangorestframework-stubs = callPackage ../development/python-modules/djangorestframework-stubs { };
+
+  django-reversion = callPackage ../development/python-modules/django-reversion { };
+
+  django-sekizai = callPackage ../development/python-modules/django-sekizai { };
+
+  django-sesame = callPackage ../development/python-modules/django-sesame { };
+
+  django-silk = callPackage ../development/python-modules/django-silk { };
+
+  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
+
+  django-simple-history = callPackage ../development/python-modules/django-simple-history { };
+
+  django-sites = callPackage ../development/python-modules/django-sites { };
+
+  django-sr = callPackage ../development/python-modules/django-sr { };
+
+  django-statici18n = callPackage ../development/python-modules/django-statici18n { };
+
+  django-storages = callPackage ../development/python-modules/django-storages { };
+
+  django-stubs = callPackage ../development/python-modules/django-stubs { };
+
+  django-stubs-ext = callPackage ../development/python-modules/django-stubs-ext { };
+
+  django-tables2 = callPackage ../development/python-modules/django-tables2 { };
+
+  django-tagging = callPackage ../development/python-modules/django-tagging { };
+
+  django-taggit = callPackage ../development/python-modules/django-taggit { };
+
+  django-tastypie = callPackage ../development/python-modules/django-tastypie { };
+
+  django-timezone-field = callPackage ../development/python-modules/django-timezone-field { };
+
+  django-treebeard = callPackage ../development/python-modules/django-treebeard { };
+
+  django-two-factor-auth = callPackage ../development/python-modules/django-two-factor-auth { };
+
+  django-types = callPackage ../development/python-modules/django-types { };
+
+  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield { };
+
+  django-vite = callPackage ../development/python-modules/django-vite { };
+
+  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
+
+  django-webpush = callPackage ../development/python-modules/django-webpush { };
+
+  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
+
+  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
+
+  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
+
+  djmail = callPackage ../development/python-modules/djmail { };
+
+  dj-rest-auth = callPackage ../development/python-modules/dj-rest-auth { };
+
+  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
+
+  dj-static = callPackage ../development/python-modules/dj-static { };
+
+  dkimpy = callPackage ../development/python-modules/dkimpy { };
+
+  dlib = callPackage ../development/python-modules/dlib {
+    inherit (pkgs) dlib;
+  };
+
+  dlinfo = callPackage ../development/python-modules/dlinfo { };
+
+  dllogger = callPackage ../development/python-modules/dllogger { };
+
+  dlms-cosem = callPackage ../development/python-modules/dlms-cosem { };
+
+  dlx = callPackage ../development/python-modules/dlx { };
+
+  dmenu-python = callPackage ../development/python-modules/dmenu { };
+
+  dm-env = callPackage ../development/python-modules/dm-env { };
+
+  dm-haiku = callPackage ../development/python-modules/dm-haiku { };
+
+  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
+
+  dm-tree = callPackage ../development/python-modules/dm-tree {
+    abseil-cpp = pkgs.abseil-cpp_202103.override {
+      cxxStandard = "14";
+    };
+  };
+
+  dnachisel = callPackage ../development/python-modules/dnachisel { };
+
+  dnf4 = callPackage ../development/python-modules/dnf4 { };
+
+  dnfile = callPackage ../development/python-modules/dnfile { };
+
+  dnslib = callPackage ../development/python-modules/dnslib { };
+
+  dnspython = callPackage ../development/python-modules/dnspython { };
+
+  dns-lexicon = callPackage ../development/python-modules/dns-lexicon { };
+
+  doc8 = callPackage ../development/python-modules/doc8 { };
+
+  docformatter = callPackage ../development/python-modules/docformatter { };
+
+  docker = callPackage ../development/python-modules/docker { };
+
+  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse { };
+
+  dockerpty = callPackage ../development/python-modules/dockerpty { };
+
+  docker_pycreds = callPackage ../development/python-modules/docker-pycreds { };
+
+  docker-py = callPackage ../development/python-modules/docker-py { };
+
+  dockerspawner = callPackage ../development/python-modules/dockerspawner { };
+
+  docloud = callPackage ../development/python-modules/docloud { };
+
+  docstring-to-markdown = callPackage ../development/python-modules/docstring-to-markdown { };
+
+  docstring-parser = callPackage ../development/python-modules/docstring-parser { };
+
+  docopt = callPackage ../development/python-modules/docopt { };
+
+  docopt-ng = callPackage ../development/python-modules/docopt-ng { };
+
+  docplex = callPackage ../development/python-modules/docplex { };
+
+  docrep = callPackage ../development/python-modules/docrep { };
+
+  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
+
+  docutils = callPackage ../development/python-modules/docutils { };
+
+  docx2python = callPackage ../development/python-modules/docx2python { };
+
+  docx2txt = callPackage ../development/python-modules/docx2txt { };
+
+  dodgy = callPackage ../development/python-modules/dodgy { };
+
+  dogpile-cache = callPackage ../development/python-modules/dogpile-cache { };
+
+  dogtag-pki = callPackage ../development/python-modules/dogtag-pki { };
+
+  dogtail = callPackage ../development/python-modules/dogtail { };
+
+  doit = callPackage ../development/python-modules/doit { };
+
+  doit-py = callPackage ../development/python-modules/doit-py { };
+
+  dokuwiki = callPackage ../development/python-modules/dokuwiki { };
+
+  domeneshop = callPackage ../development/python-modules/domeneshop { };
+
+  dominate = callPackage ../development/python-modules/dominate { };
+
+  doorbirdpy = callPackage ../development/python-modules/doorbirdpy { };
+
+  dopy = callPackage ../development/python-modules/dopy { };
+
+  dotty-dict = callPackage ../development/python-modules/dotty-dict { };
+
+  dot2tex = callPackage ../development/python-modules/dot2tex {
+    inherit (pkgs) graphviz;
+  };
+
+  dotwiz = callPackage ../development/python-modules/dotwiz { };
+
+  dotmap = callPackage ../development/python-modules/dotmap { };
+
+  downloader-cli = callPackage ../development/python-modules/downloader-cli { };
+
+  dparse = callPackage ../development/python-modules/dparse { };
+
+  dparse2 = callPackage ../development/python-modules/dparse2 { };
+
+  dpath = callPackage ../development/python-modules/dpath { };
+
+  dpcontracts = callPackage ../development/python-modules/dpcontracts { };
+
+  dpkt = callPackage ../development/python-modules/dpkt { };
+
+  draftjs-exporter = callPackage ../development/python-modules/draftjs-exporter { };
+
+  dragonfly = callPackage ../development/python-modules/dragonfly { };
+
+  dramatiq = callPackage ../development/python-modules/dramatiq { };
+
+  drawille = callPackage ../development/python-modules/drawille { };
+
+  drawilleplot = callPackage ../development/python-modules/drawilleplot { };
+
+  dremel3dpy = callPackage ../development/python-modules/dremel3dpy { };
+
+  drf-jwt = callPackage ../development/python-modules/drf-jwt { };
+
+  drf-nested-routers = callPackage ../development/python-modules/drf-nested-routers { };
+
+  drf-spectacular = callPackage ../development/python-modules/drf-spectacular { };
+
+  drf-spectacular-sidecar = callPackage ../development/python-modules/drf-spectacular-sidecar { };
+
+  drf-ujson2 = callPackage ../development/python-modules/drf-ujson2 { };
+
+  drf-writable-nested = callPackage ../development/python-modules/drf-writable-nested { };
+
+  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
+
+  drivelib = callPackage ../development/python-modules/drivelib { };
+
+  drms = callPackage ../development/python-modules/drms { };
+
+  dronecan = callPackage ../development/python-modules/dronecan { };
+
+  dropbox = callPackage ../development/python-modules/dropbox { };
+
+  ds-store = callPackage ../development/python-modules/ds-store { };
+
+  ds4drv = callPackage ../development/python-modules/ds4drv { };
+
+  dsinternals = callPackage ../development/python-modules/dsinternals { };
+
+  dsmr-parser = callPackage ../development/python-modules/dsmr-parser { };
+
+  dsnap = callPackage ../development/python-modules/dsnap { };
+
+  dtlssocket = callPackage ../development/python-modules/dtlssocket { };
+
+  dtschema = callPackage ../development/python-modules/dtschema { };
+
+  dtw-python = callPackage ../development/python-modules/dtw-python { };
+
+  ducc0 = callPackage ../development/python-modules/ducc0 { };
+
+  duckdb = callPackage ../development/python-modules/duckdb {
+    inherit (pkgs) duckdb;
+  };
+
+  duckdb-engine = callPackage ../development/python-modules/duckdb-engine { };
+
+  duckduckgo-search = callPackage ../development/python-modules/duckduckgo-search { };
+
+  duct-py = callPackage ../development/python-modules/duct-py { };
+
+  duecredit = callPackage ../development/python-modules/duecredit { };
+
+  duet = callPackage ../development/python-modules/duet { };
+
+  dufte = callPackage ../development/python-modules/dufte { };
+
+  dugong = callPackage ../development/python-modules/dugong { };
+
+  dulwich = callPackage ../development/python-modules/dulwich {
+    inherit (pkgs) gnupg;
+  };
+
+  dunamai = callPackage ../development/python-modules/dunamai { };
+
+  dungeon-eos = callPackage ../development/python-modules/dungeon-eos { };
+
+  duo-client = callPackage ../development/python-modules/duo-client { };
+
+  durus = callPackage ../development/python-modules/durus {  };
+
+  dvc = callPackage ../development/python-modules/dvc {  };
+
+  dvc-azure = callPackage ../development/python-modules/dvc-azure {  };
+
+  dvc-data = callPackage ../development/python-modules/dvc-data {  };
+
+  dvc-gs = callPackage ../development/python-modules/dvc-gs { };
+
+  dvc-http = callPackage ../development/python-modules/dvc-http {  };
+
+  dvc-objects = callPackage ../development/python-modules/dvc-objects {  };
+
+  dvc-render = callPackage ../development/python-modules/dvc-render {  };
+
+  dvc-s3 = callPackage ../development/python-modules/dvc-s3 { };
+
+  dvc-ssh = callPackage ../development/python-modules/dvc-ssh { };
+
+  dvc-studio-client = callPackage ../development/python-modules/dvc-studio-client {  };
+
+  dvc-task = callPackage ../development/python-modules/dvc-task {  };
+
+  dvclive = callPackage ../development/python-modules/dvclive {  };
+
+  dwdwfsapi = callPackage ../development/python-modules/dwdwfsapi { };
+
+  dyn = callPackage ../development/python-modules/dyn { };
+
+  dynalite-devices = callPackage ../development/python-modules/dynalite-devices { };
+
+  dynd = callPackage ../development/python-modules/dynd { };
+
+  e3-core = callPackage ../development/python-modules/e3-core { };
+
+  eagle100 = callPackage ../development/python-modules/eagle100 { };
+
+  easydict = callPackage ../development/python-modules/easydict { };
+
+  easyenergy = callPackage ../development/python-modules/easyenergy { };
+
+  easygui = callPackage ../development/python-modules/easygui { };
+
+  easyocr = callPackage ../development/python-modules/easyocr { };
+
+  easyprocess = callPackage ../development/python-modules/easyprocess { };
+
+  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
+
+  easywatch = callPackage ../development/python-modules/easywatch { };
+
+  ebaysdk = callPackage ../development/python-modules/ebaysdk { };
+
+  ebooklib = callPackage ../development/python-modules/ebooklib { };
+
+  ec2instanceconnectcli = callPackage ../tools/virtualization/ec2instanceconnectcli { };
+
+  eccodes = toPythonModule (pkgs.eccodes.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  ecdsa = callPackage ../development/python-modules/ecdsa { };
+
+  echo = callPackage ../development/python-modules/echo { };
+
+  ecoaliface = callPackage ../development/python-modules/ecoaliface { };
+
+  ecos = callPackage ../development/python-modules/ecos { };
+
+  ecpy = callPackage ../development/python-modules/ecpy { };
+
+  ecs-logging =  callPackage ../development/python-modules/ecs-logging { };
+
+  ed25519 = callPackage ../development/python-modules/ed25519 { };
+
+  ed25519-blake2b = callPackage ../development/python-modules/ed25519-blake2b { };
+
+  edalize = callPackage ../development/python-modules/edalize { };
+
+  editables = callPackage ../development/python-modules/editables { };
+
+  editdistance = callPackage ../development/python-modules/editdistance { };
+
+  editdistance-s = callPackage ../development/python-modules/editdistance-s { };
+
+  editorconfig = callPackage ../development/python-modules/editorconfig { };
+
+  edk2-pytool-library = callPackage ../development/python-modules/edk2-pytool-library { };
+
+  edlib = callPackage ../development/python-modules/edlib {
+    inherit (pkgs) edlib;
+  };
+
+  edward = callPackage ../development/python-modules/edward { };
+
+  effdet = callPackage ../development/python-modules/effdet { };
+
+  effect = callPackage ../development/python-modules/effect { };
+
+  eggdeps = callPackage ../development/python-modules/eggdeps { };
+
+  eigenpy = toPythonModule (callPackage ../development/python-modules/eigenpy { });
+
+  einops = callPackage ../development/python-modules/einops { };
+
+  eiswarnung = callPackage ../development/python-modules/eiswarnung { };
+
+  elgato = callPackage ../development/python-modules/elgato { };
+
+  elkm1-lib = callPackage ../development/python-modules/elkm1-lib { };
+
+  elastic-apm = callPackage ../development/python-modules/elastic-apm { };
+
+  elastic-transport = callPackage ../development/python-modules/elastic-transport { };
+
+  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
+
+  elasticsearch8 = callPackage ../development/python-modules/elasticsearch8 { };
+
+  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
+
+  elasticsearchdsl = self.elasticsearch-dsl;
+
+  elegy = callPackage ../development/python-modules/elegy { };
+
+  elementpath = callPackage ../development/python-modules/elementpath { };
+
+  elevate = callPackage ../development/python-modules/elevate { };
+
+  eliot = callPackage ../development/python-modules/eliot { };
+
+  eliqonline = callPackage ../development/python-modules/eliqonline { };
+
+  elmax = callPackage ../development/python-modules/elmax { };
+
+  elmax-api = callPackage ../development/python-modules/elmax-api { };
+
+  emailthreads = callPackage ../development/python-modules/emailthreads { };
+
+  email-validator = callPackage ../development/python-modules/email-validator { };
+
+  embedding-reader = callPackage ../development/python-modules/embedding-reader { };
+
+  embrace = callPackage ../development/python-modules/embrace { };
+
+  emborg = callPackage ../development/python-modules/emborg { };
+
+  emcee = callPackage ../development/python-modules/emcee { };
+
+  emv = callPackage ../development/python-modules/emv { };
+
+  emoji = callPackage ../development/python-modules/emoji { };
+
+  empty-files = callPackage ../development/python-modules/empty-files { };
+
+  empy = callPackage ../development/python-modules/empy { };
+
+  emulated-roku = callPackage ../development/python-modules/emulated-roku { };
+
+  enaml = callPackage ../development/python-modules/enaml { };
+
+  enamlx = callPackage ../development/python-modules/enamlx { };
+
+  encodec = callPackage ../development/python-modules/encodec { };
+
+  energyflip-client = callPackage ../development/python-modules/energyflip-client { };
+
+  energyflow = callPackage ../development/python-modules/energyflow { };
+
+  energyzero =  callPackage ../development/python-modules/energyzero { };
+
+  enlighten = callPackage ../development/python-modules/enlighten { };
+
+  enocean = callPackage ../development/python-modules/enocean { };
+
+  enochecker-core = callPackage ../development/python-modules/enochecker-core { };
+
+  enrich = callPackage ../development/python-modules/enrich { };
+
+  entrance = callPackage ../development/python-modules/entrance {
+    routerFeatures = false;
+  };
+
+  entrance-with-router-features = callPackage ../development/python-modules/entrance {
+    routerFeatures = true;
+  };
+
+  entry-points-txt = callPackage ../development/python-modules/entry-points-txt { };
+
+  entrypoint2 = callPackage ../development/python-modules/entrypoint2 { };
+
+  entrypoints = callPackage ../development/python-modules/entrypoints { };
+
+  enturclient = callPackage ../development/python-modules/enturclient { };
+
+  enum34 = callPackage ../development/python-modules/enum34 { };
+
+  enum-compat = callPackage ../development/python-modules/enum-compat { };
+
+  env-canada = callPackage ../development/python-modules/env-canada { };
+
+  environmental-override = callPackage ../development/python-modules/environmental-override { };
+
+  environs = callPackage ../development/python-modules/environs { };
+
+  envisage = callPackage ../development/python-modules/envisage { };
+
+  envs = callPackage ../development/python-modules/envs { };
+
+  envoy-reader = callPackage ../development/python-modules/envoy-reader { };
+
+  envoy-utils = callPackage ../development/python-modules/envoy-utils { };
+
+  enzyme = callPackage ../development/python-modules/enzyme { };
+
+  epc = callPackage ../development/python-modules/epc { };
+
+  ephem = callPackage ../development/python-modules/ephem { };
+
+  ephemeral-port-reserve = callPackage ../development/python-modules/ephemeral-port-reserve { };
+
+  epson-projector = callPackage ../development/python-modules/epson-projector { };
+
+  equinox = callPackage ../development/python-modules/equinox { };
+
+  eradicate = callPackage ../development/python-modules/eradicate { };
+
+  es-client = callPackage ../development/python-modules/es-client { };
+
+  esig = callPackage ../development/python-modules/esig { };
+
+  espeak-phonemizer = callPackage ../development/python-modules/espeak-phonemizer { };
+
+  esphome-dashboard-api = callPackage ../development/python-modules/esphome-dashboard-api { };
+
+  esprima = callPackage ../development/python-modules/esprima { };
+
+  escapism = callPackage ../development/python-modules/escapism { };
+
+  etcd = callPackage ../development/python-modules/etcd { };
+
+  etcd3 = callPackage ../development/python-modules/etcd3 {
+    inherit (pkgs) etcd;
+  };
+
+  ete3 = callPackage ../development/python-modules/ete3 { };
+
+  etelemetry = callPackage ../development/python-modules/etelemetry { };
+
+  etebase = callPackage ../development/python-modules/etebase {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+  };
+
+  etebase-server = callPackage ../servers/etebase { };
+
+  eternalegypt = callPackage ../development/python-modules/eternalegypt { };
+
+  etesync = callPackage ../development/python-modules/etesync { };
+
+  eth-abi = callPackage ../development/python-modules/eth-abi { };
+
+  eth-account = callPackage ../development/python-modules/eth-account { };
+
+  eth-hash = callPackage ../development/python-modules/eth-hash { };
+
+  eth-keyfile = callPackage ../development/python-modules/eth-keyfile { };
+
+  eth-keys = callPackage ../development/python-modules/eth-keys { };
+
+  eth-rlp = callPackage ../development/python-modules/eth-rlp { };
+
+  eth-typing = callPackage ../development/python-modules/eth-typing { };
+
+  eth-utils = callPackage ../development/python-modules/eth-utils { };
+
+  etils = callPackage ../development/python-modules/etils { };
+
+  etuples = callPackage ../development/python-modules/etuples { };
+
+  et-xmlfile = callPackage ../development/python-modules/et-xmlfile { };
+
+  euclid3 = callPackage ../development/python-modules/euclid3 { };
+
+  eufylife-ble-client = callPackage ../development/python-modules/eufylife-ble-client { };
+
+  evaluate = callPackage ../development/python-modules/evaluate { };
+
+  evdev = callPackage ../development/python-modules/evdev { };
+
+  eve = callPackage ../development/python-modules/eve { };
+
+  eventlet = callPackage ../development/python-modules/eventlet { };
+
+  events = callPackage ../development/python-modules/events { };
+
+  evernote = callPackage ../development/python-modules/evernote { };
+
+  evohome-async = callPackage ../development/python-modules/evohome-async { };
+
+  evtx = callPackage ../development/python-modules/evtx { };
+
+  ewmh = callPackage ../development/python-modules/ewmh { };
+
+  example-robot-data = toPythonModule (pkgs.example-robot-data.override {
+    pythonSupport = true;
+    python3Packages = self;
+  });
+
+  exdown = callPackage ../development/python-modules/exdown { };
+
+  exceptiongroup = callPackage ../development/python-modules/exceptiongroup { };
+
+  exchangelib = callPackage ../development/python-modules/exchangelib { };
+
+  execnb = callPackage ../development/python-modules/execnb { };
+
+  execnet = callPackage ../development/python-modules/execnet { };
+
+  executing = callPackage ../development/python-modules/executing { };
+
+  executor = callPackage ../development/python-modules/executor { };
+
+  exif = callPackage ../development/python-modules/exif { };
+
+  exifread = callPackage ../development/python-modules/exifread { };
+
+  expandvars = callPackage ../development/python-modules/expandvars { };
+
+  expects = callPackage ../development/python-modules/expects { };
+
+  expecttest = callPackage ../development/python-modules/expecttest { };
+
+  experiment-utilities = callPackage ../development/python-modules/experiment-utilities { };
+
+  expiring-dict = callPackage ../development/python-modules/expiring-dict { };
+
+  expiringdict = callPackage ../development/python-modules/expiringdict { };
+
+  explorerscript = callPackage ../development/python-modules/explorerscript { };
+
+  exrex = callPackage ../development/python-modules/exrex { };
+
+  exitcode = callPackage ../development/python-modules/exitcode { };
+
+  extractcode = callPackage ../development/python-modules/extractcode { };
+
+  extractcode-7z = callPackage ../development/python-modules/extractcode/7z.nix {
+    inherit (pkgs) p7zip;
+  };
+
+  extractcode-libarchive = callPackage ../development/python-modules/extractcode/libarchive.nix {
+    inherit (pkgs)
+      libarchive
+      libb2
+      bzip2
+      expat
+      lz4
+      xz
+      zlib
+      zstd;
+  };
+
+  extras = callPackage ../development/python-modules/extras { };
+
+  extruct = callPackage ../development/python-modules/extruct { };
+
+  eyeD3 = callPackage ../development/python-modules/eyed3 { };
+
+  ezdxf = callPackage ../development/python-modules/ezdxf { };
+
+  ezyrb = callPackage ../development/python-modules/ezyrb { };
+
+  f5-icontrol-rest = callPackage ../development/python-modules/f5-icontrol-rest { };
+
+  f5-sdk = callPackage ../development/python-modules/f5-sdk { };
+
+  f90nml = callPackage ../development/python-modules/f90nml { };
+
+  fabric = callPackage ../development/python-modules/fabric { };
+
+  faadelays = callPackage ../development/python-modules/faadelays { };
+
+  fabulous = callPackage ../development/python-modules/fabulous { };
+
+  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
+
+  face = callPackage ../development/python-modules/face { };
+
+  facedancer = callPackage ../development/python-modules/facedancer { };
+
+  face-recognition = callPackage ../development/python-modules/face-recognition { };
+
+  face-recognition-models = callPackage ../development/python-modules/face-recognition/models.nix { };
+
+  factory-boy = callPackage ../development/python-modules/factory-boy { };
+
+  fairscale = callPackage ../development/python-modules/fairscale { };
+
+  fairseq = callPackage ../development/python-modules/fairseq { };
+
+  faiss = toPythonModule (pkgs.faiss.override {
+    pythonSupport = true;
+    pythonPackages = self;
+  });
+
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+
+  faker = callPackage ../development/python-modules/faker { };
+
+  fakeredis = callPackage ../development/python-modules/fakeredis { };
+
+  falcon = callPackage ../development/python-modules/falcon { };
+
+  faraday-agent-parameters-types = callPackage ../development/python-modules/faraday-agent-parameters-types { };
+
+  faraday-plugins = callPackage ../development/python-modules/faraday-plugins { };
+
+  farama-notifications = callPackage ../development/python-modules/farama-notifications { };
+
+  farm-haystack = callPackage ../development/python-modules/farm-haystack { };
+
+  fastai = callPackage ../development/python-modules/fastai { };
+
+  fastapi = callPackage ../development/python-modules/fastapi { };
+
+  fastapi-mail = callPackage ../development/python-modules/fastapi-mail { };
+
+  fast-histogram = callPackage ../development/python-modules/fast-histogram { };
+
+  fastavro = callPackage ../development/python-modules/fastavro { };
+
+  fastbencode = callPackage ../development/python-modules/fastbencode { };
+
+  fastcache = callPackage ../development/python-modules/fastcache { };
+
+  fastcore = callPackage ../development/python-modules/fastcore { };
+
+  fastdiff = callPackage ../development/python-modules/fastdiff { };
+
+  fastdownload = callPackage ../development/python-modules/fastdownload { };
+
+  fastdtw = callPackage ../development/python-modules/fastdtw { };
+
+  fastecdsa = callPackage ../development/python-modules/fastecdsa { };
+
+  fastembed = callPackage ../development/python-modules/fastembed { };
+
+  fasteners = callPackage ../development/python-modules/fasteners { };
+
+  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
+
+  faster-fifo = callPackage ../development/python-modules/faster-fifo { };
+
+  faster-whisper = callPackage ../development/python-modules/faster-whisper { };
+
+  fastimport = callPackage ../development/python-modules/fastimport { };
+
+  fastjet = toPythonModule (pkgs.fastjet.override {
+    withPython = true;
+    inherit (self) python;
+  });
+
+  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
+
+  fastnlo_toolkit = toPythonModule (pkgs.fastnlo_toolkit.override {
+    withPython = true;
+    inherit (self) python;
+  });
+
+  fastnumbers = callPackage ../development/python-modules/fastnumbers { };
+
+  fastpair = callPackage ../development/python-modules/fastpair { };
+
+  fastparquet = callPackage ../development/python-modules/fastparquet { };
+
+  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 { };
+
+  fastprogress = callPackage ../development/python-modules/fastprogress { };
+
+  fastrlock = callPackage ../development/python-modules/fastrlock { };
+
+  fasttext = callPackage ../development/python-modules/fasttext { };
+
+  fasttext-predict = callPackage ../development/python-modules/fasttext-predict { };
+
+  faust-cchardet = callPackage ../development/python-modules/faust-cchardet { };
+
+  favicon = callPackage ../development/python-modules/favicon { };
+
+  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
+
+  fe25519 = callPackage ../development/python-modules/fe25519 { };
+
+  feedgen = callPackage ../development/python-modules/feedgen { };
+
+  feedgenerator = callPackage ../development/python-modules/feedgenerator {
+    inherit (pkgs) glibcLocales;
+  };
+
+  feedparser = callPackage ../development/python-modules/feedparser { };
+
+  fenics = callPackage ../development/python-modules/fenics {
+    hdf5 = pkgs.hdf5_1_10;
+  };
+
+  ffcv = callPackage ../development/python-modules/ffcv { };
+
+  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
+
+  ffmpeg-progress-yield = callPackage ../development/python-modules/ffmpeg-progress-yield { };
+
+  ffmpy = callPackage ../development/python-modules/ffmpy { };
+
+  fiblary3-fork = callPackage ../development/python-modules/fiblary3-fork { };
+
+  fido2 = callPackage ../development/python-modules/fido2 { };
+
+  fields = callPackage ../development/python-modules/fields { };
+
+  file-read-backwards = callPackage ../development/python-modules/file-read-backwards { };
+
+  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
+
+  filebytes = callPackage ../development/python-modules/filebytes { };
+
+  filecheck = callPackage ../development/python-modules/filecheck { };
+
+  filedepot = callPackage ../development/python-modules/filedepot { };
+
+  filelock = callPackage ../development/python-modules/filelock { };
+
+  filetype = callPackage ../development/python-modules/filetype { };
+
+  filterpy = callPackage ../development/python-modules/filterpy { };
+
+  finalfusion = callPackage ../development/python-modules/finalfusion { };
+
+  findimports = callPackage ../development/python-modules/findimports { };
+
+  find-libpython = callPackage ../development/python-modules/find-libpython { };
+
+  findpython = callPackage ../development/python-modules/findpython { };
+
+  fingerprints = callPackage ../development/python-modules/fingerprints { };
+
+  finitude = callPackage ../development/python-modules/finitude { };
+
+  fints = callPackage ../development/python-modules/fints { };
+
+  finvizfinance = callPackage ../development/python-modules/finvizfinance { };
+
+  fiona = callPackage ../development/python-modules/fiona { };
+
+  fipy = callPackage ../development/python-modules/fipy { };
+
+  fire = callPackage ../development/python-modules/fire { };
+
+  firebase-messaging = callPackage ../development/python-modules/firebase-messaging { };
+
+  fireflyalgorithm = callPackage ../development/python-modules/fireflyalgorithm { };
+
+  firetv = callPackage ../development/python-modules/firetv { };
+
+  first = callPackage ../development/python-modules/first { };
+
+  fitbit = callPackage ../development/python-modules/fitbit { };
+
+  fivem-api = callPackage ../development/python-modules/fivem-api { };
+
+  fixerio = callPackage ../development/python-modules/fixerio { };
+
+  fixtures = callPackage ../development/python-modules/fixtures { };
+
+  fjaraskupan = callPackage ../development/python-modules/fjaraskupan { };
+
+  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
+
+  flake8-bugbear = callPackage ../development/python-modules/flake8-bugbear { };
+
+  flake8 = callPackage ../development/python-modules/flake8 { };
+
+  flake8-length = callPackage ../development/python-modules/flake8-length { };
+
+  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
+
+  flake8-docstrings = callPackage ../development/python-modules/flake8-docstrings { };
+
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+
+  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
+
+  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
+
+  flaky = callPackage ../development/python-modules/flaky { };
+
+  flametree = callPackage ../development/python-modules/flametree { };
+
+  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
+
+  flasgger = callPackage ../development/python-modules/flasgger { };
+
+  flashtext = callPackage ../development/python-modules/flashtext { };
+
+  flask-admin = callPackage ../development/python-modules/flask-admin { };
+
+  flask-api = callPackage ../development/python-modules/flask-api { };
+
+  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
+
+  flask-assets = callPackage ../development/python-modules/flask-assets { };
+
+  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
+
+  flask-babel = callPackage ../development/python-modules/flask-babel { };
+
+  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
+
+  flask-basicauth = callPackage ../development/python-modules/flask-basicauth { };
+
+  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
+
+  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
+
+  flask-caching = callPackage ../development/python-modules/flask-caching { };
+
+  flask = callPackage ../development/python-modules/flask { };
+
+  flask-common = callPackage ../development/python-modules/flask-common { };
+
+  flask-compress = callPackage ../development/python-modules/flask-compress { };
+
+  flask-cors = callPackage ../development/python-modules/flask-cors { };
+
+  flask-dramatiq = callPackage ../development/python-modules/flask-dramatiq { };
+
+  flask-elastic = callPackage ../development/python-modules/flask-elastic { };
+
+  flask-expects-json = callPackage ../development/python-modules/flask-expects-json { };
+
+  flask-gravatar = callPackage ../development/python-modules/flask-gravatar { };
+
+  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
+
+  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
+
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
+
+  flask-login = callPackage ../development/python-modules/flask-login { };
+
+  flask-mail = callPackage ../development/python-modules/flask-mail { };
+
+  flask-mailman = callPackage ../development/python-modules/flask-mailman { };
+
+  flask-marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
+
+  flask-migrate = callPackage ../development/python-modules/flask-migrate { };
+
+  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
+
+  flask-mysqldb = callPackage ../development/python-modules/flask-mysqldb { };
+
+  flask-openid = callPackage ../development/python-modules/flask-openid { };
+
+  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
+
+  flask-paranoid = callPackage ../development/python-modules/flask-paranoid { };
+
+  flask-principal = callPackage ../development/python-modules/flask-principal { };
+
+  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
+
+  flask-restful = callPackage ../development/python-modules/flask-restful { };
+
+  flask-restx = callPackage ../development/python-modules/flask-restx { };
+
+  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
+
+  flask-script = callPackage ../development/python-modules/flask-script { };
+
+  flask-seasurf = callPackage ../development/python-modules/flask-seasurf { };
+
+  flask-session = callPackage ../development/python-modules/flask-session { };
+
+  flask-session-captcha = callPackage ../development/python-modules/flask-session-captcha { };
+
+  flask-sessionstore = callPackage ../development/python-modules/flask-sessionstore { };
+
+  flask-security-too = callPackage ../development/python-modules/flask-security-too { };
+
+  flask-silk = callPackage ../development/python-modules/flask-silk { };
+
+  flask-sock = callPackage ../development/python-modules/flask-sock { };
+
+  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
+
+  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
+
+  flask-sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
+
+  flask-sslify = callPackage ../development/python-modules/flask-sslify { };
+
+  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
+
+  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
+
+  flask-talisman = callPackage ../development/python-modules/flask-talisman { };
+
+  flask-testing = callPackage ../development/python-modules/flask-testing { };
+
+  flask-themes2 = callPackage ../development/python-modules/flask-themes2 { };
+
+  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
+
+  flask-wtf = callPackage ../development/python-modules/flask-wtf { };
+
+  flatbuffers = callPackage ../development/python-modules/flatbuffers {
+    inherit (pkgs) flatbuffers;
+  };
+
+  flatdict = callPackage ../development/python-modules/flatdict { };
+
+  flatten-dict = callPackage ../development/python-modules/flatten-dict { };
+
+  flax = callPackage ../development/python-modules/flax { };
+
+  fleep = callPackage ../development/python-modules/fleep { };
+
+  flet = callPackage ../development/python-modules/flet { };
+
+  flet-core = callPackage ../development/python-modules/flet-core { };
+
+  flet-runtime = callPackage ../development/python-modules/flet-runtime { };
+
+  flexmock = callPackage ../development/python-modules/flexmock { };
+
+  flickrapi = callPackage ../development/python-modules/flickrapi { };
+
+  flipr-api = callPackage ../development/python-modules/flipr-api { };
+
+  flit = callPackage ../development/python-modules/flit { };
+
+  flit-core = callPackage ../development/python-modules/flit-core { };
+
+  flit-scm = callPackage ../development/python-modules/flit-scm { };
+
+  floret = callPackage ../development/python-modules/floret { };
+
+  flow-record = callPackage ../development/python-modules/flow-record { };
+
+  flower = callPackage ../development/python-modules/flower { };
+
+  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
+
+  fluent-logger = callPackage ../development/python-modules/fluent-logger { };
+
+  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
+
+  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
+
+  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
+
+  flux-led = callPackage ../development/python-modules/flux-led { };
+
+  flyingsquid = callPackage ../development/python-modules/flyingsquid { };
+
+  flynt = callPackage ../development/python-modules/flynt { };
+
+  fn = callPackage ../development/python-modules/fn { };
+
+  fnv-hash-fast = callPackage ../development/python-modules/fnv-hash-fast { };
+
+  fnvhash = callPackage ../development/python-modules/fnvhash { };
+
+  folium = callPackage ../development/python-modules/folium { };
+
+  fontawesomefree = callPackage ../development/python-modules/fontawesomefree { };
+
+  fontbakery = callPackage ../development/python-modules/fontbakery { };
+
+  fontfeatures = callPackage ../development/python-modules/fontfeatures { };
+
+  fontforge = toPythonModule (pkgs.fontforge.override {
+    withPython = true;
+    inherit python;
+  });
+
+  fontmath = callPackage ../development/python-modules/fontmath { };
+
+  fontparts = callPackage ../development/python-modules/fontparts { };
+
+  fontpens = callPackage ../development/python-modules/fontpens { };
+
+  fonttools = callPackage ../development/python-modules/fonttools { };
+
+  fontmake = callPackage ../development/python-modules/fontmake { };
+
+  font-v = callPackage ../development/python-modules/font-v { };
+
+  skia-pathops = callPackage ../development/python-modules/skia-pathops {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL;
+  };
+
+  oelint-parser = callPackage ../development/python-modules/oelint-parser { };
+
+  openllm = callPackage ../development/python-modules/openllm {
+    openai-triton = self.openai-triton-cuda;
+  };
+
+  openllm-client = callPackage ../development/python-modules/openllm-client { };
+
+  openllm-core = callPackage ../development/python-modules/openllm-core { };
+
+  openstep-plist = callPackage ../development/python-modules/openstep-plist { };
+
+  glyphsets = callPackage ../development/python-modules/glyphsets { };
+
+  glyphslib = callPackage ../development/python-modules/glyphslib { };
+
+  glyphtools = callPackage ../development/python-modules/glyphtools { };
+
+  foobot-async = callPackage ../development/python-modules/foobot-async { };
+
+  foolscap = callPackage ../development/python-modules/foolscap { };
+
+  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
+
+  fordpass = callPackage ../development/python-modules/fordpass { };
+
+  forecast-solar = callPackage ../development/python-modules/forecast-solar { };
+
+  formbox = callPackage ../development/python-modules/formbox { };
+
+  formulae = callPackage ../development/python-modules/formulae { };
+
+  fortiosapi = callPackage ../development/python-modules/fortiosapi { };
+
+  formencode = callPackage ../development/python-modules/formencode { };
+
+  formulaic = callPackage ../development/python-modules/formulaic { };
+
+  foundationdb71 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb71; };
+
+  fountains = callPackage ../development/python-modules/fountains { };
+
+  foxdot = callPackage ../development/python-modules/foxdot { };
+
+  fpdf = callPackage ../development/python-modules/fpdf { };
+
+  fpdf2 = callPackage ../development/python-modules/fpdf2 { };
+
+  fpylll = callPackage ../development/python-modules/fpylll { };
+
+  fpyutils = callPackage ../development/python-modules/fpyutils { };
+
+  fqdn = callPackage ../development/python-modules/fqdn { };
+
+  freebox-api = callPackage ../development/python-modules/freebox-api { };
+
+  freetype-py = callPackage ../development/python-modules/freetype-py { };
+
+  freezegun = callPackage ../development/python-modules/freezegun { };
+
+  frida-python = callPackage ../development/python-modules/frida-python { };
+
+  frigidaire = callPackage ../development/python-modules/frigidaire { };
+
+  frilouz = callPackage ../development/python-modules/frilouz { };
+
+  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
+
+  fritzprofiles = callPackage ../development/python-modules/fritzprofiles { };
+
+  frozendict = callPackage ../development/python-modules/frozendict { };
+
+  frozenlist = callPackage ../development/python-modules/frozenlist { };
+
+  fs = callPackage ../development/python-modules/fs { };
+
+  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
+
+  fschat = callPackage ../development/python-modules/fschat { };
+
+  fsspec = callPackage ../development/python-modules/fsspec { };
+
+  fst-pso = callPackage ../development/python-modules/fst-pso { };
+
+  ftfy = callPackage ../development/python-modules/ftfy { };
+
+  ftputil = callPackage ../development/python-modules/ftputil { };
+
+  fugashi = callPackage ../development/python-modules/fugashi { };
+
+  func-timeout = callPackage ../development/python-modules/func-timeout { };
+
+  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
+
+  funcsigs = callPackage ../development/python-modules/funcsigs { };
+
+  functiontrace = callPackage ../development/python-modules/functiontrace { };
+
+  functools32 = callPackage ../development/python-modules/functools32 { };
+
+  funcy = callPackage ../development/python-modules/funcy { };
+
+  funsor = callPackage ../development/python-modules/funsor { };
+
+  furl = callPackage ../development/python-modules/furl { };
+
+  furo = callPackage ../development/python-modules/furo { };
+
+  fuse = callPackage ../development/python-modules/fuse-python {
+    inherit (pkgs) fuse;
+  };
+
+  fusepy = callPackage ../development/python-modules/fusepy { };
+
+  future = callPackage ../development/python-modules/future { };
+
+  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
+
+  future-typing = callPackage ../development/python-modules/future-typing { };
+
+  fuzzyfinder = callPackage ../development/python-modules/fuzzyfinder { };
+
+  fuzzytm = callPackage ../development/python-modules/fuzzytm { };
+
+  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
+
+  fvcore = callPackage ../development/python-modules/fvcore { };
+
+  fvs = callPackage ../development/python-modules/fvs { };
+
+  fx2 = callPackage ../development/python-modules/fx2 { };
+
+  g2pkk = callPackage ../development/python-modules/g2pkk { };
+
+  galario = toPythonModule (pkgs.galario.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  galois = callPackage ../development/python-modules/galois { };
+
+  gamble = callPackage ../development/python-modules/gamble { };
+
+  gaphas = callPackage ../development/python-modules/gaphas { };
+
+  garminconnect-aio = callPackage ../development/python-modules/garminconnect-aio { };
+
+  garminconnect = callPackage ../development/python-modules/garminconnect { };
+
+  garth = callPackage ../development/python-modules/garth { };
+
+  gassist-text = callPackage ../development/python-modules/gassist-text { };
+
+  gast = callPackage ../development/python-modules/gast { };
+
+  gatt = callPackage ../development/python-modules/gatt { };
+
+  gattlib = callPackage ../development/python-modules/gattlib {
+    inherit (pkgs) bluez glib pkg-config;
+  };
+
+  gb-io = callPackage ../development/python-modules/gb-io { };
+
+  gbinder-python = callPackage ../development/python-modules/gbinder-python { };
+
+  gbulb = callPackage ../development/python-modules/gbulb { };
+
+  gcal-sync = callPackage ../development/python-modules/gcal-sync { };
+
+  gcodepy = callPackage ../development/python-modules/gcodepy { };
+
+  gcovr = callPackage ../development/python-modules/gcovr { };
+
+  gcs-oauth2-boto-plugin = callPackage ../development/python-modules/gcs-oauth2-boto-plugin { };
+
+  gcsa = callPackage ../development/python-modules/gcsa { };
+
+  gcsfs = callPackage ../development/python-modules/gcsfs { };
+
+  gdal = toPythonModule (pkgs.gdal.override { python3 = python; });
+
+  gdata = callPackage ../development/python-modules/gdata { };
+
+  gdcm = toPythonModule (pkgs.gdcm.override {
+    inherit (self) python;
+    enablePython = true;
+  });
+
+  gdown = callPackage ../development/python-modules/gdown { };
+
+  ge25519 = callPackage ../development/python-modules/ge25519 { };
+
+  geant4 = toPythonModule (pkgs.geant4.override {
+    enablePython = true;
+    python3 = python;
+  });
+
+  geeknote = callPackage ../development/python-modules/geeknote { };
+
+  gehomesdk = callPackage ../development/python-modules/gehomesdk { };
+
+  gekitchen = callPackage ../development/python-modules/gekitchen { };
+
+  gekko = callPackage ../development/python-modules/gekko { };
+
+  gemfileparser = callPackage ../development/python-modules/gemfileparser { };
+
+  gemfileparser2 = callPackage ../development/python-modules/gemfileparser2 { };
+
+  genanki = callPackage ../development/python-modules/genanki { };
+
+  generic = callPackage ../development/python-modules/generic { };
+
+  geniushub-client = callPackage ../development/python-modules/geniushub-client { };
+
+  genome-collector = callPackage ../development/python-modules/genome-collector { };
+
+  genpy = callPackage ../development/python-modules/genpy { };
+
+  genshi = callPackage ../development/python-modules/genshi { };
+
+  gensim = callPackage ../development/python-modules/gensim { };
+
+  gentools = callPackage ../development/python-modules/gentools { };
+
+  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
+
+  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
+
+  geocachingapi = callPackage ../development/python-modules/geocachingapi { };
+
+  geographiclib = callPackage ../development/python-modules/geographiclib { };
+
+  geoip2 = callPackage ../development/python-modules/geoip2 { };
+
+  geoip = callPackage ../development/python-modules/geoip {
+    libgeoip = pkgs.geoip;
+  };
+
+  geojson = callPackage ../development/python-modules/geojson { };
+
+  geojson-client = callPackage ../development/python-modules/geojson-client { };
+
+  geomet = callPackage ../development/python-modules/geomet { };
+
+  geometric = callPackage ../development/python-modules/geometric { };
+
+  geopandas = callPackage ../development/python-modules/geopandas { };
+
+  geopy = callPackage ../development/python-modules/geopy { };
+
+  georss-client = callPackage ../development/python-modules/georss-client { };
+
+  georss-generic-client = callPackage ../development/python-modules/georss-generic-client { };
+
+  georss-ign-sismologia-client = callPackage ../development/python-modules/georss-ign-sismologia-client { };
+
+  georss-ingv-centro-nazionale-terremoti-client = callPackage ../development/python-modules/georss-ingv-centro-nazionale-terremoti-client { };
+
+  georss-nrcan-earthquakes-client = callPackage ../development/python-modules/georss-nrcan-earthquakes-client { };
+
+  georss-qld-bushfire-alert-client = callPackage ../development/python-modules/georss-qld-bushfire-alert-client { };
+
+  georss-tfs-incidents-client = callPackage ../development/python-modules/georss-tfs-incidents-client { };
+
+  georss-wa-dfes-client = callPackage ../development/python-modules/georss-wa-dfes-client { };
+
+  getjump = callPackage ../development/python-modules/getjump { };
+
+  getmac = callPackage ../development/python-modules/getmac { };
+
+  getkey = callPackage ../development/python-modules/getkey { };
+
+  get-video-properties = callPackage ../development/python-modules/get-video-properties { };
+
+  gevent = callPackage ../development/python-modules/gevent { };
+
+  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
+
+  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
+
+  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
+
+  gflags = callPackage ../development/python-modules/gflags { };
+
+  gflanguages = callPackage ../development/python-modules/gflanguages { };
+
+  ghapi = callPackage ../development/python-modules/ghapi { };
+
+  ghdiff = callPackage ../development/python-modules/ghdiff { };
+
+  ghp-import = callPackage ../development/python-modules/ghp-import { };
+
+  ghrepo-stats = callPackage ../development/python-modules/ghrepo-stats { };
+
+  gibberish-detector = callPackage ../development/python-modules/gibberish-detector { };
+
+  gidgethub = callPackage ../development/python-modules/gidgethub { };
+
+  gin-config = callPackage ../development/python-modules/gin-config { };
+
+  gios = callPackage ../development/python-modules/gios { };
+
+  gipc = callPackage ../development/python-modules/gipc { };
+
+  gistyc = callPackage ../development/python-modules/gistyc { };
+
+  git-annex-adapter =
+    callPackage ../development/python-modules/git-annex-adapter { };
+
+  git-filter-repo = callPackage ../development/python-modules/git-filter-repo { };
+
+  git-revise = callPackage ../development/python-modules/git-revise { };
+
+  git-sweep = callPackage ../development/python-modules/git-sweep { };
+
+  git-url-parse = callPackage ../development/python-modules/git-url-parse { };
+
+  gitdb = callPackage ../development/python-modules/gitdb { };
+
+  githubkit = callPackage ../development/python-modules/githubkit { };
+
+  github-to-sqlite = callPackage ../development/python-modules/github-to-sqlite { };
+
+  github-webhook = callPackage ../development/python-modules/github-webhook { };
+
+  github3_py = callPackage ../development/python-modules/github3_py { };
+
+  gitignore-parser = callPackage ../development/python-modules/gitignore-parser { };
+
+  gitlike-commands = callPackage ../development/python-modules/gitlike-commands { };
+
+  gitpython = callPackage ../development/python-modules/gitpython { };
+
+  glad =  callPackage ../development/python-modules/glad { };
+
+  glad2 =  callPackage ../development/python-modules/glad2 { };
+
+  glances-api = callPackage ../development/python-modules/glances-api { };
+
+  glcontext = callPackage ../development/python-modules/glcontext { };
+
+  glean-parser = callPackage ../development/python-modules/glean-parser { };
+
+  glean-sdk = callPackage ../development/python-modules/glean-sdk {
+    inherit (pkgs) lmdb;
+  };
+
+  glfw = callPackage ../development/python-modules/glfw { };
+
+  glob2 = callPackage ../development/python-modules/glob2 { };
+
+  globre = callPackage ../development/python-modules/globre { };
+
+  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
+
+  glom = callPackage ../development/python-modules/glom { };
+
+  glueviz = callPackage ../development/python-modules/glueviz { };
+
+  glymur = callPackage ../development/python-modules/glymur { };
+
+  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
+
+  gmpy = callPackage ../development/python-modules/gmpy { };
+
+  gmsh = toPythonModule (callPackage ../applications/science/math/gmsh {
+    enablePython = true;
+  });
+
+  gntp = callPackage ../development/python-modules/gntp { };
+
+  gnureadline = callPackage ../development/python-modules/gnureadline { };
+
+  goalzero = callPackage ../development/python-modules/goalzero { };
+
+  gocardless-pro = callPackage ../development/python-modules/gocardless-pro { };
+
+  goobook = callPackage ../development/python-modules/goobook { };
+
+  goocalendar = callPackage ../development/python-modules/goocalendar { };
+
+  goodwe = callPackage ../development/python-modules/goodwe { };
+
+  google = callPackage ../development/python-modules/google { };
+
+  google-ai-generativelanguage = callPackage ../development/python-modules/google-ai-generativelanguage { };
+
+  google-api-core = callPackage ../development/python-modules/google-api-core { };
+
+  google-api-python-client = callPackage ../development/python-modules/google-api-python-client { };
+
+  googleapis-common-protos = callPackage ../development/python-modules/googleapis-common-protos { };
+
+  google-auth = callPackage ../development/python-modules/google-auth { };
+
+  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
+
+  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
+
+  google-cloud-access-context-manager = callPackage ../development/python-modules/google-cloud-access-context-manager { };
+
+  google-cloud-appengine-logging = callPackage ../development/python-modules/google-cloud-appengine-logging { };
+
+  google-cloud-artifact-registry = callPackage ../development/python-modules/google-cloud-artifact-registry { };
+
+  google-cloud-asset = callPackage ../development/python-modules/google-cloud-asset { };
+
+  google-cloud-audit-log = callPackage ../development/python-modules/google-cloud-audit-log { };
+
+  google-cloud-automl = callPackage ../development/python-modules/google-cloud-automl { };
+
+  google-cloud-bigquery = callPackage ../development/python-modules/google-cloud-bigquery { };
+
+  google-cloud-bigquery-datatransfer = callPackage ../development/python-modules/google-cloud-bigquery-datatransfer { };
+
+  google-cloud-bigquery-logging = callPackage ../development/python-modules/google-cloud-bigquery-logging { };
+
+  google-cloud-bigquery-storage = callPackage ../development/python-modules/google-cloud-bigquery-storage { };
+
+  google-cloud-bigtable = callPackage ../development/python-modules/google-cloud-bigtable { };
+
+  google-cloud-compute = callPackage ../development/python-modules/google-cloud-compute { };
+
+  google-cloud-container = callPackage ../development/python-modules/google-cloud-container { };
+
+  google-cloud-core = callPackage ../development/python-modules/google-cloud-core { };
+
+  google-cloud-datacatalog = callPackage ../development/python-modules/google-cloud-datacatalog { };
+
+  google-cloud-dataproc = callPackage ../development/python-modules/google-cloud-dataproc { };
+
+  google-cloud-datastore = callPackage ../development/python-modules/google-cloud-datastore { };
+
+  google-cloud-dlp = callPackage ../development/python-modules/google-cloud-dlp { };
+
+  google-cloud-dns = callPackage ../development/python-modules/google-cloud-dns { };
+
+  google-cloud-error-reporting = callPackage ../development/python-modules/google-cloud-error-reporting { };
+
+  google-cloud-firestore = callPackage ../development/python-modules/google-cloud-firestore { };
+
+  google-cloud-iam = callPackage ../development/python-modules/google-cloud-iam { };
+
+  google-cloud-iam-logging = callPackage ../development/python-modules/google-cloud-iam-logging { };
+
+  google-cloud-iot = callPackage ../development/python-modules/google-cloud-iot { };
+
+  google-cloud-kms = callPackage ../development/python-modules/google-cloud-kms { };
+
+  google-cloud-language = callPackage ../development/python-modules/google-cloud-language { };
+
+  google-cloud-logging = callPackage ../development/python-modules/google-cloud-logging { };
+
+  google-cloud-monitoring = callPackage ../development/python-modules/google-cloud-monitoring { };
+
+  google-cloud-org-policy = callPackage ../development/python-modules/google-cloud-org-policy { };
+
+  google-cloud-os-config = callPackage ../development/python-modules/google-cloud-os-config { };
+
+  google-cloud-pubsub = callPackage ../development/python-modules/google-cloud-pubsub { };
+
+  google-cloud-redis = callPackage ../development/python-modules/google-cloud-redis { };
+
+  google-cloud-resource-manager = callPackage ../development/python-modules/google-cloud-resource-manager { };
+
+  google-cloud-runtimeconfig = callPackage ../development/python-modules/google-cloud-runtimeconfig { };
+
+  google-cloud-secret-manager = callPackage ../development/python-modules/google-cloud-secret-manager { };
+
+  google-cloud-securitycenter = callPackage ../development/python-modules/google-cloud-securitycenter { };
+
+  google-cloud-spanner = callPackage ../development/python-modules/google-cloud-spanner { };
+
+  google-cloud-speech = callPackage ../development/python-modules/google-cloud-speech { };
+
+  google-cloud-storage = callPackage ../development/python-modules/google-cloud-storage { };
+
+  google-cloud-tasks = callPackage ../development/python-modules/google-cloud-tasks { };
+
+  google-cloud-testutils = callPackage ../development/python-modules/google-cloud-testutils { };
+
+  google-cloud-texttospeech = callPackage ../development/python-modules/google-cloud-texttospeech { };
+
+  google-cloud-trace = callPackage ../development/python-modules/google-cloud-trace { };
+
+  google-cloud-translate = callPackage ../development/python-modules/google-cloud-translate { };
+
+  google-cloud-videointelligence = callPackage ../development/python-modules/google-cloud-videointelligence { };
+
+  google-cloud-vision = callPackage ../development/python-modules/google-cloud-vision { };
+
+  google-cloud-websecurityscanner = callPackage ../development/python-modules/google-cloud-websecurityscanner { };
+
+  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
+
+  google-crc32c = callPackage ../development/python-modules/google-crc32c {
+    inherit (pkgs) crc32c;
+  };
+
+  google-generativeai = callPackage ../development/python-modules/google-generativeai { };
+
+  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
+
+  google-nest-sdm = callPackage ../development/python-modules/google-nest-sdm { };
+
+  googlemaps = callPackage ../development/python-modules/googlemaps { };
+
+  google-pasta = callPackage ../development/python-modules/google-pasta { };
+
+  google-re2 = callPackage ../development/python-modules/google-re2 { };
+
+  google-reauth = callPackage ../development/python-modules/google-reauth { };
+
+  google-resumable-media = callPackage ../development/python-modules/google-resumable-media { };
+
+  google-search-results = callPackage ../development/python-modules/google-search-results { };
+
+  googletrans = callPackage ../development/python-modules/googletrans { };
+
+  gotenberg-client = callPackage ../development/python-modules/gotenberg-client { };
+
+  gorilla = callPackage ../development/python-modules/gorilla { };
+
+  govee-ble = callPackage ../development/python-modules/govee-ble { };
+
+  govee-led-wez = callPackage ../development/python-modules/govee-led-wez { };
+
+  goveelights = callPackage ../development/python-modules/goveelights { };
+
+  gpapi = callPackage ../development/python-modules/gpapi { };
+
+  gpaw = callPackage ../development/python-modules/gpaw { };
+
+  gpib-ctypes = callPackage ../development/python-modules/gpib-ctypes { };
+
+  gpiozero = callPackage ../development/python-modules/gpiozero { };
+
+  gplaycli = callPackage ../development/python-modules/gplaycli { };
+
+  gpgme = toPythonModule (pkgs.gpgme.override {
+    pythonSupport = true;
+    python3 = python;
+  });
+
+  gphoto2 = callPackage ../development/python-modules/gphoto2 { };
+
+  gprof2dot = callPackage ../development/python-modules/gprof2dot {
+    inherit (pkgs) graphviz;
+  };
+
+  gps3 = callPackage ../development/python-modules/gps3 { };
+
+  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
+
+  gpustat = callPackage ../development/python-modules/gpustat { };
+
+  gpxpy = callPackage ../development/python-modules/gpxpy { };
+
+  gpy = callPackage ../development/python-modules/gpy { };
+
+  gpytorch = callPackage ../development/python-modules/gpytorch { };
+
+  gpt-2-simple = callPackage ../development/python-modules/gpt-2-simple { };
+
+  gptcache = callPackage ../development/python-modules/gptcache { };
+
+  gql = callPackage ../development/python-modules/gql { };
+
+  grad-cam = callPackage ../development/python-modules/grad-cam { };
+
+  gradient = callPackage ../development/python-modules/gradient { };
+
+  gradient-utils = callPackage ../development/python-modules/gradient-utils { };
+
+  gradient_statsd = callPackage ../development/python-modules/gradient_statsd { };
+
+  gradio = callPackage ../development/python-modules/gradio { };
+
+  gradio-client = callPackage ../development/python-modules/gradio/client.nix { };
+
+  grafanalib = callPackage ../development/python-modules/grafanalib/default.nix { };
+
+  grammalecte = callPackage ../development/python-modules/grammalecte { };
+
+  grandalf = callPackage ../development/python-modules/grandalf { };
+
+  grapheme = callPackage ../development/python-modules/grapheme { };
+
+  graphite-web = callPackage ../development/python-modules/graphite-web { };
+
+  graphene = callPackage ../development/python-modules/graphene { };
+
+  graphene-django = callPackage ../development/python-modules/graphene-django { };
+
+  graphqlclient= callPackage ../development/python-modules/graphqlclient { };
+
+  graphql-core = callPackage ../development/python-modules/graphql-core { };
+
+  graphql-relay = callPackage ../development/python-modules/graphql-relay { };
+
+  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
+
+  graphql-subscription-manager = callPackage ../development/python-modules/graphql-subscription-manager { };
+
+  graph-tool = callPackage ../development/python-modules/graph-tool { };
+
+  graphtage = callPackage ../development/python-modules/graphtage { };
+
+  graphviz = callPackage ../development/python-modules/graphviz {
+    inherit (pkgs) graphviz;
+  };
+
+  grappelli-safe = callPackage ../development/python-modules/grappelli-safe { };
+
+  graspologic = callPackage ../development/python-modules/graspologic { };
+
+  greatfet = callPackage ../development/python-modules/greatfet { };
+
+  greeclimate = callPackage ../development/python-modules/greeclimate { };
+
+  green = callPackage ../development/python-modules/green { };
+
+  greeneye-monitor = callPackage ../development/python-modules/greeneye-monitor { };
+
+  # built-in for pypi
+  greenlet = if isPyPy then null else callPackage ../development/python-modules/greenlet { };
+
+  grequests = callPackage ../development/python-modules/grequests { };
+
+  gremlinpython = callPackage ../development/python-modules/gremlinpython { };
+
+  greynoise = callPackage ../development/python-modules/greynoise { };
+
+  growattserver = callPackage ../development/python-modules/growattserver { };
+
+  gridnet = callPackage ../development/python-modules/gridnet { };
+
+  griffe = callPackage ../development/python-modules/griffe { };
+
+  grip = callPackage ../development/python-modules/grip { };
+
+  groestlcoin_hash = callPackage ../development/python-modules/groestlcoin_hash { };
+
+  grpc-google-iam-v1 = callPackage ../development/python-modules/grpc-google-iam-v1 { };
+
+  grpc-interceptor = callPackage ../development/python-modules/grpc-interceptor { };
+
+  grpcio = callPackage ../development/python-modules/grpcio { };
+
+  grpcio-channelz = callPackage ../development/python-modules/grpcio-channelz { };
+
+  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
+
+  grpcio-health-checking = callPackage ../development/python-modules/grpcio-health-checking { };
+
+  grpcio-reflection = callPackage ../development/python-modules/grpcio-reflection { };
+
+  grpcio-status = callPackage ../development/python-modules/grpcio-status { };
+
+  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
+
+  grpcio-testing = callPackage ../development/python-modules/grpcio-testing { };
+
+  grpclib = callPackage ../development/python-modules/grpclib { };
+
+  gruut = callPackage ../development/python-modules/gruut { };
+
+  gruut-ipa = callPackage ../development/python-modules/gruut-ipa {
+    inherit (pkgs) espeak;
+  };
+
+  gsd = callPackage ../development/python-modules/gsd { };
+
+  gsm0338 = callPackage ../development/python-modules/gsm0338 { };
+
+  gspread = callPackage ../development/python-modules/gspread { };
+
+  gssapi = callPackage ../development/python-modules/gssapi {
+    inherit (pkgs) krb5;
+    inherit (pkgs.darwin.apple_sdk.frameworks) GSS;
+  };
+
+  gst-python = callPackage ../development/python-modules/gst-python {
+    # inherit (pkgs) meson won't work because it won't be spliced
+    inherit (pkgs.buildPackages) meson;
+  };
+
+  gtfs-realtime-bindings = callPackage ../development/python-modules/gtfs-realtime-bindings { };
+
+  gtimelog = callPackage ../development/python-modules/gtimelog { };
+
+  gtts = callPackage ../development/python-modules/gtts { };
+
+  gtts-token = callPackage ../development/python-modules/gtts-token { };
+
+  guessit = callPackage ../development/python-modules/guessit { };
+
+  guestfs = callPackage ../development/python-modules/guestfs { };
+
+  gudhi = callPackage ../development/python-modules/gudhi { };
+
+  guidance = callPackage ../development/python-modules/guidance { };
+
+  gumath = callPackage ../development/python-modules/gumath { };
+
+  gunicorn = callPackage ../development/python-modules/gunicorn { };
+
+  guppy3 = callPackage ../development/python-modules/guppy3 { };
+
+  gurobipy = if stdenv.hostPlatform.system == "x86_64-darwin" then
+    callPackage ../development/python-modules/gurobipy/darwin.nix {
+      inherit (pkgs.darwin) cctools insert_dylib;
+    }
+  else if stdenv.hostPlatform.system == "x86_64-linux" then
+    callPackage ../development/python-modules/gurobipy/linux.nix { }
+  else
+    throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
+
+  guzzle-sphinx-theme = callPackage ../development/python-modules/guzzle-sphinx-theme { };
+
+  gvm-tools = callPackage ../development/python-modules/gvm-tools { };
+
+  gviz-api = callPackage ../development/python-modules/gviz-api { };
+
+  gym = callPackage ../development/python-modules/gym { };
+
+  gym-notices = callPackage ../development/python-modules/gym-notices { };
+
+  gymnasium = callPackage ../development/python-modules/gymnasium { };
+
+  gyp = callPackage ../development/python-modules/gyp { };
+
+  h11 = callPackage ../development/python-modules/h11 { };
+
+  h2 = callPackage ../development/python-modules/h2 { };
+
+  h3 = callPackage ../development/python-modules/h3 {
+    inherit (pkgs) h3;
+  };
+
+  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
+
+  h5py = callPackage ../development/python-modules/h5py { };
+
+  h5py-mpi = self.h5py.override {
+    hdf5 = pkgs.hdf5-mpi;
+  };
+
+  habanero = callPackage ../development/python-modules/habanero { };
+
+  habluetooth = callPackage ../development/python-modules/habluetooth { };
+
+  habitipy = callPackage ../development/python-modules/habitipy { };
+
+  hachoir = callPackage ../development/python-modules/hachoir { };
+
+  hacking = callPackage ../development/python-modules/hacking { };
+
+  hdate = callPackage ../development/python-modules/hdate { };
+
+  hdf5plugin = callPackage ../development/python-modules/hdf5plugin { };
+
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+
+  ha-mqtt-discoverable = callPackage ../development/python-modules/ha-mqtt-discoverable { };
+
+  ha-philipsjs = callPackage ../development/python-modules/ha-philipsjs{ };
+
+  hahomematic = callPackage ../development/python-modules/hahomematic { };
+
+  halo = callPackage ../development/python-modules/halo { };
+
+  halohome = callPackage ../development/python-modules/halohome { };
+
+  handout = callPackage ../development/python-modules/handout { };
+
+  hap-python = callPackage ../development/python-modules/hap-python { };
+
+  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
+
+  hassil = callPackage ../development/python-modules/hassil { };
+
+  hatasmota = callPackage ../development/python-modules/hatasmota { };
+
+  hatchling = callPackage ../development/python-modules/hatchling { };
+
+  hatch-fancy-pypi-readme = callPackage ../development/python-modules/hatch-fancy-pypi-readme { };
+
+  hatch-jupyter-builder = callPackage ../development/python-modules/hatch-jupyter-builder { };
+
+  hatch-vcs = callPackage ../development/python-modules/hatch-vcs { };
+
+  hatch-nodejs-version = callPackage ../development/python-modules/hatch-nodejs-version { };
+
+  hatch-requirements-txt = callPackage ../development/python-modules/hatch-requirements-txt { };
+
+  haversine = callPackage ../development/python-modules/haversine { };
+
+  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
+
+  hcloud = callPackage ../development/python-modules/hcloud { };
+
+  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
+
+  hdbscan = callPackage ../development/python-modules/hdbscan { };
+
+  hdfs = callPackage ../development/python-modules/hdfs { };
+
+  hdmedians = callPackage ../development/python-modules/hdmedians { };
+
+  headerparser = callPackage ../development/python-modules/headerparser { };
+
+  heapdict = callPackage ../development/python-modules/heapdict { };
+
+  heatshrink2 = callPackage ../development/python-modules/heatshrink2 { };
+
+  heatzypy = callPackage ../development/python-modules/heatzypy { };
+
+  help2man = callPackage ../development/python-modules/help2man { };
+
+  helpdev = callPackage ../development/python-modules/helpdev { };
+
+  helper = callPackage ../development/python-modules/helper { };
+
+  hepmc3 = toPythonModule (pkgs.hepmc3.override {
+    inherit python;
+  });
+
+  hepunits = callPackage ../development/python-modules/hepunits { };
+
+  here-routing = callPackage ../development/python-modules/here-routing { };
+
+  here-transit = callPackage ../development/python-modules/here-transit { };
+
+  herepy = callPackage ../development/python-modules/herepy { };
+
+  hetzner = callPackage ../development/python-modules/hetzner { };
+
+  heudiconv = callPackage ../development/python-modules/heudiconv { };
+
+  hexbytes = callPackage ../development/python-modules/hexbytes { };
+
+  hexdump = callPackage ../development/python-modules/hexdump { };
+
+  hfst = callPackage ../development/python-modules/hfst { };
+
+  hg-commitsigs = callPackage ../development/python-modules/hg-commitsigs { };
+
+  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
+
+  hg-git = callPackage ../development/python-modules/hg-git { };
+
+  hickle = callPackage ../development/python-modules/hickle { };
+
+  hid = callPackage ../development/python-modules/hid {
+    inherit (pkgs) hidapi;
+  };
+
+  hidapi = callPackage ../development/python-modules/hidapi {
+    inherit (pkgs) udev libusb1;
+  };
+
+  hid-parser = callPackage ../development/python-modules/hid-parser { };
+
+  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
+
+  hijri-converter = callPackage ../development/python-modules/hijri-converter { };
+
+  hikvision = callPackage ../development/python-modules/hikvision { };
+
+  hiredis = callPackage ../development/python-modules/hiredis { };
+
+  hiro = callPackage ../development/python-modules/hiro { };
+
+  hist = callPackage ../development/python-modules/hist { };
+
+  histoprint = callPackage ../development/python-modules/histoprint { };
+
+  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
+
+  hjson = callPackage ../development/python-modules/hjson { };
+
+  hkavr = callPackage ../development/python-modules/hkavr { };
+
+  hkdf = callPackage ../development/python-modules/hkdf { };
+
+  hledger-utils = callPackage ../development/python-modules/hledger-utils { };
+
+  hlk-sw16 = callPackage ../development/python-modules/hlk-sw16 { };
+
+  hnswlib = callPackage ../development/python-modules/hnswlib {
+    inherit (pkgs) hnswlib;
+  };
+
+  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
+
+  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
+
+  hole = callPackage ../development/python-modules/hole { };
+
+  holidays = callPackage ../development/python-modules/holidays { };
+
+  hologram = callPackage ../development/python-modules/hologram { };
+
+  holoviews = callPackage ../development/python-modules/holoviews { };
+
+  home-assistant-bluetooth = callPackage ../development/python-modules/home-assistant-bluetooth { };
+
+  home-assistant-chip-clusters = callPackage ../development/python-modules/home-assistant-chip-clusters { };
+
+  home-assistant-chip-core = callPackage ../development/python-modules/home-assistant-chip-core { };
+
+  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
+
+  homeassistant-stubs = callPackage ../servers/home-assistant/stubs.nix { };
+
+  homeconnect = callPackage ../development/python-modules/homeconnect { };
+
+  homematicip = callPackage ../development/python-modules/homematicip { };
+
+  homepluscontrol = callPackage ../development/python-modules/homepluscontrol { };
+
+  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
+    inherit python;
+  });
+
+  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
+
+  horizon-eda = callPackage ../development/python-modules/horizon-eda {
+    inherit (pkgs) horizon-eda mesa;
+  };
+
+  howdoi = callPackage ../development/python-modules/howdoi { };
+
+  hpack = callPackage ../development/python-modules/hpack { };
+
+  hpccm = callPackage ../development/python-modules/hpccm { };
+
+  hpp-fcl = toPythonModule (pkgs.hpp-fcl.override {
+    pythonSupport = true;
+    python3Packages = self;
+  });
+
+  hs-dbus-signature = callPackage ../development/python-modules/hs-dbus-signature { };
+
+  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
+
+  hsluv = callPackage ../development/python-modules/hsluv { };
+
+  hstspreload = callPackage ../development/python-modules/hstspreload { };
+
+  html2image = callPackage ../development/python-modules/html2image { };
+
+  html2text = callPackage ../development/python-modules/html2text { };
+
+  html5lib = callPackage ../development/python-modules/html5lib { };
+
+  html5tagger = callPackage ../development/python-modules/html5tagger { };
+
+  html5-parser = callPackage ../development/python-modules/html5-parser { };
+
+  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
+
+  htmllistparse = callPackage ../development/python-modules/htmllistparse { };
+
+  htmlmin = callPackage ../development/python-modules/htmlmin { };
+
+  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
+
+  html-tag-names = callPackage ../development/python-modules/html-tag-names { };
+
+  html-text = callPackage ../development/python-modules/html-text { };
+
+  html-void-elements = callPackage ../development/python-modules/html-void-elements { };
+
+  htseq = callPackage ../development/python-modules/htseq { };
+
+  httmock = callPackage ../development/python-modules/httmock { };
+
+  httpagentparser = callPackage ../development/python-modules/httpagentparser { };
+
+  httpauth = callPackage ../development/python-modules/httpauth { };
+
+  httpbin = callPackage ../development/python-modules/httpbin { };
+
+  httpcore = callPackage ../development/python-modules/httpcore { };
+
+  httpie = callPackage ../development/python-modules/httpie { };
+
+  http-ece = callPackage ../development/python-modules/http-ece { };
+
+  httpie-ntlm = callPackage ../development/python-modules/httpie-ntlm { };
+
+  httplib2 = callPackage ../development/python-modules/httplib2 { };
+
+  http-message-signatures = callPackage ../development/python-modules/http-message-signatures { };
+
+  http-parser = callPackage ../development/python-modules/http-parser { };
+
+  http-sfv = callPackage ../development/python-modules/http-sfv { };
+
+  httpretty = callPackage ../development/python-modules/httpretty { };
+
+  httpserver = callPackage ../development/python-modules/httpserver { };
+
+  httpsig = callPackage ../development/python-modules/httpsig { };
+
+  httptools = callPackage ../development/python-modules/httptools { };
+
+  httpx = callPackage ../development/python-modules/httpx { };
+
+  httpx-auth = callPackage ../development/python-modules/httpx-auth { };
+
+  httpx-ntlm = callPackage ../development/python-modules/httpx-ntlm { };
+
+  httpx-socks = callPackage ../development/python-modules/httpx-socks { };
+
+  huawei-lte-api = callPackage ../development/python-modules/huawei-lte-api { };
+
+  huey = callPackage ../development/python-modules/huey { };
+
+  hug = callPackage ../development/python-modules/hug { };
+
+  huggingface-hub = callPackage ../development/python-modules/huggingface-hub { };
+
+  huisbaasje-client = callPackage ../development/python-modules/huisbaasje-client { };
+
+  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
+
+  humanize = callPackage ../development/python-modules/humanize { };
+
+  human-readable = callPackage ../development/python-modules/human-readable { };
+
+  humblewx = callPackage ../development/python-modules/humblewx { };
+
+  hupper = callPackage ../development/python-modules/hupper { };
+
+  huum = callPackage ../development/python-modules/huum { };
+
+  hvac = callPackage ../development/python-modules/hvac { };
+
+  hvplot = callPackage ../development/python-modules/hvplot { };
+
+  hwdata = callPackage ../development/python-modules/hwdata { };
+
+  hwi = callPackage ../development/python-modules/hwi { };
+
+  hy = callPackage ../development/python-modules/hy { };
+
+  hydra-core = callPackage ../development/python-modules/hydra-core { };
+
+  hydra-check = callPackage ../development/python-modules/hydra-check { };
+
+  hydrawiser = callPackage ../development/python-modules/hydrawiser { };
+
+  hydrus-api = callPackage ../development/python-modules/hydrus-api { };
+
+  hypchat = callPackage ../development/python-modules/hypchat { };
+
+  hypercorn = callPackage ../development/python-modules/hypercorn { };
+
+  hyperframe = callPackage ../development/python-modules/hyperframe { };
+
+  hyperscan = callPackage ../development/python-modules/hyperscan { };
+
+  hyperion-py = callPackage ../development/python-modules/hyperion-py { };
+
+  hyperlink = callPackage ../development/python-modules/hyperlink { };
+
+  hyperopt = callPackage ../development/python-modules/hyperopt { };
+
+  hyperpyyaml = callPackage ../development/python-modules/hyperpyyaml { };
+
+  hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
+
+  hypothesis = callPackage ../development/python-modules/hypothesis { };
+
+  hypothesmith = callPackage ../development/python-modules/hypothesmith { };
+
+  hyppo = callPackage ../development/python-modules/hyppo { };
+
+  hyrule = callPackage ../development/python-modules/hyrule { };
+
+  i2c-tools = callPackage ../development/python-modules/i2c-tools {
+    inherit (pkgs) i2c-tools;
+  };
+
+  i2csense = callPackage ../development/python-modules/i2csense { };
+
+  i3ipc = callPackage ../development/python-modules/i3ipc { };
+
+  i3-py = callPackage ../development/python-modules/i3-py { };
+
+  iammeter = callPackage ../development/python-modules/iammeter { };
+
+  iapws = callPackage ../development/python-modules/iapws { };
+
+  iaqualink = callPackage ../development/python-modules/iaqualink { };
+
+  ibeacon-ble = callPackage ../development/python-modules/ibeacon-ble { };
+
+  ibis = callPackage ../development/python-modules/ibis { };
+
+  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
+
+  ibm-cloud-sdk-core = callPackage ../development/python-modules/ibm-cloud-sdk-core { };
+
+  ibm-watson = callPackage ../development/python-modules/ibm-watson { };
+
+  ical = callPackage ../development/python-modules/ical { };
+
+  icalendar = callPackage ../development/python-modules/icalendar { };
+
+  icecream = callPackage ../development/python-modules/icecream { };
+
+  iceportal = callPackage ../development/python-modules/iceportal { };
+
+  icmplib = callPackage ../development/python-modules/icmplib { };
+
+  icnsutil = callPackage ../development/python-modules/icnsutil { };
+
+  ics = callPackage ../development/python-modules/ics { };
+
+  idasen = callPackage ../development/python-modules/idasen { };
+
+  icoextract = callPackage ../development/python-modules/icoextract { };
+
+  icontract = callPackage ../development/python-modules/icontract { };
+
+  id = callPackage ../development/python-modules/id { };
+
+  identify = callPackage ../development/python-modules/identify { };
+
+  idna = callPackage ../development/python-modules/idna { };
+
+  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
+
+  ifaddr = callPackage ../development/python-modules/ifaddr { };
+
+  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
+
+  ifcopenshell = callPackage ../development/python-modules/ifcopenshell { };
+
+  ignite = callPackage ../development/python-modules/ignite { };
+
+  igraph = callPackage ../development/python-modules/igraph {
+    inherit (pkgs) igraph;
+  };
+
+  ihm = callPackage ../development/python-modules/ihm { };
+
+  iisignature = callPackage ../development/python-modules/iisignature { };
+
+  ijson = callPackage ../development/python-modules/ijson { };
+
+  ilua = callPackage ../development/python-modules/ilua { };
+
+  imagecodecs-lite = callPackage ../development/python-modules/imagecodecs-lite { };
+
+  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
+
+  imagededup = callPackage ../development/python-modules/imagededup { };
+
+  imagehash = callPackage ../development/python-modules/imagehash { };
+
+  imageio = callPackage ../development/python-modules/imageio { };
+
+  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
+
+  image-diff = callPackage ../development/python-modules/image-diff { };
+
+  image-go-nord = callPackage ../development/python-modules/image-go-nord { };
+
+  imagesize = callPackage ../development/python-modules/imagesize { };
+
+  imantics = callPackage ../development/python-modules/imantics { };
+
+  imapclient = callPackage ../development/python-modules/imapclient { };
+
+  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
+
+  imap-tools = callPackage ../development/python-modules/imap-tools { };
+
+  imbalanced-learn = callPackage ../development/python-modules/imbalanced-learn { };
+
+  img2pdf = callPackage ../development/python-modules/img2pdf { };
+
+  imgdiff = callPackage ../development/python-modules/imgdiff { };
+
+  imgsize = callPackage ../development/python-modules/imgsize { };
+
+  imgtool = callPackage ../development/python-modules/imgtool { };
+
+  imia = callPackage ../development/python-modules/imia { };
+
+  iminuit = callPackage ../development/python-modules/iminuit { };
+
+  immutabledict = callPackage ../development/python-modules/immutabledict { };
+
+  immutables = callPackage ../development/python-modules/immutables { };
+
+  impacket = callPackage ../development/python-modules/impacket { };
+
+  importlab = callPackage ../development/python-modules/importlab { };
+
+  importlib-metadata = callPackage ../development/python-modules/importlib-metadata { };
+
+  importlib-resources = callPackage ../development/python-modules/importlib-resources { };
+
+  importmagic = callPackage ../development/python-modules/importmagic { };
+
+  imread = callPackage ../development/python-modules/imread {
+    inherit (pkgs) libjpeg libpng libtiff libwebp;
+  };
+
+  imutils = callPackage ../development/python-modules/imutils { };
+
+  in-n-out = callPackage ../development/python-modules/in-n-out { };
+
+  in-place = callPackage ../development/python-modules/in-place { };
+
+  incomfort-client = callPackage ../development/python-modules/incomfort-client { };
+
+  incremental = callPackage ../development/python-modules/incremental { };
+
+  indexed-bzip2 = callPackage ../development/python-modules/indexed-bzip2 { };
+
+  indexed-gzip = callPackage ../development/python-modules/indexed-gzip { inherit (pkgs) zlib; };
+
+  indexed-zstd = callPackage ../development/python-modules/indexed-zstd { inherit (pkgs) zstd; };
+
+  infinity = callPackage ../development/python-modules/infinity { };
+
+  inflect = callPackage ../development/python-modules/inflect { };
+
+  inflection = callPackage ../development/python-modules/inflection { };
+
+  influxdb = callPackage ../development/python-modules/influxdb { };
+
+  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
+
+  inform = callPackage ../development/python-modules/inform { };
+
+  iniconfig = callPackage ../development/python-modules/iniconfig { };
+
+  inifile = callPackage ../development/python-modules/inifile { };
+
+  iniparse = callPackage ../development/python-modules/iniparse { };
+
+  injector = callPackage ../development/python-modules/injector { };
+
+  inkbird-ble = callPackage ../development/python-modules/inkbird-ble { };
+
+  inkex = callPackage ../development/python-modules/inkex { };
+
+  inlinestyler = callPackage ../development/python-modules/inlinestyler { };
+
+  inotify = callPackage ../development/python-modules/inotify { };
+
+  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
+
+  inotifyrecursive = callPackage ../development/python-modules/inotifyrecursive { };
+
+  inquirer = callPackage ../development/python-modules/inquirer { };
+
+  inquirerpy = callPackage ../development/python-modules/inquirerpy { };
+
+  inscriptis = callPackage ../development/python-modules/inscriptis { };
+
+  insegel = callPackage ../development/python-modules/insegel { };
+
+  insightface = callPackage ../development/python-modules/insightface { };
+
+  installer = callPackage ../development/python-modules/installer { };
+
+  insteon-frontend-home-assistant = callPackage ../development/python-modules/insteon-frontend-home-assistant { };
+
+  intake = callPackage ../development/python-modules/intake { };
+
+  intake-parquet = callPackage ../development/python-modules/intake-parquet { };
+
+  intbitset = callPackage ../development/python-modules/intbitset { };
+
+  intelhex = callPackage ../development/python-modules/intelhex { };
+
+  intellifire4py = callPackage ../development/python-modules/intellifire4py { };
+
+  intensity-normalization = callPackage ../development/python-modules/intensity-normalization { };
+
+  interface-meta = callPackage ../development/python-modules/interface-meta { };
+
+  internetarchive = callPackage ../development/python-modules/internetarchive { };
+
+  interruptingcow = callPackage ../development/python-modules/interruptingcow { };
+
+  intervaltree = callPackage ../development/python-modules/intervaltree { };
+
+  into-dbus-python = callPackage ../development/python-modules/into-dbus-python { };
+
+  invisible-watermark = callPackage ../development/python-modules/invisible-watermark { };
+
+  invocations = callPackage ../development/python-modules/invocations { };
+
+  invoke = callPackage ../development/python-modules/invoke { };
+
+  iodata = callPackage ../development/python-modules/iodata { };
+
+  iocapture = callPackage ../development/python-modules/iocapture { };
+
+  iocextract = callPackage ../development/python-modules/iocextract { };
+
+  ionhash = callPackage ../development/python-modules/ionhash { };
+
+  ionoscloud = callPackage ../development/python-modules/ionoscloud { };
+
+  iopath = callPackage ../development/python-modules/iopath { };
+
+  iotawattpy = callPackage ../development/python-modules/iotawattpy { };
+
+  iowait = callPackage ../development/python-modules/iowait { };
+
+  ipadic = callPackage ../development/python-modules/ipadic { };
+
+  ipaddr = callPackage ../development/python-modules/ipaddr { };
+
+  ipdb = callPackage ../development/python-modules/ipdb { };
+
+  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
+
+  ipfshttpclient = callPackage ../development/python-modules/ipfshttpclient { };
+
+  i-pi = callPackage ../development/python-modules/i-pi { };
+
+  iptools = callPackage ../development/python-modules/iptools { };
+
+  ipwhl = callPackage ../development/python-modules/ipwhl { };
+
+  ipwhois = callPackage ../development/python-modules/ipwhois { };
+
+  ipy = callPackage ../development/python-modules/IPy { };
+
+  ipycanvas = callPackage ../development/python-modules/ipycanvas { };
+
+  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
+
+  ipynbname = callPackage ../development/python-modules/ipynbname { };
+
+  ipyniivue = callPackage ../development/python-modules/ipyniivue { };
+
+  ipykernel = callPackage ../development/python-modules/ipykernel { };
+
+  ipymarkup = callPackage ../development/python-modules/ipymarkup { };
+
+  ipympl = callPackage ../development/python-modules/ipympl { };
+
+  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
+
+  ipytablewidgets = callPackage ../development/python-modules/ipytablewidgets { };
+
+  ipython-genutils = callPackage ../development/python-modules/ipython-genutils { };
+
+  ipython = callPackage ../development/python-modules/ipython { };
+
+  ipython-sql = callPackage ../development/python-modules/ipython-sql { };
+
+  ipyvue = callPackage ../development/python-modules/ipyvue { };
+
+  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
+
+  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
+
+  ipyxact = callPackage ../development/python-modules/ipyxact { };
+
+  irc = callPackage ../development/python-modules/irc { };
+
+  ircrobots = callPackage ../development/python-modules/ircrobots { };
+
+  ircstates = callPackage ../development/python-modules/ircstates { };
+
+  irctokens = callPackage ../development/python-modules/irctokens { };
+
+  isbnlib = callPackage ../development/python-modules/isbnlib { };
+
+  islpy = callPackage ../development/python-modules/islpy { };
+
+  iso3166 = callPackage ../development/python-modules/iso3166 { };
+
+  ismartgate = callPackage ../development/python-modules/ismartgate { };
+
+  iso-639 = callPackage ../development/python-modules/iso-639 { };
+
+  iso4217 = callPackage ../development/python-modules/iso4217 { };
+
+  iso8601 = callPackage ../development/python-modules/iso8601 { };
+
+  isodate = callPackage ../development/python-modules/isodate { };
+
+  isoduration = callPackage ../development/python-modules/isoduration { };
+
+  isort = callPackage ../development/python-modules/isort { };
+
+  isosurfaces = callPackage ../development/python-modules/isosurfaces { };
+
+  isounidecode = callPackage ../development/python-modules/isounidecode { };
+
+  isoweek = callPackage ../development/python-modules/isoweek { };
+
+  itanium-demangler = callPackage ../development/python-modules/itanium-demangler { };
+
+  itemadapter = callPackage ../development/python-modules/itemadapter { };
+
+  itemdb = callPackage ../development/python-modules/itemdb { };
+
+  itemloaders = callPackage ../development/python-modules/itemloaders { };
+
+  iteration-utilities = callPackage ../development/python-modules/iteration-utilities { };
+
+  iterative-telemetry = callPackage ../development/python-modules/iterative-telemetry { };
+
+  iterm2 = callPackage ../development/python-modules/iterm2 { };
+
+  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
+
+  itunespy = callPackage ../development/python-modules/itunespy { };
+
+  itypes = callPackage ../development/python-modules/itypes { };
+
+  iwlib = callPackage ../development/python-modules/iwlib { };
+
+  j2cli = callPackage ../development/python-modules/j2cli { };
+
+  jaconv = callPackage ../development/python-modules/jaconv { };
+
+  jaeger-client = callPackage ../development/python-modules/jaeger-client { };
+
+  jamo = callPackage ../development/python-modules/jamo { };
+
+  janus = callPackage ../development/python-modules/janus { };
+
+  jaraco-abode = callPackage ../development/python-modules/jaraco-abode { };
+
+  jaraco-classes = callPackage ../development/python-modules/jaraco-classes { };
+
+  jaraco-collections = callPackage ../development/python-modules/jaraco-collections { };
+
+  jaraco-email = callPackage ../development/python-modules/jaraco-email { };
+
+  jaraco-context = callPackage ../development/python-modules/jaraco-context { };
+
+  jaraco-functools = callPackage ../development/python-modules/jaraco-functools { };
+
+  jaraco-itertools = callPackage ../development/python-modules/jaraco-itertools { };
+
+  jaraco-logging = callPackage ../development/python-modules/jaraco-logging { };
+
+  jaraco-net = callPackage ../development/python-modules/jaraco-net { };
+
+  jaraco-stream = callPackage ../development/python-modules/jaraco-stream { };
+
+  jaraco-test = callPackage ../development/python-modules/jaraco-test { };
+
+  jaraco-text = callPackage ../development/python-modules/jaraco-text { };
+
+  jarowinkler = callPackage ../development/python-modules/jarowinkler { };
+
+  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
+
+  javaproperties = callPackage ../development/python-modules/javaproperties { };
+
+  jax = callPackage ../development/python-modules/jax { };
+
+  jax-jumpy = callPackage ../development/python-modules/jax-jumpy { };
+
+  jaxlib-bin = callPackage ../development/python-modules/jaxlib/bin.nix {
+    inherit (pkgs.config) cudaSupport;
+  };
+
+  jaxlib-build = callPackage ../development/python-modules/jaxlib rec {
+    inherit (pkgs.darwin) cctools;
+    # Some platforms don't have `cudaSupport` defined, hence the need for 'or false'.
+    inherit (pkgs.config) cudaSupport;
+    IOKit = pkgs.darwin.apple_sdk_11_0.IOKit;
+  };
+
+  jaxlib = self.jaxlib-build;
+
+  jaxlibWithCuda = self.jaxlib-build.override {
+    cudaSupport = true;
+  };
+
+  jaxlibWithoutCuda = self.jaxlib-build.override {
+    cudaSupport = false;
+  };
+
+  jaxopt = callPackage ../development/python-modules/jaxopt { };
+
+  jaxtyping = callPackage ../development/python-modules/jaxtyping { };
+
+  jaydebeapi = callPackage ../development/python-modules/jaydebeapi { };
+
+  jc = callPackage ../development/python-modules/jc { };
+
+  jdatetime = callPackage ../development/python-modules/jdatetime { };
+
+  jdcal = callPackage ../development/python-modules/jdcal { };
+
+  jedi = callPackage ../development/python-modules/jedi { };
+
+  jedi-language-server = callPackage ../development/python-modules/jedi-language-server { };
+
+  jeepney = callPackage ../development/python-modules/jeepney { };
+
+  jello = callPackage ../development/python-modules/jello { };
+
+  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
+
+  jellyfish = callPackage ../development/python-modules/jellyfish { };
+
+  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
+
+  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
+
+  jieba = callPackage ../development/python-modules/jieba { };
+
+  jinja2 = callPackage ../development/python-modules/jinja2 { };
+
+  jinja2-ansible-filters = callPackage ../development/python-modules/jinja2-ansible-filters { };
+
+  jinja2-git = callPackage ../development/python-modules/jinja2-git { };
+
+  jinja2-pluralize = callPackage ../development/python-modules/jinja2-pluralize { };
+
+  jinja2-time = callPackage ../development/python-modules/jinja2-time { };
+
+  jira = callPackage ../development/python-modules/jira { };
+
+  jiwer = callPackage ../development/python-modules/jiwer { };
+
+  jmespath = callPackage ../development/python-modules/jmespath { };
+
+  jmp = callPackage ../development/python-modules/jmp { };
+
+  joblib = callPackage ../development/python-modules/joblib { };
+
+  johnnycanencrypt = callPackage ../development/python-modules/johnnycanencrypt {
+    inherit (pkgs.darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  josepy = callPackage ../development/python-modules/josepy { };
+
+  journalwatch = callPackage ../tools/system/journalwatch {
+    inherit (self) systemd pytest;
+  };
+
+  jplephem = callPackage ../development/python-modules/jplephem { };
+
+  jproperties = callPackage ../development/python-modules/jproperties { };
+
+  jpylyzer = callPackage ../development/python-modules/jpylyzer { };
+
+  jpype1 = callPackage ../development/python-modules/jpype1 { };
+
+  jq = callPackage ../development/python-modules/jq {
+    inherit (pkgs) jq;
+  };
+
+  js2py = callPackage ../development/python-modules/js2py { };
+
+  jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
+
+  jschema-to-python = callPackage ../development/python-modules/jschema-to-python { };
+
+  jsmin = callPackage ../development/python-modules/jsmin { };
+
+  json5 = callPackage ../development/python-modules/json5 { };
+
+  jsonconversion = callPackage ../development/python-modules/jsonconversion { };
+
+  jsondate = callPackage ../development/python-modules/jsondate { };
+
+  jsondiff = callPackage ../development/python-modules/jsondiff { };
+
+  jsonfield = callPackage ../development/python-modules/jsonfield { };
+
+  jsonlines = callPackage ../development/python-modules/jsonlines { };
+
+  json-logging = callPackage ../development/python-modules/json-logging { };
+
+  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
+
+  json-home-client = callPackage ../development/python-modules/json-home-client { };
+
+  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
+
+  json-schema-for-humans = callPackage ../development/python-modules/json-schema-for-humans { };
+
+  json-stream = callPackage ../development/python-modules/json-stream { };
+
+  json-stream-rs-tokenizer = callPackage ../development/python-modules/json-stream-rs-tokenizer { };
+
+  jsonable = callPackage ../development/python-modules/jsonable { };
+
+  jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; };
+
+  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
+
+  jsonpath = callPackage ../development/python-modules/jsonpath { };
+
+  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
+
+  jsonpath-ng = callPackage ../development/python-modules/jsonpath-ng { };
+
+  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
+
+  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
+
+  jsonref = callPackage ../development/python-modules/jsonref { };
+
+  json-rpc = callPackage ../development/python-modules/json-rpc { };
+
+  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
+
+  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
+
+  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix { };
+
+  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
+
+  jsons = callPackage ../development/python-modules/jsons { };
+
+  jsonschema = callPackage ../development/python-modules/jsonschema { };
+
+  jsonschema-spec = callPackage ../development/python-modules/jsonschema-spec { };
+
+  jsonschema-specifications = callPackage ../development/python-modules/jsonschema-specifications { };
+
+  jsonstreams = callPackage ../development/python-modules/jsonstreams { };
+
+  json-tricks = callPackage ../development/python-modules/json-tricks { };
+
+  jstyleson = callPackage ../development/python-modules/jstyleson { };
+
+  jug = callPackage ../development/python-modules/jug { };
+
+  junitparser = callPackage ../development/python-modules/junitparser { };
+
+  junit2html = callPackage ../development/python-modules/junit2html { };
+
+  junit-xml = callPackage ../development/python-modules/junit-xml { };
+
+  junos-eznc = callPackage ../development/python-modules/junos-eznc { };
+
+  jupyter = callPackage ../development/python-modules/jupyter { };
+
+  jupyter-book = callPackage ../development/python-modules/jupyter-book { };
+
+  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
+
+  jupyter-cache = callPackage ../development/python-modules/jupyter-cache { };
+
+  jupyter-client = callPackage ../development/python-modules/jupyter-client { };
+
+  jupyter-collaboration = callPackage ../development/python-modules/jupyter-collaboration { };
+
+  jupyter-contrib-core = callPackage ../development/python-modules/jupyter-contrib-core { };
+
+  jupyter-contrib-nbextensions = callPackage ../development/python-modules/jupyter-contrib-nbextensions { };
+
+  jupyter-console = callPackage ../development/python-modules/jupyter-console { };
+
+  jupyter-core = callPackage ../development/python-modules/jupyter-core { };
+
+  jupyter-events = callPackage ../development/python-modules/jupyter-events { };
+
+  jupyter-highlight-selected-word = callPackage ../development/python-modules/jupyter-highlight-selected-word { };
+
+  jupyter-lsp = callPackage ../development/python-modules/jupyter-lsp { };
+
+  jupyter-nbextensions-configurator = callPackage ../development/python-modules/jupyter-nbextensions-configurator { };
+
+  jupyter-server = callPackage ../development/python-modules/jupyter-server { };
+
+  jupyter-server-fileid = callPackage ../development/python-modules/jupyter-server-fileid { };
+
+  jupyter-server-terminals = callPackage ../development/python-modules/jupyter-server-terminals { };
+
+  jupyter-ui-poll = callPackage ../development/python-modules/jupyter-ui-poll { };
+
+  jupyter-ydoc = callPackage ../development/python-modules/jupyter-ydoc { };
+
+  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
+
+  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
+
+  jupyterhub-systemdspawner = callPackage ../development/python-modules/jupyterhub-systemdspawner { };
+
+  jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
+
+  jupyterlab = callPackage ../development/python-modules/jupyterlab { };
+
+  jupyterlab-git = callPackage ../development/python-modules/jupyterlab-git { };
+
+  jupyterlab-pygments = callPackage ../development/python-modules/jupyterlab-pygments { };
+
+  jupyterlab-server = callPackage ../development/python-modules/jupyterlab-server { };
+
+  jupyterlab-widgets = callPackage ../development/python-modules/jupyterlab-widgets { };
+
+  jupyterlab-lsp = callPackage ../development/python-modules/jupyterlab-lsp { };
+
+  jupyter-packaging = callPackage ../development/python-modules/jupyter-packaging { };
+
+  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker {
+    pkgs-docker = pkgs.docker;
+  };
+
+  jupyter-server-mathjax = callPackage ../development/python-modules/jupyter-server-mathjax { };
+
+  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
+
+  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
+
+  jupytext = callPackage ../development/python-modules/jupytext { };
+
+  justbackoff = callPackage ../development/python-modules/justbackoff { };
+
+  justbases = callPackage ../development/python-modules/justbases { };
+
+  justbytes = callPackage ../development/python-modules/justbytes { };
+
+  justnimbus = callPackage ../development/python-modules/justnimbus { };
+
+  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
+
+  jwt = callPackage ../development/python-modules/jwt { };
+
+  jxmlease = callPackage ../development/python-modules/jxmlease { };
+
+  k-diffusion = callPackage ../development/python-modules/k-diffusion { };
+
+  k5test = callPackage ../development/python-modules/k5test {
+    inherit (pkgs) krb5 findutils;
+  };
+
+  kaa-base = callPackage ../development/python-modules/kaa-base { };
+
+  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
+
+  kafka-python = callPackage ../development/python-modules/kafka-python { };
+
+  kaggle = callPackage ../development/python-modules/kaggle { };
+
+  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
+
+  kajiki = callPackage ../development/python-modules/kajiki { };
+
+  kaldi-active-grammar = callPackage ../development/python-modules/kaldi-active-grammar { };
+
+  kanidm = callPackage ../development/python-modules/kanidm { };
+
+  kaptan = callPackage ../development/python-modules/kaptan { };
+
+  karton-asciimagic = callPackage ../development/python-modules/karton-asciimagic { };
+
+  karton-autoit-ripper = callPackage ../development/python-modules/karton-autoit-ripper { };
+
+  karton-classifier = callPackage ../development/python-modules/karton-classifier { };
+
+  karton-config-extractor = callPackage ../development/python-modules/karton-config-extractor { };
+
+  karton-core = callPackage ../development/python-modules/karton-core { };
+
+  karton-dashboard = callPackage ../development/python-modules/karton-dashboard { };
+
+  karton-mwdb-reporter = callPackage ../development/python-modules/karton-mwdb-reporter { };
+
+  karton-yaramatcher = callPackage ../development/python-modules/karton-yaramatcher { };
+
+  kasa-crypt = callPackage ../development/python-modules/kasa-crypt { };
+
+  kazoo = callPackage ../development/python-modules/kazoo { };
+
+  kbcstorage = callPackage ../development/python-modules/kbcstorage { };
+
+  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
+
+  keba-kecontact = callPackage ../development/python-modules/keba-kecontact { };
+
+  keep = callPackage ../development/python-modules/keep { };
+
+  keepalive = callPackage ../development/python-modules/keepalive { };
+
+  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
+
+  keepkey = callPackage ../development/python-modules/keepkey { };
+
+  kegtron-ble = callPackage ../development/python-modules/kegtron-ble { };
+
+  keras-applications = callPackage ../development/python-modules/keras-applications { };
+
+  keras = callPackage ../development/python-modules/keras { };
+
+  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
+
+  kerberos = callPackage ../development/python-modules/kerberos { };
+
+  keyboard = callPackage ../development/python-modules/keyboard { };
+
+  keyring = callPackage ../development/python-modules/keyring { };
+
+  keyrings-cryptfile = callPackage ../development/python-modules/keyrings-cryptfile { };
+
+  keyrings-google-artifactregistry-auth = callPackage ../development/python-modules/keyrings-google-artifactregistry-auth { };
+
+  keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
+
+  keystone-engine = callPackage ../development/python-modules/keystone-engine { };
+
+  keyrings-passwordstore = callPackage ../development/python-modules/keyrings-passwordstore { };
+
+  keystoneauth1 = callPackage ../development/python-modules/keystoneauth1 { };
+
+  keyutils = callPackage ../development/python-modules/keyutils {
+    inherit (pkgs) keyutils;
+  };
+
+  kicad = toPythonModule (pkgs.kicad.override {
+    python3 = python;
+  }).src;
+
+  kinparse = callPackage ../development/python-modules/kinparse { };
+
+  kiss-headers = callPackage ../development/python-modules/kiss-headers { };
+
+  kitchen = callPackage ../development/python-modules/kitchen { };
+
+  kivy = callPackage ../development/python-modules/kivy {
+    inherit (pkgs) mesa;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate ApplicationServices AVFoundation;
+  };
+
+  kivy-garden = callPackage ../development/python-modules/kivy-garden { };
+
+  kiwiki-client = callPackage ../development/python-modules/kiwiki-client { };
+
+  kiwisolver = callPackage ../development/python-modules/kiwisolver { };
+
+  klaus = callPackage ../development/python-modules/klaus { };
+
+  klein = callPackage ../development/python-modules/klein { };
+
+  kmapper = callPackage ../development/python-modules/kmapper { };
+
+  kml2geojson = callPackage ../development/python-modules/kml2geojson { };
+
+  kmsxx = toPythonModule (pkgs.kmsxx.override {
+    withPython = true;
+  });
+
+  knack = callPackage ../development/python-modules/knack { };
+
+  kneed = callPackage ../development/python-modules/kneed { };
+
+  knx-frontend = callPackage ../development/python-modules/knx-frontend { };
+
+  kombu = callPackage ../development/python-modules/kombu { };
+
+  konnected = callPackage ../development/python-modules/konnected { };
+
+  kotsu = callPackage ../development/python-modules/kotsu { };
+
+  korean-lunar-calendar = callPackage ../development/python-modules/korean-lunar-calendar { };
+
+  kornia = callPackage ../development/python-modules/kornia { };
+
+  krakenex = callPackage ../development/python-modules/krakenex { };
+
+  krfzf-py = callPackage ../development/python-modules/krfzf-py { };
+
+  kubernetes = callPackage ../development/python-modules/kubernetes { };
+
+  kurbopy = callPackage ../development/python-modules/kurbopy { };
+
+  l18n = callPackage ../development/python-modules/l18n { };
+
+  labelbox = callPackage ../development/python-modules/labelbox { };
+
+  labgrid = callPackage ../development/python-modules/labgrid { };
+
+  labmath = callPackage ../development/python-modules/labmath { };
+
+  lakeside = callPackage ../development/python-modules/lakeside { };
+
+  langchain = callPackage ../development/python-modules/langchain { };
+
+  langchainplus-sdk = callPackage ../development/python-modules/langchainplus-sdk { };
+
+  langcodes = callPackage ../development/python-modules/langcodes { };
+
+  langdetect = callPackage ../development/python-modules/langdetect { };
+
+  langid = callPackage ../development/python-modules/langid { };
+
+  langsmith = callPackage ../development/python-modules/langsmith { };
+
+  language-data = callPackage ../development/python-modules/language-data { };
+
+  language-tags = callPackage ../development/python-modules/language-tags { };
+
+  lanms-neo = callPackage ../development/python-modules/lanms-neo { };
+
+  lark = callPackage ../development/python-modules/lark { };
+
+  laspy = callPackage ../development/python-modules/laspy { };
+
+  laszip = callPackage ../development/python-modules/laszip {
+    inherit (pkgs) cmake ninja;
+  };
+
+  latex2mathml = callPackage ../development/python-modules/latex2mathml { };
+
+  latexcodec = callPackage ../development/python-modules/latexcodec { };
+
+  latexify-py = callPackage ../development/python-modules/latexify-py { };
+
+  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
+
+  laundrify-aio = callPackage ../development/python-modules/laundrify-aio { };
+
+  layoutparser = callPackage ../development/python-modules/layoutparser { };
+
+  lazr-config = callPackage ../development/python-modules/lazr/config.nix { };
+
+  lazr-delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
+
+  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
+
+  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
+
+  lazy = callPackage ../development/python-modules/lazy { };
+
+  lazy_import = callPackage ../development/python-modules/lazy_import { };
+
+  lazy-imports = callPackage ../development/python-modules/lazy-imports { };
+
+  lazy-loader = callPackage ../development/python-modules/lazy-loader { };
+
+  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
+
+  lc7001 = callPackage ../development/python-modules/lc7001 { };
+
+  lcd-i2c = callPackage ../development/python-modules/lcd-i2c { };
+
+  lcgit = callPackage ../development/python-modules/lcgit { };
+
+  lcov_cobertura = callPackage ../development/python-modules/lcov_cobertura { };
+
+  ld2410-ble = callPackage ../development/python-modules/ld2410-ble { };
+
+  ldap3 = callPackage ../development/python-modules/ldap3 { };
+
+  ldapdomaindump = callPackage ../development/python-modules/ldapdomaindump { };
+
+  ldappool = callPackage ../development/python-modules/ldappool { };
+
+  ldaptor = callPackage ../development/python-modules/ldaptor { };
+
+  ldfparser = callPackage ../development/python-modules/ldfparser { };
+
+  leather = callPackage ../development/python-modules/leather { };
+
+  leb128 = callPackage ../development/python-modules/leb128 { };
+
+  led-ble = callPackage ../development/python-modules/led-ble { };
+
+  ledger = (toPythonModule (pkgs.ledger.override {
+    usePython = true;
+    python3 = python;
+  })).py;
+
+  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
+
+  ledger-bitcoin = callPackage ../development/python-modules/ledger-bitcoin { };
+
+  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
+
+  ledgercomm = callPackage ../development/python-modules/ledgercomm { };
+
+  ledgerwallet = callPackage ../development/python-modules/ledgerwallet {
+    inherit (pkgs.darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  leidenalg = callPackage ../development/python-modules/leidenalg {
+    igraph-c = pkgs.igraph;
+  };
+
+  leveldb = callPackage ../development/python-modules/leveldb { };
+
+  levenshtein = callPackage ../development/python-modules/levenshtein { };
+
+  lexid = callPackage ../development/python-modules/lexid { };
+
+  lhapdf = toPythonModule (pkgs.lhapdf.override {
+    inherit python;
+  });
+
+  libagent = callPackage ../development/python-modules/libagent { };
+
+  pa-ringbuffer = callPackage ../development/python-modules/pa-ringbuffer { };
+
+  libais = callPackage ../development/python-modules/libais { };
+
+  libarchive-c = callPackage ../development/python-modules/libarchive-c {
+    inherit (pkgs) libarchive;
+  };
+
+  libarcus = callPackage ../development/python-modules/libarcus {
+    protobuf = pkgs.protobuf_21;
+  };
+
+  libasyncns = callPackage ../development/python-modules/libasyncns {
+    inherit (pkgs) libasyncns;
+  };
+
+  libclang = callPackage ../development/python-modules/libclang { };
+
+  libcloud = callPackage ../development/python-modules/libcloud { };
+
+  libcomps = lib.pipe pkgs.libcomps [
+    toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { inherit python; })
+    (p: p.py)
+  ];
+
+  libcst = callPackage ../development/python-modules/libcst { };
+
+  libdnf = lib.pipe pkgs.libdnf [
+    toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { inherit python; })
+    (p: p.py)
+  ];
+
+  libevdev = callPackage ../development/python-modules/libevdev { };
+
+  libfdt = toPythonModule (pkgs.dtc.override {
+    inherit python;
+    pythonSupport = true;
+  });
+
+  libfive = toPythonModule (pkgs.libfive.override {
+    inherit python;
+  });
+
+  libgpiod = callPackage ../development/python-modules/libgpiod {
+    inherit (pkgs) libgpiod;
+  };
+
+  libgpuarray = callPackage ../development/python-modules/libgpuarray {
+    clblas = pkgs.clblas.override { inherit (self) boost; };
+    inherit (pkgs.config) cudaSupport;
+  };
+
+  libiio = (toPythonModule (pkgs.libiio.override {
+    pythonSupport = true;
+    inherit python;
+  })).python;
+
+  libkeepass = callPackage ../development/python-modules/libkeepass { };
+
+  libknot = callPackage ../development/python-modules/libknot { };
+
+  liblarch = callPackage ../development/python-modules/liblarch { };
+
+  liblzfse = callPackage ../development/python-modules/liblzfse {
+    inherit (pkgs) lzfse;
+  };
+
+  libmodulemd = lib.pipe pkgs.libmodulemd [
+    toPythonModule
+    (p:
+      p.overrideAttrs (super: {
+        meta = super.meta // {
+          outputsToInstall = [ "py" ]; # The package always builds python3 bindings
+          broken = (super.meta.broken or false) || !isPy3k;
+        };
+      }))
+    (p: p.override { python3 = python; })
+    (p: p.py)
+  ];
+
+  libmr = callPackage ../development/python-modules/libmr { };
+
+  libnacl = callPackage ../development/python-modules/libnacl {
+    inherit (pkgs) libsodium;
+  };
+
+  libpcap = callPackage ../development/python-modules/libpcap {
+    pkgsLibpcap = pkgs.libpcap; # Needs the C library
+  };
+
+  libpurecool = callPackage ../development/python-modules/libpurecool { };
+
+  libpyfoscam = callPackage ../development/python-modules/libpyfoscam { };
+
+  libpyvivotek = callPackage ../development/python-modules/libpyvivotek { };
+
+  libpwquality = lib.pipe pkgs.libpwquality [
+    toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { enablePython = true; inherit python; })
+    (p: p.py)
+  ];
+
+  libredwg = toPythonModule (pkgs.libredwg.override {
+    enablePython = true;
+    inherit (self) python libxml2;
+  });
+
+  librepo = lib.pipe pkgs.librepo [
+    toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { inherit python; })
+    (p: p.py)
+  ];
+
+  librespot = callPackage ../development/python-modules/librespot { };
+
+  libretranslate = callPackage ../development/python-modules/libretranslate { };
+
+  librosa = callPackage ../development/python-modules/librosa { };
+
+  librouteros = callPackage ../development/python-modules/librouteros { };
+
+  libsass = callPackage ../development/python-modules/libsass {
+    inherit (pkgs) libsass;
+  };
+
+  libsavitar = callPackage ../development/python-modules/libsavitar { };
+
+
+  libsixel = callPackage ../development/python-modules/libsixel {
+    inherit (pkgs) libsixel;
+  };
+
+  libselinux = lib.pipe pkgs.libselinux [
+    toPythonModule
+    (p:
+      p.overrideAttrs (super: {
+        meta = super.meta // {
+          outputsToInstall = [ "py" ];
+          broken = super.meta.broken or isPy27;
+        };
+      }))
+    (p:
+      p.override {
+        enablePython = true;
+        python3 = python;
+      })
+    (p: p.py)
+  ];
+
+  libsoundtouch = callPackage ../development/python-modules/libsoundtouch { };
+
+  libthumbor = callPackage ../development/python-modules/libthumbor { };
+
+  libtmux = callPackage ../development/python-modules/libtmux { };
+
+  libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python;
+
+  libusb1 = callPackage ../development/python-modules/libusb1 {
+    inherit (pkgs) libusb1;
+  };
+
+  libusbsio = callPackage ../development/python-modules/libusbsio {
+    inherit (pkgs) libusbsio;
+  };
+
+  libversion = callPackage ../development/python-modules/libversion {
+    inherit (pkgs) libversion;
+  };
+
+  libvirt = callPackage ../development/python-modules/libvirt {
+    inherit (pkgs) libvirt;
+  };
+
+  libxml2 = (toPythonModule (pkgs.libxml2.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
+
+  libxslt = (toPythonModule (pkgs.libxslt.override {
+    pythonSupport = true;
+    inherit (self) python libxml2;
+  })).py;
+
+  liccheck = callPackage ../development/python-modules/liccheck { };
+
+  license-expression = callPackage ../development/python-modules/license-expression { };
+
+  lief = (toPythonModule (pkgs.lief.override {
+    inherit python;
+  })).py;
+
+  life360 = callPackage ../development/python-modules/life360 { };
+
+  lifelines = callPackage ../development/python-modules/lifelines { };
+
+  lightgbm = callPackage ../development/python-modules/lightgbm { };
+
+  lightning-utilities  = callPackage ../development/python-modules/lightning-utilities { };
+
+  lightparam = callPackage ../development/python-modules/lightparam { };
+
+  lightwave = callPackage ../development/python-modules/lightwave { };
+
+  lightwave2 = callPackage ../development/python-modules/lightwave2 { };
+
+  lima = callPackage ../development/python-modules/lima { };
+
+  lime = callPackage ../development/python-modules/lime { };
+
+  limiter= callPackage ../development/python-modules/limiter { };
+
+  limitlessled = callPackage ../development/python-modules/limitlessled { };
+
+  limits = callPackage ../development/python-modules/limits { };
+
+  limnoria = callPackage ../development/python-modules/limnoria { };
+
+  linear_operator = callPackage ../development/python-modules/linear_operator { };
+
+  linecache2 = callPackage ../development/python-modules/linecache2 { };
+
+  lineedit = callPackage ../development/python-modules/lineedit { };
+
+  line-profiler = callPackage ../development/python-modules/line-profiler { };
+
+  linetable = callPackage ../development/python-modules/linetable { };
+
+  lingua = callPackage ../development/python-modules/lingua { };
+
+  linien-client = callPackage ../development/python-modules/linien-client { };
+
+  linien-common = callPackage ../development/python-modules/linien-common { };
+
+  linkify-it-py = callPackage ../development/python-modules/linkify-it-py { };
+
+  linknlink = callPackage ../development/python-modules/linknlink { };
+
+  linode-api = callPackage ../development/python-modules/linode-api { };
+
+  linode = callPackage ../development/python-modules/linode { };
+
+  linuxfd = callPackage ../development/python-modules/linuxfd { };
+
+  lion-pytorch = callPackage ../development/python-modules/lion-pytorch { };
+
+  liquidctl = callPackage ../development/python-modules/liquidctl { };
+
+  lirc = toPythonModule (pkgs.lirc.override {
+    python3 = python;
+  });
+
+  lit = callPackage ../development/python-modules/lit { };
+
+  litellm = callPackage ../development/python-modules/litellm { };
+
+  litemapy = callPackage ../development/python-modules/litemapy { };
+
+  littleutils = callPackage ../development/python-modules/littleutils { };
+
+  livelossplot = callPackage ../development/python-modules/livelossplot { };
+
+  livereload = callPackage ../development/python-modules/livereload { };
+
+  lizard = callPackage ../development/python-modules/lizard { };
+
+  llfuse = callPackage ../development/python-modules/llfuse {
+    inherit (pkgs) fuse;
+  };
+
+  llm = callPackage ../development/python-modules/llm { };
+
+  llvmlite = callPackage ../development/python-modules/llvmlite {
+    # llvmlite always requires a specific version of llvm.
+    llvm = pkgs.llvm_14;
+  };
+
+  lmdb = callPackage ../development/python-modules/lmdb {
+    inherit (pkgs) lmdb;
+  };
+
+  lmfit = callPackage ../development/python-modules/lmfit { };
+
+  lml = callPackage ../development/python-modules/lml { };
+
+  lmnotify = callPackage ../development/python-modules/lmnotify { };
+
+  lmtpd = callPackage ../development/python-modules/lmtpd { };
+
+  loca = callPackage ../development/python-modules/loca { };
+
+  localimport = callPackage ../development/python-modules/localimport { };
+
+  localstack = callPackage ../development/python-modules/localstack { };
+
+  localstack-client = callPackage ../development/python-modules/localstack-client { };
+
+  localstack-ext = callPackage ../development/python-modules/localstack-ext { };
+
+  localzone = callPackage ../development/python-modules/localzone { };
+
+  locationsharinglib = callPackage ../development/python-modules/locationsharinglib { };
+
+  locket = callPackage ../development/python-modules/locket { };
+
+  lockfile = callPackage ../development/python-modules/lockfile { };
+
+  log-symbols = callPackage ../development/python-modules/log-symbols { };
+
+  logbook = callPackage ../development/python-modules/logbook { };
+
+  logfury = callPackage ../development/python-modules/logfury { };
+
+  logging-journald = callPackage ../development/python-modules/logging-journald { };
+
+  logi-circle = callPackage ../development/python-modules/logi-circle { };
+
+  logical-unification = callPackage ../development/python-modules/logical-unification { };
+
+  logilab-common = callPackage ../development/python-modules/logilab/common.nix { };
+
+  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix { };
+
+  logster = callPackage ../development/python-modules/logster { };
+
+  loguru = callPackage ../development/python-modules/loguru { };
+
+  logutils = callPackage ../development/python-modules/logutils {
+    redis-server = pkgs.redis;
+  };
+
+  logzero = callPackage ../development/python-modules/logzero { };
+
+  lomond = callPackage ../development/python-modules/lomond { };
+
+  loopy = callPackage ../development/python-modules/loopy { };
+
+  looseversion = callPackage ../development/python-modules/looseversion { };
+
+  loqedapi = callPackage ../development/python-modules/loqedapi { };
+
+  losant-rest = callPackage ../development/python-modules/losant-rest { };
+
+  lpc-checksum = callPackage ../development/python-modules/lpc-checksum { };
+
+  lrcalc-python = callPackage ../development/python-modules/lrcalc-python { };
+
+  lru-dict = callPackage ../development/python-modules/lru-dict { };
+
+  lsassy = callPackage ../development/python-modules/lsassy { };
+
+  lsprotocol = callPackage ../development/python-modules/lsprotocol { };
+
+  ltpycld2 = callPackage ../development/python-modules/ltpycld2 { };
+
+  luddite = callPackage ../development/python-modules/luddite { };
+
+  luftdaten = callPackage ../development/python-modules/luftdaten { };
+
+  luhn = callPackage ../development/python-modules/luhn { };
+
+  lunarcalendar = callPackage ../development/python-modules/lunarcalendar { };
+
+  luqum = callPackage ../development/python-modules/luqum { };
+
+  luxor = callPackage ../development/python-modules/luxor { };
+
+  luxtronik = callPackage ../development/python-modules/luxtronik { };
+
+  lupa = callPackage ../development/python-modules/lupa { };
+
+  lupupy = callPackage ../development/python-modules/lupupy { };
+
+  lxmf= callPackage ../development/python-modules/lxmf { };
+
+  lxml = callPackage ../development/python-modules/lxml {
+    inherit (pkgs) libxml2 libxslt zlib;
+  };
+
+  lxml-stubs = callPackage ../development/python-modules/lxml-stubs { };
+
+  lyricwikia = callPackage ../development/python-modules/lyricwikia { };
+
+  lz4 = callPackage ../development/python-modules/lz4 { };
+
+  lzallright = callPackage ../development/python-modules/lzallright { };
+
+  lzstring = callPackage ../development/python-modules/lzstring { };
+
+  m2crypto = callPackage ../development/python-modules/m2crypto { };
+
+  m2r = callPackage ../development/python-modules/m2r { };
+
+  m3u8 = callPackage ../development/python-modules/m3u8 { };
+
+  mac_alias = callPackage ../development/python-modules/mac_alias { };
+
+  mac-vendor-lookup = callPackage ../development/python-modules/mac-vendor-lookup { };
+
+  macaddress = callPackage ../development/python-modules/macaddress{ };
+
+  macfsevents = callPackage ../development/python-modules/macfsevents {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
+  };
+
+  macropy = callPackage ../development/python-modules/macropy { };
+
+  maestral = callPackage ../development/python-modules/maestral { };
+
+  magic = callPackage ../development/python-modules/magic { };
+
+  magicgui = callPackage ../development/python-modules/magicgui { };
+
+  magic-filter = callPackage ../development/python-modules/magic-filter { };
+
+  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
+
+  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
+
+  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
+
+  mahotas = callPackage ../development/python-modules/mahotas { };
+
+  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
+
+  mailchecker = callPackage ../development/python-modules/mailchecker { };
+
+  mailchimp = callPackage ../development/python-modules/mailchimp { };
+
+  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
+
+  rtmixer = callPackage ../development/python-modules/rtmixer { };
+
+  mail-parser = callPackage ../development/python-modules/mail-parser { };
+
+  makefun = callPackage ../development/python-modules/makefun { };
+
+  mailsuite = callPackage ../development/python-modules/mailsuite { };
+
+  maison = callPackage ../development/python-modules/maison { };
+
+  mako = callPackage ../development/python-modules/mako { };
+
+  malduck= callPackage ../development/python-modules/malduck { };
+
+  managesieve = callPackage ../development/python-modules/managesieve { };
+
+  mando = callPackage ../development/python-modules/mando { };
+
+  mandown = callPackage ../development/python-modules/mandown { };
+
+  manhole = callPackage ../development/python-modules/manhole { };
+
+  manimpango = callPackage ../development/python-modules/manimpango {
+    inherit (pkgs.darwin.apple_sdk.frameworks) AppKit;
+  };
+
+  manifest-ml = callPackage ../development/python-modules/manifest-ml { };
+
+  manifestoo = callPackage ../development/python-modules/manifestoo { };
+
+  manifestoo-core = callPackage ../development/python-modules/manifestoo-core { };
+
+  manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix { };
+
+  manuel = callPackage ../development/python-modules/manuel { };
+
+  manuf = callPackage ../development/python-modules/manuf { };
+
+  mapbox = callPackage ../development/python-modules/mapbox { };
+
+  mapbox-earcut = callPackage ../development/python-modules/mapbox-earcut { };
+
+  mariadb = callPackage ../development/python-modules/mariadb { };
+
+  marisa = callPackage ../development/python-modules/marisa {
+    inherit (pkgs) marisa;
+  };
+
+  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
+
+  markdown2 = callPackage ../development/python-modules/markdown2 { };
+
+  markdown = callPackage ../development/python-modules/markdown { };
+
+  markdown-include = callPackage ../development/python-modules/markdown-include { };
+
+  markdown-it-py = callPackage ../development/python-modules/markdown-it-py { };
+
+  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
+
+  markdownify  = callPackage ../development/python-modules/markdownify { };
+
+  markupsafe = callPackage ../development/python-modules/markupsafe { };
+
+  markuppy = callPackage ../development/python-modules/markuppy { };
+
+  markups = callPackage ../development/python-modules/markups { };
+
+  marshmallow = callPackage ../development/python-modules/marshmallow { };
+
+  marshmallow-dataclass = callPackage ../development/python-modules/marshmallow-dataclass { };
+
+  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
+
+  marshmallow-oneofschema = callPackage ../development/python-modules/marshmallow-oneofschema { };
+
+  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
+
+  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
+
+  mashumaro = callPackage ../development/python-modules/mashumaro { };
+
+  masky = callPackage ../development/python-modules/masky { };
+
+  mastodon-py = callPackage ../development/python-modules/mastodon-py { };
+
+  mat2 = callPackage ../development/python-modules/mat2 { };
+
+  material-color-utilities = callPackage ../development/python-modules/material-color-utilities { };
+
+  matchpy = callPackage ../development/python-modules/matchpy { };
+
+  mathlibtools = callPackage ../development/python-modules/mathlibtools { };
+
+  matlink-gpapi = callPackage ../development/python-modules/matlink-gpapi { };
+
+  matplotlib = callPackage ../development/python-modules/matplotlib {
+    stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+    ghostscript = pkgs.ghostscript_headless;
+  };
+
+  matplotlib-inline = callPackage ../development/python-modules/matplotlib-inline { };
+
+  matplotlib-sixel = callPackage ../development/python-modules/matplotlib-sixel { };
+
+  matplotx = callPackage ../development/python-modules/matplotx { };
+
+  matrix-api-async = callPackage ../development/python-modules/matrix-api-async { };
+
+  matrix-client = callPackage ../development/python-modules/matrix-client { };
+
+  matrix-common = callPackage ../development/python-modules/matrix-common { };
+
+  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
+
+  mattermostdriver = callPackage ../development/python-modules/mattermostdriver { };
+
+  maubot = callPackage ../tools/networking/maubot { };
+
+  mautrix = callPackage ../development/python-modules/mautrix { };
+
+  mautrix-appservice = self.mautrix; # alias 2019-12-28
+
+  maxcube-api = callPackage ../development/python-modules/maxcube-api { };
+
+  maxminddb = callPackage ../development/python-modules/maxminddb { };
+
+  maya = callPackage ../development/python-modules/maya { };
+
+  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
+    inherit (self) buildPythonPackage pythonOlder pythonAtLeast pyface pygments numpy packaging vtk traitsui envisage apptools pyqt5;
+  };
+
+  mbddns = callPackage ../development/python-modules/mbddns { };
+
+  mbstrdecoder = callPackage ../development/python-modules/mbstrdecoder { };
+
+  mccabe = callPackage ../development/python-modules/mccabe { };
+
+  mcstatus = callPackage ../development/python-modules/mcstatus { };
+
+  mcuuid = callPackage ../development/python-modules/mcuuid { };
+
+  md-toc = callPackage ../development/python-modules/md-toc { };
+
+  mdx-truly-sane-lists = callPackage ../development/python-modules/mdx-truly-sane-lists { };
+
+  md2gemini = callPackage ../development/python-modules/md2gemini { };
+
+  mdformat = callPackage ../development/python-modules/mdformat { };
+  mdformat-admon = callPackage ../development/python-modules/mdformat-admon { };
+  mdformat-beautysh = callPackage ../development/python-modules/mdformat-beautysh { };
+  mdformat-footnote = callPackage ../development/python-modules/mdformat-footnote { };
+  mdformat-frontmatter = callPackage ../development/python-modules/mdformat-frontmatter { };
+  mdformat-gfm = callPackage ../development/python-modules/mdformat-gfm { };
+  mdformat-mkdocs = callPackage ../development/python-modules/mdformat-mkdocs { };
+  mdformat-nix-alejandra = callPackage ../development/python-modules/mdformat-nix-alejandra { };
+  mdformat-simple-breaks = callPackage ../development/python-modules/mdformat-simple-breaks { };
+  mdformat-tables = callPackage ../development/python-modules/mdformat-tables { };
+  mdformat-toc = callPackage ../development/python-modules/mdformat-toc { };
+
+  mdit-py-plugins = callPackage ../development/python-modules/mdit-py-plugins { };
+
+  mdtraj = callPackage ../development/python-modules/mdtraj { };
+
+  mdurl = callPackage ../development/python-modules/mdurl { };
+
+  mdutils = callPackage ../development/python-modules/mdutils { };
+
+  mdp = callPackage ../development/python-modules/mdp { };
+
+  measurement = callPackage ../development/python-modules/measurement { };
+
+  meater-python = callPackage ../development/python-modules/meater-python { };
+
+  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
+
+  mechanicalsoup = callPackage ../development/python-modules/mechanicalsoup { };
+
+  mechanize = callPackage ../development/python-modules/mechanize { };
+
+  mediafile = callPackage ../development/python-modules/mediafile { };
+
+  mediafire-dl = callPackage ../development/python-modules/mediafire-dl { };
+
+  mediapy = callPackage ../development/python-modules/mediapy { };
+
+  meeko = callPackage ../development/python-modules/meeko { };
+
+  meep = callPackage ../development/python-modules/meep { };
+
+  meilisearch = callPackage ../development/python-modules/meilisearch { };
+
+  meinheld = callPackage ../development/python-modules/meinheld { };
+
+  meld3 = callPackage ../development/python-modules/meld3 { };
+
+  memestra = callPackage ../development/python-modules/memestra { };
+
+  memory-allocator = callPackage ../development/python-modules/memory-allocator { };
+
+  memory-profiler = callPackage ../development/python-modules/memory-profiler { };
+
+  meraki = callPackage ../development/python-modules/meraki { };
+
+  mercadopago = callPackage ../development/python-modules/mercadopago { };
+
+  mercantile = callPackage ../development/python-modules/mercantile { };
+
+  mercurial = toPythonModule (pkgs.mercurial.override {
+    python3Packages = self;
+  });
+
+  merge3 = callPackage ../development/python-modules/merge3 { };
+
+  mergedb = callPackage ../development/python-modules/mergedb { };
+
+  mergedeep = callPackage ../development/python-modules/mergedeep { };
+
+  mergedict = callPackage ../development/python-modules/mergedict { };
+
+  merkletools = callPackage ../development/python-modules/merkletools { };
+
+  meross-iot = callPackage ../development/python-modules/meross-iot { };
+
+  mesa = callPackage ../development/python-modules/mesa { };
+
+  meshcat = callPackage ../development/python-modules/meshcat { };
+
+  meshio = callPackage ../development/python-modules/meshio { };
+
+  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
+
+  meshtastic = callPackage ../development/python-modules/meshtastic { };
+
+  meson = toPythonModule ((pkgs.meson.override { python3 = python; }).overrideAttrs
+    (oldAttrs: { # We do not want the setup hook in Python packages because the build is performed differently.
+      setupHook = null;
+    }));
+
+  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
+
+  meson-python = callPackage ../development/python-modules/meson-python {
+    inherit (pkgs) ninja;
+  };
+
+  messagebird = callPackage ../development/python-modules/messagebird { };
+
+  metakernel = callPackage ../development/python-modules/metakernel { };
+
+  metar = callPackage ../development/python-modules/metar { };
+
+  metawear = callPackage ../development/python-modules/metawear { };
+
+  meteoalertapi = callPackage ../development/python-modules/meteoalertapi { };
+
+  meteocalc = callPackage ../development/python-modules/meteocalc { };
+
+  meteofrance-api = callPackage ../development/python-modules/meteofrance-api { };
+
+  mezzanine = callPackage ../development/python-modules/mezzanine { };
+
+  mf2py = callPackage ../development/python-modules/mf2py { };
+
+  mhcflurry = callPackage ../development/python-modules/mhcflurry { };
+
+  mhcgnomes = callPackage ../development/python-modules/mhcgnomes { };
+
+  miauth = callPackage ../development/python-modules/miauth { };
+
+  micawber = callPackage ../development/python-modules/micawber { };
+
+  microdata = callPackage ../development/python-modules/microdata { };
+
+  midiutil = callPackage ../development/python-modules/midiutil { };
+
+  mido = callPackage ../development/python-modules/mido { };
+
+  migen = callPackage ../development/python-modules/migen { };
+
+  mike = callPackage ../development/python-modules/mike { };
+
+  milc = callPackage ../development/python-modules/milc { };
+
+  milksnake = callPackage ../development/python-modules/milksnake { };
+
+  mill-local = callPackage ../development/python-modules/mill-local { };
+
+  millheater = callPackage ../development/python-modules/millheater { };
+
+  mindsdb-evaluator = callPackage ../development/python-modules/mindsdb-evaluator { };
+
+  minexr = callPackage ../development/python-modules/minexr { };
+
+  miniaudio = callPackage ../development/python-modules/miniaudio {
+    inherit (pkgs) miniaudio;
+    inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox CoreAudio;
+  };
+
+  minichain = callPackage ../development/python-modules/minichain { };
+
+  minidb = callPackage ../development/python-modules/minidb { };
+
+  minidump = callPackage ../development/python-modules/minidump { };
+
+  miniful = callPackage ../development/python-modules/miniful { };
+
+  minikanren = callPackage ../development/python-modules/minikanren { };
+
+  minikerberos = callPackage ../development/python-modules/minikerberos { };
+
+  minimal-snowplow-tracker = callPackage ../development/python-modules/minimal-snowplow-tracker { };
+
+  minimock = callPackage ../development/python-modules/minimock { };
+
+  mininet-python = (toPythonModule (pkgs.mininet.override {
+    python3 = python;
+  })).py;
+
+  minio = callPackage ../development/python-modules/minio { };
+
+  miniupnpc = callPackage ../development/python-modules/miniupnpc {
+    inherit (pkgs.darwin) cctools;
+  };
+
+  mip = callPackage ../development/python-modules/mip { };
+
+  mir_eval = callPackage ../development/python-modules/mir_eval { };
+
+  mirakuru = callPackage ../development/python-modules/mirakuru { };
+
+  misaka = callPackage ../development/python-modules/misaka { };
+
+  misoc = callPackage ../development/python-modules/misoc { };
+
+  mistletoe = callPackage ../development/python-modules/mistletoe { };
+
+  mistune = callPackage ../development/python-modules/mistune { };
+
+  mitmproxy = callPackage ../development/python-modules/mitmproxy { };
+
+  mitmproxy-macos = callPackage ../development/python-modules/mitmproxy-macos { };
+
+  mitmproxy-rs = callPackage ../development/python-modules/mitmproxy-rs { };
+
+  mitmproxy-wireguard = callPackage ../development/python-modules/mitmproxy-wireguard { };
+
+  mitogen = callPackage ../development/python-modules/mitogen { };
+
+  mixins = callPackage ../development/python-modules/mixins { };
+
+  mixpanel = callPackage ../development/python-modules/mixpanel { };
+
+  mizani = callPackage ../development/python-modules/mizani { };
+
+  mkdocs = callPackage ../development/python-modules/mkdocs { };
+  mkdocs-autorefs = callPackage ../development/python-modules/mkdocs-autorefs { };
+  mkdocs-drawio-exporter = callPackage ../development/python-modules/mkdocs-drawio-exporter { };
+  mkdocs-exclude = callPackage ../development/python-modules/mkdocs-exclude { };
+  mkdocs-jupyter = callPackage ../development/python-modules/mkdocs-jupyter { };
+  mkdocs-gitlab = callPackage ../development/python-modules/mkdocs-gitlab-plugin { };
+  mkdocs-git-authors-plugin = callPackage ../development/python-modules/mkdocs-git-authors-plugin { };
+  mkdocs-git-revision-date-localized-plugin = callPackage ../development/python-modules/mkdocs-git-revision-date-localized-plugin { };
+  mkdocs-linkcheck = callPackage ../development/python-modules/mkdocs-linkcheck { };
+  mkdocs-macros = callPackage ../development/python-modules/mkdocs-macros { };
+  mkdocs-material = callPackage ../development/python-modules/mkdocs-material { };
+  mkdocs-material-extensions = callPackage ../development/python-modules/mkdocs-material/mkdocs-material-extensions.nix { };
+  mkdocs-minify = callPackage ../development/python-modules/mkdocs-minify { };
+  mkdocs-redirects = callPackage ../development/python-modules/mkdocs-redirects { };
+  mkdocs-simple-hooks = callPackage ../development/python-modules/mkdocs-simple-hooks { };
+  mkdocs-swagger-ui-tag = callPackage ../development/python-modules/mkdocs-swagger-ui-tag { };
+
+  mkdocstrings = callPackage ../development/python-modules/mkdocstrings { };
+
+  mkdocstrings-python = callPackage ../development/python-modules/mkdocstrings-python { };
+
+  mkdocs-mermaid2-plugin = callPackage ../development/python-modules/mkdocs-mermaid2-plugin { };
+
+  mkl-service = callPackage ../development/python-modules/mkl-service { };
+
+  ml-collections = callPackage ../development/python-modules/ml-collections { };
+
+  ml-dtypes = callPackage ../development/python-modules/ml-dtypes { };
+
+  mlflow = callPackage ../development/python-modules/mlflow { };
+
+  mlrose = callPackage ../development/python-modules/mlrose { };
+
+  mlxtend = callPackage ../development/python-modules/mlxtend { };
+
+  mlt = toPythonModule (pkgs.mlt.override {
+    python3 = python;
+    enablePython = true;
+  });
+
+  mmcif-pdbx = callPackage ../development/python-modules/mmcif-pdbx { };
+
+  mmcv = callPackage ../development/python-modules/mmcv { };
+
+  mmengine = callPackage ../development/python-modules/mmengine { };
+
+  mmh3 = callPackage ../development/python-modules/mmh3 { };
+
+  mmpython = callPackage ../development/python-modules/mmpython { };
+
+  mmtf-python = callPackage ../development/python-modules/mmtf-python { };
+
+  mnemonic = callPackage ../development/python-modules/mnemonic { };
+
+  mne-python = callPackage ../development/python-modules/mne-python { };
+
+  mnist = callPackage ../development/python-modules/mnist { };
+
+  moat-ble = callPackage ../development/python-modules/moat-ble { };
+
+  mobi = callPackage ../development/python-modules/mobi { };
+
+  mobly = callPackage ../development/python-modules/mobly { };
+
+  mocket = callPackage ../development/python-modules/mocket {
+    redis-server = pkgs.redis;
+  };
+
+  mock = callPackage ../development/python-modules/mock { };
+
+  mockfs = callPackage ../development/python-modules/mockfs { };
+
+  mockito = callPackage ../development/python-modules/mockito { };
+
+  mock-open = callPackage ../development/python-modules/mock-open { };
+
+  mock-services = callPackage ../development/python-modules/mock-services { };
+
+  mock-ssh-server = callPackage ../development/python-modules/mock-ssh-server { };
+
+  mockupdb = callPackage ../development/python-modules/mockupdb { };
+
+  moddb = callPackage ../development/python-modules/moddb { };
+
+  model-bakery = callPackage ../development/python-modules/model-bakery { };
+
+  modelcif = callPackage ../development/python-modules/modelcif { };
+
+  modeled = callPackage ../development/python-modules/modeled { };
+
+  moderngl = callPackage ../development/python-modules/moderngl { };
+
+  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
+
+  modestmaps = callPackage ../development/python-modules/modestmaps { };
+
+  mohawk = callPackage ../development/python-modules/mohawk { };
+
+  molecule = callPackage ../development/python-modules/molecule { };
+
+  molecule-plugins = callPackage ../development/python-modules/molecule/plugins.nix { };
+
+  monai = callPackage ../development/python-modules/monai { };
+
+  monai-deploy = callPackage ../development/python-modules/monai-deploy { };
+
+  monero = callPackage ../development/python-modules/monero { };
+
+  mongomock = callPackage ../development/python-modules/mongomock { };
+
+  mongodict = callPackage ../development/python-modules/mongodict { };
+
+  mongoengine = callPackage ../development/python-modules/mongoengine { };
+
+  mongoquery = callPackage ../development/python-modules/mongoquery { };
+
+  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
+
+  monosat = pkgs.monosat.python {
+    inherit buildPythonPackage;
+    inherit (self) cython pytestCheckHook;
+  };
+
+  monotonic = callPackage ../development/python-modules/monotonic { };
+
+  monty = callPackage ../development/python-modules/monty { };
+
+  moonraker-api = callPackage ../development/python-modules/moonraker-api { };
+
+  mopeka-iot-ble = callPackage ../development/python-modules/mopeka-iot-ble { };
+
+  more-itertools = callPackage ../development/python-modules/more-itertools { };
+
+  more-properties = callPackage ../development/python-modules/more-properties { };
+
+  moreorless = callPackage ../development/python-modules/moreorless { };
+
+  moretools = callPackage ../development/python-modules/moretools { };
+
+  morfessor = callPackage ../development/python-modules/morfessor { };
+
+  morphys = callPackage ../development/python-modules/morphys { };
+
+  mortgage = callPackage ../development/python-modules/mortgage { };
+
+  motionblinds = callPackage ../development/python-modules/motionblinds { };
+
+  motioneye-client = callPackage ../development/python-modules/motioneye-client { };
+
+  moto = callPackage ../development/python-modules/moto { };
+
+  motor = callPackage ../development/python-modules/motor { };
+
+  mouseinfo = callPackage ../development/python-modules/mouseinfo { };
+
+  moviepy = callPackage ../development/python-modules/moviepy { };
+
+  mox3 = callPackage ../development/python-modules/mox3 { };
+
+  mpd2 = callPackage ../development/python-modules/mpd2 { };
+
+  mpi4py = callPackage ../development/python-modules/mpi4py { };
+
+  mpldatacursor = callPackage ../development/python-modules/mpldatacursor { };
+
+  mplfinance = callPackage ../development/python-modules/mplfinance { };
+
+  mplhep = callPackage ../development/python-modules/mplhep { };
+
+  mplhep-data = callPackage ../development/python-modules/mplhep-data { };
+
+  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
+
+  mpl-scatter-density = callPackage ../development/python-modules/mpl-scatter-density { };
+
+  mpmath = callPackage ../development/python-modules/mpmath { };
+
+  mpris-server = callPackage ../development/python-modules/mpris-server { };
+
+  mpv = callPackage ../development/python-modules/mpv {
+    inherit (pkgs) mpv;
+  };
+
+  mpyq = callPackage ../development/python-modules/mpyq { };
+
+  mrjob = callPackage ../development/python-modules/mrjob { };
+
+  mrsqm = callPackage ../development/python-modules/mrsqm { };
+
+  ms-active-directory = callPackage ../development/python-modules/ms-active-directory { };
+
+  ms-cv = callPackage ../development/python-modules/ms-cv { };
+
+  msal = callPackage ../development/python-modules/msal { };
+
+  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
+
+  mscerts = callPackage ../development/python-modules/mscerts { };
+
+  msgpack = callPackage ../development/python-modules/msgpack { };
+
+  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy { };
+
+  msg-parser = callPackage ../development/python-modules/msg-parser { };
+
+  msgspec = callPackage ../development/python-modules/msgspec { };
+
+  msldap = callPackage ../development/python-modules/msldap { };
+
+  msoffcrypto-tool = callPackage ../development/python-modules/msoffcrypto-tool { };
+
+  msprime = callPackage ../development/python-modules/msprime { };
+
+  mss = callPackage ../development/python-modules/mss { };
+
+  msrestazure = callPackage ../development/python-modules/msrestazure { };
+
+  msrest = callPackage ../development/python-modules/msrest { };
+
+  mt-940 = callPackage ../development/python-modules/mt-940 { };
+
+  mullvad-api = callPackage ../development/python-modules/mullvad-api { };
+
+  mullvad-closest = callPackage ../development/python-modules/mullvad-closest { };
+
+  mulpyplexer = callPackage ../development/python-modules/mulpyplexer { };
+
+  multidict = callPackage ../development/python-modules/multidict { };
+
+  multi-key-dict = callPackage ../development/python-modules/multi-key-dict { };
+
+  multimethod = callPackage ../development/python-modules/multimethod { };
+
+  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
+
+  multiprocess = callPackage ../development/python-modules/multiprocess { };
+
+  multiset = callPackage ../development/python-modules/multiset { };
+
+  multitasking = callPackage ../development/python-modules/multitasking { };
+
+  munch = callPackage ../development/python-modules/munch { };
+
+  mung = callPackage ../development/python-modules/mung { };
+
+  munkres = callPackage ../development/python-modules/munkres { };
+
+  murmurhash = callPackage ../development/python-modules/murmurhash { };
+
+  muscima = callPackage ../development/python-modules/muscima { };
+
+  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
+
+  music-tag = callPackage ../development/python-modules/music-tag { };
+
+  mutag = callPackage ../development/python-modules/mutag { };
+
+  mutagen = callPackage ../development/python-modules/mutagen { };
+
+  mutatormath = callPackage ../development/python-modules/mutatormath { };
+
+  mutesync = callPackage ../development/python-modules/mutesync { };
+
+  mutf8 = callPackage ../development/python-modules/mutf8 { };
+
+  mujoco = callPackage ../development/python-modules/mujoco {
+    inherit (pkgs) mujoco;
+  };
+
+  mujson = callPackage ../development/python-modules/mujson { };
+
+  mwcli = callPackage ../development/python-modules/mwcli { };
+
+  mwclient = callPackage ../development/python-modules/mwclient { };
+
+  mwdblib = callPackage ../development/python-modules/mwdblib { };
+
+  mwoauth = callPackage ../development/python-modules/mwoauth { };
+
+  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
+
+  mwtypes = callPackage ../development/python-modules/mwtypes { };
+
+  mwxml = callPackage ../development/python-modules/mwxml { };
+
+  mxnet = callPackage ../development/python-modules/mxnet { };
+
+  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
+
+  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
+
+  myhdl = callPackage ../development/python-modules/myhdl {
+    inherit (pkgs) ghdl verilog;
+  };
+
+  myhome = callPackage ../development/python-modules/myhome { };
+
+  myjwt = callPackage ../development/python-modules/myjwt { };
+
+  mypy = callPackage ../development/python-modules/mypy { };
+
+  mypy-boto3-builder = callPackage ../development/python-modules/mypy-boto3-builder { };
+
+  inherit (callPackage ../development/python-modules/mypy-boto3 { })
+
+    mypy-boto3-accessanalyzer
+
+    mypy-boto3-account
+
+    mypy-boto3-acm
+
+    mypy-boto3-acm-pca
+
+    mypy-boto3-alexaforbusiness
+
+    mypy-boto3-amp
+
+    mypy-boto3-amplify
+
+    mypy-boto3-amplifybackend
+
+    mypy-boto3-amplifyuibuilder
+
+    mypy-boto3-apigateway
+
+    mypy-boto3-apigatewaymanagementapi
+
+    mypy-boto3-apigatewayv2
+
+    mypy-boto3-appconfig
+
+    mypy-boto3-appconfigdata
+
+    mypy-boto3-appfabric
+
+    mypy-boto3-appflow
+
+    mypy-boto3-appintegrations
+
+    mypy-boto3-application-autoscaling
+
+    mypy-boto3-application-insights
+
+    mypy-boto3-applicationcostprofiler
+
+    mypy-boto3-appmesh
+
+    mypy-boto3-apprunner
+
+    mypy-boto3-appstream
+
+    mypy-boto3-appsync
+
+    mypy-boto3-arc-zonal-shift
+
+    mypy-boto3-athena
+
+    mypy-boto3-auditmanager
+
+    mypy-boto3-autoscaling
+
+    mypy-boto3-autoscaling-plans
+
+    mypy-boto3-backup
+
+    mypy-boto3-backup-gateway
+
+    mypy-boto3-backupstorage
+
+    mypy-boto3-batch
+
+    mypy-boto3-billingconductor
+
+    mypy-boto3-braket
+
+    mypy-boto3-budgets
+
+    mypy-boto3-ce
+
+    mypy-boto3-chime
+
+    mypy-boto3-chime-sdk-identity
+
+    mypy-boto3-chime-sdk-media-pipelines
+
+    mypy-boto3-chime-sdk-meetings
+
+    mypy-boto3-chime-sdk-messaging
+
+    mypy-boto3-chime-sdk-voice
+
+    mypy-boto3-cleanrooms
+
+    mypy-boto3-cloud9
+
+    mypy-boto3-cloudcontrol
+
+    mypy-boto3-clouddirectory
+
+    mypy-boto3-cloudformation
+
+    mypy-boto3-cloudfront
+
+    mypy-boto3-cloudhsm
+
+    mypy-boto3-cloudhsmv2
+
+    mypy-boto3-cloudsearch
+
+    mypy-boto3-cloudsearchdomain
+
+    mypy-boto3-cloudtrail
+
+    mypy-boto3-cloudtrail-data
+
+    mypy-boto3-cloudwatch
+
+    mypy-boto3-codeartifact
+
+    mypy-boto3-codebuild
+
+    mypy-boto3-codecatalyst
+
+    mypy-boto3-codecommit
+
+    mypy-boto3-codedeploy
+
+    mypy-boto3-codeguru-reviewer
+
+    mypy-boto3-codeguru-security
+
+    mypy-boto3-codeguruprofiler
+
+    mypy-boto3-codepipeline
+
+    mypy-boto3-codestar
+
+    mypy-boto3-codestar-connections
+
+    mypy-boto3-codestar-notifications
+
+    mypy-boto3-cognito-identity
+
+    mypy-boto3-cognito-idp
+
+    mypy-boto3-cognito-sync
+
+    mypy-boto3-comprehend
+
+    mypy-boto3-comprehendmedical
+
+    mypy-boto3-compute-optimizer
+
+    mypy-boto3-config
+
+    mypy-boto3-connect
+
+    mypy-boto3-connect-contact-lens
+
+    mypy-boto3-connectcampaigns
+
+    mypy-boto3-connectcases
+
+    mypy-boto3-connectparticipant
+
+    mypy-boto3-controltower
+
+    mypy-boto3-cur
+
+    mypy-boto3-customer-profiles
+
+    mypy-boto3-databrew
+
+    mypy-boto3-dataexchange
+
+    mypy-boto3-datapipeline
+
+    mypy-boto3-datasync
+
+    mypy-boto3-dax
+
+    mypy-boto3-detective
+
+    mypy-boto3-devicefarm
+
+    mypy-boto3-devops-guru
+
+    mypy-boto3-directconnect
+
+    mypy-boto3-discovery
+
+    mypy-boto3-dlm
+
+    mypy-boto3-dms
+
+    mypy-boto3-docdb
+
+    mypy-boto3-docdb-elastic
+
+    mypy-boto3-drs
+
+    mypy-boto3-ds
+
+    mypy-boto3-dynamodb
+
+    mypy-boto3-dynamodbstreams
+
+    mypy-boto3-ebs
+
+    mypy-boto3-ec2
+
+    mypy-boto3-ec2-instance-connect
+
+    mypy-boto3-ecr
+
+    mypy-boto3-ecr-public
+
+    mypy-boto3-ecs
+
+    mypy-boto3-efs
+
+    mypy-boto3-eks
+
+    mypy-boto3-elastic-inference
+
+    mypy-boto3-elasticache
+
+    mypy-boto3-elasticbeanstalk
+
+    mypy-boto3-elastictranscoder
+
+    mypy-boto3-elb
+
+    mypy-boto3-elbv2
+
+    mypy-boto3-emr
+
+    mypy-boto3-emr-containers
+
+    mypy-boto3-emr-serverless
+
+    mypy-boto3-entityresolution
+
+    mypy-boto3-es
+
+    mypy-boto3-events
+
+    mypy-boto3-evidently
+
+    mypy-boto3-finspace
+
+    mypy-boto3-finspace-data
+
+    mypy-boto3-firehose
+
+    mypy-boto3-fis
+
+    mypy-boto3-fms
+
+    mypy-boto3-forecast
+
+    mypy-boto3-forecastquery
+
+    mypy-boto3-frauddetector
+
+    mypy-boto3-fsx
+
+    mypy-boto3-gamelift
+
+    mypy-boto3-gamesparks
+
+    mypy-boto3-glacier
+
+    mypy-boto3-globalaccelerator
+
+    mypy-boto3-glue
+
+    mypy-boto3-grafana
+
+    mypy-boto3-greengrass
+
+    mypy-boto3-greengrassv2
+
+    mypy-boto3-groundstation
+
+    mypy-boto3-guardduty
+
+    mypy-boto3-health
+
+    mypy-boto3-healthlake
+
+    mypy-boto3-honeycode
+
+    mypy-boto3-iam
+
+    mypy-boto3-identitystore
+
+    mypy-boto3-imagebuilder
+
+    mypy-boto3-importexport
+
+    mypy-boto3-inspector
+
+    mypy-boto3-inspector2
+
+    mypy-boto3-internetmonitor
+
+    mypy-boto3-iot
+
+    mypy-boto3-iot-data
+
+    mypy-boto3-iot-jobs-data
+
+    mypy-boto3-iot-roborunner
+
+    mypy-boto3-iot1click-devices
+
+    mypy-boto3-iot1click-projects
+
+    mypy-boto3-iotanalytics
+
+    mypy-boto3-iotdeviceadvisor
+
+    mypy-boto3-iotevents
+
+    mypy-boto3-iotevents-data
+
+    mypy-boto3-iotfleethub
+
+    mypy-boto3-iotfleetwise
+
+    mypy-boto3-iotsecuretunneling
+
+    mypy-boto3-iotsitewise
+
+    mypy-boto3-iotthingsgraph
+
+    mypy-boto3-iottwinmaker
+
+    mypy-boto3-iotwireless
+
+    mypy-boto3-ivs
+
+    mypy-boto3-ivs-realtime
+
+    mypy-boto3-ivschat
+
+    mypy-boto3-kafka
+
+    mypy-boto3-kafkaconnect
+
+    mypy-boto3-kendra
+
+    mypy-boto3-kendra-ranking
+
+    mypy-boto3-keyspaces
+
+    mypy-boto3-kinesis
+
+    mypy-boto3-kinesis-video-archived-media
+
+    mypy-boto3-kinesis-video-media
+
+    mypy-boto3-kinesis-video-signaling
+
+    mypy-boto3-kinesis-video-webrtc-storage
+
+    mypy-boto3-kinesisanalytics
+
+    mypy-boto3-kinesisanalyticsv2
+
+    mypy-boto3-kinesisvideo
+
+    mypy-boto3-kms
+
+    mypy-boto3-lakeformation
+
+    mypy-boto3-lambda
+
+    mypy-boto3-lex-models
+
+    mypy-boto3-lex-runtime
+
+    mypy-boto3-lexv2-models
+
+    mypy-boto3-lexv2-runtime
+
+    mypy-boto3-license-manager
+
+    mypy-boto3-license-manager-linux-subscriptions
+
+    mypy-boto3-license-manager-user-subscriptions
+
+    mypy-boto3-lightsail
+
+    mypy-boto3-location
+
+    mypy-boto3-logs
+
+    mypy-boto3-lookoutequipment
+
+    mypy-boto3-lookoutmetrics
+
+    mypy-boto3-lookoutvision
+
+    mypy-boto3-m2
+
+    mypy-boto3-machinelearning
+
+    mypy-boto3-macie
+
+    mypy-boto3-macie2
+
+    mypy-boto3-managedblockchain
+
+    mypy-boto3-managedblockchain-query
+
+    mypy-boto3-marketplace-catalog
+
+    mypy-boto3-marketplace-entitlement
+
+    mypy-boto3-marketplacecommerceanalytics
+
+    mypy-boto3-mediaconnect
+
+    mypy-boto3-mediaconvert
+
+    mypy-boto3-medialive
+
+    mypy-boto3-mediapackage
+
+    mypy-boto3-mediapackage-vod
+
+    mypy-boto3-mediapackagev2
+
+    mypy-boto3-mediastore
+
+    mypy-boto3-mediastore-data
+
+    mypy-boto3-mediatailor
+
+    mypy-boto3-medical-imaging
+
+    mypy-boto3-memorydb
+
+    mypy-boto3-meteringmarketplace
+
+    mypy-boto3-mgh
+
+    mypy-boto3-mgn
+
+    mypy-boto3-migration-hub-refactor-spaces
+
+    mypy-boto3-migrationhub-config
+
+    mypy-boto3-migrationhuborchestrator
+
+    mypy-boto3-migrationhubstrategy
+
+    mypy-boto3-mobile
+
+    mypy-boto3-mq
+
+    mypy-boto3-mturk
+
+    mypy-boto3-mwaa
+
+    mypy-boto3-neptune
+
+    mypy-boto3-neptunedata
+
+    mypy-boto3-network-firewall
+
+    mypy-boto3-networkmanager
+
+    mypy-boto3-nimble
+
+    mypy-boto3-oam
+
+    mypy-boto3-omics
+
+    mypy-boto3-opensearch
+
+    mypy-boto3-opensearchserverless
+
+    mypy-boto3-opsworks
+
+    mypy-boto3-opsworkscm
+
+    mypy-boto3-organizations
+
+    mypy-boto3-osis
+
+    mypy-boto3-outposts
+
+    mypy-boto3-panorama
+
+    mypy-boto3-payment-cryptography
+
+    mypy-boto3-payment-cryptography-data
+
+    mypy-boto3-pca-connector-ad
+
+    mypy-boto3-personalize
+
+    mypy-boto3-personalize-events
+
+    mypy-boto3-personalize-runtime
+
+    mypy-boto3-pi
+
+    mypy-boto3-pinpoint
+
+    mypy-boto3-pinpoint-email
+
+    mypy-boto3-pinpoint-sms-voice
+
+    mypy-boto3-pinpoint-sms-voice-v2
+
+    mypy-boto3-pipes
+
+    mypy-boto3-polly
+
+    mypy-boto3-pricing
+
+    mypy-boto3-privatenetworks
+
+    mypy-boto3-proton
+
+    mypy-boto3-qldb
+
+    mypy-boto3-qldb-session
+
+    mypy-boto3-quicksight
+
+    mypy-boto3-ram
+
+    mypy-boto3-rbin
+
+    mypy-boto3-rds
+
+    mypy-boto3-rds-data
+
+    mypy-boto3-redshift
+
+    mypy-boto3-redshift-data
+
+    mypy-boto3-redshift-serverless
+
+    mypy-boto3-rekognition
+
+    mypy-boto3-resiliencehub
+
+    mypy-boto3-resource-explorer-2
+
+    mypy-boto3-resource-groups
+
+    mypy-boto3-resourcegroupstaggingapi
+
+    mypy-boto3-robomaker
+
+    mypy-boto3-rolesanywhere
+
+    mypy-boto3-route53
+
+    mypy-boto3-route53-recovery-cluster
+
+    mypy-boto3-route53-recovery-control-config
+
+    mypy-boto3-route53-recovery-readiness
+
+    mypy-boto3-route53domains
+
+    mypy-boto3-route53resolver
+
+    mypy-boto3-rum
+
+    mypy-boto3-s3
+
+    mypy-boto3-s3control
+
+    mypy-boto3-s3outposts
+
+    mypy-boto3-sagemaker
+
+    mypy-boto3-sagemaker-a2i-runtime
+
+    mypy-boto3-sagemaker-edge
+
+    mypy-boto3-sagemaker-featurestore-runtime
+
+    mypy-boto3-sagemaker-geospatial
+
+    mypy-boto3-sagemaker-metrics
+
+    mypy-boto3-sagemaker-runtime
+
+    mypy-boto3-savingsplans
+
+    mypy-boto3-scheduler
+
+    mypy-boto3-schemas
+
+    mypy-boto3-sdb
+
+    mypy-boto3-secretsmanager
+
+    mypy-boto3-securityhub
+
+    mypy-boto3-securitylake
+
+    mypy-boto3-serverlessrepo
+
+    mypy-boto3-service-quotas
+
+    mypy-boto3-servicecatalog
+
+    mypy-boto3-servicecatalog-appregistry
+
+    mypy-boto3-servicediscovery
+
+    mypy-boto3-ses
+
+    mypy-boto3-sesv2
+
+    mypy-boto3-shield
+
+    mypy-boto3-signer
+
+    mypy-boto3-simspaceweaver
+
+    mypy-boto3-sms
+
+    mypy-boto3-sms-voice
+
+    mypy-boto3-snow-device-management
+
+    mypy-boto3-snowball
+
+    mypy-boto3-sns
+
+    mypy-boto3-sqs
+
+    mypy-boto3-ssm
+
+    mypy-boto3-ssm-contacts
+
+    mypy-boto3-ssm-incidents
+
+    mypy-boto3-ssm-sap
+
+    mypy-boto3-sso
+
+    mypy-boto3-sso-admin
+
+    mypy-boto3-sso-oidc
+
+    mypy-boto3-stepfunctions
+
+    mypy-boto3-storagegateway
+
+    mypy-boto3-sts
+
+    mypy-boto3-support
+
+    mypy-boto3-support-app
+
+    mypy-boto3-swf
+
+    mypy-boto3-synthetics
+
+    mypy-boto3-textract
+
+    mypy-boto3-timestream-query
+
+    mypy-boto3-timestream-write
+
+    mypy-boto3-tnb
+
+    mypy-boto3-transcribe
+
+    mypy-boto3-transfer
+
+    mypy-boto3-translate
+
+    mypy-boto3-verifiedpermissions
+
+    mypy-boto3-voice-id
+
+    mypy-boto3-vpc-lattice
+
+    mypy-boto3-waf
+
+    mypy-boto3-waf-regional
+
+    mypy-boto3-wafv2
+
+    mypy-boto3-wellarchitected
+
+    mypy-boto3-wisdom
+
+    mypy-boto3-workdocs
+
+    mypy-boto3-worklink
+
+    mypy-boto3-workmail
+
+    mypy-boto3-workmailmessageflow
+
+    mypy-boto3-workspaces
+
+    mypy-boto3-workspaces-web
+
+    mypy-boto3-xray
+
+  ;
+
+  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
+
+  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
+
+  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
+
+  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
+
+  myst-docutils = callPackage ../development/python-modules/myst-docutils { };
+
+  myst-nb = callPackage ../development/python-modules/myst-nb { };
+
+  myst-parser = callPackage ../development/python-modules/myst-parser { };
+
+  n3fit = callPackage ../development/python-modules/n3fit { };
+
+  nad-receiver = callPackage ../development/python-modules/nad-receiver { };
+
+  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
+
+  namedlist = callPackage ../development/python-modules/namedlist { };
+
+  nameparser = callPackage ../development/python-modules/nameparser { };
+
+  names = callPackage ../development/python-modules/names { };
+
+  name-that-hash = callPackage ../development/python-modules/name-that-hash { };
+
+  nampa = callPackage ../development/python-modules/nampa { };
+
+  nanoid = callPackage ../development/python-modules/nanoid { };
+
+  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
+
+  navec = callPackage ../development/python-modules/navec { };
+
+  natasha = callPackage ../development/python-modules/natasha { };
+
+  nomadnet = callPackage ../development/python-modules/nomadnet { };
+
+  nox = callPackage ../development/python-modules/nox { };
+
+  nanomsg-python = callPackage ../development/python-modules/nanomsg-python {
+    inherit (pkgs) nanomsg;
+  };
+
+  nanotime = callPackage ../development/python-modules/nanotime { };
+
+  napalm = callPackage ../development/python-modules/napalm { };
+
+  napalm-hp-procurve = callPackage ../development/python-modules/napalm/hp-procurve.nix { };
+
+  napari = callPackage ../development/python-modules/napari {
+    inherit (pkgs.libsForQt5) mkDerivationWith wrapQtAppsHook;
+  };
+
+  napari-console = callPackage ../development/python-modules/napari-console { };
+
+  napari-npe2 = callPackage ../development/python-modules/napari-npe2 { };
+
+  napari-plugin-engine = callPackage ../development/python-modules/napari-plugin-engine { };
+
+  napari-svg = callPackage ../development/python-modules/napari-svg { };
+
+  nasdaq-data-link = callPackage ../development/python-modules/nasdaq-data-link { };
+
+  nats-py = callPackage ../development/python-modules/nats-py { };
+
+  nats-python = callPackage ../development/python-modules/nats-python { };
+
+  natsort = callPackage ../development/python-modules/natsort { };
+
+  naturalsort = callPackage ../development/python-modules/naturalsort { };
+
+  nbclassic = callPackage ../development/python-modules/nbclassic { };
+
+  nbclient = callPackage ../development/python-modules/nbclient { };
+
+  nbconflux = callPackage ../development/python-modules/nbconflux { };
+
+  nbconvert = callPackage ../development/python-modules/nbconvert { };
+
+  nbdev = callPackage ../development/python-modules/nbdev { };
+
+  nbdime = callPackage ../development/python-modules/nbdime { };
+
+  nbexec = callPackage ../development/python-modules/nbexec { };
+
+  nbformat = callPackage ../development/python-modules/nbformat { };
+
+  nbmerge = callPackage ../development/python-modules/nbmerge { };
+
+  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
+
+  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
+
+  nbtlib = callPackage ../development/python-modules/nbtlib { };
+
+  nbval = callPackage ../development/python-modules/nbval { };
+
+  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
+
+  nc-dnsapi = callPackage ../development/python-modules/nc-dnsapi { };
+
+  ncclient = callPackage ../development/python-modules/ncclient { };
+
+  nclib = callPackage ../development/python-modules/nclib { };
+
+  ndeflib = callPackage ../development/python-modules/ndeflib { };
+
+  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
+
+  ndindex = callPackage ../development/python-modules/ndindex { };
+
+  ndjson = callPackage ../development/python-modules/ndjson { };
+
+  ndms2-client = callPackage ../development/python-modules/ndms2-client { };
+
+  ndspy = callPackage ../development/python-modules/ndspy { };
+
+  ndtypes = callPackage ../development/python-modules/ndtypes { };
+
+  nengo = callPackage ../development/python-modules/nengo { };
+
+  neo = callPackage ../development/python-modules/neo { };
+
+  neo4j = callPackage ../development/python-modules/neo4j { };
+
+  nessclient = callPackage ../development/python-modules/nessclient { };
+
+  nest = toPythonModule(pkgs.nest-mpi.override { withPython = true; python3 = python; });
+
+  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
+
+  nested-lookup = callPackage ../development/python-modules/nested-lookup { };
+
+  nestedtext = callPackage ../development/python-modules/nestedtext { };
+
+  netaddr = callPackage ../development/python-modules/netaddr { };
+
+  netapp-lib = callPackage ../development/python-modules/netapp-lib { };
+
+  netapp-ontap = callPackage ../development/python-modules/netapp-ontap { };
+
+  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
+
+  netdata = callPackage ../development/python-modules/netdata { };
+
+  netdisco = callPackage ../development/python-modules/netdisco { };
+
+  nethsm = callPackage ../development/python-modules/nethsm { };
+
+  netifaces = callPackage ../development/python-modules/netifaces { };
+
+  netmiko = callPackage ../development/python-modules/netmiko { };
+
+  netio = callPackage ../development/python-modules/netio { };
+
+  nettigo-air-monitor = callPackage ../development/python-modules/nettigo-air-monitor { };
+
+  netutils = callPackage ../development/python-modules/netutils { };
+
+  networkx = callPackage ../development/python-modules/networkx { };
+
+  neuron-full = pkgs.neuron-full.override { python3 = python; };
+
+  neuronpy = python.pkgs.toPythonModule neuron-full;
+
+  nevow = callPackage ../development/python-modules/nevow { };
+
+  newversion = callPackage ../development/python-modules/newversion { };
+
+  newick = callPackage ../development/python-modules/newick { };
+
+  nexia = callPackage ../development/python-modules/nexia { };
+
+  nextcloudmonitor = callPackage ../development/python-modules/nextcloudmonitor { };
+
+  nextcord = callPackage ../development/python-modules/nextcord { };
+
+  nextdns = callPackage ../development/python-modules/nextdns { };
+
+  nfcpy = callPackage ../development/python-modules/nfcpy { };
+
+  nftables = toPythonModule (pkgs.nftables.override {
+    python3 = python;
+    withPython = true;
+  });
+
+  nh3 = callPackage ../development/python-modules/nh3 { };
+
+  niaaml = callPackage ../development/python-modules/niaaml { };
+
+  nianet = callPackage ../development/python-modules/nianet { };
+
+  niaarm = callPackage ../development/python-modules/niaarm { };
+
+  niaclass = callPackage ../development/python-modules/niaclass { };
+
+  niapy = callPackage ../development/python-modules/niapy { };
+
+  nibabel = callPackage ../development/python-modules/nibabel { };
+
+  nibe = callPackage ../development/python-modules/nibe { };
+
+  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
+
+  nikola = callPackage ../development/python-modules/nikola { };
+
+  niko-home-control = callPackage ../development/python-modules/niko-home-control { };
+
+  nilearn = callPackage ../development/python-modules/nilearn { };
+
+  niluclient = callPackage ../development/python-modules/niluclient { };
+
+  nimfa = callPackage ../development/python-modules/nimfa { };
+
+  nine = callPackage ../development/python-modules/nine { };
+
+  ninebot-ble = callPackage ../development/python-modules/ninebot-ble { };
+
+  ninja = callPackage ../development/python-modules/ninja { inherit (pkgs) ninja; };
+
+  nipy = callPackage ../development/python-modules/nipy { };
+
+  nipype = callPackage ../development/python-modules/nipype {
+    inherit (pkgs) which;
+  };
+
+  nitime = callPackage ../development/python-modules/nitime { };
+
+  nitpick = callPackage ../applications/version-management/nitpick { };
+
+  nitransforms = callPackage ../development/python-modules/nitransforms { };
+
+  nix-kernel = callPackage ../development/python-modules/nix-kernel {
+    inherit (pkgs) nix;
+  };
+
+  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
+
+  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
+
+  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
+
+  nkdfu = callPackage ../development/python-modules/nkdfu { };
+
+  nlpcloud = callPackage ../development/python-modules/nlpcloud { };
+
+  nltk = callPackage ../development/python-modules/nltk { };
+
+  nnpdf = toPythonModule (pkgs.nnpdf.override {
+    python3 = python;
+  });
+
+  nmapthon2 = callPackage ../development/python-modules/nmapthon2 { };
+
+  amaranth-boards = callPackage ../development/python-modules/amaranth-boards { };
+
+  amaranth = callPackage ../development/python-modules/amaranth { };
+
+  amaranth-soc = callPackage ../development/python-modules/amaranth-soc { };
+
+  nocasedict = callPackage ../development/python-modules/nocasedict { };
+
+  nocaselist = callPackage ../development/python-modules/nocaselist { };
+
+  nocturne = callPackage ../development/python-modules/nocturne { };
+
+  nodeenv = callPackage ../development/python-modules/nodeenv { };
+
+  nodepy-runtime = callPackage ../development/python-modules/nodepy-runtime { };
+
+  node-semver = callPackage ../development/python-modules/node-semver { };
+
+  noise = callPackage ../development/python-modules/noise { };
+
+  noiseprotocol = callPackage ../development/python-modules/noiseprotocol { };
+
+  normality = callPackage ../development/python-modules/normality { };
+
+  nose = callPackage ../development/python-modules/nose { };
+
+  nose2 = callPackage ../development/python-modules/nose2 { };
+
+  nose3 = callPackage ../development/python-modules/nose3 { };
+
+  nose-cov = callPackage ../development/python-modules/nose-cov { };
+
+  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
+
+  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
+
+  nose-timer = callPackage ../development/python-modules/nose-timer { };
+
+  nosejs = callPackage ../development/python-modules/nosejs { };
+
+  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
+
+  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
+
+  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
+
+  nosexcover = callPackage ../development/python-modules/nosexcover { };
+
+  notebook = callPackage ../development/python-modules/notebook { };
+
+  notebook-shim = callPackage ../development/python-modules/notebook-shim { };
+
+  notedown = callPackage ../development/python-modules/notedown { };
+
+  notifications-android-tv = callPackage ../development/python-modules/notifications-android-tv { };
+
+  notifications-python-client = callPackage ../development/python-modules/notifications-python-client { };
+
+  notify-events = callPackage ../development/python-modules/notify-events { };
+
+  notify-py = callPackage ../development/python-modules/notify-py { };
+
+  notify2 = callPackage ../development/python-modules/notify2 { };
+
+  notion-client = callPackage ../development/python-modules/notion-client { };
+
+  notmuch = callPackage ../development/python-modules/notmuch {
+    inherit (pkgs) notmuch;
+  };
+
+  notmuch2 = callPackage ../development/python-modules/notmuch2 {
+    inherit (pkgs) notmuch;
+  };
+
+  nototools = callPackage ../development/python-modules/nototools { };
+
+  notus-scanner = callPackage ../development/python-modules/notus-scanner { };
+
+  nplusone = callPackage ../development/python-modules/nplusone { };
+
+  nptyping  = callPackage ../development/python-modules/nptyping { };
+
+  npyscreen = callPackage ../development/python-modules/npyscreen { };
+
+  nsapi = callPackage ../development/python-modules/nsapi { };
+
+  ntc-templates = callPackage ../development/python-modules/ntc-templates { };
+
+  ntplib = callPackage ../development/python-modules/ntplib { };
+
+  nuitka = callPackage ../development/python-modules/nuitka { };
+
+  nuheat = callPackage ../development/python-modules/nuheat { };
+
+  nulltype = callPackage ../development/python-modules/nulltype { };
+
+  num2words = callPackage ../development/python-modules/num2words { };
+
+  numba = callPackage ../development/python-modules/numba {
+    inherit (pkgs.config) cudaSupport;
+  };
+
+  numbaWithCuda = self.numba.override {
+    cudaSupport = true;
+  };
+
+  numba-scipy = callPackage ../development/python-modules/numba-scipy { };
+
+  numcodecs = callPackage ../development/python-modules/numcodecs { };
+
+  numdifftools = callPackage ../development/python-modules/numdifftools { };
+
+  numericalunits = callPackage ../development/python-modules/numericalunits { };
+
+  numexpr = callPackage ../development/python-modules/numexpr { };
+
+  numpydoc = callPackage ../development/python-modules/numpydoc { };
+
+  numpy = callPackage ../development/python-modules/numpy { };
+
+  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
+
+  numpyro = callPackage ../development/python-modules/numpyro { };
+
+  nunavut = callPackage ../development/python-modules/nunavut { };
+
+  nutils = callPackage ../development/python-modules/nutils { };
+
+  nvchecker = callPackage ../development/python-modules/nvchecker { };
+
+  nvdlib = callPackage ../development/python-modules/nvdlib { };
+
+  nvidia-ml-py = callPackage ../development/python-modules/nvidia-ml-py { };
+
+  nsz = callPackage ../development/python-modules/nsz { };
+
+  nxt-python = callPackage ../development/python-modules/nxt-python { };
+
+  python-ndn = callPackage ../development/python-modules/python-ndn { };
+
+  python-nvd3 = callPackage ../development/python-modules/python-nvd3 { };
+
+  python-tds = callPackage ../development/python-modules/python-tds { };
+
+  python-yate = callPackage ../development/python-modules/python-yate { };
+
+  python-youtube = callPackage ../development/python-modules/python-youtube { };
+
+  py-deprecate = callPackage ../development/python-modules/py-deprecate { };
+
+  py-ecc = callPackage ../development/python-modules/py-ecc { };
+
+  py-eth-sig-utils = callPackage ../development/python-modules/py-eth-sig-utils { };
+
+  py-expression-eval = callPackage ../development/python-modules/py-expression-eval { };
+
+  py-radix-sr = callPackage ../development/python-modules/py-radix-sr { };
+
+  nwdiag = callPackage ../development/python-modules/nwdiag { };
+
+  oasatelematics = callPackage ../development/python-modules/oasatelematics { };
+
+  oath = callPackage ../development/python-modules/oath { };
+
+  oauth2 = callPackage ../development/python-modules/oauth2 { };
+
+  oauth2client = callPackage ../development/python-modules/oauth2client { };
+
+  oauth = callPackage ../development/python-modules/oauth { };
+
+  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
+
+  oauthlib = callPackage ../development/python-modules/oauthlib { };
+
+  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
+
+  objax = callPackage ../development/python-modules/objax { };
+
+  objsize = callPackage ../development/python-modules/objsize { };
+
+  objgraph = callPackage ../development/python-modules/objgraph {
+    # requires both the graphviz package and python package
+    graphvizPkgs = pkgs.graphviz;
+  };
+
+  obspy = callPackage ../development/python-modules/obspy { };
+
+  oca-port = callPackage ../development/python-modules/oca-port { };
+
+  ochre = callPackage ../development/python-modules/ochre { };
+
+  oci = callPackage ../development/python-modules/oci { };
+
+  ocifs = callPackage ../development/python-modules/ocifs { };
+
+  ocrmypdf = callPackage ../development/python-modules/ocrmypdf {
+    tesseract = pkgs.tesseract5;
+  };
+
+  od = callPackage ../development/python-modules/od { };
+
+  odfpy = callPackage ../development/python-modules/odfpy { };
+
+  odp-amsterdam = callPackage ../development/python-modules/odp-amsterdam { };
+
+  offtrac = callPackage ../development/python-modules/offtrac { };
+
+  ofxclient = callPackage ../development/python-modules/ofxclient { };
+
+  ofxhome = callPackage ../development/python-modules/ofxhome { };
+
+  ofxparse = callPackage ../development/python-modules/ofxparse { };
+
+  ofxtools = callPackage ../development/python-modules/ofxtools { };
+
+  oemthermostat = callPackage ../development/python-modules/oemthermostat { };
+
+  okonomiyaki = callPackage ../development/python-modules/okonomiyaki { };
+
+  okta = callPackage ../development/python-modules/okta { };
+
+  oldest-supported-numpy = callPackage ../development/python-modules/oldest-supported-numpy { };
+
+  olefile = callPackage ../development/python-modules/olefile { };
+
+  oletools = callPackage ../development/python-modules/oletools { };
+
+  omegaconf = callPackage ../development/python-modules/omegaconf { };
+
+  omemo-dr = callPackage ../development/python-modules/omemo-dr { };
+
+  ome-zarr = callPackage ../development/python-modules/ome-zarr { };
+
+  omnikinverter = callPackage ../development/python-modules/omnikinverter { };
+
+  omnilogic = callPackage ../development/python-modules/omnilogic { };
+
+  omorfi = callPackage ../development/python-modules/omorfi { };
+
+  omrdatasettools = callPackage ../development/python-modules/omrdatasettools { };
+
+  ondilo = callPackage ../development/python-modules/ondilo { };
+
+  onetimepass = callPackage ../development/python-modules/onetimepass { };
+
+  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
+
+  online-judge-api-client = callPackage ../development/python-modules/online-judge-api-client { };
+
+  online-judge-tools = callPackage ../development/python-modules/online-judge-tools { };
+
+  onlykey-solo-python = callPackage ../development/python-modules/onlykey-solo-python { };
+
+  onnx = callPackage ../development/python-modules/onnx {
+    abseil-cpp = pkgs.abseil-cpp_202301;
+  };
+
+  onnxconverter-common = callPackage ../development/python-modules/onnxconverter-common {
+    inherit (pkgs) protobuf;
+  };
+
+  onnxmltools = callPackage ../development/python-modules/onnxmltools { };
+
+  onnxruntime = callPackage ../development/python-modules/onnxruntime {
+    onnxruntime = pkgs.onnxruntime.override {
+      python3Packages = self;
+      pythonSupport = true;
+    };
+  };
+
+  onnxruntime-tools = callPackage ../development/python-modules/onnxruntime-tools { };
+
+  onvif-zeep-async = callPackage ../development/python-modules/onvif-zeep-async { };
+
+  oocsi = callPackage ../development/python-modules/oocsi { };
+
+  opcua-widgets = callPackage ../development/python-modules/opcua-widgets { };
+
+  open-clip-torch = callPackage ../development/python-modules/open-clip-torch { };
+
+  open-garage = callPackage ../development/python-modules/open-garage { };
+
+  open-meteo = callPackage ../development/python-modules/open-meteo { };
+
+  openai-triton = callPackage ../development/python-modules/openai-triton {
+    llvm = pkgs.openai-triton-llvm;
+    cudaPackages = pkgs.cudaPackages_12_1;
+  };
+
+  openai-triton-cuda = self.openai-triton.override {
+    cudaSupport = true;
+  };
+
+  openai-triton-no-cuda = self.openai-triton.override {
+    cudaSupport = false;
+  };
+
+  openai-triton-bin = callPackage ../development/python-modules/openai-triton/bin.nix { };
+
+  openai-whisper = callPackage ../development/python-modules/openai-whisper { };
+
+  openant = callPackage ../development/python-modules/openant { };
+
+  openapi-schema-validator = callPackage ../development/python-modules/openapi-schema-validator { };
+
+  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
+
+  openapi3 = callPackage ../development/python-modules/openapi3 { };
+
+  openbabel-bindings = callPackage ../development/python-modules/openbabel-bindings {
+      openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; };
+  };
+
+  opencensus = callPackage ../development/python-modules/opencensus { };
+
+  opencensus-context = callPackage ../development/python-modules/opencensus-context { };
+
+  opencensus-ext-azure = callPackage ../development/python-modules/opencensus-ext-azure { };
+
+  opencontainers = callPackage ../development/python-modules/opencontainers { };
+
+  opencv4 = toPythonModule (pkgs.opencv4.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  openerz-api = callPackage ../development/python-modules/openerz-api { };
+
+  openevsewifi = callPackage ../development/python-modules/openevsewifi { };
+
+  openhomedevice = callPackage ../development/python-modules/openhomedevice { };
+
+  openidc-client = callPackage ../development/python-modules/openidc-client { };
+
+  openmm = toPythonModule (pkgs.openmm.override {
+    python3Packages = self;
+    enablePython = true;
+  });
+
+  openpyxl = callPackage ../development/python-modules/openpyxl { };
+
+  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
+
+  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
+
+  openrgb-python = callPackage ../development/python-modules/openrgb-python { };
+
+  openrouteservice = callPackage ../development/python-modules/openrouteservice { };
+
+  opensearch-py = callPackage ../development/python-modules/opensearch-py { };
+
+  opensensemap-api = callPackage ../development/python-modules/opensensemap-api { };
+
+  opensfm = callPackage ../development/python-modules/opensfm { };
+
+  openshift = callPackage ../development/python-modules/openshift { };
+
+  opensimplex = callPackage ../development/python-modules/opensimplex { };
+
+  openstackdocstheme = callPackage ../development/python-modules/openstackdocstheme { };
+
+  openstacksdk = callPackage ../development/python-modules/openstacksdk { };
+
+  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
+
+  opentelemetry-api = callPackage ../development/python-modules/opentelemetry-api { };
+
+  opentelemetry-exporter-otlp = callPackage ../development/python-modules/opentelemetry-exporter-otlp { };
+
+  opentelemetry-exporter-otlp-proto-common = callPackage ../development/python-modules/opentelemetry-exporter-otlp-proto-common { };
+
+  opentelemetry-exporter-otlp-proto-grpc = callPackage ../development/python-modules/opentelemetry-exporter-otlp-proto-grpc { };
+
+  opentelemetry-exporter-otlp-proto-http = callPackage ../development/python-modules/opentelemetry-exporter-otlp-proto-http { };
+
+  opentelemetry-exporter-prometheus = callPackage ../development/python-modules/opentelemetry-exporter-prometheus { };
+
+  opentelemetry-instrumentation = callPackage ../development/python-modules/opentelemetry-instrumentation { };
+
+  opentelemetry-instrumentation-aiohttp-client = callPackage ../development/python-modules/opentelemetry-instrumentation-aiohttp-client { };
+
+  opentelemetry-instrumentation-asgi = callPackage ../development/python-modules/opentelemetry-instrumentation-asgi { };
+
+  opentelemetry-instrumentation-django = callPackage ../development/python-modules/opentelemetry-instrumentation-django { };
+
+  opentelemetry-instrumentation-grpc = callPackage ../development/python-modules/opentelemetry-instrumentation-grpc { };
+
+  opentelemetry-instrumentation-wsgi = callPackage ../development/python-modules/opentelemetry-instrumentation-wsgi { };
+
+  opentelemetry-proto = callPackage ../development/python-modules/opentelemetry-proto { };
+
+  opentelemetry-semantic-conventions = callPackage ../development/python-modules/opentelemetry-semantic-conventions { };
+
+  opentelemetry-sdk = callPackage ../development/python-modules/opentelemetry-sdk { };
+
+  opentelemetry-test-utils = callPackage ../development/python-modules/opentelemetry-test-utils { };
+
+  opentelemetry-util-http = callPackage ../development/python-modules/opentelemetry-util-http { };
+
+  openturns = toPythonModule (pkgs.openturns.override {
+    python3Packages = self;
+    enablePython = true;
+  });
+
+  opentracing = callPackage ../development/python-modules/opentracing { };
+
+  opentsne = callPackage ../development/python-modules/opentsne { };
+
+  opentypespec = callPackage ../development/python-modules/opentypespec { };
+
+  openvino = callPackage ../development/python-modules/openvino {
+    openvino-native = pkgs.openvino.override {
+      inherit python;
+    };
+  };
+
+  openwebifpy = callPackage ../development/python-modules/openwebifpy { };
+
+  openwrt-luci-rpc = callPackage ../development/python-modules/openwrt-luci-rpc { };
+
+  openwrt-ubus-rpc = callPackage ../development/python-modules/openwrt-ubus-rpc { };
+
+  opower = callPackage ../development/python-modules/opower { };
+
+  opsdroid-get-image-size = callPackage ../development/python-modules/opsdroid-get-image-size { };
+
+  opt-einsum = callPackage ../development/python-modules/opt-einsum { };
+
+  optax = callPackage ../development/python-modules/optax { };
+
+  optimum = callPackage ../development/python-modules/optimum { };
+
+  optuna = callPackage ../development/python-modules/optuna { };
+
+  opuslib = callPackage ../development/python-modules/opuslib { };
+
+  opytimark = callPackage ../development/python-modules/opytimark { };
+
+  oracledb = callPackage ../development/python-modules/oracledb { };
+
+  oralb-ble = callPackage ../development/python-modules/oralb-ble { };
+
+  orange3 = callPackage ../development/python-modules/orange3 { };
+
+  orange-canvas-core = callPackage ../development/python-modules/orange-canvas-core { };
+
+  orange-widget-base = callPackage ../development/python-modules/orange-widget-base { };
+
+  oras = callPackage ../development/python-modules/oras { };
+
+  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
+
+  ordered-set = callPackage ../development/python-modules/ordered-set { };
+
+  orderedset = callPackage ../development/python-modules/orderedset { };
+
+  orjson = callPackage ../development/python-modules/orjson { };
+
+  orm = callPackage ../development/python-modules/orm { };
+
+  ormar = callPackage ../development/python-modules/ormar { };
+
+  ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python;
+
+  orvibo = callPackage ../development/python-modules/orvibo { };
+
+  os-service-types = callPackage ../development/python-modules/os-service-types { };
+
+  osc = callPackage ../development/python-modules/osc { };
+
+  osc-lib = callPackage ../development/python-modules/osc-lib { };
+
+  oscrypto = callPackage ../development/python-modules/oscrypto { };
+
+  oscpy = callPackage ../development/python-modules/oscpy { };
+
+  oset = callPackage ../development/python-modules/oset { };
+
+  osmnx = callPackage ../development/python-modules/osmnx { };
+
+  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
+
+  oslo-concurrency = callPackage ../development/python-modules/oslo-concurrency { };
+
+  oslo-config = callPackage ../development/python-modules/oslo-config { };
+
+  oslo-context = callPackage ../development/python-modules/oslo-context { };
+
+  oslo-db = callPackage ../development/python-modules/oslo-db { };
+
+  oslo-i18n = callPackage ../development/python-modules/oslo-i18n { };
+
+  oslo-log = callPackage ../development/python-modules/oslo-log { };
+
+  oslo-serialization = callPackage ../development/python-modules/oslo-serialization { };
+
+  oslo-utils = callPackage ../development/python-modules/oslo-utils { };
+
+  oslotest = callPackage ../development/python-modules/oslotest { };
+
+  ospd = callPackage ../development/python-modules/ospd { };
+
+  osqp = callPackage ../development/python-modules/osqp { };
+
+  oss2 = callPackage ../development/python-modules/oss2 { };
+
+  ossfs = callPackage ../development/python-modules/ossfs { };
+
+  ots-python = callPackage ../development/python-modules/ots-python { };
+
+  outcome = callPackage ../development/python-modules/outcome { };
+
+  ovh = callPackage ../development/python-modules/ovh { };
+
+  ovmfvartool = callPackage ../development/python-modules/ovmfvartool { };
+
+  ovoenergy = callPackage ../development/python-modules/ovoenergy { };
+
+  owslib = callPackage ../development/python-modules/owslib { };
+
+  oyaml = callPackage ../development/python-modules/oyaml { };
+
+  p1monitor = callPackage ../development/python-modules/p1monitor { };
+
+  packageurl-python = callPackage ../development/python-modules/packageurl-python { };
+
+  packaging = callPackage ../development/python-modules/packaging { };
+
+  packbits = callPackage ../development/python-modules/packbits { };
+
+  packet-python = callPackage ../development/python-modules/packet-python { };
+
+  packvers = callPackage ../development/python-modules/packvers { };
+
+  pagelabels = callPackage ../development/python-modules/pagelabels { };
+
+  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
+
+  palace = callPackage ../development/python-modules/palace { };
+
+  palettable = callPackage ../development/python-modules/palettable { };
+
+  pallets-sphinx-themes = callPackage ../development/python-modules/pallets-sphinx-themes { };
+
+  python-docs-theme = callPackage ../development/python-modules/python-docs-theme { };
+
+  pamela = callPackage ../development/python-modules/pamela { };
+
+  pamqp = callPackage ../development/python-modules/pamqp { };
+
+  panacotta = callPackage ../development/python-modules/panacotta { };
+
+  panasonic-viera = callPackage ../development/python-modules/panasonic-viera { };
+
+  pandas = callPackage ../development/python-modules/pandas {
+    inherit (pkgs.darwin) adv_cmds;
+  };
+
+  pandas-datareader = callPackage ../development/python-modules/pandas-datareader { };
+
+  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
+
+  pandoc-xnos = callPackage ../development/python-modules/pandoc-xnos { };
+
+  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
+
+  panel = callPackage ../development/python-modules/panel { };
+
+  panflute = callPackage ../development/python-modules/panflute { };
+
+  papermill = callPackage ../development/python-modules/papermill { };
+
+  openpaperwork-core = callPackage ../applications/office/paperwork/openpaperwork-core.nix { };
+  openpaperwork-gtk = callPackage ../applications/office/paperwork/openpaperwork-gtk.nix { };
+  paperwork-backend = callPackage ../applications/office/paperwork/paperwork-backend.nix { };
+  paperwork-shell = callPackage ../applications/office/paperwork/paperwork-shell.nix { };
+
+  papis = callPackage ../development/python-modules/papis { };
+
+  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
+
+  para = callPackage ../development/python-modules/para { };
+
+  param = callPackage ../development/python-modules/param { };
+
+  parameter-expansion-patched = callPackage ../development/python-modules/parameter-expansion-patched { };
+
+  parameterized = callPackage ../development/python-modules/parameterized { };
+
+  parametrize-from-file = callPackage ../development/python-modules/parametrize-from-file { };
+
+  paramiko = callPackage ../development/python-modules/paramiko { };
+
+  paramz = callPackage ../development/python-modules/paramz { };
+
+  paranoid-crypto = callPackage ../development/python-modules/paranoid-crypto { };
+
+  parfive = callPackage ../development/python-modules/parfive { };
+
+  parquet = callPackage ../development/python-modules/parquet { };
+
+  parse = callPackage ../development/python-modules/parse { };
+
+  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
+
+  parsedmarc = callPackage ../development/python-modules/parsedmarc { };
+
+  parsel = callPackage ../development/python-modules/parsel { };
+
+  parse-type = callPackage ../development/python-modules/parse-type { };
+
+  parsimonious = callPackage ../development/python-modules/parsimonious { };
+
+  parsley = callPackage ../development/python-modules/parsley { };
+
+  parso = callPackage ../development/python-modules/parso { };
+
+  parsy = callPackage ../development/python-modules/parsy { };
+
+  partd = callPackage ../development/python-modules/partd { };
+
+  parts = callPackage ../development/python-modules/parts { };
+
+  particle = callPackage ../development/python-modules/particle { };
+
+  parver = callPackage ../development/python-modules/parver { };
+  arpeggio = callPackage ../development/python-modules/arpeggio { };
+
+  pasimple = callPackage ../development/python-modules/pasimple { };
+
+  passlib = callPackage ../development/python-modules/passlib { };
+
+  paste = callPackage ../development/python-modules/paste { };
+
+  pastedeploy = callPackage ../development/python-modules/pastedeploy { };
+
+  pastel = callPackage ../development/python-modules/pastel { };
+
+  pastescript = callPackage ../development/python-modules/pastescript { };
+
+  patator = callPackage ../development/python-modules/patator { };
+
+  patch = callPackage ../development/python-modules/patch { };
+
+  patch-ng = callPackage ../development/python-modules/patch-ng { };
+
+  path = callPackage ../development/python-modules/path { };
+
+  path-and-address = callPackage ../development/python-modules/path-and-address { };
+
+  pathable = callPackage ../development/python-modules/pathable { };
+
+  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
+
+  pathlib = callPackage ../development/python-modules/pathlib { };
+
+  pathos = callPackage ../development/python-modules/pathos { };
+
+  pathspec = callPackage ../development/python-modules/pathspec { };
+
+  pathtools = callPackage ../development/python-modules/pathtools { };
+
+  pathvalidate = callPackage ../development/python-modules/pathvalidate { };
+
+  pathy = callPackage ../development/python-modules/pathy { };
+
+  patiencediff = callPackage ../development/python-modules/patiencediff { };
+
+  patool = callPackage ../development/python-modules/patool { };
+
+  patsy = callPackage ../development/python-modules/patsy { };
+
+  patrowl4py = callPackage ../development/python-modules/patrowl4py { };
+
+  paver = callPackage ../development/python-modules/paver { };
+
+  paypal-checkout-serversdk = callPackage ../development/python-modules/paypal-checkout-serversdk { };
+
+  paypalhttp = callPackage ../development/python-modules/paypalhttp { };
+
+  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
+
+  pbr = callPackage ../development/python-modules/pbr { };
+
+  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
+
+  pcapy-ng = callPackage ../development/python-modules/pcapy-ng {
+    inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
+  };
+
+  pcbnew-transition = callPackage ../development/python-modules/pcbnew-transition { };
+
+  pcodedmp = callPackage ../development/python-modules/pcodedmp { };
+
+  pcpp = callPackage ../development/python-modules/pcpp { };
+
+  pdb2pqr = callPackage ../development/python-modules/pdb2pqr { };
+
+  pdbfixer = callPackage ../development/python-modules/pdbfixer { };
+
+  pdf2docx = callPackage ../development/python-modules/pdf2docx { };
+
+  pdf2image = callPackage ../development/python-modules/pdf2image { };
+
+  pdfkit = callPackage ../development/python-modules/pdfkit { };
+
+  pdfminer-six = callPackage ../development/python-modules/pdfminer-six { };
+
+  pdfplumber = callPackage ../development/python-modules/pdfplumber { };
+
+  pdfrw = callPackage ../development/python-modules/pdfrw { };
+
+  pdftotext = callPackage ../development/python-modules/pdftotext { };
+
+  pdfx = callPackage ../development/python-modules/pdfx { };
+
+  pdm-backend = callPackage ../development/python-modules/pdm-backend { };
+
+  pdm-pep517 = callPackage ../development/python-modules/pdm-pep517 { };
+
+  pdoc = callPackage ../development/python-modules/pdoc { };
+
+  pdoc3 = callPackage ../development/python-modules/pdoc3 { };
+
+  peaqevcore = callPackage ../development/python-modules/peaqevcore { };
+
+  pegen = callPackage ../development/python-modules/pegen { };
+
+  pebble = callPackage ../development/python-modules/pebble { };
+
+  pecan = callPackage ../development/python-modules/pecan { };
+
+  peco = callPackage ../development/python-modules/peco { };
+
+  peewee = callPackage ../development/python-modules/peewee { };
+
+  peewee-migrate = callPackage ../development/python-modules/peewee-migrate { };
+
+  pefile = callPackage ../development/python-modules/pefile { };
+
+  peft = callPackage ../development/python-modules/peft { };
+
+  pelican = callPackage ../development/python-modules/pelican {
+    inherit (pkgs) glibcLocales git;
+  };
+
+  pem = callPackage ../development/python-modules/pem { };
+
+  pendulum = callPackage ../development/python-modules/pendulum { };
+
+  pep440 = callPackage ../development/python-modules/pep440 { };
+
+  pep517 = callPackage ../development/python-modules/pep517 { };
+
+  pep8 = callPackage ../development/python-modules/pep8 { };
+
+  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
+
+  peppercorn = callPackage ../development/python-modules/peppercorn { };
+
+  percol = callPackage ../development/python-modules/percol { };
+
+  perfplot = callPackage ../development/python-modules/perfplot { };
+
+  periodictable = callPackage ../development/python-modules/periodictable { };
+
+  periodiq = callPackage ../development/python-modules/periodiq { };
+
+  permissionedforms = callPackage ../development/python-modules/permissionedforms { };
+
+  persim = callPackage ../development/python-modules/persim { };
+
+  persist-queue = callPackage ../development/python-modules/persist-queue { };
+
+  persistent = callPackage ../development/python-modules/persistent { };
+
+  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
+
+  pescea = callPackage ../development/python-modules/pescea { };
+
+  pex = callPackage ../development/python-modules/pex { };
+
+  pexif = callPackage ../development/python-modules/pexif { };
+
+  pexpect = callPackage ../development/python-modules/pexpect { };
+
+  pfzy = callPackage ../development/python-modules/pfzy { };
+
+  ping3 = callPackage ../development/python-modules/ping3 { };
+
+  pg8000 = callPackage ../development/python-modules/pg8000 { };
+
+  pgcli = callPackage ../development/python-modules/pgcli { };
+
+  pglast = callPackage ../development/python-modules/pglast { };
+
+  pgpdump = callPackage ../development/python-modules/pgpdump { };
+
+  pgpy = callPackage ../development/python-modules/pgpy { };
+
+  pgsanity = callPackage ../development/python-modules/pgsanity { };
+
+  pgspecial = callPackage ../development/python-modules/pgspecial { };
+
+  pgvector = callPackage ../development/python-modules/pgvector { };
+
+  phe = callPackage ../development/python-modules/phe { };
+
+  phik = callPackage ../development/python-modules/phik { };
+
+  phone-modem = callPackage ../development/python-modules/phone-modem { };
+
+  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
+
+  pkgutil-resolve-name = callPackage ../development/python-modules/pkgutil-resolve-name { };
+
+  pkg-about = callPackage ../development/python-modules/pkg-about { };
+
+  micloud = callPackage ../development/python-modules/micloud { };
+
+  mqtt2influxdb = callPackage ../development/python-modules/mqtt2influxdb { };
+
+  msgraph-core = callPackage ../development/python-modules/msgraph-core { };
+
+  multipart = callPackage ../development/python-modules/multipart { };
+
+  netmap = callPackage ../development/python-modules/netmap { };
+
+  onetimepad = callPackage ../development/python-modules/onetimepad { };
+
+  openai = callPackage ../development/python-modules/openai { };
+
+  openaiauth = callPackage ../development/python-modules/openaiauth { };
+
+  openapi-core = callPackage ../development/python-modules/openapi-core { };
+
+  openusd = callPackage ../development/python-modules/openusd {
+    alembic = pkgs.alembic;
+  };
+
+  overly = callPackage ../development/python-modules/overly { };
+
+  overpy = callPackage ../development/python-modules/overpy { };
+
+  overrides = callPackage ../development/python-modules/overrides { };
+
+  pandas-stubs = callPackage ../development/python-modules/pandas-stubs { };
+
+  pdunehd = callPackage ../development/python-modules/pdunehd { };
+
+  pencompy = callPackage ../development/python-modules/pencompy { };
+
+  pgmpy = callPackage ../development/python-modules/pgmpy { };
+
+  phonopy = callPackage ../development/python-modules/phonopy { };
+
+  pixcat = callPackage ../development/python-modules/pixcat { };
+
+  pinecone-client = callPackage ../development/python-modules/pinecone-client { };
+
+  psrpcore = callPackage ../development/python-modules/psrpcore { };
+
+  pybars3 = callPackage ../development/python-modules/pybars3 { };
+
+  pymeta3 = callPackage ../development/python-modules/pymeta3 { };
+
+  pypemicro = callPackage ../development/python-modules/pypemicro { };
+
+  pyprecice = callPackage ../development/python-modules/pyprecice { };
+
+  pyproject-api = callPackage ../development/python-modules/pyproject-api { };
+
+  pyproject-hooks = callPackage ../development/python-modules/pyproject-hooks { };
+
+  pypsrp = callPackage ../development/python-modules/pypsrp { };
+
+  phpserialize = callPackage ../development/python-modules/phpserialize { };
+
+  phx-class-registry = callPackage ../development/python-modules/phx-class-registry { };
+
+  pi1wire = callPackage ../development/python-modules/pi1wire { };
+
+  piano-transcription-inference = callPackage ../development/python-modules/piano-transcription-inference { };
+
+  piccata = callPackage ../development/python-modules/piccata { };
+
+  pick = callPackage ../development/python-modules/pick { };
+
+  pickleshare = callPackage ../development/python-modules/pickleshare { };
+
+  picobox = callPackage ../development/python-modules/picobox { };
+
+  picos = callPackage ../development/python-modules/picos { };
+
+  picosvg = callPackage ../development/python-modules/picosvg { };
+
+  piccolo-theme = callPackage ../development/python-modules/piccolo-theme { };
+
+  pid = callPackage ../development/python-modules/pid { };
+
+  piep = callPackage ../development/python-modules/piep { };
+
+  piexif = callPackage ../development/python-modules/piexif { };
+
+  pijuice = callPackage ../development/python-modules/pijuice { };
+
+  pika = callPackage ../development/python-modules/pika { };
+
+  pika-pool = callPackage ../development/python-modules/pika-pool { };
+
+  pikepdf = callPackage ../development/python-modules/pikepdf { };
+
+  pilkit = callPackage ../development/python-modules/pilkit { };
+
+  pillowfight = callPackage ../development/python-modules/pillowfight { };
+
+  pillow = callPackage ../development/python-modules/pillow {
+    inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+    inherit (pkgs.xorg) libX11 libxcb;
+  };
+
+  pillow-heif = callPackage ../development/python-modules/pillow-heif { };
+
+  pillow-simd = callPackage ../development/python-modules/pillow-simd {
+      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+      inherit (pkgs.xorg) libX11;
+  };
+
+  pims = callPackage ../development/python-modules/pims { };
+
+  pinboard = callPackage ../development/python-modules/pinboard { };
+
+  pinocchio = toPythonModule (pkgs.pinocchio.override {
+    pythonSupport = true;
+    python3Packages = self;
+  });
+
+  pint = callPackage ../development/python-modules/pint { };
+
+  pint-pandas = callPackage ../development/python-modules/pint-pandas { };
+
+  pip = callPackage ../development/python-modules/pip { };
+
+  pipdate = callPackage ../development/python-modules/pipdate { };
+
+  pipdeptree = callPackage ../development/python-modules/pipdeptree { };
+
+  pipenv-poetry-migrate = callPackage ../development/python-modules/pipenv-poetry-migrate { };
+
+  piper-phonemize = callPackage ../development/python-modules/piper-phonemize {
+    onnxruntime-native = pkgs.onnxruntime;
+    piper-phonemize-native = pkgs.piper-phonemize;
+  };
+
+  pip-api = callPackage ../development/python-modules/pip-api { };
+
+  pip-tools = callPackage ../development/python-modules/pip-tools { };
+
+  pip-requirements-parser = callPackage ../development/python-modules/pip-requirements-parser { };
+
+  pipx = callPackage ../development/python-modules/pipx { };
+
+  pivy = callPackage ../development/python-modules/pivy {
+    inherit (pkgs.qt5) qtbase qmake;
+    inherit (pkgs.libsForQt5) soqt;
+  };
+
+  pixelmatch = callPackage ../development/python-modules/pixelmatch { };
+
+  pixel-font-builder = callPackage ../development/python-modules/pixel-font-builder { };
+
+  pixel-ring = callPackage ../development/python-modules/pixel-ring { };
+
+  pjsua2 = (toPythonModule (pkgs.pjsip.override {
+    pythonSupport = true;
+    python3 = self.python;
+  })).py;
+
+  pkce = callPackage ../development/python-modules/pkce { };
+
+  pkgconfig = callPackage ../development/python-modules/pkgconfig { };
+
+  pkginfo = callPackage ../development/python-modules/pkginfo { };
+
+  pkginfo2 = callPackage ../development/python-modules/pkginfo2 { };
+
+  pkuseg = callPackage ../development/python-modules/pkuseg { };
+
+  playwright = callPackage ../development/python-modules/playwright { };
+
+  pmsensor = callPackage ../development/python-modules/pmsensor { };
+
+  ppdeep = callPackage ../development/python-modules/ppdeep { };
+
+  prodict = callPackage ../development/python-modules/prodict { };
+
+  prometheus-pandas = callPackage ../development/python-modules/prometheus-pandas { };
+
+  prophet = callPackage ../development/python-modules/prophet { };
+
+  propka = callPackage ../development/python-modules/propka { };
+
+  proxy-tools = callPackage ../development/python-modules/proxy-tools { };
+
+  proxy-db = callPackage ../development/python-modules/proxy-db { };
+
+  py-nextbusnext = callPackage ../development/python-modules/py-nextbusnext { };
+
+  py65 = callPackage ../development/python-modules/py65 { };
+
+  pyaehw4a1 = callPackage ../development/python-modules/pyaehw4a1 { };
+
+  pyatag = callPackage ../development/python-modules/pyatag { };
+
+  pyatome = callPackage ../development/python-modules/pyatome { };
+
+  pycketcasts = callPackage ../development/python-modules/pycketcasts { };
+
+  pycomposefile = callPackage ../development/python-modules/pycomposefile { };
+  pycontrol4 = callPackage ../development/python-modules/pycontrol4 { };
+
+  pycookiecheat = callPackage ../development/python-modules/pycookiecheat { };
+
+  pycoolmasternet-async = callPackage ../development/python-modules/pycoolmasternet-async { };
+
+  pyfibaro = callPackage ../development/python-modules/pyfibaro { };
+
+  pyfireservicerota = callPackage ../development/python-modules/pyfireservicerota { };
+
+  pyflexit = callPackage ../development/python-modules/pyflexit { };
+
+  pyflick = callPackage ../development/python-modules/pyflick { };
+
+  pyfluidsynth = callPackage ../development/python-modules/pyfluidsynth { };
+
+  pyformlang = callPackage ../development/python-modules/pyformlang { };
+
+  pyfreedompro = callPackage ../development/python-modules/pyfreedompro { };
+
+  pygments-style-github = callPackage ../development/python-modules/pygments-style-github { };
+
+  pygnmi = callPackage ../development/python-modules/pygnmi { };
+
+  pygti = callPackage ../development/python-modules/pygti { };
+
+  pyheck = callPackage ../development/python-modules/pyheck { };
+
+  pyheos = callPackage ../development/python-modules/pyheos { };
+
+  pyhepmc = callPackage ../development/python-modules/pyhepmc { };
+
+  pyhiveapi = callPackage ../development/python-modules/pyhiveapi { };
+
+  pyhumps = callPackage ../development/python-modules/pyhumps { };
+
+  pyinstaller-versionfile = callPackage ../development/python-modules/pyinstaller-versionfile { };
+
+  pyisy = callPackage ../development/python-modules/pyisy { };
+
+  pyixapi = callPackage ../development/python-modules/pyixapi { };
+
+  pykrakenapi = callPackage ../development/python-modules/pykrakenapi { };
+
+  pylddwrap = callPackage ../development/python-modules/pylddwrap { };
+
+  pyngo = callPackage ../development/python-modules/pyngo { };
+
+  pyngrok = callPackage ../development/python-modules/pyngrok { };
+
+  pynitrokey = callPackage ../development/python-modules/pynitrokey { };
+
+  pynndescent = callPackage ../development/python-modules/pynndescent { };
+
+  pynobo = callPackage ../development/python-modules/pynobo { };
+
+  pynuki = callPackage ../development/python-modules/pynuki { };
+
+  pynut2 = callPackage ../development/python-modules/pynut2 { };
+
+  pynws = callPackage ../development/python-modules/pynws { };
+
+  pynx584 = callPackage ../development/python-modules/pynx584 { };
+
+  pyorthanc = callPackage ../development/python-modules/pyorthanc { };
+
+  pyoutbreaksnearme = callPackage ../development/python-modules/pyoutbreaksnearme { };
+
+  pyoverkiz = callPackage ../development/python-modules/pyoverkiz { };
+
+  pyownet = callPackage ../development/python-modules/pyownet { };
+
+  pypoint = callPackage ../development/python-modules/pypoint { };
+
+  pypoolstation = callPackage ../development/python-modules/pypoolstation { };
+
+  pyrdfa3 = callPackage ../development/python-modules/pyrdfa3 { };
+
+  pyre-extensions = callPackage ../development/python-modules/pyre-extensions { };
+
+  pyrender = callPackage ../development/python-modules/pyrender { };
+
+  pyrevolve = callPackage ../development/python-modules/pyrevolve { };
+
+  pyrfxtrx = callPackage ../development/python-modules/pyrfxtrx { };
+
+  pyrogram = callPackage ../development/python-modules/pyrogram { };
+
+  pysabnzbd = callPackage ../development/python-modules/pysabnzbd { };
+
+  pysbd = callPackage ../development/python-modules/pysbd { };
+
+  pysequoia = callPackage ../development/python-modules/pysequoia { };
+
+  pyschemes = callPackage ../development/python-modules/pyschemes { };
+
+  pyschlage = callPackage ../development/python-modules/pyschlage { };
+
+  pyshark = callPackage ../development/python-modules/pyshark { };
+
+  pysiaalarm = callPackage ../development/python-modules/pysiaalarm { };
+
+  pysimplesoap = callPackage ../development/python-modules/pysimplesoap { };
+
+  pyskyqhub = callPackage ../development/python-modules/pyskyqhub { };
+
+  pyskyqremote = callPackage ../development/python-modules/pyskyqremote { };
+
+  pysolcast = callPackage ../development/python-modules/pysolcast { };
+
+  pysubs2 = callPackage ../development/python-modules/pysubs2 { };
+
+  pysuez = callPackage ../development/python-modules/pysuez { };
+
+  pysqlitecipher = callPackage ../development/python-modules/pysqlitecipher { };
+
+  pysyncthru = callPackage ../development/python-modules/pysyncthru { };
+
+  pytest-mockito = callPackage ../development/python-modules/pytest-mockito { };
+
+  pytest-pudb = callPackage ../development/python-modules/pytest-pudb { };
+
+  pytlv = callPackage ../development/python-modules/pytlv { };
+
+  python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
+
+  python-creole = callPackage ../development/python-modules/python-creole { };
+
+  python-crfsuite = callPackage ../development/python-modules/python-crfsuite { };
+
+  python-csxcad = callPackage ../development/python-modules/python-csxcad { };
+
+  python-ecobee-api = callPackage ../development/python-modules/python-ecobee-api { };
+
+  python-flirt = callPackage ../development/python-modules/python-flirt { };
+
+  python-fullykiosk = callPackage ../development/python-modules/python-fullykiosk { };
+
+  python-fx = callPackage ../development/python-modules/python-fx { };
+
+  python-glanceclient = callPackage ../development/python-modules/python-glanceclient { };
+
+  python-google-nest = callPackage ../development/python-modules/python-google-nest { };
+
+  python-heatclient = callPackage ../development/python-modules/python-heatclient { };
+
+  python-hl7 = callPackage ../development/python-modules/python-hl7 { };
+
+  python-ipmi = callPackage ../development/python-modules/python-ipmi { };
+
+  python-ipware = callPackage ../development/python-modules/python-ipware { };
+
+  python-ironicclient = callPackage ../development/python-modules/python-ironicclient { };
+
+  python-izone = callPackage ../development/python-modules/python-izone { };
+
+  python-juicenet = callPackage ../development/python-modules/python-juicenet { };
+
+  python-kasa = callPackage ../development/python-modules/python-kasa { };
+
+  python-keycloak = callPackage ../development/python-modules/python-keycloak { };
+
+  python-keystoneclient = callPackage ../development/python-modules/python-keystoneclient { };
+
+  python-lsp-black = callPackage ../development/python-modules/python-lsp-black { };
+
+  python-mbedtls = callPackage ../development/python-modules/python-mbedtls { };
+
+  python-memcached = callPackage ../development/python-modules/python-memcached { };
+
+  python-otbr-api = callPackage ../development/python-modules/python-otbr-api { };
+
+  python-openems = callPackage ../development/python-modules/python-openems { };
+
+  python-opensky = callPackage ../development/python-modules/python-opensky { };
+
+  python-openzwave-mqtt = callPackage ../development/python-modules/python-openzwave-mqtt { };
+
+  python-owasp-zap-v2-4 = callPackage ../development/python-modules/python-owasp-zap-v2-4 { };
+
+  python-pptx = callPackage ../development/python-modules/python-pptx { };
+
+  python-songpal = callPackage ../development/python-modules/python-songpal { };
+
+  python-swiftclient = callPackage ../development/python-modules/python-swiftclient { };
+
+  python-tado = callPackage ../development/python-modules/python-tado { };
+
+  pythonfinder = callPackage ../development/python-modules/pythonfinder { };
+
+  pytomorrowio = callPackage ../development/python-modules/pytomorrowio { };
+
+  pyuca = callPackage ../development/python-modules/pyuca { };
+
+  pyunpack = callPackage ../development/python-modules/pyunpack { };
+
+  pyutil = callPackage ../development/python-modules/pyutil { };
+
+  pyzbar = callPackage ../development/python-modules/pyzbar { };
+
+  pyzipper = callPackage ../development/python-modules/pyzipper { };
+
+  pkutils = callPackage ../development/python-modules/pkutils { };
+
+  plac = callPackage ../development/python-modules/plac { };
+
+  plaid-python = callPackage ../development/python-modules/plaid-python { };
+
+  plantuml = callPackage ../development/python-modules/plantuml { };
+
+  plantuml-markdown = callPackage ../development/python-modules/plantuml-markdown {
+    inherit (pkgs) plantuml;
+  };
+
+  plaster = callPackage ../development/python-modules/plaster { };
+
+  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy { };
+
+  platformdirs = callPackage ../development/python-modules/platformdirs { };
+
+  playsound = callPackage ../development/python-modules/playsound { };
+
+  plexapi = callPackage ../development/python-modules/plexapi { };
+
+  plexauth = callPackage ../development/python-modules/plexauth { };
+
+  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
+
+  plfit = toPythonModule (pkgs.plfit.override {
+    inherit (self) python;
+  });
+
+  plone-testing = callPackage ../development/python-modules/plone-testing { };
+
+  plotext = callPackage ../development/python-modules/plotext { };
+
+  plotly = callPackage ../development/python-modules/plotly { };
+
+  plotnine = callPackage ../development/python-modules/plotnine { };
+
+  pluggy = callPackage ../development/python-modules/pluggy { };
+
+  plugincode = callPackage ../development/python-modules/plugincode { };
+
+  pluginbase = callPackage ../development/python-modules/pluginbase { };
+
+  plugnplay = callPackage ../development/python-modules/plugnplay { };
+
+  plugwise = callPackage ../development/python-modules/plugwise { };
+
+  plum-py = callPackage ../development/python-modules/plum-py { };
+
+  plumbum = callPackage ../development/python-modules/plumbum { };
+
+  plux = callPackage ../development/python-modules/plux { };
+
+  ply = callPackage ../development/python-modules/ply { };
+
+  plyer = callPackage ../development/python-modules/plyer { };
+
+  plyfile = callPackage ../development/python-modules/plyfile { };
+
+  plyplus = callPackage ../development/python-modules/plyplus { };
+
+  plyvel = callPackage ../development/python-modules/plyvel { };
+
+  pmw = callPackage ../development/python-modules/pmw { };
+
+  pmdarima = callPackage ../development/python-modules/pmdarima { };
+
+  pmdsky-debug-py = callPackage ../development/python-modules/pmdsky-debug-py { };
+
+  pnglatex = callPackage ../development/python-modules/pnglatex { };
+
+  pocket = callPackage ../development/python-modules/pocket { };
+
+  podcastparser = callPackage ../development/python-modules/podcastparser { };
+
+  podcats = callPackage ../development/python-modules/podcats { };
+
+  podman = callPackage ../development/python-modules/podman { };
+
+  poetry-core = callPackage ../development/python-modules/poetry-core { };
+
+  poetry-dynamic-versioning = callPackage ../development/python-modules/poetry-dynamic-versioning { };
+
+  poetry-semver = callPackage ../development/python-modules/poetry-semver { };
+
+  polars = callPackage ../development/python-modules/polars { };
+
+  polarizationsolver = callPackage ../development/python-modules/polarizationsolver { };
+
+  polling = callPackage ../development/python-modules/polling { };
+
+  polib = callPackage ../development/python-modules/polib { };
+
+  policy-sentry = callPackage ../development/python-modules/policy-sentry { };
+
+  policyuniverse = callPackage ../development/python-modules/policyuniverse { };
+
+  polyline = callPackage ../development/python-modules/polyline { };
+
+  polygon3 = callPackage ../development/python-modules/polygon3 { };
+
+  pomegranate = callPackage ../development/python-modules/pomegranate { };
+
+  pontos = callPackage ../development/python-modules/pontos { };
+
+  pony = callPackage ../development/python-modules/pony { };
+
+  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
+
+  pooch = callPackage ../development/python-modules/pooch { };
+
+  pook = callPackage ../development/python-modules/pook { };
+
+  poolsense = callPackage ../development/python-modules/poolsense { };
+
+  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
+    inherit (pkgs.qt5) qtbase qmake;
+    inherit (pkgs.libsForQt5) poppler;
+  };
+
+  portalocker = callPackage ../development/python-modules/portalocker { };
+
+  portend = callPackage ../development/python-modules/portend { };
+
+  port-for = callPackage ../development/python-modules/port-for { };
+
+  portpicker = callPackage ../development/python-modules/portpicker { };
+
+  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
+
+  posthog = callPackage ../development/python-modules/posthog { };
+
+  pot = callPackage ../development/python-modules/pot { };
+
+  potentials = callPackage ../development/python-modules/potentials { };
+
+  potr = callPackage ../development/python-modules/potr { };
+
+  power = callPackage ../development/python-modules/power { };
+
+  powerline = callPackage ../development/python-modules/powerline { };
+
+  powerline-mem-segment = callPackage ../development/python-modules/powerline-mem-segment { };
+
+  pox = callPackage ../development/python-modules/pox { };
+
+  poyo = callPackage ../development/python-modules/poyo { };
+
+  ppft = callPackage ../development/python-modules/ppft { };
+
+  pplpy = callPackage ../development/python-modules/pplpy { };
+
+  pprintpp = callPackage ../development/python-modules/pprintpp { };
+
+  pproxy = callPackage ../development/python-modules/pproxy { };
+
+  ppscore = callPackage ../development/python-modules/ppscore { };
+
+  pq = callPackage ../development/python-modules/pq { };
+
+  prance = callPackage ../development/python-modules/prance { };
+
+  prawcore = callPackage ../development/python-modules/prawcore { };
+
+  praw = callPackage ../development/python-modules/praw { };
+
+  prayer-times-calculator = callPackage ../development/python-modules/prayer-times-calculator { };
+
+  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
+
+  prefixed = callPackage ../development/python-modules/prefixed { };
+
+  pre-commit-hooks = callPackage ../development/python-modules/pre-commit-hooks { };
+
+  preggy = callPackage ../development/python-modules/preggy { };
+
+  premailer = callPackage ../development/python-modules/premailer { };
+
+  preprocess-cancellation = callPackage ../development/python-modules/preprocess-cancellation { };
+
+  preshed = callPackage ../development/python-modules/preshed { };
+
+  pretend = callPackage ../development/python-modules/pretend { };
+
+  prettytable = callPackage ../development/python-modules/prettytable { };
+
+  primecountpy = callPackage ../development/python-modules/primecountpy { };
+
+  primer3 = callPackage ../development/python-modules/primer3 { };
+
+  priority = callPackage ../development/python-modules/priority { };
+
+  prison = callPackage ../development/python-modules/prison { };
+
+  proboscis = callPackage ../development/python-modules/proboscis { };
+
+  process-tests = callPackage ../development/python-modules/process-tests { };
+
+  procmon-parser = callPackage ../development/python-modules/procmon-parser { };
+
+  proglog = callPackage ../development/python-modules/proglog { };
+
+  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
+
+  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
+
+  progressbar = callPackage ../development/python-modules/progressbar { };
+
+  progress = callPackage ../development/python-modules/progress { };
+
+  prometheus-client = callPackage ../development/python-modules/prometheus-client { };
+
+  prometheus-flask-exporter = callPackage ../development/python-modules/prometheus-flask-exporter { };
+
+  promise = callPackage ../development/python-modules/promise { };
+
+  prompt-toolkit = callPackage ../development/python-modules/prompt-toolkit { };
+
+  prompthub-py = callPackage ../development/python-modules/prompthub-py { };
+
+  property-manager = callPackage ../development/python-modules/property-manager { };
+
+  protego = callPackage ../development/python-modules/protego { };
+
+  proto-plus = callPackage ../development/python-modules/proto-plus { };
+
+  # Protobuf 4.x
+  protobuf = callPackage ../development/python-modules/protobuf {
+    # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version.
+    protobuf = pkgs.protobuf;
+  };
+
+  # Protobuf 3.x
+  protobuf3 = callPackage ../development/python-modules/protobuf/3.nix {
+    protobuf = pkgs.protobuf3_20;
+  };
+
+  protobuf3-to-dict = callPackage ../development/python-modules/protobuf3-to-dict { };
+
+  proton-client = callPackage ../development/python-modules/proton-client { };
+
+  proton-core = callPackage ../development/python-modules/proton-core { };
+
+  proton-keyring-linux = callPackage ../development/python-modules/proton-keyring-linux { };
+
+  proton-keyring-linux-secretservice = callPackage ../development/python-modules/proton-keyring-linux-secretservice { };
+
+  proton-vpn-api-core = callPackage ../development/python-modules/proton-vpn-api-core { };
+
+  proton-vpn-connection = callPackage ../development/python-modules/proton-vpn-connection { };
+
+  proton-vpn-killswitch = callPackage ../development/python-modules/proton-vpn-killswitch { };
+
+  proton-vpn-killswitch-network-manager = callPackage ../development/python-modules/proton-vpn-killswitch-network-manager { };
+
+  proton-vpn-logger = callPackage ../development/python-modules/proton-vpn-logger { };
+
+  proton-vpn-network-manager = callPackage ../development/python-modules/proton-vpn-network-manager { };
+
+  proton-vpn-network-manager-openvpn = callPackage ../development/python-modules/proton-vpn-network-manager-openvpn { };
+
+  proton-vpn-session = callPackage ../development/python-modules/proton-vpn-session { };
+
+  protonup-ng = callPackage ../development/python-modules/protonup-ng { };
+
+  protonvpn-nm-lib = callPackage ../development/python-modules/protonvpn-nm-lib {
+    pkgs-systemd = pkgs.systemd;
+  };
+
+  prov = callPackage ../development/python-modules/prov { };
+
+  prox-tv = callPackage ../development/python-modules/prox-tv { };
+
+  proxmoxer = callPackage ../development/python-modules/proxmoxer { };
+
+  proxy-py = callPackage ../development/python-modules/proxy-py { };
+
+  psautohint = callPackage ../development/python-modules/psautohint { };
+
+  pscript = callPackage ../development/python-modules/pscript { };
+
+  psd-tools = callPackage ../development/python-modules/psd-tools { };
+
+  psutil = callPackage ../development/python-modules/psutil {
+    stdenv = if pkgs.stdenv.isDarwin then pkgs.overrideSDK pkgs.stdenv "11.0" else pkgs.stdenv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation IOKit;
+  };
+
+  psutil-home-assistant = callPackage ../development/python-modules/psutil-home-assistant { };
+
+  psychrolib = callPackage ../development/python-modules/psychrolib { };
+
+  psycopg = callPackage ../development/python-modules/psycopg { };
+
+  psycopg2 = callPackage ../development/python-modules/psycopg2 { };
+
+  psycopg2cffi = callPackage ../development/python-modules/psycopg2cffi { };
+
+  psygnal = callPackage ../development/python-modules/psygnal { };
+
+  ptable = callPackage ../development/python-modules/ptable { };
+
+  ptest = callPackage ../development/python-modules/ptest { };
+
+  ptpython = callPackage ../development/python-modules/ptpython { };
+
+  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
+
+  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 { };
+
+  publicsuffix = callPackage ../development/python-modules/publicsuffix { };
+
+  publicsuffixlist = callPackage ../development/python-modules/publicsuffixlist { };
+
+  pubnub = callPackage ../development/python-modules/pubnub { };
+
+  pubnubsub-handler = callPackage ../development/python-modules/pubnubsub-handler { };
+
+  pudb = callPackage ../development/python-modules/pudb { };
+
+  pulp = callPackage ../development/python-modules/pulp { };
+
+  pulsectl-asyncio = callPackage ../development/python-modules/pulsectl-asyncio { };
+
+  pulsectl = callPackage ../development/python-modules/pulsectl { };
+
+  pure-cdb = callPackage ../development/python-modules/pure-cdb { };
+
+  pure-eval = callPackage ../development/python-modules/pure-eval { };
+
+  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
+
+  purepng = callPackage ../development/python-modules/purepng { };
+
+  pure-protobuf = callPackage ../development/python-modules/pure-protobuf { };
+
+  pure-python-adb = callPackage ../development/python-modules/pure-python-adb { };
+
+  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
+
+  puremagic = callPackage ../development/python-modules/puremagic { };
+
+  purl = callPackage ../development/python-modules/purl { };
+
+  push-receiver = callPackage ../development/python-modules/push-receiver { };
+
+  pushbullet-py = callPackage ../development/python-modules/pushbullet-py { };
+
+  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
+
+  pvextractor = callPackage ../development/python-modules/pvextractor { };
+
+  pvlib = callPackage ../development/python-modules/pvlib { };
+
+  pvo = callPackage ../development/python-modules/pvo { };
+
+  pweave = callPackage ../development/python-modules/pweave { };
+
+  pwntools = callPackage ../development/python-modules/pwntools {
+    debugger = pkgs.gdb;
+  };
+
+  pxml = callPackage ../development/python-modules/pxml { };
+
+  py-air-control = callPackage ../development/python-modules/py-air-control { };
+
+  py-air-control-exporter = callPackage ../development/python-modules/py-air-control-exporter { };
+
+  py-bip39-bindings = callPackage ../development/python-modules/py-bip39-bindings { };
+
+  py-dmidecode = callPackage ../development/python-modules/py-dmidecode { };
+
+  py-dormakaba-dkey = callPackage ../development/python-modules/py-dormakaba-dkey { };
+
+  py-nightscout = callPackage ../development/python-modules/py-nightscout { };
+
+  py-partiql-parser = callPackage ../development/python-modules/py-partiql-parser { };
+
+  py-pdf-parser = callPackage ../development/python-modules/py-pdf-parser { };
+
+  py-serializable = callPackage ../development/python-modules/py-serializable { };
+
+  py-synologydsm-api = callPackage ../development/python-modules/py-synologydsm-api { };
+
+  py-sneakers = callPackage ../development/python-modules/py-sneakers { };
+
+  py-sr25519-bindings = callPackage ../development/python-modules/py-sr25519-bindings { };
+
+  py-tes = callPackage ../development/python-modules/py-tes { };
+
+  py-tree-sitter = callPackage ../development/python-modules/py-tree-sitter { };
+
+  py-ubjson = callPackage ../development/python-modules/py-ubjson { };
+
+  py-zabbix = callPackage ../development/python-modules/py-zabbix { };
+
+  py17track = callPackage ../development/python-modules/py17track { };
+
+  py2bit = callPackage ../development/python-modules/py2bit { };
+
+  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
+
+  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
+
+  py3nvml = callPackage ../development/python-modules/py3nvml { };
+
+  py3rijndael = callPackage ../development/python-modules/py3rijndael { };
+
+  py3status = callPackage ../development/python-modules/py3status { };
+
+  py3to2 = callPackage ../development/python-modules/3to2 { };
+
+  py4j = callPackage ../development/python-modules/py4j { };
+
+  pyacaia-async = callPackage ../development/python-modules/pyacaia-async { };
+
+  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
+
+  pyads = callPackage ../development/python-modules/pyads { };
+
+  pyaes = callPackage ../development/python-modules/pyaes { };
+
+  pyaftership = callPackage ../development/python-modules/pyaftership { };
+
+  pyahocorasick = callPackage ../development/python-modules/pyahocorasick { };
+
+  pyairnow = callPackage ../development/python-modules/pyairnow { };
+
+  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
+
+  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
+
+  pyamg = callPackage ../development/python-modules/pyamg { };
+
+  pyaml = callPackage ../development/python-modules/pyaml { };
+
+  pyannotate = callPackage ../development/python-modules/pyannotate { };
+
+  pyarlo = callPackage ../development/python-modules/pyarlo { };
+
+  pyarr = callPackage ../development/python-modules/pyarr { };
+
+  pyarrow = callPackage ../development/python-modules/pyarrow {
+    inherit (pkgs) arrow-cpp cmake;
+  };
+
+  pyasn = callPackage ../development/python-modules/pyasn { };
+
+  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
+
+  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
+
+  pyasuswrt = callPackage ../development/python-modules/pyasuswrt { };
+
+  pyathena = callPackage ../development/python-modules/pyathena { };
+
+  pyatmo = callPackage ../development/python-modules/pyatmo { };
+
+  pyatspi = callPackage ../development/python-modules/pyatspi { };
+
+  pyatv = callPackage ../development/python-modules/pyatv { };
+
+  pyaudio = callPackage ../development/python-modules/pyaudio { };
+
+  pyaussiebb = callPackage ../development/python-modules/pyaussiebb { };
+
+  pyautogui = callPackage ../development/python-modules/pyautogui { };
+
+  pyavm = callPackage ../development/python-modules/pyavm { };
+
+  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
+
+  pybalboa = callPackage ../development/python-modules/pybalboa { };
+
+  pybase64 = callPackage ../development/python-modules/pybase64 { };
+
+  pybids = callPackage ../development/python-modules/pybids { };
+
+  pybigwig = callPackage ../development/python-modules/pybigwig { };
+
+  pybind11 = callPackage ../development/python-modules/pybind11 { };
+
+  pybindgen = callPackage ../development/python-modules/pybindgen { };
+
+  pyblackbird = callPackage ../development/python-modules/pyblackbird { };
+
+  pybloom-live = callPackage ../development/python-modules/pybloom-live { };
+
+  pybluez = callPackage ../development/python-modules/pybluez {
+    inherit (pkgs) bluez;
+  };
+
+  pybotvac = callPackage ../development/python-modules/pybotvac { };
+
+  pybox2d = callPackage ../development/python-modules/pybox2d { };
+
+  pybravia = callPackage ../development/python-modules/pybravia { };
+
+  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
+
+  pybtex = callPackage ../development/python-modules/pybtex { };
+
+  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils { };
+
+  pybullet = callPackage ../development/python-modules/pybullet { };
+
+  pycairo = callPackage ../development/python-modules/pycairo {
+    inherit (pkgs.buildPackages) meson;
+  };
+
+  py = callPackage ../development/python-modules/py { };
+
+  pycangjie = callPackage ../development/python-modules/pycangjie { };
+
+  pycapnp = callPackage ../development/python-modules/pycapnp { };
+
+  pycaption = callPackage ../development/python-modules/pycaption { };
+
+  pycares = callPackage ../development/python-modules/pycares { };
+
+  pycarwings2 = callPackage ../development/python-modules/pycarwings2 { };
+
+  pycatch22 = callPackage ../development/python-modules/pycatch22 { };
+
+  pycategories = callPackage ../development/python-modules/pycategories { };
+
+  pycddl = callPackage ../development/python-modules/pycddl { };
+
+  pycdio = callPackage ../development/python-modules/pycdio { };
+
+  pycec = callPackage ../development/python-modules/pycec { };
+
+  pycep-parser = callPackage ../development/python-modules/pycep-parser { };
+
+  pycfdns = callPackage ../development/python-modules/pycfdns { };
+
+  pycflow2dot = callPackage ../development/python-modules/pycflow2dot {
+    inherit (pkgs) graphviz;
+  };
+
+  pycfmodel = callPackage ../development/python-modules/pycfmodel { };
+
+  pychannels = callPackage ../development/python-modules/pychannels { };
+
+  pychart = callPackage ../development/python-modules/pychart { };
+
+  pychm = callPackage ../development/python-modules/pychm { };
+
+  pychromecast = callPackage ../development/python-modules/pychromecast { };
+
+  pyclimacell = callPackage ../development/python-modules/pyclimacell { };
+
+  pyclip = callPackage ../development/python-modules/pyclip { };
+
+  pyclipper = callPackage ../development/python-modules/pyclipper { };
+
+  pycm = callPackage ../development/python-modules/pycm { };
+
+  pycmarkgfm = callPackage ../development/python-modules/pycmarkgfm { };
+
+  pycocotools = callPackage ../development/python-modules/pycocotools { };
+
+  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
+
+  pycognito = callPackage ../development/python-modules/pycognito { };
+
+  pycoin = callPackage ../development/python-modules/pycoin { };
+
+  pycollada = callPackage ../development/python-modules/pycollada { };
+
+  pycomfoconnect = callPackage ../development/python-modules/pycomfoconnect { };
+
+  pycontracts = callPackage ../development/python-modules/pycontracts { };
+
+  pycosat = callPackage ../development/python-modules/pycosat { };
+
+  pycotap = callPackage ../development/python-modules/pycotap { };
+
+  pycountry = callPackage ../development/python-modules/pycountry { };
+
+  pycparser = callPackage ../development/python-modules/pycparser { };
+
+  py-canary = callPackage ../development/python-modules/py-canary { };
+
+  py-cid = callPackage ../development/python-modules/py-cid { };
+
+  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
+
+  pycardano = callPackage ../development/python-modules/pycardano { };
+
+  pycrc = callPackage ../development/python-modules/pycrc { };
+
+  pycritty = callPackage ../development/python-modules/pycritty { };
+
+  pycron = callPackage ../development/python-modules/pycron { };
+
+  pycrypto = callPackage ../development/python-modules/pycrypto { };
+
+  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
+
+  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
+
+  pycsdr = callPackage ../development/python-modules/pycsdr { };
+
+  pyct = callPackage ../development/python-modules/pyct { };
+
+  pyctr = callPackage ../development/python-modules/pyctr { };
+
+  pycuda = callPackage ../development/python-modules/pycuda {
+    inherit (pkgs.stdenv) mkDerivation;
+  };
+
+  pycups = callPackage ../development/python-modules/pycups { };
+
+  pycurl = callPackage ../development/python-modules/pycurl { };
+
+  pycxx = callPackage ../development/python-modules/pycxx { };
+
+  pycyphal = callPackage ../development/python-modules/pycyphal {
+    # Does not yet support nunavut 2+, use latest 1.X version instead
+    # https://github.com/OpenCyphal/pycyphal/issues/277
+    nunavut = self.nunavut.overridePythonAttrs (prev: rec {
+      version = "1.9.0";
+      src = prev.src.override {
+        inherit version;
+        hash = "sha256-KhgijXJ908uxM7VZdXo1WU/RGU0cfqctBCbpF2wOcy8=";
+      };
+    });
+  };
+
+  pydaikin = callPackage ../development/python-modules/pydaikin { };
+
+  pydal = callPackage ../development/python-modules/pydal { };
+
+  pydanfossair = callPackage ../development/python-modules/pydanfossair { };
+
+  pydantic = callPackage ../development/python-modules/pydantic { };
+
+  pydantic-core = callPackage ../development/python-modules/pydantic-core { };
+
+  pydantic-extra-types = callPackage ../development/python-modules/pydantic-extra-types { };
+
+  pydantic-scim = callPackage ../development/python-modules/pydantic-scim { };
+
+  pydantic-settings = callPackage ../development/python-modules/pydantic-settings { };
+
+  pydash = callPackage ../development/python-modules/pydash { };
+
+  pydata-google-auth = callPackage ../development/python-modules/pydata-google-auth { };
+
+  pydata-sphinx-theme = callPackage ../development/python-modules/pydata-sphinx-theme { };
+
+  pydateinfer = callPackage ../development/python-modules/pydateinfer { };
+
+  pydbus = callPackage ../development/python-modules/pydbus { };
+
+  pydeck = callPackage ../development/python-modules/pydeck { };
+
+  pydeconz = callPackage ../development/python-modules/pydeconz { };
+
+  pydelijn = callPackage ../development/python-modules/pydelijn { };
+
+  pydenticon = callPackage ../development/python-modules/pydenticon { };
+
+  pydeps = callPackage ../development/python-modules/pydeps {
+    inherit (pkgs) graphviz;
+  };
+
+  pydes = callPackage ../development/python-modules/pydes { };
+
+  py-desmume = callPackage ../development/python-modules/py-desmume {
+    inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
+  };
+
+  pydevccu = callPackage ../development/python-modules/pydevccu { };
+
+  pydevd = callPackage ../development/python-modules/pydevd { };
+
+  pydevtool = callPackage ../development/python-modules/pydevtool { };
+
+  pydexcom = callPackage ../development/python-modules/pydexcom { };
+
+  pydicom = callPackage ../development/python-modules/pydicom { };
+
+  pydicom-seg = callPackage ../development/python-modules/pydicom-seg { };
+
+  pydigiham = callPackage ../development/python-modules/pydigiham { };
+
+  pydiscourse = callPackage ../development/python-modules/pydiscourse { };
+
+  pydiscovergy = callPackage ../development/python-modules/pydiscovergy { };
+
+  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+
+  pydmd = callPackage ../development/python-modules/pydmd { };
+
+  pydns = callPackage ../development/python-modules/py3dns { };
+
+  pydocstyle = callPackage ../development/python-modules/pydocstyle { };
+
+  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
+
+  pydoods = callPackage ../development/python-modules/pydoods { };
+
+  pydot = callPackage ../development/python-modules/pydot {
+    inherit (pkgs) graphviz;
+  };
+
+  pydrawise = callPackage ../development/python-modules/pydrawise { };
+
+  pydrive2 = callPackage ../development/python-modules/pydrive2 { };
+
+  pydroid-ipcam = callPackage ../development/python-modules/pydroid-ipcam  { };
+
+  pydruid = callPackage ../development/python-modules/pydruid { };
+
+  pydsdl = callPackage ../development/python-modules/pydsdl { };
+
+  pydub = callPackage ../development/python-modules/pydub { };
+
+  pyduke-energy = callPackage ../development/python-modules/pyduke-energy { };
+
+  pyduotecno = callPackage ../development/python-modules/pyduotecno { };
+
+  pydy = callPackage ../development/python-modules/pydy { };
+
+  pydyf = callPackage ../development/python-modules/pydyf { };
+
+  pyebus = callPackage ../development/python-modules/pyebus { };
+
+  pyechonest = callPackage ../development/python-modules/pyechonest { };
+
+  pyeclib = callPackage ../development/python-modules/pyeclib { };
+
+  pyecoforest = callPackage ../development/python-modules/pyecoforest { };
+
+  pyeconet = callPackage ../development/python-modules/pyeconet { };
+
+  pyecowitt = callPackage ../development/python-modules/pyecowitt { };
+
+  pyedimax = callPackage ../development/python-modules/pyedimax { };
+
+  pyee = callPackage ../development/python-modules/pyee { };
+
+  pyefergy = callPackage ../development/python-modules/pyefergy { };
+
+  pyeight = callPackage ../development/python-modules/pyeight { };
+
+  pyelftools = callPackage ../development/python-modules/pyelftools { };
+
+  pyemby = callPackage ../development/python-modules/pyemby { };
+
+  pyemd = callPackage ../development/python-modules/pyemd { };
+
+  pyenchant = callPackage ../development/python-modules/pyenchant {
+    inherit (pkgs) enchant2;
+  };
+
+  pyenphase = callPackage ../development/python-modules/pyenphase { };
+
+  pyenvisalink = callPackage ../development/python-modules/pyenvisalink { };
+
+  pyephember = callPackage ../development/python-modules/pyephember { };
+
+  pyepsg = callPackage ../development/python-modules/pyepsg { };
+
+  pyerfa = callPackage ../development/python-modules/pyerfa { };
+
+  pyevmasm = callPackage ../development/python-modules/pyevmasm { };
+
+  pyevilgenius = callPackage ../development/python-modules/pyevilgenius { };
+
+  pyexcel = callPackage ../development/python-modules/pyexcel { };
+
+  pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
+
+  pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
+
+  pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
+
+  pyexploitdb = callPackage ../development/python-modules/pyexploitdb { };
+
+  pyezviz = callPackage ../development/python-modules/pyezviz { };
+
+  pyface = callPackage ../development/python-modules/pyface { };
+
+  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
+
+  pyfakefs = callPackage ../development/python-modules/pyfakefs { };
+
+  pyfakewebcam = callPackage ../development/python-modules/pyfakewebcam { };
+
+  pyfantom = callPackage ../development/python-modules/pyfantom { };
+
+  pyfcm = callPackage ../development/python-modules/pyfcm { };
+
+  pyfftw = callPackage ../development/python-modules/pyfftw { };
+
+  pyfido = callPackage ../development/python-modules/pyfido { };
+
+  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
+
+  pyfnip = callPackage ../development/python-modules/pyfnip { };
+
+  pyflakes = callPackage ../development/python-modules/pyflakes { };
+
+  pyflic = callPackage ../development/python-modules/pyflic { };
+
+  pyflume = callPackage ../development/python-modules/pyflume { };
+
+  pyfma = callPackage ../development/python-modules/pyfma { };
+
+  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
+
+  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
+
+  pyfronius = callPackage ../development/python-modules/pyfronius { };
+
+  pyftdi = callPackage ../development/python-modules/pyftdi { };
+
+  pyftgl = callPackage ../development/python-modules/pyftgl { };
+
+  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
+
+  pyfttt = callPackage ../development/python-modules/pyfttt { };
+
+  pyfume = callPackage ../development/python-modules/pyfume { };
+
+  pyfuse3 = callPackage ../development/python-modules/pyfuse3 { };
+
+  pyfxa = callPackage ../development/python-modules/pyfxa { };
+
+  pyfzf = callPackage ../development/python-modules/pyfzf {
+    inherit (pkgs) fzf;
+  };
+
+  pygal = callPackage ../development/python-modules/pygal { };
+
+  pygame = callPackage ../development/python-modules/pygame {
+    inherit (pkgs.darwin.apple_sdk.frameworks) AppKit;
+    SDL2_image = pkgs.SDL2_image_2_0_5;
+  };
+
+  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
+
+  pygame-gui = callPackage ../development/python-modules/pygame-gui { };
+
+  pygatt = callPackage ../development/python-modules/pygatt { };
+
+  pygccxml = callPackage ../development/python-modules/pygccxml { };
+
+  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
+
+  pygeoip = callPackage ../development/python-modules/pygeoip { };
+
+  pygeos = callPackage ../development/python-modules/pygeos { };
+
+  pygetwindow = callPackage ../development/python-modules/pygetwindow { };
+
+  pygit2 = callPackage ../development/python-modules/pygit2 { };
+
+  pygitguardian = callPackage ../development/python-modules/pygitguardian { };
+
+  pygithub = callPackage ../development/python-modules/pygithub { };
+
+  pyglet = callPackage ../development/python-modules/pyglet { };
+
+  pyglm = callPackage ../development/python-modules/pyglm { };
+
+  pygls = callPackage ../development/python-modules/pygls { };
+
+  pygmars = callPackage ../development/python-modules/pygmars { };
+
+  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
+
+  pygments = callPackage ../development/python-modules/pygments { };
+
+  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
+
+  pygmo = callPackage ../development/python-modules/pygmo { };
+
+  pygmt = callPackage ../development/python-modules/pygmt { };
+
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix {
+    # inherit (pkgs) meson won't work because it won't be spliced
+    inherit (pkgs.buildPackages) meson;
+  };
+
+  pygobject-stubs = callPackage ../development/python-modules/pygobject-stubs { };
+
+  pygogo = callPackage ../development/python-modules/pygogo { };
+
+  pygpgme = callPackage ../development/python-modules/pygpgme { };
+
+  pygraphviz = callPackage ../development/python-modules/pygraphviz {
+    inherit (pkgs) graphviz;
+  };
+
+  pygreat = callPackage ../development/python-modules/pygreat { };
+
+  pygrok = callPackage ../development/python-modules/pygrok { };
+
+  pygsl = callPackage ../development/python-modules/pygsl {
+    inherit (pkgs) gsl swig;
+  };
+
+  pygtfs = callPackage ../development/python-modules/pygtfs { };
+
+  pygtail = callPackage ../development/python-modules/pygtail { };
+
+  pygtkspellcheck = callPackage ../development/python-modules/pygtkspellcheck { };
+
+  pygtrie = callPackage ../development/python-modules/pygtrie { };
+
+  pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
+
+  pyhanko = callPackage ../development/python-modules/pyhanko { };
+
+  pyhanko-certvalidator = callPackage ../development/python-modules/pyhanko-certvalidator { };
+
+  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
+
+  pyhcl = callPackage ../development/python-modules/pyhcl { };
+
+  pyhocon = callPackage ../development/python-modules/pyhocon { };
+
+  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
+
+  pyhomepilot = callPackage ../development/python-modules/pyhomepilot { };
+
+  pyhomeworks = callPackage ../development/python-modules/pyhomeworks { };
+
+  pyhs100 = callPackage ../development/python-modules/pyhs100 { };
+
+  pyheif = callPackage ../development/python-modules/pyheif { };
+
+  pyi2cflash = callPackage ../development/python-modules/pyi2cflash { };
+
+  pyialarm = callPackage ../development/python-modules/pyialarm { };
+
+  pyicloud = callPackage ../development/python-modules/pyicloud { };
+
+  pyicu = callPackage ../development/python-modules/pyicu { };
+
+  pyimpfuzzy = callPackage ../development/python-modules/pyimpfuzzy {
+    inherit (pkgs) ssdeep;
+  };
+
+  pyinotify = callPackage ../development/python-modules/pyinotify { };
+
+  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
+
+  pyinsteon = callPackage ../development/python-modules/pyinsteon { };
+
+  pyinstrument = callPackage ../development/python-modules/pyinstrument { };
+
+  pyintesishome = callPackage ../development/python-modules/pyintesishome { };
+
+  pyipma = callPackage ../development/python-modules/pyipma { };
+
+  pyipp = callPackage ../development/python-modules/pyipp { };
+
+  pyipv8 = callPackage ../development/python-modules/pyipv8 { };
+
+  pyiqvia = callPackage ../development/python-modules/pyiqvia { };
+
+  pyisbn = callPackage ../development/python-modules/pyisbn { };
+
+  pyjet = callPackage ../development/python-modules/pyjet { };
+
+  pyjks = callPackage ../development/python-modules/pyjks { };
+
+  pyjnius = callPackage ../development/python-modules/pyjnius { };
+
+  pyjsparser = callPackage ../development/python-modules/pyjsparser { };
+
+  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
+
+  pyjwt = callPackage ../development/python-modules/pyjwt { };
+
+  pykakasi = callPackage ../development/python-modules/pykakasi { };
+
+  pykaleidescape = callPackage ../development/python-modules/pykaleidescape { };
+
+  pykalman = callPackage ../development/python-modules/pykalman { };
+
+  pykdl = callPackage ../development/python-modules/pykdl { };
+
+  pykdtree = callPackage ../development/python-modules/pykdtree {
+    inherit (pkgs.llvmPackages) openmp;
+  };
+
+  pykeepass = callPackage ../development/python-modules/pykeepass { };
+
+  pykerberos = callPackage ../development/python-modules/pykerberos { };
+
+  pykeyatome = callPackage ../development/python-modules/pykeyatome { };
+
+  pykira = callPackage ../development/python-modules/pykira { };
+
+  pykka = callPackage ../development/python-modules/pykka { };
+
+  pykmtronic = callPackage ../development/python-modules/pykmtronic { };
+
+  pykodi = callPackage ../development/python-modules/pykodi { };
+
+  pykoplenti = callPackage ../development/python-modules/pykoplenti { };
+
+  pykostalpiko = callPackage ../development/python-modules/pykostalpiko { };
+
+  pykulersky = callPackage ../development/python-modules/pykulersky { };
+
+  pykwalify = callPackage ../development/python-modules/pykwalify { };
+
+  pykwb = callPackage ../development/python-modules/pykwb { };
+
+  pylacrosse = callPackage ../development/python-modules/pylacrosse { };
+
+  pylama = callPackage ../development/python-modules/pylama { };
+
+  pylast = callPackage ../development/python-modules/pylast { };
+
+  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
+
+  pylaunches = callPackage ../development/python-modules/pylaunches { };
+
+  pyld = callPackage ../development/python-modules/pyld { };
+
+  pyleri = callPackage ../development/python-modules/pyleri { };
+
+  pylev = callPackage ../development/python-modules/pylev { };
+
+  pylgnetcast = callPackage ../development/python-modules/pylgnetcast { };
+
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
+
+  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
+
+  pylibdmtx = callPackage ../development/python-modules/pylibdmtx { };
+
+  pylibftdi = callPackage ../development/python-modules/pylibftdi {
+    inherit (pkgs) libusb1;
+  };
+
+  pylibjpeg-libjpeg = callPackage ../development/python-modules/pylibjpeg-libjpeg { };
+
+  pyliblo = callPackage ../development/python-modules/pyliblo { };
+
+  pylibmc = callPackage ../development/python-modules/pylibmc { };
+
+  pylink-square = callPackage ../development/python-modules/pylink-square { };
+
+  pylint = callPackage ../development/python-modules/pylint { };
+
+  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+
+  pylint-django = callPackage ../development/python-modules/pylint-django { };
+
+  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+
+  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
+
+  pylint-venv = callPackage ../development/python-modules/pylint-venv { };
+
+  pylion = callPackage ../development/python-modules/pylion { };
+
+  pylitterbot = callPackage ../development/python-modules/pylitterbot { };
+
+  py-libzfs = callPackage ../development/python-modules/py-libzfs { };
+
+  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
+
+  pylnk3 = callPackage ../development/python-modules/pylnk3 { };
+
+  pylru = callPackage ../development/python-modules/pylru { };
+
+  pylsqpack = callPackage ../development/python-modules/pylsqpack { };
+
+  pyls-flake8 = callPackage ../development/python-modules/pyls-flake8 { };
+
+  pyls-isort = callPackage ../development/python-modules/pyls-isort { };
+
+  pyls-memestra = callPackage ../development/python-modules/pyls-memestra { };
+
+  pyls-spyder = callPackage ../development/python-modules/pyls-spyder { };
+
+  pylsp-mypy = callPackage ../development/python-modules/pylsp-mypy { };
+
+  pylsp-rope = callPackage ../development/python-modules/pylsp-rope { };
+
+  pylpsd = callPackage ../development/python-modules/pylpsd { };
+
+  pylti = callPackage ../development/python-modules/pylti { };
+
+  pylutron = callPackage ../development/python-modules/pylutron { };
+
+  pylutron-caseta = callPackage ../development/python-modules/pylutron-caseta { };
+
+  pylyrics = callPackage ../development/python-modules/pylyrics { };
+
+  pylxd = callPackage ../development/python-modules/pylxd { };
+
+  pylzma = callPackage ../development/python-modules/pylzma { };
+
+  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
+
+  pymailgunner = callPackage ../development/python-modules/pymailgunner { };
+
+  pymanopt = callPackage ../development/python-modules/pymanopt { };
+
+  pymarshal = callPackage ../development/python-modules/pymarshal { };
+
+  pymata-express = callPackage ../development/python-modules/pymata-express { };
+
+  pymatgen = callPackage ../development/python-modules/pymatgen { };
+
+  pymatting = callPackage ../development/python-modules/pymatting { };
+
+  pymaven-patch = callPackage ../development/python-modules/pymaven-patch { };
+
+  pymavlink = callPackage ../development/python-modules/pymavlink { };
+
+  pymbolic = callPackage ../development/python-modules/pymbolic { };
+
+  pymc = callPackage ../development/python-modules/pymc { };
+
+  pymdstat = callPackage ../development/python-modules/pymdstat { };
+
+  pymdown-extensions = callPackage ../development/python-modules/pymdown-extensions { };
+
+  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
+
+  pymediaroom = callPackage ../development/python-modules/pymediaroom { };
+
+  pymedio = callPackage ../development/python-modules/pymedio { };
+
+  pymeeus = callPackage ../development/python-modules/pymeeus { };
+
+  pymelcloud = callPackage ../development/python-modules/pymelcloud { };
+
+  pymemcache = callPackage ../development/python-modules/pymemcache { };
+
+  pymemoize = callPackage ../development/python-modules/pymemoize { };
+
+  pyment = callPackage ../development/python-modules/pyment { };
+
+  pymetar = callPackage ../development/python-modules/pymetar { };
+
+  pymeteireann = callPackage ../development/python-modules/pymeteireann { };
+
+  pymeteoclimatic = callPackage ../development/python-modules/pymeteoclimatic { };
+
+  pymetno = callPackage ../development/python-modules/pymetno { };
+
+  pymicrobot = callPackage ../development/python-modules/pymicrobot { };
+
+  pymiele = callPackage ../development/python-modules/pymiele { };
+
+  pymilter = callPackage ../development/python-modules/pymilter { };
+
+  pymilvus = callPackage ../development/python-modules/pymilvus { };
+
+  pymitv = callPackage ../development/python-modules/pymitv { };
+
+  pymfy = callPackage ../development/python-modules/pymfy { };
+
+  pymodbus = callPackage ../development/python-modules/pymodbus { };
+
+  pymongo = callPackage ../development/python-modules/pymongo { };
+
+  pymongo-inmemory = callPackage ../development/python-modules/pymongo-inmemory { };
+
+  pymoo = callPackage ../development/python-modules/pymoo { };
+
+  pymorphy2 = callPackage ../development/python-modules/pymorphy2 { };
+
+  pymorphy2-dicts-ru = callPackage ../development/python-modules/pymorphy2/dicts-ru.nix { };
+
+  pymorphy3 = callPackage ../development/python-modules/pymorphy3 { };
+
+  pymorphy3-dicts-ru = callPackage ../development/python-modules/pymorphy3/dicts-ru.nix { };
+
+  pymorphy3-dicts-uk = callPackage ../development/python-modules/pymorphy3/dicts-uk.nix { };
+
+  pympler = callPackage ../development/python-modules/pympler { };
+
+  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
+
+  pymsteams = callPackage ../development/python-modules/pymsteams { };
+
+  py-multiaddr = callPackage ../development/python-modules/py-multiaddr { };
+
+  py-multibase = callPackage ../development/python-modules/py-multibase { };
+
+  py-multicodec = callPackage ../development/python-modules/py-multicodec { };
+
+  py-multihash = callPackage ../development/python-modules/py-multihash { };
+
+  pymumble = callPackage ../development/python-modules/pymumble { };
+
+  pymunk = callPackage ../development/python-modules/pymunk {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  pymupdf = callPackage ../development/python-modules/pymupdf { };
+
+  pymvglive = callPackage ../development/python-modules/pymvglive { };
+
+  pymysensors = callPackage ../development/python-modules/pymysensors { };
+
+  pymysql = callPackage ../development/python-modules/pymysql { };
+
+  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
+
+  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
+
+  pynac = callPackage ../development/python-modules/pynac { };
+
+  pynacl = callPackage ../development/python-modules/pynacl { };
+
+  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
+
+  pynamodb = callPackage ../development/python-modules/pynamodb { };
+
+  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
+
+  pync = callPackage ../development/python-modules/pync {
+    inherit (pkgs) which;
+  };
+
+  pynello = callPackage ../development/python-modules/pynello { };
+
+  pynest2d = callPackage ../development/python-modules/pynest2d { };
+
+  pynetbox = callPackage ../development/python-modules/pynetbox { };
+
+  pynetdicom = callPackage ../development/python-modules/pynetdicom { };
+
+  pynetgear = callPackage ../development/python-modules/pynetgear { };
+
+  pynina = callPackage ../development/python-modules/pynina { };
+
+  pynisher = callPackage ../development/python-modules/pynisher { };
+
+  pynmea2 = callPackage ../development/python-modules/pynmea2 { };
+
+  pynput = callPackage ../development/python-modules/pynput { };
+
+  pynrrd = callPackage ../development/python-modules/pynrrd { };
+
+  pynvim = callPackage ../development/python-modules/pynvim { };
+
+  pynvim-pp = callPackage ../development/python-modules/pynvim-pp { };
+
+  pynvml = callPackage ../development/python-modules/pynvml { };
+
+  pynzb = callPackage ../development/python-modules/pynzb { };
+
+  pyobihai = callPackage ../development/python-modules/pyobihai { };
+
+  pyocd = callPackage ../development/python-modules/pyocd { };
+
+  pyocr = callPackage ../development/python-modules/pyocr {
+    tesseract = pkgs.tesseract4;
+  };
+
+  pyoctoprintapi = callPackage ../development/python-modules/pyoctoprintapi { };
+
+  pyodbc = callPackage ../development/python-modules/pyodbc { };
+
+  pyogg = callPackage ../development/python-modules/pyogg { };
+
+  pyombi = callPackage ../development/python-modules/pyombi { };
+
+  pyomo = callPackage ../development/python-modules/pyomo { };
+
+  pyp = callPackage ../development/python-modules/pyp {
+    inherit (pkgs) jq;
+  };
+
+  pypng = callPackage ../development/python-modules/pypng { };
+
+  phonemizer = callPackage ../development/python-modules/phonemizer { };
+
+  pyopencl = callPackage ../development/python-modules/pyopencl {
+    mesa_drivers = pkgs.mesa.drivers;
+  };
+
+  pyopengl = callPackage ../development/python-modules/pyopengl { };
+
+  pyopengl-accelerate = callPackage ../development/python-modules/pyopengl-accelerate { };
+
+  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
+
+  pyopenuv = callPackage ../development/python-modules/pyopenuv { };
+
+  pyopnsense = callPackage ../development/python-modules/pyopnsense { };
+
+  pyoppleio = callPackage ../development/python-modules/pyoppleio { };
+
+  pyosf = callPackage ../development/python-modules/pyosf { };
+
+  pyosmium = callPackage ../development/python-modules/pyosmium {
+    inherit (pkgs) lz4;
+  };
+
+  pyotgw = callPackage ../development/python-modules/pyotgw { };
+
+  pyotp = callPackage ../development/python-modules/pyotp { };
+
+  pyowm = callPackage ../development/python-modules/pyowm { };
+
+  pypamtest = toPythonModule (pkgs.libpam-wrapper.override {
+    enablePython = true;
+    inherit python;
+  });
+
+  pypandoc = callPackage ../development/python-modules/pypandoc { };
+
+  pyparser = callPackage ../development/python-modules/pyparser { };
+
+  pyparsing = callPackage ../development/python-modules/pyparsing { };
+
+  pyparted = callPackage ../development/python-modules/pyparted { };
+
+  pypass = callPackage ../development/python-modules/pypass { };
+
+  pypblib = callPackage ../development/python-modules/pypblib { };
+
+  pypca = callPackage ../development/python-modules/pypca { };
+
+  pypcap = callPackage ../development/python-modules/pypcap {
+    inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
+  };
+
+  pypck = callPackage ../development/python-modules/pypck { };
+
+  pypdf = callPackage ../development/python-modules/pypdf { };
+
+  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
+
+  pypdf3 = callPackage ../development/python-modules/pypdf3 { };
+
+  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
+
+  pyperclip = callPackage ../development/python-modules/pyperclip { };
+
+  pyperscan = callPackage ../development/python-modules/pyperscan { };
+
+  pyperf = callPackage ../development/python-modules/pyperf { };
+
+  pyphen = callPackage ../development/python-modules/pyphen { };
+
+  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
+
+  pypika = callPackage ../development/python-modules/pypika { };
+
+  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
+
+  pypinyin = callPackage ../development/python-modules/pypinyin { };
+
+  pypiserver = callPackage ../development/python-modules/pypiserver { };
+
+  pypitoken = callPackage ../development/python-modules/pypitoken { };
+
+  pyplaato  = callPackage ../development/python-modules/pyplaato { };
+
+  pyplatec = callPackage ../development/python-modules/pyplatec { };
+
+  pyppeteer = callPackage ../development/python-modules/pyppeteer { };
+
+  pypresence = callPackage ../development/python-modules/pypresence { };
+
+  pyprind = callPackage ../development/python-modules/pyprind { };
+
+  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
+
+  pyproj = callPackage ../development/python-modules/pyproj { };
+
+  pyproject-metadata = callPackage ../development/python-modules/pyproject-metadata { };
+
+  pyprosegur = callPackage ../development/python-modules/pyprosegur { };
+
+  pyprusalink = callPackage ../development/python-modules/pyprusalink { };
+
+  pyptlib = callPackage ../development/python-modules/pyptlib { };
+
+  pypubsub = callPackage ../development/python-modules/pypubsub { };
+
+  pypugjs = callPackage ../development/python-modules/pypugjs { };
+
+  pypykatz = callPackage ../development/python-modules/pypykatz { };
+
+  pypytools = callPackage ../development/python-modules/pypytools { };
+
+  pyqldb = callPackage ../development/python-modules/pyqldb { };
+
+  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
+
+  pyqt-builder = callPackage ../development/python-modules/pyqt-builder { };
+
+  pyqt5 = callPackage ../development/python-modules/pyqt/5.x.nix { };
+
+  pyqt5-stubs = callPackage ../development/python-modules/pyqt5-stubs { };
+
+  pyqt5_sip = callPackage ../development/python-modules/pyqt/sip.nix { };
+
+  pyqt5_with_qtmultimedia = self.pyqt5.override {
+    withMultimedia = true;
+  };
+
+  /*
+    `pyqt5_with_qtwebkit` should not be used by python libraries in
+    pkgs/development/python-modules/*. Putting this attribute in
+    `propagatedBuildInputs` may cause collisions.
+  */
+  pyqt5_with_qtwebkit = self.pyqt5.override {
+    withWebKit = true;
+  };
+
+  pyqt6 = callPackage ../development/python-modules/pyqt/6.x.nix { };
+
+  pyqt6-charts = callPackage ../development/python-modules/pyqt6-charts.nix { };
+
+  pyqt6-sip = callPackage ../development/python-modules/pyqt/pyqt6-sip.nix { };
+
+  pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine.nix { };
+
+  pyqt3d = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt3d {
+    inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder
+      setuptools sip;
+  };
+
+  pyqtchart = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtchart {
+    inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder
+      setuptools sip;
+  };
+
+  pyqtdatavisualization = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtdatavisualization {
+    inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder
+      setuptools sip;
+  };
+
+  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
+
+  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
+    pythonPackages = self;
+  };
+
+  pyquery = callPackage ../development/python-modules/pyquery { };
+
+  pyquaternion = callPackage ../development/python-modules/pyquaternion { };
+
+  pyquil = callPackage ../development/python-modules/pyquil { };
+
+  pyqvrpro = callPackage ../development/python-modules/pyqvrpro { };
+
+  pyqwikswitch = callPackage ../development/python-modules/pyqwikswitch { };
+
+  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
+
+  pyrad = callPackage ../development/python-modules/pyrad { };
+
+  pyradiomics = callPackage ../development/python-modules/pyradiomics { };
+
+  pyradios = callPackage ../development/python-modules/pyradios { };
+
+  pyrainbird = callPackage ../development/python-modules/pyrainbird { };
+
+  pyramid-beaker = callPackage ../development/python-modules/pyramid-beaker { };
+
+  pyramid = callPackage ../development/python-modules/pyramid { };
+
+  pyramid-chameleon = callPackage ../development/python-modules/pyramid-chameleon { };
+
+  pyramid-exclog = callPackage ../development/python-modules/pyramid-exclog { };
+
+  pyramid-jinja2 = callPackage ../development/python-modules/pyramid-jinja2 { };
+
+  pyramid-mako = callPackage ../development/python-modules/pyramid-mako { };
+
+  pyramid-multiauth = callPackage ../development/python-modules/pyramid-multiauth { };
+
+  pyrate-limiter = callPackage ../development/python-modules/pyrate-limiter { };
+
+  pyreaderwriterlock = callPackage ../development/python-modules/pyreaderwriterlock { };
+
+  pyreadstat = callPackage ../development/python-modules/pyreadstat {
+    inherit (pkgs.darwin) libiconv;
+  };
+
+  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    cudaSupport = true;
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  pyrect = callPackage ../development/python-modules/pyrect { };
+
+  pyregion = callPackage ../development/python-modules/pyregion { };
+
+  pyric = callPackage ../development/python-modules/pyric { };
+
+  pyrisco = callPackage ../development/python-modules/pyrisco { };
+
+  pyrituals = callPackage ../development/python-modules/pyrituals { };
+
+  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
+
+  pyrmvtransport = callPackage ../development/python-modules/pyrmvtransport { };
+
+  pyro4 = callPackage ../development/python-modules/pyro4 { };
+
+  pyro5 = callPackage ../development/python-modules/pyro5 { };
+
+  pyroma = callPackage ../development/python-modules/pyroma { };
+
+  pyro-api = callPackage ../development/python-modules/pyro-api { };
+
+  pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
+
+  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
+
+  pyrr = callPackage ../development/python-modules/pyrr { };
+
+  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
+
+  pyrss2gen = callPackage ../development/python-modules/pyrss2gen { };
+
+  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
+
+  pysaj = callPackage ../development/python-modules/pysaj { };
+
+  pysam = callPackage ../development/python-modules/pysam { };
+
+  pysaml2 = callPackage ../development/python-modules/pysaml2 {
+    inherit (pkgs) xmlsec;
+  };
+
+  pysatochip = callPackage ../development/python-modules/pysatochip { };
+
+  pysc2 = callPackage ../development/python-modules/pysc2 { };
+
+  pyscard = callPackage ../development/python-modules/pyscard {
+    inherit (pkgs.darwin.apple_sdk.frameworks) PCSC;
+  };
+
+  pyscf = callPackage ../development/python-modules/pyscf { };
+
+  pyschedule = callPackage ../development/python-modules/pyschedule { };
+
+  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
+
+  pyscreeze = callPackage ../development/python-modules/pyscreeze { };
+
+  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
+
+  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
+
+  pyscss = callPackage ../development/python-modules/pyscss { };
+
+  pysdcp = callPackage ../development/python-modules/pysdcp { };
+
+  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
+
+  pysearpc = toPythonModule (pkgs.libsearpc.override {
+    python3 = self.python;
+  });
+
+  pysecuritas = callPackage ../development/python-modules/pysecuritas { };
+
+  pysendfile = callPackage ../development/python-modules/pysendfile { };
+
+  pysensibo = callPackage ../development/python-modules/pysensibo { };
+
+  pysensors = callPackage ../development/python-modules/pysensors { };
+
+  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
+
+  pyserial-asyncio-fast = callPackage ../development/python-modules/pyserial-asyncio-fast { };
+
+  pyserial = callPackage ../development/python-modules/pyserial { };
+
+  pysftp = callPackage ../development/python-modules/pysftp { };
+
+  pyshp = callPackage ../development/python-modules/pyshp { };
+
+  pyside2-tools = toPythonModule (callPackage ../development/python-modules/pyside2-tools {
+    inherit (pkgs) cmake qt5;
+  });
+
+  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 {
+    inherit (pkgs) cmake ninja qt5;
+  });
+
+  pyside6 = toPythonModule (callPackage ../development/python-modules/pyside6 {
+    inherit (pkgs) cmake ninja;
+  });
+
+  pysigma = callPackage ../development/python-modules/pysigma { };
+
+  pysigma-backend-elasticsearch = callPackage ../development/python-modules/pysigma-backend-elasticsearch { };
+
+  pysigma-backend-opensearch = callPackage ../development/python-modules/pysigma-backend-opensearch { };
+
+  pysigma-backend-qradar = callPackage ../development/python-modules/pysigma-backend-qradar { };
+
+  pysigma-backend-splunk = callPackage ../development/python-modules/pysigma-backend-splunk { };
+
+  pysigma-backend-insightidr = callPackage ../development/python-modules/pysigma-backend-insightidr { };
+
+  pysigma-pipeline-crowdstrike = callPackage ../development/python-modules/pysigma-pipeline-crowdstrike { };
+
+  pysigma-pipeline-sysmon = callPackage ../development/python-modules/pysigma-pipeline-sysmon { };
+
+  pysigma-pipeline-windows = callPackage ../development/python-modules/pysigma-pipeline-windows { };
+
+  pysignalclirestapi = callPackage ../development/python-modules/pysignalclirestapi { };
+
+  pysigset = callPackage ../development/python-modules/pysigset { };
+
+  pysim = callPackage ../development/python-modules/pysim { };
+
+  pysimplegui = callPackage ../development/python-modules/pysimplegui { };
+
+  pysingleton = callPackage ../development/python-modules/pysingleton { };
+
+  pyslim = callPackage ../development/python-modules/pyslim { };
+
+  pyslurm = callPackage ../development/python-modules/pyslurm {
+    inherit (pkgs) slurm;
+  };
+
+  pysma = callPackage ../development/python-modules/pysma { };
+
+  pysmappee = callPackage ../development/python-modules/pysmappee { };
+
+  pysmart = callPackage ../development/python-modules/pysmart { };
+
+  pysmartapp = callPackage ../development/python-modules/pysmartapp { };
+
+  pysmartdl = callPackage ../development/python-modules/pysmartdl { };
+
+  pysmartthings = callPackage ../development/python-modules/pysmartthings { };
+
+  pysmb = callPackage ../development/python-modules/pysmb { };
+
+  pysmbc = callPackage ../development/python-modules/pysmbc { };
+
+  pysmf = callPackage ../development/python-modules/pysmf { };
+
+  pysmi = callPackage ../development/python-modules/pysmi { };
+
+  pysml = callPackage ../development/python-modules/pysml { };
+
+  pysmt = callPackage ../development/python-modules/pysmt { };
+
+  pysnmp = callPackage ../development/python-modules/pysnmp { };
+
+  pysnmp-pyasn1 = callPackage ../development/python-modules/pysnmp-pyasn1 { };
+
+  pysnmp-pysmi = callPackage ../development/python-modules/pysnmp-pysmi { };
+
+  pysnmplib = callPackage ../development/python-modules/pysnmplib { };
+
+  pysnooper = callPackage ../development/python-modules/pysnooper { };
+
+  pysnooz = callPackage ../development/python-modules/pysnooz { };
+
+  pysnow = callPackage ../development/python-modules/pysnow { };
+
+  pysocks = callPackage ../development/python-modules/pysocks { };
+
+  pysol-cards = callPackage ../development/python-modules/pysol-cards { };
+
+  pysolr = callPackage ../development/python-modules/pysolr { };
+
+  pysoma = callPackage ../development/python-modules/pysoma { };
+
+  py-sonic = callPackage ../development/python-modules/py-sonic { };
+
+  pysonos = callPackage ../development/python-modules/pysonos { };
+
+  pysoundfile = self.soundfile; # Alias added 23-06-2019
+
+  pyspark = callPackage ../development/python-modules/pyspark { };
+
+  pyspcwebgw = callPackage ../development/python-modules/pyspcwebgw { };
+
+  pyspellchecker = callPackage ../development/python-modules/pyspellchecker { };
+
+  pyspf = callPackage ../development/python-modules/pyspf { };
+
+  pyspice = callPackage ../development/python-modules/pyspice { };
+
+  pyspiflash = callPackage ../development/python-modules/pyspiflash { };
+
+  pyspinel = callPackage ../development/python-modules/pyspinel { };
+
+  pyspnego = callPackage ../development/python-modules/pyspnego { };
+
+  pysptk = callPackage ../development/python-modules/pysptk { };
+
+  pyspx = callPackage ../development/python-modules/pyspx { };
+
+  pysqlcipher3 = callPackage ../development/python-modules/pysqlcipher3 {
+    inherit (pkgs) sqlcipher;
+  };
+
+  pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
+
+  pysrim = callPackage ../development/python-modules/pysrim { };
+
+  pysrt = callPackage ../development/python-modules/pysrt { };
+
+  pyssim = callPackage ../development/python-modules/pyssim { };
+
+  pystache = callPackage ../development/python-modules/pystache { };
+
+  pystardict = callPackage ../development/python-modules/pystardict { };
+
+  pystemd = callPackage ../development/python-modules/pystemd {
+    inherit (pkgs) systemd;
+  };
+
+  pystemmer = callPackage ../development/python-modules/pystemmer { };
+
+  pystray = callPackage ../development/python-modules/pystray { };
+
+  py-stringmatching = callPackage ../development/python-modules/py-stringmatching { };
+
+  pysvg-py3 = callPackage ../development/python-modules/pysvg-py3 { };
+
+  pysvn = callPackage ../development/python-modules/pysvn {
+    inherit (pkgs) bash subversion apr aprutil expat neon openssl;
+  };
+
+  pyswitchbee = callPackage ../development/python-modules/pyswitchbee { };
+
+  pyswitchbot = callPackage ../development/python-modules/pyswitchbot { };
+
+  pysychonaut = callPackage ../development/python-modules/pysychonaut { };
+
+  pysyncobj = callPackage ../development/python-modules/pysyncobj { };
+
+  pytabix = callPackage ../development/python-modules/pytabix { };
+
+  pytablewriter = callPackage ../development/python-modules/pytablewriter { };
+
+  pytado = callPackage ../development/python-modules/pytado { };
+
+  pytaglib = callPackage ../development/python-modules/pytaglib { };
+
+  pytankerkoenig = callPackage ../development/python-modules/pytankerkoenig { };
+
+  pytap2 = callPackage ../development/python-modules/pytap2 { };
+
+  pytapo = callPackage ../development/python-modules/pytapo { };
+
+  pytautulli = callPackage ../development/python-modules/pytautulli { };
+
+  pyte = callPackage ../development/python-modules/pyte { };
+
+  pytenable = callPackage ../development/python-modules/pytenable { };
+
+  pytensor = callPackage ../development/python-modules/pytensor { };
+
+  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
+
+  pytesseract = callPackage ../development/python-modules/pytesseract { };
+
+  pytest = callPackage ../development/python-modules/pytest { };
+
+  pytest-aio = callPackage ../development/python-modules/pytest-aio { };
+
+  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
+
+  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
+
+  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
+
+  pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
+
+  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
+
+  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
+
+  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
+
+  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
+
+  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
+
+  pytest-black = callPackage ../development/python-modules/pytest-black { };
+
+  pytest-cache = self.pytestcache; # added 2021-01-04
+  pytestcache = callPackage ../development/python-modules/pytestcache { };
+
+  pytest-base-url = callPackage ../development/python-modules/pytest-base-url { };
+
+  pytest-cases = callPackage ../development/python-modules/pytest-cases{ };
+
+  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
+
+  pytest-celery = callPackage ../development/python-modules/pytest-celery { };
+
+  pytest-check = callPackage ../development/python-modules/pytest-check { };
+
+  pytest-cid = callPackage ../development/python-modules/pytest-cid { };
+
+  pytest-click = callPackage ../development/python-modules/pytest-click { };
+
+  pytest-console-scripts = callPackage ../development/python-modules/pytest-console-scripts { };
+
+  pytest-cov = callPackage ../development/python-modules/pytest-cov { };
+
+  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
+
+  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
+
+  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
+
+  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
+
+  pytest-describe = callPackage ../development/python-modules/pytest-describe { };
+
+  pytest-django = callPackage ../development/python-modules/pytest-django { };
+
+  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
+
+  pytest-dotenv = callPackage ../development/python-modules/pytest-dotenv { };
+
+  pytest-emoji = callPackage ../development/python-modules/pytest-emoji { };
+
+  pytest-env = callPackage ../development/python-modules/pytest-env { };
+
+  pytest-error-for-skips = callPackage ../development/python-modules/pytest-error-for-skips { };
+
+  pytest-examples = callPackage ../development/python-modules/pytest-examples { };
+
+  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
+
+  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
+
+  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
+
+  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
+
+  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
+
+  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
+
+  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
+
+  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
+
+  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
+
+  pytest-freezer = callPackage ../development/python-modules/pytest-freezer { };
+
+  pytest-golden = callPackage ../development/python-modules/pytest-golden { };
+
+  pytest-grpc = callPackage ../development/python-modules/pytest-grpc { };
+
+  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
+
+  pytest-html = callPackage ../development/python-modules/pytest-html { };
+
+  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
+
+  pytest-httpserver = callPackage ../development/python-modules/pytest-httpserver { };
+
+  pytest-httpx = callPackage ../development/python-modules/pytest-httpx { };
+
+  pytest-image-diff = callPackage ../development/python-modules/pytest-image-diff { };
+
+  pytest-instafail = callPackage ../development/python-modules/pytest-instafail { };
+
+  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
+
+  pytest-json-report = callPackage ../development/python-modules/pytest-json-report { };
+
+  pytest-jupyter = callPackage ../development/python-modules/pytest-jupyter { };
+
+  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
+
+  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
+
+  pytest-logdog = callPackage ../development/python-modules/pytest-logdog { };
+
+  pytest-md-report = callPackage ../development/python-modules/pytest-md-report { };
+
+  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
+
+  pytest-mock = callPackage ../development/python-modules/pytest-mock { };
+
+  pytest-mockservers = callPackage ../development/python-modules/pytest-mockservers { };
+
+  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
+
+  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
+
+  pytest-mypy-plugins = callPackage ../development/python-modules/pytest-mypy-plugins { };
+
+  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
+
+  pytest-order = callPackage ../development/python-modules/pytest-order { };
+
+  pytest-param-files = callPackage ../development/python-modules/pytest-param-files { };
+
+  pytest-parallel = callPackage ../development/python-modules/pytest-parallel { };
+
+  pytest-playwright = callPackage ../development/python-modules/pytest-playwright {};
+
+  pytest-plt = callPackage ../development/python-modules/pytest-plt { };
+
+  pytest-postgresql = callPackage ../development/python-modules/pytest-postgresql { };
+
+  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
+
+  pytest-pytestrail = callPackage ../development/python-modules/pytest-pytestrail { };
+
+  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
+
+  pytest-quickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
+
+  pytest-raises = callPackage ../development/python-modules/pytest-raises { };
+
+  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
+
+  pytest-raisin = callPackage ../development/python-modules/pytest-raisin { };
+
+  pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
+
+  pytest-reverse = callPackage ../development/python-modules/pytest-reverse { };
+
+  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
+
+  pytest-recording = callPackage ../development/python-modules/pytest-recording { };
+
+  pytest-regressions = callPackage ../development/python-modules/pytest-regressions { };
+
+  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
+
+  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
+
+  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
+
+  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
+
+  pytest-resource-path = callPackage ../development/python-modules/pytest-resource-path { };
+
+  pytest-runner = callPackage ../development/python-modules/pytest-runner { };
+
+  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
+
+  pytest-services = callPackage ../development/python-modules/pytest-services { };
+
+  pytest-snapshot = callPackage ../development/python-modules/pytest-snapshot { };
+
+  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
+
+  pytest-spec = callPackage ../development/python-modules/pytest-spec { };
+
+  python-status = callPackage ../development/python-modules/python-status { };
+
+  python-string-utils = callPackage ../development/python-modules/python-string-utils { };
+
+  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
+
+  pytest-subprocess = callPackage ../development/python-modules/pytest-subprocess { };
+
+  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
+
+  pytest-subtests = callPackage ../development/python-modules/pytest-subtests { };
+
+  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
+
+  pytest-tap = callPackage ../development/python-modules/pytest-tap { };
+
+  pytest-test-utils = callPackage ../development/python-modules/pytest-test-utils { };
+
+  pytest-testinfra = callPackage ../development/python-modules/pytest-testinfra { };
+
+  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
+
+  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
+
+  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
+
+  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
+
+  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
+
+  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
+
+  pytest-unordered = callPackage ../development/python-modules/pytest-unordered { };
+
+  pytest-vcr = callPackage ../development/python-modules/pytest-vcr { };
+
+  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
+
+  pytest-voluptuous = callPackage ../development/python-modules/pytest-voluptuous { };
+
+  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
+
+  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
+
+  pytest-xdist = callPackage ../development/python-modules/pytest-xdist { };
+
+  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
+
+  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
+
+  python3-application = callPackage ../development/python-modules/python3-application { };
+
+  python3-eventlib = callPackage ../development/python-modules/python3-eventlib { };
+
+  python3-gnutls = callPackage ../development/python-modules/python3-gnutls { };
+
+  python3-openid = callPackage ../development/python-modules/python3-openid { };
+
+  python-arango = callPackage ../development/python-modules/python-arango { };
+
+  python-awair = callPackage ../development/python-modules/python-awair { };
+
+  python3-saml = callPackage ../development/python-modules/python3-saml { };
+
+  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
+
+  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
+
+  python-barcode = callPackage ../development/python-modules/python-barcode { };
+
+  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
+
+  python-benedict = callPackage ../development/python-modules/python-benedict { };
+
+  python-bidi = callPackage ../development/python-modules/python-bidi { };
+
+  python-binance = callPackage ../development/python-modules/python-binance { };
+
+  python-box = callPackage ../development/python-modules/python-box { };
+
+  python-bsblan = callPackage ../development/python-modules/python-bsblan { };
+
+  python-cinderclient = callPackage ../development/python-modules/python-cinderclient { };
+
+  python-constraint = callPackage ../development/python-modules/python-constraint { };
+
+  python-crontab = callPackage ../development/python-modules/python-crontab { };
+
+  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
+
+  python-daemon = callPackage ../development/python-modules/python-daemon { };
+
+  python-datemath = callPackage ../development/python-modules/python-datemath { };
+
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+
+  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
+
+  python-decouple = callPackage ../development/python-modules/python-decouple { };
+
+  pythondialog = callPackage ../development/python-modules/pythondialog { };
+
+  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
+
+  python-docx = callPackage ../development/python-modules/python-docx { };
+
+  python-doi = callPackage ../development/python-modules/python-doi { };
+
+  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
+
+  python-editor = callPackage ../development/python-modules/python-editor { };
+
+  python-family-hub-local = callPackage ../development/python-modules/python-family-hub-local { };
+
+  python-fsutil = callPackage ../development/python-modules/python-fsutil { };
+
+  pythonefl = callPackage ../development/python-modules/python-efl { };
+
+  pythonegardia = callPackage ../development/python-modules/pythonegardia { };
+
+  python-engineio = callPackage ../development/python-modules/python-engineio { };
+
+  python-etcd = callPackage ../development/python-modules/python-etcd { };
+
+  python-ethtool = callPackage ../development/python-modules/python-ethtool { };
+
+  python-ev3dev2 = callPackage ../development/python-modules/python-ev3dev2 { };
+
+  python-fedora = callPackage ../development/python-modules/python-fedora { };
+
+  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
+
+  python-frontmatter = callPackage ../development/python-modules/python-frontmatter { };
+
+  python-gammu = callPackage ../development/python-modules/python-gammu { };
+
+  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
+
+  python-gnupg = callPackage ../development/python-modules/python-gnupg { };
+
+  python-gvm = callPackage ../development/python-modules/python-gvm { };
+
+  python-hglib = callPackage ../development/python-modules/python-hglib { };
+
+  python-homewizard-energy = callPackage ../development/python-modules/python-homewizard-energy { };
+
+  python-hosts = callPackage ../development/python-modules/python-hosts { };
+
+  python-hpilo = callPackage ../development/python-modules/python-hpilo { };
+
+  python-http-client = callPackage ../development/python-modules/python-http-client { };
+
+  python-i18n = callPackage ../development/python-modules/python-i18n { };
+
+  pythonix = callPackage ../development/python-modules/pythonix {
+    nix = pkgs.nixVersions.nix_2_3;
+    meson = pkgs.meson.override { python3 = self.python; };
+  };
+
+  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
+
+  python-jose = callPackage ../development/python-modules/python-jose { };
+
+  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
+
+  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server { };
+
+  python-ldap = callPackage ../development/python-modules/python-ldap {
+    inherit (pkgs) openldap cyrus_sasl;
+  };
+
+  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
+
+  python-libnmap = callPackage ../development/python-modules/python-libnmap { };
+
+  python-linux-procfs = callPackage ../development/python-modules/python-linux-procfs { };
+
+  python-logstash = callPackage ../development/python-modules/python-logstash { };
+
+  python-louvain = callPackage ../development/python-modules/python-louvain { };
+
+  python-lsp-jsonrpc = callPackage ../development/python-modules/python-lsp-jsonrpc { };
+
+  python-lsp-ruff = callPackage ../development/python-modules/python-lsp-ruff { };
+
+  python-lsp-server = callPackage ../development/python-modules/python-lsp-server { };
+
+  python-ly = callPackage ../development/python-modules/python-ly { };
+
+  python-lzf = callPackage ../development/python-modules/python-lzf { };
+
+  python-lzo = callPackage ../development/python-modules/python-lzo {
+    inherit (pkgs) lzo;
+  };
+
+  python-magic = callPackage ../development/python-modules/python-magic { };
+
+  python-manilaclient = callPackage ../development/python-modules/python-manilaclient { };
+
+  python-mapnik = callPackage ../development/python-modules/python-mapnik rec {
+    inherit (pkgs) pkg-config cairo icu libjpeg libpng libtiff libwebp proj zlib;
+    boost182 = pkgs.boost182.override {
+      enablePython = true;
+      inherit python;
+    };
+    harfbuzz = pkgs.harfbuzz.override {
+      withIcu = true;
+    };
+    mapnik = pkgs.mapnik.override {
+      inherit boost harfbuzz;
+    };
+  };
+
+  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
+
+  python-matter-server = callPackage ../development/python-modules/python-matter-server { };
+
+  python-miio = callPackage ../development/python-modules/python-miio { };
+
+  python-mimeparse = callPackage ../development/python-modules/python-mimeparse { };
+
+  python-mnist = callPackage ../development/python-modules/python-mnist { };
+
+  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
+
+  python-multipart = callPackage ../development/python-modules/python-multipart { };
+
+  python-musicpd = callPackage ../development/python-modules/python-musicpd { };
+
+  python-mystrom = callPackage ../development/python-modules/python-mystrom { };
+
+  python-nest = callPackage ../development/python-modules/python-nest { };
+
+  pythonnet = callPackage ../development/python-modules/pythonnet { };
+
+  python-nmap = callPackage ../development/python-modules/python-nmap { };
+
+  python-nomad = callPackage ../development/python-modules/python-nomad { };
+
+  python-novaclient = callPackage ../development/python-modules/python-novaclient { };
+
+  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
+
+  pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
+    inherit (pkgs) fontconfig rapidjson;
+    inherit (pkgs.xorg) libX11 libXi libXmu libXext;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+  });
+
+  python-olm = callPackage ../development/python-modules/python-olm { };
+
+  python-on-whales = callPackage ../development/python-modules/python-on-whales { };
+
+  python-opendata-transport = callPackage ../development/python-modules/python-opendata-transport { };
+
+  python-openstackclient = callPackage ../development/python-modules/python-openstackclient { };
+
+  python_openzwave = callPackage ../development/python-modules/python_openzwave { };
+
+  python-osc = callPackage ../development/python-modules/python-osc { };
+
+  python-packer = callPackage ../development/python-modules/python-packer { };
+
+  python-pae = callPackage ../development/python-modules/python-pae { };
+
+  python-pam = callPackage ../development/python-modules/python-pam {
+    inherit (pkgs) pam;
+  };
+
+  python-periphery = callPackage ../development/python-modules/python-periphery { };
+
+  python-picnic-api = callPackage ../development/python-modules/python-picnic-api { };
+
+  python-pidfile = callPackage ../development/python-modules/python-pidfile { };
+
+  python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
+
+  python-pkcs11 = callPackage ../development/python-modules/python-pkcs11 { };
+
+  python-prctl = callPackage ../development/python-modules/python-prctl { };
+
+  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
+
+  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
+
+  python-rabbitair = callPackage ../development/python-modules/python-rabbitair { };
+
+  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
+
+  python-registry = callPackage ../development/python-modules/python-registry { };
+
+  python-roborock = callPackage ../development/python-modules/python-roborock { };
+
+  python-rtmidi = callPackage ../development/python-modules/python-rtmidi {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices Foundation;
+  };
+
+  python-sat = callPackage ../development/python-modules/python-sat { };
+
+  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat { };
+
+  python-slugify = callPackage ../development/python-modules/python-slugify { };
+
+  python-smarttub = callPackage ../development/python-modules/python-smarttub { };
+
+  python-snap7 = callPackage ../development/python-modules/python-snap7 {
+    inherit (pkgs) snap7;
+  };
+
+  python-snappy = callPackage ../development/python-modules/python-snappy {
+    inherit (pkgs) snappy;
+  };
+
+  python-socketio = callPackage ../development/python-modules/python-socketio { };
+
+  python-socks = callPackage ../development/python-modules/python-socks { };
+
+  python-sql = callPackage ../development/python-modules/python-sql { };
+
+  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
+
+  python-telegram = callPackage ../development/python-modules/python-telegram { };
+
+  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
+
+  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+
+  python-trovo = callPackage ../development/python-modules/python-trovo { };
+
+  python-twitch-client = callPackage ../development/python-modules/python-twitch-client { };
+
+  python-twitter = callPackage ../development/python-modules/python-twitter { };
+
+  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
+
+  python-u2flib-server = callPackage ../development/python-modules/python-u2flib-server { };
+
+  python-uinput = callPackage ../development/python-modules/python-uinput { };
+
+  python-ulid = callPackage ../development/python-modules/python-ulid { };
+
+  python-unshare = callPackage ../development/python-modules/python-unshare { };
+
+  python-utils = callPackage ../development/python-modules/python-utils { };
+
+  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
+
+  python-velbus = callPackage ../development/python-modules/python-velbus { };
+
+  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
+
+  python-vlc = callPackage ../development/python-modules/python-vlc { };
+
+  python-whois = callPackage ../development/python-modules/python-whois { };
+
+  python-wifi = callPackage ../development/python-modules/python-wifi { };
+
+  python-wink = callPackage ../development/python-modules/python-wink { };
+
+  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
+
+  python-xz = callPackage ../development/python-modules/python-xz { };
+
+  python-zbar = callPackage ../development/python-modules/python-zbar { };
+
+  pythran = callPackage ../development/python-modules/pythran {
+    inherit (pkgs.llvmPackages) openmp;
+  };
+
+  pyeapi = callPackage ../development/python-modules/pyeapi { };
+
+  pyeverlights = callPackage ../development/python-modules/pyeverlights { };
+
+  pyinfra = callPackage ../development/python-modules/pyinfra { };
+
+  pytibber = callPackage ../development/python-modules/pytibber { };
+
+  pytile = callPackage ../development/python-modules/pytile { };
+
+  pytimeparse = callPackage ../development/python-modules/pytimeparse { };
+
+  pytimeparse2 = callPackage ../development/python-modules/pytimeparse2 { };
+
+  pytikz-allefeld = callPackage ../development/python-modules/pytikz-allefeld { };
+
+  pytm = callPackage ../development/python-modules/pytm { };
+
+  pytmx = callPackage ../development/python-modules/pytmx { };
+
+  pytomlpp = callPackage ../development/python-modules/pytomlpp { };
+
+  pytoolconfig = callPackage ../development/python-modules/pytoolconfig { };
+
+  pytools = callPackage ../development/python-modules/pytools { };
+
+  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
+
+  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+
+  pytorch-msssim = callPackage ../development/python-modules/pytorch-msssim { };
+
+  pytorch-pfn-extras = callPackage ../development/python-modules/pytorch-pfn-extras { };
+
+  pytraccar = callPackage ../development/python-modules/pytraccar { };
+
+  pytradfri = callPackage ../development/python-modules/pytradfri { };
+
+  pytrafikverket = callPackage ../development/python-modules/pytrafikverket { };
+
+  pytransportnsw = callPackage ../development/python-modules/pytransportnsw { };
+
+  pytransportnswv2 = callPackage ../development/python-modules/pytransportnswv2 { };
+
+  pytrends = callPackage ../development/python-modules/pytrends { };
+
+  pytricia = callPackage ../development/python-modules/pytricia { };
+
+  pytrydan = callPackage ../development/python-modules/pytrydan { };
+
+  pyttsx3 = callPackage ../development/python-modules/pyttsx3 { };
+
+  pytube = callPackage ../development/python-modules/pytube { };
+
+  pytun = callPackage ../development/python-modules/pytun { };
+
+  pyturbojpeg = callPackage ../development/python-modules/pyturbojpeg { };
+
+  pytweening = callPackage ../development/python-modules/pytweening { };
+
+  pytz = callPackage ../development/python-modules/pytz { };
+
+  pytz-deprecation-shim = callPackage ../development/python-modules/pytz-deprecation-shim { };
+
+  pytzdata = callPackage ../development/python-modules/pytzdata { };
+
+  pyu2f = callPackage ../development/python-modules/pyu2f { };
+
+  pyuavcan = callPackage
+    ../development/python-modules/pyuavcan { # this version pinpoint to anold version is necessary due to a regression
+      nunavut = self.nunavut.overridePythonAttrs (old: rec {
+        version = "0.2.3";
+        src = old.src.override {
+          inherit version;
+          hash = "sha256-pZtRUvQMpqrnW5+8umsRcNhF9NJZJZ3I9yILVglMCnU=";
+        };
+      });
+    };
+
+  pyudev = callPackage ../development/python-modules/pyudev {
+    inherit (pkgs) udev;
+  };
+
+  pyunbound = toPythonModule (callPackage ../tools/networking/unbound/python.nix { });
+
+  pyunifi = callPackage ../development/python-modules/pyunifi { };
+
+  pyunifiprotect = callPackage ../development/python-modules/pyunifiprotect { };
+
+  pyupdate = callPackage ../development/python-modules/pyupdate { };
+
+  pyupgrade = callPackage ../development/python-modules/pyupgrade { };
+
+  pyuptimerobot = callPackage ../development/python-modules/pyuptimerobot { };
+
+  pyusb = callPackage ../development/python-modules/pyusb {
+    inherit (pkgs) libusb1;
+  };
+
+  pyuseragents = callPackage ../development/python-modules/pyuseragents { };
+
+  pyutilib = callPackage ../development/python-modules/pyutilib { };
+
+  pyuv = callPackage ../development/python-modules/pyuv { };
+
+  py-vapid = callPackage ../development/python-modules/py-vapid { };
+
+  pyvcd = callPackage ../development/python-modules/pyvcd { };
+
+  pyvera = callPackage ../development/python-modules/pyvera { };
+
+  pyverilog = callPackage ../development/python-modules/pyverilog { };
+
+  pyversasense = callPackage ../development/python-modules/pyversasense { };
+
+  pyvesync = callPackage ../development/python-modules/pyvesync { };
+
+  pyvex = callPackage ../development/python-modules/pyvex { };
+
+  pyvicare = callPackage ../development/python-modules/pyvicare { };
+
+  pyvirtualdisplay = callPackage ../development/python-modules/pyvirtualdisplay { };
+
+  pyvis = callPackage ../development/python-modules/pyvis { };
+
+  pyvisa = callPackage ../development/python-modules/pyvisa { };
+
+  pyvisa-py = callPackage ../development/python-modules/pyvisa-py { };
+
+  pyvisa-sim = callPackage ../development/python-modules/pyvisa-sim { };
+
+  pyvista = callPackage ../development/python-modules/pyvista { };
+
+  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
+
+  pyvizio = callPackage ../development/python-modules/pyvizio { };
+
+  pyvips = callPackage ../development/python-modules/pyvips {
+    inherit (pkgs) vips glib;
+  };
+
+  pyvlx = callPackage ../development/python-modules/pyvlx { };
+
+  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+
+  pyvo = callPackage ../development/python-modules/pyvo { };
+
+  pyvolumio = callPackage ../development/python-modules/pyvolumio { };
+
+  pyvoro = callPackage ../development/python-modules/pyvoro { };
+
+  pywal = callPackage ../development/python-modules/pywal { };
+
+  pywatchman = callPackage ../development/python-modules/pywatchman { };
+
+  pywaterkotte = callPackage ../development/python-modules/pywaterkotte { };
+
+  pywavelets = callPackage ../development/python-modules/pywavelets { };
+
+  pywayland = callPackage ../development/python-modules/pywayland { };
+
+  pywaze = callPackage ../development/python-modules/pywaze { };
+
+  pywbem = callPackage ../development/python-modules/pywbem {
+    inherit (pkgs) libxml2;
+  };
+
+  pyweatherflowrest = callPackage ../development/python-modules/pyweatherflowrest { };
+
+  pyweatherflowudp = callPackage ../development/python-modules/pyweatherflowudp { };
+
+  pywebpush = callPackage ../development/python-modules/pywebpush { };
+
+  pywebview = callPackage ../development/python-modules/pywebview { };
+
+  pywemo = callPackage ../development/python-modules/pywemo { };
+
+  pywerview = callPackage ../development/python-modules/pywerview { };
+
+  pywfa = callPackage ../development/python-modules/pywfa { };
+
+  pywilight = callPackage ../development/python-modules/pywilight { };
+
+  pywinrm = callPackage ../development/python-modules/pywinrm { };
+
+  pywizlight = callPackage ../development/python-modules/pywizlight { };
+
+  pywlroots = callPackage ../development/python-modules/pywlroots {
+    wlroots = pkgs.wlroots_0_16;
+  };
+
+  pyws66i = callPackage ../development/python-modules/pyws66i { };
+
+  pyxattr = callPackage ../development/python-modules/pyxattr { };
+
+  pyxlsb = callPackage ../development/python-modules/pyxlsb { };
+
+  pyworld = callPackage ../development/python-modules/pyworld { };
+
+  pyx = callPackage ../development/python-modules/pyx { };
+
+  pyxb = callPackage ../development/python-modules/pyxb { };
+
+  pyxbe = callPackage ../development/python-modules/pyxbe { };
+
+  pyxdg = callPackage ../development/python-modules/pyxdg { };
+
+  pyxeoma = callPackage ../development/python-modules/pyxeoma { };
+
+  pyxiaomigateway = callPackage ../development/python-modules/pyxiaomigateway { };
+
+  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
+
+  pyxnat = callPackage ../development/python-modules/pyxnat { };
+
+  pyyaml = callPackage ../development/python-modules/pyyaml { };
+
+  pyyaml-env-tag = callPackage ../development/python-modules/pyyaml-env-tag { };
+
+  pyyaml-include = callPackage ../development/python-modules/pyyaml-include { };
+
+  pyyardian = callPackage ../development/python-modules/pyyardian { };
+
+  pyzerproc = callPackage ../development/python-modules/pyzerproc { };
+
+  pyzmq = callPackage ../development/python-modules/pyzmq { };
+
+  pyzufall = callPackage ../development/python-modules/pyzufall { };
+
+  qbittorrent-api = callPackage ../development/python-modules/qbittorrent-api { };
+
+  qasync = callPackage ../development/python-modules/qasync { };
+
+  qcelemental = callPackage ../development/python-modules/qcelemental { };
+
+  qcengine = callPackage ../development/python-modules/qcengine { };
+
+  qcodes = callPackage ../development/python-modules/qcodes { };
+
+  qcodes-contrib-drivers = callPackage ../development/python-modules/qcodes-contrib-drivers { };
+
+  qcs-api-client = callPackage ../development/python-modules/qcs-api-client { };
+
+  qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
+
+  qdldl = callPackage ../development/python-modules/qdldl { };
+
+  qdrant-client = callPackage ../development/python-modules/qdrant-client { };
+
+  qds-sdk = callPackage ../development/python-modules/qds-sdk { };
+
+  qgrid = callPackage ../development/python-modules/qgrid { };
+
+  qiling = callPackage ../development/python-modules/qiling { };
+
+  qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };
+
+  qingping-ble = callPackage ../development/python-modules/qingping-ble { };
+
+  qiskit = callPackage ../development/python-modules/qiskit { };
+
+  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
+
+  qiskit-finance = callPackage ../development/python-modules/qiskit-finance { };
+
+  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
+
+  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
+
+  qiskit-machine-learning = callPackage ../development/python-modules/qiskit-machine-learning { };
+
+  qiskit-nature = callPackage ../development/python-modules/qiskit-nature { };
+
+  qiskit-optimization = callPackage ../development/python-modules/qiskit-optimization { };
+
+  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
+
+  qnap-qsw = callPackage ../development/python-modules/qnap-qsw{ };
+
+  qnapstats = callPackage ../development/python-modules/qnapstats { };
+
+  qpageview = callPackage ../development/python-modules/qpageview { };
+
+  qpsolvers = callPackage ../development/python-modules/qpsolvers { };
+
+  qrcode = callPackage ../development/python-modules/qrcode { };
+
+  qreactor = callPackage ../development/python-modules/qreactor { };
+
+  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
+    pythonPackages = self;
+  };
+
+  qscintilla = self.qscintilla-qt5;
+
+  qstylizer = callPackage ../development/python-modules/qstylizer { };
+
+  qt-material = callPackage ../development/python-modules/qt-material { };
+
+  qt5reactor = callPackage ../development/python-modules/qt5reactor { };
+
+  qt6 = pkgs.qt6.override {
+    python3 = self.python;
+  };
+
+  qtawesome = callPackage ../development/python-modules/qtawesome { };
+
+  qtconsole = callPackage ../development/python-modules/qtconsole { };
+
+  qtile = callPackage ../development/python-modules/qtile {
+    wlroots = pkgs.wlroots_0_16;
+  };
+  qtile-extras = callPackage ../development/python-modules/qtile-extras { };
+
+  qtpy = callPackage ../development/python-modules/qtpy { };
+
+  quadprog = callPackage ../development/python-modules/quadprog { };
+
+  qualysclient = callPackage ../development/python-modules/qualysclient { };
+
+  quamash = callPackage ../development/python-modules/quamash { };
+
+  quandl = callPackage ../development/python-modules/quandl { };
+
+  quantities = callPackage ../development/python-modules/quantities { };
+
+  quantiphy = callPackage ../development/python-modules/quantiphy { };
+
+  quantile-python = callPackage ../development/python-modules/quantile-python { };
+
+  quantiphy-eval = callPackage ../development/python-modules/quantiphy-eval { };
+
+  quantum-gateway = callPackage ../development/python-modules/quantum-gateway { };
+
+  quantulum3 = callPackage ../development/python-modules/quantulum3 { };
+
+  quart = callPackage ../development/python-modules/quart { };
+
+  quart-cors = callPackage ../development/python-modules/quart-cors { };
+
+  quaternion = callPackage ../development/python-modules/quaternion { };
+
+  qudida = callPackage ../development/python-modules/qudida { };
+
+  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
+
+  questionary = callPackage ../development/python-modules/questionary { };
+
+  queuelib = callPackage ../development/python-modules/queuelib { };
+
+  qutip = callPackage ../development/python-modules/qutip { };
+
+  qmk-dotty-dict = callPackage ../development/python-modules/qmk-dotty-dict { };
+
+  r2pipe = callPackage ../development/python-modules/r2pipe { };
+
+  rachiopy = callPackage ../development/python-modules/rachiopy { };
+
+  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {
+    radicale = pkgs.radicale.override { python3 = python; };
+  };
+
+  radian = callPackage ../development/python-modules/radian { };
+
+  radio-beam = callPackage ../development/python-modules/radio-beam { };
+
+  radios = callPackage ../development/python-modules/radios { };
+
+  radiotherm = callPackage ../development/python-modules/radiotherm { };
+
+  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
+
+  radon = callPackage ../development/python-modules/radon { };
+
+  railroad-diagrams = callPackage ../development/python-modules/railroad-diagrams { };
+
+  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
+
+  raincloudy = callPackage ../development/python-modules/raincloudy { };
+
+  ramlfications = callPackage ../development/python-modules/ramlfications { };
+
+  random2 = callPackage ../development/python-modules/random2 { };
+
+  range-typed-integers = callPackage ../development/python-modules/range-typed-integers { };
+
+  rangehttpserver = callPackage ../development/python-modules/rangehttpserver { };
+
+  rank-bm25 = callPackage ../development/python-modules/rank-bm25 { };
+
+  rapidfuzz = callPackage ../development/python-modules/rapidfuzz { };
+
+  rapidfuzz-capi = callPackage ../development/python-modules/rapidfuzz-capi { };
+
+  rapidgzip = callPackage ../development/python-modules/rapidgzip { inherit (pkgs) nasm; };
+
+  rapt-ble = callPackage ../development/python-modules/rapt-ble { };
+
+  rarfile = callPackage ../development/python-modules/rarfile {
+    inherit (pkgs) libarchive;
+  };
+
+  rasterio = callPackage ../development/python-modules/rasterio { };
+
+  ratarmountcore = callPackage ../development/python-modules/ratarmountcore { inherit (pkgs) zstd; };
+
+  ratarmount = callPackage ../development/python-modules/ratarmount { };
+
+  ratelim = callPackage ../development/python-modules/ratelim { };
+
+  ratelimit = callPackage ../development/python-modules/ratelimit { };
+
+  rauth = callPackage ../development/python-modules/rauth { };
+
+  raven = callPackage ../development/python-modules/raven { };
+
+  rawkit = callPackage ../development/python-modules/rawkit { };
+
+  ray = callPackage ../development/python-modules/ray { };
+
+  razdel = callPackage ../development/python-modules/razdel { };
+
+  rbtools = callPackage ../development/python-modules/rbtools { };
+
+  rchitect = callPackage ../development/python-modules/rchitect { };
+
+  rcssmin = callPackage ../development/python-modules/rcssmin { };
+
+  rdflib = callPackage ../development/python-modules/rdflib { };
+
+  rdkit = callPackage ../development/python-modules/rdkit {
+    boost = pkgs.boost182.override {
+      enablePython = true;
+      inherit python;
+    };
+  };
+
+  re-assert = callPackage ../development/python-modules/re-assert { };
+
+  readability-lxml = callPackage ../development/python-modules/readability-lxml { };
+
+  readchar = callPackage ../development/python-modules/readchar { };
+
+  readlike = callPackage ../development/python-modules/readlike { };
+
+  readmdict = callPackage ../development/python-modules/readmdict { };
+
+  readme = callPackage ../development/python-modules/readme { };
+
+  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
+
+  readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
+
+  reactivex = callPackage ../development/python-modules/reactivex { };
+
+  rebulk = callPackage ../development/python-modules/rebulk { };
+
+  recipe-scrapers = callPackage ../development/python-modules/recipe-scrapers { };
+
+  recline = callPackage ../development/python-modules/recline { };
+
+  recoll = toPythonModule (pkgs.recoll.override {
+    python3Packages = self;
+  });
+
+  recommonmark = callPackage ../development/python-modules/recommonmark { };
+
+  recordlinkage = callPackage ../development/python-modules/recordlinkage { };
+
+  recurring-ical-events = callPackage ../development/python-modules/recurring-ical-events { };
+
+  redbaron = callPackage ../development/python-modules/redbaron { };
+
+  redis = callPackage ../development/python-modules/redis { };
+
+  redis-om = callPackage ../development/python-modules/redis-om { };
+
+  redshift-connector = callPackage ../development/python-modules/redshift-connector { };
+
+  reedsolo = callPackage ../development/python-modules/reedsolo { };
+
+  referencing = callPackage ../development/python-modules/referencing { };
+
+  reflink = callPackage ../development/python-modules/reflink { };
+
+  regenmaschine = callPackage ../development/python-modules/regenmaschine { };
+
+  regex = callPackage ../development/python-modules/regex { };
+
+  regional = callPackage ../development/python-modules/regional { };
+
+  reikna = callPackage ../development/python-modules/reikna { };
+
+  related = callPackage ../development/python-modules/related { };
+
+  relatorio = callPackage ../development/python-modules/relatorio { };
+
+  releases = callPackage ../development/python-modules/releases { };
+
+  remarshal = callPackage ../development/python-modules/remarshal { };
+
+  remi = callPackage ../development/python-modules/remi { };
+
+  remote-pdb = callPackage ../development/python-modules/remote-pdb { };
+
+  remotezip = callPackage ../development/python-modules/remotezip { };
+
+  renault-api = callPackage ../development/python-modules/renault-api { };
+
+  rencode = callPackage ../development/python-modules/rencode { };
+
+  renson-endura-delta = callPackage ../development/python-modules/renson-endura-delta { };
+
+  reorder-python-imports = callPackage ../development/python-modules/reorder-python-imports { };
+
+  reolink = callPackage ../development/python-modules/reolink { };
+
+  reolink-aio = callPackage ../development/python-modules/reolink-aio { };
+
+  reparser = callPackage ../development/python-modules/reparser { };
+
+  repath = callPackage ../development/python-modules/repath { };
+
+  repeated-test = callPackage ../development/python-modules/repeated-test { };
+
+  repocheck = callPackage ../development/python-modules/repocheck { };
+
+  reportengine = callPackage ../development/python-modules/reportengine { };
+
+  reportlab = callPackage ../development/python-modules/reportlab { };
+
+  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
+
+  repoze_sphinx_autointerface = callPackage ../development/python-modules/repoze_sphinx_autointerface { };
+
+  repoze_who = callPackage ../development/python-modules/repoze_who { };
+
+  reproject = callPackage ../development/python-modules/reproject { };
+
+  reprshed = callPackage ../development/python-modules/reprshed { };
+
+  reptor = callPackage ../development/python-modules/reptor { };
+
+  reqif = callPackage ../development/python-modules/reqif { };
+
+  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
+
+  requests-cache = callPackage ../development/python-modules/requests-cache { };
+
+  requests-credssp = callPackage ../development/python-modules/requests-credssp { };
+
+  requests-hawk = callPackage ../development/python-modules/requests-hawk { };
+
+  requests = callPackage ../development/python-modules/requests { };
+
+  requests_download = callPackage ../development/python-modules/requests_download { };
+
+  requestsexceptions = callPackage ../development/python-modules/requestsexceptions { };
+
+  requests-file = callPackage ../development/python-modules/requests-file { };
+
+  requests-futures = callPackage ../development/python-modules/requests-futures { };
+
+  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
+
+  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
+
+  requests-mock = callPackage ../development/python-modules/requests-mock { };
+
+  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
+
+  requests-oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
+
+  requests-pkcs12 = callPackage ../development/python-modules/requests-pkcs12 { };
+
+  requests-ratelimiter = callPackage ../development/python-modules/requests-ratelimiter { };
+
+  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
+
+  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket { };
+
+  requests-wsgi-adapter = callPackage ../development/python-modules/requests-wsgi-adapter { };
+
+  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
+
+  requirements-parser = callPackage ../development/python-modules/requirements-parser { };
+
+  reretry = callPackage ../development/python-modules/reretry { };
+
+  resampy = callPackage ../development/python-modules/resampy { };
+
+  resize-right = callPackage ../development/python-modules/resize-right { };
+
+  resolvelib = callPackage ../development/python-modules/resolvelib { };
+
+  responses = callPackage ../development/python-modules/responses { };
+
+  respx = callPackage ../development/python-modules/respx { };
+
+  restfly = callPackage ../development/python-modules/restfly { };
+
+  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
+
+  restructuredtext-lint = callPackage ../development/python-modules/restructuredtext-lint { };
+
+  restview = callPackage ../development/python-modules/restview { };
+
+  result = callPackage ../development/python-modules/result { };
+
+  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
+
+  retry = callPackage ../development/python-modules/retry { };
+
+  retry_decorator = callPackage ../development/python-modules/retry_decorator { };
+
+  retrying = callPackage ../development/python-modules/retrying { };
+
+  returns = callPackage ../development/python-modules/returns { };
+
+  reuse = callPackage ../development/python-modules/reuse { };
+
+  rfc3339 = callPackage ../development/python-modules/rfc3339 { };
+
+  rfc3339-validator = callPackage ../development/python-modules/rfc3339-validator { };
+
+  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
+
+  rfc3986-validator = callPackage ../development/python-modules/rfc3986-validator { };
+
+  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
+
+  rfc6555 = callPackage ../development/python-modules/rfc6555 { };
+
+  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
+
+  rfcat = callPackage ../development/python-modules/rfcat { };
+
+  rflink = callPackage ../development/python-modules/rflink { };
+
+  rich = callPackage ../development/python-modules/rich { };
+
+  rich-argparse = callPackage ../development/python-modules/rich-argparse { };
+
+  rich-argparse-plus = callPackage ../development/python-modules/rich-argparse-plus { };
+
+  rich-click = callPackage ../development/python-modules/rich-click { };
+
+  rich-pixels = callPackage ../development/python-modules/rich-pixels { };
+
+  rich-rst = callPackage ../development/python-modules/rich-rst { };
+
+  ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
+
+  ripe-atlas-cousteau = callPackage ../development/python-modules/ripe-atlas-cousteau { };
+
+  ripe-atlas-sagan = callPackage ../development/python-modules/ripe-atlas-sagan { };
+
+  riprova = callPackage ../development/python-modules/riprova { };
+
+  ripser = callPackage ../development/python-modules/ripser { };
+
+  riscof = callPackage ../development/python-modules/riscof { };
+
+  riscv-config = callPackage ../development/python-modules/riscv-config { };
+
+  riscv-isac = callPackage ../development/python-modules/riscv-isac { };
+
+  rising = callPackage ../development/python-modules/rising { };
+
+  ritassist = callPackage ../development/python-modules/ritassist { };
+
+  rivet = toPythonModule (pkgs.rivet.override {
+    python3 = python;
+  });
+
+  rjpl = callPackage ../development/python-modules/rjpl { };
+
+  rjsmin = callPackage ../development/python-modules/rjsmin { };
+
+  rki-covid-parser = callPackage ../development/python-modules/rki-covid-parser { };
+
+  rkm-codes = callPackage ../development/python-modules/rkm-codes { };
+
+  rlax = callPackage ../development/python-modules/rlax { };
+
+  rlp = callPackage ../development/python-modules/rlp { };
+
+  rmcl = callPackage ../development/python-modules/rmcl { };
+
+  rmrl = callPackage ../development/python-modules/rmrl { };
+
+  rmsd = callPackage ../development/python-modules/rmsd { };
+
+  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
+
+  rnginline = callPackage ../development/python-modules/rnginline { };
+
+  rns = callPackage ../development/python-modules/rns { };
+
+  robomachine = callPackage ../development/python-modules/robomachine { };
+
+  robot-detection = callPackage ../development/python-modules/robot-detection { };
+
+  robotframework = callPackage ../development/python-modules/robotframework { };
+
+  robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
+
+  robotframework-pythonlibcore = callPackage ../development/python-modules/robotframework-pythonlibcore { };
+
+  robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
+
+  robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
+
+  robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
+
+  robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { };
+
+  robotframework-tools = callPackage ../development/python-modules/robotframework-tools { };
+
+  robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { };
+
+  robotsuite = callPackage ../development/python-modules/robotsuite { };
+
+  rocket-errbot = callPackage ../development/python-modules/rocket-errbot { };
+
+  roku = callPackage ../development/python-modules/roku { };
+
+  rokuecp = callPackage ../development/python-modules/rokuecp { };
+
+  rollbar = callPackage ../development/python-modules/rollbar { };
+
+  roman = callPackage ../development/python-modules/roman { };
+
+  roombapy = callPackage ../development/python-modules/roombapy { };
+
+  roonapi = callPackage ../development/python-modules/roonapi { };
+
+  ronin = callPackage ../development/python-modules/ronin { };
+
+  rope = callPackage ../development/python-modules/rope { };
+
+  ropgadget = callPackage ../development/python-modules/ropgadget { };
+
+  ropper = callPackage ../development/python-modules/ropper { };
+
+  rotary-embedding-torch = callPackage ../development/python-modules/rotary-embedding-torch { };
+
+  rouge-score = callPackage ../development/python-modules/rouge-score { };
+
+  routeros-api = callPackage ../development/python-modules/routeros-api { };
+
+  routes = callPackage ../development/python-modules/routes { };
+
+  rova = callPackage ../development/python-modules/rova { };
+
+  rpcq = callPackage ../development/python-modules/rpcq { };
+
+  rpdb = callPackage ../development/python-modules/rpdb { };
+
+  rpds-py = callPackage ../development/python-modules/rpds-py { };
+
+  rpi-bad-power = callPackage ../development/python-modules/rpi-bad-power { };
+
+  rpi-gpio = callPackage ../development/python-modules/rpi-gpio { };
+
+  rpi-gpio2 = callPackage ../development/python-modules/rpi-gpio2 { };
+
+  rplcd = callPackage ../development/python-modules/rplcd { };
+
+  rply = callPackage ../development/python-modules/rply { };
+
+  rpm = toPythonModule (pkgs.rpm.override {
+    inherit python;
+  });
+
+  rpmfile = callPackage ../development/python-modules/rpmfile { };
+
+  rpmfluff = callPackage ../development/python-modules/rpmfluff { };
+
+  rpy2 = callPackage ../development/python-modules/rpy2 { };
+
+  rpyc = callPackage ../development/python-modules/rpyc { };
+
+  rq = callPackage ../development/python-modules/rq { };
+
+  rsa = callPackage ../development/python-modules/rsa { };
+
+  rsskey = callPackage ../development/python-modules/rsskey { };
+
+  rst2ansi = callPackage ../development/python-modules/rst2ansi { };
+
+  rst2pdf = callPackage ../development/python-modules/rst2pdf { };
+
+  rstcheck = callPackage ../development/python-modules/rstcheck { };
+
+  rstcheck-core = callPackage ../development/python-modules/rstcheck-core { };
+
+  rstr = callPackage ../development/python-modules/rstr { };
+
+  rtmidi-python = callPackage ../development/python-modules/rtmidi-python {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices;
+  };
+
+  rtoml = callPackage ../development/python-modules/rtoml { };
+
+  rtp = callPackage ../development/python-modules/rtp { };
+
+  rtree = callPackage ../development/python-modules/rtree {
+    inherit (pkgs) libspatialindex;
+  };
+
+  rtslib = callPackage ../development/python-modules/rtslib { };
+
+  rtsp-to-webrtc = callPackage ../development/python-modules/rtsp-to-webrtc { };
+
+  ruamel-base = callPackage ../development/python-modules/ruamel-base { };
+
+  ruamel-yaml = callPackage ../development/python-modules/ruamel-yaml { };
+
+  ruamel-yaml-clib = callPackage ../development/python-modules/ruamel-yaml-clib { };
+
+  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
+
+  ruffus = callPackage ../development/python-modules/ruffus { };
+
+  rules = callPackage ../development/python-modules/rules { };
+
+  ruuvitag-ble = callPackage ../development/python-modules/ruuvitag-ble { };
+
+  ruyaml = callPackage ../development/python-modules/ruyaml { };
+
+  rx = callPackage ../development/python-modules/rx { };
+
+  rxv = callPackage ../development/python-modules/rxv { };
+
+  rzpipe = callPackage ../development/python-modules/rzpipe { };
+
+  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
+
+  s3fs = callPackage ../development/python-modules/s3fs { };
+
+  s3transfer = callPackage ../development/python-modules/s3transfer { };
+
+  s3-credentials = callPackage ../development/python-modules/s3-credentials { };
+
+  sabctools = callPackage ../development/python-modules/sabctools { };
+
+  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
+
+  sabyenc = callPackage ../development/python-modules/sabyenc { };
+
+  sacn = callPackage ../development/python-modules/sacn { };
+
+  sacrebleu = callPackage ../development/python-modules/sacrebleu { };
+
+  sacremoses = callPackage ../development/python-modules/sacremoses { };
+
+  safe = callPackage ../development/python-modules/safe { };
+
+  safe-pysha3 = callPackage ../development/python-modules/safe-pysha3 { };
+
+  safeio = callPackage ../development/python-modules/safeio { };
+
+  safetensors = callPackage ../development/python-modules/safetensors { };
+
+  safety = callPackage ../development/python-modules/safety { };
+
+  sagemaker = callPackage ../development/python-modules/sagemaker { };
+
+  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
+
+  sane = callPackage ../development/python-modules/sane {
+    inherit (pkgs) sane-backends;
+  };
+
+  saneyaml = callPackage ../development/python-modules/saneyaml { };
+
+  sampledata = callPackage ../development/python-modules/sampledata { };
+
+  samplerate = callPackage ../development/python-modules/samplerate {
+    inherit (pkgs) libsamplerate;
+  };
+
+  samsungctl = callPackage ../development/python-modules/samsungctl { };
+
+  samsungtvws = callPackage ../development/python-modules/samsungtvws { };
+
+  sanic = callPackage ../development/python-modules/sanic {
+    # Don't pass any `sanic` to avoid dependency loops.  `sanic-testing`
+    # has special logic to disable tests when this is the case.
+    sanic-testing = self.sanic-testing.override { sanic = null; };
+  };
+
+  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
+
+  sanic-routing = callPackage ../development/python-modules/sanic-routing { };
+
+  sanic-testing = callPackage ../development/python-modules/sanic-testing { };
+
+  sansio-multipart = callPackage ../development/python-modules/sansio-multipart { };
+
+  sarif-om = callPackage ../development/python-modules/sarif-om { };
+
+  sarge = callPackage ../development/python-modules/sarge { };
+
+  sasmodels = callPackage ../development/python-modules/sasmodels { };
+
+  scales = callPackage ../development/python-modules/scales { };
+
+  scancode-toolkit = callPackage ../development/python-modules/scancode-toolkit { };
+
+  scapy = callPackage ../development/python-modules/scapy {
+    inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
+  };
+
+  schedule = callPackage ../development/python-modules/schedule { };
+
+  schema = callPackage ../development/python-modules/schema { };
+
+  schemainspect = callPackage ../development/python-modules/schemainspect { };
+
+  schema-salad = callPackage ../development/python-modules/schema-salad { };
+
+  schemdraw = callPackage ../development/python-modules/schemdraw { };
+
+  schiene = callPackage ../development/python-modules/schiene { };
+
+  schwifty = callPackage ../development/python-modules/schwifty { };
+
+  scim2-filter-parser = callPackage ../development/python-modules/scim2-filter-parser { };
+
+  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
+
+  scikit-build = callPackage ../development/python-modules/scikit-build { };
+
+  scikit-build-core = callPackage ../development/python-modules/scikit-build-core { };
+
+  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
+
+  scikit-fuzzy = callPackage ../development/python-modules/scikit-fuzzy { };
+
+  scikit-hep-testdata = callPackage ../development/python-modules/scikit-hep-testdata { };
+
+  scikit-image = callPackage ../development/python-modules/scikit-image { };
+
+  scikit-learn = callPackage ../development/python-modules/scikit-learn {
+    inherit (pkgs) gfortran glibcLocales;
+  };
+
+  scikit-learn-extra = callPackage ../development/python-modules/scikit-learn-extra { };
+
+  scikit-misc = callPackage ../development/python-modules/scikit-misc { };
+
+  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
+
+  scikit-posthocs = callPackage ../development/python-modules/scikit-posthocs { };
+
+  scikit-rf = callPackage ../development/python-modules/scikit-rf { };
+
+  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
+
+  scikits-samplerate = callPackage ../development/python-modules/scikits-samplerate {
+    inherit (pkgs) libsamplerate;
+  };
+
+  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
+
+  scipy = callPackage ../development/python-modules/scipy { };
+
+  scmrepo = callPackage ../development/python-modules/scmrepo { };
+
+  scour = callPackage ../development/python-modules/scour { };
+
+  scooby = callPackage ../development/python-modules/scooby { };
+
+  scp = callPackage ../development/python-modules/scp { };
+
+  scramp = callPackage ../development/python-modules/scramp { };
+
+  scrap-engine = callPackage ../development/python-modules/scrap-engine { };
+
+  scrapy = callPackage ../development/python-modules/scrapy { };
+
+  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
+
+  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
+
+  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
+
+  screed = callPackage ../development/python-modules/screed { };
+
+  screeninfo = callPackage ../development/python-modules/screeninfo { };
+
+  screenlogicpy = callPackage ../development/python-modules/screenlogicpy { };
+
+  scripttest = callPackage ../development/python-modules/scripttest { };
+
+  scikit-survival = callPackage ../development/python-modules/scikit-survival { };
+
+  scs = callPackage ../development/python-modules/scs {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate;
+  };
+
+  sdds = callPackage ../development/python-modules/sdds { };
+
+  sdkmanager = callPackage ../development/python-modules/sdkmanager { };
+
+  sdnotify = callPackage ../development/python-modules/sdnotify { };
+
+  seaborn = callPackage ../development/python-modules/seaborn { };
+
+  seabreeze = callPackage ../development/python-modules/seabreeze { };
+
+  seaserv = toPythonModule (pkgs.seafile-server.override {
+    python3 = self.python;
+  });
+
+  seasonal = callPackage ../development/python-modules/seasonal { };
+
+  seatconnect = callPackage ../development/python-modules/seatconnect { };
+
+  seccomp = callPackage ../development/python-modules/seccomp { };
+
+  secp256k1 = callPackage ../development/python-modules/secp256k1 {
+    inherit (pkgs) secp256k1;
+  };
+
+  secretstorage = callPackage ../development/python-modules/secretstorage { };
+
+  secure = callPackage ../development/python-modules/secure { };
+
+  securesystemslib = callPackage ../development/python-modules/securesystemslib { };
+
+  securetar = callPackage ../development/python-modules/securetar { };
+
+  sectools = callPackage ../development/python-modules/sectools { };
+
+  seedir = callPackage ../development/python-modules/seedir { };
+
+  seekpath = callPackage ../development/python-modules/seekpath { };
+
+  segments = callPackage ../development/python-modules/segments { };
+
+  segno = callPackage ../development/python-modules/segno { };
+
+  segyio = toPythonModule (callPackage ../development/python-modules/segyio {
+    inherit (pkgs) cmake ninja;
+  });
+
+  selectors2 = callPackage ../development/python-modules/selectors2 { };
+
+  selenium = callPackage ../development/python-modules/selenium { };
+
+  semantic-version = callPackage ../development/python-modules/semantic-version { };
+
+  semaphore-bot = callPackage ../development/python-modules/semaphore-bot { };
+
+  semver = callPackage ../development/python-modules/semver { };
+
+  send2trash = callPackage ../development/python-modules/send2trash { };
+
+  sendgrid = callPackage ../development/python-modules/sendgrid { };
+
+  sense-energy = callPackage ../development/python-modules/sense-energy { };
+
+  sensirion-ble = callPackage ../development/python-modules/sensirion-ble { };
+
+  sensor-state-data = callPackage ../development/python-modules/sensor-state-data { };
+
+  sensorpro-ble = callPackage ../development/python-modules/sensorpro-ble { };
+
+  sensorpush-ble = callPackage ../development/python-modules/sensorpush-ble { };
+
+  sentencepiece = callPackage ../development/python-modules/sentencepiece {
+    inherit (pkgs) sentencepiece;
+  };
+
+  sentence-splitter = callPackage ../development/python-modules/sentence-splitter { };
+
+  sentence-transformers = callPackage ../development/python-modules/sentence-transformers { };
+
+  sentinel = callPackage ../development/python-modules/sentinel { };
+
+  sentinels = callPackage ../development/python-modules/sentinels { };
+
+  sentry-sdk = callPackage ../development/python-modules/sentry-sdk { };
+
+  sepaxml = callPackage ../development/python-modules/sepaxml { };
+
+  seqdiag = callPackage ../development/python-modules/seqdiag { };
+
+  seqeval = callPackage ../development/python-modules/seqeval { };
+
+  serialio = callPackage ../development/python-modules/serialio { };
+
+  serializable = callPackage ../development/python-modules/serializable { };
+
+  serpent = callPackage ../development/python-modules/serpent { };
+
+  serpy = callPackage ../development/python-modules/serpy { };
+
+  servefile = callPackage ../development/python-modules/servefile { };
+
+  serverfiles = callPackage ../development/python-modules/serverfiles { };
+
+  serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
+
+  service-identity = callPackage ../development/python-modules/service-identity { };
+
+  setproctitle = callPackage ../development/python-modules/setproctitle { };
+
+  setupmeta = callPackage ../development/python-modules/setupmeta { };
+
+  setuptools-changelog-shortener = callPackage ../development/python-modules/setuptools-changelog-shortener { };
+
+  setuptools-declarative-requirements = callPackage ../development/python-modules/setuptools-declarative-requirements { };
+
+  setuptools_dso = callPackage ../development/python-modules/setuptools_dso { };
+
+  setuptools-generate = callPackage ../development/python-modules/setuptools-generate { };
+
+  setuptools-gettext = callPackage ../development/python-modules/setuptools-gettext { };
+
+  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
+
+  setuptools-git-versioning = callPackage ../development/python-modules/setuptools-git-versioning { };
+
+  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
+
+  setuptools-odoo = callPackage ../development/python-modules/setuptools-odoo { };
+
+  setuptools-rust = callPackage ../development/python-modules/setuptools-rust { };
+
+  setuptools-scm = callPackage ../development/python-modules/setuptools-scm { };
+
+  setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
+
+  setuptools-trial = callPackage ../development/python-modules/setuptools-trial { };
+
+  seventeentrack = callPackage ../development/python-modules/seventeentrack { };
+
+  sexpdata = callPackage ../development/python-modules/sexpdata { };
+
+  sfepy = callPackage ../development/python-modules/sfepy { };
+
+  sfrbox-api = callPackage ../development/python-modules/sfrbox-api { };
+
+  sgmllib3k = callPackage ../development/python-modules/sgmllib3k { };
+
+  sgp4 = callPackage ../development/python-modules/sgp4 { };
+
+  shamir-mnemonic = callPackage ../development/python-modules/shamir-mnemonic { };
+
+  shap = callPackage ../development/python-modules/shap { };
+
+  shapely = callPackage ../development/python-modules/shapely { };
+
+  shapely_1_8 = callPackage ../development/python-modules/shapely/1.8.nix { };
+
+  shaperglot = callPackage ../development/python-modules/shaperglot { };
+
+  sharedmem = callPackage ../development/python-modules/sharedmem { };
+
+  sharkiq = callPackage ../development/python-modules/sharkiq { };
+
+  shazamio = callPackage ../development/python-modules/shazamio { };
+
+  sh = callPackage ../development/python-modules/sh { };
+
+  shlib = callPackage ../development/python-modules/shlib { };
+
+  shellescape = callPackage ../development/python-modules/shellescape { };
+
+  shellingham = callPackage ../development/python-modules/shellingham { };
+
+  shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 {
+    inherit (pkgs) cmake llvmPackages_15 qt5;
+  });
+
+  shiboken6 = toPythonModule (callPackage ../development/python-modules/shiboken6 {
+    inherit (pkgs) cmake llvmPackages;
+  });
+
+  shippai = callPackage ../development/python-modules/shippai { };
+
+  shiv = callPackage ../development/python-modules/shiv { };
+
+  shodan = callPackage ../development/python-modules/shodan { };
+
+  shortuuid = callPackage ../development/python-modules/shortuuid { };
+
+  shouldbe = callPackage ../development/python-modules/shouldbe { };
+
+  should-dsl = callPackage ../development/python-modules/should-dsl { };
+
+  show-in-file-manager = callPackage ../development/python-modules/show-in-file-manager { };
+
+  showit = callPackage ../development/python-modules/showit { };
+
+  shtab = callPackage ../development/python-modules/shtab { };
+
+  shutilwhich = callPackage ../development/python-modules/shutilwhich { };
+
+  sievelib = callPackage ../development/python-modules/sievelib { };
+
+  signalslot = callPackage ../development/python-modules/signalslot { };
+
+  signedjson = callPackage ../development/python-modules/signedjson { };
+
+  sigrok = callPackage ../development/python-modules/sigrok { };
+
+  sigstore-protobuf-specs = callPackage ../development/python-modules/sigstore-protobuf-specs { };
+
+  sigstore-rekor-types = callPackage ../development/python-modules/sigstore-rekor-types { };
+
+  sigtools = callPackage ../development/python-modules/sigtools { };
+
+  simanneal = callPackage ../development/python-modules/simanneal { };
+
+  simber = callPackage ../development/python-modules/simber { };
+
+  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
+
+  simplebayes = callPackage ../development/python-modules/simplebayes { };
+
+  simpleeval = callPackage ../development/python-modules/simpleeval { };
+
+  simplefix = callPackage ../development/python-modules/simplefix { };
+
+  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
+
+  simplehound = callPackage ../development/python-modules/simplehound { };
+
+  simpleitk = callPackage ../development/python-modules/simpleitk {
+    inherit (pkgs) simpleitk;
+  };
+
+  simplejson = callPackage ../development/python-modules/simplejson { };
+
+  simplekml = callPackage ../development/python-modules/simplekml { };
+
+  simplekv = callPackage ../development/python-modules/simplekv { };
+
+  simplemma = callPackage ../development/python-modules/simplemma { };
+
+  simplenote = callPackage ../development/python-modules/simplenote { };
+
+  simplepush = callPackage ../development/python-modules/simplepush { };
+
+  simplesat = callPackage ../development/python-modules/simplesat { };
+
+  simple-di = callPackage ../development/python-modules/simple-di { };
+
+  simple-rest-client = callPackage ../development/python-modules/simple-rest-client { };
+
+  simple-rlp = callPackage ../development/python-modules/simple-rlp { };
+
+  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
+
+  simple-websocket = callPackage ../development/python-modules/simple-websocket { };
+
+  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server { };
+
+  simplisafe-python = callPackage ../development/python-modules/simplisafe-python { };
+
+  simpful = callPackage ../development/python-modules/simpful { };
+
+  simpy = callPackage ../development/python-modules/simpy { };
+
+  single-source = callPackage ../development/python-modules/single-source { };
+
+  single-version = callPackage ../development/python-modules/single-version { };
+
+  signify = callPackage ../development/python-modules/signify { };
+
+  siobrultech-protocols = callPackage ../development/python-modules/siobrultech-protocols { };
+
+  siosocks = callPackage ../development/python-modules/siosocks { };
+
+  sip = callPackage ../development/python-modules/sip { };
+
+  sip_4 = callPackage ../development/python-modules/sip/4.x.nix { };
+
+  sipyco = callPackage ../development/python-modules/sipyco { };
+
+  sisyphus-control = callPackage ../development/python-modules/sisyphus-control { };
+
+  siuba = callPackage ../development/python-modules/siuba { };
+
+  six = callPackage ../development/python-modules/six { };
+
+  sjcl = callPackage ../development/python-modules/sjcl { };
+
+  skein = callPackage ../development/python-modules/skein { };
+
+  skidl = callPackage ../development/python-modules/skidl { };
+
+  skl2onnx = callPackage ../development/python-modules/skl2onnx { };
+
+  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
+
+  skodaconnect = callPackage ../development/python-modules/skodaconnect { };
+
+  skorch = callPackage ../development/python-modules/skorch { };
+
+  skrl = callPackage ../development/python-modules/skrl { };
+
+  skybellpy = callPackage ../development/python-modules/skybellpy { };
+
+  skyfield = callPackage ../development/python-modules/skyfield { };
+
+  skytemple-dtef = callPackage ../development/python-modules/skytemple-dtef { };
+
+  skytemple-eventserver = callPackage ../development/python-modules/skytemple-eventserver { };
+
+  skytemple-files = callPackage ../development/python-modules/skytemple-files { };
+
+  skytemple-icons = callPackage ../development/python-modules/skytemple-icons { };
+
+  skytemple-rust = callPackage ../development/python-modules/skytemple-rust {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation;
+  };
+
+  skytemple-ssb-debugger = callPackage ../development/python-modules/skytemple-ssb-debugger { };
+
+  skytemple-ssb-emulator = callPackage ../development/python-modules/skytemple-ssb-emulator { };
+
+  slack-bolt = callPackage ../development/python-modules/slack-bolt { };
+
+  slack-sdk = callPackage ../development/python-modules/slack-sdk { };
+
+  slackclient = callPackage ../development/python-modules/slackclient { };
+
+  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
+
+  sleepyq = callPackage ../development/python-modules/sleepyq { };
+
+  slicedimage = callPackage ../development/python-modules/slicedimage { };
+
+  slicer = callPackage ../development/python-modules/slicer { };
+
+  slicerator = callPackage ../development/python-modules/slicerator { };
+
+  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
+
+  slimit = callPackage ../development/python-modules/slimit { };
+
+  slixmpp = callPackage ../development/python-modules/slixmpp {
+    inherit (pkgs) gnupg;
+  };
+
+  slob = callPackage ../development/python-modules/slob { };
+
+  slovnet = callPackage ../development/python-modules/slovnet { };
+
+  slowapi = callPackage ../development/python-modules/slowapi { };
+
+  slpp = callPackage ../development/python-modules/slpp { };
+
+  slugid = callPackage ../development/python-modules/slugid { };
+
+  sly = callPackage ../development/python-modules/sly { };
+
+  smart-meter-texas = callPackage ../development/python-modules/smart-meter-texas { };
+
+  smart-open = callPackage ../development/python-modules/smart-open { };
+
+  smarthab = callPackage ../development/python-modules/smarthab { };
+
+  smartypants = callPackage ../development/python-modules/smartypants { };
+
+  smbprotocol = callPackage ../development/python-modules/smbprotocol { };
+
+  smbus-cffi = callPackage ../development/python-modules/smbus-cffi { };
+
+  smbus2 = callPackage ../development/python-modules/smbus2 { };
+
+  smdebug-rulesconfig = callPackage ../development/python-modules/smdebug-rulesconfig { };
+
+  smhi-pkg = callPackage ../development/python-modules/smhi-pkg { };
+
+  smmap = callPackage ../development/python-modules/smmap { };
+
+  smpplib = callPackage ../development/python-modules/smpplib { };
+
+  smpp_pdu = callPackage ../development/python-modules/smpp.pdu { };
+
+  smtpdfix = callPackage ../development/python-modules/smtpdfix { };
+
+  snack = toPythonModule (pkgs.newt.override {
+    inherit (self) python;
+  });
+
+  snakebite = callPackage ../development/python-modules/snakebite { };
+
+  snakeviz = callPackage ../development/python-modules/snakeviz { };
+
+  snapcast = callPackage ../development/python-modules/snapcast { };
+
+  snapshottest = callPackage ../development/python-modules/snapshottest { };
+
+  snaptime = callPackage ../development/python-modules/snaptime { };
+
+  sniffio = callPackage ../development/python-modules/sniffio { };
+
+  snitun = callPackage ../development/python-modules/snitun { };
+
+  snorkel = callPackage ../development/python-modules/snorkel { };
+
+  snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
+
+  snowflake-connector-python = callPackage ../development/python-modules/snowflake-connector-python { };
+
+  snowflake-sqlalchemy = callPackage ../development/python-modules/snowflake-sqlalchemy { };
+
+  snscrape = callPackage ../development/python-modules/snscrape { };
+
+  snuggs = callPackage ../development/python-modules/snuggs { };
+
+  soapysdr = toPythonModule (pkgs.soapysdr.override {
+    inherit (self) python;
+    usePython = true;
+  });
+
+  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
+    inherit (self) python;
+    usePython = true;
+  });
+
+  socketio-client = callPackage ../development/python-modules/socketio-client { };
+
+  social-auth-app-django = callPackage ../development/python-modules/social-auth-app-django { };
+
+  social-auth-core = callPackage ../development/python-modules/social-auth-core { };
+
+  socialscan = callPackage ../development/python-modules/socialscan { };
+
+  socid-extractor =  callPackage ../development/python-modules/socid-extractor { };
+
+  sockio = callPackage ../development/python-modules/sockio { };
+
+  sockjs = callPackage ../development/python-modules/sockjs { };
+
+  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
+
+  socksio = callPackage ../development/python-modules/socksio { };
+
+  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
+
+  soco = callPackage ../development/python-modules/soco { };
+
+  softlayer = callPackage ../development/python-modules/softlayer { };
+
+  solaredge = callPackage ../development/python-modules/solaredge { };
+
+  solax = callPackage ../development/python-modules/solax { };
+
+  solc-select = callPackage ../development/python-modules/solc-select { };
+
+  solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
+
+  somajo = callPackage ../development/python-modules/somajo { };
+
+  somfy-mylink-synergy = callPackage ../development/python-modules/somfy-mylink-synergy { };
+
+  sonarr = callPackage ../development/python-modules/sonarr { };
+
+  sonos-websocket = callPackage ../development/python-modules/sonos-websocket { };
+
+  sopel = callPackage ../development/python-modules/sopel { };
+
+  sorl-thumbnail = callPackage ../development/python-modules/sorl-thumbnail { };
+
+  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
+
+  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
+
+  soundcloud-v2 = callPackage ../development/python-modules/soundcloud-v2 { };
+
+  sounddevice = callPackage ../development/python-modules/sounddevice { };
+
+  soundfile = callPackage ../development/python-modules/soundfile { };
+
+  soupsieve = callPackage ../development/python-modules/soupsieve { };
+
+  sourmash = callPackage ../development/python-modules/sourmash { };
+
+  soxr = callPackage ../development/python-modules/soxr {
+    libsoxr = pkgs.soxr;
+  };
+
+  spacy = callPackage ../development/python-modules/spacy { };
+
+  spacy-alignments = callPackage ../development/python-modules/spacy-alignments { };
+
+  spacy-legacy = callPackage ../development/python-modules/spacy/legacy.nix { };
+
+  spacy-loggers = callPackage ../development/python-modules/spacy-loggers { };
+
+  spacy-lookups-data = callPackage ../development/python-modules/spacy/lookups-data.nix { };
+
+  spacy_models = callPackage ../development/python-modules/spacy/models.nix {
+      inherit (pkgs) jq;
+  };
+
+  spacy-pkuseg = callPackage ../development/python-modules/spacy-pkuseg { };
+
+  spacy-transformers = callPackage ../development/python-modules/spacy-transformers { };
+
+  spake2 = callPackage ../development/python-modules/spake2 { };
+
+  spark_parser = callPackage ../development/python-modules/spark_parser { };
+
+  sparklines = callPackage ../development/python-modules/sparklines { };
+
+  sparqlwrapper = callPackage ../development/python-modules/sparqlwrapper { };
+
+  sparse = callPackage ../development/python-modules/sparse { };
+
+  spdx-tools = callPackage ../development/python-modules/spdx-tools { };
+
+  speaklater = callPackage ../development/python-modules/speaklater { };
+
+  speaklater3 = callPackage ../development/python-modules/speaklater3 { };
+
+  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
+
+  speechbrain = callPackage ../development/python-modules/speechbrain { };
+
+  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
+
+  speg = callPackage ../development/python-modules/speg { };
+
+  spglib = callPackage ../development/python-modules/spglib { };
+
+  sphfile = callPackage ../development/python-modules/sphfile { };
+
+  spiderpy = callPackage ../development/python-modules/spiderpy { };
+
+  spinners = callPackage ../development/python-modules/spinners { };
+
+  sphinx-automodapi = callPackage ../development/python-modules/sphinx-automodapi {
+    graphviz = pkgs.graphviz;
+  };
+
+  sphinx-better-theme = callPackage ../development/python-modules/sphinx-better-theme { };
+
+  sphinx-book-theme = callPackage ../development/python-modules/sphinx-book-theme { };
+
+  sphinx-codeautolink = callPackage ../development/python-modules/sphinx-codeautolink { };
+
+  sphinx-comments = callPackage ../development/python-modules/sphinx-comments { };
+
+  sphinx-design = callPackage ../development/python-modules/sphinx-design { };
+
+  sphinx-external-toc = callPackage ../development/python-modules/sphinx-external-toc { };
+
+  sphinx-fortran = callPackage ../development/python-modules/sphinx-fortran { };
+
+  sphinx-hoverxref = callPackage ../development/python-modules/sphinx-hoverxref { };
+
+  sphinx-intl = callPackage ../development/python-modules/sphinx-intl { };
+
+  sphinx-jupyterbook-latex = callPackage ../development/python-modules/sphinx-jupyterbook-latex { };
+
+  sphinx-multitoc-numbering = callPackage ../development/python-modules/sphinx-multitoc-numbering { };
+
+  sphinx-notfound-page = callPackage ../development/python-modules/sphinx-notfound-page { };
+
+  sphinx-pytest = callPackage ../development/python-modules/sphinx-pytest { };
+
+  sphinx-prompt = callPackage ../development/python-modules/sphinx-prompt { };
+
+  sphinx-sitemap = callPackage ../development/python-modules/sphinx-sitemap { };
+
+  sphinx-thebe = callPackage ../development/python-modules/sphinx-thebe { };
+
+  sphinx-tabs = callPackage ../development/python-modules/sphinx-tabs { };
+
+  sphinx-togglebutton = callPackage ../development/python-modules/sphinx-togglebutton { };
+
+  sphinxcontrib-actdiag = callPackage ../development/python-modules/sphinxcontrib-actdiag { };
+
+  sphinxcontrib-apidoc = callPackage ../development/python-modules/sphinxcontrib-apidoc { };
+
+  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { };
+
+  sphinxcontrib-asyncio = callPackage ../development/python-modules/sphinxcontrib-asyncio { };
+
+  sphinx-autoapi = callPackage ../development/python-modules/sphinx-autoapi { };
+
+  sphinxcontrib-bayesnet = callPackage ../development/python-modules/sphinxcontrib-bayesnet { };
+
+  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex { };
+
+  sphinxcontrib-blockdiag = callPackage ../development/python-modules/sphinxcontrib-blockdiag { };
+
+  sphinxcontrib-confluencebuilder = callPackage ../development/python-modules/sphinxcontrib-confluencebuilder { };
+
+  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
+
+  sphinxcontrib-excel-table = callPackage ../development/python-modules/sphinxcontrib-excel-table { };
+
+  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
+
+  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp { };
+
+  sphinxcontrib-httpdomain = callPackage ../development/python-modules/sphinxcontrib-httpdomain { };
+
+  sphinxcontrib-jquery = callPackage ../development/python-modules/sphinxcontrib-jquery { };
+
+  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath { };
+
+  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
+
+  sphinxcontrib-mscgen = callPackage ../development/python-modules/sphinxcontrib-mscgen {
+    inherit (pkgs) mscgen;
+  };
+
+  sphinxcontrib-log-cabinet = callPackage ../development/python-modules/sphinxcontrib-log-cabinet { };
+
+  sphinxcontrib-nwdiag = callPackage ../development/python-modules/sphinxcontrib-nwdiag { };
+
+  sphinxcontrib-newsfeed = callPackage ../development/python-modules/sphinxcontrib-newsfeed { };
+
+  sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
+
+  sphinxcontrib-plantuml = callPackage ../development/python-modules/sphinxcontrib-plantuml {
+    inherit (pkgs) plantuml;
+  };
+
+  sphinxcontrib-programoutput = callPackage ../development/python-modules/sphinxcontrib-programoutput { };
+
+  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp { };
+
+  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml { };
+
+  sphinxcontrib-seqdiag = callPackage ../development/python-modules/sphinxcontrib-seqdiag { };
+
+  sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
+
+  sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz { };
+
+  sphinxcontrib-wavedrom = callPackage ../development/python-modules/sphinxcontrib-wavedrom { };
+
+  sphinxcontrib-websupport = callPackage ../development/python-modules/sphinxcontrib-websupport { };
+
+  sphinxcontrib-youtube = callPackage ../development/python-modules/sphinxcontrib-youtube { };
+
+  sphinx = callPackage ../development/python-modules/sphinx { };
+
+  sphinx-argparse = callPackage ../development/python-modules/sphinx-argparse { };
+
+  sphinx-autobuild = callPackage ../development/python-modules/sphinx-autobuild { };
+
+  sphinx-autodoc-typehints = callPackage ../development/python-modules/sphinx-autodoc-typehints { };
+
+  sphinx-basic-ng = callPackage ../development/python-modules/sphinx-basic-ng { };
+
+  sphinx-copybutton = callPackage ../development/python-modules/sphinx-copybutton { };
+
+  sphinxemoji = callPackage ../development/python-modules/sphinxemoji { };
+
+  sphinx-inline-tabs = callPackage ../development/python-modules/sphinx-inline-tabs { };
+
+  sphinx-issues = callPackage ../development/python-modules/sphinx-issues { };
+
+  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
+
+  sphinx-markdown-parser = callPackage ../development/python-modules/sphinx-markdown-parser { };
+
+  sphinx-markdown-tables = callPackage ../development/python-modules/sphinx-markdown-tables { };
+
+  sphinx-material = callPackage ../development/python-modules/sphinx-material { };
+
+  sphinx-mdinclude = callPackage ../development/python-modules/sphinx-mdinclude { };
+
+  sphinx-rtd-theme = callPackage ../development/python-modules/sphinx-rtd-theme { };
+
+  sphinx-serve = callPackage ../development/python-modules/sphinx-serve { };
+
+  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
+
+  sphinx-version-warning = callPackage ../development/python-modules/sphinx-version-warning { };
+
+  sphinxext-opengraph = callPackage ../development/python-modules/sphinxext-opengraph { };
+
+  spidev = callPackage ../development/python-modules/spidev { };
+
+  splinter = callPackage ../development/python-modules/splinter { };
+
+  spotipy = callPackage ../development/python-modules/spotipy { };
+
+  spsdk = callPackage ../development/python-modules/spsdk { };
+
+  spur = callPackage ../development/python-modules/spur { };
+
+  spyder = callPackage ../development/python-modules/spyder { };
+
+  spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
+
+  spyse-python = callPackage ../development/python-modules/spyse-python { };
+
+  sqids = callPackage ../development/python-modules/sqids { };
+
+  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
+
+  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
+
+  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
+
+  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
+
+  sqlalchemy-jsonfield = callPackage ../development/python-modules/sqlalchemy-jsonfield { };
+
+  sqlalchemy-migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
+
+  sqlalchemy-mixins = callPackage ../development/python-modules/sqlalchemy-mixins { };
+
+  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
+
+  sqlalchemy-views = callPackage ../development/python-modules/sqlalchemy-views { };
+
+  sqlbag = callPackage ../development/python-modules/sqlbag { };
+
+  sqlglot = callPackage ../development/python-modules/sqlglot { };
+
+  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
+
+  sqlite-migrate = callPackage ../development/python-modules/sqlite-migrate { };
+
+  sqlite-fts4 = callPackage ../development/python-modules/sqlite-fts4 { };
+
+  sqlite-utils = callPackage ../development/python-modules/sqlite-utils { };
+
+  sqlmap = callPackage ../development/python-modules/sqlmap { };
+
+  sqlmodel = callPackage ../development/python-modules/sqlmodel { };
+
+  sqlobject = callPackage ../development/python-modules/sqlobject { };
+
+  sqlparse = callPackage ../development/python-modules/sqlparse { };
+
+  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
+
+  sqltrie = callPackage ../development/python-modules/sqltrie { };
+
+  squarify = callPackage ../development/python-modules/squarify { };
+
+  sre-yield = callPackage ../development/python-modules/sre-yield { };
+
+  srp = callPackage ../development/python-modules/srp { };
+
+  srpenergy = callPackage ../development/python-modules/srpenergy { };
+
+  srptools = callPackage ../development/python-modules/srptools { };
+
+  srsly = callPackage ../development/python-modules/srsly { };
+
+  srt = callPackage ../development/python-modules/srt { };
+
+  srvlookup = callPackage ../development/python-modules/srvlookup { };
+
+  ssdeep = callPackage ../development/python-modules/ssdeep {
+    inherit (pkgs) ssdeep;
+  };
+
+  ssdp = callPackage ../development/python-modules/ssdp { };
+
+  ssdpy = callPackage ../development/python-modules/ssdpy { };
+
+  sseclient = callPackage ../development/python-modules/sseclient { };
+
+  sseclient-py = callPackage ../development/python-modules/sseclient-py { };
+
+  sshfs = callPackage ../development/python-modules/sshfs { };
+
+  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
+
+  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
+
+  sslib = callPackage ../development/python-modules/sslib { };
+
+  stack-data = callPackage ../development/python-modules/stack-data { };
+
+  stanio = callPackage ../development/python-modules/stanio { };
+
+  stanza = callPackage ../development/python-modules/stanza { };
+
+  starlette = callPackage ../development/python-modules/starlette {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  starlette-wtf = callPackage ../development/python-modules/starlette-wtf { };
+
+  starkbank-ecdsa = callPackage ../development/python-modules/starkbank-ecdsa { };
+
+  starline = callPackage ../development/python-modules/starline { };
+
+  stashy = callPackage ../development/python-modules/stashy { };
+
+  static3 = callPackage ../development/python-modules/static3 { };
+
+  staticmap = callPackage ../development/python-modules/staticmap { };
+
+  staticjinja = callPackage ../development/python-modules/staticjinja { };
+
+  statistics = callPackage ../development/python-modules/statistics { };
+
+  statmake = callPackage ../development/python-modules/statmake { };
+
+  statsd = callPackage ../development/python-modules/statsd { };
+
+  statsmodels = callPackage ../development/python-modules/statsmodels { };
+
+  std2 = callPackage ../development/python-modules/std2 { };
+
+  stdiomask = callPackage ../development/python-modules/stdiomask { };
+
+  stdlib-list = callPackage ../development/python-modules/stdlib-list { };
+
+  stdlibs = callPackage ../development/python-modules/stdlibs { };
+
+  steamodd = callPackage ../development/python-modules/steamodd { };
+
+  steamship = callPackage ../development/python-modules/steamship { };
+
+  stem = callPackage ../development/python-modules/stem { };
+
+  stemming = callPackage ../development/python-modules/stemming { };
+
+  stestr = callPackage ../development/python-modules/stestr { };
+
+  stevedore = callPackage ../development/python-modules/stevedore { };
+
+  stickytape = callPackage ../development/python-modules/stickytape { };
+
+  stim = callPackage ../development/python-modules/stim { };
+
+  stix2-patterns = callPackage ../development/python-modules/stix2-patterns { };
+
+  stm32loader = callPackage ../development/python-modules/stm32loader { };
+
+  stone = callPackage ../development/python-modules/stone { };
+
+  stookalert = callPackage ../development/python-modules/stookalert { };
+
+  stopit = callPackage ../development/python-modules/stopit { };
+
+  stransi = callPackage ../development/python-modules/stransi { };
+
+  strategies = callPackage ../development/python-modules/strategies { };
+
+  stravalib = callPackage ../development/python-modules/stravalib { };
+
+  strawberry-graphql = callPackage ../development/python-modules/strawberry-graphql { };
+
+  streamdeck = callPackage ../development/python-modules/streamdeck { };
+
+  streaming-form-data = callPackage ../development/python-modules/streaming-form-data { };
+
+  streamlabswater = callPackage ../development/python-modules/streamlabswater { };
+
+  streamlit = callPackage ../development/python-modules/streamlit { };
+
+  streamz = callPackage ../development/python-modules/streamz { };
+
+  strenum =  callPackage ../development/python-modules/strenum { };
+
+  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
+
+  strictyaml = callPackage ../development/python-modules/strictyaml { };
+
+  stringbrewer = callPackage ../development/python-modules/stringbrewer { };
+
+  stringcase = callPackage ../development/python-modules/stringcase { };
+
+  stringly = callPackage ../development/python-modules/stringly { };
+
+  stringparser = callPackage ../development/python-modules/stringparser { };
+
+  stripe = callPackage ../development/python-modules/stripe { };
+
+  striprtf = callPackage ../development/python-modules/striprtf { };
+
+  structlog = callPackage ../development/python-modules/structlog { };
+
+  stubserver = callPackage ../development/python-modules/stubserver { };
+
+  stumpy = callPackage ../development/python-modules/stumpy { };
+
+  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
+
+  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
+
+  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
+
+  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
+
+  stups-zign = callPackage ../development/python-modules/stups-zign { };
+
+  stytra = callPackage ../development/python-modules/stytra { };
+
+  subarulink = callPackage ../development/python-modules/subarulink { };
+
+  subliminal = callPackage ../development/python-modules/subliminal { };
+
+  subprocess-tee = callPackage ../development/python-modules/subprocess-tee { };
+
+  subunit = callPackage ../development/python-modules/subunit {
+    inherit (pkgs) subunit cppunit check;
+  };
+
+  subunit2sql = callPackage ../development/python-modules/subunit2sql { };
+
+  subzerod = callPackage ../development/python-modules/subzerod { };
+
+  succulent = callPackage ../development/python-modules/succulent { };
+
+  sumo = callPackage ../development/python-modules/sumo { };
+
+  sumtypes = callPackage ../development/python-modules/sumtypes { };
+
+  summarytools = callPackage ../development/python-modules/summarytools { };
+
+  sunpy = callPackage ../development/python-modules/sunpy { };
+
+  sunwatcher = callPackage ../development/python-modules/sunwatcher { };
+
+  sunweg = callPackage ../development/python-modules/sunweg { };
+
+  supervise-api = callPackage ../development/python-modules/supervise-api { };
+
+  supervisor = callPackage ../development/python-modules/supervisor { };
+
+  superqt = callPackage ../development/python-modules/superqt { };
+
+  sure = callPackage ../development/python-modules/sure { };
+
+  surepy = callPackage ../development/python-modules/surepy { };
+
+  surt = callPackage ../development/python-modules/surt { };
+
+  survey = callPackage ../development/python-modules/survey { };
+
+  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
+
+  svglib = callPackage ../development/python-modules/svglib { };
+
+  svg-path = callPackage ../development/python-modules/svg-path { };
+
+  svgelements = callPackage ../development/python-modules/svgelements { };
+
+  svgwrite = callPackage ../development/python-modules/svgwrite { };
+
+  sv-ttk = callPackage ../development/python-modules/sv-ttk { };
+
+  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
+
+  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
+
+  swift = callPackage ../development/python-modules/swift { };
+
+  swisshydrodata = callPackage ../development/python-modules/swisshydrodata { };
+
+  swspotify = callPackage ../development/python-modules/swspotify { };
+
+  sybil = callPackage ../development/python-modules/sybil { };
+
+  symengine = callPackage ../development/python-modules/symengine {
+    inherit (pkgs) symengine;
+  };
+
+  sympy = callPackage ../development/python-modules/sympy { };
+
+  syncedlyrics = callPackage ../development/python-modules/syncedlyrics { };
+
+  syncer = callPackage ../development/python-modules/syncer { };
+
+  synergy = callPackage ../development/python-modules/synergy { };
+
+  synologydsm-api = callPackage ../development/python-modules/synologydsm-api { };
+
+  syslog-rfc5424-formatter = callPackage ../development/python-modules/syslog-rfc5424-formatter { };
+
+  systembridge = callPackage ../development/python-modules/systembridge { };
+
+  systemd = callPackage ../development/python-modules/systemd {
+    inherit (pkgs) systemd;
+  };
+
+  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
+
+  syrupy = callPackage ../development/python-modules/syrupy { };
+
+  tabcmd = callPackage ../development/python-modules/tabcmd { };
+
+  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
+
+  tableauserverclient = callPackage ../development/python-modules/tableauserverclient { };
+
+  tabledata = callPackage ../development/python-modules/tabledata { };
+
+  tables = callPackage ../development/python-modules/tables { };
+
+  tablib = callPackage ../development/python-modules/tablib { };
+
+  tabula-py = callPackage ../development/python-modules/tabula-py { };
+
+  tabulate = callPackage ../development/python-modules/tabulate { };
+
+  tabview = callPackage ../development/python-modules/tabview { };
+
+  taco = toPythonModule (pkgs.taco.override {
+    inherit (self) python;
+    enablePython = true;
+  });
+
+  tadasets = callPackage ../development/python-modules/tadasets { };
+
+  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
+
+  tago = callPackage ../development/python-modules/tago { };
+
+  tagoio-sdk = callPackage ../development/python-modules/tagoio-sdk { };
+
+  tahoma-api = callPackage ../development/python-modules/tahoma-api { };
+
+  tailer = callPackage ../development/python-modules/tailer { };
+
+  tailscale = callPackage ../development/python-modules/tailscale { };
+
+  takethetime = callPackage ../development/python-modules/takethetime { };
+
+  tank-utility = callPackage ../development/python-modules/tank-utility { };
+
+  tappy = callPackage ../development/python-modules/tappy { };
+
+  tasklib = callPackage ../development/python-modules/tasklib { };
+
+  taskw = callPackage ../development/python-modules/taskw { };
+
+  tatsu = callPackage ../development/python-modules/tatsu { };
+
+  taxi = callPackage ../development/python-modules/taxi { };
+
+  tbats = callPackage ../development/python-modules/tbats { };
+
+  tblib = callPackage ../development/python-modules/tblib { };
+
+  tblite = callPackage ../development/libraries/science/chemistry/tblite/python.nix {
+    tblite = pkgs.tblite;
+    meson = pkgs.meson;
+  };
+
+  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
+
+  tcolorpy = callPackage ../development/python-modules/tcolorpy { };
+
+  tcxparser = callPackage ../development/python-modules/tcxparser { };
+
+  tcxreader = callPackage ../development/python-modules/tcxreader { };
+
+  teamcity-messages = callPackage ../development/python-modules/teamcity-messages { };
+
+  telegram = callPackage ../development/python-modules/telegram { };
+
+  telegraph = callPackage ../development/python-modules/telegraph { };
+
+  telepath = callPackage ../development/python-modules/telepath { };
+
+  telethon = callPackage ../development/python-modules/telethon {
+    inherit (pkgs) openssl;
+  };
+
+  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
+
+  teletype = callPackage ../development/python-modules/teletype { };
+
+  telfhash = callPackage ../development/python-modules/telfhash { };
+
+  telegram-text = callPackage ../development/python-modules/telegram-text { };
+
+  temescal = callPackage ../development/python-modules/temescal { };
+
+  temperusb = callPackage ../development/python-modules/temperusb { };
+
+  tempest = callPackage ../development/python-modules/tempest { };
+
+  tempita = callPackage ../development/python-modules/tempita { };
+
+  tempora = callPackage ../development/python-modules/tempora { };
+
+  tenacity = callPackage ../development/python-modules/tenacity { };
+
+  tensorboard-data-server = callPackage ../development/python-modules/tensorboard-data-server { };
+
+  tensorboard-plugin-profile = callPackage ../development/python-modules/tensorboard-plugin-profile { };
+
+  tensorboard-plugin-wit = callPackage ../development/python-modules/tensorboard-plugin-wit { };
+
+  tensorboard = callPackage ../development/python-modules/tensorboard { };
+
+  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
+
+  tensorflow-bin = callPackage ../development/python-modules/tensorflow/bin.nix {
+    inherit (pkgs.config) cudaSupport;
+  };
+
+  tensorflow-build = let
+    compat = rec {
+      protobufTF = pkgs.protobuf_21.override {
+        abseil-cpp = pkgs.abseil-cpp;
+      };
+      grpcTF = (pkgs.grpc.overrideAttrs (
+        oldAttrs: rec {
+          # nvcc fails on recent grpc versions, so we use the latest patch level
+          #  of the grpc version bundled by upstream tensorflow to allow CUDA
+          #  support
+          version = "1.27.3";
+          src = pkgs.fetchFromGitHub {
+            owner = "grpc";
+            repo = "grpc";
+            rev = "v${version}";
+            hash = "sha256-PpiOT4ZJe1uMp5j+ReQulC9jpT0xoR2sAl6vRYKA0AA=";
+            fetchSubmodules = true;
+          };
+          patches = [ ];
+          postPatch = ''
+            sed -i "s/-std=c++11/-std=c++17/" CMakeLists.txt
+            echo "set(CMAKE_CXX_STANDARD 17)" >> CMakeLists.txt
+          '';
+        })
+      ).override {
+        protobuf = protobufTF;
+      };
+      protobuf-pythonTF = self.protobuf.override {
+        protobuf = protobufTF;
+      };
+      grpcioTF = self.grpcio.override {
+        protobuf = protobufTF;
+        grpc = grpcTF;
+      };
+      tensorboard-plugin-profileTF = self.tensorboard-plugin-profile.override {
+        protobuf = protobuf-pythonTF;
+      };
+      tensorboardTF = self.tensorboard.override {
+        grpcio = grpcioTF;
+        protobuf = protobuf-pythonTF;
+        tensorboard-plugin-profile = tensorboard-plugin-profileTF;
+      };
+    };
+  in
+  callPackage ../development/python-modules/tensorflow {
+    inherit (pkgs.darwin) cctools;
+    inherit (pkgs.config) cudaSupport;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
+    flatbuffers-core = pkgs.flatbuffers;
+    flatbuffers-python = self.flatbuffers;
+    protobuf-core = compat.protobufTF;
+    protobuf-python = compat.protobuf-pythonTF;
+    grpc = compat.grpcTF;
+    grpcio = compat.grpcioTF;
+    tensorboard = compat.tensorboardTF;
+  };
+
+  tensorflow-datasets = callPackage ../development/python-modules/tensorflow-datasets { };
+
+  tensorflow-estimator-bin = callPackage ../development/python-modules/tensorflow-estimator/bin.nix { };
+
+  tensorflow-metadata = callPackage ../development/python-modules/tensorflow-metadata { };
+
+  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability {
+    inherit (pkgs.darwin) cctools;
+  };
+
+  tensorflow = self.tensorflow-build;
+
+  tensorflowWithCuda = self.tensorflow.override {
+    cudaSupport = true;
+  };
+
+  tensorflowWithoutCuda = self.tensorflow.override {
+    cudaSupport = false;
+  };
+
+  tensorly = callPackage ../development/python-modules/tensorly { };
+
+  tensorrt = callPackage ../development/python-modules/tensorrt { cudaPackages = pkgs.cudaPackages_11; };
+
+  tensorstore = callPackage ../development/python-modules/tensorstore { };
+
+  tellduslive = callPackage ../development/python-modules/tellduslive { };
+
+  termcolor = callPackage ../development/python-modules/termcolor { };
+
+  termgraph = callPackage ../development/python-modules/termgraph { };
+
+  terminado = callPackage ../development/python-modules/terminado { };
+
+  terminaltables = callPackage ../development/python-modules/terminaltables { };
+
+  termplotlib = callPackage ../development/python-modules/termplotlib { };
+
+  termstyle = callPackage ../development/python-modules/termstyle { };
+
+  tern = callPackage ../development/python-modules/tern { };
+
+  tesla-powerwall = callPackage ../development/python-modules/tesla-powerwall { };
+
+  tesla-wall-connector = callPackage ../development/python-modules/tesla-wall-connector { };
+
+  teslajsonpy = callPackage ../development/python-modules/teslajsonpy { };
+
+  tess = callPackage ../development/python-modules/tess { };
+
+  tesserocr = callPackage ../development/python-modules/tesserocr { };
+
+  testcontainers = callPackage ../development/python-modules/testcontainers { };
+
+  testfixtures = callPackage ../development/python-modules/testfixtures { };
+
+  textfsm = callPackage ../development/python-modules/textfsm { };
+
+  textile = callPackage ../development/python-modules/textile { };
+
+  textparser = callPackage ../development/python-modules/textparser { };
+
+  textual = callPackage ../development/python-modules/textual { };
+
+  textual-dev = callPackage ../development/python-modules/textual-dev { };
+
+  textual-universal-directorytree = callPackage ../development/python-modules/textual-universal-directorytree { };
+
+  testbook = callPackage ../development/python-modules/testbook { };
+
+  testing-common-database = callPackage ../development/python-modules/testing-common-database { };
+
+  testing-postgresql = callPackage ../development/python-modules/testing-postgresql { };
+
+  testpath = callPackage ../development/python-modules/testpath { };
+
+  testrail-api = callPackage ../development/python-modules/testrail-api { };
+
+  testrepository = callPackage ../development/python-modules/testrepository { };
+
+  testresources = callPackage ../development/python-modules/testresources { };
+
+  testscenarios = callPackage ../development/python-modules/testscenarios { };
+
+  testtools = callPackage ../development/python-modules/testtools { };
+
+  test-tube = callPackage ../development/python-modules/test-tube { };
+
+  textdistance = callPackage ../development/python-modules/textdistance { };
+
+  textacy = callPackage ../development/python-modules/textacy { };
+
+  textnets = callPackage ../development/python-modules/textnets {
+    en_core_web_sm = spacy_models.en_core_web_sm;
+  };
+
+  texttable = callPackage ../development/python-modules/texttable { };
+
+  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
+
+  textwrap3 = callPackage ../development/python-modules/textwrap3 { };
+
+  textx = callPackage ../development/python-modules/textx { };
+
+  tf2onnx = callPackage ../development/python-modules/tf2onnx { };
+
+  tflearn = callPackage ../development/python-modules/tflearn { };
+
+  tftpy = callPackage ../development/python-modules/tftpy { };
+
+  tgcrypto = callPackage ../development/python-modules/tgcrypto { };
+
+  theano-pymc = callPackage ../development/python-modules/theano-pymc { };
+
+  theano = callPackage ../development/python-modules/theano rec {
+    inherit (pkgs.config) cudaSupport;
+    cudnnSupport = cudaSupport;
+  };
+
+  theanoWithCuda = self.theano.override {
+    cudaSupport = true;
+    cudnnSupport = true;
+  };
+
+  theanoWithoutCuda = self.theano.override {
+    cudaSupport = false;
+    cudnnSupport = false;
+  };
+
+  thefuzz = callPackage ../development/python-modules/thefuzz { };
+
+  thelogrus = callPackage ../development/python-modules/thelogrus { };
+
+  thermobeacon-ble = callPackage ../development/python-modules/thermobeacon-ble { };
+
+  thermopro-ble = callPackage ../development/python-modules/thermopro-ble { };
+
+  thespian = callPackage ../development/python-modules/thespian { };
+
+  thinc = callPackage ../development/python-modules/thinc {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreFoundation CoreGraphics CoreVideo;
+  };
+
+  thorlabspm100 = callPackage ../development/python-modules/thorlabspm100 { };
+
+  threadloop = callPackage ../development/python-modules/threadloop { };
+
+  threadpool = callPackage ../development/python-modules/threadpool { };
+
+  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
+
+  threat9-test-bed = callPackage ../development/python-modules/threat9-test-bed { };
+
+  three-merge = callPackage ../development/python-modules/three-merge { };
+
+  thrift = callPackage ../development/python-modules/thrift { };
+
+  thriftpy2 = callPackage ../development/python-modules/thriftpy2 { };
+
+  throttler = callPackage ../development/python-modules/throttler { };
+
+  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
+
+  tkinter = callPackage ../development/python-modules/tkinter {
+    py = python.override { x11Support=true; };
+  };
+
+  tidalapi = callPackage ../development/python-modules/tidalapi { };
+
+  tidyexc = callPackage ../development/python-modules/tidyexc { };
+
+  tidylib = callPackage ../development/python-modules/pytidylib { };
+
+  tifffile = callPackage ../development/python-modules/tifffile { };
+
+  tika = callPackage ../development/python-modules/tika { };
+
+  tika-client = callPackage ../development/python-modules/tika-client { };
+
+  tiktoken = callPackage ../development/python-modules/tiktoken { };
+
+  tikzplotlib = callPackage ../development/python-modules/tikzplotlib { };
+
+  tiledb = callPackage ../development/python-modules/tiledb {
+    inherit (pkgs) tiledb;
+  };
+
+  tilequant = callPackage ../development/python-modules/tilequant { };
+
+  tiler = callPackage ../development/python-modules/tiler { };
+
+  tilestache = callPackage ../development/python-modules/tilestache { };
+
+  tilt-ble = callPackage ../development/python-modules/tilt-ble { };
+
+  timeago = callPackage ../development/python-modules/timeago { };
+
+  timecop = callPackage ../development/python-modules/timecop { };
+
+  timelib = callPackage ../development/python-modules/timelib { };
+
+  time-machine = callPackage ../development/python-modules/time-machine { };
+
+  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
+
+  timeslot = callPackage ../development/python-modules/timeslot { };
+
+  timetagger = callPackage ../development/python-modules/timetagger { };
+
+  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
+
+  timm = callPackage ../development/python-modules/timm { };
+
+  tiny-cuda-nn = toPythonModule (pkgs.tiny-cuda-nn.override {
+    cudaPackages = self.torch.cudaPackages;
+    python3Packages = self;
+    pythonSupport = true;
+  });
+
+  tiny-proxy = callPackage ../development/python-modules/tiny-proxy { };
+
+  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
+
+  tinycss = callPackage ../development/python-modules/tinycss { };
+
+  tinydb = callPackage ../development/python-modules/tinydb { };
+
+  tinyobjloader-py = callPackage ../development/python-modules/tinyobjloader-py { };
+
+  tinyrecord = callPackage ../development/python-modules/tinyrecord { };
+
+  tissue = callPackage ../development/python-modules/tissue { };
+
+  titlecase = callPackage ../development/python-modules/titlecase { };
+
+  tld = callPackage ../development/python-modules/tld { };
+
+  tlds = callPackage ../development/python-modules/tlds { };
+
+  tldextract = callPackage ../development/python-modules/tldextract { };
+
+  tlsh = callPackage ../development/python-modules/tlsh { };
+
+  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
+
+  tls-parser = callPackage ../development/python-modules/tls-parser { };
+
+  tlv8 = callPackage ../development/python-modules/tlv8 { };
+
+  tmb = callPackage ../development/python-modules/tmb { };
+
+  todoist = callPackage ../development/python-modules/todoist { };
+
+  todoist-api-python = callPackage ../development/python-modules/todoist-api-python { };
+
+  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
+
+  token-bucket = callPackage ../development/python-modules/token-bucket { };
+
+  tokenizers = callPackage ../development/python-modules/tokenizers {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+  };
+
+  tokenize-rt = toPythonModule (callPackage ../development/python-modules/tokenize-rt { });
+
+  tokenlib = callPackage ../development/python-modules/tokenlib { };
+
+  tokentrim = callPackage ../development/python-modules/tokentrim { };
+
+  tololib = callPackage ../development/python-modules/tololib { };
+
+  toml = callPackage ../development/python-modules/toml { };
+
+  toml-adapt = callPackage ../development/python-modules/toml-adapt { };
+
+  tomli = callPackage ../development/python-modules/tomli { };
+
+  tomli-w = callPackage ../development/python-modules/tomli-w { };
+
+  tomlkit = callPackage ../development/python-modules/tomlkit { };
+
+  toolz = callPackage ../development/python-modules/toolz { };
+
+  toonapi = callPackage ../development/python-modules/toonapi { };
+
+  toposort = callPackage ../development/python-modules/toposort { };
+
+  torch = callPackage ../development/python-modules/torch {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreServices;
+    inherit (pkgs.darwin) libobjc;
+  };
+
+  torch-bin = callPackage ../development/python-modules/torch/bin.nix {
+    openai-triton = self.openai-triton-bin;
+  };
+
+  torchWithCuda = self.torch.override {
+    openai-triton = self.openai-triton-cuda;
+    cudaSupport = true;
+    rocmSupport = false;
+  };
+
+  torchWithoutCuda = self.torch.override {
+    cudaSupport = false;
+  };
+
+  torchWithRocm = self.torch.override {
+    openai-triton = self.openai-triton-no-cuda;
+    rocmSupport = true;
+    cudaSupport = false;
+  };
+
+  torchWithoutRocm = self.torch.override {
+    rocmSupport = false;
+  };
+
+  torch-tb-profiler = callPackage ../development/python-modules/torch-tb-profiler/default.nix { };
+
+  torchaudio = callPackage ../development/python-modules/torchaudio { };
+
+  torchaudio-bin = callPackage ../development/python-modules/torchaudio/bin.nix {
+    cudaPackages = pkgs.cudaPackages_12;
+  };
+
+  torchdiffeq = callPackage ../development/python-modules/torchdiffeq { };
+
+  torchgpipe = callPackage ../development/python-modules/torchgpipe { };
+
+  torchmetrics = callPackage ../development/python-modules/torchmetrics { };
+
+  torchio = callPackage ../development/python-modules/torchio { };
+
+  torchinfo = callPackage ../development/python-modules/torchinfo { };
+
+  torchlibrosa = callPackage ../development/python-modules/torchlibrosa { };
+
+  torchsde = callPackage ../development/python-modules/torchsde { };
+
+  torchvision = callPackage ../development/python-modules/torchvision { };
+
+  torchvision-bin = callPackage ../development/python-modules/torchvision/bin.nix {
+    cudaPackages = pkgs.cudaPackages_12;
+  };
+
+  tornado = callPackage ../development/python-modules/tornado { };
+
+  # Used by circus and grab-site, 2020-08-29
+  tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
+
+  # Used by streamlit, 2021-01-29
+  tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
+
+  torpy = callPackage ../development/python-modules/torpy { };
+
+  torrent-parser = callPackage ../development/python-modules/torrent-parser { };
+
+  torrequest = callPackage ../development/python-modules/torrequest { };
+
+  total-connect-client = callPackage ../development/python-modules/total-connect-client { };
+
+  towncrier = callPackage ../development/python-modules/towncrier {
+    inherit (pkgs) git;
+  };
+
+  tox = callPackage ../development/python-modules/tox { };
+
+  tplink-omada-client = callPackage ../development/python-modules/tplink-omada-client { };
+
+  tpm2-pytss = callPackage ../development/python-modules/tpm2-pytss { };
+
+  tqdm = callPackage ../development/python-modules/tqdm { };
+
+  traceback2 = callPackage ../development/python-modules/traceback2 { };
+
+  tracerite = callPackage ../development/python-modules/tracerite { };
+
+  tracing = callPackage ../development/python-modules/tracing { };
+
+  trackpy = callPackage ../development/python-modules/trackpy { };
+
+  trailrunner = callPackage ../development/python-modules/trailrunner {};
+
+  trainer = callPackage ../development/python-modules/trainer {};
+
+  traitlets = callPackage ../development/python-modules/traitlets { };
+
+  traits = callPackage ../development/python-modules/traits { };
+
+  traitsui = callPackage ../development/python-modules/traitsui { };
+
+  traittypes = callPackage ../development/python-modules/traittypes { };
+
+  trampoline = callPackage ../development/python-modules/trampoline { };
+
+  transaction = callPackage ../development/python-modules/transaction { };
+
+  transformers = callPackage ../development/python-modules/transformers { };
+
+  transforms3d = callPackage ../development/python-modules/transforms3d { };
+
+  transitions = callPackage ../development/python-modules/transitions { };
+
+  translatehtml = callPackage ../development/python-modules/translatehtml { };
+
+  translatepy = callPackage ../development/python-modules/translatepy { };
+
+  translationstring = callPackage ../development/python-modules/translationstring { };
+
+  transmission-rpc = callPackage ../development/python-modules/transmission-rpc { };
+
+  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
+
+  trectools = callPackage ../development/python-modules/trectools { };
+
+  tree-sitter = callPackage ../development/python-modules/tree-sitter { };
+
+  treelib = callPackage ../development/python-modules/treelib { };
+
+  treelog = callPackage ../development/python-modules/treelog { };
+
+  treeo = callPackage ../development/python-modules/treeo { };
+
+  treex = callPackage ../development/python-modules/treex { };
+
+  treq = callPackage ../development/python-modules/treq { };
+
+  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
+
+  trezor = callPackage ../development/python-modules/trezor { };
+
+  trfl = callPackage ../development/python-modules/trfl { };
+
+  trimesh = callPackage ../development/python-modules/trimesh { };
+
+  trino-python-client = callPackage ../development/python-modules/trino-python-client { };
+
+  trio = callPackage ../development/python-modules/trio {
+    inherit (pkgs) coreutils;
+  };
+
+  trio-asyncio = callPackage ../development/python-modules/trio-asyncio { };
+
+  trio-websocket = callPackage ../development/python-modules/trio-websocket { };
+
+  tritonclient = callPackage ../development/python-modules/tritonclient { };
+
+  troposphere = callPackage ../development/python-modules/troposphere { };
+
+  trove-classifiers = callPackage ../development/python-modules/trove-classifiers { };
+
+  trueskill = callPackage ../development/python-modules/trueskill { };
+
+  trustme = callPackage ../development/python-modules/trustme { };
+
+  truststore = callPackage ../development/python-modules/truststore { };
+
+  trytond = callPackage ../development/python-modules/trytond { };
+
+  tsfresh = callPackage ../development/python-modules/tsfresh { };
+
+  tskit = callPackage ../development/python-modules/tskit { };
+
+  ttach = callPackage ../development/python-modules/ttach { };
+
+  ttls = callPackage ../development/python-modules/ttls { };
+
+  ttp = callPackage ../development/python-modules/ttp { };
+
+  ttp-templates = callPackage ../development/python-modules/ttp-templates { };
+
+  ttstokenizer = callPackage ../development/python-modules/ttstokenizer { };
+
+  tubes = callPackage ../development/python-modules/tubes { };
+
+  tuf = callPackage ../development/python-modules/tuf { };
+
+  tunigo = callPackage ../development/python-modules/tunigo { };
+
+  tubeup = callPackage ../development/python-modules/tubeup { };
+
+  turnt = callPackage ../development/python-modules/turnt { };
+
+  tuya-iot-py-sdk = callPackage ../development/python-modules/tuya-iot-py-sdk { };
+
+  tuyaha = callPackage ../development/python-modules/tuyaha { };
+
+  tvdb-api = callPackage ../development/python-modules/tvdb-api { };
+
+  tweedledum = callPackage ../development/python-modules/tweedledum { };
+
+  tweepy = callPackage ../development/python-modules/tweepy { };
+
+  twentemilieu = callPackage ../development/python-modules/twentemilieu { };
+
+  twiggy = callPackage ../development/python-modules/twiggy { };
+
+  twilio = callPackage ../development/python-modules/twilio { };
+
+  twill = callPackage ../development/python-modules/twill { };
+
+  twine = callPackage ../development/python-modules/twine { };
+
+  twinkly-client = callPackage ../development/python-modules/twinkly-client { };
+
+  twisted = callPackage ../development/python-modules/twisted { };
+
+  twitch-python = callPackage ../development/python-modules/twitch-python { };
+
+  twitchapi = callPackage ../development/python-modules/twitchapi { };
+
+  twitter = callPackage ../development/python-modules/twitter { };
+
+  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
+
+  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
+
+  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
+
+  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
+
+  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
+
+  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
+
+  twitterapi = callPackage ../development/python-modules/twitterapi { };
+
+  twofish = callPackage ../development/python-modules/twofish { };
+
+  txaio = callPackage ../development/python-modules/txaio { };
+
+  txamqp = callPackage ../development/python-modules/txamqp { };
+
+  txdbus = callPackage ../development/python-modules/txdbus { };
+
+  txgithub = callPackage ../development/python-modules/txgithub { };
+
+  txi2p-tahoe = callPackage ../development/python-modules/txi2p-tahoe { };
+
+  txredisapi = callPackage ../development/python-modules/txredisapi { };
+
+  txrequests = callPackage ../development/python-modules/txrequests { };
+
+  txtai = callPackage ../development/python-modules/txtai { };
+
+  txtorcon = callPackage ../development/python-modules/txtorcon { };
+
+  txzmq = callPackage ../development/python-modules/txzmq { };
+
+  typechecks = callPackage ../development/python-modules/typechecks { };
+
+  typecode = callPackage ../development/python-modules/typecode { };
+
+  typecode-libmagic = callPackage ../development/python-modules/typecode/libmagic.nix {
+    inherit (pkgs) file zlib;
+  };
+
+  typed-ast = callPackage ../development/python-modules/typed-ast { };
+
+  typed-settings = callPackage ../development/python-modules/typed-settings { };
+
+  typeguard = callPackage ../development/python-modules/typeguard { };
+
+  typepy = callPackage ../development/python-modules/typepy { };
+
+  typer = callPackage ../development/python-modules/typer { };
+
+  type-infer = callPackage ../development/python-modules/type-infer { };
+
+  types-aiobotocore = callPackage ../development/python-modules/types-aiobotocore { };
+
+  inherit (callPackage ../development/python-modules/types-aiobotocore-packages { })
+
+    types-aiobotocore-accessanalyzer
+
+    types-aiobotocore-account
+
+    types-aiobotocore-acm
+
+    types-aiobotocore-acm-pca
+
+    types-aiobotocore-alexaforbusiness
+
+    types-aiobotocore-amp
+
+    types-aiobotocore-amplify
+
+    types-aiobotocore-amplifybackend
+
+    types-aiobotocore-amplifyuibuilder
+
+    types-aiobotocore-apigateway
+
+    types-aiobotocore-apigatewaymanagementapi
+
+    types-aiobotocore-apigatewayv2
+
+    types-aiobotocore-appconfig
+
+    types-aiobotocore-appconfigdata
+
+    types-aiobotocore-appfabric
+
+    types-aiobotocore-appflow
+
+    types-aiobotocore-appintegrations
+
+    types-aiobotocore-application-autoscaling
+
+    types-aiobotocore-application-insights
+
+    types-aiobotocore-applicationcostprofiler
+
+    types-aiobotocore-appmesh
+
+    types-aiobotocore-apprunner
+
+    types-aiobotocore-appstream
+
+    types-aiobotocore-appsync
+
+    types-aiobotocore-arc-zonal-shift
+
+    types-aiobotocore-athena
+
+    types-aiobotocore-auditmanager
+
+    types-aiobotocore-autoscaling
+
+    types-aiobotocore-autoscaling-plans
+
+    types-aiobotocore-backup
+
+    types-aiobotocore-backup-gateway
+
+    types-aiobotocore-backupstorage
+
+    types-aiobotocore-batch
+
+    types-aiobotocore-billingconductor
+
+    types-aiobotocore-braket
+
+    types-aiobotocore-budgets
+
+    types-aiobotocore-ce
+
+    types-aiobotocore-chime
+
+    types-aiobotocore-chime-sdk-identity
+
+    types-aiobotocore-chime-sdk-media-pipelines
+
+    types-aiobotocore-chime-sdk-meetings
+
+    types-aiobotocore-chime-sdk-messaging
+
+    types-aiobotocore-chime-sdk-voice
+
+    types-aiobotocore-cleanrooms
+
+    types-aiobotocore-cloud9
+
+    types-aiobotocore-cloudcontrol
+
+    types-aiobotocore-clouddirectory
+
+    types-aiobotocore-cloudformation
+
+    types-aiobotocore-cloudfront
+
+    types-aiobotocore-cloudhsm
+
+    types-aiobotocore-cloudhsmv2
+
+    types-aiobotocore-cloudsearch
+
+    types-aiobotocore-cloudsearchdomain
+
+    types-aiobotocore-cloudtrail
+
+    types-aiobotocore-cloudtrail-data
+
+    types-aiobotocore-cloudwatch
+
+    types-aiobotocore-codeartifact
+
+    types-aiobotocore-codebuild
+
+    types-aiobotocore-codecatalyst
+
+    types-aiobotocore-codecommit
+
+    types-aiobotocore-codedeploy
+
+    types-aiobotocore-codeguru-reviewer
+
+    types-aiobotocore-codeguru-security
+
+    types-aiobotocore-codeguruprofiler
+
+    types-aiobotocore-codepipeline
+
+    types-aiobotocore-codestar
+
+    types-aiobotocore-codestar-connections
+
+    types-aiobotocore-codestar-notifications
+
+    types-aiobotocore-cognito-identity
+
+    types-aiobotocore-cognito-idp
+
+    types-aiobotocore-cognito-sync
+
+    types-aiobotocore-comprehend
+
+    types-aiobotocore-comprehendmedical
+
+    types-aiobotocore-compute-optimizer
+
+    types-aiobotocore-config
+
+    types-aiobotocore-connect
+
+    types-aiobotocore-connect-contact-lens
+
+    types-aiobotocore-connectcampaigns
+
+    types-aiobotocore-connectcases
+
+    types-aiobotocore-connectparticipant
+
+    types-aiobotocore-controltower
+
+    types-aiobotocore-cur
+
+    types-aiobotocore-customer-profiles
+
+    types-aiobotocore-databrew
+
+    types-aiobotocore-dataexchange
+
+    types-aiobotocore-datapipeline
+
+    types-aiobotocore-datasync
+
+    types-aiobotocore-dax
+
+    types-aiobotocore-detective
+
+    types-aiobotocore-devicefarm
+
+    types-aiobotocore-devops-guru
+
+    types-aiobotocore-directconnect
+
+    types-aiobotocore-discovery
+
+    types-aiobotocore-dlm
+
+    types-aiobotocore-dms
+
+    types-aiobotocore-docdb
+
+    types-aiobotocore-docdb-elastic
+
+    types-aiobotocore-drs
+
+    types-aiobotocore-ds
+
+    types-aiobotocore-dynamodb
+
+    types-aiobotocore-dynamodbstreams
+
+    types-aiobotocore-ebs
+
+    types-aiobotocore-ec2
+
+    types-aiobotocore-ec2-instance-connect
+
+    types-aiobotocore-ecr
+
+    types-aiobotocore-ecr-public
+
+    types-aiobotocore-ecs
+
+    types-aiobotocore-efs
+
+    types-aiobotocore-eks
+
+    types-aiobotocore-elastic-inference
+
+    types-aiobotocore-elasticache
+
+    types-aiobotocore-elasticbeanstalk
+
+    types-aiobotocore-elastictranscoder
+
+    types-aiobotocore-elb
+
+    types-aiobotocore-elbv2
+
+    types-aiobotocore-emr
+
+    types-aiobotocore-emr-containers
+
+    types-aiobotocore-emr-serverless
+
+    types-aiobotocore-entityresolution
+
+    types-aiobotocore-es
+
+    types-aiobotocore-events
+
+    types-aiobotocore-evidently
+
+    types-aiobotocore-finspace
+
+    types-aiobotocore-finspace-data
+
+    types-aiobotocore-firehose
+
+    types-aiobotocore-fis
+
+    types-aiobotocore-fms
+
+    types-aiobotocore-forecast
+
+    types-aiobotocore-forecastquery
+
+    types-aiobotocore-frauddetector
+
+    types-aiobotocore-fsx
+
+    types-aiobotocore-gamelift
+
+    types-aiobotocore-gamesparks
+
+    types-aiobotocore-glacier
+
+    types-aiobotocore-globalaccelerator
+
+    types-aiobotocore-glue
+
+    types-aiobotocore-grafana
+
+    types-aiobotocore-greengrass
+
+    types-aiobotocore-greengrassv2
+
+    types-aiobotocore-groundstation
+
+    types-aiobotocore-guardduty
+
+    types-aiobotocore-health
+
+    types-aiobotocore-healthlake
+
+    types-aiobotocore-honeycode
+
+    types-aiobotocore-iam
+
+    types-aiobotocore-identitystore
+
+    types-aiobotocore-imagebuilder
+
+    types-aiobotocore-importexport
+
+    types-aiobotocore-inspector
+
+    types-aiobotocore-inspector2
+
+    types-aiobotocore-internetmonitor
+
+    types-aiobotocore-iot
+
+    types-aiobotocore-iot-data
+
+    types-aiobotocore-iot-jobs-data
+
+    types-aiobotocore-iot-roborunner
+
+    types-aiobotocore-iot1click-devices
+
+    types-aiobotocore-iot1click-projects
+
+    types-aiobotocore-iotanalytics
+
+    types-aiobotocore-iotdeviceadvisor
+
+    types-aiobotocore-iotevents
+
+    types-aiobotocore-iotevents-data
+
+    types-aiobotocore-iotfleethub
+
+    types-aiobotocore-iotfleetwise
+
+    types-aiobotocore-iotsecuretunneling
+
+    types-aiobotocore-iotsitewise
+
+    types-aiobotocore-iotthingsgraph
+
+    types-aiobotocore-iottwinmaker
+
+    types-aiobotocore-iotwireless
+
+    types-aiobotocore-ivs
+
+    types-aiobotocore-ivs-realtime
+
+    types-aiobotocore-ivschat
+
+    types-aiobotocore-kafka
+
+    types-aiobotocore-kafkaconnect
+
+    types-aiobotocore-kendra
+
+    types-aiobotocore-kendra-ranking
+
+    types-aiobotocore-keyspaces
+
+    types-aiobotocore-kinesis
+
+    types-aiobotocore-kinesis-video-archived-media
+
+    types-aiobotocore-kinesis-video-media
+
+    types-aiobotocore-kinesis-video-signaling
+
+    types-aiobotocore-kinesis-video-webrtc-storage
+
+    types-aiobotocore-kinesisanalytics
+
+    types-aiobotocore-kinesisanalyticsv2
+
+    types-aiobotocore-kinesisvideo
+
+    types-aiobotocore-kms
+
+    types-aiobotocore-lakeformation
+
+    types-aiobotocore-lambda
+
+    types-aiobotocore-lex-models
+
+    types-aiobotocore-lex-runtime
+
+    types-aiobotocore-lexv2-models
+
+    types-aiobotocore-lexv2-runtime
+
+    types-aiobotocore-license-manager
+
+    types-aiobotocore-license-manager-linux-subscriptions
+
+    types-aiobotocore-license-manager-user-subscriptions
+
+    types-aiobotocore-lightsail
+
+    types-aiobotocore-location
+
+    types-aiobotocore-logs
+
+    types-aiobotocore-lookoutequipment
+
+    types-aiobotocore-lookoutmetrics
+
+    types-aiobotocore-lookoutvision
+
+    types-aiobotocore-m2
+
+    types-aiobotocore-machinelearning
+
+    types-aiobotocore-macie
+
+    types-aiobotocore-macie2
+
+    types-aiobotocore-managedblockchain
+
+    types-aiobotocore-managedblockchain-query
+
+    types-aiobotocore-marketplace-catalog
+
+    types-aiobotocore-marketplace-entitlement
+
+    types-aiobotocore-marketplacecommerceanalytics
+
+    types-aiobotocore-mediaconnect
+
+    types-aiobotocore-mediaconvert
+
+    types-aiobotocore-medialive
+
+    types-aiobotocore-mediapackage
+
+    types-aiobotocore-mediapackage-vod
+
+    types-aiobotocore-mediapackagev2
+
+    types-aiobotocore-mediastore
+
+    types-aiobotocore-mediastore-data
+
+    types-aiobotocore-mediatailor
+
+    types-aiobotocore-medical-imaging
+
+    types-aiobotocore-memorydb
+
+    types-aiobotocore-meteringmarketplace
+
+    types-aiobotocore-mgh
+
+    types-aiobotocore-mgn
+
+    types-aiobotocore-migration-hub-refactor-spaces
+
+    types-aiobotocore-migrationhub-config
+
+    types-aiobotocore-migrationhuborchestrator
+
+    types-aiobotocore-migrationhubstrategy
+
+    types-aiobotocore-mobile
+
+    types-aiobotocore-mq
+
+    types-aiobotocore-mturk
+
+    types-aiobotocore-mwaa
+
+    types-aiobotocore-neptune
+
+    types-aiobotocore-network-firewall
+
+    types-aiobotocore-networkmanager
+
+    types-aiobotocore-nimble
+
+    types-aiobotocore-oam
+
+    types-aiobotocore-omics
+
+    types-aiobotocore-opensearch
+
+    types-aiobotocore-opensearchserverless
+
+    types-aiobotocore-opsworks
+
+    types-aiobotocore-opsworkscm
+
+    types-aiobotocore-organizations
+
+    types-aiobotocore-osis
+
+    types-aiobotocore-outposts
+
+    types-aiobotocore-panorama
+
+    types-aiobotocore-payment-cryptography
+
+    types-aiobotocore-payment-cryptography-data
+
+    types-aiobotocore-personalize
+
+    types-aiobotocore-personalize-events
+
+    types-aiobotocore-personalize-runtime
+
+    types-aiobotocore-pi
+
+    types-aiobotocore-pinpoint
+
+    types-aiobotocore-pinpoint-email
+
+    types-aiobotocore-pinpoint-sms-voice
+
+    types-aiobotocore-pinpoint-sms-voice-v2
+
+    types-aiobotocore-pipes
+
+    types-aiobotocore-polly
+
+    types-aiobotocore-pricing
+
+    types-aiobotocore-privatenetworks
+
+    types-aiobotocore-proton
+
+    types-aiobotocore-qldb
+
+    types-aiobotocore-qldb-session
+
+    types-aiobotocore-quicksight
+
+    types-aiobotocore-ram
+
+    types-aiobotocore-rbin
+
+    types-aiobotocore-rds
+
+    types-aiobotocore-rds-data
+
+    types-aiobotocore-redshift
+
+    types-aiobotocore-redshift-data
+
+    types-aiobotocore-redshift-serverless
+
+    types-aiobotocore-rekognition
+
+    types-aiobotocore-resiliencehub
+
+    types-aiobotocore-resource-explorer-2
+
+    types-aiobotocore-resource-groups
+
+    types-aiobotocore-resourcegroupstaggingapi
+
+    types-aiobotocore-robomaker
+
+    types-aiobotocore-rolesanywhere
+
+    types-aiobotocore-route53
+
+    types-aiobotocore-route53-recovery-cluster
+
+    types-aiobotocore-route53-recovery-control-config
+
+    types-aiobotocore-route53-recovery-readiness
+
+    types-aiobotocore-route53domains
+
+    types-aiobotocore-route53resolver
+
+    types-aiobotocore-rum
+
+    types-aiobotocore-s3
+
+    types-aiobotocore-s3control
+
+    types-aiobotocore-s3outposts
+
+    types-aiobotocore-sagemaker
+
+    types-aiobotocore-sagemaker-a2i-runtime
+
+    types-aiobotocore-sagemaker-edge
+
+    types-aiobotocore-sagemaker-featurestore-runtime
+
+    types-aiobotocore-sagemaker-geospatial
+
+    types-aiobotocore-sagemaker-metrics
+
+    types-aiobotocore-sagemaker-runtime
+
+    types-aiobotocore-savingsplans
+
+    types-aiobotocore-scheduler
+
+    types-aiobotocore-schemas
+
+    types-aiobotocore-sdb
+
+    types-aiobotocore-secretsmanager
+
+    types-aiobotocore-securityhub
+
+    types-aiobotocore-securitylake
+
+    types-aiobotocore-serverlessrepo
+
+    types-aiobotocore-service-quotas
+
+    types-aiobotocore-servicecatalog
+
+    types-aiobotocore-servicecatalog-appregistry
+
+    types-aiobotocore-servicediscovery
+
+    types-aiobotocore-ses
+
+    types-aiobotocore-sesv2
+
+    types-aiobotocore-shield
+
+    types-aiobotocore-signer
+
+    types-aiobotocore-simspaceweaver
+
+    types-aiobotocore-sms
+
+    types-aiobotocore-sms-voice
+
+    types-aiobotocore-snow-device-management
+
+    types-aiobotocore-snowball
+
+    types-aiobotocore-sns
+
+    types-aiobotocore-sqs
+
+    types-aiobotocore-ssm
+
+    types-aiobotocore-ssm-contacts
+
+    types-aiobotocore-ssm-incidents
+
+    types-aiobotocore-ssm-sap
+
+    types-aiobotocore-sso
+
+    types-aiobotocore-sso-admin
+
+    types-aiobotocore-sso-oidc
+
+    types-aiobotocore-stepfunctions
+
+    types-aiobotocore-storagegateway
+
+    types-aiobotocore-sts
+
+    types-aiobotocore-support
+
+    types-aiobotocore-support-app
+
+    types-aiobotocore-swf
+
+    types-aiobotocore-synthetics
+
+    types-aiobotocore-textract
+
+    types-aiobotocore-timestream-query
+
+    types-aiobotocore-timestream-write
+
+    types-aiobotocore-tnb
+
+    types-aiobotocore-transcribe
+
+    types-aiobotocore-transfer
+
+    types-aiobotocore-translate
+
+    types-aiobotocore-verifiedpermissions
+
+    types-aiobotocore-voice-id
+
+    types-aiobotocore-vpc-lattice
+
+    types-aiobotocore-waf
+
+    types-aiobotocore-waf-regional
+
+    types-aiobotocore-wafv2
+
+    types-aiobotocore-wellarchitected
+
+    types-aiobotocore-wisdom
+
+    types-aiobotocore-workdocs
+
+    types-aiobotocore-worklink
+
+    types-aiobotocore-workmail
+
+    types-aiobotocore-workmailmessageflow
+
+    types-aiobotocore-workspaces
+
+    types-aiobotocore-workspaces-web
+
+    types-aiobotocore-xray
+
+  ;
+
+  types-appdirs = callPackage ../development/python-modules/types-appdirs { };
+
+  types-awscrt = callPackage ../development/python-modules/types-awscrt { };
+
+  types-beautifulsoup4 = callPackage ../development/python-modules/types-beautifulsoup4 { };
+
+  types-click = callPackage ../development/python-modules/types-click { };
+
+  types-colorama = callPackage ../development/python-modules/types-colorama { };
+
+  types-dateutil = callPackage ../development/python-modules/types-dateutil { };
+
+  types-decorator = callPackage ../development/python-modules/types-decorator { };
+
+  types-deprecated = callPackage ../development/python-modules/types-deprecated { };
+
+  types-docopt = callPackage ../development/python-modules/types-docopt { };
+
+  types-docutils = callPackage ../development/python-modules/types-docutils { };
+
+  types-enum34 = callPackage ../development/python-modules/types-enum34 { };
+
+  types-freezegun = callPackage ../development/python-modules/types-freezegun { };
+
+  types-futures = callPackage ../development/python-modules/types-futures { };
+
+  types-html5lib = callPackage ../development/python-modules/types-html5lib { };
+
+  types-ipaddress = callPackage ../development/python-modules/types-ipaddress { };
+
+  types-mock = callPackage ../development/python-modules/types-mock { };
+
+  types-pillow = callPackage ../development/python-modules/types-pillow { };
+
+  types-protobuf = callPackage ../development/python-modules/types-protobuf { };
+
+  types-psutil = callPackage ../development/python-modules/types-psutil { };
+
+  types-pyopenssl = callPackage ../development/python-modules/types-pyopenssl { };
+
+  types-python-dateutil = callPackage ../development/python-modules/types-python-dateutil { };
+
+  types-pytz = callPackage ../development/python-modules/types-pytz { };
+
+  types-pyyaml = callPackage ../development/python-modules/types-pyyaml { };
+
+  types-redis = callPackage ../development/python-modules/types-redis { };
+
+  types-retry = callPackage ../development/python-modules/types-retry { };
+
+  types-requests = callPackage ../development/python-modules/types-requests { };
+
+  types-s3transfer = callPackage ../development/python-modules/types-s3transfer { };
+
+  types-setuptools = callPackage ../development/python-modules/types-setuptools { };
+
+  types-tabulate = callPackage ../development/python-modules/types-tabulate { };
+
+  types-toml = callPackage ../development/python-modules/types-toml { };
+
+  types-tqdm = callPackage ../development/python-modules/types-tqdm { };
+
+  types-typed-ast = callPackage ../development/python-modules/types-typed-ast { };
+
+  types-ujson = callPackage ../development/python-modules/types-ujson { };
+
+  types-urllib3 = callPackage ../development/python-modules/types-urllib3 { };
+
+  typesentry = callPackage ../development/python-modules/typesentry { };
+
+  typesystem = callPackage ../development/python-modules/typesystem { };
+
+  typical = callPackage ../development/python-modules/typical { };
+
+  typing = null;
+
+  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
+
+  typing-inspect = callPackage ../development/python-modules/typing-inspect { };
+
+  typish = callPackage ../development/python-modules/typish { };
+
+  typogrify = callPackage ../development/python-modules/typogrify { };
+
+  tzdata = callPackage ../development/python-modules/tzdata { };
+
+  tzlocal = callPackage ../development/python-modules/tzlocal { };
+
+  rustworkx = callPackage ../development/python-modules/rustworkx { };
+
+  uamqp = callPackage ../development/python-modules/uamqp {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork CoreFoundation Security;
+  };
+
+  ua-parser = callPackage ../development/python-modules/ua-parser { };
+
+  uarray = callPackage ../development/python-modules/uarray { };
+
+  uasiren = callPackage ../development/python-modules/uasiren { };
+
+  ubelt = callPackage ../development/python-modules/ubelt { };
+
+  uc-micro-py = callPackage ../development/python-modules/uc-micro-py { };
+
+  ucsmsdk = callPackage ../development/python-modules/ucsmsdk { };
+
+  udatetime = callPackage ../development/python-modules/udatetime { };
+
+  ueberzug = callPackage ../development/python-modules/ueberzug {
+    inherit (pkgs.xorg) libX11 libXext;
+  };
+
+  ufmt = callPackage ../development/python-modules/ufmt { };
+
+  ufo2ft = callPackage ../development/python-modules/ufo2ft { };
+
+  ufoLib2 = callPackage ../development/python-modules/ufoLib2 { };
+
+  ufolint = callPackage ../development/python-modules/ufolint { };
+
+  ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
+
+  ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
+
+  ueagle = callPackage ../development/python-modules/ueagle { };
+
+  uharfbuzz = callPackage ../development/python-modules/uharfbuzz {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
+  uhi = callPackage ../development/python-modules/uhi { };
+
+  ujson = callPackage ../development/python-modules/ujson { };
+
+  ukkonen = callPackage ../development/python-modules/ukkonen { };
+
+  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
+
+  ukrainealarm = callPackage ../development/python-modules/ukrainealarm { };
+
+  ulid-transform = callPackage ../development/python-modules/ulid-transform { };
+
+  ultraheat-api = callPackage ../development/python-modules/ultraheat-api { };
+
+  umalqurra = callPackage ../development/python-modules/umalqurra { };
+
+  umap-learn = callPackage ../development/python-modules/umap-learn { };
+
+  umodbus = callPackage ../development/python-modules/umodbus { };
+
+  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
+
+  unasync = callPackage ../development/python-modules/unasync { };
+
+  uncertainties = callPackage ../development/python-modules/uncertainties { };
+
+  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
+
+  unearth = callPackage ../development/python-modules/unearth { };
+
+  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
+
+  unicodedata2 = callPackage ../development/python-modules/unicodedata2 { };
+
+  unicode-rbnf = callPackage ../development/python-modules/unicode-rbnf { };
+
+  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
+
+  unicorn = callPackage ../development/python-modules/unicorn {
+    unicorn-emu = pkgs.unicorn;
+  };
+
+  unicurses = callPackage ../development/python-modules/unicurses { };
+
+  unicrypto = callPackage ../development/python-modules/unicrypto { };
+
+  unidata-blocks = callPackage ../development/python-modules/unidata-blocks { };
+
+  unidecode = callPackage ../development/python-modules/unidecode { };
+
+  unidic = callPackage ../development/python-modules/unidic { };
+
+  unidic-lite = callPackage ../development/python-modules/unidic-lite { };
+
+  unidiff = callPackage ../development/python-modules/unidiff { };
+
+  unifi = callPackage ../development/python-modules/unifi { };
+
+  unifi-discovery = callPackage ../development/python-modules/unifi-discovery { };
+
+  unify = callPackage ../development/python-modules/unify { };
+
+  unifiled = callPackage ../development/python-modules/unifiled { };
+
+  units = callPackage ../development/python-modules/units { };
+
+  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
+
+  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
+
+  univers = callPackage ../development/python-modules/univers { };
+
+  universal-pathlib = callPackage ../development/python-modules/universal-pathlib { };
+
+  universal-silabs-flasher = callPackage ../development/python-modules/universal-silabs-flasher { };
+
+  unix-ar = callPackage ../development/python-modules/unix-ar { };
+
+  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
+
+  unrardll = callPackage ../development/python-modules/unrardll { };
+
+  unrpa = callPackage ../development/python-modules/unrpa { };
+
+  unstructured = callPackage ../development/python-modules/unstructured { };
+
+  unstructured-api-tools = callPackage ../development/python-modules/unstructured-api-tools { };
+
+  unstructured-inference = callPackage ../development/python-modules/unstructured-inference { };
+
+  untangle = callPackage ../development/python-modules/untangle { };
+
+  untokenize = callPackage ../development/python-modules/untokenize { };
+
+  uonet-request-signer-hebe = callPackage ../development/python-modules/uonet-request-signer-hebe { };
+
+  upass = callPackage ../development/python-modules/upass { };
+
+  upb-lib = callPackage ../development/python-modules/upb-lib { };
+
+  upcloud-api = callPackage ../development/python-modules/upcloud-api { };
+
+  update_checker = callPackage ../development/python-modules/update_checker { };
+
+  update-copyright = callPackage ../development/python-modules/update-copyright { };
+
+  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
+
+  upnpy = callPackage ../development/python-modules/upnpy { };
+
+  uproot = callPackage ../development/python-modules/uproot { };
+
+  uptime = callPackage ../development/python-modules/uptime { };
+
+  uptime-kuma-api = callPackage ../development/python-modules/uptime-kuma-api { };
+
+  uptime-kuma-monitor = callPackage ../development/python-modules/uptime-kuma-monitor { };
+
+  uqbar = callPackage ../development/python-modules/uqbar { };
+
+  uranium = callPackage ../development/python-modules/uranium { };
+
+  uritemplate = callPackage ../development/python-modules/uritemplate { };
+
+  uri-template = callPackage ../development/python-modules/uri-template { };
+
+  uritools = callPackage ../development/python-modules/uritools { };
+
+  url-normalize = callPackage ../development/python-modules/url-normalize { };
+
+  urlextract = callPackage ../development/python-modules/urlextract { };
+
+  urlgrabber = callPackage ../development/python-modules/urlgrabber { };
+
+  urllib3 = callPackage ../development/python-modules/urllib3 { };
+
+  urlman = callPackage ../development/python-modules/urlman { };
+
+  urlpy = callPackage ../development/python-modules/urlpy { };
+
+  urwid = callPackage ../development/python-modules/urwid { };
+
+  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
+
+  urwid-readline = callPackage ../development/python-modules/urwid-readline { };
+
+  urwid-mitmproxy = callPackage ../development/python-modules/urwid-mitmproxy { };
+
+  usb-devices = callPackage ../development/python-modules/usb-devices { };
+
+  usbrelay-py = callPackage ../os-specific/linux/usbrelay/python.nix { };
+
+  usbtmc = callPackage ../development/python-modules/usbtmc { };
+
+  us = callPackage ../development/python-modules/us { };
+
+  user-agents = callPackage ../development/python-modules/user-agents { };
+
+  userpath = callPackage ../development/python-modules/userpath { };
+
+  ush = callPackage ../development/python-modules/ush { };
+
+  usort = callPackage ../development/python-modules/usort { };
+
+  utils = callPackage ../development/python-modules/utils { };
+
+  uuid = callPackage ../development/python-modules/uuid { };
+
+  uvcclient = callPackage ../development/python-modules/uvcclient { };
+
+  uvicorn = callPackage ../development/python-modules/uvicorn { };
+
+  uvloop = callPackage ../development/python-modules/uvloop {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
+  };
+
+  vaa = callPackage ../development/python-modules/vaa { };
+
+  validate-email = callPackage ../development/python-modules/validate-email { };
+
+  validators = callPackage ../development/python-modules/validators { };
+
+  validobj = callPackage ../development/python-modules/validobj { };
+
+  validphys2 = callPackage ../development/python-modules/validphys2 { };
+
+  vallox-websocket-api = callPackage ../development/python-modules/vallox-websocket-api { };
+
+  vapoursynth = callPackage ../development/python-modules/vapoursynth {
+    inherit (pkgs) vapoursynth;
+  };
+
+  variants = callPackage ../development/python-modules/variants { };
+
+  varint = callPackage ../development/python-modules/varint { };
+
+  vat-moss = callPackage ../development/python-modules/vat-moss { };
+
+  vcard = callPackage ../development/python-modules/vcard { };
+
+  vcrpy = callPackage ../development/python-modules/vcrpy { };
+
+  vcver = callPackage ../development/python-modules/vcver { };
+
+  vcversioner = callPackage ../development/python-modules/vcversioner { };
+
+  vdf = callPackage ../development/python-modules/vdf { };
+
+  vdirsyncer = callPackage ../development/python-modules/vdirsyncer { };
+
+  vector = callPackage ../development/python-modules/vector { };
+
+  vehicle = callPackage ../development/python-modules/vehicle { };
+
+  vega = callPackage ../development/python-modules/vega { };
+
+  vega-datasets = callPackage ../development/python-modules/vega-datasets { };
+
+  venstarcolortouch = callPackage ../development/python-modules/venstarcolortouch { };
+
+  venusian = callPackage ../development/python-modules/venusian { };
+
+  velbus-aio = callPackage ../development/python-modules/velbus-aio { };
+
+  verboselogs = callPackage ../development/python-modules/verboselogs { };
+
+  versioneer = callPackage ../development/python-modules/versioneer { };
+
+  versionfinder = callPackage ../development/python-modules/versionfinder { };
+
+  versioningit = callPackage ../development/python-modules/versioningit { };
+
+  versiontag = callPackage ../development/python-modules/versiontag { };
+
+  versiontools = callPackage ../development/python-modules/versiontools { };
+
+  verspec = callPackage ../development/python-modules/verspec { };
+
+  vertica-python = callPackage ../development/python-modules/vertica-python { };
+
+  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
+
+  vg = callPackage ../development/python-modules/vg { };
+
+  vharfbuzz = callPackage ../development/python-modules/vharfbuzz { };
+
+  videocr = callPackage ../development/python-modules/videocr { };
+
+  vidstab = callPackage ../development/python-modules/vidstab { };
+
+  viennarna = toPythonModule pkgs.viennarna;
+
+  viewstate = callPackage ../development/python-modules/viewstate { };
+
+  vilfo-api-client = callPackage ../development/python-modules/vilfo-api-client { };
+
+  vina = callPackage ../applications/science/chemistry/autodock-vina/python-bindings.nix { };
+
+  vincenty = callPackage ../development/python-modules/vincenty { };
+
+  vine = callPackage ../development/python-modules/vine { };
+
+  virt-firmware = callPackage ../development/python-modules/virt-firmware { };
+
+  virtkey = callPackage ../development/python-modules/virtkey { };
+
+  virtualenv = callPackage ../development/python-modules/virtualenv { };
+
+  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
+
+  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
+
+  visitor = callPackage ../development/python-modules/visitor { };
+
+  vispy = callPackage ../development/python-modules/vispy { };
+
+  vivisect = callPackage ../development/python-modules/vivisect {
+    inherit (pkgs.libsForQt5) wrapQtAppsHook;
+  };
+
+  viv-utils = callPackage ../development/python-modules/viv-utils { };
+
+  vmprof = callPackage ../development/python-modules/vmprof { };
+
+  vncdo = callPackage ../development/python-modules/vncdo { };
+
+  vobject = callPackage ../development/python-modules/vobject { };
+
+  volatile = callPackage ../development/python-modules/volatile { };
+
+  volkszaehler = callPackage ../development/python-modules/volkszaehler { };
+
+  voluptuous = callPackage ../development/python-modules/voluptuous { };
+
+  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
+
+  voluptuous-stubs = callPackage ../development/python-modules/voluptuous-stubs { };
+
+  volvooncall = callPackage ../development/python-modules/volvooncall { };
+
+  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
+
+  vpk = callPackage ../development/python-modules/vpk { };
+
+  vprof = callPackage ../development/python-modules/vprof { };
+
+  vqgan-jax = callPackage ../development/python-modules/vqgan-jax { };
+
+  vsts = callPackage ../development/python-modules/vsts { };
+
+  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
+
+  vsure = callPackage ../development/python-modules/vsure { };
+
+  vt-py = callPackage ../development/python-modules/vt-py { };
+
+  vtk = toPythonModule (pkgs.vtk_9.override {
+    inherit python;
+    enablePython = true;
+  });
+
+  vulcan-api = callPackage ../development/python-modules/vulcan-api { };
+
+  vultr = callPackage ../development/python-modules/vultr { };
+
+  vulture = callPackage ../development/python-modules/vulture { };
+
+  vxi11 = callPackage ../development/python-modules/vxi11 { };
+
+  vyper = callPackage ../development/compilers/vyper { };
+
+  w1thermsensor = callPackage ../development/python-modules/w1thermsensor { };
+
+  w3lib = callPackage ../development/python-modules/w3lib { };
+
+  wadllib = callPackage ../development/python-modules/wadllib { };
+
+  wagtail = callPackage ../development/python-modules/wagtail { };
+
+  wagtail-factories = callPackage ../development/python-modules/wagtail-factories { };
+
+  wagtail-localize = callPackage ../development/python-modules/wagtail-localize { };
+
+  waitress = callPackage ../development/python-modules/waitress { };
+
+  waitress-django = callPackage ../development/python-modules/waitress-django { };
+
+  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
+
+  wallbox = callPackage ../development/python-modules/wallbox { };
+
+  walrus = callPackage ../development/python-modules/walrus { };
+
+  wand = callPackage ../development/python-modules/wand { };
+
+  wandb = callPackage ../development/python-modules/wandb { };
+
+  warble = callPackage ../development/python-modules/warble { };
+
+  warcio = callPackage ../development/python-modules/warcio { };
+
+  ward = callPackage ../development/python-modules/ward { };
+
+  warlock = callPackage ../development/python-modules/warlock { };
+
+  warrant = callPackage ../development/python-modules/warrant { };
+
+  warrant-lite = callPackage ../development/python-modules/warrant-lite { };
+
+  waqiasync = callPackage ../development/python-modules/waqiasync { };
+
+  wasabi = callPackage ../development/python-modules/wasabi { };
+
+  wasserstein = callPackage ../development/python-modules/wasserstein { };
+
+  wasmerPackages = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/wasmer { });
+  inherit (self.wasmerPackages) wasmer wasmer-compiler-cranelift wasmer-compiler-llvm wasmer-compiler-singlepass;
+
+  watchdog = callPackage ../development/python-modules/watchdog {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  watchdog-gevent = callPackage ../development/python-modules/watchdog-gevent { };
+
+  watchfiles = callPackage ../development/python-modules/watchfiles {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
+  };
+
+  watchgod = callPackage ../development/python-modules/watchgod { };
+
+  waterfurnace = callPackage ../development/python-modules/waterfurnace { };
+
+  watermark = callPackage ../development/python-modules/watermark { };
+
+  wavedrom = callPackage ../development/python-modules/wavedrom { };
+
+  wavefile = callPackage ../development/python-modules/wavefile { };
+
+  wavinsentio = callPackage ../development/python-modules/wavinsentio { };
+
+  wazeroutecalculator = callPackage ../development/python-modules/wazeroutecalculator { };
+
+  wcag-contrast-ratio = callPackage ../development/python-modules/wcag-contrast-ratio { };
+
+  wcmatch = callPackage ../development/python-modules/wcmatch { };
+
+  wcwidth = callPackage ../development/python-modules/wcwidth { };
+
+  weasel = callPackage ../development/python-modules/weasel { };
+
+  weasyprint = callPackage ../development/python-modules/weasyprint { };
+
+  weaviate-client = callPackage ../development/python-modules/weaviate-client { };
+
+  web3 = callPackage ../development/python-modules/web3 { };
+
+  webargs = callPackage ../development/python-modules/webargs { };
+
+  webassets = callPackage ../development/python-modules/webassets { };
+
+  webauthn = callPackage ../development/python-modules/webauthn { };
+
+  web = callPackage ../development/python-modules/web { };
+
+  web-cache = callPackage ../development/python-modules/web-cache { };
+
+  webcolors = callPackage ../development/python-modules/webcolors { };
+
+  webdataset = callPackage ../development/python-modules/webdataset { };
+
+  webdav4 = callPackage ../development/python-modules/webdav4 { };
+
+  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
+
+  webencodings = callPackage ../development/python-modules/webencodings { };
+
+  webexteamssdk = callPackage ../development/python-modules/webexteamssdk { };
+
+  webhelpers = callPackage ../development/python-modules/webhelpers { };
+
+  webob = callPackage ../development/python-modules/webob { };
+
+  weboob = callPackage ../development/python-modules/weboob { };
+
+  webrtc-noise-gain = callPackage ../development/python-modules/webrtc-noise-gain { };
+
+  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
+
+  websocket-client = callPackage ../development/python-modules/websocket-client { };
+
+  websockets = callPackage ../development/python-modules/websockets { };
+
+  websockify = callPackage ../development/python-modules/websockify { };
+
+  webssh = callPackage ../development/python-modules/webssh { };
+
+  webtest = callPackage ../development/python-modules/webtest { };
+
+  webtest-aiohttp = callPackage ../development/python-modules/webtest-aiohttp { };
+
+  webthing = callPackage ../development/python-modules/webthing { };
+
+  webthing-ws = callPackage ../development/python-modules/webthing-ws { };
+
+  weconnect = callPackage ../development/python-modules/weconnect { };
+
+  weconnect-mqtt = callPackage ../development/python-modules/weconnect-mqtt { };
+
+  werkzeug = callPackage ../development/python-modules/werkzeug { };
+
+  west = callPackage ../development/python-modules/west { };
+
+  wfuzz = callPackage ../development/python-modules/wfuzz { };
+
+  wget = callPackage ../development/python-modules/wget { };
+
+  whatthepatch = callPackage ../development/python-modules/whatthepatch { };
+
+  wheel = callPackage ../development/python-modules/wheel { };
+
+  wheel-filename = callPackage ../development/python-modules/wheel-filename { };
+
+  wheel-inspect = callPackage ../development/python-modules/wheel-inspect { };
+
+  wheezy-captcha = callPackage ../development/python-modules/wheezy-captcha { };
+
+  wheezy-template = callPackage ../development/python-modules/wheezy-template { };
+
+  whichcraft = callPackage ../development/python-modules/whichcraft { };
+
+  whirlpool-sixth-sense = callPackage ../development/python-modules/whirlpool-sixth-sense { };
+
+  whisper = callPackage ../development/python-modules/whisper { };
+
+  whispers = callPackage ../development/python-modules/whispers { };
+
+  whitenoise = callPackage ../development/python-modules/whitenoise { };
+
+  whodap = callPackage ../development/python-modules/whodap { };
+
+  whois = callPackage ../development/python-modules/whois { };
+
+  whois-api = callPackage ../development/python-modules/whois-api { };
+
+  whoosh = callPackage ../development/python-modules/whoosh { };
+
+  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
+
+  widlparser = callPackage ../development/python-modules/widlparser { };
+
+  wiffi = callPackage ../development/python-modules/wiffi { };
+
+  wifi = callPackage ../development/python-modules/wifi { };
+
+  wikipedia = callPackage ../development/python-modules/wikipedia { };
+
+  wikipedia-api = callPackage ../development/python-modules/wikipedia-api { };
+
+  wikitextparser = callPackage ../development/python-modules/wikitextparser { };
+
+  willow = callPackage ../development/python-modules/willow { };
+
+  winacl = callPackage ../development/python-modules/winacl { };
+
+  winsspi = callPackage ../development/python-modules/winsspi { };
+
+  withings-api = callPackage ../development/python-modules/withings-api { };
+
+  withings-sync = callPackage ../development/python-modules/withings-sync { };
+
+  wktutils = callPackage ../development/python-modules/wktutils { };
+
+  wled = callPackage ../development/python-modules/wled { };
+
+  wn = callPackage ../development/python-modules/wn { };
+
+  woob = callPackage ../development/python-modules/woob { };
+
+  woodblock = callPackage ../development/python-modules/woodblock { };
+
+  wordcloud = callPackage ../development/python-modules/wordcloud { };
+
+  wordfreq = callPackage ../development/python-modules/wordfreq { };
+
+  worldengine = callPackage ../development/python-modules/worldengine { };
+
+  wrapio = callPackage ../development/python-modules/wrapio { };
+
+  wrapt = callPackage ../development/python-modules/wrapt { };
+
+  wrf-python = callPackage ../development/python-modules/wrf-python { };
+
+  ws4py = callPackage ../development/python-modules/ws4py { };
+
+  wsdiscovery = callPackage ../development/python-modules/wsdiscovery { };
+
+  wsgi-intercept = callPackage ../development/python-modules/wsgi-intercept { };
+
+  wsgidav = callPackage ../development/python-modules/wsgidav { };
+
+  wsgiprox = callPackage ../development/python-modules/wsgiprox { };
+
+  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
+
+  wsgitools = callPackage ../development/python-modules/wsgitools { };
+
+  wsme = callPackage ../development/python-modules/wsme { };
+
+  wsnsimpy = callPackage ../development/python-modules/wsnsimpy { };
+
+  wsproto = callPackage ../development/python-modules/wsproto { };
+
+  wtforms = callPackage ../development/python-modules/wtforms { };
+
+  wtforms-bootstrap5 = callPackage ../development/python-modules/wtforms-bootstrap5 { };
+
+  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
+
+  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
+
+  wxPython_4_2 = callPackage ../development/python-modules/wxPython/4.2.nix {
+    wxGTK = pkgs.wxGTK32.override {
+      withWebKit = true;
+    };
+  };
+
+  wyoming = callPackage ../development/python-modules/wyoming { };
+
+  x-wr-timezone = callPackage ../development/python-modules/x-wr-timezone { };
+
+  x11-hash = callPackage ../development/python-modules/x11-hash { };
+
+  x256 = callPackage ../development/python-modules/x256 { };
+
+  xapian = callPackage ../development/python-modules/xapian {
+    inherit (pkgs) xapian;
+  };
+
+  xapp = callPackage ../development/python-modules/xapp {
+    inherit (pkgs.buildPackages) meson;
+    inherit (pkgs) gtk3 gobject-introspection polkit;
+    inherit (pkgs.cinnamon) xapp;
+  };
+
+  xarray = callPackage ../development/python-modules/xarray { };
+
+  xarray-einstats = callPackage ../development/python-modules/xarray-einstats { };
+
+  xattr = callPackage ../development/python-modules/xattr { };
+
+  xbox-webapi = callPackage ../development/python-modules/xbox-webapi { };
+
+  xboxapi = callPackage ../development/python-modules/xboxapi { };
+
+  xcffib = callPackage ../development/python-modules/xcffib { };
+
+  xdg = callPackage ../development/python-modules/xdg { };
+
+  xdg-base-dirs = callPackage ../development/python-modules/xdg-base-dirs { };
+
+  xdis = callPackage ../development/python-modules/xdis { };
+
+  xdoctest = callPackage ../development/python-modules/xdoctest { };
+
+  xdot = callPackage ../development/python-modules/xdot {
+    inherit (pkgs) graphviz;
+  };
+
+  xformers = callPackage ../development/python-modules/xformers {
+    openai-triton = self.openai-triton-cuda;
+  };
+
+  xgboost = callPackage ../development/python-modules/xgboost {
+    inherit (pkgs) xgboost;
+  };
+
+  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
+
+  xiaomi-ble = callPackage ../development/python-modules/xiaomi-ble { };
+
+  xkbcommon = callPackage ../development/python-modules/xkbcommon { };
+
+  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
+
+  xknx = callPackage ../development/python-modules/xknx { };
+
+  xknxproject = callPackage ../development/python-modules/xknxproject { };
+
+  xlib = callPackage ../development/python-modules/xlib { };
+
+  xlrd = callPackage ../development/python-modules/xlrd { };
+
+  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
+
+  xlsxwriter = callPackage ../development/python-modules/xlsxwriter { };
+
+  xlwt = callPackage ../development/python-modules/xlwt { };
+
+  xmind = callPackage ../development/python-modules/xmind { };
+
+  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
+
+  xmldiff = callPackage ../development/python-modules/xmldiff { };
+
+  xmljson = callPackage ../development/python-modules/xmljson { };
+
+  xmlschema = callPackage ../development/python-modules/xmlschema { };
+
+  xmlsec = callPackage ../development/python-modules/xmlsec {
+    inherit (pkgs) libxslt libxml2 libtool pkg-config xmlsec;
+  };
+
+  xmltodict = callPackage ../development/python-modules/xmltodict { };
+
+  xml-marshaller = callPackage ../development/python-modules/xml-marshaller { };
+
+  xmodem = callPackage ../development/python-modules/xmodem { };
+
+  xnatpy = callPackage ../development/python-modules/xnatpy { };
+
+  xnd = callPackage ../development/python-modules/xnd { };
+
+  xpath-expressions = callPackage ../development/python-modules/xpath-expressions { };
+
+  xpybutil = callPackage ../development/python-modules/xpybutil { };
+
+  xsdata = callPackage ../development/python-modules/xsdata { };
+
+  xstatic-asciinema-player = callPackage ../development/python-modules/xstatic-asciinema-player { };
+
+  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox { };
+
+  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap { };
+
+  xstatic = callPackage ../development/python-modules/xstatic { };
+
+  xstatic-font-awesome = callPackage ../development/python-modules/xstatic-font-awesome { };
+
+  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery { };
+
+  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload { };
+
+  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui { };
+
+  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments { };
+
+  xtensor-python = callPackage ../development/python-modules/xtensor-python { };
+
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
+    inherit (pkgs.xorg) xorgserver;
+  };
+
+  xxhash = callPackage ../development/python-modules/xxhash { };
+
+  xyzservices = callPackage ../development/python-modules/xyzservices { };
+
+  y-py = callPackage ../development/python-modules/y-py { };
+
+  yabadaba = callPackage ../development/python-modules/yabadaba { };
+
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
+
+  yalesmartalarmclient = callPackage ../development/python-modules/yalesmartalarmclient { };
+
+  yalexs = callPackage ../development/python-modules/yalexs { };
+
+  yalexs-ble = callPackage ../development/python-modules/yalexs-ble { };
+
+  yamale = callPackage ../development/python-modules/yamale { };
+
+  yamlfix = callPackage ../development/python-modules/yamlfix { };
+
+  yamllint = callPackage ../development/python-modules/yamllint { };
+
+  yamlloader = callPackage ../development/python-modules/yamlloader { };
+
+  yamlordereddictloader = callPackage ../development/python-modules/yamlordereddictloader { };
+
+  yanc = callPackage ../development/python-modules/yanc { };
+
+  yangson = callPackage ../development/python-modules/yangson { };
+
+  yapf = callPackage ../development/python-modules/yapf { };
+
+  yappi = callPackage ../development/python-modules/yappi { };
+
+  yapsy = callPackage ../development/python-modules/yapsy { };
+
+  yara-python = callPackage ../development/python-modules/yara-python { };
+
+  yaramod = callPackage ../development/python-modules/yaramod { };
+
+  yarg = callPackage ../development/python-modules/yarg { };
+
+  yargy = callPackage ../development/python-modules/yargy { };
+
+  yark = callPackage ../development/python-modules/yark { };
+
+  yarl = callPackage ../development/python-modules/yarl { };
+
+  yasi = callPackage ../development/python-modules/yasi { };
+
+  yaspin = callPackage ../development/python-modules/yaspin { };
+
+  yaswfp = callPackage ../development/python-modules/yaswfp { };
+
+  yattag = callPackage ../development/python-modules/yattag { };
+
+  yacs = callPackage ../development/python-modules/yacs { };
+
+  ydiff = callPackage ../development/python-modules/ydiff { };
+
+  yeelight = callPackage ../development/python-modules/yeelight { };
+
+  yfinance = callPackage ../development/python-modules/yfinance { };
+
+  yoda = toPythonModule (pkgs.yoda.override { inherit python; });
+
+  yolink-api = callPackage ../development/python-modules/yolink-api { };
+
+  yosys = toPythonModule (pkgs.yosys.override {
+    python3 = python;
+  });
+
+  youless-api = callPackage ../development/python-modules/youless-api { };
+
+  youseedee = callPackage ../development/python-modules/youseedee { };
+
+  youtokentome = callPackage ../development/python-modules/youtokentome { };
+
+  youtube-dl = callPackage ../tools/misc/youtube-dl { };
+
+  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
+    ffmpegSupport = false;
+  };
+
+  yoyo-migrations = callPackage ../development/python-modules/yoyo-migrations { };
+
+  yt-dlp = callPackage ../tools/misc/yt-dlp {
+    ffmpeg = pkgs.ffmpeg-headless;
+  };
+
+  yt-dlp-light = callPackage ../tools/misc/yt-dlp {
+    atomicparsleySupport = false;
+    ffmpegSupport = false;
+    rtmpSupport = false;
+  };
+
+  youtube-search = callPackage ../development/python-modules/youtube-search { };
+
+  youtube-search-python = callPackage ../development/python-modules/youtube-search-python { };
+
+  youtube-transcript-api = callPackage ../development/python-modules/youtube-transcript-api { };
+
+  yowsup = callPackage ../development/python-modules/yowsup { };
+
+  ypy-websocket = callPackage ../development/python-modules/ypy-websocket { };
+
+  yq = callPackage ../development/python-modules/yq {
+    inherit (pkgs) jq;
+  };
+
+  yte = callPackage ../development/python-modules/yte { };
+
+  ytmusicapi = callPackage ../development/python-modules/ytmusicapi { };
+
+  yubico = callPackage ../development/python-modules/yubico { };
+
+  yubico-client = callPackage ../development/python-modules/yubico-client { };
+
+  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
+
+  z3-solver = (toPythonModule ((pkgs.z3.override {
+    inherit python;
+  }).overrideAttrs (_: {
+    pname = "z3-solver";
+  }))).python;
+
+  zadnegoale = callPackage ../development/python-modules/zadnegoale { };
+
+  zamg = callPackage ../development/python-modules/zamg { };
+
+  zarr = callPackage ../development/python-modules/zarr { };
+
+  zc-buildout = callPackage ../development/python-modules/buildout { };
+
+  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
+
+  zcbor = callPackage ../development/python-modules/zcbor { };
+
+  zconfig = callPackage ../development/python-modules/zconfig { };
+
+  zcs = callPackage ../development/python-modules/zcs { };
+
+  zdaemon = callPackage ../development/python-modules/zdaemon { };
+
+  zeek = (toPythonModule (pkgs.zeek.broker.override {
+    python3 = python;
+  })).py;
+
+  zeep = callPackage ../development/python-modules/zeep { };
+
+  zeitgeist = (toPythonModule (pkgs.zeitgeist.override {
+    python3 = python;
+  })).py;
+
+  zephyr-python-api = callPackage ../development/python-modules/zephyr-python-api { };
+
+  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
+
+  zeroconf = callPackage ../development/python-modules/zeroconf { };
+
+  zerorpc = callPackage ../development/python-modules/zerorpc { };
+
+  zetup = callPackage ../development/python-modules/zetup { };
+
+  zeversolarlocal = callPackage ../development/python-modules/zeversolarlocal { };
+
+  zfec = callPackage ../development/python-modules/zfec { };
+
+  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
+
+  ziafont = callPackage ../development/python-modules/ziafont { };
+
+  ziamath = callPackage ../development/python-modules/ziamath { };
+
+  zict = callPackage ../development/python-modules/zict { };
+
+  zigpy = callPackage ../development/python-modules/zigpy { };
+
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
+
+  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
+
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
+
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
+
+  zigpy-znp = callPackage ../development/python-modules/zigpy-znp { };
+
+  zimports = callPackage ../development/python-modules/zimports { };
+
+  zipfile2 = callPackage ../development/python-modules/zipfile2 { };
+
+  zipp = callPackage ../development/python-modules/zipp { };
+
+  zipstream = callPackage ../development/python-modules/zipstream { };
+
+  zipstream-new = callPackage ../development/python-modules/zipstream-new { };
+
+  zipstream-ng = callPackage ../development/python-modules/zipstream-ng { };
+
+  zlib-ng = callPackage ../development/python-modules/zlib-ng {
+    inherit (pkgs) zlib-ng;
+  };
+
+  zm-py = callPackage ../development/python-modules/zm-py { };
+
+  zodb = callPackage ../development/python-modules/zodb { };
+
+  zodbpickle = callPackage ../development/python-modules/zodbpickle { };
+
+  zope-cachedescriptors = callPackage ../development/python-modules/zope-cachedescriptors { };
+
+  zope-component = callPackage ../development/python-modules/zope-component { };
+
+  zope-configuration = callPackage ../development/python-modules/zope-configuration { };
+
+  zope-contenttype = callPackage ../development/python-modules/zope-contenttype { };
+
+  zope_copy = callPackage ../development/python-modules/zope_copy { };
+
+  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
+
+  zope-deprecation = callPackage ../development/python-modules/zope-deprecation { };
+
+  zope-dottedname = callPackage ../development/python-modules/zope-dottedname { };
+
+  zope_event = callPackage ../development/python-modules/zope_event { };
+
+  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
+
+  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
+
+  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
+
+  zope-i18nmessageid = callPackage ../development/python-modules/zope-i18nmessageid { };
+
+  zope_interface = callPackage ../development/python-modules/zope_interface { };
+
+  zope-lifecycleevent = callPackage ../development/python-modules/zope-lifecycleevent { };
+
+  zope_location = callPackage ../development/python-modules/zope_location { };
+
+  zope-proxy = callPackage ../development/python-modules/zope-proxy { };
+
+  zope_schema = callPackage ../development/python-modules/zope_schema { };
+
+  zope_size = callPackage ../development/python-modules/zope_size { };
+
+  zope-testbrowser = callPackage ../development/python-modules/zope-testbrowser { };
+
+  zope-testing = callPackage ../development/python-modules/zope-testing { };
+
+  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
+
+  zopfli = callPackage ../development/python-modules/zopfli {
+    inherit (pkgs) zopfli;
+  };
+
+  zstandard = callPackage ../development/python-modules/zstandard { };
+
+  zstd = callPackage ../development/python-modules/zstd {
+    inherit (pkgs) zstd;
+  };
+
+  zulip = callPackage ../development/python-modules/zulip { };
+
+  zwave-me-ws = callPackage ../development/python-modules/zwave-me-ws { };
+
+  zwave-js-server-python = callPackage ../development/python-modules/zwave-js-server-python { };
+
+  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
+
+  zxing-cpp = callPackage ../development/python-modules/zxing-cpp {
+    libzxing-cpp = pkgs.zxing-cpp;
+  };
+}
diff --git a/nixpkgs/pkgs/top-level/python2-packages.nix b/nixpkgs/pkgs/top-level/python2-packages.nix
new file mode 100644
index 000000000000..073ffa0be2c4
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/python2-packages.nix
@@ -0,0 +1,100 @@
+# Extension with Python 2 packages that is overlayed on top
+# of the Python 3 packages set. This way, Python 2+3 compatible
+# packages can still be used.
+
+self: super:
+
+with self; with super; {
+  attrs = callPackage ../development/python2-modules/attrs { };
+
+  backports-functools-lru-cache = callPackage ../development/python2-modules/backports-functools-lru-cache { };
+
+  bootstrapped-pip = toPythonModule (callPackage ../development/python2-modules/bootstrapped-pip { });
+
+  cffi = callPackage ../development/python2-modules/cffi { inherit cffi; };
+
+  configparser = callPackage ../development/python2-modules/configparser { };
+
+  contextlib2 = callPackage ../development/python2-modules/contextlib2 { };
+
+  coverage = callPackage ../development/python2-modules/coverage { };
+
+  enum = callPackage ../development/python2-modules/enum { };
+
+  filelock =  callPackage ../development/python2-modules/filelock { };
+
+  futures = callPackage ../development/python2-modules/futures { };
+
+  hypothesis = callPackage ../development/python2-modules/hypothesis { };
+
+  importlib-metadata = callPackage ../development/python2-modules/importlib-metadata { };
+
+  jinja2 = callPackage ../development/python2-modules/jinja2 { };
+
+  markupsafe = callPackage ../development/python2-modules/markupsafe { };
+
+  mock = callPackage ../development/python2-modules/mock { };
+
+  more-itertools = callPackage ../development/python2-modules/more-itertools { };
+
+  # ninja python stub was created to help simplify python builds using PyPA's
+  # build tool in Python 3, but it does not yet support Python 2
+  ninja = pkgs.buildPackages.ninja;
+
+  packaging = callPackage ../development/python2-modules/packaging { };
+
+  pip = callPackage ../development/python2-modules/pip { };
+
+  pluggy = callPackage ../development/python2-modules/pluggy { };
+
+  pycairo = callPackage ../development/python2-modules/pycairo {
+    inherit (pkgs.buildPackages) meson;
+  };
+
+  pygobject2 = callPackage ../development/python2-modules/pygobject { };
+
+  pygtk = callPackage ../development/python2-modules/pygtk { };
+
+  pyparsing = callPackage ../development/python2-modules/pyparsing { };
+
+  pytest = pytest_4;
+
+  pytest_4 = callPackage
+    ../development/python2-modules/pytest {
+      # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override {
+        doCheck = false;
+      };
+    };
+
+  pytest-xdist = callPackage ../development/python2-modules/pytest-xdist { };
+
+  recoll = disabled super.recoll;
+
+  rivet = disabled super.rivet;
+
+  rpm = disabled super.rpm;
+
+  scandir = callPackage ../development/python2-modules/scandir { };
+
+  setuptools = callPackage ../development/python2-modules/setuptools { };
+
+  setuptools-scm = callPackage ../development/python2-modules/setuptools-scm { };
+
+  typing = callPackage ../development/python2-modules/typing { };
+
+  six = super.six.overridePythonAttrs (_: {
+    doCheck = false;  # circular dependency with pytest
+  });
+
+  wcwidth = callPackage ../development/python2-modules/wcwidth {
+    inherit wcwidth;
+  };
+
+  wheel = callPackage ../development/python2-modules/wheel { };
+
+  zeek = disabled super.zeek;
+
+  zipp = callPackage ../development/python2-modules/zipp { };
+
+}
diff --git a/nixpkgs/pkgs/top-level/qt5-packages.nix b/nixpkgs/pkgs/top-level/qt5-packages.nix
new file mode 100644
index 000000000000..f38a4c1c4907
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/qt5-packages.nix
@@ -0,0 +1,280 @@
+
+# Qt packages set.
+#
+# Attributes in this file are packages requiring Qt and will be made available
+# for every Qt version. Qt applications are called from `all-packages.nix` via
+# this file.
+
+
+{ lib
+, __splicedPackages
+, makeScopeWithSplicing'
+, generateSplicesForMkScope
+, pkgsHostTarget
+}:
+
+let
+  pkgs = __splicedPackages;
+  # qt5 set should not be pre-spliced to prevent spliced packages being a part of an unspliced set
+  # 'pkgsCross.aarch64-multiplatform.pkgsBuildTarget.targetPackages.libsForQt5.qtbase' should not have a `__spliced` but if qt5 is pre-spliced then it will have one.
+  # pkgsHostTarget == pkgs
+  qt5 = pkgsHostTarget.qt5;
+in
+
+makeScopeWithSplicing' {
+  otherSplices = generateSplicesForMkScope "libsForQt5";
+  f = (self: let
+  libsForQt5 = self;
+  callPackage = self.callPackage;
+
+  kdeFrameworks = let
+    mkFrameworks = import ../development/libraries/kde-frameworks;
+    attrs = {
+      inherit libsForQt5;
+      inherit (pkgs) lib fetchurl;
+    };
+  in (lib.makeOverridable mkFrameworks attrs);
+
+  plasma5 = let
+    mkPlasma5 = import ../desktops/plasma-5;
+    attrs = {
+      inherit libsForQt5;
+      inherit (pkgs) config lib fetchurl;
+      gconf = pkgs.gnome2.GConf;
+      inherit (pkgs) gsettings-desktop-schemas;
+    };
+  in (lib.makeOverridable mkPlasma5 attrs);
+
+  kdeGear = let
+    mkGear = import ../applications/kde;
+    attrs = {
+      inherit libsForQt5;
+      inherit (pkgs) lib fetchurl;
+    };
+  in (lib.makeOverridable mkGear attrs);
+
+  plasmaMobileGear = let
+    mkPlamoGear = import ../applications/plasma-mobile;
+    attrs = {
+      inherit libsForQt5;
+      inherit (pkgs) lib fetchurl;
+    };
+  in (lib.makeOverridable mkPlamoGear attrs);
+
+  mauiPackages = let
+    mkMaui = import ../applications/maui;
+    attrs = {
+      inherit libsForQt5;
+      inherit (pkgs) lib fetchurl;
+    };
+  in (lib.makeOverridable mkMaui attrs);
+
+  noExtraAttrs = set:
+    lib.attrsets.removeAttrs set [ "extend" "override" "overrideScope" "overrideScope'" "overrideDerivation" ]
+    // { __attrsFailEvaluation = true; };
+
+in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGear // mauiPackages // qt5 // {
+
+  inherit kdeFrameworks plasmaMobileGear plasma5 kdeGear mauiPackages qt5;
+
+  # Alias for backwards compatibility. Added 2021-05-07.
+  kdeApplications = kdeGear;
+
+  ### LIBRARIES
+
+  accounts-qml-module = callPackage ../development/libraries/accounts-qml-module { };
+
+  accounts-qt = callPackage ../development/libraries/accounts-qt { };
+
+  alkimia = callPackage ../development/libraries/alkimia { };
+
+  applet-window-appmenu = callPackage ../development/libraries/applet-window-appmenu { };
+
+  applet-window-buttons = callPackage ../development/libraries/applet-window-buttons { };
+
+  appstream-qt = callPackage ../development/libraries/appstream/qt.nix { };
+
+  dxflib = callPackage ../development/libraries/dxflib {};
+
+  drumstick = callPackage ../development/libraries/drumstick { };
+
+  fcitx5-qt = callPackage ../tools/inputmethods/fcitx5/fcitx5-qt.nix { };
+
+  qgpgme = callPackage ../development/libraries/gpgme { };
+
+  grantlee = callPackage ../development/libraries/grantlee/5 { };
+
+  qtcurve = callPackage ../data/themes/qtcurve {};
+
+  herqq = callPackage ../development/libraries/herqq { };
+
+  kdb = callPackage ../development/libraries/kdb { };
+
+  kde2-decoration = callPackage ../data/themes/kde2 { };
+
+  kcolorpicker = callPackage ../development/libraries/kcolorpicker { };
+
+  kdiagram = callPackage ../development/libraries/kdiagram { };
+
+  kdsoap = callPackage ../development/libraries/kdsoap { };
+
+  kf5gpgmepp = callPackage ../development/libraries/kf5gpgmepp { };
+
+  kirigami-addons = libsForQt5.callPackage ../development/libraries/kirigami-addons { };
+
+  kimageannotator = callPackage ../development/libraries/kimageannotator { };
+
+  kproperty = callPackage ../development/libraries/kproperty { };
+
+  kpeoplevcard = callPackage ../development/libraries/kpeoplevcard { };
+
+  kreport = callPackage ../development/libraries/kreport { };
+
+  kquickimageedit = callPackage ../development/libraries/kquickimageedit { };
+
+  kuserfeedback = callPackage ../development/libraries/kuserfeedback { };
+
+  kweathercore = libsForQt5.callPackage ../development/libraries/kweathercore { };
+
+  ldutils = callPackage ../development/libraries/ldutils { };
+
+  libcommuni = callPackage ../development/libraries/libcommuni { };
+
+  libdbusmenu = callPackage ../development/libraries/libdbusmenu-qt/qt-5.5.nix { };
+
+  liblastfm = callPackage ../development/libraries/liblastfm { };
+
+  libopenshot = callPackage ../development/libraries/libopenshot {
+    stdenv = if pkgs.stdenv.isDarwin then pkgs.overrideSDK pkgs.stdenv "11.0" else pkgs.stdenv;
+  };
+
+  packagekit-qt = callPackage ../tools/package-management/packagekit/qt.nix { };
+
+  libopenshot-audio = callPackage ../development/libraries/libopenshot-audio {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate AGL Cocoa Foundation;
+  };
+
+  libqglviewer = callPackage ../development/libraries/libqglviewer {
+    inherit (pkgs.darwin.apple_sdk.frameworks) AGL;
+  };
+
+  libqofono = callPackage ../development/libraries/libqofono { };
+
+  libqtav = callPackage ../development/libraries/libqtav { };
+
+  libqaccessibilityclient = callPackage ../development/libraries/libqaccessibilityclient { };
+
+  kpmcore = callPackage ../development/libraries/kpmcore { };
+
+  mapbox-gl-native = libsForQt5.callPackage ../development/libraries/mapbox-gl-native { };
+
+  mapbox-gl-qml = libsForQt5.callPackage ../development/libraries/mapbox-gl-qml { };
+
+  maplibre-gl-native = callPackage ../development/libraries/maplibre-gl-native { };
+
+  maui-core = libsForQt5.callPackage ../development/libraries/maui-core { };
+
+  mlt = pkgs.mlt.override {
+    enableQt = true;
+  };
+
+  phonon = callPackage ../development/libraries/phonon { };
+
+  phonon-backend-gstreamer = callPackage ../development/libraries/phonon/backends/gstreamer.nix { };
+
+  phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix { };
+
+  plasma-wayland-protocols = callPackage ../development/libraries/plasma-wayland-protocols { };
+
+  polkit-qt = callPackage ../development/libraries/polkit-qt-1 { };
+
+  poppler = callPackage ../development/libraries/poppler {
+    lcms = pkgs.lcms2;
+    qt5Support = true;
+    suffix = "qt5";
+  };
+
+  pulseaudio-qt = callPackage ../development/libraries/pulseaudio-qt { };
+
+  qca-qt5 = callPackage ../development/libraries/qca-qt5 {
+    stdenv = if pkgs.stdenv.isDarwin then pkgs.overrideSDK pkgs.stdenv "11.0" else pkgs.stdenv;
+    inherit (libsForQt5) qtbase;
+  };
+
+  qcoro = callPackage ../development/libraries/qcoro { };
+
+  qcsxcad = callPackage ../development/libraries/science/electronics/qcsxcad { };
+
+  qjson = callPackage ../development/libraries/qjson { };
+
+  qmltermwidget = callPackage ../development/libraries/qmltermwidget {
+    inherit (pkgs.darwin.apple_sdk.libs) utmp;
+  };
+
+  qmlbox2d = callPackage ../development/libraries/qmlbox2d { };
+
+  qoauth = callPackage ../development/libraries/qoauth { };
+
+  qt5ct = callPackage ../tools/misc/qt5ct { };
+
+  qtdbusextended = callPackage ../development/libraries/qtdbusextended { };
+
+  qtfeedback = callPackage ../development/libraries/qtfeedback { };
+
+  qtforkawesome = callPackage ../development/libraries/qtforkawesome { };
+
+  qtutilities = callPackage ../development/libraries/qtutilities { };
+
+  qtinstaller = callPackage ../development/libraries/qtinstaller { };
+
+  qtkeychain = callPackage ../development/libraries/qtkeychain {
+    stdenv = if pkgs.stdenv.isDarwin then pkgs.overrideSDK pkgs.stdenv "11.0" else pkgs.stdenv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  qtmpris = callPackage ../development/libraries/qtmpris { };
+
+  qtpbfimageplugin = callPackage ../development/libraries/qtpbfimageplugin { };
+
+  qtstyleplugins = callPackage ../development/libraries/qtstyleplugins { };
+
+  qtstyleplugin-kvantum = callPackage ../development/libraries/qtstyleplugin-kvantum { };
+
+  quazip = callPackage ../development/libraries/quazip { };
+
+  qscintilla = callPackage ../development/libraries/qscintilla { };
+
+  qwt = callPackage ../development/libraries/qwt/default.nix { };
+
+  qwt6_1 = callPackage ../development/libraries/qwt/6_1.nix { };
+
+  qxlsx = callPackage ../development/libraries/qxlsx { };
+
+  qzxing = callPackage ../development/libraries/qzxing { };
+
+  soqt = callPackage ../development/libraries/soqt { };
+
+  telepathy = callPackage ../development/libraries/telepathy/qt { };
+
+  qtwebkit-plugins = callPackage ../development/libraries/qtwebkit-plugins { };
+
+  # Not a library, but we do want it to be built for every qt version there
+  # is, to allow users to choose the right build if needed.
+  sddm = callPackage ../applications/display-managers/sddm { };
+
+  signond = callPackage ../development/libraries/signond {};
+
+  soundkonverter = callPackage ../applications/audio/soundkonverter {};
+
+  xp-pen-deco-01-v2-driver = callPackage ../os-specific/linux/xp-pen-drivers/deco-01-v2 { };
+
+  xp-pen-g430-driver = callPackage ../os-specific/linux/xp-pen-drivers/g430 { };
+
+  yuview = callPackage ../applications/video/yuview { };
+}) // lib.optionalAttrs pkgs.config.allowAliases {
+  # Convert to a throw on 01-01-2023.
+  # Warnings show up in various cli tool outputs, throws do not.
+  # Remove completely before 24.05
+  overrideScope' = lib.warn "libsForQt5 now uses makeScopeWithSplicing which does not have \"overrideScope'\", use \"overrideScope\"." self.overrideScope;
+}));
+}
diff --git a/nixpkgs/pkgs/top-level/qt6-packages.nix b/nixpkgs/pkgs/top-level/qt6-packages.nix
new file mode 100644
index 000000000000..1b6e1ce4c1c7
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/qt6-packages.nix
@@ -0,0 +1,67 @@
+# Qt packages set.
+#
+# Attributes in this file are packages requiring Qt and will be made available
+# for every Qt version. Qt applications are called from `all-packages.nix` via
+# this file.
+
+{ lib
+, __splicedPackages
+, makeScopeWithSplicing'
+, generateSplicesForMkScope
+, stdenv
+, pkgsHostTarget
+}:
+
+let
+  pkgs = __splicedPackages;
+  # qt6 set should not be pre-spliced to prevent spliced packages being a part of an unspliced set
+  # 'pkgsCross.aarch64-multiplatform.pkgsBuildTarget.targetPackages.qt6Packages.qtbase' should not have a `__spliced` but if qt6 is pre-spliced then it will have one.
+  # pkgsHostTarget == pkgs
+  qt6 = pkgsHostTarget.qt6;
+in
+
+makeScopeWithSplicing' {
+  otherSplices = generateSplicesForMkScope "qt6Packages";
+  f = (self: let
+    inherit (self) callPackage;
+    noExtraAttrs = set: lib.attrsets.removeAttrs set [ "extend" "override" "overrideScope" "overrideScope'" "overrideDerivation" ];
+  in (noExtraAttrs qt6) // {
+  inherit stdenv;
+
+  # LIBRARIES
+
+  qt6ct = callPackage ../tools/misc/qt6ct { };
+
+  qt6gtk2 = callPackage ../tools/misc/qt6gtk2 { };
+
+  qtkeychain = callPackage ../development/libraries/qtkeychain {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  qtpbfimageplugin = callPackage ../development/libraries/qtpbfimageplugin { };
+
+  qtstyleplugin-kvantum = callPackage ../development/libraries/qtstyleplugin-kvantum {
+    qt5Kvantum = pkgs.libsForQt5.qtstyleplugin-kvantum;
+  };
+
+  quazip = callPackage ../development/libraries/quazip { };
+
+  qscintilla = callPackage ../development/libraries/qscintilla { };
+
+  qxlsx = callPackage ../development/libraries/qxlsx { };
+
+  qzxing = callPackage ../development/libraries/qzxing { };
+
+  poppler = callPackage ../development/libraries/poppler {
+    lcms = pkgs.lcms2;
+    qt6Support = true;
+    suffix = "qt6";
+  };
+
+  } // lib.optionalAttrs pkgs.config.allowAliases {
+    # Convert to a throw on 01-01-2023.
+    # Warnings show up in various cli tool outputs, throws do not.
+    # Remove completely before 24.05
+    overrideScope' = lib.warn "qt6Packages now uses makeScopeWithSplicing which does not have \"overrideScope'\", use \"overrideScope\"." self.overrideScope;
+  });
+}
diff --git a/nixpkgs/pkgs/top-level/release-alternatives.nix b/nixpkgs/pkgs/top-level/release-alternatives.nix
new file mode 100644
index 000000000000..788f052eda52
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-alternatives.nix
@@ -0,0 +1,91 @@
+{ pkgsFun ? import ../..
+, lib ? import ../../lib
+, supportedSystems ? ["x86_64-linux"]
+, allowUnfree ? false }:
+
+let
+
+  # called BLAS here, but also tests LAPACK
+  blasUsers = [
+    # "julia_07" "julia_10" "julia_11" "julia_13" "octave" "octaveFull"
+    "fflas-ffpack" "linbox" "R" "ipopt" "hpl" "rspamd" "octopus"
+    "superlu" "suitesparse_5_3" "suitesparse_4_4"
+    "suitesparse_4_2" "scs" "scalapack" "petsc" "cholmod-extra"
+    "arpack" "qrupdate" "libcint" "iml" "globalarrays" "arrayfire" "armadillo"
+    "xfitter" "lammps" "plink-ng" "quantum-espresso" "siesta"
+    "siesta-mpi" "shogun" "calculix" "csdp" "getdp" "giac" "gmsh" "jags"
+    "lammps" "lammps-mpi"
+
+    # requires openblas
+    # "caffe" "mxnet" "flint" "sage" "sageWithDoc"
+
+    # broken
+    # "gnss-sdr" "octave-jit" "openmodelica" "torch"
+
+    # subpackages
+    ["pythonPackages" "numpy"] ["pythonPackages" "prox-tv"] ["pythonPackages" "scs"]
+    ["pythonPackages" "pysparse"] ["pythonPackages" "cvxopt"]
+    # ["pythonPackages" "fenics"]
+    ["rPackages" "slfm"] ["rPackages" "SamplerCompare"]
+    # ["rPackages" "EMCluster"]
+    # ["ocamlPackages" "lacaml"]
+    # ["ocamlPackages" "owl"]
+    ["haskellPackages" "bindings-levmar"]
+  ] ++ lib.optionals allowUnfree [ "magma" ];
+  blas64Users = [
+    "rspamd" "sundials" "suitesparse_5_3" "suitesparse_4_4"
+    "suitesparse_4_2" "petsc" "cholmod-extra"
+    "arpack" "qrupdate" "iml" "globalarrays" "arrayfire"
+    "lammps" "plink-ng" "quantum-espresso"
+    "calculix" "csdp" "getdp" "jags"
+    "lammps" "lammps-mpi"
+    # ["ocamlPackages" "lacaml"]
+    ["haskellPackages" "bindings-levmar"]
+  ] ++ lib.optionals allowUnfree [ "magma" ];
+  blasProviders = system: [ "openblasCompat" "lapack-reference" "openblas" ]
+    ++ lib.optionals (allowUnfree && system.isx86) ["mkl" "mkl64"];
+
+  blas64Providers = [ "mkl64" "openblas"];
+
+  mapListToAttrs = xs: f: builtins.listToAttrs (map (name: {
+    name = if builtins.isList name
+           then builtins.elemAt name (builtins.length name - 1)
+           else name;
+    value = f name;
+  }) xs);
+
+in
+
+{
+  blas = mapListToAttrs supportedSystems (system': let system = lib.systems.elaborate { system = system'; };
+    in mapListToAttrs (blasProviders system) (provider: let
+      isILP64 = builtins.elem provider (["mkl64"] ++ lib.optional system.is64bit "openblas");
+      pkgs = pkgsFun {
+        config = { inherit allowUnfree; };
+        system = system';
+        overlays = [(self: super: {
+          lapack = super.lapack.override {
+            lapackProvider = if provider == "mkl64"
+                             then super.mkl
+                             else builtins.getAttr provider super;
+            inherit isILP64;
+          };
+          blas = super.blas.override {
+            blasProvider = if provider == "mkl64"
+                           then super.mkl
+                           else builtins.getAttr provider super;
+            inherit isILP64;
+          };
+        })];
+      };
+    in mapListToAttrs (if builtins.elem provider blas64Providers
+                       then blas64Users else blasUsers)
+                      (attr: if builtins.isList attr
+                             then lib.getAttrFromPath attr pkgs
+                             else builtins.getAttr attr pkgs)
+
+        // { recurseForDerivations = true; })
+      // { recurseForDerivations = true; })
+    // { recurseForDerivations = true; };
+  recurseForDerivations = true;
+}
diff --git a/nixpkgs/pkgs/top-level/release-attrpaths-superset.nix b/nixpkgs/pkgs/top-level/release-attrpaths-superset.nix
new file mode 100644
index 000000000000..673b63a5ac34
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-attrpaths-superset.nix
@@ -0,0 +1,192 @@
+# This expression will, as efficiently as possible, dump a
+# *superset* of all attrpaths of derivations which might be
+# part of a release on *any* platform.
+#
+# Both this expression and what ofborg uses (release-outpaths.nix)
+# are essentially single-threaded (under the current cppnix
+# implementation).
+#
+# This expression runs much, much, much faster and uses much, much
+# less memory than the ofborg script by skipping the
+# platform-relevance checks.  The ofborg outpaths.nix script takes
+# half an hour on a 3ghz core and peaks at 60gbytes of memory; this
+# expression runs on the same machine in 44 seconds with peak memory
+# usage of 5gbytes.
+#
+# Once you have the list of attrnames you can split it up into
+# $NUM_CORES batches and run the platform checks separately for each
+# batch, in parallel.
+#
+# To dump the attrnames:
+#
+#   nix-instantiate --eval --strict --json pkgs/top-level/release-attrpaths-superset.nix -A names
+#
+{ lib ? import (path + "/lib")
+, trace ? false
+, enableWarnings ? true
+, checkMeta ? true
+, path ? ./../..
+}:
+let
+
+  # No release package attrpath may have any of these attrnames as
+  # its initial component.
+  #
+  # If you can find a way to remove any of these entries without
+  # causing CI to fail, please do so.
+  #
+  excluded-toplevel-attrs = {
+    # spliced packagesets
+    __splicedPackages = true;
+    pkgsBuildBuild = true;
+    pkgsBuildHost = true;
+    pkgsBuildTarget = true;
+    pkgsHostHost = true;
+    pkgsHostTarget = true;
+    pkgsTargetTarget = true;
+    buildPackages = true;
+    targetPackages = true;
+
+    # cross packagesets
+    pkgsLLVM = true;
+    pkgsMusl = true;
+    pkgsStatic = true;
+    pkgsCross = true;
+    pkgsi686Linux = true;
+  };
+
+  # No release package attrname may have any of these at a component
+  # anywhere in its attrpath.  These are the names of gigantic
+  # top-level attrsets that have leaked into so many sub-packagesets
+  # that it's easier to simply exclude them entirely.
+  #
+  # If you can find a way to remove any of these entries without
+  # causing CI to fail, please do so.
+  #
+  excluded-attrnames-at-any-depth = {
+    lib = true;
+    override = true;
+    __functor = true;
+    __functionArgs = true;
+    newScope = true;
+    scope = true;
+    pkgs = true;
+
+    buildHaskellPackages = true;
+    buildPackages = true;
+    generateOptparseApplicativeCompletions = true;
+
+    callPackage = true;
+    mkDerivation = true;
+    overrideDerivation = true;
+    overrideScope = true;
+    overrideScope' = true;
+
+    # Special case: lib/types.nix leaks into a lot of nixos-related
+    # derivations, and does not eval deeply.
+    type = true;
+  };
+
+  # __attrsFailEvaluation is a temporary workaround to get top-level
+  # eval to succeed (under builtins.tryEval) for the entire
+  # packageset, without deep invasve changes into individual
+  # packages.
+  #
+  # Now that CI has been added, ensuring that top-level eval will
+  # not be broken by any new commits, you should not add any new
+  # occurrences of __attrsFailEvaluation, and should remove them
+  # wherever you are able to (doing so will likely require deep
+  # adjustments within packages).  Once all of the uses of
+  # __attrsFailEvaluation are removed, it will be deleted from the
+  # routine below.  In the meantime,
+  #
+  # The intended semantics are that an attrpath rooted at pkgs is
+  # part of the (unfiltered) release jobset iff all of the following
+  # are true:
+  #
+  # 1. The first component of the attrpath is not in
+  #    `excluded-toplevel-attrs`
+  #
+  # 2. No attrname in the attrpath belongs to the list of forbidden
+  #    attrnames `excluded-attrnames-at-any-depth`
+  #
+  # 3. The attrpath leads to a value for which lib.isDerivation is true
+  #
+  # 4. No proper prefix of the attrpath has __attrsFailEvaluation=true
+  #
+  # 5. Any proper prefix of the attrpath at which lib.isDerivation
+  #    is true also has __recurseIntoDerivationForReleaseJobs=true.
+  #
+  # The last condition is unfortunately necessary because there are
+  # Hydra release jobnames which have proper prefixes which are
+  # attrnames of derivations (!).  We should probably restructure
+  # the job tree so that this is not the case.
+  #
+  justAttrNames = path: value:
+    let
+      attempt =
+        if lib.isDerivation value &&
+           # in some places we have *derivations* with jobsets as subattributes, ugh
+           !(value.__recurseIntoDerivationForReleaseJobs or false) then
+             [ path ]
+
+        # Even wackier case: we have meta.broken==true jobs with
+        # !meta.broken jobs as subattributes with license=unfree, and
+        # check-meta.nix won't throw an "unfree" failure because the
+        # enclosing derivation is marked broken.  Yeah.  Bonkers.
+        # We should just forbid jobsets enclosed by derivations.
+        else if lib.isDerivation value &&
+                !value.meta.available then []
+
+        else if !(lib.isAttrs value) then []
+        else if (value.__attrsFailEvaluation or false) then []
+        else lib.pipe value [
+          (builtins.mapAttrs
+            (name: value:
+              if excluded-attrnames-at-any-depth.${name} or false then [] else
+              (justAttrNames (path ++ [name]) value)))
+          builtins.attrValues
+          builtins.concatLists
+        ];
+
+      seq = builtins.deepSeq attempt attempt;
+      tried = builtins.tryEval seq;
+
+      result =
+        if tried.success
+        then tried.value
+        else if enableWarnings && path != [ "AAAAAASomeThingsFailToEvaluate" ]
+        then lib.warn "tryEval failed at: ${lib.concatStringsSep "." path}" []
+        else [];
+    in
+      if !trace
+      then result
+      else lib.trace "** ${lib.concatStringsSep "." path}" result;
+
+  unfiltered = import ./release-outpaths.nix {
+    inherit checkMeta;
+    attrNamesOnly = true;
+    inherit path;
+  };
+
+  filtered = lib.pipe unfiltered [
+    (pkgs: builtins.removeAttrs pkgs (builtins.attrNames excluded-toplevel-attrs))
+  ];
+
+  paths =
+    [
+      # I am not entirely sure why these three packages end up in
+      # the Hydra jobset.  But they do, and they don't meet the
+      # criteria above, so at the moment they are special-cased.
+      [ "pkgsLLVM" "stdenv" ]
+      [ "pkgsStatic" "stdenv" ]
+      [ "pkgsMusl" "stdenv" ]
+    ] ++ justAttrNames [] filtered;
+
+  names =
+    map (path: (lib.concatStringsSep "." path)) paths;
+
+in
+{
+  inherit paths names;
+}
diff --git a/nixpkgs/pkgs/top-level/release-cross.nix b/nixpkgs/pkgs/top-level/release-cross.nix
new file mode 100644
index 000000000000..3c6feba6b812
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-cross.nix
@@ -0,0 +1,257 @@
+/* This file defines some basic smoke tests for cross compilation.
+   Individual jobs can be tested by running:
+
+   $ nix-build pkgs/top-level/release-cross.nix -A <jobname>.<package> --arg supportedSystems '[builtins.currentSystem]'
+
+   e.g.
+
+   $ nix-build pkgs/top-level/release-cross.nix -A crossMingw32.nixUnstable --arg supportedSystems '[builtins.currentSystem]'
+
+   To build all of the bootstrapFiles bundles on every enabled platform, use:
+
+   $ nix-build --expr 'with import ./pkgs/top-level/release-cross.nix {supportedSystems = [builtins.currentSystem];}; builtins.mapAttrs (k: v: v.build) bootstrapTools'
+*/
+
+{ # The platforms *from* which we cross compile.
+  supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
+, # Strip most of attributes when evaluating to spare memory usage
+  scrubJobs ? true
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
+}:
+
+with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
+
+let
+  nativePlatforms = all;
+
+  embedded = {
+    buildPackages.binutils = nativePlatforms;
+    buildPackages.gcc = nativePlatforms;
+    libcCross = nativePlatforms;
+  };
+
+  common = {
+    buildPackages.binutils = nativePlatforms;
+    gmp = nativePlatforms;
+    libcCross = nativePlatforms;
+    nix = nativePlatforms;
+    nixUnstable = nativePlatforms;
+    mesa = nativePlatforms;
+    rustc = nativePlatforms;
+    cargo = nativePlatforms;
+  };
+
+  gnuCommon = lib.recursiveUpdate common {
+    buildPackages.gcc = nativePlatforms;
+    coreutils = nativePlatforms;
+    haskell.packages.ghcHEAD.hello = nativePlatforms;
+    haskellPackages.hello = nativePlatforms;
+  };
+
+  linuxCommon = lib.recursiveUpdate gnuCommon {
+    buildPackages.gdb = nativePlatforms;
+
+    bison = nativePlatforms;
+    busybox = nativePlatforms;
+    dropbear = nativePlatforms;
+    ed = nativePlatforms;
+    ncurses = nativePlatforms;
+    patch = nativePlatforms;
+  };
+
+  windowsCommon = lib.recursiveUpdate gnuCommon {
+    boehmgc = nativePlatforms;
+    guile_1_8 = nativePlatforms;
+    libffi = nativePlatforms;
+    libtool = nativePlatforms;
+    libunistring = nativePlatforms;
+    windows.wxMSW = nativePlatforms;
+    windows.mingw_w64_pthreads = nativePlatforms;
+  };
+
+  wasiCommon = {
+    gmp = nativePlatforms;
+    boehmgc = nativePlatforms;
+    hello = nativePlatforms;
+    zlib = nativePlatforms;
+  };
+
+  darwinCommon = {
+    buildPackages.binutils = darwin;
+  };
+
+  rpiCommon = linuxCommon // {
+    vim = nativePlatforms;
+    unzip = nativePlatforms;
+    ddrescue = nativePlatforms;
+    lynx = nativePlatforms;
+    patchelf = nativePlatforms;
+    buildPackages.binutils = nativePlatforms;
+    mpg123 = nativePlatforms;
+  };
+
+  # Enabled-but-unsupported platforms for which nix is known to build.
+  # We provide Hydra-built `nixStatic` for these platforms.  This
+  # allows users to bootstrap their own system without either (a)
+  # trusting binaries from a non-Hydra source or (b) having to fight
+  # with their host distribution's versions of nix's numerous
+  # build dependencies.
+  nixCrossStatic = {
+    nixStatic = linux;  # no need for buildPlatform=*-darwin
+  };
+
+in
+
+{
+  # These derivations from a cross package set's `buildPackages` should be
+  # identical to their vanilla equivalents --- none of these package should
+  # observe the target platform which is the only difference between those
+  # package sets.
+  ensureUnaffected = let
+    # Absurd values are fine here, as we are not building anything. In fact,
+    # there probably a good idea to try to be "more parametric" --- i.e. avoid
+    # any special casing.
+    crossSystem = {
+      config = "mips64el-apple-windows-gnu";
+      libc = "glibc";
+    };
+
+    # Converting to a string (drv path) before checking equality is probably a
+    # good idea lest there be some irrelevant pass-through debug attrs that
+    # cause false negatives.
+    testEqualOne = path: system: let
+      f = path: crossSystem: system: builtins.toString (lib.getAttrFromPath path (pkgsForCross crossSystem system));
+    in assertTrue (
+        f path null system
+        ==
+        f (["buildPackages"] ++ path) crossSystem system
+      );
+
+    testEqual = path: systems: forMatchingSystems systems (testEqualOne path);
+
+    mapTestEqual = lib.mapAttrsRecursive testEqual;
+
+  in mapTestEqual {
+    boehmgc = nativePlatforms;
+    libffi = nativePlatforms;
+    libiconv = nativePlatforms;
+    libtool = nativePlatforms;
+    zlib = nativePlatforms;
+    readline = nativePlatforms;
+    libxml2 = nativePlatforms;
+    guile = nativePlatforms;
+  };
+
+  crossIphone64 = mapTestOnCross lib.systems.examples.iphone64 darwinCommon;
+
+  crossIphone32 = mapTestOnCross lib.systems.examples.iphone32 darwinCommon;
+
+  /* Test some cross builds to the Sheevaplug */
+  crossSheevaplugLinux = mapTestOnCross lib.systems.examples.sheevaplug (linuxCommon // {
+    ubootSheevaplug = nativePlatforms;
+  });
+
+  /* Test some cross builds on 32 bit mingw-w64 */
+  crossMingw32 = mapTestOnCross lib.systems.examples.mingw32 windowsCommon;
+
+  /* Test some cross builds on 64 bit mingw-w64 */
+  crossMingwW64 = mapTestOnCross lib.systems.examples.mingwW64 windowsCommon;
+
+  /* Linux on mipsel */
+  fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
+  ben-nanonote = mapTestOnCross lib.systems.examples.ben-nanonote linuxCommon;
+
+  /* Javacript */
+  ghcjs = mapTestOnCross lib.systems.examples.ghcjs {
+    haskell.packages.ghcjs.hello = nativePlatforms;
+    haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms;
+    haskellPackages.hello = nativePlatforms;
+  };
+
+  /* Linux on Raspberrypi */
+  rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
+  rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
+
+  /* Linux on the Remarkable */
+  remarkable1 = mapTestOnCross lib.systems.examples.remarkable1 linuxCommon;
+  remarkable2 = mapTestOnCross lib.systems.examples.remarkable2 linuxCommon;
+
+  /* Linux on armv7l-hf */
+  armv7l-hf = mapTestOnCross lib.systems.examples.armv7l-hf-multiplatform linuxCommon;
+
+  pogoplug4 = mapTestOnCross lib.systems.examples.pogoplug4 linuxCommon;
+
+  /* Linux on aarch64 */
+  aarch64 = mapTestOnCross lib.systems.examples.aarch64-multiplatform linuxCommon;
+  aarch64-musl = mapTestOnCross lib.systems.examples.aarch64-multiplatform-musl linuxCommon;
+
+  /* Linux on RISCV */
+  riscv64 = mapTestOnCross lib.systems.examples.riscv64 linuxCommon;
+  riscv32 = mapTestOnCross lib.systems.examples.riscv32 linuxCommon;
+
+  /* Linux on LoongArch */
+  loongarch64-linux = mapTestOnCross lib.systems.examples.loongarch64-linux linuxCommon;
+
+  m68k = mapTestOnCross lib.systems.examples.m68k linuxCommon;
+  s390x = mapTestOnCross lib.systems.examples.s390x linuxCommon;
+
+  /* (Cross-compiled) Linux on x86 */
+  x86_64-musl = mapTestOnCross lib.systems.examples.musl64 linuxCommon;
+  x86_64-gnu = mapTestOnCross lib.systems.examples.gnu64 linuxCommon;
+  i686-musl = mapTestOnCross lib.systems.examples.musl32 linuxCommon;
+  i686-gnu = mapTestOnCross lib.systems.examples.gnu32 linuxCommon;
+
+  ppc64le = mapTestOnCross lib.systems.examples.powernv linuxCommon;
+  ppc64le-musl = mapTestOnCross lib.systems.examples.musl-power linuxCommon;
+
+  android64 = mapTestOnCross lib.systems.examples.aarch64-android-prebuilt linuxCommon;
+  android32 = mapTestOnCross lib.systems.examples.armv7a-android-prebuilt linuxCommon;
+
+  wasi32 = mapTestOnCross lib.systems.examples.wasi32 wasiCommon;
+
+  msp430 = mapTestOnCross lib.systems.examples.msp430 embedded;
+  mmix = mapTestOnCross lib.systems.examples.mmix embedded;
+  vc4 = mapTestOnCross lib.systems.examples.vc4 embedded;
+  or1k = mapTestOnCross lib.systems.examples.or1k embedded;
+  avr = mapTestOnCross lib.systems.examples.avr embedded;
+  arm-embedded = mapTestOnCross lib.systems.examples.arm-embedded embedded;
+  armhf-embedded = mapTestOnCross lib.systems.examples.armhf-embedded embedded;
+  aarch64-embedded = mapTestOnCross lib.systems.examples.aarch64-embedded embedded;
+  aarch64be-embedded = mapTestOnCross lib.systems.examples.aarch64be-embedded embedded;
+  powerpc-embedded = mapTestOnCross lib.systems.examples.ppc-embedded embedded;
+  powerpcle-embedded = mapTestOnCross lib.systems.examples.ppcle-embedded embedded;
+  i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded;
+  x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
+  riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded;
+  riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32-embedded embedded;
+  rx-embedded = mapTestOnCross lib.systems.examples.rx-embedded embedded;
+
+  x86_64-freebsd = mapTestOnCross lib.systems.examples.x86_64-freebsd common;
+  x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common;
+
+  # we test `embedded` instead of `linuxCommon` because very few packages
+  # successfully cross-compile to Redox so far
+  x86_64-redox = mapTestOnCross lib.systems.examples.x86_64-unknown-redox embedded;
+
+  /* Cross-built bootstrap tools for every supported platform */
+  bootstrapTools = let
+    tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; };
+    maintainers = [ lib.maintainers.dezgeg ];
+    mkBootstrapToolsJob = drv:
+      assert lib.elem drv.system supportedSystems;
+      hydraJob' (lib.addMetaAttrs { inherit maintainers; } drv);
+  in lib.mapAttrsRecursiveCond (as: !lib.isDerivation as) (name: mkBootstrapToolsJob)
+    # The `bootstrapTools.${platform}.bootstrapTools` derivation
+    # *unpacks* the bootstrap-files using their own `busybox` binary,
+    # so it will fail unless buildPlatform.canExecute hostPlatform.
+    # Unfortunately `bootstrapTools` also clobbers its own `system`
+    # attribute, so there is no way to detect this -- we must add it
+    # as a special case.  We filter the "test" attribute (only from
+     # *cross*-built bootstrapTools) for the same reason.
+    (builtins.mapAttrs (_: v: builtins.removeAttrs v ["bootstrapTools" "test"]) tools);
+
+  # Cross-built nixStatic for platforms for enabled-but-unsupported platforms
+  mips64el-nixCrossStatic = mapTestOnCross lib.systems.examples.mips64el-linux-gnuabi64 nixCrossStatic;
+  powerpc64le-nixCrossStatic = mapTestOnCross lib.systems.examples.powernv nixCrossStatic;
+}
diff --git a/nixpkgs/pkgs/top-level/release-cuda.nix b/nixpkgs/pkgs/top-level/release-cuda.nix
new file mode 100644
index 000000000000..c96f08af41bf
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-cuda.nix
@@ -0,0 +1,55 @@
+/*
+    Test CUDA packages.
+
+    This release file will not be tested on hydra.nixos.org
+    because it requires unfree software.
+
+    Test for example like this:
+
+        $ hydra-eval-jobs pkgs/top-level/release-cuda.nix --option restrict-eval false -I foo=. --arg nixpkgs '{ outPath = ./.; revCount = 0; shortRev = "aabbcc"; }'
+
+*/
+
+{ # The platforms for which we build Nixpkgs.
+  supportedSystems ? [
+    "x86_64-linux"
+  ]
+, # Attributes passed to nixpkgs.
+  nixpkgsArgs ? { config = { allowUnfree = true; inHydra = true; }; }
+}:
+
+with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
+with lib;
+
+let
+  # Package sets to evaluate
+  packageSets = [
+    "cudaPackages_10_0"
+    "cudaPackages_10_1"
+    "cudaPackages_10_2"
+    "cudaPackages_10"
+    "cudaPackages_11_0"
+    "cudaPackages_11_1"
+    "cudaPackages_11_2"
+    "cudaPackages_11_3"
+    "cudaPackages_11_4"
+    "cudaPackages_11_5"
+    "cudaPackages_11_6"
+    "cudaPackages_11"
+    "cudaPackages"
+  ];
+
+  evalPackageSet = pset: mapTestOn { ${pset} = packagePlatforms pkgs.${pset}; };
+
+  jobs = (mapTestOn ({
+    # Packages to evaluate
+    python3.pkgs.caffeWithCuda = linux;
+    python3.pkgs.jaxlibWithCuda = linux;
+    python3.pkgs.libgpuarray = linux;
+    python3.pkgs.tensorflowWithCuda = linux;
+    python3.pkgs.pyrealsense2WithCuda = linux;
+    python3.pkgs.torchWithCuda = linux;
+    python3.pkgs.jaxlib = linux;
+  }) // (genAttrs packageSets evalPackageSet));
+
+in jobs
diff --git a/nixpkgs/pkgs/top-level/release-haskell.nix b/nixpkgs/pkgs/top-level/release-haskell.nix
new file mode 100644
index 000000000000..f1b5645e52b6
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-haskell.nix
@@ -0,0 +1,681 @@
+/*
+  This is the Hydra jobset for the `haskell-updates` branch in Nixpkgs.
+  You can see the status of this jobset at
+  https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.
+
+  To debug this expression you can use `hydra-eval-jobs` from
+  `pkgs.hydra_unstable` which prints the jobset description
+  to `stdout`:
+
+  $ hydra-eval-jobs -I . pkgs/top-level/release-haskell.nix
+*/
+{ supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ] }:
+
+let
+
+  releaseLib = import ./release-lib.nix {
+    inherit supportedSystems;
+  };
+
+  inherit (releaseLib)
+    lib
+    mapTestOn
+    packagePlatforms
+    pkgs
+    ;
+
+  # Helper function which traverses a (nested) set
+  # of derivations produced by mapTestOn and flattens
+  # it to a list of derivations suitable to be passed
+  # to `releaseTools.aggregate` as constituents.
+  # Removes all non derivations from the input jobList.
+  #
+  # accumulateDerivations :: [ Either Derivation AttrSet ] -> [ Derivation ]
+  #
+  # > accumulateDerivations [ drv1 "string" { foo = drv2; bar = { baz = drv3; }; } ]
+  # [ drv1 drv2 drv3 ]
+  accumulateDerivations = jobList:
+    lib.concatMap (
+      attrs:
+        if lib.isDerivation attrs
+        then [ attrs ]
+        else lib.optionals (lib.isAttrs attrs) (accumulateDerivations (lib.attrValues attrs))
+    ) jobList;
+
+  # names of all subsets of `pkgs.haskell.packages`
+  #
+  # compilerNames looks like the following:
+  #
+  # ```
+  # {
+  #   ghc810 = "ghc810";
+  #   ghc8102Binary = "ghc8102Binary";
+  #   ghc8102BinaryMinimal = "ghc8102BinaryMinimal";
+  #   ghc8107 = "ghc8107";
+  #   ghc924 = "ghc924";
+  #   ...
+  # }
+  # ```
+  compilerNames = lib.mapAttrs (name: _: name) pkgs.haskell.packages;
+
+  # list of all compilers to test specific packages on
+  released = with compilerNames; [
+    ghc8107
+    ghc902
+    ghc924
+    ghc925
+    ghc926
+    ghc927
+    ghc928
+    ghc945
+    ghc946
+    ghc947
+    ghc962
+    ghc963
+    ghc981
+  ];
+
+  # packagePlatforms applied to `haskell.packages.*`
+  #
+  # This returns an attr set that looks like the following, where each Haskell
+  # package in the compiler attr set has its list of supported platforms as its
+  # value.
+  #
+  # ```
+  # {
+  #   ghc810 = {
+  #     conduit = [ ... ];
+  #     lens = [ "i686-cygwin" "x86_64-cygwin" ... "x86_64-windows" "i686-windows" ]
+  #     ...
+  #   };
+  #   ghc902 = { ... };
+  #   ...
+  # }
+  # ```
+  compilerPlatforms = lib.mapAttrs
+    (_: v: packagePlatforms v)
+    pkgs.haskell.packages;
+
+  # This function lets you specify specific packages
+  # which are to be tested on a list of specific GHC
+  # versions and returns a job set for all specified
+  # combinations.
+  #
+  # You can call versionedCompilerJobs like the following:
+  #
+  # ```
+  # versionedCompilerJobs {
+  #   ghc-tags = ["ghc902" "ghc924"];
+  # }
+  # ```
+  #
+  # This would produce an output like the following:
+  #
+  # ```
+  # {
+  #   haskell.packages = {
+  #     ghc884 = {};
+  #     ghc810 = {};
+  #     ghc902 = {
+  #       ghc-tags = {
+  #         aarch64-darwin = <derivation...>;
+  #         aarch64-linux = <derivation...>;
+  #         ...
+  #       };
+  #     };
+  #     ghc924 = {
+  #       ghc-tags = { ... };
+  #     };
+  #     ...
+  #   };
+  # }
+  # ```
+  versionedCompilerJobs = config: mapTestOn {
+    haskell.packages =
+      let
+        # Mapping function that takes an attrset of jobs, and
+        # removes all jobs that are not specified in config.
+        #
+        # For example, imagine a call to onlyConfigJobs like:
+        #
+        # ```
+        # onlyConfigJobs
+        #   "ghc902"
+        #   {
+        #     conduit = [ ... ];
+        #     lens = [ "i686-cygwin" "x86_64-cygwin" ... "x86_64-windows" "i686-windows" ];
+        #   }
+        # ```
+        #
+        # onlyConfigJobs pulls out only those jobs that are specified in config.
+        #
+        # For instance, if config is `{ lens = [ "ghc902" ]; }`, then the above
+        # example call to onlyConfigJobs will return:
+        #
+        # ```
+        # { lens = [ "i686-cygwin" "x86_64-cygwin" ... "x86_64-windows" "i686-windows" ]; }
+        # ```
+        #
+        # If config is `{ lens = [ "ghc8107" ]; }`, then the above example call
+        # to onlyConfigJobs returns `{}`.
+        #
+        # onlyConfigJobs will also remove all platforms from a job that are not
+        # supported by the GHC it is compiled with.
+        onlyConfigJobs = ghc: jobs:
+          let
+            configFilteredJobset =
+              lib.filterAttrs
+                (jobName: platforms: lib.elem ghc (config."${jobName}" or []))
+                jobs;
+
+            # Remove platforms from each job that are not supported by GHC.
+            # This is important so that we don't build jobs for platforms
+            # where GHC can't be compiled.
+            jobsetWithGHCPlatforms =
+              lib.mapAttrs
+                (_: platforms: lib.intersectLists jobs.ghc platforms)
+                configFilteredJobset;
+          in
+          jobsetWithGHCPlatforms;
+      in
+      lib.mapAttrs onlyConfigJobs compilerPlatforms;
+  };
+
+  # hydra jobs for `pkgs` of which we import a subset of
+  pkgsPlatforms = packagePlatforms pkgs;
+
+  # names of packages in an attribute set that are maintained
+  maintainedPkgNames = set: builtins.attrNames
+    (lib.filterAttrs (
+      _: v: builtins.length (v.meta.maintainers or []) > 0
+    ) set);
+
+  recursiveUpdateMany = builtins.foldl' lib.recursiveUpdate {};
+
+  # Remove multiple elements from a list at once.
+  #
+  # removeMany
+  #   :: [a]  -- list of elements to remove
+  #   -> [a]  -- list of elements from which to remove
+  #   -> [a]
+  #
+  # > removeMany ["aarch64-linux" "x86_64-darwin"] ["aarch64-linux" "x86_64-darwin" "x86_64-linux"]
+  # ["x86_64-linux"]
+  removeMany = itemsToRemove: list: lib.foldr lib.remove list itemsToRemove;
+
+  # Recursively remove platforms from the values in an attribute set.
+  #
+  # removePlatforms
+  #   :: [String]
+  #   -> AttrSet
+  #   -> AttrSet
+  #
+  # > attrSet = {
+  #     foo = ["aarch64-linux" "x86_64-darwin" "x86_64-linux"];
+  #     bar.baz = ["aarch64-linux" "x86_64-linux"];
+  #     bar.quux = ["aarch64-linux" "x86_64-darwin"];
+  #   }
+  # > removePlatforms ["aarch64-linux" "x86_64-darwin"] attrSet
+  # {
+  #   foo = ["x86_64-linux"];
+  #   bar = {
+  #     baz = ["x86_64-linux"];
+  #     quux = [];
+  #   };
+  # }
+  removePlatforms = platformsToRemove: packageSet:
+    lib.mapAttrsRecursive
+      (_: val:
+        if lib.isList val
+          then removeMany platformsToRemove val
+          else val
+      )
+      packageSet;
+
+  jobs = recursiveUpdateMany [
+    (mapTestOn {
+      haskellPackages = packagePlatforms pkgs.haskellPackages;
+      haskell.compiler = packagePlatforms pkgs.haskell.compiler // (lib.genAttrs [
+        "ghcjs"
+        "ghcjs810"
+      ] (ghcjsName: {
+        # We can't build ghcjs itself, since it exceeds 3GB (Hydra's output limit) due
+        # to the size of its bundled libs. We can however save users a bit of compile
+        # time by building the bootstrap ghcjs on Hydra. For this reason, we overwrite
+        # the ghcjs attributes in haskell.compiler with a reference to the bootstrap
+        # ghcjs attribute in their bootstrap package set (exposed via passthru) which
+        # would otherwise be ignored by Hydra.
+        bootGhcjs = (packagePlatforms pkgs.haskell.compiler.${ghcjsName}.passthru).bootGhcjs;
+      }));
+
+      tests.haskell = packagePlatforms pkgs.tests.haskell;
+
+      nixosTests = {
+        inherit (packagePlatforms pkgs.nixosTests)
+          agda
+          xmonad
+          xmonad-xdg-autostart
+        ;
+      };
+
+      agdaPackages = packagePlatforms pkgs.agdaPackages;
+
+      # top-level packages that depend on haskellPackages
+      inherit (pkgsPlatforms)
+        agda
+        arion
+        bench
+        bustle
+        blucontrol
+        cabal-install
+        cabal2nix
+        cachix
+        carp
+        cedille
+        client-ip-echo
+        darcs
+        dconf2nix
+        dhall
+        dhall-bash
+        dhall-docs
+        dhall-lsp-server
+        dhall-json
+        dhall-nix
+        diagrams-builder
+        elm2nix
+        emanote
+        fffuu
+        futhark
+        ghcid
+        git-annex
+        git-brunch
+        gitit
+        glirc
+        hadolint
+        haskell-ci
+        haskell-language-server
+        hasura-graphql-engine
+        hci
+        hercules-ci-agent
+        hinit
+        hedgewars
+        hledger
+        hledger-check-fancyassertions
+        hledger-iadd
+        hledger-interest
+        hledger-ui
+        hledger-web
+        hlint
+        hpack
+        # hyper-haskell  # depends on electron-10.4.7 which is marked as insecure
+        # hyper-haskell-server-with-packages # hyper-haskell-server is broken
+        icepeak
+        ihaskell
+        jacinda
+        jl
+        koka
+        krank
+        lambdabot
+        lhs2tex
+        madlang
+        mailctl
+        matterhorn
+        mueval
+        naproche
+        niv
+        nix-delegate
+        nix-deploy
+        nix-diff
+        nix-linter
+        nix-output-monitor
+        nix-script
+        nix-tree
+        nixfmt
+        nota
+        nvfetcher
+        ormolu
+        pandoc
+        petrinizer
+        place-cursor-at
+        pinboard-notes-backup
+        pretty-simple
+        shake
+        shellcheck
+        sourceAndTags
+        spacecookie
+        spago
+        splot
+        stack
+        stack2nix
+        stutter
+        stylish-haskell
+        taffybar
+        tamarin-prover
+        taskell
+        termonad
+        tldr-hs
+        tweet-hs
+        update-nix-fetchgit
+        uusi
+        uqm
+        uuagc
+        vaultenv
+        wstunnel
+        xmobar
+        xmonadctl
+        xmonad-with-packages
+        yi
+        zsh-git-prompt
+        ;
+
+      # Members of the elmPackages set that are Haskell derivations
+      elmPackages = {
+        inherit (pkgsPlatforms.elmPackages)
+          elm
+          elm-format
+          elm-instrument
+          elmi-to-json
+          ;
+      };
+
+      # GHCs linked to musl.
+      pkgsMusl.haskell.compiler = lib.recursiveUpdate
+        (packagePlatforms pkgs.pkgsMusl.haskell.compiler)
+        {
+          # remove musl ghc865Binary since it is known to be broken and
+          # causes an evaluation error on darwin.
+          # TODO: remove ghc865Binary altogether and use ghc8102Binary
+          ghc865Binary = {};
+
+          ghcjs = {};
+          ghcjs810 = {};
+        };
+
+      # Get some cache going for MUSL-enabled GHC.
+      pkgsMusl.haskellPackages =
+        removePlatforms
+          [
+            # pkgsMusl is compiled natively with musl.  It is not
+            # cross-compiled (unlike pkgsStatic).  We can only
+            # natively bootstrap GHC with musl on x86_64-linux because
+            # upstream doesn't provide a musl bindist for aarch64.
+            "aarch64-linux"
+
+            # musl only supports linux, not darwin.
+            "x86_64-darwin"
+            "aarch64-darwin"
+          ]
+          {
+            inherit (packagePlatforms pkgs.pkgsMusl.haskellPackages)
+              hello
+              lens
+              random
+              ;
+          };
+
+      # Test some statically linked packages to catch regressions
+      # and get some cache going for static compilation with GHC.
+      # Use integer-simple to avoid GMP linking problems (LGPL)
+      pkgsStatic =
+        removePlatforms
+          [
+            "aarch64-linux" # times out on Hydra
+
+            # Static doesn't work on darwin
+            "x86_64-darwin"
+            "aarch64-darwin"
+          ] {
+            haskellPackages = {
+              inherit (packagePlatforms pkgs.pkgsStatic.haskellPackages)
+                hello
+                lens
+                random
+                QuickCheck
+                cabal2nix
+                terminfo # isn't bundled for cross
+                xhtml # isn't bundled for cross
+              ;
+            };
+
+            haskell.packages.native-bignum.ghc928 = {
+              inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc928)
+                hello
+                lens
+                random
+                QuickCheck
+                cabal2nix
+                terminfo # isn't bundled for cross
+                xhtml # isn't bundled for cross
+              ;
+            };
+          };
+
+      pkgsCross.ghcjs =
+        removePlatforms
+          [
+            # Hydra output size of 3GB is exceeded
+            "aarch64-linux"
+          ]
+          {
+            haskellPackages = {
+              inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskellPackages)
+                ghc
+                hello
+              ;
+            };
+
+            haskell.packages.ghcHEAD = {
+              inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghcHEAD)
+                ghc
+                hello
+              ;
+            };
+          };
+    })
+    (versionedCompilerJobs {
+      # Packages which should be checked on more than the
+      # default GHC version. This list can be used to test
+      # the state of the package set with newer compilers
+      # and to confirm that critical packages for the
+      # package sets (like Cabal, jailbreak-cabal) are
+      # working as expected.
+      cabal-install = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      Cabal_3_10_2_1 = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      Cabal-syntax_3_10_1_0 = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      cabal2nix = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      cabal2nix-unstable = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      funcmp = released;
+      haskell-language-server = lib.subtractLists [
+        # Support ceased as of 2.3.0.0
+        compilerNames.ghc8107
+        # Not yet supported
+        compilerNames.ghc981
+      ] released;
+      hoogle = lib.subtractLists [
+        compilerNames.ghc962
+        compilerNames.ghc963
+        compilerNames.ghc981
+      ] released;
+      hlint = lib.subtractLists [
+        compilerNames.ghc962
+        compilerNames.ghc963
+        compilerNames.ghc981
+      ] released;
+      hpack = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      hsdns = released;
+      jailbreak-cabal = released;
+      language-nix = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      large-hashable = [
+        compilerNames.ghc928
+      ];
+      nix-paths = released;
+      titlecase = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      ghc-api-compat = [
+        compilerNames.ghc8107
+        compilerNames.ghc902
+      ];
+      ghc-bignum = [
+        compilerNames.ghc8107
+      ];
+      ghc-lib = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      ghc-lib-parser = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      ghc-lib-parser-ex = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      ghc-source-gen = [
+        # Feel free to remove these as they break,
+        # ghc-source-gen currently doesn't support GHC 9.4
+        compilerNames.ghc8107
+        compilerNames.ghc902
+        compilerNames.ghc928
+      ];
+      ghc-tags = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      hashable = lib.subtractLists [
+        compilerNames.ghc981
+      ] released;
+      primitive = released;
+      weeder = [
+        compilerNames.ghc8107
+        compilerNames.ghc902
+        compilerNames.ghc924
+        compilerNames.ghc925
+        compilerNames.ghc926
+        compilerNames.ghc927
+        compilerNames.ghc928
+        compilerNames.ghc945
+        compilerNames.ghc946
+        compilerNames.ghc947
+        compilerNames.ghc962
+        compilerNames.ghc963
+      ];
+    })
+    {
+      mergeable = pkgs.releaseTools.aggregate {
+        name = "haskell-updates-mergeable";
+        meta = {
+          description = ''
+            Critical haskell packages that should work at all times,
+            serves as minimum requirement for an update merge
+          '';
+          maintainers = lib.teams.haskell.members;
+        };
+        constituents =
+          let
+            # Filter out all Darwin derivations.  We don't want flakey Darwin
+            # derivations and flakey Hydra Darwin builders to block the
+            # mergeable job from successfully building.
+            filterInLinux =
+              lib.filter (drv: drv.system == "x86_64-linux" || drv.system == "aarch64-linux");
+          in
+          filterInLinux
+            (accumulateDerivations [
+              # haskell specific tests
+              jobs.tests.haskell
+              # important top-level packages
+              jobs.cabal-install
+              jobs.cabal2nix
+              jobs.cachix
+              jobs.darcs
+              jobs.haskell-language-server
+              jobs.hledger
+              jobs.hledger-ui
+              jobs.hpack
+              jobs.niv
+              jobs.pandoc
+              jobs.stack
+              jobs.stylish-haskell
+              # important haskell (library) packages
+              jobs.haskellPackages.cabal-plan
+              jobs.haskellPackages.distribution-nixpkgs
+              jobs.haskellPackages.hackage-db
+              jobs.haskellPackages.xmonad
+              jobs.haskellPackages.xmonad-contrib
+              # haskell packages maintained by @peti
+              # imported from the old hydra jobset
+              jobs.haskellPackages.hopenssl
+              jobs.haskellPackages.hsemail
+              jobs.haskellPackages.hsyslog
+            ]);
+      };
+      maintained = pkgs.releaseTools.aggregate {
+        name = "maintained-haskell-packages";
+        meta = {
+          description = "Aggregate jobset of all haskell packages with a maintainer";
+          maintainers = lib.teams.haskell.members;
+        };
+        constituents = accumulateDerivations
+          (builtins.map
+            (name: jobs.haskellPackages."${name}")
+            (maintainedPkgNames pkgs.haskellPackages));
+      };
+
+      muslGHCs = pkgs.releaseTools.aggregate {
+        name = "haskell-pkgsMusl-ghcs";
+        meta = {
+          description = "GHCs built with musl";
+          maintainers = with lib.maintainers; [
+            nh2
+          ];
+        };
+        constituents = accumulateDerivations [
+          jobs.pkgsMusl.haskell.compiler.ghc8102Binary
+          jobs.pkgsMusl.haskell.compiler.ghc8107Binary
+          jobs.pkgsMusl.haskell.compiler.ghc8107
+          jobs.pkgsMusl.haskell.compiler.ghc902
+          jobs.pkgsMusl.haskell.compiler.ghc924
+          jobs.pkgsMusl.haskell.compiler.ghc925
+          jobs.pkgsMusl.haskell.compiler.ghc926
+          jobs.pkgsMusl.haskell.compiler.ghc927
+          jobs.pkgsMusl.haskell.compiler.ghc928
+          jobs.pkgsMusl.haskell.compiler.ghcHEAD
+          jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghc924
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghc925
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghc926
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghc927
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghc928
+          jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
+        ];
+      };
+
+      staticHaskellPackages = pkgs.releaseTools.aggregate {
+        name = "static-haskell-packages";
+        meta = {
+          description = "Static haskell builds using the pkgsStatic infrastructure";
+          maintainers = [
+            lib.maintainers.sternenseemann
+            lib.maintainers.rnhmjoj
+          ];
+        };
+        constituents = accumulateDerivations [
+          jobs.pkgsStatic.haskellPackages
+          jobs.pkgsStatic.haskell.packages.native-bignum.ghc928
+        ];
+      };
+    }
+  ];
+
+in jobs
diff --git a/nixpkgs/pkgs/top-level/release-lib.nix b/nixpkgs/pkgs/top-level/release-lib.nix
new file mode 100644
index 000000000000..38e6f8072776
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-lib.nix
@@ -0,0 +1,163 @@
+{ supportedSystems
+, packageSet ? (import ../..)
+, scrubJobs ? true
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
+}:
+
+let
+  lib = import ../../lib;
+in with lib;
+
+rec {
+
+  pkgs = packageSet (lib.recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs);
+  inherit lib;
+
+
+  hydraJob' = if scrubJobs then hydraJob else id;
+
+
+  /* !!! Hack: poor man's memoisation function.  Necessary to prevent
+     Nixpkgs from being evaluated again and again for every
+     job/platform pair. */
+  mkPkgsFor = crossSystem: let
+    packageSet' = args: packageSet (args // { inherit crossSystem; } // nixpkgsArgs);
+
+    pkgs_x86_64_linux = packageSet' { system = "x86_64-linux"; };
+    pkgs_i686_linux = packageSet' { system = "i686-linux"; };
+    pkgs_aarch64_linux = packageSet' { system = "aarch64-linux"; };
+    pkgs_riscv64_linux = packageSet' { system = "riscv64-linux"; };
+    pkgs_aarch64_darwin = packageSet' { system = "aarch64-darwin"; };
+    pkgs_armv6l_linux = packageSet' { system = "armv6l-linux"; };
+    pkgs_armv7l_linux = packageSet' { system = "armv7l-linux"; };
+    pkgs_x86_64_darwin = packageSet' { system = "x86_64-darwin"; };
+    pkgs_x86_64_freebsd = packageSet' { system = "x86_64-freebsd"; };
+    pkgs_i686_freebsd = packageSet' { system = "i686-freebsd"; };
+    pkgs_i686_cygwin = packageSet' { system = "i686-cygwin"; };
+    pkgs_x86_64_cygwin = packageSet' { system = "x86_64-cygwin"; };
+
+    in system:
+      if system == "x86_64-linux" then pkgs_x86_64_linux
+      else if system == "i686-linux" then pkgs_i686_linux
+      else if system == "aarch64-linux" then pkgs_aarch64_linux
+      else if system == "riscv64-linux" then pkgs_riscv64_linux
+      else if system == "aarch64-darwin" then pkgs_aarch64_darwin
+      else if system == "armv6l-linux" then pkgs_armv6l_linux
+      else if system == "armv7l-linux" then pkgs_armv7l_linux
+      else if system == "x86_64-darwin" then pkgs_x86_64_darwin
+      else if system == "x86_64-freebsd" then pkgs_x86_64_freebsd
+      else if system == "i686-freebsd" then pkgs_i686_freebsd
+      else if system == "i686-cygwin" then pkgs_i686_cygwin
+      else if system == "x86_64-cygwin" then pkgs_x86_64_cygwin
+      else abort "unsupported system type: ${system}";
+
+  pkgsFor = pkgsForCross null;
+
+
+  # More poor man's memoisation
+  pkgsForCross = let
+    examplesByConfig = lib.flip lib.mapAttrs'
+      lib.systems.examples
+      (_: crossSystem: nameValuePair crossSystem.config {
+        inherit crossSystem;
+        pkgsFor = mkPkgsFor crossSystem;
+      });
+    native = mkPkgsFor null;
+  in crossSystem: let
+    candidate = examplesByConfig.${crossSystem.config} or null;
+  in if crossSystem == null
+      then native
+    else if candidate != null && lib.matchAttrs crossSystem candidate.crossSystem
+      then candidate.pkgsFor
+    else mkPkgsFor crossSystem; # uncached fallback
+
+
+  # Given a list of 'meta.platforms'-style patterns, return the sublist of
+  # `supportedSystems` containing systems that matches at least one of the given
+  # patterns.
+  #
+  # This is written in a funny way so that we only elaborate the systems once.
+  supportedMatches = let
+      supportedPlatforms = map
+        (system: lib.systems.elaborate { inherit system; })
+        supportedSystems;
+    in metaPatterns: let
+      anyMatch = platform:
+        lib.any (lib.meta.platformMatch platform) metaPatterns;
+      matchingPlatforms = lib.filter anyMatch supportedPlatforms;
+    in map ({ system, ...}: system) matchingPlatforms;
+
+
+  assertTrue = bool:
+    if bool
+    then pkgs.runCommand "evaluated-to-true" {} "touch $out"
+    else pkgs.runCommand "evaluated-to-false" {} "false";
+
+
+  /* The working or failing mails for cross builds will be sent only to
+     the following maintainers, as most package maintainers will not be
+     interested in the result of cross building a package. */
+  crossMaintainers = [ maintainers.viric ];
+
+
+  # Generate attributes for all supported systems.
+  forAllSystems = genAttrs supportedSystems;
+
+
+  # Generate attributes for all systems matching at least one of the given
+  # patterns
+  forMatchingSystems = metaPatterns: genAttrs (supportedMatches metaPatterns);
+
+
+  /* Build a package on the given set of platforms.  The function `f'
+     is called for each supported platform with Nixpkgs for that
+     platform as an argument .  We return an attribute set containing
+     a derivation for each supported platform, i.e. ‘{ x86_64-linux =
+     f pkgs_x86_64_linux; i686-linux = f pkgs_i686_linux; ... }’. */
+  testOn = testOnCross null;
+
+
+  /* Similar to the testOn function, but with an additional
+     'crossSystem' parameter for packageSet', defining the target
+     platform for cross builds. */
+  testOnCross = crossSystem: metaPatterns: f: forMatchingSystems metaPatterns
+    (system: hydraJob' (f (pkgsForCross crossSystem system)));
+
+
+  /* Given a nested set where the leaf nodes are lists of platforms,
+     map each leaf node to `testOn [platforms...] (pkgs:
+     pkgs.<attrPath>)'. */
+  mapTestOn = _mapTestOnHelper id null;
+
+
+  _mapTestOnHelper = f: crossSystem: mapAttrsRecursive
+    (path: metaPatterns: testOnCross crossSystem metaPatterns
+      (pkgs: f (getAttrFromPath path pkgs)));
+
+
+  /* Similar to the testOn function, but with an additional 'crossSystem'
+   * parameter for packageSet', defining the target platform for cross builds,
+   * and triggering the build of the host derivation. */
+  mapTestOnCross = _mapTestOnHelper
+    (addMetaAttrs { maintainers = crossMaintainers; });
+
+
+  /* Recursively map a (nested) set of derivations to an isomorphic
+     set of meta.platforms values. */
+  packagePlatforms = mapAttrs (name: value:
+      if isDerivation value then
+        value.meta.hydraPlatforms
+          or (lib.subtractLists (value.meta.badPlatforms or [])
+               (value.meta.platforms or [ "x86_64-linux" ]))
+      else if value.recurseForDerivations or false || value.recurseForRelease or false then
+        packagePlatforms value
+      else
+        []
+    );
+
+
+  /* Common platform groups on which to test packages. */
+  inherit (platforms) unix linux darwin cygwin all mesaPlatforms;
+
+}
diff --git a/nixpkgs/pkgs/top-level/release-outpaths.nix b/nixpkgs/pkgs/top-level/release-outpaths.nix
new file mode 100644
index 000000000000..5c433fa542e0
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-outpaths.nix
@@ -0,0 +1,87 @@
+#!/usr/bin/env nix-shell
+# When using as a callable script, passing `--argstr path some/path` overrides $PWD.
+#!nix-shell -p nix -i "nix-env -qaP --no-name --out-path --arg checkMeta true -f pkgs/top-level/release-outpaths.nix"
+
+# Vendored from:
+#   https://raw.githubusercontent.com/NixOS/ofborg/74f38efa7ef6f0e8e71ec3bfc675ae4fb57d7491/ofborg/src/outpaths.nix
+{ checkMeta
+, includeBroken ? true  # set this to false to exclude meta.broken packages from the output
+, path ? ./../..
+
+# used by pkgs/top-level/release-attrnames-superset.nix
+, attrNamesOnly ? false
+
+# Set this to `null` to build for builtins.currentSystem only
+, systems ? [
+    "aarch64-linux"
+    "aarch64-darwin"
+    #"i686-linux"  # !!!
+    "x86_64-linux"
+    "x86_64-darwin"
+  ]
+}:
+let
+  lib = import (path + "/lib");
+  hydraJobs = import (path + "/pkgs/top-level/release.nix")
+    # Compromise: accuracy vs. resources needed for evaluation.
+    {
+      inherit attrNamesOnly;
+      supportedSystems =
+        if systems == null
+        then [ builtins.currentSystem ]
+        else systems;
+      nixpkgsArgs = {
+        config = {
+          allowAliases = false;
+          allowBroken = includeBroken;
+          allowUnfree = false;
+          allowInsecurePredicate = x: true;
+          checkMeta = checkMeta;
+
+          handleEvalIssue = reason: errormsg:
+            let
+              fatalErrors = [
+                "unknown-meta"
+                "broken-outputs"
+              ];
+            in
+            if builtins.elem reason fatalErrors
+            then abort errormsg
+            # hydra does not build unfree packages, so tons of them are broken yet not marked meta.broken.
+            else if !includeBroken && builtins.elem reason [ "broken" "unfree" ]
+            then throw "broken"
+            else if builtins.elem reason [ "unsupported" ]
+            then throw "unsupported"
+            else true;
+
+          inHydra = true;
+        };
+      };
+    };
+  recurseIntoAttrs = attrs: attrs // { recurseForDerivations = true; };
+
+  # hydraJobs leaves recurseForDerivations as empty attrmaps;
+  # that would break nix-env and we also need to recurse everywhere.
+  tweak = lib.mapAttrs
+    (name: val:
+      if name == "recurseForDerivations" then true
+      else if lib.isAttrs val && val.type or null != "derivation"
+      then recurseIntoAttrs (tweak val)
+      else val
+    );
+
+  # Some of these contain explicit references to platform(s) we want to avoid;
+  # some even (transitively) depend on ~/.nixpkgs/config.nix (!)
+  blacklist = [
+    "tarball"
+    "metrics"
+    "manual"
+    "darwin-tested"
+    "unstable"
+    "stdenvBootstrapTools"
+    "moduleSystem"
+    "lib-tests" # these just confuse the output
+  ];
+
+in
+tweak (builtins.removeAttrs hydraJobs blacklist)
diff --git a/nixpkgs/pkgs/top-level/release-python.nix b/nixpkgs/pkgs/top-level/release-python.nix
new file mode 100644
index 000000000000..bc54860d45f6
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-python.nix
@@ -0,0 +1,58 @@
+/*
+   test for example like this
+   $ hydra-eval-jobs pkgs/top-level/release-python.nix
+*/
+
+{ # The platforms for which we build Nixpkgs.
+  supportedSystems ? [
+    "aarch64-linux"
+    "x86_64-linux"
+  ]
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = {
+    allowUnfree = false;
+    inHydra = true;
+    permittedInsecurePackages = [
+      # Keep evaluating home-assistant, which is transitively affected
+      # by home-assistant-chip-core consuming OpenSSL 1.1. Affects roughly
+      # 800 jobs.
+      "openssl-1.1.1w"
+    ];
+  }; }
+}:
+
+with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
+with lib;
+
+let
+  packagePython = mapAttrs (name: value:
+    let res = builtins.tryEval (
+      if isDerivation value then
+        value.meta.isBuildPythonPackage or []
+      else if value.recurseForDerivations or false || value.recurseForRelease or false || value.__recurseIntoDerivationForReleaseJobs or false then
+        packagePython value
+      else
+        []);
+    in lib.optionals res.success res.value
+    );
+
+  jobs = {
+    lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
+    pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
+
+    tested = pkgs.releaseTools.aggregate {
+      name = "python-tested";
+      meta.description = "Release-critical packages from the python package sets";
+      constituents = [
+        jobs.nixos-render-docs.x86_64-linux              # Used in nixos manual
+        jobs.remarshal.x86_64-linux                      # Used in pkgs.formats helper
+        jobs.python311Packages.buildcatrust.x86_64-linux # Used in pkgs.cacert
+        jobs.python311Packages.colorama.x86_64-linux     # Used in nixos test-driver
+        jobs.python311Packages.ptpython.x86_64-linux     # Used in nixos test-driver
+        jobs.python311Packages.requests.x86_64-linux     # Almost ubiquous package
+        jobs.python311Packages.sphinx.x86_64-linux       # Document creation for many packages
+      ];
+    };
+
+  } // (mapTestOn (packagePython pkgs));
+in jobs
diff --git a/nixpkgs/pkgs/top-level/release-r.nix b/nixpkgs/pkgs/top-level/release-r.nix
new file mode 100644
index 000000000000..4c715a7786d6
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-r.nix
@@ -0,0 +1,13 @@
+/*
+  This is the Hydra jobset for the `r-updates` branch in Nixpkgs.
+  The jobset can be tested by:
+
+  $ hydra-eval-jobs -I . pkgs/top-level/release-r.nix
+*/
+{ supportedSystems ? [ "x86_64-linux" "aarch64-linux" ] }:
+
+with import ./release-lib.nix { inherit supportedSystems; };
+
+mapTestOn {
+  rPackages = packagePlatforms pkgs.rPackages;
+}
diff --git a/nixpkgs/pkgs/top-level/release-small.nix b/nixpkgs/pkgs/top-level/release-small.nix
new file mode 100644
index 000000000000..a8ef5bc49667
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-small.nix
@@ -0,0 +1,152 @@
+/* A small release file, with few packages to be built.  The aim is to reduce
+   the load on Hydra when testing the `stdenv-updates' branch. */
+
+{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
+, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ]
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
+}:
+
+with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
+
+{
+
+  tarball = import ./make-tarball.nix {
+    inherit nixpkgs supportedSystems;
+    officialRelease = false;
+  };
+
+} // (mapTestOn ({
+
+  aspell = all;
+  at = linux;
+  autoconf = all;
+  automake = all;
+  avahi = unix; # Cygwin builds fail
+  bash = all;
+  bashInteractive = all;
+  bc = all;
+  binutils = linux;
+  bind = linux;
+  bsdiff = all;
+  bzip2 = all;
+  cmake = all;
+  coreutils = all;
+  cpio = all;
+  cron = linux;
+  cups = linux;
+  dbus = linux;
+  diffutils = all;
+  e2fsprogs = linux;
+  emacs = linux;
+  file = all;
+  findutils = all;
+  flex = all;
+  gcc = all;
+  glibc = linux;
+  glibcLocales = linux;
+  gnugrep = all;
+  gnum4 = all;
+  gnumake = all;
+  gnupatch = all;
+  gnupg = linux;
+  gnuplot = unix; # Cygwin builds fail
+  gnused = all;
+  gnutar = all;
+  gnutls = linux;
+  grub = linux;
+  grub2 = linux;
+  guile = linux;  # tests fail on Cygwin
+  gzip = all;
+  hddtemp = linux;
+  hdparm = linux;
+  hello = all;
+  host = linux;
+  iana-etc = linux;
+  icewm = linux;
+  idutils = all;
+  inetutils = linux;
+  iputils = linux;
+  kvm = linux;
+  qemu = linux;
+  qemu_kvm = linux;
+  lapack-reference = linux;
+  less = all;
+  lftp = all;
+  libtool = all;
+  libtool_2 = all;
+  libxml2 = all;
+  libxslt = all;
+  lout = linux;
+  lsh = linux;
+  lsof = linux;
+  ltrace = linux;
+  lvm2 = linux;
+  lynx = linux;
+  xz = linux;
+  man = linux;
+  man-pages = linux;
+  mc = all;
+  mdadm = linux;
+  mesa = linux;
+  mingetty = linux;
+  mktemp = all;
+  monotone = linux;
+  mutt = linux;
+  mysql = linux;
+  # netcat broken on darwin
+  netcat = linux;
+  nfs-utils = linux;
+  nix = all;
+  nixUnstable = all;
+  nss_ldap = linux;
+  nssmdns = linux;
+  ntfs3g = linux;
+  ntp = linux;
+  openssh = linux;
+  openssl = all;
+  pan = linux;
+  pciutils = linux;
+  perl = all;
+  pkg-config = all;
+  pmccabe = linux;
+  procps = linux;
+  python3 = unix; # Cygwin builds fail
+  readline = all;
+  rlwrap = all;
+  rpcbind = linux;
+  rsync = linux;
+  screen = linux ++ darwin;
+  scrot = linux;
+  sdparm = linux;
+  smartmontools = all;
+  sqlite = unix; # Cygwin builds fail
+  squid = linux;
+  msmtp = linux;
+  stdenv = all;
+  strace = linux;
+  su = linux;
+  sudo = linux;
+  sysklogd = linux;
+  syslinux = ["i686-linux"];
+  tcl = linux;
+  tcpdump = linux;
+  texinfo = all;
+  time = linux;
+  tinycc = linux;
+  udev = linux;
+  unzip = all;
+  usbutils = linux;
+  util-linux = linux;
+  util-linuxMinimal = linux;
+  w3m = all;
+  webkitgtk = linux;
+  wget = all;
+  which = all;
+  wirelesstools = linux;
+  wpa_supplicant = linux;
+  xfsprogs = linux;
+  xkeyboard_config = linux;
+  zip = all;
+  tests-stdenv-gcc-stageCompare = all;
+} ))
diff --git a/nixpkgs/pkgs/top-level/release.nix b/nixpkgs/pkgs/top-level/release.nix
new file mode 100644
index 000000000000..f2b38b4a8964
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release.nix
@@ -0,0 +1,302 @@
+/* This file defines the builds that constitute the Nixpkgs.
+   Everything defined here ends up in the Nixpkgs channel.  Individual
+   jobs can be tested by running:
+
+   $ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
+
+   e.g.
+
+   $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
+*/
+{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
+, officialRelease ? false
+  # The platform doubles for which we build Nixpkgs.
+, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]
+  # The platform triples for which we build bootstrap tools.
+, bootstrapConfigs ? [
+    "aarch64-apple-darwin"
+    "aarch64-unknown-linux-gnu"
+    "aarch64-unknown-linux-musl"
+    "i686-unknown-linux-gnu"
+    "x86_64-apple-darwin"
+    "x86_64-unknown-linux-gnu"
+    "x86_64-unknown-linux-musl"
+  ]
+  # Strip most of attributes when evaluating to spare memory usage
+, scrubJobs ? true
+  # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+, nixpkgsArgs ? { config = {
+    allowUnfree = false;
+    inHydra = true;
+    permittedInsecurePackages = [
+      # *Exceptionally*, those packages will be cached with their *secure* dependents
+      # because they will reach EOL in the middle of the 23.05 release
+      # and it will be too much painful for our users to recompile them
+      # for no real reason.
+      # Remove them for 23.11.
+      "openssl-1.1.1w"
+    ];
+  }; }
+
+  # This flag, if set to true, will inhibit the use of `mapTestOn`
+  # and `release-lib.packagePlatforms`.  Generally, it causes the
+  # resulting tree of attributes to *not* have a ".${system}"
+  # suffixed upon every job name like Hydra expects.
+  #
+  # This flag exists mainly for use by
+  # pkgs/top-level/release-attrnames-superset.nix; see that file for
+  # full details.  The exact behavior of this flag may change; it
+  # should be considered an internal implementation detail of
+  # pkgs/top-level/.
+  #
+, attrNamesOnly ? false
+}:
+
+let release-lib = import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; }; in
+with release-lib;
+
+let
+
+  supportDarwin = lib.genAttrs [
+    "x86_64"
+    "aarch64"
+  ] (arch: builtins.elem "${arch}-darwin" supportedSystems);
+
+  nonPackageJobs =
+    { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
+
+      metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
+
+      manual = import ../../doc { inherit pkgs nixpkgs; };
+      lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
+      pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
+
+      darwin-tested = if supportDarwin.x86_64 then pkgs.releaseTools.aggregate
+        { name = "nixpkgs-darwin-${jobs.tarball.version}";
+          meta.description = "Release-critical builds for the Nixpkgs darwin channel";
+          constituents =
+            [ jobs.tarball
+              jobs.cabal2nix.x86_64-darwin
+              jobs.ghc.x86_64-darwin
+              jobs.git.x86_64-darwin
+              jobs.go.x86_64-darwin
+              jobs.mariadb.x86_64-darwin
+              jobs.nix.x86_64-darwin
+              jobs.nixpkgs-review.x86_64-darwin
+              jobs.nix-info.x86_64-darwin
+              jobs.nix-info-tested.x86_64-darwin
+              jobs.openssh.x86_64-darwin
+              jobs.openssl.x86_64-darwin
+              jobs.pandoc.x86_64-darwin
+              jobs.postgresql.x86_64-darwin
+              jobs.python3.x86_64-darwin
+              jobs.ruby.x86_64-darwin
+              jobs.rustc.x86_64-darwin
+              # blocking ofBorg CI 2020-02-28
+              # jobs.stack.x86_64-darwin
+              jobs.stdenv.x86_64-darwin
+              jobs.vim.x86_64-darwin
+              jobs.cachix.x86_64-darwin
+              jobs.darwin.linux-builder.x86_64-darwin
+
+              # UI apps
+              # jobs.firefox-unwrapped.x86_64-darwin
+              jobs.qt5.qtmultimedia.x86_64-darwin
+              jobs.inkscape.x86_64-darwin
+              jobs.gimp.x86_64-darwin
+              jobs.emacs.x86_64-darwin
+              jobs.wireshark.x86_64-darwin
+              jobs.transmission-gtk.x86_64-darwin
+
+              # Tests
+              /*
+              jobs.tests.cc-wrapper.default.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin
+              jobs.tests.stdenv-inputs.x86_64-darwin
+              jobs.tests.macOSSierraShared.x86_64-darwin
+              jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
+              */
+            ];
+        } else null;
+
+      unstable = pkgs.releaseTools.aggregate
+        { name = "nixpkgs-${jobs.tarball.version}";
+          meta.description = "Release-critical builds for the Nixpkgs unstable channel";
+          constituents =
+            [ jobs.tarball
+              jobs.metrics
+              jobs.manual
+              jobs.lib-tests
+              jobs.pkgs-lib-tests
+              jobs.stdenv.x86_64-linux
+              jobs.cargo.x86_64-linux
+              jobs.go.x86_64-linux
+              jobs.linux.x86_64-linux
+              jobs.nix.x86_64-linux
+              jobs.pandoc.x86_64-linux
+              jobs.python3.x86_64-linux
+              # Needed by contributors to test PRs (by inclusion of the PR template)
+              jobs.nixpkgs-review.x86_64-linux
+              # Needed for support
+              jobs.nix-info.x86_64-linux
+              jobs.nix-info-tested.x86_64-linux
+              # Ensure that X11/GTK are in order.
+              jobs.firefox-unwrapped.x86_64-linux
+              jobs.cachix.x86_64-linux
+
+              /*
+              TODO: re-add tests; context: https://github.com/NixOS/nixpkgs/commit/36587a587ab191eddd868179d63c82cdd5dee21b
+
+              jobs.tests.cc-wrapper.default.x86_64-linux
+              jobs.tests.cc-wrapper.gcc7Stdenv.x86_64-linux
+              jobs.tests.cc-wrapper.gcc8Stdenv.x86_64-linux
+
+              # broken see issue #40038
+
+              jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages_6.clang.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages_6.libcxx.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages_7.clang.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages_7.libcxx.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages_7.clang.x86_64-linux
+              jobs.tests.cc-wrapper.llvmPackages_7.libcxx.x86_64-linux
+              jobs.tests.cc-multilib-gcc.x86_64-linux
+              jobs.tests.cc-multilib-clang.x86_64-linux
+              jobs.tests.stdenv-inputs.x86_64-linux
+              jobs.tests.stdenv.hooks.patch-shebangs.x86_64-linux
+              */
+            ]
+            ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
+            ++ lib.optionals supportDarwin.x86_64 [
+              jobs.stdenv.x86_64-darwin
+              jobs.cargo.x86_64-darwin
+              jobs.cachix.x86_64-darwin
+              jobs.go.x86_64-darwin
+              jobs.python3.x86_64-darwin
+              jobs.nixpkgs-review.x86_64-darwin
+              jobs.nix.x86_64-darwin
+              jobs.nix-info.x86_64-darwin
+              jobs.nix-info-tested.x86_64-darwin
+              jobs.git.x86_64-darwin
+              jobs.mariadb.x86_64-darwin
+              jobs.vim.x86_64-darwin
+              jobs.inkscape.x86_64-darwin
+              jobs.qt5.qtmultimedia.x86_64-darwin
+              jobs.darwin.linux-builder.x86_64-darwin
+              /*
+              jobs.tests.cc-wrapper.default.x86_64-darwin
+              jobs.tests.cc-wrapper.gcc7Stdenv.x86_64-darwin
+              jobs.tests.cc-wrapper.gcc8Stdenv.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages_5.clang.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages_5.libcxx.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages_6.clang.x86_64-darwin
+              jobs.tests.cc-wrapper.llvmPackages_6.libcxx.x86_64-darwin
+              jobs.tests.stdenv-inputs.x86_64-darwin
+              jobs.tests.macOSSierraShared.x86_64-darwin
+              jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
+              */
+            ]
+            ++ lib.optionals supportDarwin.aarch64 [
+              jobs.stdenv.aarch64-darwin
+              jobs.cargo.aarch64-darwin
+              jobs.cachix.aarch64-darwin
+              jobs.go.aarch64-darwin
+              jobs.python3.aarch64-darwin
+              jobs.nixpkgs-review.aarch64-darwin
+              jobs.nix.aarch64-darwin
+              jobs.nix-info.aarch64-darwin
+              jobs.nix-info-tested.aarch64-darwin
+              jobs.git.aarch64-darwin
+              jobs.mariadb.aarch64-darwin
+              jobs.vim.aarch64-darwin
+              jobs.inkscape.aarch64-darwin
+              jobs.qt5.qtmultimedia.aarch64-darwin
+              jobs.darwin.linux-builder.aarch64-darwin
+              /* consider adding tests, as suggested above for x86_64-darwin */
+            ];
+        };
+
+      stdenvBootstrapTools = with lib;
+        genAttrs bootstrapConfigs (config:
+          if hasInfix "-linux-" config then
+            let
+              bootstrap = import ../stdenv/linux/make-bootstrap-tools.nix {
+                pkgs = import ../.. {
+                  localSystem = { inherit config; };
+                };
+              };
+            in {
+              inherit (bootstrap) dist test;
+            }
+          else if hasSuffix "-darwin" config then
+            let
+              bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
+                localSystem = { inherit config; };
+              };
+            in {
+              # Lightweight distribution and test
+              inherit (bootstrap) dist test;
+              # Test a full stdenv bootstrap from the bootstrap tools definition
+              # TODO: Re-enable once the new bootstrap-tools are in place.
+              #inherit (bootstrap.test-pkgs) stdenv;
+            }
+          else
+            abort "No bootstrap implementation for system: ${config}"
+        );
+    };
+
+  # Do not allow attribute collision between jobs inserted in
+  # 'nonPackageAttrs' and jobs pulled in from 'pkgs'.
+  # Conflicts usually cause silent job drops like in
+  #   https://github.com/NixOS/nixpkgs/pull/182058
+  jobs = let
+    packagePlatforms = if attrNamesOnly then lib.id else release-lib.packagePlatforms;
+    packageJobs = {
+      haskell.compiler = packagePlatforms pkgs.haskell.compiler;
+      haskellPackages = packagePlatforms pkgs.haskellPackages;
+      # Build selected packages (HLS) for multiple Haskell compilers to rebuild
+      # the cache after a staging merge
+      haskell.packages = lib.genAttrs [
+        # TODO: share this list between release.nix and release-haskell.nix
+        "ghc90"
+        "ghc92"
+        "ghc94"
+        "ghc96"
+      ] (compilerName: {
+        inherit (packagePlatforms pkgs.haskell.packages.${compilerName})
+          haskell-language-server;
+      });
+      idrisPackages = packagePlatforms pkgs.idrisPackages;
+      agdaPackages = packagePlatforms pkgs.agdaPackages;
+
+      pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
+      pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
+      pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
+
+      tests = packagePlatforms pkgs.tests;
+
+      # Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
+
+      #emacsPackages = packagePlatforms pkgs.emacsPackages;
+      #rPackages = packagePlatforms pkgs.rPackages;
+      ocamlPackages = { };
+      perlPackages = { };
+
+      darwin = packagePlatforms pkgs.darwin // {
+        xcode = {};
+      };
+    };
+    mapTestOn-packages =
+      if attrNamesOnly
+      then pkgs // packageJobs
+      else mapTestOn ((packagePlatforms pkgs) // packageJobs);
+  in
+    lib.attrsets.unionOfDisjoint
+      nonPackageJobs
+      mapTestOn-packages;
+
+in jobs
diff --git a/nixpkgs/pkgs/top-level/ruby-packages.nix b/nixpkgs/pkgs/top-level/ruby-packages.nix
new file mode 100644
index 000000000000..54e70b1936de
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/ruby-packages.nix
@@ -0,0 +1,4015 @@
+{
+  actioncable = {
+    dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05kl5kjvd5218nq9j6yfs3mw3bm21hdjixj6x3f5nzpmbg7inz4y";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  actionmailbox = {
+    dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbxllvna81clk9957dd3346aw53gp8kgw23qccca96szhhmcy5p";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07kfdadci4i9fpkvmxcpjr192ah5hi91rax47h9yabp29wpgzv73";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "nokogiri" "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qqs6hl42dy7c1hmnpxkzdk6qk22fgyjpr2ibi4yd9rlf58vm8pa";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  actiontext = {
+    dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d4f693b9jjwa0r39bhpci5i734cq102ibmig5pzxcsqadcl4bds";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jxk32mapfhla3a5wnixcfk38ndw2r4lqfsv13hmckn91wvc8h7m";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "188kaggslza03lgrgdz9m1vvcbmrj91nrmvnl5fl7c4vz8kpp1np";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  activemodel = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gvf1acnkisars8wci88cz8fns27r2ssbqk2lsp9r2a7rlhqgmrl";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "timeout"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d1bz6qq3982dbbdid4zn37rzrszvhxvb42vh4jfkr2fnzg0awvy";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  activestorage = {
+    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1knrpj89n0r7jynxasqv4mi650l5710rjnh4masfv170pnlzkc22";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  activesupport = {
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l6hmf99zgckpn812qfxfz60rbh0zixv1hxnxhjlg8942pvixn2v";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      type = "gem";
+    };
+    version = "2.8.5";
+  };
+  algoliasearch = {
+    dependencies = ["httpclient" "json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ly8zsgvih540xmxr098hsngv61cf119wf28q5hbvi1f7kgwvh96";
+      type = "gem";
+    };
+    version = "1.27.5";
+  };
+  ansi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ims9zfal4gs2wpx2m5rd8zsrl2k794d359shkrsgg3fhr2a22l";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  ast = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
+      type = "gem";
+    };
+    version = "2.4.2";
+  };
+  atk = {
+    dependencies = ["glib2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rqhn05qvfzr7d3d4kv4z8ssw04ggg28gfnq92adpxxvkl6wqkms";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  atomos = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  awesome_print = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9";
+      type = "gem";
+    };
+    version = "1.9.2";
+  };
+  backport = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xbzzjrgah0f8ifgd449kak2vyf30micpz6x2g82aipfv7ypsb4i";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  bacon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  benchmark = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wghmhwjzv4r9mdcny4xfz2h2cm7ci24md79rvy2x65r4i99k9sc";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07y615s8yldk3k13lmkhpk1k190lcqvmxmnjwgh4bzjan9xrc36y";
+      type = "gem";
+    };
+    version = "3.1.4";
+  };
+  bindata = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5";
+      type = "gem";
+    };
+    version = "2.4.15";
+  };
+  builder = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  byebug = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194";
+      type = "gem";
+    };
+    version = "11.1.3";
+  };
+  cairo = {
+    dependencies = ["native-package-installer" "pkg-config" "red-colors"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sm8wnvxz4r9iq79s295jsrvznvjpd0pagnh1pz3xfmc9qffi7yi";
+      type = "gem";
+    };
+    version = "1.17.12";
+  };
+  cairo-gobject = {
+    dependencies = ["cairo" "glib2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jk90pjw4a0fl8ridv63h2w5c5xa2w9ajbq7z02ii70qi2z9j4rm";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  camping = {
+    dependencies = ["mab" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q2a5x97pgnld0b8yziblp9fqkjyib4gfwv9gcyynyhswqwsldpf";
+      type = "gem";
+    };
+    version = "2.1.532";
+  };
+  certified = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1706p6p0a8adyvd943af2a3093xakvislgffw3v9dvp7j07dyk5a";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  CFPropertyList = {
+    dependencies = ["rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a36zn77yyibqsfpka0i8vgf3yv98ic2b9wwlbc29566y8wpa2bq";
+      type = "gem";
+    };
+    version = "3.0.6";
+  };
+  charlock_holmes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
+      type = "gem";
+    };
+    version = "0.7.7";
+  };
+  claide = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpqhc0kqjp1bh9b7ffc395l9gfls0337rrhmab4v46ykl45qg3d";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  clamp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08m0syh06bhx8dqn560ivjg96l5cs5s3l9jh2szsnlcdcyl9jsjg";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  cld3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rn46vga5c1ww2vkf4dbg0w5g4h0vwx9idvdz3284188q4ksfbmg";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  cocoapods = {
+    dependencies = ["addressable" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r2w719d5zfzl3wnc5npnjv4194b7gdh4vib09vifdm8yab14br3";
+      type = "gem";
+    };
+    version = "1.14.3";
+  };
+  cocoapods-acknowledgements = {
+    dependencies = ["cocoapods" "redcarpet" "xcodeproj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04gaijs4djjkynan06wyaxxz48db0czzfrhh95jn3r201k2ypa7k";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  cocoapods-art = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qxwlsqwg6wa2aa3acf4jvgi3vpxlpdj8qq35jyhkyl16n4hrr1b";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  cocoapods-browser = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mq9mcw3xnf2nqkmcjg874sx422dbmfa99vhw31c9jb0cd4j3m9p";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  cocoapods-clean = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16zy8xl94clblxivlcrw2jf3dnvmwlr6jni6kz74rnc8wj42sf1w";
+      type = "gem";
+    };
+    version = "0.0.1";
+  };
+  cocoapods-clean_build_phases_scripts = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0syya8l1kz36069y7cx4f37aihpmbm4yd5wvifs3j8qzz8bpxpfi";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  cocoapods-core = {
+    dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04qyzcwkwbm7l4kjp6m8g2pvsryfvsllwpqf0mxfnzwbdid40zwn";
+      type = "gem";
+    };
+    version = "1.14.3";
+  };
+  cocoapods-coverage = {
+    dependencies = ["cocoapods-testing" "slather"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zaid3awk470igr5yilx1wvj1jnh88fbjl11hp93a4qic7j3i6ca";
+      type = "gem";
+    };
+    version = "0.0.6";
+  };
+  cocoapods-deintegrate = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18pnng0lv5z6kpp8hnki0agdxx979iq6hxkfkglsyqzmir22lz2i";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  cocoapods-dependencies = {
+    dependencies = ["ruby-graphviz"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10ssv98af44698kp4w0wfdrc7x3ccf2w9dhcva6i7hwlffjvcsz3";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  cocoapods-deploy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qnhl54z0dqyn0sk7rgn3vwmfax0yr3sk2r464h888d2qjxz6v7j";
+      type = "gem";
+    };
+    version = "0.0.12";
+  };
+  cocoapods-disable-podfile-validations = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0csgcp2kkmciavnic1yrb8z405dg4lqkzdlw2zscahvggpwr0j2p";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  cocoapods-downloader = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ldnwwsx44i2xsdmsmyz9xrar19lfy5s5xslvral1p3674dvwvmv";
+      type = "gem";
+    };
+    version = "2.1";
+  };
+  cocoapods-expert-difficulty = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19shjj4kj9rqg1a3pax568q0w9rkq8jcba2mycvq0szbv7bw6pgl";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  cocoapods-fix-react-native = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jhgg3amman51hvk0x7h1xqqdb71kfmbzfziaip6fxkl7sjr43ix";
+      type = "gem";
+    };
+    version = "2019.09.17.15";
+  };
+  cocoapods-generate = {
+    dependencies = ["cocoapods-disable-podfile-validations"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0216rwc4r0z0a1gvckphn7x9qk7zn00ivc49kv0hgafmrmaf2wy3";
+      type = "gem";
+    };
+    version = "2.2.5";
+  };
+  cocoapods-git_url_rewriter = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cmyrj92d781pkq1b6qbvpmxvfx8k3l36cdqsi46w55icjm1jqbw";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  cocoapods-keys = {
+    dependencies = ["dotenv" "ruby-keychain"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zycjq1i3kqzpixngm1jp66r075yrb54qcd0xxxa8rmxngimqhff";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  cocoapods-open = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z9x1cqrz4zc6yd08clawi8gg7ip8vbhkh9lkrdkzw7i6lqyrp0j";
+      type = "gem";
+    };
+    version = "0.0.8";
+  };
+  cocoapods-plugins = {
+    dependencies = ["nap"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16na82sfyc8801qs1n22nwq486s4j7yj6rj7fcp8cbxmj371fpbj";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  cocoapods-search = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12amy0nknv09bvzix8bkmcjn996c50c4ms20v2dl7v8rcw73n4qv";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  cocoapods-testing = {
+    dependencies = ["xctasks"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03dqcz9pks7mbzq3zkfm2rzbjwkcwp8z3rip60d4pqs8b2bb61bg";
+      type = "gem";
+    };
+    version = "0.0.6";
+  };
+  cocoapods-trunk = {
+    dependencies = ["nap" "netrc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cgdx7z9psxxrsa13fk7qc9i6jskrwcafhrdz94avzia2y6dlnsz";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  cocoapods-try = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1znyp625rql37ivb5rk9fk9564cmax8icxfr041ysivpdrn98nql";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  cocoapods-try-release-fix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a7hbc5j0p507cyd9a0rd2mf2d525ia3gcnx7bdspxqnhl0a43bf";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  cocoapods-update-if-you-dare = {
+    dependencies = ["colored2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nqvywrbfxiagip2vl9kj71h39g4idq1lshkxl5bqh1hq57g4k9q";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  cocoapods-whitelist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dd9wik69yqi54r1mgmvi7gqzgzh7vw4nfwriknk1z7piwv6w22c";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  cocoapods-wholemodule = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03gr4r0aa9mrj8i27dd6l87jzq78sid3jbywmkazg3yrq6y38i21";
+      type = "gem";
+    };
+    version = "0.0.1";
+  };
+  coderay = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  coffee-script = {
+    dependencies = ["coffee-script-source" "execjs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  coffee-script-source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xfshhlz808f8639wc88wgls1mww35sid8rd55vn0a4yqajf4vh9";
+      type = "gem";
+    };
+    version = "1.11.1";
+  };
+  colorator = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  colored2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  commonmarker = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lb5slzbqrca49h0gaifg82xky5r7i9xgm4560pin1xl5fp15lzx";
+      type = "gem";
+    };
+    version = "0.23.10";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  connection_pool = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  crabstone = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "154g3l1flndm5pvnhjnrn47ndnsxvfm8y1kv4zhnwiys28pv40nb";
+      type = "gem";
+    };
+    version = "4.0.4";
+  };
+  crass = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  curb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lgga9ina9gnpp9ycj8lpqkc5hm5qlxb41s4pfg0w6fnnpgmairc";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  curses = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00y9g79lzfffxarj3rmhnkblsnyx7izx91mh8c1sdcs9y2pdfq53";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  daemons = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07cszb0zl8mqmwhc8a2yfg36vi6lbgrp4pa5bvmryrpcz9v6viwg";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  data_objects = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19fw1ckqc5f1wc4r72qrymy2k6cmd8azbxpn61ksbsjqhzc2bgqd";
+      type = "gem";
+    };
+    version = "0.10.17";
+  };
+  date = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
+      type = "gem";
+    };
+    version = "3.3.4";
+  };
+  dentaku = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ssmjs7x733n7x6zvcwkaq2rnl0sz1qslli19s730a7ny7pialqg";
+      type = "gem";
+    };
+    version = "3.4.2";
+  };
+  dep-selector-libgecode = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09frwp3np5c64y8g5rnbl46n7riknmdjprhndsh6zzajkjr9m3xj";
+      type = "gem";
+    };
+    version = "1.3.5";
+  };
+  diff-lcs = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  digest-sha3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x8fcwqn6b1l227w38l4hy6i28cpbfbp2yrmklgfy8nb7hq2k1gk";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  dip = {
+    dependencies = ["thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a5k4wj0ic2z1zrxyvhj1r1pv51qy0nslgbjf3rxkd720s00v29b";
+      type = "gem";
+    };
+    version = "7.7.0";
+  };
+  dnsruby = {
+    dependencies = ["simpleidn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17bjlic4ac9980vas3pgnhi5lkisq28vd730bhcg8jdh8xcp6r48";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  do_sqlite3 = {
+    dependencies = ["data_objects"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gxz54qjgwg6a2mkqpai28m0i5swbyxpr4qmh9x1nwf20lysrgcf";
+      type = "gem";
+    };
+    version = "0.10.17";
+  };
+  docile = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  domain_name = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
+      type = "gem";
+    };
+    version = "0.6.20231109";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565";
+      type = "gem";
+    };
+    version = "2.8.1";
+  };
+  drb = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  e2mmap = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  elftools = {
+    dependencies = ["bindata"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p96wj4sz3sfv9yxyl8z530554bkbf82vj24w6x7yf91qa1p8z6i";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  em-websocket = {
+    dependencies = ["eventmachine" "http_parser.rb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a66b0kjk6jx7pai9gc7i27zd0a128gy73nmas98gjz6wjyr4spm";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  erb-formatter = {
+    dependencies = ["syntax_tree"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hr6q367ngnjjlclhjx8gma98dndmk04bj1pap5p5sqarn8ic01x";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  erubi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7";
+      type = "gem";
+    };
+    version = "1.12.0";
+  };
+  escape = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sa1xkfc9jvkwyw1jbz3jhkq0ms1zrvswi6mmfiwcisg5fp497z4";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  ethon = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17ix0mijpsy3y0c6ywrk5ibarmvqzjsirjyprpsy3hwax8fdm85v";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  eventmachine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "138gi8b95nqv8m83dynpsszz11a6c5si1pym6y0b6bfb01r33pyi";
+      type = "gem";
+    };
+    version = "0.105.0";
+  };
+  execjs = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
+      type = "gem";
+    };
+    version = "2.9.1";
+  };
+  faraday = {
+    dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19w1lzipnxs6vy3y0pw1mf956f768ppzgfrnlpwgrpnjjv9xqf7d";
+      type = "gem";
+    };
+    version = "2.7.12";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  ffi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
+      type = "gem";
+    };
+    version = "1.16.3";
+  };
+  ffi-compiler = {
+    dependencies = ["ffi" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  ffi-rzmq-core = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  fiddle = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x504023g56y32r81l6i4pqbhn46szzy6s5bcdlc7kb5iv1iigar";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  fog-core = {
+    dependencies = ["builder" "excon" "formatador" "mime-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06m6hxq8vspx9h9bgc2s19m56jzasvl45vblrfv1q5h1qg1k6amw";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  fog-dnsimple = {
+    dependencies = ["fog-core" "fog-json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbzkc0w96a62ahjw0b7mfbqgg9x2jp7khg5hvpbgw0kfs5xza63";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  fog-json = {
+    dependencies = ["fog-core" "multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  formatador = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l06bv4avphbdmr1y4g0rqlczr38k6r65b3zghrbj2ynyhm3xqjl";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  forwardable-extended = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  fourflusher = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1afabh3g3gwj0ad53fs62waks815xcckf7pkci76l6vrghffcg8v";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  fuzzy_match = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19gw1ifsgfrv7xdi6n61658vffgm1867f4xdqfswb2b5h6alzpmm";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  gdk3 = {
+    dependencies = ["cairo-gobject" "gdk_pixbuf2" "pango"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dpqlsfv44bxzixh386qwz28wfynhwkp9qz97b6zjx4wjh4fg4gj";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  gdk_pixbuf2 = {
+    dependencies = ["gio2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hmfbddsjj7x5i2aj0i8l9jhp19lrcm4d6q4xqm7gyjnrs98v5q5";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  gemoji = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0";
+      type = "gem";
+    };
+    version = "3.0.1";
+  };
+  gh_inspector = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  gio2 = {
+    dependencies = ["fiddle" "gobject-introspection"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ij82r1b1190vry1xwqh7nz4qasdh2fppmx93nrv1jam4hy0gm7k";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  git = {
+    dependencies = ["addressable" "rchardet"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rf4603ffvdlvnzx1nmh2x5j8lic3p24115sm7bx6p2nwii09f69";
+      type = "gem";
+    };
+    version = "1.18.0";
+  };
+  github-pages = {
+    dependencies = ["github-pages-health-check" "jekyll" "jekyll-avatar" "jekyll-coffeescript" "jekyll-commonmark-ghpages" "jekyll-default-layout" "jekyll-feed" "jekyll-gist" "jekyll-github-metadata" "jekyll-include-cache" "jekyll-mentions" "jekyll-optional-front-matter" "jekyll-paginate" "jekyll-readme-index" "jekyll-redirect-from" "jekyll-relative-links" "jekyll-remote-theme" "jekyll-sass-converter" "jekyll-seo-tag" "jekyll-sitemap" "jekyll-swiss" "jekyll-theme-architect" "jekyll-theme-cayman" "jekyll-theme-dinky" "jekyll-theme-hacker" "jekyll-theme-leap-day" "jekyll-theme-merlot" "jekyll-theme-midnight" "jekyll-theme-minimal" "jekyll-theme-modernist" "jekyll-theme-primer" "jekyll-theme-slate" "jekyll-theme-tactile" "jekyll-theme-time-machine" "jekyll-titles-from-headings" "jemoji" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "minima" "nokogiri" "rouge" "terminal-table"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0brk2sgk01mly2hb1h5hm3ip1l6hjr4xx9zkqfhs5k3swlwnwzq9";
+      type = "gem";
+    };
+    version = "228";
+  };
+  github-pages-health-check = {
+    dependencies = ["addressable" "dnsruby" "octokit" "public_suffix" "typhoeus"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17bs9bljrzsa8cmdr2xpa38gkcbcbac8kbwm4dh3zq0aiw1ysnfk";
+      type = "gem";
+    };
+    version = "1.17.9";
+  };
+  gitlab-markup = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m3ypny84jyvlxf060p3q3d8pb4yihxa2br5hh012bgc11d09nky";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  glib2 = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05qg16pxnzshgzgfky83b948r9d03lachq2clm8qrsj4c202smq3";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  gobject-introspection = {
+    dependencies = ["glib2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03n47jlyqygxyc5fsf39szfswlcnnmmwqly12cqjqfmk6skvfhc5";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "010wr6nnifi952bx4v5c49q25yx1g8lhib5wiv2sg7bip3yvlyy8";
+      type = "gem";
+    };
+    version = "2.0.23";
+  };
+  gtk3 = {
+    dependencies = ["atk" "gdk3"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15jk1q82g6jfswmz4b20kg2nxq4yc8wpidn9si9j7n0haxph3vxy";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  haml = {
+    dependencies = ["temple" "thor" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i6xmglna30galqdsq7iq0pwxxwyrs57ymwmxhash4jhnsk7wk7z";
+      type = "gem";
+    };
+    version = "6.2.3";
+  };
+  hashie = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
+      type = "gem";
+    };
+    version = "5.0.0";
+  };
+  highline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  hike = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hbhmchyhm1xf632cczmyg3fsbn7zly988q3fjpi8l3nb4cn40xj";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  hitimes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ix9rp9rsrwin38z2aqiwpxc8p2dzl6m3ra47az47fsija1cb2qf";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  hpricot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jn8x9ch79gqmnzgyz78kppavjh5lqx0y0r6frykga2b86rz9s6z";
+      type = "gem";
+    };
+    version = "0.8.6";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "180kjksi0sdlqb0aq0bhal96ifwqm25hzb3w709ij55j51qls7ca";
+      type = "gem";
+    };
+    version = "2.14.3";
+  };
+  htmlbeautifier = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y55dx25l3wwc025mwl6jsbcsqrm30gs2d2pxnaxg07yh22ckq4x";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  http = {
+    dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw";
+      type = "gem";
+    };
+    version = "5.1.1";
+  };
+  http-accept = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  http-form_data = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  "http_parser.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gj4fmls0mf52dlr928gaq0c0cb0m3aqa9kaa6l0ikl2zbqk42as";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      type = "gem";
+    };
+    version = "1.14.1";
+  };
+  iconv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00fppiz9ypy7xpc08xdk6glq842rbc69c7a1p0kmv195271i4yqv";
+      type = "gem";
+    };
+    version = "1.0.8";
+  };
+  idn-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dy04jx3n1ddz744b80mg7hp87miysnjp0h21lqr43hpmhdglxih";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  indieweb-endpoints = {
+    dependencies = ["http" "link-header-parser" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yqy5clqrqwprmk8vwzni0vdgyvbzm5x36bj33qhv5b11kgskbwp";
+      type = "gem";
+    };
+    version = "8.0.0";
+  };
+  io-console = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dikardh14c72gd9ypwh8dim41wvqmzfzf35mincaj5yals9m7ff";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  irb = {
+    dependencies = ["rdoc" "reline"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0appka5sbafafn4f8d285skxw3qkhbap28vn9ms0pf7pbp7s2449";
+      type = "gem";
+    };
+    version = "1.9.1";
+  };
+  jaro_winkler = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10fd3i92897blalxfkgc0jjv0qqx31v7cm7j2b6a3b97an0bfz80";
+      type = "gem";
+    };
+    version = "1.5.6";
+  };
+  jbuilder = {
+    dependencies = ["actionview" "activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h58xgmp0fqpnd6mvw0zl0f76119v8lnf4xabqhckbzl6jrk8qpa";
+      type = "gem";
+    };
+    version = "2.11.5";
+  };
+  jekyll = {
+    dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m9yzkiwm751wbyq3aq1355afcx240r24nrick1fzv578bis4kyy";
+      type = "gem";
+    };
+    version = "3.9.3";
+  };
+  jekyll-archives = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c2rks7xf6ajp18h4f4wmmbqm5ljprv70bqcz2sabi17zncmz9n0";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  jekyll-avatar = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  jekyll-coffeescript = {
+    dependencies = ["coffee-script" "coffee-script-source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06qf4j9f6ysjb4bq6gsdaiz2ksmhc5yb484v458ra3s6ybccqvvy";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  jekyll-commonmark = {
+    dependencies = ["commonmarker"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i281yiwqiim6jzh7b8hgg8zifs5mn1qz1z6f4109kh9zrcfcc8p";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  jekyll-commonmark-ghpages = {
+    dependencies = ["commonmarker" "jekyll" "jekyll-commonmark" "rouge"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zps7bb9kc4qf32b9y9h47z08wpsziklg0jnhcrcz2wxn09fijgd";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  jekyll-default-layout = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "009zpd0mkmhkfp3s8yvh5mriqhil0ihv3gi2vw63flr3jz48y4kx";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  jekyll-favicon = {
+    dependencies = ["jekyll" "mini_magick" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dyksm4i11n0qshd7wh6dvk8d0fc70dd32ir2dxs6igxq0gd6hi1";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  jekyll-feed = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9";
+      type = "gem";
+    };
+    version = "0.15.1";
+  };
+  jekyll-gist = {
+    dependencies = ["octokit"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  jekyll-github-metadata = {
+    dependencies = ["jekyll" "octokit"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r4m7r4qyd3pqkp5xlyp3zzy47i18kjgwq995nrspysgkmc4qmw1";
+      type = "gem";
+    };
+    version = "2.13.0";
+  };
+  jekyll-include-cache = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01d2l6qrmjc42664ns83cv36jbvalcxqbkmj5i22fakka7jvkm67";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  jekyll-mentions = {
+    dependencies = ["html-pipeline" "jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  jekyll-optional-front-matter = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06vnxcmgkxm5nvrpv89qq0afjlxmadv63nh4ryglcwhlf4fhdp7c";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  jekyll-paginate = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  jekyll-readme-index = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0chybr1zgnrmc7zf6psszcqnlrcy2jar8h77kci51lxj8vgc8k6p";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  jekyll-redirect-from = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nz6kd6qsa160lmjmls4zgx7fwcpp8ac07mpzy80z6zgd7jwldb6";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  jekyll-relative-links = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vfx90ajxyj24lz406k3pqknlbzy8nqs7wpz0in4ps9rggsh24yi";
+      type = "gem";
+    };
+    version = "0.6.1";
+  };
+  jekyll-remote-theme = {
+    dependencies = ["addressable" "jekyll" "jekyll-sass-converter" "rubyzip"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h2bwl42dig0282366kpxazxb8xafnppnd4yvq2dzcsg90kfgzfk";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  jekyll-sass-converter = {
+    dependencies = ["sass"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  jekyll-seo-tag = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0638mqhqynghnlnaz0xi1kvnv53wkggaq94flfzlxwandn8x2biz";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  jekyll-sitemap = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  jekyll-spaceship = {
+    dependencies = ["gemoji" "jekyll" "nokogiri" "rainbow"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "142bp48vq9aqwpqig54anbv7ncwqv1h78mbqhckmnx0glnqlkyzh";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  jekyll-swiss = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w893f2snpbvgl80jnmq3xxsl5yi5a5qm11iy3gx0d8viasi6f2";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  jekyll-theme-architect = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h04zxlcdsb73qxh08xmsc36gmj95plwxr9g5zwzqd3bmbfd6xbj";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-cayman = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ajzhqhnj8gc5ns7i69kh69mzidvxkjs7yblrhzb13iaqzwi8prw";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-dinky = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z1clccf4q0g2zzhl1hfy3x2rcdjs6bzs9ab76lkmpphj5q2a2vj";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-hacker = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12ppp0bxffy838p4my79nppq112fazifr3cxwvhv3l6yjbwzjsw1";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-leap-day = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lf7bbpr2s2rir2nf07rnh2g9mjy6zidpacs3j45la70b8qah7lj";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-merlot = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ifmvq44vwmkp6sb79ys8lx5w24gn3dhdr32bg562da2c8dv5wnb";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-midnight = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1plindxr5vrk98frzxbnkashgnqs86xkg26rjmhgz0qf6mkz77q0";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-minimal = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10idwpbqjqfc5i895ijf74ac79lccxpz30bvwp4x4fjp6l6229d2";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-modernist = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kzvdnk1vw8y6x8gy340mhnxipxh9p1h1h20br68clyxbsy7brsb";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-primer = {
+    dependencies = ["jekyll" "jekyll-github-metadata" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cq7lfwa3xs8hkx3cmv2ics7cr4r2azv66m0gfav0zi1k0kjh9yf";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  jekyll-theme-slate = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f9l7kaafab2cphkx8gh4b12d8zzbg2ig7x2qzxvxfqjwyfr0h2y";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-tactile = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0li64hnjp4qw7fwsdx0767z7mwxn3kri6sqlg9fkicnmmr41p1mp";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-theme-time-machine = {
+    dependencies = ["jekyll" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qjgsw2n3zny345h540n6rm9600mad7rs33qf6k4rhngxjkr0d5w";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  jekyll-titles-from-headings = {
+    dependencies = ["jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10c4sa3gwyidmkcs8h6223lmqpw3h09mn7w8hxfppsk1wda6fdkp";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  jekyll-watch = {
+    dependencies = ["listen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  jekyll-webmention_io = {
+    dependencies = ["activesupport" "htmlbeautifier" "jekyll" "json" "jsonpath" "openssl" "uglifier" "webmention"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kkxvr1gfbmfbhy13syq4pqwmfqwhnbfcwjiqrwahf99gfcj5izh";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  jemoji = {
+    dependencies = ["gemoji" "html-pipeline" "jekyll"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9";
+      type = "gem";
+    };
+    version = "0.12.0";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393";
+      type = "gem";
+    };
+    version = "1.6.2";
+  };
+  json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wi7g6c8q0v1kahwp38mv8d526p1n2ddsr79ajx84idvih0c601i";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  json_pure = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ilnxmppz9dcwp61dbciv6nk4qsggc6l20gsxdb1flffik6q90z9";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  jsonpath = {
+    dependencies = ["multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xxklfvmwz8z6l08704x65gnq6r8r1pb9qk125qjbndnb1zz6fsp";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  jwt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16z11alz13vfc4zs5l3fk6n51n2jw9lskvc4h4prnww0y797qd87";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  keystone-engine = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0waz2bj1dsl63416k1n0vvrwva425rm94gsza7ci49mm1wjdabh2";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  kramdown = {
+    dependencies = ["rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0757lqaq593z8hzdv98nai73ag384dkk7jgj3mcq2r6ix7130ifb";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  kramdown-parser-gfm = {
+    dependencies = ["kramdown"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  kramdown-rfc2629 = {
+    dependencies = ["certified" "json_pure" "kramdown" "kramdown-parser-gfm"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fp062fcp85p71pz4l470006b7g0v3yfll84zp6if9fillmkvhms";
+      type = "gem";
+    };
+    version = "1.6.6";
+  };
+  language_server-protocol = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x";
+      type = "gem";
+    };
+    version = "3.17.0.3";
+  };
+  libv8 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm";
+      type = "gem";
+    };
+    version = "8.4.255.0";
+  };
+  libxml-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s5v614c1kg5z4hqrmza5fr7qfpqvqirc51624wwsq9vismdisnv";
+      type = "gem";
+    };
+    version = "4.1.2";
+  };
+  link-header-parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rc5mzk017rgi56xzy93f80v1jdcpph1ihgdhm4qq4mibfh26f27";
+      type = "gem";
+    };
+    version = "5.0.0";
+  };
+  liquid = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czxv2i1gv3k7hxnrgfjb0z8khz74l4pmfwd70c7kr25l2qypksg";
+      type = "gem";
+    };
+    version = "4.0.4";
+  };
+  listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn";
+      type = "gem";
+    };
+    version = "3.8.0";
+  };
+  llhttp-ffi = {
+    dependencies = ["ffi-compiler" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
+      type = "gem";
+    };
+    version = "2.22.0";
+  };
+  mab = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0manxbilpx0hdi19lhdsr4ncvbzgmwh279b64j8w60dg0p0i4b4j";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  magic = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18vkdq2748wxg0kr923fbhx92wikh2dwv2hp8xind57qs7gn26pr";
+      type = "gem";
+    };
+    version = "0.2.9";
+  };
+  mail = {
+    dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc";
+      type = "gem";
+    };
+    version = "2.8.1";
+  };
+  marcel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  markaby = {
+    dependencies = ["builder"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  matrix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h2cgkpzkh3dd0flnnwfq6f3nl2b1zff9lvqz8xs853ssv5kq23i";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  mercenary = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  method_source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
+      type = "gem";
+    };
+    version = "3.5.1";
+  };
+  mime-types-data = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yjv0apysnrhbc70ralinfpcqn9382lxr643swp7a5sdwpa9cyqg";
+      type = "gem";
+    };
+    version = "3.2023.1003";
+  };
+  mini_magick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0slh78f9z6n0l1i2km7m48yz7l4fjrk88sj1f4mh1wb39sl2yc37";
+      type = "gem";
+    };
+    version = "4.12.0";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
+      type = "gem";
+    };
+    version = "2.8.5";
+  };
+  minima = {
+    dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj";
+      type = "gem";
+    };
+    version = "2.5.1";
+  };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
+      type = "gem";
+    };
+    version = "5.20.0";
+  };
+  molinillo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p846facmh1j5xmbrpgzadflspvk7bzs3sykrh5s7qi4cdqz5gzg";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  msgpack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a5adcb7bwan09mqhj3wi9ib52hmdzmqg7q08pggn3adibyn5asr";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  mustermann = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rwbq20s2gdh8dljjsgj5s6wqqfmnbclhvv2c2608brv7jm6jdbd";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  mysql2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gjvj215qdhwk3292sc7xsn6fmwnnaq2xs35hh5hc8d8j22izlbn";
+      type = "gem";
+    };
+    version = "0.5.5";
+  };
+  nanaimo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  nap = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  native-package-installer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004wx9xhcam92g1d4ybvrl1yqablm2svalyck9sq4igy9nwkz9nb";
+      type = "gem";
+    };
+    version = "1.1.8";
+  };
+  ncursesw = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nc14wls1yiigz593vw7580hb99lf4n485axapiz6sqpg1jnlhcr";
+      type = "gem";
+    };
+    version = "1.4.10";
+  };
+  net-imap = {
+    dependencies = ["date" "net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0541lfqaz46h8s3fks11vsd1iqzmgjjw3c0jp9agg92zblwj0axs";
+      type = "gem";
+    };
+    version = "0.4.7";
+  };
+  net-pop = {
+    dependencies = ["net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  net-protocol = {
+    dependencies = ["timeout"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  net-scp = {
+    dependencies = ["net-ssh"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1si2nq9l6jy5n2zw1q59a5gaji7v9vhy8qx08h4fg368906ysbdk";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  net-smtp = {
+    dependencies = ["net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  net-ssh = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jyj6j7w9zpj2zhp4dyhdjiwsn9rqwksj7s7fzpnn7rx2xvz2a1a";
+      type = "gem";
+    };
+    version = "7.2.0";
+  };
+  netrc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  nio4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12";
+      type = "gem";
+    };
+    version = "1.15.5";
+  };
+  octokit = {
+    dependencies = ["faraday" "sawyer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15lvy06h276jryxg19258b2yqaykf0567sp0n16yipywhbp94860";
+      type = "gem";
+    };
+    version = "4.25.1";
+  };
+  og-corefoundation = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xmz13rb92xy55askn5f3kkmz14qwyyhkdsikk2gd1ydicnaqkh8";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  one_gadget = {
+    dependencies = ["elftools"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v079xkzzr1bjff5z2wlzs0k11nk4b04kgy1p63lwhbl12jl7qz1";
+      type = "gem";
+    };
+    version = "1.7.4";
+  };
+  openssl = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
+      type = "gem";
+    };
+    version = "3.2.0";
+  };
+  optimist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+      type = "gem";
+    };
+    version = "3.0.1";
+  };
+  opus-ruby = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lyf2a8f1w1jk0qrl8h0gsydfalbh19g5k2c6xlq8j1sfzb0ij4d";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  ovirt-engine-sdk = {
+    dependencies = ["json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2acfd6l6k9xvqxvwivcnwji9974ac7498znydxh69z1x3rr8nm";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  pandocomatic = {
+    dependencies = ["optimist" "paru"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04gq05mgy3v8gac0dk8ldr59865vbjhkzna51w8wh900512lakyq";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  pango = {
+    dependencies = ["cairo-gobject" "gobject-introspection"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n41ywk853l3arii0ksnbwhzncy16y6n8kfxvd548433gx2355qw";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  parallel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
+      type = "gem";
+    };
+    version = "1.23.0";
+  };
+  parser = {
+    dependencies = ["ast" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd";
+      type = "gem";
+    };
+    version = "3.2.2.4";
+  };
+  paru = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10jiv4c28bdvp4r98s042ilzks8wx36qw5a4byragwa1fzwy87va";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  pastel = {
+    dependencies = ["tty-color"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  pathutil = {
+    dependencies = ["forwardable-extended"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0523gddx88zql2mq6655k60gy2ac8vybpzkcf90lmd9nx7wl3fi9";
+      type = "gem";
+    };
+    version = "0.13.3";
+  };
+  pcaprub = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0886fcc5bi0kc0rbma5fj3wa3hbg2nl7ivnbi2j995yzg36zq7xy";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  pg = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
+      type = "gem";
+    };
+    version = "1.5.4";
+  };
+  pkg-config = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04wi7n51w42v9s958gfmxwkg5iikq25whacyflpi307517ymlaya";
+      type = "gem";
+    };
+    version = "1.5.6";
+  };
+  polyglot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  prettier = {
+    dependencies = ["syntax_tree" "syntax_tree-haml" "syntax_tree-rbs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzd04pzq97rjb1a148gm0wgfb2nr89axbd16d2h6kp666fg4i00";
+      type = "gem";
+    };
+    version = "4.0.3";
+  };
+  prettier_print = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ybgks9862zmlx71zd4j20ky86fsrp6j6m0az4hzzb1zyaskha57";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  prism = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "172qxf1zyrhxzwbn4c7gz12zdyb1jkdqrqvb2c7863lmxp53rrxs";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4";
+      type = "gem";
+    };
+    version = "0.14.2";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y41al94ks07166qbp2200yzyr5y60hm7xaiw4lxpgsm4b1pbyf8";
+      type = "gem";
+    };
+    version = "3.10.1";
+  };
+  pry-doc = {
+    dependencies = ["pry" "yard"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pp43n69p6bjvc640wgcz295w1q2v9awcqgbwcqn082dbvq5xvnx";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  psych = {
+    dependencies = ["stringio"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wjzrkssjfjpynij5dpycyflhqbjvi1gc2j73xgq3b196s1d3c24";
+      type = "gem";
+    };
+    version = "5.1.1.1";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
+      type = "gem";
+    };
+    version = "4.0.7";
+  };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm";
+      type = "gem";
+    };
+    version = "6.4.0";
+  };
+  pwntools = {
+    dependencies = ["crabstone" "dentaku" "elftools" "keystone-engine" "method_source" "one_gadget" "rainbow" "ruby2ruby" "rubyserial"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pxc3lcgnywglv0skzj1r8i4p8mwcj27hlwzwqf8sj2mn3iqyjnd";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
+      type = "gem";
+    };
+    version = "1.7.3";
+  };
+  rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv";
+      type = "gem";
+    };
+    version = "2.2.8";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xsz78hccgza144n37bfisdkzpr2c8m0xl6rnlzgxdbsm1zrkg7r";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  rack-session = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11w6yd60n8ng1ncs1ajlv42dg08yks09drlsgriydgpcjwz21d40";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rackup = {
+    dependencies = ["rack" "webrick"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wbr03334ba9ilcq25wh9913xciwj0j117zs60vsqm0zgwdkwpp9";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  rails = {
+    dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sryvf34ggxx088djc5c358m0h95i9qjhbgwl0zysmi3y0sw79g0";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "minitest" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "irb" "rackup" "rake" "thor" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n0qb1qnzicbmkj4j5fb27c6hhm5i0qss0vir3kaynh6zz24sfgh";
+      type = "gem";
+    };
+    version = "7.1.2";
+  };
+  rainbow = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
+      type = "gem";
+    };
+    version = "13.1.0";
+  };
+  rb-fsevent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  rb-readline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14w79a121czmvk1s953qfzww30mqjb2zc0k9qhi0ivxxk3hxg6wy";
+      type = "gem";
+    };
+    version = "0.5.5";
+  };
+  rbnacl = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y8yzianlkc9w6sbqy8iy8l0yym0y6x7p5rjflkfixq76fqmhvzk";
+      type = "gem";
+    };
+    version = "7.1.1";
+  };
+  rbs = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dgj5n7rj83981fvrhswfwsh88x42p7r00nvd80hkxmdcjvda2h6";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  rchardet = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  rdoc = {
+    dependencies = ["psych"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pnkgnk2vli1y8bbc25qbgv6z2al44dlgcm2mx3ssm34j7xz7gqh";
+      type = "gem";
+    };
+    version = "6.6.0";
+  };
+  re2 = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bbh1lddqffsck99ivynjyf9n39s9as6cn9dn17xsx9vid5ysf2b";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  red-colors = {
+    dependencies = ["matrix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqnbbcqg55abn985m716l6n5izyaaf4zdllhc8095cfqz2fbjcx";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  redcarpet = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  redis = {
+    dependencies = ["redis-client"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n7k4sgx5vzsigp8c15flz4fclqy4j2a33vim7b2c2w5jyjhwxrv";
+      type = "gem";
+    };
+    version = "5.0.8";
+  };
+  redis-client = {
+    dependencies = ["connection_pool"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "013p2968vqrr282yvxp3pyy5vn0nrgdppzqywbwbfjq2kkwx2fx9";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  redis-rack = {
+    dependencies = ["rack" "redis-store"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k3pn706wnf7lb24l6hwsi00c8rx693hvgfnccw3qj1y635ywwh8";
+      type = "gem";
+    };
+    version = "2.1.4";
+  };
+  redis-store = {
+    dependencies = ["redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17mhr1g3lmacrgjndbmrklngy32g55165n53111q70kykx7qjn7j";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  regexp_parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d9a5s3qrjdy50ll2s32gg3qmf10ryp3v2nr5k718kvfadp50ray";
+      type = "gem";
+    };
+    version = "2.8.2";
+  };
+  reline = {
+    dependencies = ["io-console"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hi6zfj6zqzxcbamhjm9w9cswv62f76l8gsdfcnmhpw35cyxphh8";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  rest-client = {
+    dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0087vhw5ik50lxvddicns01clkx800fk5v5qnrvi3b42nrk6885j";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      type = "gem";
+    };
+    version = "3.2.6";
+  };
+  rmagick = {
+    dependencies = ["pkg-config"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "080h8755lks9395a2s4ijavzcsgp62367damj0dxif92jdayllzs";
+      type = "gem";
+    };
+    version = "5.3.0";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
+      type = "gem";
+    };
+    version = "3.26.0";
+  };
+  rpam2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zvli3s4z1hf2l7gyfickm5i3afjrnycc3ihbiax6ji6arpbyf33";
+      type = "gem";
+    };
+    version = "4.0.2";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "171rc90vcgjl8p1bdrqa92ymrj8a87qf6w20x05xq29mljcigi6c";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm";
+      type = "gem";
+    };
+    version = "3.12.2";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89";
+      type = "gem";
+    };
+    version = "3.12.3";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gq7gviwpck7fhp4y5ibljljvxgjklza18j62qf6zkm2icaa8lfy";
+      type = "gem";
+    };
+    version = "3.12.6";
+  };
+  rspec-support = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr";
+      type = "gem";
+    };
+    version = "3.12.1";
+  };
+  rubocop = {
+    dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06qnp5zs233j4f59yyqrg8al6hr9n4a7vcdg3p31v0np8bz9srwg";
+      type = "gem";
+    };
+    version = "1.57.2";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
+      type = "gem";
+    };
+    version = "1.30.0";
+  };
+  rubocop-performance = {
+    dependencies = ["rubocop" "rubocop-ast"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pzsrnjmrachdjxzl9jpw47cydicn3408vgdg3a4bss4v5r42rjj";
+      type = "gem";
+    };
+    version = "1.19.1";
+  };
+  ruby-graphviz = {
+    dependencies = ["rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "010m283gk4qgzxkgrldlnrglh8d5fn6zvrzm56wf5abd7x7b8aqw";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  ruby-keychain = {
+    dependencies = ["ffi" "og-corefoundation"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g57fr1r39bfh1r887hp87mawfg3miidagvpqyqq3l0152ya43wr";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  ruby-libvirt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rnmbfhdz270fky0cm8w1i73gkrnlf3s1hdkm5yxjkdbvapwvjsd";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  ruby-lsp = {
+    dependencies = ["language_server-protocol" "prism" "sorbet-runtime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13snp4q09vv3g7nskaza9xm50shxrdc2xxdyz6gp4vgzbvp4ihc0";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  ruby-lxc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08pnghqp15fwylq6w2qh7x1ikkiq87irpy0z03n0gma4gdzzx2qa";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  ruby-macho = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jgmhj4srl7cck1ipbjys6q4klcs473gq90bm59baw4j1wpfaxch";
+      type = "gem";
+    };
+    version = "2.5.1";
+  };
+  ruby-progressbar = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
+      type = "gem";
+    };
+    version = "1.13.0";
+  };
+  ruby-terminfo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  ruby-vips = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16vkhdb9ss8z4alg46n675n4z1115g8akyg44nzkp8vpxksgrr1v";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  ruby2ruby = {
+    dependencies = ["ruby_parser" "sexp_processor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04bz2jw3ida07mgk450l9m6xklhzbv0z4s6ak6bl7vp4rhcy41f8";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  ruby_parser = {
+    dependencies = ["sexp_processor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j8w4mqhqaw53jd27cfhq1mq02d1r606x9fmrpfzz0fwjnk8j8ld";
+      type = "gem";
+    };
+    version = "3.20.3";
+  };
+  rubyserial = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vj5yan6srbvkf5vfp9d9b9z8wyygd0zxcy54c35yhkjl6kwd22q";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  rugged = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02m9zksfy3dwzhbv56xq2wwmlghca5209hdg895pi2x2d2sbkahi";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  safe_yaml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0";
+      type = "gem";
+    };
+    version = "3.7.4";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  sassc = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
+      type = "gem";
+    };
+    version = "0.9.2";
+  };
+  scrypt = {
+    dependencies = ["ffi-compiler"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jw2bn6mqpw2wbjpmsfz44pppwa6zmhg9lywimm684sxkmlxscbl";
+      type = "gem";
+    };
+    version = "3.0.7";
+  };
+  semian = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p5i06vygm601822vydxniad2rhxg6xkl97r9f6pgk6pnz7spq38";
+      type = "gem";
+    };
+    version = "0.20.1";
+  };
+  sequel = {
+    dependencies = ["bigdecimal"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zj66n0m1la1anxjjdb8a35frzabym112rf9ssyxq42mq05ln4m2";
+      type = "gem";
+    };
+    version = "5.74.0";
+  };
+  sequel_pg = {
+    dependencies = ["pg" "sequel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01j51vn47ynyhlxpgz6wj8swm3d8g1hrad1678s0sd43kh2hqxdg";
+      type = "gem";
+    };
+    version = "1.17.1";
+  };
+  sexp_processor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd";
+      type = "gem";
+    };
+    version = "4.17.0";
+  };
+  simplecov = {
+    dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py";
+      type = "gem";
+    };
+    version = "0.22.0";
+  };
+  simplecov-html = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  simplecov_json_formatter = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  simpleidn = {
+    dependencies = ["unf"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06f7w6ph3bzzqk212yylfp4jfx275shgp9zg3xszbpv1ny2skp9m";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  sinatra = {
+    dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00541cnypsh1mnilfxxqlz6va9afrixf9m1asn4wzjp5m59777p8";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  slather = {
+    dependencies = ["CFPropertyList" "activesupport" "clamp" "nokogiri" "xcodeproj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19jqdnqc9vxgag3hkmh7zawsjmm5s9hg4gjqz89pc5fmljxp1w97";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  slop = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iyrjskgxyn8i1679qwkzns85p909aq77cgx2m4fs5ygzysj4hw4";
+      type = "gem";
+    };
+    version = "4.10.1";
+  };
+  snappy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a77kysns9pz4nx149df0f987qj1pdfyjby2jr3iwmj2zj7r3klp";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  snmp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xr7rwfk7mwxzqcgir0glmyy4j27g6yixfaswsbd2qn6r8c980qf";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  solargraph = {
+    dependencies = ["backport" "benchmark" "diff-lcs" "e2mmap" "jaro_winkler" "kramdown" "kramdown-parser-gfm" "parser" "rbs" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18wpma2mgw82qzf1jwjalmz7nwdvn87b22wd5yy16jb67fqgrq78";
+      type = "gem";
+    };
+    version = "0.49.0";
+  };
+  sorbet-runtime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18280l1wgdmr9xhr4mzxr4ycskwbgjzd91vmdzx0dlp6xp2dydnb";
+      type = "gem";
+    };
+    version = "0.5.11144";
+  };
+  sqlite3 = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08irz5llz31im8pmkk5k0kw433jyyji1qa98xkdmpphncdjr38am";
+      type = "gem";
+    };
+    version = "1.6.9";
+  };
+  stringio = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "063psvsn1aq6digpznxfranhcpmi0sdv2jhra5g0459sw0x2dxn1";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  syntax_tree = {
+    dependencies = ["prettier_print"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g9l9acknjr2yz8ynfxbcrwx2ws3wh96pfzdb31g66k08v1022m5";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  syntax_tree-haml = {
+    dependencies = ["haml" "prettier_print" "syntax_tree"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nb335cn093qnc3hyb8s4vbgn8apwz019m4dj15hz2y2gmkpdxnw";
+      type = "gem";
+    };
+    version = "4.0.3";
+  };
+  syntax_tree-rbs = {
+    dependencies = ["prettier_print" "rbs" "syntax_tree"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9n2i99y6b5l3x3vp2nk0fss2x0b2gd1h5hynbs2y4ab35jhrsr";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  taglib-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yvchq3j0splz70796a27hr1v6ifhyab5ddc9fl1x734nhmsy4rb";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  temple = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fwia5hvc1xz9w7vprzjnsym3v9j5l9ggdvy70jixbvpcpz4acfz";
+      type = "gem";
+    };
+    version = "0.10.3";
+  };
+  terminal-table = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hbmzfr17ji5ws5x5z3kypmb5irwwss7q7kkad0gs005ibqrxv0a";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  thrift = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17cwh2ivvkfzv7m0m3rpyagwqz20mcincvjvz7cg3g21xzannqys";
+      type = "gem";
+    };
+    version = "0.19.0";
+  };
+  tilt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  timeout = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  tiny_tds = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06fa5xpw5zrnhg0ds246l8sq49k22hpplqa1msxylnqibbsnb2y9";
+      type = "gem";
+    };
+    version = "2.1.5";
+  };
+  treetop = {
+    dependencies = ["polyglot"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0adc8qblz8ii668r3rksjx83p675iryh52rvdvysimx2hkbasj7d";
+      type = "gem";
+    };
+    version = "1.6.12";
+  };
+  tty-color = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  tty-command = {
+    dependencies = ["pastel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14hi8xiahfrrnydw6g3i30lxvvz90wp4xsrlhx8mabckrcglfv0c";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  tty-option = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "019ir4bcr8fag7dmq7ph6ilpvwjbv4qalip0bz7dlddbd6fk4vjs";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  typhoeus = {
+    dependencies = ["ethon"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z7gamf6s83wy0yqms3bi4srirn3fc0lc7n65lqanidxcj1xn5qw";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  tzinfo = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
+      type = "gem";
+    };
+    version = "2.0.6";
+  };
+  uglifier = {
+    dependencies = ["execjs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
+      type = "gem";
+    };
+    version = "0.0.9.1";
+  };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  uuid4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qlcxzn8pnql34pcdrkd20kdla3k6n2sspaxp3lwwx8a87jnzbc3";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  webmention = {
+    dependencies = ["http" "indieweb-endpoints" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ag06gal14r3rlcv0c951w1a9wb0d04mk5pz2v0f71q9fzwxwwmi";
+      type = "gem";
+    };
+    version = "7.0.0";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  websocket-driver = {
+    dependencies = ["websocket-extensions"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  websocket-extensions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  whois = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "109v9vgkry317v5vc3b5dwgxpp1if3q9m26mrpl6052m020q05qx";
+      type = "gem";
+    };
+    version = "5.1.1";
+  };
+  xcodeproj = {
+    dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "176ndahc5fssyx04q176vy6wngs1av4vrsdrkdpjij700hqll8hn";
+      type = "gem";
+    };
+    version = "1.23.0";
+  };
+  xctasks = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jmxq0dv2q4qs628cykrhsm9piysjsacbq5blsf35a0fj015bw7l";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  yard = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "013yrnwx1zhzhn1fnc19zck22a1qgimsaglp2iwgf5bz9l8h93js";
+      type = "gem";
+    };
+    version = "0.9.34";
+  };
+  zeitwerk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
+      type = "gem";
+    };
+    version = "2.6.12";
+  };
+  zookeeper = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hc87pbmgc53lksa1aql61kxn9d2kjzmlhnjxa5rcn01qhm3pkvg";
+      type = "gem";
+    };
+    version = "1.5.5";
+  };
+}
diff --git a/nixpkgs/pkgs/top-level/splice.nix b/nixpkgs/pkgs/top-level/splice.nix
new file mode 100644
index 000000000000..9ac0fe2200f9
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/splice.nix
@@ -0,0 +1,168 @@
+# The `splicedPackages' package set, and its use by `callPackage`
+#
+# The `buildPackages` pkg set is a new concept, and the vast majority package
+# expression (the other *.nix files) are not designed with it in mind. This
+# presents us with a problem with how to get the right version (build-time vs
+# run-time) of a package to a consumer that isn't used to thinking so cleverly.
+#
+# The solution is to splice the package sets together as we do below, so every
+# `callPackage`d expression in fact gets both versions. Each derivation (and
+# each derivation's outputs) consists of the run-time version, augmented with
+# a `__spliced.buildHost` field for the build-time version, and
+# `__spliced.hostTarget` field for the run-time version.
+#
+# For performance reasons, rather than uniformally splice in all cases, we only
+# do so when `pkgs` and `buildPackages` are distinct. The `actuallySplice`
+# parameter there the boolean value of that equality check.
+lib: pkgs: actuallySplice:
+
+let
+
+  spliceReal =
+    { pkgsBuildBuild
+    , pkgsBuildHost
+    , pkgsBuildTarget
+    , pkgsHostHost
+    , pkgsHostTarget
+    , pkgsTargetTarget
+    }:
+    let
+      mash =
+        # Other pkgs sets
+        pkgsBuildBuild // pkgsBuildTarget // pkgsHostHost // pkgsTargetTarget
+        # The same pkgs sets one probably intends
+        // pkgsBuildHost // pkgsHostTarget;
+      merge = name: {
+        inherit name;
+        value =
+          let
+            defaultValue = mash.${name};
+            # `or {}` is for the non-derivation attsert splicing case, where `{}` is the identity.
+            valueBuildBuild = pkgsBuildBuild.${name} or { };
+            valueBuildHost = pkgsBuildHost.${name} or { };
+            valueBuildTarget = pkgsBuildTarget.${name} or { };
+            valueHostHost = pkgsHostHost.${name} or { };
+            valueHostTarget = pkgsHostTarget.${name} or { };
+            valueTargetTarget = pkgsTargetTarget.${name} or { };
+            augmentedValue = defaultValue
+              // {
+              __spliced =
+                (lib.optionalAttrs (pkgsBuildBuild ? ${name}) { buildBuild = valueBuildBuild; })
+                  // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { buildHost = valueBuildHost; })
+                  // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; })
+                  // (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; })
+                  // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { hostTarget = valueHostTarget; })
+                  // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) {
+                  targetTarget = valueTargetTarget;
+                });
+            };
+            # Get the set of outputs of a derivation. If one derivation fails to
+            # evaluate we don't want to diverge the entire splice, so we fall back
+            # on {}
+            tryGetOutputs = value0:
+              let
+                inherit (builtins.tryEval value0) success value;
+              in
+              getOutputs (lib.optionalAttrs success value);
+            getOutputs = value: lib.genAttrs
+              (value.outputs or (lib.optional (value ? out) "out"))
+              (output: value.${output});
+          in
+          # The derivation along with its outputs, which we recur
+            # on to splice them together.
+          if lib.isDerivation defaultValue then augmentedValue // spliceReal {
+            pkgsBuildBuild = tryGetOutputs valueBuildBuild;
+            pkgsBuildHost = tryGetOutputs valueBuildHost;
+            pkgsBuildTarget = tryGetOutputs valueBuildTarget;
+            pkgsHostHost = tryGetOutputs valueHostHost;
+            pkgsHostTarget = getOutputs valueHostTarget;
+            pkgsTargetTarget = tryGetOutputs valueTargetTarget;
+            # Just recur on plain attrsets
+          } else if lib.isAttrs defaultValue then
+            spliceReal
+              {
+                pkgsBuildBuild = valueBuildBuild;
+                pkgsBuildHost = valueBuildHost;
+                pkgsBuildTarget = valueBuildTarget;
+                pkgsHostHost = valueHostHost;
+                pkgsHostTarget = valueHostTarget;
+                pkgsTargetTarget = valueTargetTarget;
+                # Don't be fancy about non-derivations. But we could have used used
+                # `__functor__` for functions instead.
+              } else defaultValue;
+      };
+    in
+    lib.listToAttrs (map merge (lib.attrNames mash));
+
+  splicePackages =
+    { pkgsBuildBuild
+    , pkgsBuildHost
+    , pkgsBuildTarget
+    , pkgsHostHost
+    , pkgsHostTarget
+    , pkgsTargetTarget
+    } @ args:
+    if actuallySplice then spliceReal args else pkgsHostTarget;
+
+  splicedPackages = splicePackages
+    {
+      inherit (pkgs)
+        pkgsBuildBuild pkgsBuildHost pkgsBuildTarget
+        pkgsHostHost pkgsHostTarget
+        pkgsTargetTarget
+        ;
+    } // {
+    # These should never be spliced under any circumstances
+    inherit (pkgs)
+      pkgsBuildBuild pkgsBuildHost pkgsBuildTarget
+      pkgsHostHost pkgsHostTarget
+      pkgsTargetTarget
+      buildPackages pkgs targetPackages
+      ;
+    inherit (pkgs.stdenv) buildPlatform targetPlatform hostPlatform;
+  };
+
+  splicedPackagesWithXorg = splicedPackages // builtins.removeAttrs splicedPackages.xorg [
+    "callPackage"
+    "newScope"
+    "overrideScope"
+    "packages"
+  ];
+
+in
+
+{
+  inherit splicePackages;
+
+  # We use `callPackage' to be able to omit function arguments that can be
+  # obtained `pkgs` or `buildPackages` and their `xorg` package sets. Use
+  # `newScope' for sets of packages in `pkgs' (see e.g. `gnome' below).
+  callPackage = pkgs.newScope { };
+
+  callPackages = lib.callPackagesWith splicedPackagesWithXorg;
+
+  newScope = extra: lib.callPackageWith (splicedPackagesWithXorg // extra);
+
+  # prefill 2 fields of the function for convenience
+  makeScopeWithSplicing = lib.makeScopeWithSplicing splicePackages pkgs.newScope;
+  makeScopeWithSplicing' = lib.makeScopeWithSplicing' { inherit splicePackages; inherit (pkgs) newScope; };
+
+  # generate 'otherSplices' for 'makeScopeWithSplicing'
+  generateSplicesForMkScope = attr:
+    let
+      split = X: lib.splitString "." "${X}.${attr}";
+    in
+    {
+      # nulls should never be reached
+      selfBuildBuild = lib.attrByPath (split "pkgsBuildBuild") null pkgs;
+      selfBuildHost = lib.attrByPath (split "pkgsBuildHost") null pkgs;
+      selfBuildTarget = lib.attrByPath (split "pkgsBuildTarget") null pkgs;
+      selfHostHost = lib.attrByPath (split "pkgsHostHost") null pkgs;
+      selfHostTarget = lib.attrByPath (split "pkgsHostTarget") null pkgs;
+      selfTargetTarget = lib.attrByPath (split "pkgsTargetTarget") { } pkgs;
+    };
+
+  # Haskell package sets need this because they reimplement their own
+  # `newScope`.
+  __splicedPackages = splicedPackages // { recurseForDerivations = false; };
+}
diff --git a/nixpkgs/pkgs/top-level/stage.nix b/nixpkgs/pkgs/top-level/stage.nix
new file mode 100644
index 000000000000..1cc05167cee8
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/stage.nix
@@ -0,0 +1,299 @@
+/* This file composes a single bootstrapping stage of the Nix Packages
+   collection. That is, it imports the functions that build the various
+   packages, and calls them with appropriate arguments. The result is a set of
+   all the packages in the Nix Packages collection for some particular platform
+   for some particular stage.
+
+   Default arguments are only provided for bootstrapping
+   arguments. Normal users should not import this directly but instead
+   import `pkgs/default.nix` or `default.nix`. */
+
+let
+  # An overlay to auto-call packages in ../by-name.
+  # By defining it at the top of the file,
+  # this value gets reused even if this file is imported multiple times,
+  # thanks to Nix's import-value cache.
+  autoCalledPackages = import ./by-name-overlay.nix ../by-name;
+in
+
+{ ## Misc parameters kept the same for all stages
+  ##
+
+  # Utility functions, could just import but passing in for efficiency
+  lib
+
+, # Use to reevaluate Nixpkgs
+  nixpkgsFun
+
+  ## Other parameters
+  ##
+
+, # Either null or an object in the form:
+  #
+  #   {
+  #     pkgsBuildBuild = ...;
+  #     pkgsBuildHost = ...;
+  #     pkgsBuildTarget = ...;
+  #     pkgsHostHost = ...;
+  #     # pkgsHostTarget skipped on purpose.
+  #     pkgsTargetTarget ...;
+  #   }
+  #
+  # These are references to adjacent bootstrapping stages. The more familiar
+  # `buildPackages` and `targetPackages` are defined in terms of them. If null,
+  # they are instead defined internally as the current stage. This allows us to
+  # avoid expensive splicing. `pkgsHostTarget` is skipped because it is always
+  # defined as the current stage.
+  adjacentPackages
+
+, # The standard environment to use for building packages.
+  stdenv
+
+, # This is used because stdenv replacement and the stdenvCross do benefit from
+  # the overridden configuration provided by the user, as opposed to the normal
+  # bootstrapping stdenvs.
+  allowCustomOverrides
+
+, # Non-GNU/Linux OSes are currently "impure" platforms, with their libc
+  # outside of the store.  Thus, GCC, GFortran, & co. must always look for files
+  # in standard system directories (/usr/include, etc.)
+  noSysDirs ? stdenv.buildPlatform.system != "x86_64-freebsd"
+           && stdenv.buildPlatform.system != "i686-freebsd"
+           && stdenv.buildPlatform.system != "x86_64-solaris"
+           && stdenv.buildPlatform.system != "x86_64-kfreebsd-gnu"
+
+, # The configuration attribute set
+  config
+
+, # A list of overlays (Additional `self: super: { .. }` customization
+  # functions) to be fixed together in the produced package set
+  overlays
+} @args:
+
+let
+  # This is a function from parsed platforms (like
+  # stdenv.hostPlatform.parsed) to parsed platforms.
+  makeMuslParsedPlatform = parsed:
+    # The following line guarantees that the output of this function
+    # is a well-formed platform with no missing fields.  It will be
+    # uncommented in a separate PR, in case it breaks the build.
+    #(x: lib.trivial.pipe x [ (x: builtins.removeAttrs x [ "_type" ]) lib.systems.parse.mkSystem ])
+      (parsed // {
+        abi = {
+          gnu = lib.systems.parse.abis.musl;
+          gnueabi = lib.systems.parse.abis.musleabi;
+          gnueabihf = lib.systems.parse.abis.musleabihf;
+          gnuabin32 = lib.systems.parse.abis.muslabin32;
+          gnuabi64 = lib.systems.parse.abis.muslabi64;
+          gnuabielfv2 = lib.systems.parse.abis.musl;
+          gnuabielfv1 = lib.systems.parse.abis.musl;
+          # The following two entries ensure that this function is idempotent.
+          musleabi = lib.systems.parse.abis.musleabi;
+          musleabihf = lib.systems.parse.abis.musleabihf;
+          muslabin32 = lib.systems.parse.abis.muslabin32;
+          muslabi64 = lib.systems.parse.abis.muslabi64;
+        }.${parsed.abi.name}
+          or lib.systems.parse.abis.musl;
+      });
+
+
+  stdenvAdapters = self: super:
+    let
+      res = import ../stdenv/adapters.nix {
+        inherit lib config;
+        pkgs = self;
+      };
+    in res // {
+      stdenvAdapters = res;
+    };
+
+  trivialBuilders = self: super:
+    import ../build-support/trivial-builders {
+      inherit lib;
+      inherit (self) runtimeShell stdenv stdenvNoCC;
+      inherit (self.pkgsBuildHost) shellcheck-minimal;
+      inherit (self.pkgsBuildHost.xorg) lndir;
+    };
+
+  stdenvBootstappingAndPlatforms = self: super: let
+    withFallback = thisPkgs:
+      (if adjacentPackages == null then self else thisPkgs)
+      // { recurseForDerivations = false; };
+  in {
+    # Here are package sets of from related stages. They are all in the form
+    # `pkgs{theirHost}{theirTarget}`. For example, `pkgsBuildHost` means their
+    # host platform is our build platform, and their target platform is our host
+    # platform. We only care about their host/target platforms, not their build
+    # platform, because the the former two alone affect the interface of the
+    # final package; the build platform is just an implementation detail that
+    # should not leak.
+    pkgsBuildBuild = withFallback adjacentPackages.pkgsBuildBuild;
+    pkgsBuildHost = withFallback adjacentPackages.pkgsBuildHost;
+    pkgsBuildTarget = withFallback adjacentPackages.pkgsBuildTarget;
+    pkgsHostHost = withFallback adjacentPackages.pkgsHostHost;
+    pkgsHostTarget = self // { recurseForDerivations = false; }; # always `self`
+    pkgsTargetTarget = withFallback adjacentPackages.pkgsTargetTarget;
+
+    # Older names for package sets. Use these when only the host platform of the
+    # package set matter (i.e. use `buildPackages` where any of `pkgsBuild*`
+    # would do, and `targetPackages` when any of `pkgsTarget*` would do (if we
+    # had more than just `pkgsTargetTarget`).)
+    buildPackages = self.pkgsBuildHost;
+    pkgs = self.pkgsHostTarget;
+    targetPackages = self.pkgsTargetTarget;
+
+    inherit stdenv;
+  };
+
+  splice = self: super: import ./splice.nix lib self (adjacentPackages != null);
+
+  allPackages = self: super:
+    let res = import ./all-packages.nix
+      { inherit lib noSysDirs config overlays; }
+      res self super;
+    in res;
+
+  aliases = self: super: lib.optionalAttrs config.allowAliases (import ./aliases.nix lib self super);
+
+  # stdenvOverrides is used to avoid having multiple of versions
+  # of certain dependencies that were used in bootstrapping the
+  # standard environment.
+  stdenvOverrides = self: super:
+    (super.stdenv.overrides or (_: _: {})) self super;
+
+  # Allow packages to be overridden globally via the `packageOverrides'
+  # configuration option, which must be a function that takes `pkgs'
+  # as an argument and returns a set of new or overridden packages.
+  # The `packageOverrides' function is called with the *original*
+  # (un-overridden) set of packages, allowing packageOverrides
+  # attributes to refer to the original attributes (e.g. "foo =
+  # ... pkgs.foo ...").
+  configOverrides = self: super:
+    lib.optionalAttrs allowCustomOverrides
+      ((config.packageOverrides or (super: {})) super);
+
+  # Convenience attributes for instantitating package sets. Each of
+  # these will instantiate a new version of allPackages. Currently the
+  # following package sets are provided:
+  #
+  # - pkgsCross.<system> where system is a member of lib.systems.examples
+  # - pkgsMusl
+  # - pkgsi686Linux
+  otherPackageSets = self: super: {
+    # This maps each entry in lib.systems.examples to its own package
+    # set. Each of these will contain all packages cross compiled for
+    # that target system. For instance, pkgsCross.raspberryPi.hello,
+    # will refer to the "hello" package built for the ARM6-based
+    # Raspberry Pi.
+    pkgsCross = lib.mapAttrs (n: crossSystem:
+                              nixpkgsFun { inherit crossSystem; })
+                              lib.systems.examples;
+
+    pkgsLLVM = nixpkgsFun {
+      overlays = [
+        (self': super': {
+          pkgsLLVM = super';
+        })
+      ] ++ overlays;
+      # Bootstrap a cross stdenv using the LLVM toolchain.
+      # This is currently not possible when compiling natively,
+      # so we don't need to check hostPlatform != buildPlatform.
+      crossSystem = stdenv.hostPlatform // {
+        useLLVM = true;
+        linker = "lld";
+      };
+    };
+
+    # All packages built with the Musl libc. This will override the
+    # default GNU libc on Linux systems. Non-Linux systems are not
+    # supported. 32-bit is also not supported.
+    pkgsMusl = if stdenv.hostPlatform.isLinux && stdenv.buildPlatform.is64bit then nixpkgsFun {
+      overlays = [ (self': super': {
+        pkgsMusl = super';
+      })] ++ overlays;
+      ${if stdenv.hostPlatform == stdenv.buildPlatform
+        then "localSystem" else "crossSystem"} = {
+        parsed = makeMuslParsedPlatform stdenv.hostPlatform.parsed;
+      };
+    } else throw "Musl libc only supports 64-bit Linux systems.";
+
+    # All packages built for i686 Linux.
+    # Used by wine, firefox with debugging version of Flash, ...
+    pkgsi686Linux = if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86 then nixpkgsFun {
+      overlays = [ (self': super': {
+        pkgsi686Linux = super';
+      })] ++ overlays;
+      ${if stdenv.hostPlatform == stdenv.buildPlatform
+        then "localSystem" else "crossSystem"} = {
+        parsed = stdenv.hostPlatform.parsed // {
+          cpu = lib.systems.parse.cpuTypes.i686;
+        };
+      };
+    } else throw "i686 Linux package set can only be used with the x86 family.";
+
+    # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages
+    pkgsx86_64Darwin = if stdenv.hostPlatform.isDarwin then nixpkgsFun {
+      overlays = [ (self': super': {
+        pkgsx86_64Darwin = super';
+      })] ++ overlays;
+      localSystem = {
+        parsed = stdenv.hostPlatform.parsed // {
+          cpu = lib.systems.parse.cpuTypes.x86_64;
+        };
+      };
+    } else throw "x86_64 Darwin package set can only be used on Darwin systems.";
+
+    # Extend the package set with zero or more overlays. This preserves
+    # preexisting overlays. Prefer to initialize with the right overlays
+    # in one go when calling Nixpkgs, for performance and simplicity.
+    appendOverlays = extraOverlays:
+      if extraOverlays == []
+      then self
+      else nixpkgsFun { overlays = args.overlays ++ extraOverlays; };
+
+    # NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB
+    #       of allocations. DO NOT USE THIS IN NIXPKGS.
+    #
+    # Extend the package set with a single overlay. This preserves
+    # preexisting overlays. Prefer to initialize with the right overlays
+    # in one go when calling Nixpkgs, for performance and simplicity.
+    # Prefer appendOverlays if used repeatedly.
+    extend = f: self.appendOverlays [f];
+
+    # Fully static packages.
+    # Currently uses Musl on Linux (couldn’t get static glibc to work).
+    pkgsStatic = nixpkgsFun ({
+      overlays = [ (self': super': {
+        pkgsStatic = super';
+      })] ++ overlays;
+      crossSystem = {
+        isStatic = true;
+        parsed =
+          if stdenv.isLinux
+          then makeMuslParsedPlatform stdenv.hostPlatform.parsed
+          else stdenv.hostPlatform.parsed;
+      } // lib.optionalAttrs (stdenv.hostPlatform.system == "powerpc64-linux") {
+        gcc.abi = "elfv2";
+      };
+    });
+  };
+
+  # The complete chain of package set builders, applied from top to bottom.
+  # stdenvOverlays must be last as it brings package forward from the
+  # previous bootstrapping phases which have already been overlayed.
+  toFix = lib.foldl' (lib.flip lib.extends) (self: {}) ([
+    stdenvBootstappingAndPlatforms
+    stdenvAdapters
+    trivialBuilders
+    splice
+    autoCalledPackages
+    allPackages
+    otherPackageSets
+    aliases
+    configOverrides
+  ] ++ overlays ++ [
+    stdenvOverrides ]);
+
+in
+  # Return the complete set of packages.
+  lib.fix toFix
diff --git a/nixpkgs/pkgs/top-level/unixtools.nix b/nixpkgs/pkgs/top-level/unixtools.nix
new file mode 100644
index 000000000000..40faa7642129
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/unixtools.nix
@@ -0,0 +1,196 @@
+{ pkgs, buildEnv, runCommand, lib, stdenv }:
+
+# These are some unix tools that are commonly included in the /usr/bin
+# and /usr/sbin directory under more normal distributions. Along with
+# coreutils, these are commonly assumed to be available by build
+# systems, but we can't assume they are available. In Nix, we list
+# each program by name directly through this unixtools attribute.
+
+# You should always try to use single binaries when available. For
+# instance, if your program needs to use "ps", just list it as a build
+# input, not "procps" which requires Linux.
+
+with lib;
+
+let
+  version = "1003.1-2008";
+
+  singleBinary = cmd: providers: let
+      provider = providers.${stdenv.hostPlatform.parsed.kernel.name} or providers.linux;
+      bin = "${getBin provider}/bin/${cmd}";
+      manpage = "${getOutput "man" provider}/share/man/man1/${cmd}.1.gz";
+    in runCommand "${cmd}-${provider.name}" {
+      meta = {
+        mainProgram = cmd;
+        priority = 10;
+        platforms = lib.platforms.${stdenv.hostPlatform.parsed.kernel.name} or lib.platforms.all;
+      };
+      passthru = { inherit provider; };
+      preferLocalBuild = true;
+    } ''
+      if ! [ -x ${bin} ]; then
+        echo Cannot find command ${cmd}
+        exit 1
+      fi
+
+      mkdir -p $out/bin
+      ln -s ${bin} $out/bin/${cmd}
+
+      if [ -f ${manpage} ]; then
+        mkdir -p $out/share/man/man1
+        ln -s ${manpage} $out/share/man/man1/${cmd}.1.gz
+      fi
+    '';
+
+  # more is unavailable in darwin
+  # so we just use less
+  more_compat = runCommand "more-${pkgs.less.name}" {} ''
+    mkdir -p $out/bin
+    ln -s ${pkgs.less}/bin/less $out/bin/more
+  '';
+
+  bins = mapAttrs singleBinary {
+    # singular binaries
+    arp = {
+      linux = pkgs.nettools;
+      darwin = pkgs.darwin.network_cmds;
+    };
+    col = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.text_cmds;
+    };
+    column = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.text_cmds;
+    };
+    eject = {
+      linux = pkgs.util-linux;
+    };
+    getconf = {
+      linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc
+              else pkgs.netbsd.getconf;
+      darwin = pkgs.darwin.system_cmds;
+    };
+    getent = {
+      linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc.getent
+              else pkgs.netbsd.getent;
+      darwin = pkgs.netbsd.getent;
+    };
+    getopt = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.getopt;
+    };
+    fdisk = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.diskdev_cmds;
+    };
+    fsck = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.diskdev_cmds;
+    };
+    hexdump = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.shell_cmds;
+    };
+    hostname = {
+      linux = pkgs.nettools;
+      darwin = pkgs.darwin.shell_cmds;
+    };
+    ifconfig = {
+      linux = pkgs.nettools;
+      darwin = pkgs.darwin.network_cmds;
+    };
+    killall = {
+      linux = pkgs.psmisc;
+      darwin = pkgs.darwin.shell_cmds;
+    };
+    locale = {
+      linux = pkgs.glibc;
+      darwin = pkgs.darwin.adv_cmds;
+    };
+    logger = {
+      linux = pkgs.util-linux;
+    };
+    more = {
+      linux = pkgs.util-linux;
+      darwin = more_compat;
+    };
+    mount = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.diskdev_cmds;
+    };
+    netstat = {
+      linux = pkgs.nettools;
+      darwin = pkgs.darwin.network_cmds;
+    };
+    ping = {
+      linux = pkgs.iputils;
+      darwin = pkgs.darwin.network_cmds;
+    };
+    ps = {
+      linux = pkgs.procps;
+      darwin = pkgs.darwin.ps;
+    };
+    quota = {
+      linux = pkgs.linuxquota;
+      darwin = pkgs.darwin.diskdev_cmds;
+    };
+    route = {
+      linux = pkgs.nettools;
+      darwin = pkgs.darwin.network_cmds;
+    };
+    script = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.shell_cmds;
+    };
+    sysctl = {
+      linux = pkgs.procps;
+      darwin = pkgs.darwin.system_cmds;
+    };
+    top = {
+      linux = pkgs.procps;
+      darwin = pkgs.darwin.top;
+    };
+    umount = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.diskdev_cmds;
+    };
+    whereis = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.shell_cmds;
+    };
+    wall = {
+      linux = pkgs.util-linux;
+    };
+    watch = {
+      linux = pkgs.procps;
+
+      # watch is the only command from procps that builds currently on
+      # Darwin. Unfortunately no other implementations exist currently!
+      darwin = pkgs.callPackage ../os-specific/linux/procps-ng {};
+    };
+    write = {
+      linux = pkgs.util-linux;
+      darwin = pkgs.darwin.basic_cmds;
+    };
+    xxd = {
+      linux = pkgs.vim;
+      darwin = pkgs.vim;
+    };
+  };
+
+  makeCompat = pname: paths:
+    buildEnv {
+      name = "${pname}-${version}";
+      inherit paths;
+    };
+
+  # Compatibility derivations
+  # Provided for old usage of these commands.
+  compat = with bins; lib.mapAttrs makeCompat {
+    procps = [ ps sysctl top watch ];
+    util-linux = [ fsck fdisk getopt hexdump mount
+                  script umount whereis write col column ];
+    nettools = [ arp hostname ifconfig netstat route ];
+  };
+in bins // compat
diff --git a/nixpkgs/pkgs/top-level/wine-packages.nix b/nixpkgs/pkgs/top-level/wine-packages.nix
new file mode 100644
index 000000000000..7cf5533da7f2
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/wine-packages.nix
@@ -0,0 +1,55 @@
+{ stdenv, config, callPackage, wineBuild }:
+
+rec {
+  fonts = callPackage ../applications/emulators/wine/fonts.nix {};
+  minimal = callPackage ../applications/emulators/wine {
+    wineRelease = config.wine.release or "stable";
+    inherit wineBuild;
+  };
+
+  base = minimal.override {
+    gettextSupport = true;
+    fontconfigSupport = stdenv.isLinux;
+    alsaSupport = stdenv.isLinux;
+    openglSupport = true;
+    vulkanSupport = true;
+    tlsSupport = true;
+    cupsSupport = true;
+    dbusSupport = stdenv.isLinux;
+    cairoSupport = stdenv.isLinux;
+    cursesSupport = true;
+    saneSupport = stdenv.isLinux;
+    pulseaudioSupport = config.pulseaudio or stdenv.isLinux;
+    udevSupport = stdenv.isLinux;
+    xineramaSupport = stdenv.isLinux;
+    sdlSupport = true;
+    mingwSupport = true;
+    usbSupport = true;
+  };
+
+  full = base.override {
+    gtkSupport = stdenv.isLinux;
+    gstreamerSupport = true;
+    openclSupport = true;
+    odbcSupport = true;
+    netapiSupport = stdenv.isLinux;
+    vaSupport = stdenv.isLinux;
+    pcapSupport = true;
+    v4lSupport = stdenv.isLinux;
+    gphoto2Support = true;
+    krb5Support = true;
+    embedInstallers = true;
+  };
+
+  stable = base.override { wineRelease = "stable"; };
+  stableFull = full.override { wineRelease = "stable"; };
+
+  unstable = base.override { wineRelease = "unstable"; };
+  unstableFull = full.override { wineRelease = "unstable"; };
+
+  staging = base.override { wineRelease = "staging"; };
+  stagingFull = full.override { wineRelease = "staging"; };
+
+  wayland = base.override { wineRelease = "wayland"; };
+  waylandFull = full.override { wineRelease = "wayland"; };
+}