about summary refs log tree commit diff
path: root/pkgs/tools/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/misc')
-rwxr-xr-xpkgs/tools/misc/archi/update.sh6
-rw-r--r--pkgs/tools/misc/audible-cli/default.nix64
-rw-r--r--pkgs/tools/misc/btdu/default.nix129
-rw-r--r--pkgs/tools/misc/btdu/dub-lock.json20
-rwxr-xr-xpkgs/tools/misc/btdu/update.py82
-rw-r--r--pkgs/tools/misc/cyberchef/default.nix4
-rw-r--r--pkgs/tools/misc/fastfetch/default.nix8
-rw-r--r--pkgs/tools/misc/fd/default.nix3
-rw-r--r--pkgs/tools/misc/geekbench/5.nix2
-rw-r--r--pkgs/tools/misc/geekbench/6.nix2
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix2
-rw-r--r--pkgs/tools/misc/open-pdf-sign/default.nix4
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/contrib.nix6
-rw-r--r--pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch268
-rw-r--r--pkgs/tools/misc/ostree/default.nix20
-rw-r--r--pkgs/tools/misc/ostree/fix-1592.patch149
-rw-r--r--pkgs/tools/misc/ostree/fix-test-paths.patch55
-rw-r--r--pkgs/tools/misc/parquet-tools/default.nix18
-rw-r--r--pkgs/tools/misc/parquet-tools/moto5.patch28
-rw-r--r--pkgs/tools/misc/phrase-cli/default.nix6
-rw-r--r--pkgs/tools/misc/rmlint/default.nix5
-rw-r--r--pkgs/tools/misc/vtm/default.nix6
-rw-r--r--pkgs/tools/misc/wakapi/default.nix6
24 files changed, 136 insertions, 763 deletions
diff --git a/pkgs/tools/misc/archi/update.sh b/pkgs/tools/misc/archi/update.sh
index dbdf876a2a4f2..c374bf5a7906d 100755
--- a/pkgs/tools/misc/archi/update.sh
+++ b/pkgs/tools/misc/archi/update.sh
@@ -12,9 +12,9 @@ if [[ "$latestVersion" == "$currentVersion" ]]; then
     exit 0
 fi
 
-hash_aarch64_darwin=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi_5.php?/$latestVersion/Archi-Mac-Silicon-$latestVersion.dmg)
-hash_x86_64_darwin=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi_5.php?/$latestVersion/Archi-Mac-$latestVersion.dmg)
-hash_x86_64_linux=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi_5.php?/$latestVersion/Archi-Linux64-$latestVersion.tgz)
+hash_aarch64_darwin=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi/$latestVersion/Archi-Mac-Silicon-$latestVersion.dmg)
+hash_x86_64_darwin=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi/$latestVersion/Archi-Mac-$latestVersion.dmg)
+hash_x86_64_linux=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi/$latestVersion/Archi-Linux64-$latestVersion.tgz)
 
 update-source-version archi 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system=aarch64-darwin
 update-source-version archi $latestVersion $hash_aarch64_darwin --system=aarch64-darwin
