about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix4
-rw-r--r--pkgs/applications/misc/process-compose/default.nix6
-rw-r--r--pkgs/applications/science/math/lrcalc/default.nix5
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/math/qalculate-qt/default.nix4
-rw-r--r--pkgs/by-name/ca/castxml/package.nix (renamed from pkgs/development/tools/castxml/default.nix)50
-rw-r--r--pkgs/by-name/do/doublecmd/package.nix4
-rw-r--r--pkgs/by-name/go/go-cover-treemap/package.nix28
-rw-r--r--pkgs/by-name/go/go-errorlint/package.nix6
-rw-r--r--pkgs/by-name/gr/grype/package.nix6
-rw-r--r--pkgs/by-name/ig/igvm-tooling/package.nix78
-rw-r--r--pkgs/by-name/lm/lms/package.nix86
-rw-r--r--pkgs/by-name/ni/nixos-anywhere/package.nix1
-rw-r--r--pkgs/by-name/sl/slumber/package.nix6
-rw-r--r--pkgs/by-name/sy/symfony-cli/package.nix6
-rw-r--r--pkgs/by-name/te/termsonic/package.nix33
-rw-r--r--pkgs/development/compilers/c3c/default.nix33
-rw-r--r--pkgs/development/libraries/catch2/3.nix5
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/python-modules/blackjax/default.nix20
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix5
-rw-r--r--pkgs/development/python-modules/cysignals/default.nix5
-rw-r--r--pkgs/development/python-modules/cython/default.nix5
-rw-r--r--pkgs/development/python-modules/fpylll/default.nix5
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix5
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix5
-rw-r--r--pkgs/development/python-modules/importlib-resources/default.nix5
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipython/default.nix5
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix5
-rw-r--r--pkgs/development/python-modules/jupyter-core/default.nix5
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix4
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix5
-rw-r--r--pkgs/development/python-modules/memory-allocator/default.nix5
-rw-r--r--pkgs/development/python-modules/mpmath/default.nix5
-rw-r--r--pkgs/development/python-modules/networkx/default.nix5
-rw-r--r--pkgs/development/python-modules/numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/pexpect/default.nix5
-rw-r--r--pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/pplpy/default.nix5
-rw-r--r--pkgs/development/python-modules/primecountpy/default.nix5
-rw-r--r--pkgs/development/python-modules/pyjson5/default.nix44
-rw-r--r--pkgs/development/python-modules/python-ecobee-api/default.nix32
-rw-r--r--pkgs/development/python-modules/scipy/default.nix4
-rw-r--r--pkgs/development/python-modules/sympy/default.nix5
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix6
-rw-r--r--pkgs/games/factorio/versions.json48
-rw-r--r--pkgs/tools/admin/awscli/default.nix1
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/python-aliases.nix1
-rw-r--r--pkgs/top-level/python-packages.nix2
53 files changed, 531 insertions, 112 deletions
diff --git a/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix b/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix
index 9b7f63edc74a2..ad8c6a9eac461 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "vscode-pylance";
     publisher = "MS-python";
-    version = "2024.4.1";
-    hash = "sha256-huKu6yefGXOay5Az4vksopRt8heoLxvKUrg/J1NlQFo=";
+    version = "2024.5.1";
+    hash = "sha256-w+T4dySTt2RpdBYd1Nnxh8RR9wqEu9pkS4R1Ay7Fn+8=";
   };
 
   buildInputs = [ pyright ];
diff --git a/pkgs/applications/misc/process-compose/default.nix b/pkgs/applications/misc/process-compose/default.nix
index 86258fa9805dc..78a122528707a 100644
--- a/pkgs/applications/misc/process-compose/default.nix
+++ b/pkgs/applications/misc/process-compose/default.nix
@@ -8,13 +8,13 @@ let config-module = "github.com/f1bonacc1/process-compose/src/config";
 in
 buildGoModule rec {
   pname = "process-compose";
-  version = "1.2.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "F1bonacc1";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-juFcVtHhqT6tw9YaKCDTUvX6NqqxEjqVK3Zom673IkQ=";
+    hash = "sha256-OxEo5fkRSdEZLyvK4Pt3EOWLO0ph6RkSD2OOeAWg72M=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -43,7 +43,7 @@ buildGoModule rec {
     installShellFiles
   ];
 
-  vendorHash = "sha256-9G8GPTJRuPahNcEhAddZsUKc1fexp6IrCZlCGKW0T64=";
+  vendorHash = "sha256-X4pMes9hLMF8bZ6MX5cZdm4HfjnHYshGlA/lXlHr1Ow=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/science/math/lrcalc/default.nix b/pkgs/applications/science/math/lrcalc/default.nix
index 90ee50c682800..0d968e0161796 100644
--- a/pkgs/applications/science/math/lrcalc/default.nix
+++ b/pkgs/applications/science/math/lrcalc/default.nix
@@ -1,6 +1,9 @@
 { lib, stdenv
 , fetchFromBitbucket
 , autoreconfHook
+
+# Reverse dependency
+, sage
 }:
 
 stdenv.mkDerivation rec {
@@ -20,6 +23,8 @@ stdenv.mkDerivation rec {
     autoreconfHook
   ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Littlewood-Richardson calculator";
     homepage = "http://math.rutgers.edu/~asbuch/lrcalc/";
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 9673d7d479d02..ab11d833f70c5 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qalculate-gtk";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-hlGNL7aMzxBxtATWJBqJTFEQqMv10oC3sRCdtRLHOww=";
+    hash = "sha256-yI+8TrNZJt4eJnDX5mk6RozBe2ZeP7sTyAjsgiYQPck=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/math/qalculate-qt/default.nix b/pkgs/applications/science/math/qalculate-qt/default.nix
index 296fc5f783f38..a830c7ddd00ec 100644
--- a/pkgs/applications/science/math/qalculate-qt/default.nix
+++ b/pkgs/applications/science/math/qalculate-qt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qalculate-qt";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-qt";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-X7IY2yXpZiyE+T2dl0G4tWpJ5O6MVCy/sOY3v9inma0=";
+    hash = "sha256-gJfIC5HdA10gb/Dh/yhJbkCZfhUnN0zihqyfDjPv6ow=";
   };
 
   nativeBuildInputs = [ qmake intltool pkg-config qttools wrapQtAppsHook ];
diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/by-name/ca/castxml/package.nix
index bceafd504dccc..2b0a255bbdc86 100644
--- a/pkgs/development/tools/castxml/default.nix
+++ b/pkgs/by-name/ca/castxml/package.nix
@@ -1,14 +1,16 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, libffi
-, libxml2
-, zlib
-, withManual ? true
-, withHTML ? true
-, llvmPackages
-, python3
+{
+  cmake,
+  fetchFromGitHub,
+  lib,
+  libffi,
+  libxml2,
+  llvmPackages,
+  python3,
+  stdenv,
+  zlib,
+  # Boolean flags
+  withHTML ? true,
+  withManual ? true,
 }:
 
 let
@@ -17,19 +19,20 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "castxml";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "CastXML";
     repo = "CastXML";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-r9Emh2KHjANrg+oWeY8Ags3Gd8k3W68J88bAud+AH6I=";
+    hash = "sha256-icTos9HboZXvojQPX+pRkpBYiZ5SXSMb9XtvRnXNHuo=";
   };
 
   nativeBuildInputs = [
     cmake
-    llvm.dev
-  ] ++ lib.optionals (withManual || withHTML) [
+    (lib.getDev llvm)
+  ]
+  ++ lib.optionals (withManual || withHTML) [
     sphinx
   ];
 
