about summary refs log tree commit diff
path: root/pkgs/tools/package-management
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/package-management')
-rw-r--r--pkgs/tools/package-management/apk-tools/default.nix4
-rw-r--r--pkgs/tools/package-management/appimagekit/default.nix2
-rw-r--r--pkgs/tools/package-management/apx/default.nix38
-rw-r--r--pkgs/tools/package-management/cde/default.nix2
-rw-r--r--pkgs/tools/package-management/checkinstall/default.nix4
-rw-r--r--pkgs/tools/package-management/ciel/default.nix2
-rw-r--r--pkgs/tools/package-management/disnix/DisnixWebService/default.nix2
-rw-r--r--pkgs/tools/package-management/disnix/default.nix14
-rw-r--r--pkgs/tools/package-management/disnix/dydisnix/default.nix2
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix2
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/fpm/Gemfile.lock19
-rw-r--r--pkgs/tools/package-management/fpm/gemset.nix54
-rw-r--r--pkgs/tools/package-management/fusesoc/default.nix2
-rw-r--r--pkgs/tools/package-management/gx/default.nix2
-rw-r--r--pkgs/tools/package-management/gx/go/default.nix2
-rw-r--r--pkgs/tools/package-management/harmonia/default.nix50
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--pkgs/tools/package-management/licensee/default.nix2
-rw-r--r--pkgs/tools/package-management/lix/common.nix289
-rw-r--r--pkgs/tools/package-management/lix/default.nix62
-rw-r--r--pkgs/tools/package-management/lix/doc/default.nix13
-rw-r--r--pkgs/tools/package-management/morph/default.nix2
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix8
-rw-r--r--pkgs/tools/package-management/niff/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-eval-jobs/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-index/default.nix8
-rw-r--r--pkgs/tools/package-management/nix-serve/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-top/default.nix53
-rw-r--r--pkgs/tools/package-management/nix-universal-prefetch/default.nix33
-rw-r--r--pkgs/tools/package-management/nix/common.nix9
-rw-r--r--pkgs/tools/package-management/nix/default.nix40
-rw-r--r--pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch11
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix6
-rw-r--r--pkgs/tools/package-management/opkg-utils/default.nix2
-rw-r--r--pkgs/tools/package-management/opkg/default.nix2
-rw-r--r--pkgs/tools/package-management/pacman/default.nix2
-rw-r--r--pkgs/tools/package-management/pacup/default.nix4
-rw-r--r--pkgs/tools/package-management/pdm/default.nix10
-rw-r--r--pkgs/tools/package-management/pkg/default.nix4
-rw-r--r--pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix4
-rw-r--r--pkgs/tools/package-management/poetry/unwrapped.nix4
-rw-r--r--pkgs/tools/package-management/poetry2conda/default.nix2
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix5
-rw-r--r--pkgs/tools/package-management/rpm/default.nix2
-rw-r--r--pkgs/tools/package-management/wapm/cli/default.nix39
-rw-r--r--pkgs/tools/package-management/xbps/default.nix2
49 files changed, 518 insertions, 325 deletions
diff --git a/pkgs/tools/package-management/apk-tools/default.nix b/pkgs/tools/package-management/apk-tools/default.nix
index 4800a6641bd0c..55a406d595695 100644
--- a/pkgs/tools/package-management/apk-tools/default.nix
+++ b/pkgs/tools/package-management/apk-tools/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apk-tools";
-  version = "2.14.1";
+  version = "2.14.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.alpinelinux.org";
     owner = "alpine";
     repo = "apk-tools";
     rev = "v${version}";
-    sha256 = "sha256-gO7Yf60eabvAdPDSzxvxeEMsvc6ixy1iQ6/o7WWlE2Q=";
+    sha256 = "sha256-NaLa975AJrfvxxUkPTGLno/BoMQKBGaMIJjSbs+63NA=";
   };
 
   nativeBuildInputs = [ pkg-config scdoc ]
diff --git a/pkgs/tools/package-management/appimagekit/default.nix b/pkgs/tools/package-management/appimagekit/default.nix
index d11cd16127589..b1a25758cbb6c 100644
--- a/pkgs/tools/package-management/appimagekit/default.nix
+++ b/pkgs/tools/package-management/appimagekit/default.nix
@@ -117,7 +117,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A tool to package desktop applications as AppImages";
+    description = "Tool to package desktop applications as AppImages";
     longDescription = ''
       AppImageKit is an implementation of the AppImage format that
       provides tools such as appimagetool and appimaged for handling
diff --git a/pkgs/tools/package-management/apx/default.nix b/pkgs/tools/package-management/apx/default.nix
index 26bece879f005..1e161b805e948 100644
--- a/pkgs/tools/package-management/apx/default.nix
+++ b/pkgs/tools/package-management/apx/default.nix
@@ -1,33 +1,36 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, distrobox
-, installShellFiles
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+  distrobox,
+  podman,
 }:
 
 buildGoModule rec {
   pname = "apx";
-  version = "2.4.0";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "Vanilla-OS";
     repo = "apx";
     rev = "v${version}";
-    hash = "sha256-OLJrwibw9uX5ty7FRZ0q8zx0i1vQXRKK8reQsJFFxAI=";
+    hash = "sha256-X6nphUzJc/R3Egw09eRQbza1QebpLGsMIfV7BpLOXTc=";
   };
 
-  vendorHash = null;
+  vendorHash = "sha256-hGi+M5RRUL2oyxFGVeR0sum93/CA+FGYy0m4vDmlXTc=";
 
-  nativeBuildInputs = [ installShellFiles ];
+  # podman needed for apx to not error when building shell completions
+  nativeBuildInputs = [ installShellFiles podman ];
 
   ldflags = [ "-s" "-w" ];
 
   postPatch = ''
     substituteInPlace config/apx.json \
-      --replace "/usr/share/apx/distrobox/distrobox" "${distrobox}/bin/distrobox" \
-      --replace "/usr/share/apx" "$out/bin/apx"
+      --replace-fail "/usr/share/apx/distrobox/distrobox" "${distrobox}/bin/distrobox" \
+      --replace-fail "/usr/share/apx" "$out/bin/apx"
     substituteInPlace settings/config.go \
-      --replace "/usr/share/apx/" "$out/share/apx/"
+      --replace-fail "/usr/share/apx/" "$out/share/apx/"
   '';
 
   postInstall = ''