diff --git a/pkgs/tools/misc/audible-cli/default.nix b/pkgs/tools/misc/audible-cli/default.nix
deleted file mode 100644
index 4d0134e8eaee8..0000000000000
--- a/pkgs/tools/misc/audible-cli/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ lib, python3Packages, fetchFromGitHub, installShellFiles }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "audible-cli";
-  version = "0.2.6";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "mkb79";
-    repo = "audible-cli";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-J81RcehFokOpsQBJLvmeihSrlMyX0geHPl3PPxvGjmY=";
-  };
-
-  nativeBuildInputs = with python3Packages; [
-    pythonRelaxDepsHook
-    setuptools
-  ] ++ [
-    installShellFiles
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    aiofiles
-    audible
-    click
-    httpx
-    packaging
-    pillow
-    questionary
-    setuptools
-    tabulate
-    toml
-    tqdm
-  ];
-
-  pythonRelaxDeps = [
-    "httpx"
-    "audible"
-  ];
-
-  postInstall = ''
-    export PATH=$out/bin:$PATH
-    installShellCompletion --cmd audible \
-      --bash <(source utils/code_completion/audible-complete-bash.sh) \
-      --fish <(source utils/code_completion/audible-complete-zsh-fish.sh) \
-      --zsh <(source utils/code_completion/audible-complete-zsh-fish.sh)
-  '';
-
-  # upstream has no tests
-  doCheck = false;
-
-  pythonImportsCheck = [
-    "audible_cli"
-  ];
-
-  meta = with lib; {
-    description = "A command line interface for audible package. With the cli you can download your Audible books, cover, chapter files";
-    license = licenses.agpl3Only;
-    homepage = "https://github.com/mkb79/audible-cli";
-    changelog = "https://github.com/mkb79/audible-cli/blob/${src.rev}/CHANGELOG.md";
-    maintainers = with maintainers; [ jvanbruegge ];
-    mainProgram = "audible";
-  };
-}
diff --git a/pkgs/tools/misc/btdu/default.nix b/pkgs/tools/misc/btdu/default.nix
index 631c542a9f8ad..4debdae0df0b3 100644
--- a/pkgs/tools/misc/btdu/default.nix
+++ b/pkgs/tools/misc/btdu/default.nix
@@ -1,93 +1,42 @@
-{ lib
-, stdenv
-, fetchurl
-, dub
-, ncurses
-, ldc
-, zlib
-, removeReferencesTo
+{
+  lib,
+  buildDubPackage,
+  fetchFromGitHub,
+  ncurses,
+  zlib,
 }:
 
-let
-    _d_ae_ver              = "0.0.3236";
-    _d_btrfs_ver           = "0.0.18";
-    _d_ncurses_ver         = "1.0.0";
-    _d_emsi_containers_ver = "0.9.0";
-in
-stdenv.mkDerivation rec {
-    pname = "btdu";
-    version = "0.5.1";
-
-    srcs = [
-      (fetchurl {
-        url = "https://github.com/CyberShadow/${pname}/archive/v${version}.tar.gz";
-        sha256 = "566269f365811f6db53280fc5476a7fcf34791396ee4e090c150af4280b35ba5";
-      })
-      (fetchurl {
-        url = "https://github.com/CyberShadow/ae/archive/v${_d_ae_ver}.tar.gz";
-        sha256 = "5ea3f0d9d2d13012ce6a1ee1b52d9fdff9dfb1d5cc7ee5d1b04cab1947ed4d36";
-      })
-      (fetchurl {
-        url = "https://github.com/CyberShadow/d-btrfs/archive/v${_d_btrfs_ver}.tar.gz";
-        sha256 = "32af4891d93c7898b0596eefb8297b88d3ed5c14c84a5951943b7b54c7599dbd";
-      })
-      (fetchurl {
-        url = "https://github.com/D-Programming-Deimos/ncurses/archive/v${_d_ncurses_ver}.tar.gz";
-        sha256 = "b5db677b75ebef7a1365ca4ef768f7344a2bc8d07ec223a2ada162f185d0d9c6";
-      })
-      (fetchurl {
-        url = "https://github.com/dlang-community/containers/archive/v${_d_emsi_containers_ver}.tar.gz";
-        sha256 = "5e256b84bbdbd2bd625cba0472ea27a1fde6d673d37a85fe971a20d52874acaa";
-      })
-    ];
-
-    sourceRoot = ".";
-
-    postUnpack = ''
-      mv ae-${_d_ae_ver} "ae"
-    '';
-
-
-    nativeBuildInputs = [ dub ldc ];
-    buildInputs = [ ncurses zlib ];
-
-    configurePhase = ''
-      runHook preConfigure
-      mkdir home
-      HOME="home" dub add-local ae ${_d_ae_ver}
-      HOME="home" dub add-local d-btrfs-${_d_btrfs_ver} ${_d_btrfs_ver}
-      HOME="home" dub add-local ncurses-${_d_ncurses_ver} ${_d_ncurses_ver}
-      HOME="home" dub add-local containers-${_d_emsi_containers_ver} ${_d_emsi_containers_ver}
-      runHook postConfigure
-    '';
-
-    buildPhase = ''
-      runHook preBuild
-      cd ${pname}-${version}
-      HOME="../home" dub --skip-registry=all build -b release
-      runHook postBuild
-    '';
-
-    installPhase = ''
-      runHook preInstall
-      mkdir -p $out/bin
-      cp btdu $out/bin/
-      runHook postInstall
-    '';
-
-    postInstall = ''
-      ${removeReferencesTo}/bin/remove-references-to -t ${ldc} $out/bin/btdu
-    '';
-
-    passthru.updateScript = ./update.py;
-
-    meta = with lib; {
-      description = "Sampling disk usage profiler for btrfs";
-      homepage = "https://github.com/CyberShadow/btdu";
-      changelog = "https://github.com/CyberShadow/btdu/releases/tag/v${version}";
-      license = licenses.gpl2Only;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ atila ];
-      mainProgram = "btdu";
-    };
+buildDubPackage rec {
+  pname = "btdu";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "CyberShadow";
+    repo = "btdu";
+    rev = "v${version}";
+    hash = "sha256-3sSZq+5UJH02IO0Y1yL3BLHDb4lk8k6awb5ZysBQciE=";
+  };
+
+  dubLock = ./dub-lock.json;
+
+  buildInputs = [
+    ncurses
+    zlib
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 btdu -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Sampling disk usage profiler for btrfs";
+    homepage = "https://github.com/CyberShadow/btdu";
+    changelog = "https://github.com/CyberShadow/btdu/releases/tag/${src.rev}";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ atila ];
+    mainProgram = "btdu";
+  };
 }