@@ -45,14 +48,17 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DCLANG_RESOURCE_DIR=${libclang.dev}/"
-    "-DSPHINX_HTML=${if withHTML then "ON" else "OFF"}"
-    "-DSPHINX_MAN=${if withManual then "ON" else "OFF"}"
+    (lib.cmakeOptionType "path" "CLANG_RESOURCE_DIR" "${lib.getDev libclang}")
+    (lib.cmakeBool "SPHINX_HTML" withHTML)
+    (lib.cmakeBool "SPHINX_MAN" withManual)
   ];
 
   # 97% tests passed, 97 tests failed out of 2881
   # mostly because it checks command line and nix append -isystem and all
   doCheck = false;
+
+  strictDeps = true;
+
   # -E exclude 4 tests based on names
   # see https://github.com/CastXML/CastXML/issues/90
   checkPhase = ''
@@ -61,12 +67,12 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postCheck
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/CastXML/CastXML";
     description = "C-family Abstract Syntax Tree XML Output";
+    license = lib.licenses.asl20;
     mainProgram = "castxml";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
   };
 })
diff --git a/pkgs/by-name/do/doublecmd/package.nix b/pkgs/by-name/do/doublecmd/package.nix
index eb4de12dfd2f8..a77be53cd2119 100644
--- a/pkgs/by-name/do/doublecmd/package.nix
+++ b/pkgs/by-name/do/doublecmd/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doublecmd";
-  version = "1.1.13";
+  version = "1.1.14";
 
   src = fetchFromGitHub {
     owner = "doublecmd";
     repo = "doublecmd";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-QJPLDqdXttUSeCm1QpQ7oFgvDmzStz9maW0c5xhOLtg=";
+    hash = "sha256-2ZFLQoz25q3uwjQkogSyuLxSNJQ6Gh553Yj4zl70jno=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/go/go-cover-treemap/package.nix b/pkgs/by-name/go/go-cover-treemap/package.nix
new file mode 100644
index 0000000000000..1afb9191607a2
--- /dev/null
+++ b/pkgs/by-name/go/go-cover-treemap/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "go-cover-treemap";
+  version = "1.4.2";
+
+  src = fetchFromGitHub {
+    owner = "nikolaydubina";
+    repo = "go-cover-treemap";
+    rev = "v${version}";
+    hash = "sha256-MSkPot8uYcr8pxsIkJh2FThVK9xpzkN9Y69KeiQnQlA=";
+  };
+
+  vendorHash = "sha256-k/k+EGkuBnZFHrcWxnzLG8efWgb2i35Agf/sWbgTc4g=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "Go code coverage to SVG treemap";
+    homepage = "https://github.com/nikolaydubina/go-cover-treemap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "go-cover-treemap";
+  };
+}
diff --git a/pkgs/by-name/go/go-errorlint/package.nix b/pkgs/by-name/go/go-errorlint/package.nix
index 5c67519c4ea5f..239c10a47af57 100644
--- a/pkgs/by-name/go/go-errorlint/package.nix
+++ b/pkgs/by-name/go/go-errorlint/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go-errorlint";
-  version = "1.4.5";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "polyfloyd";
     repo = "go-errorlint";
     rev = "v${version}";
-    hash = "sha256-BU+3sLUGBCFA1JYFxTEyIan+iWB7Y7SaMFVomfNObMg=";
+    hash = "sha256-xO9AC1z3JNTRVEpM/FF8x+AMfmspU64kUywvpMb2yxM=";
   };
 
-  vendorHash = "sha256-xn7Ou4l8vbPD44rsN0mdFjTzOvkfv6QN6i5XR1XPxTE=";
+  vendorHash = "sha256-pSajd2wyefHgxMvhDKs+qwre4BMRBv97v/tZOjiT3LE=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/by-name/gr/grype/package.nix b/pkgs/by-name/gr/grype/package.nix
index 60154ce825a94..6aff8bd6a0010 100644
--- a/pkgs/by-name/gr/grype/package.nix
+++ b/pkgs/by-name/gr/grype/package.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.77.2";
+  version = "0.77.3";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "grype";
     rev = "refs/tags/v${version}";