@@ -35,10 +38,19 @@ buildGoModule rec {
     installManPage man/man1/*
     install -Dm444 README.md -t $out/share/docs/apx
     install -Dm444 COPYING.md $out/share/licenses/apx/LICENSE
+
+    # Create a temp writable home-dir so apx outputs completions without error
+    export HOME=$(mktemp -d)
+    # apx command now works (for completions)
+    # though complains "Error: no such file or directory"
+    installShellCompletion --cmd apx \
+      --bash <($out/bin/apx completion bash) \
+      --fish <($out/bin/apx completion fish) \
+      --zsh <($out/bin/apx completion zsh)
   '';
 
   meta = with lib; {
-    description = "The Vanilla OS package manager";
+    description = "Vanilla OS package manager";
     homepage = "https://github.com/Vanilla-OS/apx";
     changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/package-management/cde/default.nix b/pkgs/tools/package-management/cde/default.nix
index 2e0ceb53e4f9c..8eefb923bcd3e 100644
--- a/pkgs/tools/package-management/cde/default.nix
+++ b/pkgs/tools/package-management/cde/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/usnistgov/corr-CDE";
-    description = "A packaging tool for building portable packages";
+    description = "Packaging tool for building portable packages";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.rlupton20 ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/package-management/checkinstall/default.nix b/pkgs/tools/package-management/checkinstall/default.nix
index 323464847b601..424831daad977 100644
--- a/pkgs/tools/package-management/checkinstall/default.nix
+++ b/pkgs/tools/package-management/checkinstall/default.nix
@@ -70,10 +70,10 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://checkinstall.izto.org/";
-    description = "A tool for automatically generating Slackware, RPM or Debian packages when doing `make install'";
+    description = "Tool for automatically generating Slackware, RPM or Debian packages when doing `make install'";
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux;
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     knownVulnerabilities = [
       "CVE-2020-25031"
     ];
diff --git a/pkgs/tools/package-management/ciel/default.nix b/pkgs/tools/package-management/ciel/default.nix
index c5809fdca944c..5003f4dc42fe1 100644
--- a/pkgs/tools/package-management/ciel/default.nix
+++ b/pkgs/tools/package-management/ciel/default.nix
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers";
+    description = "Tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers";
     homepage = "https://github.com/AOSC-Dev/ciel-rs";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
index 752af3a432253..d11bc09589940 100644
--- a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
+++ b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A SOAP interface and client for Disnix";
+    description = "SOAP interface and client for Disnix";
     mainProgram = "disnix-soap-client";
     homepage = "https://github.com/svanderburg/DisnixWebService";
     changelog = "https://github.com/svanderburg/DisnixWebService/blob/${finalAttrs.src.rev}/NEWS.txt";
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index 27f055c089cb8..e126c133108de 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, libxslt, getopt, dysnomia, libintl, libiconv }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, glib, libxml2, libxslt, getopt, dysnomia, libintl, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "disnix";
@@ -9,11 +9,21 @@ stdenv.mkDerivation rec {
     sha256 = "0mc0wy8fca60w0d56cljq2cw1xigbp2dklb43fxa5xph94j3i49a";
   };
 
+  patches = [
+    # https://github.com/svanderburg/disnix/pull/21
+    # fix implicit function declaration
+    (fetchpatch {
+      name = "add-stdlib.h.patch";
+      url = "https://github.com/svanderburg/disnix/commit/aa969f1d152acb35fc70c6c8db249b61f5a9eb41.patch";
+      hash = "sha256-RZNVVdZ7Rx8n7qzbJOw8BHL8f07mvh8IKpfsWexuVLU=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib libxml2 libxslt getopt libintl libiconv dysnomia ];
 
   meta = {
-    description = "A Nix-based distributed service deployment tool";
+    description = "Nix-based distributed service deployment tool";
     license = lib.licenses.lgpl21Plus;
     maintainers = with lib.maintainers; [ sander tomberek ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/package-management/disnix/dydisnix/default.nix b/pkgs/tools/package-management/disnix/dydisnix/default.nix
index 0c95e41f8c9a2..e6670ff2e1142 100644
--- a/pkgs/tools/package-management/disnix/dydisnix/default.nix
+++ b/pkgs/tools/package-management/disnix/dydisnix/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A toolset enabling self-adaptive redeployment on top of Disnix";
+    description = "Toolset enabling self-adaptive redeployment on top of Disnix";
     longDescription = ''
       Dynamic Disnix is a (very experimental!) prototype extension framework for Disnix supporting dynamic (re)deployment of service-oriented systems.
     '';
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index f0f7d621414e4..b555f6d0fe8db 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    description = "The Debian package manager";
+    description = "Debian package manager";
     homepage = "https://wiki.debian.org/Teams/Dpkg";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 6dd2445d6cef6..2bf3d67443edd 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "1.5.3";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KwA0GlZatY1DvtqSR4rwq/nODSa9n+S0gPVqS6agSzM=";
+    sha256 = "sha256-FZ+lvf5HRSruUdmkm/Hqz0aRa95SjfIa43WQczRCGNg=";
   };
 
-  cargoHash = "sha256-eQ+T6YiYYeWaUezXB59+Ki05PXtJd7ISwnRw/x/YTZA=";
+  cargoHash = "sha256-0bKLN0l3ldHJizqWuSoBUxQ8I114BQz6ZTtsro3eYEI=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/fpm/Gemfile.lock b/pkgs/tools/package-management/fpm/Gemfile.lock
index b3e8b9d221a50..61c6a233e157a 100644
--- a/pkgs/tools/package-management/fpm/Gemfile.lock
+++ b/pkgs/tools/package-management/fpm/Gemfile.lock
@@ -1,26 +1,20 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    arr-pm (0.0.11)
-      cabin (> 0)
-    backports (3.21.0)
+    arr-pm (0.0.12)
+    backports (3.24.1)
     cabin (0.9.0)
     clamp (1.0.1)
-    dotenv (2.7.6)
-    fpm (1.13.0)
+    dotenv (2.8.1)
+    fpm (1.15.1)
       arr-pm (~> 0.0.11)
       backports (>= 2.6.2)
       cabin (>= 0.6.0)
       clamp (~> 1.0.0)
-      git (>= 1.3.0, < 2.0)
-      json (>= 1.7.7, < 3.0)
       pleaserun (~> 0.0.29)
       rexml
       stud
-    git (1.8.1)
-      rchardet (~> 1.8)
     insist (1.0.0)
-    json (2.5.1)
     mustache (0.99.8)
     pleaserun (0.0.32)
       cabin (> 0)
@@ -29,8 +23,7 @@ GEM
       insist
       mustache (= 0.99.8)
       stud
-    rchardet (1.8.0)
-    rexml (3.2.5)
+    rexml (3.2.6)
     stud (0.0.23)
 
 PLATFORMS
@@ -40,4 +33,4 @@ DEPENDENCIES
   fpm
 
 BUNDLED WITH
-   2.1.4
+   2.5.3
diff --git a/pkgs/tools/package-management/fpm/gemset.nix b/pkgs/tools/package-management/fpm/gemset.nix
index dca13598e8cc0..195073f7546e6 100644
--- a/pkgs/tools/package-management/fpm/gemset.nix
+++ b/pkgs/tools/package-management/fpm/gemset.nix
@@ -1,24 +1,23 @@
 {
   arr-pm = {
-    dependencies = ["cabin"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17qssricshzs2ml1jvn4bs2h85gxvrqm074pl5nl8vr74620iazi";
+      sha256 = "0fddw0vwdrr7v3a0lfqbmnd664j48a9psrjd3wh3k4i3flplizzx";
       type = "gem";
     };
-    version = "0.0.11";
+    version = "0.0.12";
   };
   backports = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xqvwj3mm28g1z4npya51zjcvxaniyyzn3fwgcdwmm8xrdbl8fgr";
+      sha256 = "1f3zcy0q88rw3clk0r7bai7sp4r253lndf0qmdgczq1ykbm219w3";
       type = "gem";
     };
-    version = "3.21.0";
+    version = "3.24.1";
   };
   cabin = {
     groups = ["default"];
@@ -45,32 +44,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565";
       type = "gem";
     };
-    version = "2.7.6";
+    version = "2.8.1";
   };
   fpm = {
-    dependencies = ["arr-pm" "backports" "cabin" "clamp" "git" "json" "pleaserun" "rexml" "stud"];
+    dependencies = ["arr-pm" "backports" "cabin" "clamp" "pleaserun" "rexml" "stud"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03ss7yh628f0m6by23q3sniq660gm07mkz6wqjpvr118gc0h53sa";
+      sha256 = "1grd0lb0mw1jvw6l8zqgh49m9gg2jxn98rifq2spzacwm11g7yqz";
       type = "gem";
     };
-    version = "1.13.0";
-  };
-  git = {
-    dependencies = ["rchardet"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0vdcv93s33d9914a9nxrn2y2qv15xk7jx94007cmalp159l08cnl";
-      type = "gem";
-    };
-    version = "1.8.1";
+    version = "1.15.1";
   };
   insist = {
     groups = ["default"];
@@ -82,16 +70,6 @@
     };
     version = "1.0.0";
   };
-  json = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
-      type = "gem";
-    };
-    version = "2.5.1";
-  };
   mustache = {
     groups = ["default"];
     platforms = [];
@@ -113,25 +91,15 @@
     };
     version = "0.0.32";
   };
-  rchardet = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
-      type = "gem";
-    };
-    version = "1.8.0";
-  };
   rexml = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   stud = {
     groups = ["default"];
diff --git a/pkgs/tools/package-management/fusesoc/default.nix b/pkgs/tools/package-management/fusesoc/default.nix
index 680cbc0209459..a3e397ae93915 100644
--- a/pkgs/tools/package-management/fusesoc/default.nix
+++ b/pkgs/tools/package-management/fusesoc/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/olofk/fusesoc";
-    description = "A package manager and build tools for HDL code";
+    description = "Package manager and build tools for HDL code";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
     mainProgram = "fusesoc";
diff --git a/pkgs/tools/package-management/gx/default.nix b/pkgs/tools/package-management/gx/default.nix
index 3f757dde448c1..8d9fa95f09c57 100644
--- a/pkgs/tools/package-management/gx/default.nix
+++ b/pkgs/tools/package-management/gx/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A packaging tool built around IPFS";
+    description = "Packaging tool built around IPFS";
     homepage = "https://github.com/whyrusleeping/gx";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/pkgs/tools/package-management/gx/go/default.nix b/pkgs/tools/package-management/gx/go/default.nix
index dee8861d65d6e..8f8053c99591a 100644
--- a/pkgs/tools/package-management/gx/go/default.nix
+++ b/pkgs/tools/package-management/gx/go/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A tool for importing go packages into gx";
+    description = "Tool for importing go packages into gx";
     mainProgram = "gx-go";
     homepage = "https://github.com/whyrusleeping/gx-go";
     license = licenses.mit;
diff --git a/pkgs/tools/package-management/harmonia/default.nix b/pkgs/tools/package-management/harmonia/default.nix
deleted file mode 100644
index 8e174cf68a891..0000000000000
--- a/pkgs/tools/package-management/harmonia/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, boost
-, fetchFromGitHub
-, libsodium
-, nixVersions
-, pkg-config
-, rustPlatform
-, stdenv
-, nix-update-script
-, nixosTests
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "harmonia";
-  version = "0.7.5";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = pname;
-    rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-QqRq5maYk4hDl0MXkj9wOPWUta5b+kXG9e/kqRorNE4=";
-  };
-
-  cargoHash = "sha256-dlmSn4cWU6RqEiUoQYNJFhxu3owplkxlbtszBxm+GbU=";
-
-  nativeBuildInputs = [
-    pkg-config nixVersions.nix_2_21
-  ];
-
-  buildInputs = [
-    boost
-    libsodium
-    nixVersions.nix_2_21
-  ];
-
-  passthru = {
-    updateScript = nix-update-script {
-      extraArgs = [ "--version-regex" "harmonia-v(.*)" ];
-    };
-    tests = { inherit (nixosTests) harmonia; };
-  };
-
-  meta = with lib; {
-    description = "Nix binary cache";
-    homepage = "https://github.com/nix-community/harmonia";
-    license = licenses.mit;
-    maintainers = with maintainers; [ mic92 ];
-    mainProgram = "harmonia";
-  };
-}
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 79fc38eaef33d..dc5e95f7f3d98 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.73.1";
+  version = "0.73.2";
 
   outputs = [ "out" "dev" "py" ];
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mZCrJ1fXqKE1sMYKWHLLQEPkdLwPwqJz+8n+DlNmxvM=";
+    hash = "sha256-tdAbkIb3BAhNKFbjIGHEdVNwh3E1sKFLP+L4MhifsQM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/licensee/default.nix b/pkgs/tools/package-management/licensee/default.nix
index b72c218cd16aa..02e5f919fb58d 100644
--- a/pkgs/tools/package-management/licensee/default.nix
+++ b/pkgs/tools/package-management/licensee/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "licensee";
 
   meta = with lib; {
-    description = "A Ruby Gem to detect under what license a project is distributed";
+    description = "Ruby Gem to detect under what license a project is distributed";
     homepage    = "https://licensee.github.io/licensee/";
     license     = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/tools/package-management/lix/common.nix b/pkgs/tools/package-management/lix/common.nix
new file mode 100644
index 0000000000000..8c89cf9fefda6
--- /dev/null
+++ b/pkgs/tools/package-management/lix/common.nix
@@ -0,0 +1,289 @@
+{
+  lib,
+  fetchFromGitHub,
+  version,
+  suffix ? "",
+  hash ? null,
+  src ? fetchFromGitHub {
+    owner = "lix-project";
+    repo = "lix";
+    rev = version;
+    inherit hash;
+  },
+  docCargoHash ? null,
+  docCargoLock ? null,
+  patches ? [ ],
+  maintainers ? lib.teams.lix.members,
+}@args:
+assert (hash == null) -> (src != null);
+{
+  stdenv,
+  meson,
+  bash,
+  bison,
+  boehmgc,
+  boost,
+  brotli,
+  busybox-sandbox-shell,
+  bzip2,
+  callPackage,
+  coreutils,
+  curl,
+  cmake,
+  docbook_xsl_ns,
+  docbook5,
+  doxygen,
+  editline,
+  flex,
+  git,
+  gnutar,
+  gtest,
+  gzip,
+  jq,
+  lib,
+  libarchive,
+  libcpuid,
+  libgit2,
+  libsodium,
+  libxml2,
+  libxslt,
+  lowdown,
+  lsof,
+  man,
+  mercurial,
+  mdbook,
+  mdbook-linkcheck,
+  nlohmann_json,
+  ninja,
+  openssl,
+  toml11,
+  python3,
+  perl,
+  pkg-config,
+  rapidcheck,
+  Security,
+  sqlite,
+  util-linuxMinimal,
+  xz,
+  nixosTests,
+  lix-doc ? callPackage ./doc {
+    inherit src;
+    version = "${version}${suffix}";
+    cargoHash = docCargoHash;
+    cargoLock = docCargoLock;
+  },
+
+  enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform,
+  enableStatic ? stdenv.hostPlatform.isStatic,
+  withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin),
+  aws-sdk-cpp,
+  # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50
+  withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp,
+  libseccomp,
+
+  confDir,
+  stateDir,
+  storeDir,
+}:
+assert lib.assertMsg (docCargoHash != null || docCargoLock != null) "Either `lix-doc`'s cargoHash using `docCargoHash` or `lix-doc`'s `cargoLock.lockFile` using `docCargoLock` must be set!";
+stdenv.mkDerivation {
+  pname = "lix";
+
+  version = "${version}${suffix}";
+  VERSION_SUFFIX = suffix;
+
+  inherit src patches;
+
+  outputs =
+    [
+      "out"
+      "dev"
+    ]
+    ++ lib.optionals enableDocumentation [
+      "man"
+      "doc"
+    ];
+
+  strictDeps = true;
+
+  nativeBuildInputs =
+    [
+      pkg-config
+      bison
+      flex
+      jq
+      meson
+      ninja
+      cmake
+      python3
+      doxygen
+
+      # Tests
+      git
+      mercurial
+      jq
+      lsof
+    ]
+    ++ lib.optionals (enableDocumentation) [
+      (lib.getBin lowdown)
+      mdbook
+      mdbook-linkcheck
+    ]
+    ++ lib.optionals stdenv.isLinux [ util-linuxMinimal ];
+
+  buildInputs =
+    [
+      boost
+      brotli
+      bzip2
+      curl
+      editline
+      libsodium
+      openssl
+      sqlite
+      xz
+      gtest
+      libarchive
+      lowdown
+      rapidcheck
+      toml11
+      lix-doc
+    ]
+    ++ lib.optionals stdenv.isDarwin [ Security ]
+    ++ lib.optionals (stdenv.isx86_64) [ libcpuid ]
+    ++ lib.optionals withLibseccomp [ libseccomp ]
+    ++ lib.optionals withAWS [ aws-sdk-cpp ];
+
+  propagatedBuildInputs = [
+    boehmgc
+    nlohmann_json
+  ];
+
+  postPatch = ''
+    patchShebangs --build tests
+  '';
+
+  preConfigure =
+    # Copy libboost_context so we don't get all of Boost in our closure.
+    # https://github.com/NixOS/nixpkgs/issues/45462
+    lib.optionalString (!enableStatic) ''
+      mkdir -p $out/lib
+      cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib
+      rm -f $out/lib/*.a
+      ${lib.optionalString stdenv.isLinux ''
+        chmod u+w $out/lib/*.so.*
+        patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
+      ''}
+      ${lib.optionalString stdenv.hostPlatform.isDarwin ''
+        for LIB in $out/lib/*.dylib; do
+          chmod u+w $LIB
+          install_name_tool -id $LIB $LIB
+          install_name_tool -delete_rpath ${boost}/lib/ $LIB || true
+        done
+        install_name_tool -change ${boost}/lib/libboost_system.dylib $out/lib/libboost_system.dylib $out/lib/libboost_thread.dylib
+      ''}
+    '';
+
+  mesonBuildType = "release";
+  mesonFlags =
+    [
+      # LTO optimization
+      (lib.mesonBool "b_lto" (!stdenv.isDarwin))
+      (lib.mesonEnable "gc" true)
+      (lib.mesonBool "enable-tests" true)
+      (lib.mesonBool "enable-docs" enableDocumentation)
+      (lib.mesonBool "enable-embedded-sandbox-shell" (stdenv.isLinux && stdenv.hostPlatform.isStatic))
+      (lib.mesonEnable "seccomp-sandboxing" withLibseccomp)
+
+      (lib.mesonOption "store-dir" storeDir)
+      (lib.mesonOption "state-dir" stateDir)
+      (lib.mesonOption "sysconfdir" confDir)
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      (lib.mesonOption "sandbox-shell" "${busybox-sandbox-shell}/bin/busybox")
+    ];
+
+  # Needed for Meson to find Boost.
+  # https://github.com/NixOS/nixpkgs/issues/86131.
+  env = {
+    BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
+    BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
+  };
+
+  postInstall =
+    ''
+      mkdir -p $doc/nix-support
+      echo "doc manual $doc/share/doc/nix/manual" >> $doc/nix-support/hydra-build-products
+    ''
+    + lib.optionalString stdenv.hostPlatform.isStatic ''
+      mkdir -p $out/nix-support
+      echo "file binary-dist $out/bin/nix" >> $out/nix-support/hydra-build-products
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      for lib in liblixutil.dylib liblixexpr.dylib; do
+        install_name_tool \
+          -change "${lib.getLib boost}/lib/libboost_context.dylib" \
+          "$out/lib/libboost_context.dylib" \
+          "$out/lib/$lib"
+      done
+    '';
+
+  doCheck = true;
+  mesonCheckFlags = [ "--suite=check" ];
+  checkInputs = [
+    gtest
+    rapidcheck
+  ];
+
+  doInstallCheck = true;
+  mesonInstallCheckFlags = [ "--suite=installcheck" ];
+
+  preInstallCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # socket path becomes too long otherwise
+    export TMPDIR=$NIX_BUILD_TOP
+    # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`.
+    # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html.
+    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
+  '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+    flagsArray=($mesonInstallCheckFlags "''${mesonInstallCheckFlagsArray[@]}")
+    meson test --no-rebuild "''${flagsArray[@]}"
+    runHook postInstallCheck
+  '';
+  # strictoverflow is disabled because we trap on signed overflow instead
+  hardeningDisable = [ "strictoverflow" ] ++ lib.optional stdenv.hostPlatform.isStatic "pie";
+  # hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ];
+  # hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify";
+  separateDebugInfo = stdenv.isLinux && !enableStatic;
+  enableParallelBuilding = true;
+
+  passthru = {
+    inherit aws-sdk-cpp boehmgc;
+    tests = {
+      misc = nixosTests.nix-misc.lix;
+    };
+  };
+
+  # point 'nix edit' and ofborg at the file that defines the attribute,
+  # not this common file.
+  pos = builtins.unsafeGetAttrPos "version" args;
+  meta = with lib; {
+    description = "Powerful package manager that makes package management reliable and reproducible";
+    longDescription = ''
+      Lix (a fork of Nix) is a powerful package manager for Linux and other Unix systems that
+      makes package management reliable and reproducible. It provides atomic
+      upgrades and rollbacks, side-by-side installation of multiple versions of
+      a package, multi-user package management and easy setup of build
+      environments.
+    '';
+    homepage = "https://lix.systems";
+    license = licenses.lgpl21Plus;
+    inherit maintainers;
+    platforms = platforms.unix;
+    outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
+    mainProgram = "nix";
+    broken = enableStatic;
+  };
+}
diff --git a/pkgs/tools/package-management/lix/default.nix b/pkgs/tools/package-management/lix/default.nix
new file mode 100644
index 0000000000000..c262bbac48c26
--- /dev/null
+++ b/pkgs/tools/package-management/lix/default.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  aws-sdk-cpp,
+  boehmgc,
+  callPackage,
+  fetchFromGitHub,
+  Security,
+
+  storeDir ? "/nix/store",
+  stateDir ? "/nix/var",
+  confDir ? "/etc",
+}:
+let
+  boehmgc-nix_2_3 = boehmgc.override { enableLargeConfig = true; };
+
+  boehmgc-nix = boehmgc-nix_2_3.overrideAttrs (drv: {
+    patches = (drv.patches or [ ]) ++ [
+      # Part of the GC solution in https://github.com/NixOS/nix/pull/4944
+      ../nix/patches/boehmgc-coroutine-sp-fallback.patch
+    ];
+  });
+
+  aws-sdk-cpp-nix =
+    (aws-sdk-cpp.override {
+      apis = [
+        "s3"
+        "transfer"
+      ];
+      customMemoryManagement = false;
+    }).overrideAttrs
+      {
+        # only a stripped down version is build which takes a lot less resources to build
+        requiredSystemFeatures = [ ];
+      };
+
+  common =
+    args:
+    callPackage (import ./common.nix ({ inherit lib fetchFromGitHub; } // args)) {
+      inherit
+        Security
+        storeDir
+        stateDir
+        confDir
+        ;
+      boehmgc = boehmgc-nix;
+      aws-sdk-cpp = aws-sdk-cpp-nix;
+    };
+in
+lib.makeExtensible (self: ({
+  buildLix = common;
+
+  lix_2_90 = (
+    common {
+      version = "2.90.0-rc1";
+      hash = "sha256-WY7BGnu5PnbK4O8cKKv9kvxwzZIGbIQUQLGPHFXitI0=";
+      docCargoHash = "sha256-V/MEC2aRlVrt/IKozyYZvZTXENrtDS/wsV08/ao4TCw=";
+    }
+  );
+
+  latest = self.lix_2_90;
+  stable = self.lix_2_90;
+}))
diff --git a/pkgs/tools/package-management/lix/doc/default.nix b/pkgs/tools/package-management/lix/doc/default.nix
new file mode 100644
index 0000000000000..b19f3bd2a170d
--- /dev/null
+++ b/pkgs/tools/package-management/lix/doc/default.nix
@@ -0,0 +1,13 @@
+{
+  src,
+  rustPlatform,
+  version,
+  cargoHash ? null,
+  cargoLock ? null
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "lix-doc";
+  sourceRoot = "${src.name or src}/lix-doc";
+  inherit version src cargoHash cargoLock;
+}
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index 71c9c285f3084..b5f6535c96ba9 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   outputs = [ "out" "lib" ];
 
   meta = with lib; {
-    description = "A NixOS host manager written in Golang";
+    description = "NixOS host manager written in Golang";
     license = licenses.mit;
     homepage = "https://github.com/dbcdk/morph";
     maintainers = with maintainers; [adamt johanot];
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 3b68b36403e2c..1cc00581cb980 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "2.36.1";
+  version = "2.37.1";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-arGTZ7GFM1kQdryPrwklY7S0B9i31eQ/MaR24mRaFAo=";
+    hash = "sha256-W32rjqPqMEZs7s9zi88CKm+OSVb6UKW6bEdykmOPJDw=";
   };
 
-  vendorHash = "sha256-g57tLk2+WWcdG0COqkQD7eLYG0TdC0RnlhLF6Qt4woY=";
+  vendorHash = "sha256-zHr9NdNFlScV6GsTzwH3vsAfuP3JsNTEi/JaJEdHOck=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
@@ -35,7 +35,7 @@ buildGoModule rec {
     '';
 
   meta = with lib; {
-    description = "A simple deb and rpm packager written in Go";
+    description = "Simple deb and rpm packager written in Go";
     homepage = "https://github.com/goreleaser/nfpm";
     changelog = "https://github.com/goreleaser/nfpm/releases/tag/v${version}";
     maintainers = with maintainers; [ techknowlogick caarlos0 ];
diff --git a/pkgs/tools/package-management/niff/default.nix b/pkgs/tools/package-management/niff/default.nix
index 9fd71964dc26f..909aaaa9413c3 100644
--- a/pkgs/tools/package-management/niff/default.nix
+++ b/pkgs/tools/package-management/niff/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A program that compares two Nix expressions and determines which attributes changed";
+    description = "Program that compares two Nix expressions and determines which attributes changed";
     homepage = "https://github.com/FRidh/niff";
     license = lib.licenses.mit;
     mainProgram = "niff";
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index 3d0069c87dba2..e07c21950b325 100644
--- a/pkgs/tools/package-management/nix-doc/default.nix
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-CHagzXTG9AfrFd3WmHanQ+YddMgmVxSuB8vK98A1Mlw=";
 
   meta = with lib; {
-    description = "An interactive Nix documentation tool";
+    description = "Interactive Nix documentation tool";
     longDescription = "An interactive Nix documentation tool providing a CLI for function search, a Nix plugin for docs in the REPL, and a ctags implementation for Nix script";
     homepage = "https://github.com/lf-/nix-doc";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index d8f2b79a4bbb6..5ef86d033f9ed 100644
--- a/pkgs/tools/package-management/nix-du/default.nix
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
   meta = with lib; {
-    description = "A tool to determine which gc-roots take space in your nix store";
+    description = "Tool to determine which gc-roots take space in your nix store";
     homepage = "https://github.com/symphorien/nix-du";
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.symphorien ];
diff --git a/pkgs/tools/package-management/nix-eval-jobs/default.nix b/pkgs/tools/package-management/nix-eval-jobs/default.nix
index 37194739e5d18..0417b5c294dec 100644
--- a/pkgs/tools/package-management/nix-eval-jobs/default.nix
+++ b/pkgs/tools/package-management/nix-eval-jobs/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , meson
 , ninja
+, curl
 , nix
 , nlohmann_json
 , pkg-config
@@ -11,16 +12,17 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nix-eval-jobs";
-  version = "2.21.0";
+  version = "2.22.1";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-StJq7Zy+/iVBUAKFzhHWlsirFucZ3gNtzXhAYXAsNnw=";
+    hash = "sha256-zvi2YfvlOLtui2JFhPs2qybpnJR3/2luMfp8t/eMh54=";
   };
   buildInputs = [
     boost
     nix
+    curl
     nlohmann_json
   ];
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/nix-index/default.nix b/pkgs/tools/package-management/nix-index/default.nix
index 35df4f9674d67..b4b8b0832094c 100644
--- a/pkgs/tools/package-management/nix-index/default.nix
+++ b/pkgs/tools/package-management/nix-index/default.nix
@@ -4,16 +4,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-index";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-index";
     rev = "v${version}";
-    hash = "sha256-WPWd2aMuP4L17UDFz7SI6lqyrCzrPV8c88vGyO6r6jk=";
+    hash = "sha256-r3Vg9ox953HdUp5Csxd2DYUyBe9u61fmA94PpcAZRqo=";
   };
 
-  cargoHash = "sha256-zZhQ3pOid7BCGzcyCrl6sDm0q6IEVKF7K+d6nVs9flk=";
+  cargoHash = "sha256-c1Ivsj9of/cjEKU0lo4I9BfIUQZ3pPf2QF9fAlZTQn0=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl curl sqlite ]
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A files database for nixpkgs";
+    description = "Files database for nixpkgs";
     homepage = "https://github.com/nix-community/nix-index";
     changelog = "https://github.com/nix-community/nix-index/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix
index a149b490f5aac..018fe9ffb89fb 100644
--- a/pkgs/tools/package-management/nix-serve/default.nix
+++ b/pkgs/tools/package-management/nix-serve/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/edolstra/nix-serve";
-    description = "A utility for sharing a Nix store as a binary cache";
+    description = "Utility for sharing a Nix store as a binary cache";
     maintainers = [ maintainers.eelco ];
     license = licenses.lgpl21;
     platforms = nix.meta.platforms;
diff --git a/pkgs/tools/package-management/nix-top/default.nix b/pkgs/tools/package-management/nix-top/default.nix
deleted file mode 100644
index dc49f2a739e94..0000000000000
--- a/pkgs/tools/package-management/nix-top/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, ruby
-, makeWrapper
-, getent               # /etc/passwd
-, ncurses              # tput
-, binutils-unwrapped   # strings
-, coreutils
-, findutils
-}:
-
-# No gems used, so mkDerivation is fine.
-let
-  additionalPath = lib.makeBinPath [ getent ncurses binutils-unwrapped coreutils findutils ];
-in
-stdenv.mkDerivation rec {
-  pname = "nix-top";
-  version = "0.3.0";
-
-  src = fetchFromGitHub {
-    owner = "samueldr";
-    repo = "nix-top";
-    rev = "v${version}";
-    sha256 = "sha256-w/TKzbZmMt4CX2KnLwPvR1ydp5NNlp9nNx78jJvhp54=";
-  };
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  buildInputs = [
-    ruby
-  ];
-
-  installPhase = ''
-    mkdir -p $out/libexec/nix-top
-    install -D -m755 ./nix-top $out/bin/nix-top
-    wrapProgram $out/bin/nix-top \
-      --prefix PATH : "$out/libexec/nix-top:${additionalPath}"
-  '' + lib.optionalString stdenv.isDarwin ''
-    ln -s /bin/stty $out/libexec/nix-top
-  '';
-
-  meta = with lib; {
-    description = "Tracks what nix is building";
-    homepage = "https://github.com/samueldr/nix-top";
-    license = licenses.mit;
-    maintainers = with maintainers; [ samueldr ];
-    platforms = platforms.linux ++ platforms.darwin;
-    mainProgram = "nix-top";
-  };
-}
diff --git a/pkgs/tools/package-management/nix-universal-prefetch/default.nix b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
deleted file mode 100644
index be31ca34ad603..0000000000000
--- a/pkgs/tools/package-management/nix-universal-prefetch/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, ruby
-}:
-
-# No gems used, so mkDerivation is fine.
-stdenv.mkDerivation rec {
-  pname = "nix-universal-prefetch";
-  version = "0.4.0";
-
-  src = fetchFromGitHub {
-    owner = "samueldr";
-    repo = "nix-universal-prefetch";
-    rev = "v${version}";
-    sha256 = "sha256-HGn4qHWqpUwlS3yQrD3j5oH0yOlphsoSPD2vkyyRv+0=";
-  };
-
-  installPhase = ''
-    mkdir -pv $out/bin
-    cp nix-universal-prefetch $out/bin/nix-universal-prefetch
-    substituteInPlace "$out/bin/nix-universal-prefetch" \
-      --replace "/usr/bin/env nix-shell" "${ruby}/bin/ruby"
-  '';
-
-  meta = with lib; {
-    description = "Uses nixpkgs fetchers to figure out hashes";
-    homepage = "https://github.com/samueldr/nix-universal-prefetch";
-    license = licenses.mit;
-    maintainers = with maintainers; [ samueldr ];
-    platforms = platforms.linux ++ platforms.darwin;
-    mainProgram = "nix-universal-prefetch";
-  };
-}
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index b04c59369f185..22b1cb817b691 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -5,7 +5,8 @@
 , hash ? null
 , src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; }
 , patches ? [ ]
-, maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ma27 ]
+, maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ]
+, self_attribute_name
 }@args:
 assert (hash == null) -> (src != null);
 let
@@ -61,6 +62,7 @@ in
 , mdbook
 , mdbook-linkcheck
 , nlohmann_json
+, nixosTests
 , openssl
 , perl
 , pkg-config
@@ -249,7 +251,10 @@ self = stdenv.mkDerivation {
     perl-bindings = perl.pkgs.toPerlModule (callPackage ./nix-perl.nix { nix = self; inherit Security; });
 
     tests = {
-      nixi686 = pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"};
+      nixi686 = pkgsi686Linux.nixVersions.${self_attribute_name};
+      # Basic smoke test that needs to pass when upgrading nix.
+      # Note that this test does only test the nixVersions.stable attribute.
+      misc = nixosTests.nix-misc.default;
     };
   };
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index f36497cda34d3..87077b42d96e4 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -20,15 +20,6 @@ let
     patches = (drv.patches or [ ]) ++ [
       # Part of the GC solution in https://github.com/NixOS/nix/pull/4944
       ./patches/boehmgc-coroutine-sp-fallback.patch
-
-      # Required since 2.20, and has always been a valid change
-      # Awaiting 8.2 patch release of https://github.com/ivmai/bdwgc/commit/d1d4194c010bff2dc9237223319792cae834501c
-      # or master release of https://github.com/ivmai/bdwgc/commit/86b3bf0c95b66f718c3cb3d35fd7387736c2a4d7
-      (fetchpatch {
-        name = "boehmgc-traceable_allocator-public.diff";
-        url = "https://github.com/NixOS/nix/raw/2.20.0/dep-patches/boehmgc-traceable_allocator-public.diff";
-        hash = "sha256-FLsHY/JS46neiSyyQkVpbHZEFvWSCzWrFQu1CC71sh4=";
-      })
     ];
   });
 
@@ -147,7 +138,8 @@ in lib.makeExtensible (self: ({
     patches = [
       patch-monitorfdhup
     ];
-    maintainers = with lib.maintainers; [ flokli raitobezarius ];
+    self_attribute_name = "nix_2_3";
+    maintainers = with lib.maintainers; [ flokli ];
   }).override { boehmgc = boehmgc-nix_2_3; }).overrideAttrs {
     # https://github.com/NixOS/nix/issues/10222
     # spurious test/add.sh failures
@@ -155,42 +147,54 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_18 = common {
-    version = "2.18.2";
-    hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY=";
+    version = "2.18.3";
+    hash = "sha256-430V4oN1Pid0h3J1yucrik6lbDh5D+pHI455bzLPEDY=";
+    self_attribute_name = "nix_2_18";
   };
 
   nix_2_19 = common {
     version = "2.19.4";
     hash = "sha256-qXjyVmDm1SFWk1az3GWIsJ0fVG0nWet2FdldFOnUydI=";
+    self_attribute_name = "nix_2_19";
   };
 
   nix_2_20 = common {
     version = "2.20.6";
     hash = "sha256-BSl8Jijq1A4n1ToQy0t0jDJCXhJK+w1prL8QMHS5t54=";
+    self_attribute_name = "nix_2_20";
   };
 
   nix_2_21 = common {
     version = "2.21.2";
     hash = "sha256-ObaVDDPtnOeIE0t7m4OVk5G+OS6d9qYh+ktK67Fe/zE=";
+    self_attribute_name = "nix_2_21";
   };
 
   nix_2_22 = common {
-    version = "2.22.0";
-    hash = "sha256-Ugcc+lSq8nJP+mddMlGFnoG4Ix1lRFHWOal3299bqR8=";
+    version = "2.22.1";
+    hash = "sha256-5Q1WkpTWH7fkVfYhHDc5r0A+Vc+K5xB1UhzrLzBCrB8=";
+    self_attribute_name = "nix_2_22";
+  };
+
+  nix_2_23 = common {
+    version = "2.23.0";
+    hash = "sha256-cRCwRDxR8rEQQEvGjIH8g0krJd4ZFJrdgmPXkv65S/Y=";
+    self_attribute_name = "nix_2_23";
   };
 
   git = common rec {
     version = "2.23.0";
-    suffix = "pre20240426_${lib.substring 0 8 src.rev}";
+    suffix = "pre20240526_${lib.substring 0 8 src.rev}";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "2f678331d59451dd6f1d9512cb6d92e4ecb9750f";
-      hash = "sha256-4AwaLB/gTRgvZG4FmFY6OY52yeLAnj0a6rtJCz7TRXA=";
+      rev = "7de033d63fbcf97aad164e131ae3a85e5dcebce7";
+      hash = "sha256-LtsyUsVpr9sM0n1L7MeTw8/6wGtGeXFvKAbPR5lqN8Q=";
     };
+    self_attribute_name = "git";
   };
 
-  latest = self.nix_2_21;
+  latest = self.nix_2_23;
 
   # The minimum Nix version supported by Nixpkgs
   # Note that some functionality *might* have been backported into this Nix version,
diff --git a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
index 578bd325d56bd..a53b7f1f52f49 100644
--- a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
+++ b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
@@ -11,14 +11,23 @@ index 2b45489..0e6d8ef 100644
      GC_bool found_me = FALSE;
      size_t nthreads = 0;
      int i;
-@@ -868,6 +870,31 @@ GC_INNER void GC_push_all_stacks(void)
+@@ -868,6 +870,40 @@ GC_INNER void GC_push_all_stacks(void)
              hi = p->altstack + p->altstack_size;
  #         endif
            /* FIXME: Need to scan the normal stack too, but how ? */
 +        } else {
++          #ifdef HAVE_PTHREAD_ATTR_GET_NP
++          if (pthread_attr_init(&pattr) != 0) {
++            ABORT("GC_push_all_stacks: pthread_attr_init failed!");
++          }
++          if (pthread_attr_get_np(p->id, &pattr) != 0) {
++            ABORT("GC_push_all_stacks: pthread_attr_get_np failed!");
++          }
++          #else
 +          if (pthread_getattr_np(p->id, &pattr)) {
 +            ABORT("GC_push_all_stacks: pthread_getattr_np failed!");
 +          }
++          #endif
 +          if (pthread_attr_getstacksize(&pattr, &stack_limit)) {
 +            ABORT("GC_push_all_stacks: pthread_attr_getstacksize failed!");
 +          }
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index 3c3956bb94cc1..3d119f6b846ad 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -16,14 +16,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.10.4";
+  version = "2.10.5";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
-    rev = version;
-    hash = "sha256-+4T6Mm4YfH0wWlkNYS03H9Z9oNlYQnVUncvWGA0CKIQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-dRTKE8gkV298ZmMokyy3Ufer/Lp1GQYdEhIBoLhloEQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/opkg-utils/default.nix b/pkgs/tools/package-management/opkg-utils/default.nix
index 922fa4c93e1ec..1fea0f6cc7a2f 100644
--- a/pkgs/tools/package-management/opkg-utils/default.nix
+++ b/pkgs/tools/package-management/opkg-utils/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Helper scripts for use with the opkg package manager";
     homepage = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
index ba45cb0835b20..bced64f20d034 100644
--- a/pkgs/tools/package-management/opkg/default.nix
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight package management system based upon ipkg";
+    description = "Lightweight package management system based upon ipkg";
     homepage = "https://git.yoctoproject.org/cgit/cgit.cgi/opkg/";
     changelog = "https://git.yoctoproject.org/opkg/tree/NEWS?h=v${version}";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/package-management/pacman/default.nix b/pkgs/tools/package-management/pacman/default.nix
index e3367ef1438db..7a5fc098bb2c2 100644
--- a/pkgs/tools/package-management/pacman/default.nix
+++ b/pkgs/tools/package-management/pacman/default.nix
@@ -125,7 +125,7 @@ stdenv.mkDerivation (final: {
   '';
 
   meta = with lib; {
-    description = "A simple library-based package manager";
+    description = "Simple library-based package manager";
     homepage = "https://archlinux.org/pacman/";
     changelog = "https://gitlab.archlinux.org/pacman/pacman/-/raw/v${final.version}/NEWS";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/package-management/pacup/default.nix b/pkgs/tools/package-management/pacup/default.nix
index 7afd4eb815d73..992615982ea73 100644
--- a/pkgs/tools/package-management/pacup/default.nix
+++ b/pkgs/tools/package-management/pacup/default.nix
@@ -4,13 +4,13 @@
 }:
 
 python3.pkgs.buildPythonApplication rec {
-  name = "pacup";
+  pname = "pacup";
   version = "2.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pacstall";
-    repo = name;
+    repo = "pacup";
     rev = "refs/tags/${version}";
     hash = "sha256-ItO38QyxNHftKPQZAPO7596ddBfX0a1nfVVqgx7BfwI=";
   };
diff --git a/pkgs/tools/package-management/pdm/default.nix b/pkgs/tools/package-management/pdm/default.nix
index 523d610a9575d..2fab674ec13df 100644
--- a/pkgs/tools/package-management/pdm/default.nix
+++ b/pkgs/tools/package-management/pdm/default.nix
@@ -11,14 +11,14 @@
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "2.15.1";
+  version = "2.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HJzQScEBZjOiPvkuwfx4LaiuB0MULvM/r31Ihy+HSzk=";
+    hash = "sha256-WOIlhQVn3K3OQkGNtGOJlt8rE3jNCDDNSK/aG0VdnHI=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,6 @@ buildPythonApplication rec {
     unearth
     virtualenv
   ] ++ httpx.optional-dependencies.socks
-  ++ pbs-installer.optional-dependencies.install
   ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ]
@@ -81,11 +80,12 @@ buildPythonApplication rec {
   '';
 
   nativeCheckInputs = [
+    first
     pytestCheckHook
     pytest-mock
     pytest-xdist
     pytest-httpserver
-  ] ++ lib.optional stdenv.isLinux first;
+  ];
 
   pytestFlagsArray = [
     "-m 'not network'"
@@ -120,7 +120,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://pdm-project.org";
     changelog = "https://github.com/pdm-project/pdm/releases/tag/${version}";
-    description = "A modern Python package and dependency manager supporting the latest PEP standards";
+    description = "Modern Python package and dependency manager supporting the latest PEP standards";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
     mainProgram = "pdm";
diff --git a/pkgs/tools/package-management/pkg/default.nix b/pkgs/tools/package-management/pkg/default.nix
index 1d0d021809603..92a2270e2d75f 100644
--- a/pkgs/tools/package-management/pkg/default.nix
+++ b/pkgs/tools/package-management/pkg/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pkg";
-  version = "1.21.2";
+  version = "1.21.3";
 
   src = fetchFromGitHub {
     owner = "freebsd";
     repo = "pkg";
     rev = finalAttrs.version;
-    hash = "sha256-iiekjV/X9dAqk9WTxDgi6SK/XkI0aKEfN4Hopgid3Rw=";
+    hash = "sha256-9LWoacjisyaiR0spF5/k5SneIo09UaCHBE1mrewftd8=";
   };
 
   setOutputFlags = false;
diff --git a/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix b/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
index 67cbae28e8438..08b94a0fd227f 100644
--- a/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
+++ b/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-plugin-export";
-  version = "1.7.1";
+  version = "1.8.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-HXzlfiZYDkrQRFXF1up52KrwGhrIctd3CtjQTNz8xH4=";
+    hash = "sha256-ZXhj9FwCCNFMzyoAtQTD8bddOvVM4KzNtd+3sBn9i+w=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/package-management/poetry/unwrapped.nix b/pkgs/tools/package-management/poetry/unwrapped.nix
index 5e2cc63644ab6..3c27faaaf3a21 100644
--- a/pkgs/tools/package-management/poetry/unwrapped.nix
+++ b/pkgs/tools/package-management/poetry/unwrapped.nix
@@ -38,7 +38,7 @@
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.8.2";
+  version = "1.8.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = "poetry";
     rev = "refs/tags/${version}";
-    hash = "sha256-MBWVeS/UHpzeeNUeiHMoXnLA3enRO/6yGIbg4Vf2GxU=";
+    hash = "sha256-PPHt9GG5XJzrhnuAS8L+0Pa3El3RNCdEbXbLnHopDWg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/poetry2conda/default.nix b/pkgs/tools/package-management/poetry2conda/default.nix
index 7aa821d678ace..9b0975bd01cf6 100644
--- a/pkgs/tools/package-management/poetry2conda/default.nix
+++ b/pkgs/tools/package-management/poetry2conda/default.nix
@@ -39,7 +39,7 @@ with python3.pkgs; buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A script to convert a Python project declared on a pyproject.toml to a conda environment";
+    description = "Script to convert a Python project declared on a pyproject.toml to a conda environment";
     homepage = "https://github.com/dojeda/poetry2conda";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index c3c43163c6710..468a1ca75b3fb 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -12,6 +12,7 @@
 , yad
 , pytestCheckHook
 , nix-update-script
+, extraCompatPaths ? ""
 }:
 
 buildPythonApplication rec {
@@ -51,7 +52,7 @@ buildPythonApplication rec {
     ]}"
     # Steam Runtime does not work outside of steam-run, so don't use it
     "--set STEAM_RUNTIME 0"
-  ];
+  ] ++ lib.optional (extraCompatPaths != "") "--set STEAM_EXTRA_COMPAT_TOOLS_PATHS ${extraCompatPaths}";
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -66,7 +67,7 @@ buildPythonApplication rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
+    description = "Simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kira-bruneau ];
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index e931ca16de7e8..ac9c498a9c89f 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.rpm.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
-    description = "The RPM Package Manager";
+    description = "RPM Package Manager";
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux;
     # Support for darwin was removed in https://github.com/NixOS/nixpkgs/pull/196350.