diff --git a/pkgs/tools/misc/btdu/dub-lock.json b/pkgs/tools/misc/btdu/dub-lock.json
new file mode 100644
index 0000000000000..9a7ab79a5e049
--- /dev/null
+++ b/pkgs/tools/misc/btdu/dub-lock.json
@@ -0,0 +1,20 @@
+{
+  "dependencies": {
+    "ae": {
+      "version": "0.0.3236",
+      "sha256": "0by9yclvk795nw7ilwhv7wh17j2dd7xk54phs8s5jxrwpqx10x52"
+    },
+    "btrfs": {
+      "version": "0.0.18",
+      "sha256": "0m8r4skfiryn2nk4wyb61lpvlga1330crr4y1h0q39g9xl3g6myf"
+    },
+    "ncurses": {
+      "version": "1.0.0",
+      "sha256": "0ivl88vp2dy9rpv6x3f9jlyqa7aps2x1kkyx80w2d4vcs31pzmb2"
+    },
+    "emsi_containers": {
+      "version": "0.9.0",
+      "sha256": "1viz1fjh6jhfvl0d25bb1q7aclm1hrs0d7hhcx1d9c0gg5k6lcpm"
+    }
+  }
+}
diff --git a/pkgs/tools/misc/btdu/update.py b/pkgs/tools/misc/btdu/update.py
deleted file mode 100755
index aa3b149d733ea..0000000000000
--- a/pkgs/tools/misc/btdu/update.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i python -p python39Packages.requests
-
-import requests
-import subprocess
-
-pkgbuild = requests.get('https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=btdu').text
-
-def grabDepVersions(depDict, pkgbuild=pkgbuild):
-    for line in pkgbuild.split('\n'):
-        if depDict["string"] in line:
-            start = len(depDict["string"]) + 1
-            depDict["version"] = line[start:]
-            break
-
-def grabDepHashes(key,pkgbuild=pkgbuild):
-    start = pkgbuild.find(key) + len(key)
-    end = start+64
-    hashes = []
-    for i in range(5):
-        hashes.append(pkgbuild[start:end])
-        start     = pkgbuild.find("'",end+1) + 1
-        end       = start+64
-    return hashes
-
-def findLine(key,derivation):
-    count = 0
-    lines = []
-    for line in derivation:
-        if key in line:
-            lines.append(count)
-        count += 1
-    return lines
-
-def updateVersions(btdu,ae,btrfs,ncurses,containers,derivation):
-    key = "let"
-    line = findLine(key,derivation)[0] + 1
-    derivation[line+0] = f'    _d_ae_ver              = "{ae["version"]}";\n'
-    derivation[line+1] = f'    _d_btrfs_ver           = "{btrfs["version"]}";\n'
-    derivation[line+2] = f'    _d_ncurses_ver         = "{ncurses["version"]}";\n'
-    derivation[line+3] = f'    _d_emsi_containers_ver = "{containers["version"]}";\n'
-
-    key = "version = "
-    line = findLine(key,derivation)[0]
-    derivation[line] = f'    version = "{btdu["version"]}";\n'
-
-    return derivation
-
-def updateHashes(btdu,ae,btrfs,ncurses,containers,derivation):
-    key = "sha256 = "
-    hashLines = findLine(key,derivation)
-    for i in range(len(hashes)):
-        derivation[hashLines[i]] = f'        sha256 = "{hashes[i]}";\n'
-
-    return derivation
-
-if __name__ == "__main__":
-
-    btdu       = {"string": "pkgver"}
-    ae         = {"string": "_d_ae_ver"}
-    btrfs      = {"string": "_d_btrfs_ver"}
-    ncurses    = {"string": "_d_ncurses_ver"}
-    containers = {"string": "_d_emsi_containers_ver"}
-
-    grabDepVersions(btdu)
-    grabDepVersions(ae)
-    grabDepVersions(btrfs)
-    grabDepVersions(ncurses)
-    grabDepVersions(containers)
-
-    hashes = grabDepHashes("sha256sums=('")
-
-    nixpkgs = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip('\n')
-    btduFolder = "/pkgs/tools/misc/btdu/"
-    with open(nixpkgs + btduFolder + "default.nix", 'r') as arq:
-        derivation = arq.readlines()
-
-    derivation = updateVersions(btdu,ae,btrfs,ncurses,containers,derivation)
-    derivation = updateHashes(btdu,ae,btrfs,ncurses,containers,derivation)
-
-    with open(nixpkgs + btduFolder + "default.nix", 'w') as arq:
-        arq.writelines(derivation)
diff --git a/pkgs/tools/misc/cyberchef/default.nix b/pkgs/tools/misc/cyberchef/default.nix
index 3fc4aab54dc69..ee4c695a43e65 100644
--- a/pkgs/tools/misc/cyberchef/default.nix
+++ b/pkgs/tools/misc/cyberchef/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cyberchef";
-  version = "10.9.0";
+  version = "10.15.0";
 
   src = fetchzip {
     url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
-    sha256 = "sha256-lsQC86gTfDQy7wonoYdQitdF+4hn8qyFpXKg+AL5TnU=";
+    sha256 = "sha256-QXVqFMG6NJeeTON7w+46MjWXs1bIRL2ji047IvHgvYI=";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/misc/fastfetch/default.nix b/pkgs/tools/misc/fastfetch/default.nix
index cbc880f2cf1b0..e2c7b4dbbbf09 100644
--- a/pkgs/tools/misc/fastfetch/default.nix
+++ b/pkgs/tools/misc/fastfetch/default.nix
@@ -8,6 +8,7 @@
 , dconf
 , ddcutil
 , glib
+, hwdata
 , imagemagick_light
 , libXrandr
 , libglvnd
@@ -20,7 +21,6 @@
 , nix-update-script
 , ocl-icd
 , opencl-headers
-, pciutils
 , pcre
 , pcre2
 , pkg-config
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.8.10";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-MIrjfd1KudtU+4X65M+qdPtWUPWQXBlE13Myp1u8hPM=";
+    hash = "sha256-D9WErPf9Um7McUK465c2FzZkWz/+dtPSIFMA04ak7Y4=";
   };
 
   outputs = [ "out" "man" ];