-    hash = "sha256-opDuyuh7rtdFVfxKHyLUAf4ySqiSg0bAUW0dV+PHXFA=";
+    hash = "sha256-P6p8vuiJ8+KX1V4crHi5J8SwigW6cpF2C30BnUBAgpM=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-lAq1PRElWR0F+OfuSBpR/gnFOptFH33ObR8yd1k7oMk=";
+  vendorHash = "sha256-GS1TfLCQTWAdjHMfVM6vu8mnR2vclH9VpVMdNwNNU6M=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/ig/igvm-tooling/package.nix b/pkgs/by-name/ig/igvm-tooling/package.nix
new file mode 100644
index 0000000000000..b5fb283084b89
--- /dev/null
+++ b/pkgs/by-name/ig/igvm-tooling/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, python3
+, fetchFromGitHub
+, fetchpatch
+, which
+, acpica-tools
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "igvm-tooling";
+  version = "1.5.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "microsoft";
+    repo = "igvm-tooling";
+    rev = "igvm-${version}";
+    hash = "sha256-13TtiJv2w9WXSW6oPMfo+rRah+Q1wHV14aBaFGfz9CE=";
+  };
+
+  patches = [
+    # drop unused libclang dependency
+    # remove once https://github.com/microsoft/igvm-tooling/pull/53 is merged
+    (fetchpatch {
+      name = "0001-setup.py-remove-unused-libclang-dependency.patch";
+      url = "https://github.com/microsoft/igvm-tooling/commit/7182e925de9b5e9f5c8c3a3ce6e3942a92506064.patch";
+      sha256 = "sha256-tcVxcuLxknyEdo2YjeHOqSG9xQna8US+YyvlcfX+Htw=";
+      stripLen = 1;
+    })
+    # write updated acpi files to tempdir (instead of nix store path) at runtime
+    # remove once https://github.com/microsoft/igvm-tooling/pull/54 is merged
+    (fetchpatch {
+      name = "0002-acpi-update-dsl-files-in-tempdir.patch";
+      url = "https://github.com/microsoft/igvm-tooling/commit/20f8d123ec6531d8540074b7df2ee12de60e73b8.patch";
+      sha256 = "sha256-hNfkclxaYViy66TPHqLV3mqD7wqBuBN9MnMLaDOeRNM=";
+      stripLen = 1;
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace igvm/acpi.py \
+      --replace-fail 'os.path.join(os.path.dirname(__file__), "acpi", "acpi.zip")' "\"$out/share/igvm-tooling/acpi/acpi.zip\""
+  '';
+
+  sourceRoot = "${src.name}/src";
+
+  nativeBuildInputs = [ acpica-tools ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    setuptools
+    ecdsa
+    cstruct
+    pyelftools
+    pytest
+    cached-property
+    frozendict
+  ] ++ [
+    acpica-tools
+    which
+  ];
+
+  postInstall = ''
+    mkdir -p $out/share/igvm-tooling/acpi/acpi-clh
+    cp -rT igvm/acpi/acpi-clh $out/share/igvm-tooling/acpi/acpi-clh
+    cp igvm/acpi/acpi.zip $out/share/igvm-tooling/acpi/acpi.zip
+    find $out/share/igvm-tooling/acpi -name "*.dsl" -exec iasl -f {} \;
+  '';
+
+  meta = {
+    description = "IGVM Image Generator";
+    homepage = "https://github.com/microsoft/igvm-tooling";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.malt3 ];
+    changelog = "https://github.com/microsoft/igvm-tooling/releases/tag/igvm-${version}";
+    mainProgram = "igvmgen";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/lm/lms/package.nix b/pkgs/by-name/lm/lms/package.nix
new file mode 100644
index 0000000000000..778414a5db32e
--- /dev/null
+++ b/pkgs/by-name/lm/lms/package.nix
@@ -0,0 +1,86 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  makeWrapper,
+  cmake,
+  pkg-config,
+  gtest,
+  boost,
+  wt,
+  taglib,
+  libconfig,
+  libarchive,
+  graphicsmagick,
+  ffmpeg,
+  zlib,
+  libSM,
+  libICE,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lms";
+  version = "3.51.1";
+  src = fetchFromGitHub {
+    owner = "epoupon";
+    repo = "lms";
+    rev = "v${version}";
+    hash = "sha256-5lEbrB218EVVHIzo1efvQYybut2OpfDKpLlRs0brhXg=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    makeWrapper
+  ];
+  buildInputs = [
+    gtest
+    boost
+    wt
+    taglib
+    libconfig
+    libarchive
+    graphicsmagick
+    ffmpeg
+    zlib
+    libSM
+    libICE
+  ];
+
+  postPatch = ''
+    substituteInPlace src/lms/main.cpp --replace-fail "/etc/lms.conf" "$out/share/lms/lms.conf"
+    substituteInPlace src/tools/recommendation/LmsRecommendation.cpp --replace-fail "/etc/lms.conf" "$out/share/lms/lms.conf"
+    substituteInPlace src/tools/db-generator/LmsDbGenerator.cpp --replace-fail "/etc/lms.conf" "$out/share/lms/lms.conf"
+    substituteInPlace src/tools/cover/LmsCover.cpp --replace-fail "/etc/lms.conf" "$out/share/lms/lms.conf"
+  '';
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
+
+  postInstall = ''
+    substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/bin/ffmpeg" "${ffmpeg}/bin/ffmpeg"
+    substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/Wt/resources" "${wt}/share/Wt/resources"
+    substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/lms/docroot" "$out/share/lms/docroot"
+    substituteInPlace $out/share/lms/lms.conf --replace-fail "/usr/share/lms/approot" "$out/share/lms/approot"
+    substituteInPlace $out/share/lms/default.service --replace-fail "/usr/bin/lms" "$out/bin/lms"
+    install -Dm444 $out/share/lms/default.service -T $out/lib/systemd/system/lmsd.service
+  '';
+
+  preFixup = ''
+    wrapProgram $out/bin/lms \
+      --prefix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath [libSM libICE]}"
+    wrapProgram $out/bin/lms-metadata \
+      --prefix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath [libSM libICE]}"
+    wrapProgram $out/bin/lms-recommendation \
+      --prefix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath [libSM libICE]}"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/epoupon/lms";
+    description = "Lightweight Music Server - Access your self-hosted music using a web interface";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    mainProgram = "lms";
+    maintainers = with maintainers; [ mksafavi ];
+  };
+}
diff --git a/pkgs/by-name/ni/nixos-anywhere/package.nix b/pkgs/by-name/ni/nixos-anywhere/package.nix
index ffd74761a9fea..36ee25429b817 100644
--- a/pkgs/by-name/ni/nixos-anywhere/package.nix
+++ b/pkgs/by-name/ni/nixos-anywhere/package.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     install -D -m 0755 src/nixos-anywhere.sh $out/bin/nixos-anywhere
+    install -D -m 0755 src/get-facts.sh $out/bin/get-facts.sh
 
     # We prefer the system's openssh over our own, since it might come with features not present in ours:
     # https://github.com/numtide/nixos-anywhere/issues/62