diff --git a/pkgs/tools/package-management/wapm/cli/default.nix b/pkgs/tools/package-management/wapm/cli/default.nix
deleted file mode 100644
index bd345ca6940d1..0000000000000
--- a/pkgs/tools/package-management/wapm/cli/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib
-, fetchFromGitHub
-, perl
-, libiconv
-, openssl
-, rustPlatform
-, Security
-, stdenv
-, SystemConfiguration
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "wapm-cli";
-  version = "0.5.9";
-
-  src = fetchFromGitHub {
-    owner = "wasmerio";
-    repo = "wapm-cli";
-    rev = "v${version}";
-    sha256 = "sha256-T7YEe8xg5iwI/npisW0m+6FLi+eaAQVgYNe6TvMlhAs=";
-  };
-
-  cargoSha256 = "sha256-r4123NJ+nxNOVIg6svWr636xbxOJQ7tp76JoAi2m9p8=";
-
-  nativeBuildInputs = [ perl ];
-
-  buildInputs = [ libiconv openssl ]
-    ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
-
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A package manager for WebAssembly modules";
-    mainProgram = "wapm";
-    homepage = "https://docs.wasmer.io/ecosystem/wapm";
-    license = with licenses; [ mit ];
-    maintainers = [ maintainers.lucperkins ];
-  };
-}
diff --git a/pkgs/tools/package-management/xbps/default.nix b/pkgs/tools/package-management/xbps/default.nix
index 07aa1a7accc15..e5ada2e10268d 100644
--- a/pkgs/tools/package-management/xbps/default.nix
+++ b/pkgs/tools/package-management/xbps/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/void-linux/xbps";
-    description = "The X Binary Package System";
+    description = "X Binary Package System";
     platforms = platforms.linux; # known to not work on Darwin, at least
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];