@@ -73,13 +73,13 @@ stdenv.mkDerivation (finalAttrs: {
     dconf
     ddcutil
     glib
+    hwdata
     libpulseaudio
     libselinux
     libsepol
     networkmanager
     ocl-icd
     opencl-headers
-    pciutils
     util-linux
     zlib
   ] ++ lib.optionals rpmSupport [
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 32d0d1b271244..eddcb4b7784dd 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -20,6 +20,9 @@ rustPlatform.buildRustPackage rec {
   # skip flaky test
   checkFlags = [
     "--skip=test_owner_current_group"
+    # Fails if the filesystem performs UTF-8 validation (such as ZFS with utf8only=on)
+    "--skip=test_exec_invalid_utf8"
+    "--skip=test_invalid_utf8"
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/misc/geekbench/5.nix b/pkgs/tools/misc/geekbench/5.nix
index 7784b3632a730..49efe2ea0bf93 100644
--- a/pkgs/tools/misc/geekbench/5.nix
+++ b/pkgs/tools/misc/geekbench/5.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   inherit version;
   pname = "geekbench";
 
-  src = fetchurl (sources.${stdenv.system});
+  src = fetchurl (sources.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"));
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/tools/misc/geekbench/6.nix b/pkgs/tools/misc/geekbench/6.nix
index 4ac5f1d0e49a3..373d93dc193c1 100644
--- a/pkgs/tools/misc/geekbench/6.nix
+++ b/pkgs/tools/misc/geekbench/6.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   inherit version;
   pname = "geekbench";
 
-  src = fetchurl (sources.${stdenv.system});
+  src = fetchurl (sources.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"));
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index da0445730f0f7..b405df9159086 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -9,16 +9,16 @@
 }:
 buildGoModule rec {
   pname = "goreleaser";
-  version = "1.24.0";
+  version = "1.25.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-oC35g9F9tsbpoccfh1bgLHveW4xAQ3cMnvdYiGoI8Ys=";
+    hash = "sha256-1GQOnDwQkzoyLPehog32uwg6h2swBcbvxmZENaVaLCI=";
   };
 
-  vendorHash = "sha256-5M2OkmjQJM+n5Hr4nRGSFWSmNAj5vXJp/3aw6ppOXoI=";
+  vendorHash = "sha256-vI/S4QtN72tmBVZ2PPcavotJBkl+bdXO9OFqlOGw1J8=";
 
   ldflags =
     [ "-s" "-w" "-X main.version=${version}" "-X main.builtBy=nixpkgs" ];
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index 0ad8c5907a700..0359da603ccbb 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_i386.deb";
       sha256 = "32017d26bafffaaf0a83dd6954d3926557014af4022a972371169c56c0e3d98b";
     };
-  }."${stdenv.hostPlatform.system}";
+  }."${stdenv.hostPlatform.system}" or (throw "unsupported system ${stdenv.hostPlatform.system}");
 
   dontBuild = true;
   dontConfigure = true;
diff --git a/pkgs/tools/misc/open-pdf-sign/default.nix b/pkgs/tools/misc/open-pdf-sign/default.nix
index 282ad778db5f5..76d957d340adc 100644
--- a/pkgs/tools/misc/open-pdf-sign/default.nix
+++ b/pkgs/tools/misc/open-pdf-sign/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "0.1.7";
+  version = "0.2.0";
   pname = "open-pdf-sign";
 
   src = fetchurl {
     url = "https://github.com/open-pdf-sign/open-pdf-sign/releases/download/v${finalAttrs.version}/open-pdf-sign.jar";
-    hash = "sha256-pUIE2pTa+5Rt8PNYtfbtqoX0dxdS6lViqdqjJU5feoo=";
+    hash = "sha256-W4WymhjLrHtNK5XY8aahpZOIIh/Qp9scE3zybXF6/9o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
index bad1051fcc643..a7c8eb79af576 100644
--- a/pkgs/tools/misc/opentelemetry-collector/contrib.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector-contrib";
-  version = "0.96.0";
+  version = "0.97.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "sha256-eQau6PcslY/Bzghmndv1lq5fb+Q+x9guouKzLw5sJTg=";
+    sha256 = "sha256-tUvjNxjPLU5GbWbm4ZbU5oJv8VvAxz4+1n++H8hDqI0=";
   };
 
   # proxy vendor to avoid hash missmatches between linux and macOS
   proxyVendor = true;
-  vendorHash = "sha256-aMxOu6eCskTlphMjM/CBs0lN6UkLDgSidS9qwlSUUiU=";
+  vendorHash = "sha256-raTqiNCb0bXK2vE/3yBo40Um5SY+XZEbzdeIPRyFoQk=";
 
   # there is a nested go.mod
   sourceRoot = "${src.name}/cmd/otelcontribcol";
diff --git a/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch b/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
deleted file mode 100644
index c255a2762017e..0000000000000
--- a/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-From 196c2e1036ed990bca57c199f271c0359509e9f9 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 19 Jun 2018 09:34:18 -0400
-Subject: [PATCH] Drop "ostree trivial-httpd" CLI, move to tests directory
-
-See https://github.com/ostreedev/ostree/issues/1593
-
-Basically this makes it easier for people packaging, as the trivial-httpd
-is only for tests, and this way the binary will live with the tests.
-
-Also at this point nothing should depend on `ostree trivial-httpd`.
----
- Makefile-man.am              |   6 --
- Makefile-ostree.am           |   7 ---
- Makefile-tests.am            |   7 +++
- configure.ac                 |   9 ---
- man/ostree-trivial-httpd.xml | 116 -----------------------------------
- src/ostree/main.c            |   5 --
- tests/libtest.sh             |  13 ++--
- 7 files changed, 12 insertions(+), 151 deletions(-)
- delete mode 100644 man/ostree-trivial-httpd.xml
-
-diff --git a/Makefile-man.am b/Makefile-man.am
-index 78025fff..4aa668f6 100644
---- a/Makefile-man.am
-+++ b/Makefile-man.am
-@@ -32,12 +32,6 @@ ostree-init.1 ostree-log.1 ostree-ls.1 ostree-prune.1 ostree-pull-local.1 \
- ostree-pull.1 ostree-refs.1 ostree-remote.1 ostree-reset.1 \
- ostree-rev-parse.1 ostree-show.1 ostree-sign.1 ostree-summary.1 \
- ostree-static-delta.1
--if USE_LIBSOUP
--man1_files += ostree-trivial-httpd.1
--else
--# We still want to distribute the source, even if we are not building it
--EXTRA_DIST += man/ostree-trivial-httpd.xml
--endif
- 
- if BUILDOPT_FUSE
- man1_files += rofiles-fuse.1
-diff --git a/Makefile-ostree.am b/Makefile-ostree.am
-index 82af1681..dabc7004 100644
---- a/Makefile-ostree.am
-+++ b/Makefile-ostree.am
-@@ -138,13 +138,6 @@ ostree_SOURCES += src/ostree/ot-builtin-pull.c
- endif
- 
- if USE_LIBSOUP
--# Eventually once we stop things from using this, we should support disabling this
--ostree_SOURCES += src/ostree/ot-builtin-trivial-httpd.c
--pkglibexec_PROGRAMS += ostree-trivial-httpd
--ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
--ostree_trivial_httpd_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
--ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS)
--
- if !USE_CURL
- # This is necessary for the cookie jar bits
- ostree_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS)
-diff --git a/Makefile-tests.am b/Makefile-tests.am
-index 6bae65cf..47b3ab20 100644
---- a/Makefile-tests.am
-+++ b/Makefile-tests.am
-@@ -275,6 +275,13 @@ _installed_or_uninstalled_test_programs += \
- 	$(NULL)
- endif
- 
-+if USE_LIBSOUP
-+test_extra_programs += ostree-trivial-httpd
-+ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
-+ostree_trivial_httpd_CFLAGS = $(common_tests_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
-+ostree_trivial_httpd_LDADD = $(common_tests_ldadd) $(OT_INTERNAL_SOUP_LIBS)
-+endif
-+
- if USE_AVAHI
- test_programs += tests/test-repo-finder-avahi
- endif
-diff --git a/configure.ac b/configure.ac
-index 93b98cb9..a588eea6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -186,14 +186,6 @@ if test x$with_soup != xno; then OSTREE_FEATURES="$OSTREE_FEATURES libsoup"; fi
- AM_CONDITIONAL(USE_LIBSOUP, test x$with_soup != xno)
- AM_CONDITIONAL(HAVE_LIBSOUP_CLIENT_CERTS, test x$have_libsoup_client_certs = xyes)
- 
--AC_ARG_ENABLE(trivial-httpd-cmdline,
--  [AS_HELP_STRING([--enable-trivial-httpd-cmdline],
--  [Continue to support "ostree trivial-httpd" [default=no]])],,
--  enable_trivial_httpd_cmdline=no)
--AS_IF([test x$enable_trivial_httpd_cmdline = xyes],
--  [AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])]
--)
--
- AS_IF([test x$with_curl = xyes && test x$with_soup = xno], [
-   AC_MSG_WARN([Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)])
- ])
-@@ -606,7 +598,6 @@ echo "
-     introspection:                                $found_introspection
-     rofiles-fuse:                                 $enable_rofiles_fuse
-     HTTP backend:                                 $fetcher_backend
--    \"ostree trivial-httpd\":                       $enable_trivial_httpd_cmdline
-     SELinux:                                      $with_selinux
-     fs-verity:                                    $ac_cv_header_linux_fsverity_h
-     cryptographic checksums:                      $with_crypto
-diff --git a/man/ostree-trivial-httpd.xml b/man/ostree-trivial-httpd.xml
-deleted file mode 100644
-index 7ba1dae8..00000000
---- a/man/ostree-trivial-httpd.xml
-+++ /dev/null
-@@ -1,116 +0,0 @@
--<?xml version='1.0'?> <!--*-nxml-*-->
--<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
--    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
--
--<!--
--Copyright 2011,2013 Colin Walters <walters@verbum.org>
--
--SPDX-License-Identifier: LGPL-2.0+
--
--This library is free software; you can redistribute it and/or
--modify it under the terms of the GNU Lesser General Public
--License as published by the Free Software Foundation; either
--version 2 of the License, or (at your option) any later version.
--
--This library is distributed in the hope that it will be useful,
--but WITHOUT ANY WARRANTY; without even the implied warranty of
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--Lesser General Public License for more details.
--
--You should have received a copy of the GNU Lesser General Public
--License along with this library. If not, see <https://www.gnu.org/licenses/>.
---->
--
--<refentry id="ostree">
--
--    <refentryinfo>
--        <title>ostree trivial-httpd</title>
--        <productname>OSTree</productname>
--
--        <authorgroup>
--            <author>
--                <contrib>Developer</contrib>
--                <firstname>Colin</firstname>
--                <surname>Walters</surname>
--                <email>walters@verbum.org</email>
--            </author>
--        </authorgroup>
--    </refentryinfo>
--
--    <refmeta>
--        <refentrytitle>ostree trivial-httpd</refentrytitle>
--        <manvolnum>1</manvolnum>
--    </refmeta>
--
--    <refnamediv>
--        <refname>ostree-trivial-httpd</refname>
--        <refpurpose>Simple webserver</refpurpose>
--    </refnamediv>
--
--    <refsynopsisdiv>
--            <cmdsynopsis>
--                <command>ostree trivial-httpd</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">DIR</arg>
--            </cmdsynopsis>
--    </refsynopsisdiv>
--
--<!-- Don't entirely understand this command.  Needs details, better content-->
--    <refsect1>
--        <title>Description</title>
--
--        <para>
--            This runs a simple webserver and keeps it running until killed.  If DIR is not specified, it defaults to the current directory.
--        </para>
--    </refsect1>
--
--    <refsect1>
--        <title>Options</title>
--
--        <variablelist>
--            <varlistentry>
--                <term><option>--daemonize</option>,<option>-d</option></term>
--
--                <listitem><para>
--                    Fork into background when ready.
--                </para></listitem>
--            </varlistentry>
--
--            <varlistentry>
--                <term><option>--autoexit</option></term>
--
--                <listitem><para>
--                    Automatically exit when directory is deleted.
--                </para></listitem>
--            </varlistentry>
--
--            <varlistentry>
--                <term><option>--port-file</option>,<option>-p</option>="PATH"</term>
--
--                <listitem><para>
--                    Write port number to PATH (- for standard output).
--                </para></listitem>
--            </varlistentry>
--
--            <varlistentry>
--                <term><option>--port</option>,<option>-P</option></term>
--
--                <listitem><para>
--                    Use the specified TCP port to listen on.
--                </para></listitem>
--            </varlistentry>
--
--            <varlistentry>
--                <term><option>--force-range-requests</option></term>
--
--                <listitem><para>
--                    Force range requests by only serving half of files.
--                </para></listitem>
--            </varlistentry>
--        </variablelist>
--    </refsect1>
--
--<!-- NEED EXAMPLE OUTPUT HERE!-->
--    <refsect1>
--        <title>Example</title>
--        <para><command>$ ostree trivial-httpd</command></para>
--    </refsect1>
--</refentry>
-diff --git a/src/ostree/main.c b/src/ostree/main.c
-index 7d17080c..19d9b8b0 100644
---- a/src/ostree/main.c
-+++ b/src/ostree/main.c
-@@ -118,11 +118,6 @@ static OstreeCommand commands[] = {
-   { "summary", OSTREE_BUILTIN_FLAG_NONE,
-     ostree_builtin_summary,
-     "Manage summary metadata" },
--#if defined(HAVE_LIBSOUP) && defined(BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE)
--  { "trivial-httpd", OSTREE_BUILTIN_FLAG_NONE,
--    ostree_builtin_trivial_httpd,
--    NULL },
--#endif
-   { NULL }
- };
- 
-diff --git a/tests/libtest.sh b/tests/libtest.sh
-index 686f08dc..79f8bd1f 100755
---- a/tests/libtest.sh
-+++ b/tests/libtest.sh
-@@ -174,15 +174,12 @@ fi
- if test -n "${OSTREE_UNINSTALLED:-}"; then
-     OSTREE_HTTPD=${OSTREE_UNINSTALLED}/ostree-trivial-httpd
- else
--    # trivial-httpd is now in $libexecdir by default, which we don't
--    # know at this point. Fortunately, libtest.sh is also in
--    # $libexecdir, so make an educated guess. If it's not found, assume
--    # it's still runnable as "ostree trivial-httpd".
--    if [ -x "${test_srcdir}/../../libostree/ostree-trivial-httpd" ]; then
--        OSTREE_HTTPD="${CMD_PREFIX} ${test_srcdir}/../../libostree/ostree-trivial-httpd"
--    else
--        OSTREE_HTTPD="${CMD_PREFIX} ostree trivial-httpd"
-+    # trivial-httpd is now the test directory.
-+    OSTREE_HTTPD="${G_TEST_BUILDDIR}/ostree-trivial-httpd"
-+    if ! [ -x "${OSTREE_HTTPD}" ]; then
-+        fatal "Failed to find ${OSTREE_HTTPD}"
-     fi
-+    OSTREE_HTTPD="${CMD_PREFIX} ${OSTREE_HTTPD}"
- fi
- 
- files_are_hardlinked() {
--- 
-2.35.1
-
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index dcb4065a02c0e..025b57a8eb442 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -42,31 +42,15 @@ let
   ]);
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2023.2";
+  version = "2024.4";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "sha256-zrB4h1Wgv/VzjURUNVL7+IPPcd9IG6o8pyiNp6QCu4U=";
+    sha256 = "sha256-Y8kZCCEzOsc3Pg2SPkwnZrJevc/fTvtEy1koxlidn8s=";
   };
 