diff --git a/pkgs/by-name/sl/slumber/package.nix b/pkgs/by-name/sl/slumber/package.nix
index 4a7979e29d581..32fc52be0d9b7 100644
--- a/pkgs/by-name/sl/slumber/package.nix
+++ b/pkgs/by-name/sl/slumber/package.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, rustPlatform }:
 rustPlatform.buildRustPackage rec {
   pname = "slumber";
-  version = "1.0.1";
+  version = "1.1.0";
 
   # This release tarball includes source code for the tree-sitter grammars,
   # which is not ordinarily part of the repository.
@@ -9,10 +9,10 @@ rustPlatform.buildRustPackage rec {
     owner = "LucasPickering";
     repo = "slumber";
     rev = "v${version}";
-    hash = "sha256-FXw3hVVY/f49leo9t+z52+Ti9XGk6UJDtd0VpQDQb/o=";
+    hash = "sha256-398XqowI3zEgiU1XolLj3q1m4foC6aGGL+B3Q4plbTw=";
   };
 
-  cargoHash = "sha256-odLFfq3qjCQUNDauFtlOaKrsYVspAIxAc/pRSEZyIwo=";
+  cargoHash = "sha256-AK/+1tCdvNucIbxwyqOt/TbOaJPVDOKFEx5NqW2Yd4U=";
 
   meta = with lib; {
     description = "Terminal-based HTTP/REST client";
diff --git a/pkgs/by-name/sy/symfony-cli/package.nix b/pkgs/by-name/sy/symfony-cli/package.nix
index 1036022bc68b8..794bd2f0ea9b1 100644
--- a/pkgs/by-name/sy/symfony-cli/package.nix
+++ b/pkgs/by-name/sy/symfony-cli/package.nix
@@ -10,14 +10,14 @@
 
 buildGoModule rec {
   pname = "symfony-cli";
-  version = "5.8.16";
-  vendorHash = "sha256-bhlD7EgOkWjRTsw1hH0GKjtFkLbOzr28wR4JJKOJwnY=";
+  version = "5.8.17";
+  vendorHash = "sha256-ARTKJVHgN1Y3xOUc3P2Ch7e8gN9BZbhBEZ1DiM7nEWs=";
 
   src = fetchFromGitHub {
     owner = "symfony-cli";
     repo = "symfony-cli";
     rev = "v${version}";
-    hash = "sha256-V67RLa/Tn9ZdV+vnhFSht0wtIYYZOAGAYP9R1Lxn9aI=";
+    hash = "sha256-IanaxFhD0nAabr9w6ARCVie+sYW9bvgHoahsuHQYeqE=";
   };
 
   ldflags = [
diff --git a/pkgs/by-name/te/termsonic/package.nix b/pkgs/by-name/te/termsonic/package.nix
new file mode 100644
index 0000000000000..2dfb146775008
--- /dev/null
+++ b/pkgs/by-name/te/termsonic/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildGoModule,
+  fetchzip,
+  pkg-config,
+  alsa-lib
+}:
+buildGoModule rec {
+  name = "termsonic";
+  version = "0-unstable-2024-02-02";
+
+  src = fetchzip {
+    url = "https://git.sixfoisneuf.fr/termsonic/snapshot/termsonic-7a3aabee59e1a427aff755fc69759265ad9d0adc.zip";
+    hash = "sha256-C5/4679qw4CAdUt9lXpPIR3yejrPdddvmjgbpLF3SvA=";
+  };
+
+  vendorHash = "sha256-wCtQD9f1mbN/0qUZnamPoVn9p4Ra5dQ34vlT+XjPF3k=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ alsa-lib ];
+
+  strictDeps = true;
+
+  meta = with lib; {
+    homepage = "https://git.sixfoisneuf.fr/termsonic";
+    description = "A Subsonic client running in your terminal";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    mainProgram = "termsonic";
+    maintainers = with maintainers; [ mksafavi ];
+  };
+}
diff --git a/pkgs/development/compilers/c3c/default.nix b/pkgs/development/compilers/c3c/default.nix
index b68ffc045f646..4310ad931792e 100644
--- a/pkgs/development/compilers/c3c/default.nix
+++ b/pkgs/development/compilers/c3c/default.nix
@@ -3,38 +3,51 @@
 , fetchFromGitHub
 , cmake
 , python3
+, curl
+, libxml2
+, libffi
+, xar
 }:
 
 llvmPackages.stdenv.mkDerivation rec {
   pname = "c3c";
-  version = "unstable-2021-07-30";
+  version = "0.5.5";
 
   src = fetchFromGitHub {
     owner = "c3lang";
     repo = pname;
-    rev = "2246b641b16e581aec9059c8358858e10a548d94";
-    sha256 = "VdMKdQsedDQCnsmTxO4HnBj5GH/EThspnotvrAscSqE=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-iOljE1BRVc92NJZj+nr1G6KkBTCwJEUOadXHUDNoPGk=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace-fail "\''${LLVM_LIBRARY_DIRS}" "${llvmPackages.lld.lib}/lib ${llvmPackages.llvm.lib}/lib"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+  ];
 
   buildInputs = [
     llvmPackages.llvm
     llvmPackages.lld
+    curl
+    libxml2
+    libffi
+  ] ++ lib.optionals llvmPackages.stdenv.isDarwin [
+    xar
   ];
 
   nativeCheckInputs = [ python3 ];
 
-  doCheck = true;
+  doCheck = llvmPackages.stdenv.system == "x86_64-linux";
 
   checkPhase = ''
+    runHook preCheck
     ( cd ../resources/testproject; ../../build/c3c build )
     ( cd ../test; python src/tester.py ../build/c3c test_suite )
-  '';
-
-  installPhase = ''
-    install -Dm755 c3c $out/bin/c3c
-    cp -r lib $out
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/catch2/3.nix b/pkgs/development/libraries/catch2/3.nix
index 403c4f729b059..cf0a0bf70fc1c 100644
--- a/pkgs/development/libraries/catch2/3.nix
+++ b/pkgs/development/libraries/catch2/3.nix
@@ -31,9 +31,12 @@ stdenv.mkDerivation rec {
     "-DCMAKE_CTEST_ARGUMENTS=-E;ApprovalTests"
   ];
 
-  # Tests fail on x86_32 if compiled with x87 floats: https://github.com/catchorg/Catch2/issues/2796
   env = lib.optionalAttrs stdenv.isx86_32 {
+    # Tests fail on x86_32 if compiled with x87 floats: https://github.com/catchorg/Catch2/issues/2796
     NIX_CFLAGS_COMPILE = "-msse2 -mfpmath=sse";
+  } // lib.optionalAttrs (stdenv.hostPlatform.isRiscV || stdenv.hostPlatform.isAarch32) {
+    # Build failure caused by -Werror: https://github.com/catchorg/Catch2/issues/2808
+    NIX_CFLAGS_COMPILE = "-Wno-error=cast-align";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index 34e34a7eeebf6..4e8f39c372dcb 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libqalculate";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-VhaGgtSU6+7eMY7ksQMpybmt2JBI80Nwgu7PCKrTorA=";
+    hash = "sha256-74P8jIeg0Pge+/U0cQsrEfE+P8upBAr8xSyLhB4zOVU=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/python-modules/blackjax/default.nix b/pkgs/development/python-modules/blackjax/default.nix
index 7ecc4eda95198..6f3403d3c143f 100644
--- a/pkgs/development/python-modules/blackjax/default.nix
+++ b/pkgs/development/python-modules/blackjax/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "blackjax";
-  version = "1.1.1";
+  version = "1.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,12 +25,14 @@ buildPythonPackage rec {
     owner = "blackjax-devs";
     repo = "blackjax";
     rev = "refs/tags/${version}";
-    hash = "sha256-6+ElY1F8oRCtWT4a/LIG6hYMthlq5mDx2baKAc6zIns=";
+    hash = "sha256-vXyxK3xALKG61YGK7fmoqQNGfOiagHFrvnU02WKZThw=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     fastprogress
     jax
     jaxlib
@@ -42,7 +45,14 @@ buildPythonPackage rec {
     pytestCheckHook
     pytest-xdist
   ];
-  disabledTestPaths = [ "tests/test_benchmarks.py" ];
+
+  disabledTestPaths = [
+    "tests/test_benchmarks.py"
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+    # Assertion errors on numerical values
+    "tests/mcmc/test_integrators.py"
+  ];
+
   disabledTests = [
     # too slow
     "test_adaptive_tempered_smc"
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 025692de1f740..315492e38ee33 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -7,6 +7,9 @@
 , gmp
 , cython
 , cysignals
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -53,6 +56,8 @@ buildPythonPackage rec {
     make check
   '';
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Cython bindings for PARI";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix
index 62cc3dd30d8af..fc53c5c9f1684 100644
--- a/pkgs/development/python-modules/cysignals/default.nix
+++ b/pkgs/development/python-modules/cysignals/default.nix
@@ -4,6 +4,9 @@
 , buildPythonPackage
 , cython
 , pariSupport ? true, pari # for interfacing with the PARI/GP signal handler
+
+# Reverse dependency
+, sage
 }:
 
 assert pariSupport -> pari != null;
@@ -46,6 +49,8 @@ buildPythonPackage rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Interrupt and signal handling for Cython";
     mainProgram = "cysignals-CSI";
diff --git a/pkgs/development/python-modules/cython/default.nix b/pkgs/development/python-modules/cython/default.nix
index e73c09f40b019..fecb9cad26ce0 100644
--- a/pkgs/development/python-modules/cython/default.nix
+++ b/pkgs/development/python-modules/cython/default.nix
@@ -8,6 +8,9 @@
 , gdb
 , numpy
 , ncurses
+
+# Reverse dependency
+, sage
 }:
 
 let
@@ -57,6 +60,8 @@ in buildPythonPackage rec {
   doCheck = false;
   # doCheck = !stdenv.isDarwin;
 
+  passthru.tests = { inherit sage; };
+
   # force regeneration of generated code in source distributions
   # https://github.com/cython/cython/issues/5089
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/python-modules/fpylll/default.nix b/pkgs/development/python-modules/fpylll/default.nix
index 95358d5f4aaf9..2b4571b53edbf 100644
--- a/pkgs/development/python-modules/fpylll/default.nix
+++ b/pkgs/development/python-modules/fpylll/default.nix
@@ -15,6 +15,9 @@
 , fplll
 , numpy
 
+# Reverse dependency
+, sage
+
 # tests
 , pytestCheckHook
 }:
@@ -72,6 +75,8 @@ buildPythonPackage rec {
     export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "A Python interface for fplll";
     changelog = "https://github.com/fplll/fpylll/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index b5a602d4f222f..e3d4118c335ba 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -5,6 +5,9 @@
 , gmp
 , mpfr
 , libmpc
+
+# Reverse dependency
+, sage
 }:
 
 let
@@ -29,6 +32,8 @@ buildPythonPackage {
 
   pythonImportsCheck = [ "gmpy2" ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x";
     homepage = "https://github.com/aleaxit/gmpy/";
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index 511424fb19834..df3106aac4201 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -7,6 +7,9 @@
 , typing-extensions
 , toml
 , zipp
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -41,6 +44,8 @@ buildPythonPackage rec {
     "importlib_metadata"
   ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Read metadata from Python packages";
     homepage = "https://importlib-metadata.readthedocs.io/";
diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix
index a8407239cc402..1f4b01a419927 100644
--- a/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/pkgs/development/python-modules/importlib-resources/default.nix
@@ -10,6 +10,9 @@
 # dependencies
 , importlib-metadata
 
+# Reverse dependency
+, sage
+
 # tests
 , jaraco-collections
 , pytestCheckHook
@@ -46,6 +49,8 @@ buildPythonPackage rec {
     "importlib_resources"
   ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Read resources from Python packages";
     homepage = "https://importlib-resources.readthedocs.io/";
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 394974103537c..35cd3bad0aa46 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -18,6 +18,9 @@
 , pyzmq
 , tornado
 , traitlets
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -63,6 +66,7 @@ buildPythonPackage rec {
 
   passthru.tests = {
     pytest = callPackage ./tests.nix { };
+    inherit sage;
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index 7a10725f24515..577b78804907f 100644
--- a/pkgs/development/python-modules/ipython/default.nix
+++ b/pkgs/development/python-modules/ipython/default.nix
@@ -29,6 +29,9 @@
 , notebook
 , qtconsole
 
+# Reverse dependency
+, sage
+
 # Test dependencies
 , pickleshare
 , pytest-asyncio
@@ -106,6 +109,8 @@ buildPythonPackage rec {
     "test_clipboard_get"
   ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "IPython: Productive Interactive Computing";
     downloadPage = "https://github.com/ipython/ipython/";
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 1c260e37c7b0b..80b87378a6e4d 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -12,6 +12,9 @@
 , setuptools
 , sphinxcontrib-log-cabinet
 , sphinx-issues
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -76,6 +79,8 @@ buildPythonPackage rec {
     inherit meta;
   };
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     changelog = "https://github.com/pallets/jinja/blob/${version}/CHANGES.rst";
     description = "Very fast and expressive template engine";
diff --git a/pkgs/development/python-modules/jupyter-core/default.nix b/pkgs/development/python-modules/jupyter-core/default.nix
index 799e098920a8e..c1faa97b1ef87 100644
--- a/pkgs/development/python-modules/jupyter-core/default.nix
+++ b/pkgs/development/python-modules/jupyter-core/default.nix
@@ -7,6 +7,9 @@
 , traitlets
 , pip
 , pytestCheckHook
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -61,6 +64,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "jupyter_core" ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Base package on which Jupyter projects rely";
     homepage = "https://jupyter.org/";
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index af29f6068b045..90619042619c8 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.36";
+  version = "0.0.37";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_community";
     inherit version;
-    hash = "sha256-l76dAM8RnJYeA+0ibgTmcPUbXUL1sF/8NRhZj6bSDHQ=";
+    hash = "sha256-2ytYKbsgvFsEwSa2kUPbwxqIDpSelBEMI2ssF2kGiJ8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 3c0b421564492..746d690984be5 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.48";
+  version = "0.1.51";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-8KmwqPIvIZ72/YTisdkqgBToRRTAobVTNw/UApaBPBY=";
+    hash = "sha256-9+oRb5Ob6edMOFuvldbITNekArWcLBiT/AVL+Yq778I=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index e098db547855a..e42a344262a39 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.53";
+  version = "0.1.54";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C18a1FxDwsW/x10x3ups/9hCGn3Ku1QydDGN9DlEXBk=";
+    hash = "sha256-hg1xfqptjeJHxbiGfuGeka7lpClrb9nxP/RSUYr2/0k=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index bf1e7a86323e3..a23b9540538cb 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -69,6 +69,9 @@
 # required for headless detection
 , libX11
 , wayland
+
+# Reverse dependency
+, sage
 }:
 
 let
@@ -183,6 +186,8 @@ buildPythonPackage rec {
     };
   };
 
+  passthru.tests = { inherit sage; };
+
   env.MPLSETUPCFG = writeText "mplsetup.cfg" (lib.generators.toINI {} passthru.config);
 
   # Encountering a ModuleNotFoundError, as describved and investigated at:
diff --git a/pkgs/development/python-modules/memory-allocator/default.nix b/pkgs/development/python-modules/memory-allocator/default.nix
index c4ddc5d06a1b8..34dd55bb8dc60 100644
--- a/pkgs/development/python-modules/memory-allocator/default.nix
+++ b/pkgs/development/python-modules/memory-allocator/default.nix
@@ -2,6 +2,9 @@
 , fetchPypi
 , buildPythonPackage
 , cython
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -19,6 +22,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "memory_allocator" ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "An extension class to allocate memory easily with cython";
     homepage = "https://github.com/sagemath/memory_allocator/";
diff --git a/pkgs/development/python-modules/mpmath/default.nix b/pkgs/development/python-modules/mpmath/default.nix
index 1a8e4c0309792..20e7049ac370f 100644
--- a/pkgs/development/python-modules/mpmath/default.nix
+++ b/pkgs/development/python-modules/mpmath/default.nix
@@ -5,6 +5,9 @@
 , isPyPy
 , setuptools
 , pytestCheckHook
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -29,6 +32,8 @@ buildPythonPackage rec {
     ];
   };
 
+  passthru.tests = { inherit sage; };
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/networkx/default.nix b/pkgs/development/python-modules/networkx/default.nix
index 40a6cdcf4b2ed..ac0bd456bcdac 100644
--- a/pkgs/development/python-modules/networkx/default.nix
+++ b/pkgs/development/python-modules/networkx/default.nix
@@ -19,6 +19,9 @@
 # tests
 , pytest-xdist
 , pytestCheckHook
+
+# reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -53,6 +56,8 @@ buildPythonPackage rec {
     ];
   };
 
+  passthru.tests = { inherit sage; };
+
   nativeCheckInputs = [
     pytest-xdist
     pytestCheckHook
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index c2d38cc31b248..f0acca333f857 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -19,6 +19,9 @@
 , blas
 , lapack
 
+# Reverse dependency
+, sage
+
 # tests
 , hypothesis
 , pytest-xdist
@@ -177,6 +180,7 @@ in buildPythonPackage rec {
     blas = blas.provider;
     blasImplementation = blas.implementation;
     inherit cfg;
+    tests = { inherit sage; };
   };
 
   # Disable test
diff --git a/pkgs/development/python-modules/pexpect/default.nix b/pkgs/development/python-modules/pexpect/default.nix
index e8c5efc3cba3f..f98e531c0d54f 100644
--- a/pkgs/development/python-modules/pexpect/default.nix
+++ b/pkgs/development/python-modules/pexpect/default.nix
@@ -3,6 +3,9 @@
 , fetchPypi
 , setuptools
 , ptyprocess
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage (rec {
@@ -24,6 +27,8 @@ buildPythonPackage (rec {
 
   propagatedBuildInputs = [ ptyprocess ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     homepage = "http://www.noah.org/wiki/Pexpect";
     description = "Automate interactive console applications such as ssh, ftp, etc";
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index a576b47bda19e..f320000eecdc1 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -7,7 +7,7 @@
 , defusedxml, olefile, freetype, libjpeg, zlib, libtiff, libwebp, libxcrypt, tcl, lcms2, tk, libX11
 , libxcb, openjpeg, libimagequant, numpy, pytestCheckHook, setuptools
 # for passthru.tests
-, imageio, matplotlib, pilkit, pydicom, reportlab
+, imageio, matplotlib, pilkit, pydicom, reportlab, sage
 }@args:
 
 import ./generic.nix (rec {
@@ -24,7 +24,7 @@ import ./generic.nix (rec {
   };
 
   passthru.tests = {
-    inherit imageio matplotlib pilkit pydicom reportlab;
+    inherit imageio matplotlib pilkit pydicom reportlab sage;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pplpy/default.nix b/pkgs/development/python-modules/pplpy/default.nix
index 641008be07fca..4a4d97c554cf0 100644
--- a/pkgs/development/python-modules/pplpy/default.nix
+++ b/pkgs/development/python-modules/pplpy/default.nix
@@ -9,6 +9,9 @@
 , cysignals
 , gmpy2
 , sphinx
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -54,6 +57,8 @@ buildPythonPackage rec {
     mv docs/build/html "$doc/share/doc/pplpy"
   '';
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "A Python wrapper for ppl";
     homepage = "https://gitlab.com/videlec/pplpy";
diff --git a/pkgs/development/python-modules/primecountpy/default.nix b/pkgs/development/python-modules/primecountpy/default.nix
index 463a0cf50be64..60ae77e7dd942 100644
--- a/pkgs/development/python-modules/primecountpy/default.nix
+++ b/pkgs/development/python-modules/primecountpy/default.nix
@@ -4,6 +4,9 @@
 , primecount
 , cython
 , cysignals
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -25,6 +28,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "primecountpy" ];
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "Cython interface for C++ primecount library";
     homepage = "https://github.com/dimpase/primecountpy/";
diff --git a/pkgs/development/python-modules/pyjson5/default.nix b/pkgs/development/python-modules/pyjson5/default.nix
new file mode 100644
index 0000000000000..19f933ddc3d9a
--- /dev/null
+++ b/pkgs/development/python-modules/pyjson5/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "pyjson5";
+  version = "1.6.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Kijewski";
+    repo = "pyjson5";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-LNcz9JEOw6HO9eIf71w4NJdPOB4yixBfBeD7B/NLbfE=";
+    fetchSubmodules = true;
+  };
+
+  build-system = [
+    cython
+    setuptools
+    wheel
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyjson5" ];
+
+  meta = with lib; {
+    description = "A JSON5 serializer and parser library";
+    homepage = "https://github.com/Kijewski/pyjson5";
+    changelog = "https://github.com/Kijewski/pyjson5/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-ecobee-api/default.nix b/pkgs/development/python-modules/python-ecobee-api/default.nix
index 4d12ee0c99d7c..ad51ef12d5c9d 100644
--- a/pkgs/development/python-modules/python-ecobee-api/default.nix
+++ b/pkgs/development/python-modules/python-ecobee-api/default.nix
@@ -1,22 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-ecobee-api";
-  version = "0.2.17";
-  format = "setuptools";
+  version = "0.2.18";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-lJCbNOQJ8xmMa4V+tSFZx4QasK8ZLfsFavMP9Zge4K4=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "nkgilley";
+    repo = "python-ecobee-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-WBVHlA7cAQGCFRNSANX6PqPQYMRw74GEAlTFwSBxVQU=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
   # no tests implemented
   doCheck = false;
@@ -26,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python API for talking to Ecobee thermostats";
     homepage = "https://github.com/nkgilley/python-ecobee-api";
+    changelog = "https://github.com/nkgilley/python-ecobee-api/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 64e261c374039..57769c7f6afec 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -25,6 +25,9 @@
 , xsimd
 , blas
 , lapack
+
+# Reverse dependency
+, sage
 }:
 
 let
@@ -193,6 +196,7 @@ in buildPythonPackage {
     # Pass it the names of the datasets to update their hashes
     ++ (builtins.attrNames datasetsHashes)
     ;
+    tests = { inherit sage; };
   };
 
   SCIPY_USE_G77_ABI_WRAPPER = 1;
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index d2a10492153e0..1954f8bc591f6 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -3,6 +3,9 @@
 , fetchPypi
 , glibcLocales
 , mpmath
+
+# Reverse dependency
+, sage
 }:
 
 buildPythonPackage rec {
@@ -27,6 +30,8 @@ buildPythonPackage rec {
     export LANG="en_US.UTF-8"
   '';
 
+  passthru.tests = { inherit sage; };
+
   meta = with lib; {
     description = "A Python library for symbolic mathematics";
     mainProgram = "isympy";
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 4ce6bfe860ea3..7233b787fd281 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.2.79";
+  version = "3.2.83";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-FQTRvi4HLfYavaLjfXrngnT/1nOGVXvedaUq7nG6ZAk=";
+    hash = "sha256-h0kvLCGVnf8OhsYN4+uIn5EKChozQ55WsD0Gnb1QL7o=";
   };
 
   patches = [ ./flake8-compat-5.x.patch ];
@@ -123,6 +123,8 @@ python3.pkgs.buildPythonApplication rec {
     "test_runner"
     # AssertionError: assert ['<?xml versi...
     "test_get_cyclonedx_report"
+    # Test fails on Hydra
+    "test_sast_js_filtered_files_by_ts"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index a627e967d1993..e32801b769740 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -2,56 +2,56 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.104.tar.xz",
+        "name": "factorio_alpha_x64-1.1.107.tar.xz",
         "needsAuth": true,
-        "sha256": "0aizllbfzbn2j0560n4f823jqq7v7qz813an4wlm39rfsfx7b0vq",
+        "sha256": "16hkyfwp02zcijka4yslifz62ry6hrvk0w9960618kqdw3gr7p82",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.104/alpha/linux64",
-        "version": "1.1.104"
+        "url": "https://factorio.com/get-download/1.1.107/alpha/linux64",
+        "version": "1.1.107"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.104.tar.xz",
+        "name": "factorio_alpha_x64-1.1.107.tar.xz",
         "needsAuth": true,
-        "sha256": "0aizllbfzbn2j0560n4f823jqq7v7qz813an4wlm39rfsfx7b0vq",
+        "sha256": "16hkyfwp02zcijka4yslifz62ry6hrvk0w9960618kqdw3gr7p82",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.104/alpha/linux64",
-        "version": "1.1.104"
+        "url": "https://factorio.com/get-download/1.1.107/alpha/linux64",
+        "version": "1.1.107"
       }
     },
     "demo": {
       "experimental": {
-        "name": "factorio_demo_x64-1.1.104.tar.xz",
+        "name": "factorio_demo_x64-1.1.107.tar.xz",
         "needsAuth": false,
-        "sha256": "0x08dy6pagfpqc9c2cl239b1f7pf0p4cghzp7avxmbkmbl1fan2l",
+        "sha256": "0qc36n6h4wcbnj9rnq162bsml4x3ag1dkjmywqz8f4ydaf86gyjw",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.104/demo/linux64",
-        "version": "1.1.104"
+        "url": "https://factorio.com/get-download/1.1.107/demo/linux64",
+        "version": "1.1.107"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.104.tar.xz",
+        "name": "factorio_demo_x64-1.1.107.tar.xz",
         "needsAuth": false,
-        "sha256": "0x08dy6pagfpqc9c2cl239b1f7pf0p4cghzp7avxmbkmbl1fan2l",
+        "sha256": "0qc36n6h4wcbnj9rnq162bsml4x3ag1dkjmywqz8f4ydaf86gyjw",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.104/demo/linux64",
-        "version": "1.1.104"
+        "url": "https://factorio.com/get-download/1.1.107/demo/linux64",
+        "version": "1.1.107"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.104.tar.xz",
+        "name": "factorio_headless_x64-1.1.107.tar.xz",
         "needsAuth": false,
-        "sha256": "10qmq2mw2j97s64skwr3m7hmv21h3m0r8rdhnyfrhmrxn8x3a4wf",
+        "sha256": "10ds1nz9sbx9xz1lyypf16wncc6323vpm7l5p11d6iy4cha85wsw",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.104/headless/linux64",
-        "version": "1.1.104"
+        "url": "https://factorio.com/get-download/1.1.107/headless/linux64",
+        "version": "1.1.107"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.104.tar.xz",
+        "name": "factorio_headless_x64-1.1.107.tar.xz",
         "needsAuth": false,
-        "sha256": "10qmq2mw2j97s64skwr3m7hmv21h3m0r8rdhnyfrhmrxn8x3a4wf",
+        "sha256": "10ds1nz9sbx9xz1lyypf16wncc6323vpm7l5p11d6iy4cha85wsw",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.104/headless/linux64",
-        "version": "1.1.104"
+        "url": "https://factorio.com/get-download/1.1.107/headless/linux64",
+        "version": "1.1.107"
       }
     }
   }
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 09910f125bc48..f229c89993604 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -23,6 +23,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   pythonRelaxDeps = [
+    "botocore"
     "colorama"
     "docutils"
     "rsa"
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c526f939d01d4..fdbd40af2b983 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -420,8 +420,6 @@ with pkgs;
 
   castget = callPackage ../applications/networking/feedreaders/castget { };
 
-  castxml = callPackage ../development/tools/castxml { };
-
   catatonit = callPackage ../applications/virtualization/catatonit { };
 
   catppuccin-catwalk = callPackage ../development/tools/misc/catppuccin-catwalk { };
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index e75f863bbcbce..c849ddaba0a8c 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -343,7 +343,6 @@ mapAliases ({
   pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
   pyialarmxr-homeassistant = throw "The package was removed together with the component support in home-assistant 2022.7.0"; # added 2022-07-07
   PyICU = pyicu; # Added 2022-12-22
-  pyjson5 = json5; # added 2022-08-28
   pyhs100 = throw "pyhs100 has been removed in favor of python-kasa."; # added 2024-01-05
   pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
   PyLD = pyld; # added 2022-06-22
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5952340576069..7f54378c13b7d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -11136,6 +11136,8 @@ self: super: with self; {
 
   pyjnius = callPackage ../development/python-modules/pyjnius { };
 
+  pyjson5 = callPackage ../development/python-modules/pyjson5 { };
+
   pyjsparser = callPackage ../development/python-modules/pyjsparser { };
 
   pyjwkest = callPackage ../development/python-modules/pyjwkest { };