-  patches = [
-    # Tests access the helper using relative path
-    # https://github.com/ostreedev/ostree/issues/1593
-    # Patch from https://github.com/ostreedev/ostree/pull/1633
-    ./01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
-
-    # Workarounds for https://github.com/ostreedev/ostree/issues/1592
-    ./fix-1592.patch
-
-    # Hard-code paths in tests
-    (substituteAll {
-      src = ./fix-test-paths.patch;
-      python3 = testPython.interpreter;
-      openssl = "${openssl}/bin/openssl";
-    })
-  ];
 
   nativeBuildInputs = [
     autoconf
diff --git a/pkgs/tools/misc/ostree/fix-1592.patch b/pkgs/tools/misc/ostree/fix-1592.patch
deleted file mode 100644
index 6b154d3def18c..0000000000000
--- a/pkgs/tools/misc/ostree/fix-1592.patch
+++ /dev/null
@@ -1,149 +0,0 @@
---- a/tests/basic-test.sh
-+++ b/tests/basic-test.sh
-@@ -226,7 +226,7 @@ cd ${test_tmpdir}
- if $OSTREE commit ${COMMIT_ARGS} -b test-bootable --bootable $test_tmpdir/checkout-test2-4 2>err.txt; then
-     fatal "committed non-bootable tree"
- fi
--assert_file_has_content err.txt "error: .*No such file or directory"
-+assert_file_has_content err.txt "error:.*No such file or directory"
- echo "ok commit fails bootable if no kernel"
- 
- cd ${test_tmpdir}
-diff --git a/tests/pull-test.sh b/tests/pull-test.sh
-index f4084290..4af5ec6f 100644
---- a/tests/pull-test.sh
-+++ b/tests/pull-test.sh
-@@ -297,7 +297,7 @@ ostree_repo_init mirrorrepo-local --mode=archive
- if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo 2>err.txt; then
-     fatal "pull with mixed refs succeeded?"
- fi
--assert_file_has_content err.txt "error: Invalid ref name origin:main"
-+assert_file_has_content err.txt "Invalid ref name origin:main"
- ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo localbranch
- ${CMD_PREFIX} ostree --repo=mirrorrepo-local rev-parse localbranch
- ${CMD_PREFIX} ostree --repo=mirrorrepo-local fsck
-@@ -308,7 +308,7 @@ if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo nosuchbranc
-     fatal "pulled nonexistent branch"
- fi
- # So true
--assert_file_has_content_literal err.txt "error: Refspec 'nosuchbranch' not found"
-+assert_file_has_content_literal err.txt "Refspec 'nosuchbranch' not found"
- echo "ok pull-local nonexistent branch"
- 
- cd ${test_tmpdir}
-@@ -687,5 +687,5 @@ rm ostree-srv/gnomerepo/summary
- if ${CMD_PREFIX} ostree --repo=repo pull origin main 2>err.txt; then
-     fatal "pull of invalid ref succeeded"
- fi
--assert_file_has_content_literal err.txt 'error: Fetching checksum for ref ((empty), main): Invalid rev lots of html here  lots of html here  lots of html here  lots of'
-+assert_file_has_content_literal err.txt 'Fetching checksum for ref ((empty), main): Invalid rev lots of html here  lots of html here  lots of html here  lots of'
- echo "ok pull got HTML for a ref"
-diff --git a/tests/test-config.sh b/tests/test-config.sh
-index 2d9aaf53..f1e28614 100755
---- a/tests/test-config.sh
-+++ b/tests/test-config.sh
-@@ -44,7 +44,7 @@ assert_file_has_content list.txt "http://example\.com/ostree/repo/"
- if ${CMD_PREFIX} ostree config --repo=repo get --group=core lock-timeout-secs extra 2>err.txt; then
-     assert_not_reached "ostree config get should error out if too many arguments are given"
- fi
--assert_file_has_content err.txt "error: Too many arguments given"
-+assert_file_has_content err.txt "Too many arguments given"
- echo "ok config get"
- 
- ${CMD_PREFIX} ostree config --repo=repo set core.mode bare-user-only
-@@ -61,7 +61,7 @@ assert_file_has_content repo/config "http://example\.com/ostree/"
- if ${CMD_PREFIX} ostree config --repo=repo set --group=core lock-timeout-secs 120 extra 2>err.txt; then
-     assert_not_reached "ostree config set should error out if too many arguments are given"
- fi
--assert_file_has_content err.txt "error: Too many arguments given"
-+assert_file_has_content err.txt "Too many arguments given"
- echo "ok config set"
- 
- # Check that using `--` works and that "ostree config unset" works
-@@ -78,7 +78,7 @@ if ${CMD_PREFIX} ostree config --repo=repo get core.lock-timeout-secs 2>err.txt;
- fi
- # Check for any character where quotation marks would be as they appear differently in the Fedora and Debian
- # test suites (“” and '' respectively). See: https://github.com/ostreedev/ostree/pull/1839
--assert_file_has_content err.txt "error: Key file does not have key .lock-timeout-secs. in group .core."
-+assert_file_has_content err.txt "Key file does not have key .lock-timeout-secs. in group .core."
- 
- # Check that it's idempotent
- ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs
-@@ -95,5 +95,5 @@ ${CMD_PREFIX} ostree config --repo=repo unset --group='remote "aoeuhtns"' 'xa.ti
- if ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs extra 2>err.txt; then
-     assert_not_reached "ostree config unset should error out if too many arguments are given"
- fi
--assert_file_has_content err.txt "error: Too many arguments given"
-+assert_file_has_content err.txt "Too many arguments given"
- echo "ok config unset"
-diff --git a/tests/test-fsck-collections.sh b/tests/test-fsck-collections.sh
-index 3dbcdd23..d6359979 100755
---- a/tests/test-fsck-collections.sh
-+++ b/tests/test-fsck-collections.sh
-@@ -98,7 +98,7 @@ ${CMD_PREFIX} ostree fsck --repo=repo
- if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
-     assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
- fi
--assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref1’)"
-+assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
- assert_file_has_content fsck "^Validating refs\.\.\.$"
- 
- echo "ok 3 fsck detects missing ref bindings"
-@@ -111,7 +111,7 @@ ${CMD_PREFIX} ostree --repo=repo refs --collections --create=org.example.Collect
- if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
-     assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
- fi
--assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref1’)"
-+assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
- assert_file_has_content fsck "^Validating refs\.\.\.$"
- assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
- 
-@@ -125,7 +125,7 @@ ${CMD_PREFIX} ostree --repo=repo refs --collections --create=org.example.Collect
- if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
-     assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
- fi
--assert_file_has_content fsck-error "Commit has collection ID ‘org\.example\.Collection’ in collection binding metadata, while the remote it came from has collection ID ‘org\.example\.Collection2’"
-+assert_file_has_content fsck-error "Commit has collection ID .org\.example\.Collection. in collection binding metadata, while the remote it came from has collection ID .org\.example\.Collection2."
- assert_file_has_content fsck "^Validating refs\.\.\.$"
- assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
- 
-@@ -145,7 +145,7 @@ echo "ok 6 fsck ignores unreferenced ref bindings"
- if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
-     assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
- fi
--assert_file_has_content fsck-error "Collection–ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist"
-+assert_file_has_content fsck-error 'Collection.ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist'
- assert_file_has_content fsck "^Validating refs\.\.\.$"
- assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
- 
-@@ -184,7 +184,7 @@ ${CMD_PREFIX} ostree --repo=repo refs --create=new-ref $(cat ref3-checksum)
- if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
-     assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
- fi
--assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref3’, ‘ref4’)"
-+assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref3., .ref4.)"
- assert_file_has_content fsck "^Validating refs\.\.\.$"
- 
- echo "ok 9 fsck detects missing ref bindings"
-@@ -203,7 +203,7 @@ echo "ok 10 fsck ignores unreferenced ref bindings"
- if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
-     assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
- fi
--assert_file_has_content fsck-error "Ref ‘ref3’ in bindings for commit .* does not exist"
-+assert_file_has_content fsck-error 'Ref .ref3. in bindings for commit .* does not exist'
- assert_file_has_content fsck "^Validating refs\.\.\.$"
- 
- echo "ok 11 fsck ignores unreferenced ref bindings"
-diff --git a/tests/test-remote-add.sh b/tests/test-remote-add.sh
-index 2f5ea634..0f63853c 100755
---- a/tests/test-remote-add.sh
-+++ b/tests/test-remote-add.sh
-@@ -81,7 +81,7 @@ echo "ok remote delete"
- if $OSTREE remote delete nosuchremote 2>err.txt; then
-     assert_not_reached "Deleting remote unexpectedly succeeded"
- fi
--assert_file_has_content err.txt "error: "
-+assert_file_has_content err.txt "not found"
- 
- $OSTREE remote delete --if-exists nosuchremote
- echo "ok"
diff --git a/pkgs/tools/misc/ostree/fix-test-paths.patch b/pkgs/tools/misc/ostree/fix-test-paths.patch
deleted file mode 100644
index 3e5b7e06999e8..0000000000000
--- a/pkgs/tools/misc/ostree/fix-test-paths.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff --git a/tests/libtest.sh b/tests/libtest.sh
-index ca457fa2..c0a529ff 100755
---- a/tests/libtest.sh
-+++ b/tests/libtest.sh
-@@ -709,12 +709,12 @@ gen_ed25519_keys ()
- {
-   # Generate private key in PEM format
-   pemfile="$(mktemp -p ${test_tmpdir} ed25519_XXXXXX.pem)"
--  openssl genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
-+  @openssl@ genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
- 
-   # Based on: http://openssl.6102.n7.nabble.com/ed25519-key-generation-td73907.html
-   # Extract the private and public parts from generated key.
--  ED25519PUBLIC="$(openssl pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
--  ED25519SEED="$(openssl pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
-+  ED25519PUBLIC="$(@openssl@ pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
-+  ED25519SEED="$(@openssl@ pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
-   # Secret key is concantination of SEED and PUBLIC
-   ED25519SECRET="$(echo ${ED25519SEED}${ED25519PUBLIC} | base64 -d | base64 -w 0)"
- 
-@@ -725,7 +725,7 @@ gen_ed25519_keys ()
- 
- gen_ed25519_random_public()
- {
--  openssl genpkey -algorithm ED25519 | openssl pkey -outform DER | tail -c 32 | base64
-+  @openssl@ genpkey -algorithm ED25519 | @openssl@ pkey -outform DER | tail -c 32 | base64
- }
- 
- is_bare_user_only_repo () {
-diff --git a/tests/test-basic-user-only.sh b/tests/test-basic-user-only.sh
-index f65094fd..105be893 100755
---- a/tests/test-basic-user-only.sh
-+++ b/tests/test-basic-user-only.sh
-@@ -29,7 +29,7 @@ extra_basic_tests=5
- . $(dirname $0)/basic-test.sh
- 
- $CMD_PREFIX ostree --version > version.yaml
--python3 -c 'import yaml; yaml.safe_load(open("version.yaml"))'
-+@python3@ -c 'import yaml; yaml.safe_load(open("version.yaml"))'
- echo "ok yaml version"
- 
- # Reset things so we don't inherit a lot of state from earlier tests
-diff --git a/tests/test-remote-headers.sh b/tests/test-remote-headers.sh
-index a41d087a..77b34c90 100755
---- a/tests/test-remote-headers.sh
-+++ b/tests/test-remote-headers.sh
-@@ -26,7 +26,7 @@ echo '1..2'
- . $(dirname $0)/libtest.sh
- 
- V=$($CMD_PREFIX ostree --version | \
--  python3 -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])')
-+  @python3@ -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])')
- 
- setup_fake_remote_repo1 "archive" "" \
-   --expected-header foo=bar \
diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix
index bd35304f3cf1d..988c7245ded14 100644
--- a/pkgs/tools/misc/parquet-tools/default.nix
+++ b/pkgs/tools/misc/parquet-tools/default.nix
@@ -7,7 +7,7 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "parquet-tools";
-  version = "0.2.14";
+  version = "0.2.16";
 
   format = "pyproject";
 
@@ -15,9 +15,15 @@ buildPythonApplication rec {
     owner = "ktrueda";
     repo = "parquet-tools";
     rev = "refs/tags/${version}";
-    hash = "sha256-2jIwDsxB+g37zV9hLc2VNC5YuZXTpTmr2aQ72AeHYJo=";
+    hash = "sha256-mV66R5ejfzH1IasmoyAWAH5vzrnLVVhOqKBMfWKIVY0=";
   };
 
+  patches = [
+    # support Moto 5.x
+    # https://github.com/ktrueda/parquet-tools/pull/55
+    ./moto5.patch
+  ];
+
   postPatch = ''
     substituteInPlace tests/test_inspect.py \
       --replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version ${pyarrow.version}" \
@@ -46,6 +52,11 @@ buildPythonApplication rec {
     thrift
   ];
 
+  # TestGetMetaData.test_inspect shells out to `parquet-tools` CLI entrypoint
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+
   nativeCheckInputs = [
     moto
     pytest-mock
@@ -53,9 +64,6 @@ buildPythonApplication rec {
   ];
 
   disabledTests = [
-    # These tests try to read Python code as parquet and fail
-    "test_local_wildcard"
-    "test_local_and_s3_wildcard_files"
     # test file is 2 bytes bigger than expected
     "test_excute_simple"
   ];
diff --git a/pkgs/tools/misc/parquet-tools/moto5.patch b/pkgs/tools/misc/parquet-tools/moto5.patch
new file mode 100644
index 0000000000000..5e79c1a204fcc
--- /dev/null
+++ b/pkgs/tools/misc/parquet-tools/moto5.patch
@@ -0,0 +1,28 @@
+diff --git a/tests/fixtures/aws.py b/tests/fixtures/aws.py
+index 7eea4bd..9fb3345 100644
+--- a/tests/fixtures/aws.py
++++ b/tests/fixtures/aws.py
+@@ -1,15 +1,17 @@
+ import boto3
+-from moto import mock_s3
+ import pytest
+ 
++try:
++    # Moto 4.x
++    from moto import mock_s3
++except ImportError:
++    # Moto 5.x
++    from moto import mock_aws as mock_s3
+ 
+ @pytest.fixture
+ def aws_session():
+-    mock_s3_server = mock_s3()
+-    mock_s3_server.start()
+-    yield boto3.Session()
+-    mock_s3_server.stop()
+-
++    with mock_s3():
++        yield boto3.Session()
+ 
+ @pytest.fixture
+ def aws_s3_bucket(aws_session):
diff --git a/pkgs/tools/misc/phrase-cli/default.nix b/pkgs/tools/misc/phrase-cli/default.nix
index 9a7c6fc4633e9..a9a842f8451d4 100644
--- a/pkgs/tools/misc/phrase-cli/default.nix
+++ b/pkgs/tools/misc/phrase-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "phrase-cli";
-  version = "2.22.0";
+  version = "2.23.0";
 
   src = fetchFromGitHub {
     owner = "phrase";
     repo = "phrase-cli";
     rev = version;
-    sha256 = "sha256-k0Di69toio7uZiTCI34H0N+PnYXfxygQW9sZ9GpG3rU=";
+    sha256 = "sha256-ucuksG3T4cI/cuEsHe4+7RtY+n05p3RvW/tijZ49lVY=";
   };
 
-  vendorHash = "sha256-/V1jAF3Uf0AT8JF7hERK3Kc4fX15lDnoEsjeHS0QjpE=";
+  vendorHash = "sha256-ZWCwSiKoU/zXD9JJ/8qW2tiXWAMqkh0Md0MLz0V4P4E=";
 
   ldflags = [ "-X=github.com/phrase/phrase-cli/cmd.PHRASE_CLIENT_VERSION=${version}" ];
 
diff --git a/pkgs/tools/misc/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix
index 502761dc94261..2c11cbf195bd2 100644
--- a/pkgs/tools/misc/rmlint/default.nix
+++ b/pkgs/tools/misc/rmlint/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv
 , cairo
+, elfutils
 , fetchFromGitHub
 , glib
 , gobject-introspection
 , gtksourceview3
 , json-glib
-, libelf
 , makeWrapper
 , pango
 , pkg-config
@@ -48,7 +48,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     json-glib
-    libelf
     util-linux
   ] ++ lib.optionals withGui [
     cairo
@@ -57,6 +56,8 @@ stdenv.mkDerivation rec {
     polkit
     python3
     python3.pkgs.pygobject3
+  ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
+    elfutils
   ];
 
   prePatch = ''
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index 05218731add15..80f7d69db3041 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -6,21 +6,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vtm";
-  version = "0.9.74";
+  version = "0.9.76";
 
   src = fetchFromGitHub {
     owner = "netxs-group";
     repo = "vtm";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-O8fnh8I3KbiOD40bU0eO7tbvpMoSCVonKPVFx5pynR4=";
+    hash = "sha256-F1ia1xyg2/Jnm/lsSn7bKNJ7cXIJuvEhNTEZWiYxGAo=";
   };
 
   nativeBuildInputs = [
     cmake
   ];
 
-  cmakeFlags = [ "../src" ];
-
   meta = {
     description = "Terminal multiplexer with window manager and session sharing";
     homepage = "https://vtm.netxs.online/";
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index be27225ed3c4a..cc001d4da94aa 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wakapi";
-  version = "2.10.5";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "muety";
     repo = pname;
     rev = version;
-    sha256 = "sha256-u+br+C5tWSCc8LPGS3/CMkxpqaO30BsWPRFGOkloMlA=";
+    sha256 = "sha256-ZSnbbxSRgdAHNAFw9gUl02gw8H9/5UmgNphNpAYw2hY=";
   };
 
-  vendorHash = "sha256-TeKVhG1V9inyDWfILwtpU9QknJ9bt3Dja5GVHrK9PkA=";
+  vendorHash = "sha256-0IB9k/NY8Gcl2qLABMQJQ7BLimeDi3s9GvkmyCjxtfg=";
 
   # Not a go module required by the project, contains development utilities
   excludedPackages = [ "scripts" ];