summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-11-10 16:25:02 +0100
committerWeijia Wang <9713184+wegank@users.noreply.github.com>2023-11-10 16:25:02 +0100
commitd8ebb730230386ceb409962a8c040a22c6ab6650 (patch)
tree2a62a6ab35dcee5db3c54fe359f47c70c714de14 /pkgs
parent991b95cbddd5c369f4ec467bfb205c5466917cb4 (diff)
parent2e6aa8fc5dc11a704305e5c4357b02924347d680 (diff)
downloadnixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.tar
nixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.tar.gz
nixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.tar.bz2
nixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.tar.lz
nixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.tar.xz
nixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.tar.zst
nixpkgs-d8ebb730230386ceb409962a8c040a22c6ab6650.zip
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/lifeograph/default.nix3
-rw-r--r--pkgs/applications/science/math/R/default.nix4
-rw-r--r--pkgs/by-name/op/openai-triton-llvm/package.nix (renamed from pkgs/development/python-modules/openai-triton/llvm.nix)2
-rw-r--r--pkgs/development/interpreters/octave/default.nix4
-rw-r--r--pkgs/development/libraries/rapidjson/0000-unstable-use-nixpkgs-gtest.patch35
-rw-r--r--pkgs/development/libraries/rapidjson/0001-unstable-valgrind-suppress-failures.patch36
-rw-r--r--pkgs/development/libraries/rapidjson/unstable.nix66
-rw-r--r--pkgs/development/python-modules/arviz/default.nix4
-rw-r--r--pkgs/development/python-modules/ax/default.nix4
-rw-r--r--pkgs/development/python-modules/cleanlab/default.nix49
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix7
-rw-r--r--pkgs/development/python-modules/fairseq/default.nix26
-rw-r--r--pkgs/development/python-modules/jupyter-client/default.nix4
-rw-r--r--pkgs/development/python-modules/mayavi/default.nix4
-rw-r--r--pkgs/development/python-modules/omegaconf/0000-add-support-for-dataclasses_missing_type.patch21
-rw-r--r--pkgs/development/python-modules/omegaconf/default.nix8
-rw-r--r--pkgs/development/python-modules/openai-triton/0000-dont-download-ptxas.patch39
-rw-r--r--pkgs/development/python-modules/openai-triton/default.nix23
-rw-r--r--pkgs/development/python-modules/pytorch-pfn-extras/default.nix8
-rw-r--r--pkgs/development/python-modules/skrl/default.nix16
-rw-r--r--pkgs/development/python-modules/spacy/models.json48
-rw-r--r--pkgs/development/python-modules/stytra/0000-workaround-pyqtgraph.patch26
-rw-r--r--pkgs/development/python-modules/stytra/default.nix16
-rw-r--r--pkgs/development/python-modules/torch/default.nix18
-rw-r--r--pkgs/development/python-modules/torchinfo/default.nix2
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix31
-rw-r--r--pkgs/servers/bazarr/default.nix1
-rw-r--r--pkgs/servers/lidarr/default.nix1
-rw-r--r--pkgs/servers/radarr/default.nix1
-rw-r--r--pkgs/servers/readarr/default.nix1
-rw-r--r--pkgs/servers/sonarr/default.nix1
-rw-r--r--pkgs/tools/video/recyclarr/default.nix1
-rw-r--r--pkgs/top-level/python-packages.nix27
33 files changed, 436 insertions, 101 deletions
diff --git a/pkgs/applications/editors/lifeograph/default.nix b/pkgs/applications/editors/lifeograph/default.nix
index 099aec1558b..2a9557dce62 100644
--- a/pkgs/applications/editors/lifeograph/default.nix
+++ b/pkgs/applications/editors/lifeograph/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "https://git.launchpad.net/lifeograph";
     rev = "v${version}";
-    sha256 = "sha256-RotbTdTtpwXmo+UKOyp93IAC6CCstv++KtnX2doN+nM=";
+    hash = "sha256-RotbTdTtpwXmo+UKOyp93IAC6CCstv++KtnX2doN+nM=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     description = "Lifeograph is an off-line and private journal and note taking application";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
+    mainProgram = "lifeograph";
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index 814f54f3863..f4cc1f1fbfe 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -15,13 +15,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "R";
-  version = "4.3.1";
+  version = "4.3.2";
 
   src = let
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-jdC/JPECPG9hjDsxc4PSkbSklPQNc7mDrCL/6pnkupk=";
+    sha256 = "sha256-s/V2CsLu6AJqPw7vyyW0dyPZeAOO7o6ER2IJTIYMRSo=";
   };
 
   outputs = [ "out" "tex" ];
diff --git a/pkgs/development/python-modules/openai-triton/llvm.nix b/pkgs/by-name/op/openai-triton-llvm/package.nix
index 70ea69a9b15..2fb56d0a635 100644
--- a/pkgs/development/python-modules/openai-triton/llvm.nix
+++ b/pkgs/by-name/op/openai-triton-llvm/package.nix
@@ -22,7 +22,7 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  pname = "triton-llvm";
+  pname = "openai-triton-llvm";
   version = "14.0.6-f28c006a5895";
 
   outputs = [
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 9bb0a75b272..ab9128772d3 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -93,12 +93,12 @@ let
   # To avoid confusion later in passthru
   allPkgs = pkgs;
 in stdenv.mkDerivation (finalAttrs: {
-    version = "8.3.0";
+    version = "8.4.0";
     pname = "octave";
 
     src = fetchurl {
       url = "mirror://gnu/octave/octave-${finalAttrs.version}.tar.gz";
-      sha256 = "sha256-K0gRHLZ7MSgX5dHz4XH1utFRK7Bn4WdLnEspKBiVuXo=";
+      sha256 = "sha256-azjdl1FnhCSus6nWZkMrHzeOs5caISkKkM09NRGdVq0=";
     };
 
     buildInputs = [
diff --git a/pkgs/development/libraries/rapidjson/0000-unstable-use-nixpkgs-gtest.patch b/pkgs/development/libraries/rapidjson/0000-unstable-use-nixpkgs-gtest.patch
new file mode 100644
index 00000000000..df334cc9126
--- /dev/null
+++ b/pkgs/development/libraries/rapidjson/0000-unstable-use-nixpkgs-gtest.patch
@@ -0,0 +1,35 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 11c1b04c..762eaa75 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -1,20 +1,14 @@
+-find_package(GTestSrc)
++enable_testing()
+ 
+-IF(GTESTSRC_FOUND)
+-    enable_testing()
++if (WIN32 AND (NOT CYGWIN) AND (NOT MINGW))
++    set(gtest_disable_pthreads ON)
++    set(gtest_force_shared_crt ON)
++endif()
+ 
+-    if (WIN32 AND (NOT CYGWIN) AND (NOT MINGW))
+-        set(gtest_disable_pthreads ON)
+-        set(gtest_force_shared_crt ON)
+-    endif()
++include_directories(SYSTEM ${GTEST_INCLUDE_DIR})
+ 
+-    add_subdirectory(${GTEST_SOURCE_DIR} ${CMAKE_BINARY_DIR}/googletest)
+-    include_directories(SYSTEM ${GTEST_INCLUDE_DIR})
++set(TEST_LIBRARIES gtest gtest_main)
+ 
+-    set(TEST_LIBRARIES gtest gtest_main)
+-
+-    add_custom_target(tests ALL)
+-    add_subdirectory(perftest)
+-    add_subdirectory(unittest)
+-
+-ENDIF(GTESTSRC_FOUND)
++add_custom_target(tests ALL)
++add_subdirectory(perftest)
++add_subdirectory(unittest)
diff --git a/pkgs/development/libraries/rapidjson/0001-unstable-valgrind-suppress-failures.patch b/pkgs/development/libraries/rapidjson/0001-unstable-valgrind-suppress-failures.patch
new file mode 100644
index 00000000000..dd06ba6a697
--- /dev/null
+++ b/pkgs/development/libraries/rapidjson/0001-unstable-valgrind-suppress-failures.patch
@@ -0,0 +1,36 @@
+diff --git a/test/valgrind.supp b/test/valgrind.supp
+index c9d3d226..63af7bf9 100644
+--- a/test/valgrind.supp
++++ b/test/valgrind.supp
+@@ -24,3 +24,31 @@
+    fun:*Uri*Parse_UTF16_Std*
+ }
+ 
++{
++   Suppress memcpy_chk valgrind report 5
++   Memcheck:Overlap
++   fun:__memcpy_chk
++   fun:*dtoa_normal*
++}
++
++{
++   Suppress memcpy_chk valgrind report 6
++   Memcheck:Overlap
++   fun:__memcpy_chk
++   fun:*dtoa_maxDecimalPlaces*
++}
++
++{
++   Suppress memcpy_chk valgrind report 7
++   Memcheck:Overlap
++   fun:__memcpy_chk
++   ...
++   fun:*Reader*ParseDoubleHandler*
++}
++
++{
++   Suppress memcpy_chk valgrind report 8
++   Memcheck:Overlap
++   fun:__memcpy_chk
++   fun:*Reader*ParseNumber_NormalPrecisionError*
++}
diff --git a/pkgs/development/libraries/rapidjson/unstable.nix b/pkgs/development/libraries/rapidjson/unstable.nix
index 069f1a48e0e..0f4c3d40403 100644
--- a/pkgs/development/libraries/rapidjson/unstable.nix
+++ b/pkgs/development/libraries/rapidjson/unstable.nix
@@ -1,17 +1,30 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, pkg-config
 , cmake
+, doxygen
+, graphviz
 , gtest
 , valgrind
+# One of "11" or "17"; default in source is CXX 11
+, cxxStandard ? "11"
+, buildDocs ? true
+, buildTests ? !stdenv.hostPlatform.isStatic && !stdenv.isDarwin
+, buildExamples ? true
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "rapidjson";
   version = "unstable-2023-09-28";
 
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ] ++ lib.optionals buildExamples [
+    "example"
+  ];
+
   src = fetchFromGitHub {
     owner = "Tencent";
     repo = "rapidjson";
@@ -19,26 +32,44 @@ stdenv.mkDerivation rec {
     hash = "sha256-rl7iy14jn1K2I5U2DrcZnoTQVEGEDKlxmdaOCF/3hfY=";
   };
 
+  patches = lib.optionals buildTests [
+    ./0000-unstable-use-nixpkgs-gtest.patch
+    # https://github.com/Tencent/rapidjson/issues/2214
+    ./0001-unstable-valgrind-suppress-failures.patch
+  ];
+
   nativeBuildInputs = [
-    pkg-config
     cmake
+  ] ++ lib.optionals buildDocs [
+    doxygen
+    graphviz
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "do-not-include-gtest-src-dir.patch";
-      url = "https://git.alpinelinux.org/aports/plain/community/rapidjson/do-not-include-gtest-src-dir.patch?id=9e5eefc7a5fcf5938a8dc8a3be8c75e9e6809909";
-      hash = "sha256-BjSZEwfCXA/9V+kxQ/2JPWbc26jQn35CfN8+8NW24s4=";
-    })
+  cmakeFlags = [
+    (lib.cmakeBool "RAPIDJSON_BUILD_DOC" buildDocs)
+    (lib.cmakeBool "RAPIDJSON_BUILD_TESTS" buildTests)
+    (lib.cmakeBool "RAPIDJSON_BUILD_EXAMPLES" buildExamples)
+    (lib.cmakeBool "RAPIDJSON_BUILD_CXX11" (cxxStandard == "11"))
+    (lib.cmakeBool "RAPIDJSON_BUILD_CXX17" (cxxStandard == "17"))
+  ] ++ lib.optionals buildTests [
+    (lib.cmakeFeature "GTEST_INCLUDE_DIR" "${lib.getDev gtest}")
+  ];
+
+  doCheck = buildTests;
+
+  nativeCheckInputs = [
+    gtest
+    valgrind
   ];
 
-  # for tests, adding gtest to checkInputs does not work
-  # https://github.com/NixOS/nixpkgs/pull/212200
-  buildInputs = [ gtest ];
-  cmakeFlags = [ "-DGTEST_SOURCE_DIR=${gtest.dev}/include" ];
+  postInstall = lib.optionalString buildExamples ''
+    mkdir -p $example/bin
 
-  nativeCheckInputs = [ valgrind ];
-  doCheck = !stdenv.hostPlatform.isStatic && !stdenv.isDarwin;
+    find bin -type f -executable \
+      -not -name "perftest" \
+      -not -name "unittest" \
+      -exec cp -a {} $example/bin \;
+  '';
 
   meta = with lib; {
     description = "Fast JSON parser/generator for C++ with both SAX/DOM style API";
@@ -46,5 +77,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ Madouura ];
+    broken = (cxxStandard != "11" && cxxStandard != "17");
   };
-}
+})
diff --git a/pkgs/development/python-modules/arviz/default.nix b/pkgs/development/python-modules/arviz/default.nix
index b37e7d9a8a1..0a186781b4a 100644
--- a/pkgs/development/python-modules/arviz/default.nix
+++ b/pkgs/development/python-modules/arviz/default.nix
@@ -28,6 +28,7 @@
 , pyro-ppl
   #, pystan (not packaged)
 , numpyro
+, bokeh
 }:
 
 buildPythonPackage rec {
@@ -72,6 +73,7 @@ buildPythonPackage rec {
     pytestCheckHook
     torchvision
     zarr
+    bokeh
   ];
 
   preCheck = ''
@@ -97,6 +99,8 @@ buildPythonPackage rec {
     # An issue has been opened upstream: https://github.com/arviz-devs/arviz/issues/2282
     "test_plot_ppc_discrete"
     "test_plot_ppc_discrete_save_animation"
+    # Assertion error
+    "test_data_zarr"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/ax/default.nix b/pkgs/development/python-modules/ax/default.nix
index e9ca9dba6ca..1a4da01df6d 100644
--- a/pkgs/development/python-modules/ax/default.nix
+++ b/pkgs/development/python-modules/ax/default.nix
@@ -69,6 +69,10 @@ buildPythonPackage rec {
   disabledTests = [
     # exact comparison of floating points
     "test_optimize_l0_homotopy"
+    # AssertionError: 5 != 2
+    "test_get_standard_plots_moo"
+    # AssertionError: Expected 'warning' to be called once. Called 3 times
+    "test_validate_kwarg_typing"
   ];
   pythonImportsCheck = [ "ax" ];
 
diff --git a/pkgs/development/python-modules/cleanlab/default.nix b/pkgs/development/python-modules/cleanlab/default.nix
index f1de682c40b..fdaf384262b 100644
--- a/pkgs/development/python-modules/cleanlab/default.nix
+++ b/pkgs/development/python-modules/cleanlab/default.nix
@@ -6,23 +6,27 @@
 , termcolor
 , tqdm
 , pandas
+, setuptools
 # test dependencies
+, pytestCheckHook
+, pytest-lazy-fixture
 , tensorflow
 , torch
 , datasets
 , torchvision
 , keras
 , fasttext
+, hypothesis
+, wget
+, matplotlib
+, skorch
 }:
-let
+
+buildPythonPackage rec {
   pname = "cleanlab";
   version = "2.5.0";
-in
-buildPythonPackage {
-  inherit pname version;
-  format = "setuptools";
-
-  disabled = pythonOlder "3.8";
+  pyproject = true;
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "cleanlab";
@@ -31,11 +35,7 @@ buildPythonPackage {
     hash = "sha256-5XQQVrhjpvjwtFM79DqttObmw/GQLkMQVXb5jhiC8e0=";
   };
 
-  # postPatch = ''
-  #   substituteInPlace pyproject.toml \
-  #     --replace '"rich <= 13.0.1"' '"rich"' \
-  #     --replace '"numpy < 1.24.0"' '"numpy"'
-  # '';
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     scikit-learn
@@ -44,13 +44,38 @@ buildPythonPackage {
     pandas
   ];
 
+  # This is ONLY turned off when we have testing enabled.
+  # The reason we do this is because of duplicate packages in the enclosure
+  # when using the packages in nativeCheckInputs.
+  # Affected packages: grpcio protobuf tensorboard tensorboard-plugin-profile
+  catchConflicts = (!doCheck);
+  doCheck = true;
+
   nativeCheckInputs = [
+    pytestCheckHook
+    pytest-lazy-fixture
     tensorflow
     torch
     datasets
     torchvision
     keras
     fasttext
+    hypothesis
+    wget
+    matplotlib
+    skorch
+  ];
+
+  disabledTests = [
+    # Requires the datasets we prevent from downloading
+    "test_create_imagelab"
+  ];
+
+  disabledTestPaths = [
+    # Requires internet
+    "tests/test_dataset.py"
+    # Requires the datasets we just prevented from downloading
+    "tests/datalab/test_cleanvision_integration.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index 0fb8be981e1..3d34b6edda8 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -12,19 +12,20 @@
 , scs
 , setuptools
 , wheel
+, pybind11
 , useOpenmp ? (!stdenv.isDarwin)
 }:
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.3.2";
+  version = "1.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-C2heUEDxmfPXA/MPXSLR+GVZdiNFUVPR3ddwJFrvCXU=";
+    hash = "sha256-ep7zTjxX/4yETYbwo4NPtVda8ZIzlHY53guld8YSLj4=";
   };
 
   # we need to patch out numpy version caps from upstream
@@ -35,6 +36,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     setuptools
     wheel
+    pybind11
   ];
 
   propagatedBuildInputs = [
@@ -44,7 +46,6 @@ buildPythonPackage rec {
     osqp
     scipy
     scs
-    setuptools
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/fairseq/default.nix b/pkgs/development/python-modules/fairseq/default.nix
index 92d8a5e7856..35275c32780 100644
--- a/pkgs/development/python-modules/fairseq/default.nix
+++ b/pkgs/development/python-modules/fairseq/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch
 
 # Native build inputs
 , cython
@@ -27,12 +28,12 @@
 , hypothesis
 , pytestCheckHook
 }:
-let
+
+buildPythonPackage rec {
   pname = "fairseq";
   version = "0.12.3";
-in
-buildPythonPackage rec {
-  inherit version pname;
+  pyproject = true;
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pytorch";
@@ -41,17 +42,25 @@ buildPythonPackage rec {
     hash = "sha256-XX/grU5ljQCwx33miGoFc/7Uj9fZDtmhm4Fz7L4U+Bc=";
   };
 
-  disabled = pythonOlder "3.7";
+  patches = [
+    # https://github.com/facebookresearch/fairseq/pull/5359
+    (fetchpatch {
+      url = "https://github.com/facebookresearch/fairseq/commit/2fa0768c2115b0a4c207cfa3e1b3e4ff3ad9a00c.patch";
+      hash = "sha256-aYYP/knQX6q6vhyA6q9uOOYfRhDAuJCo9QJWfFEDuuA=";
+    })
+  ];
 
   nativeBuildInputs = [
     cython
     pythonRelaxDepsHook
     which
   ];
+
   pythonRelaxDeps = [
     "hydra-core"
     "omegaconf"
   ];
+
   propagatedBuildInputs = [
     cffi
     hydra-core
@@ -74,6 +83,7 @@ buildPythonPackage rec {
   ];
 
   pythonImportsCheck = [ "fairseq" ];
+
   preCheck = ''
     export HOME=$TMPDIR
     cd tests
@@ -82,6 +92,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [
     "--import-mode append"
   ];
+
   disabledTests = [
     # this test requires xformers
     "test_xformers_single_forward_parity"
@@ -96,6 +107,11 @@ buildPythonPackage rec {
     "test_librispeech_s2t_conformer_s_checkpoint"
   ];
 
+  disabledTestPaths = [
+    # ValueError: mutable default ... for field bar is not allowed: use default_factory
+    "test_dataclass_utils.py"
+  ];
+
   meta = with lib; {
     description = "Facebook AI Research Sequence-to-Sequence Toolkit";
     homepage = "https://github.com/pytorch/fairseq";
diff --git a/pkgs/development/python-modules/jupyter-client/default.nix b/pkgs/development/python-modules/jupyter-client/default.nix
index 2d7234051d2..014b67cb4b4 100644
--- a/pkgs/development/python-modules/jupyter-client/default.nix
+++ b/pkgs/development/python-modules/jupyter-client/default.nix
@@ -11,6 +11,8 @@
 , traitlets
 , isPyPy
 , py
+, pythonOlder
+, importlib-metadata
 }:
 
 buildPythonPackage rec {
@@ -35,6 +37,8 @@ buildPythonPackage rec {
     pyzmq
     tornado
     traitlets
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
   ] ++ lib.optional isPyPy py;
 
   # Circular dependency with ipykernel
diff --git a/pkgs/development/python-modules/mayavi/default.nix b/pkgs/development/python-modules/mayavi/default.nix
index bdc0a74007d..dc786ac6d7d 100644
--- a/pkgs/development/python-modules/mayavi/default.nix
+++ b/pkgs/development/python-modules/mayavi/default.nix
@@ -9,6 +9,7 @@
 , pygments
 , pyqt5
 , pythonOlder
+, pythonAtLeast
 , traitsui
 , vtk
 , wrapQtAppsHook
@@ -18,8 +19,7 @@ buildPythonPackage rec {
   pname = "mayavi";
   version = "4.8.1";
   format = "setuptools";
-
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.11";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/omegaconf/0000-add-support-for-dataclasses_missing_type.patch b/pkgs/development/python-modules/omegaconf/0000-add-support-for-dataclasses_missing_type.patch
new file mode 100644
index 00000000000..6435d86a68a
--- /dev/null
+++ b/pkgs/development/python-modules/omegaconf/0000-add-support-for-dataclasses_missing_type.patch
@@ -0,0 +1,21 @@
+diff --git a/omegaconf/omegaconf.py b/omegaconf/omegaconf.py
+index efde14a..a2a050e 100644
+--- a/omegaconf/omegaconf.py
++++ b/omegaconf/omegaconf.py
+@@ -7,6 +7,7 @@ import pathlib
+ import sys
+ import warnings
+ from collections import defaultdict
++from dataclasses import _MISSING_TYPE
+ from contextlib import contextmanager
+ from enum import Enum
+ from textwrap import dedent
+@@ -828,6 +829,8 @@ class OmegaConf:
+ 
+             if obj is _DEFAULT_MARKER_:
+                 obj = {}
++            if isinstance(obj, _MISSING_TYPE):
++                return OmegaConf.create({}, parent=parent, flags=flags)
+             if isinstance(obj, str):
+                 obj = yaml.load(obj, Loader=get_yaml_loader())
+                 if obj is None:
diff --git a/pkgs/development/python-modules/omegaconf/default.nix b/pkgs/development/python-modules/omegaconf/default.nix
index d506e06d6f6..c6dfada82bd 100644
--- a/pkgs/development/python-modules/omegaconf/default.nix
+++ b/pkgs/development/python-modules/omegaconf/default.nix
@@ -3,6 +3,7 @@
 , antlr4-python3-runtime
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , jre_minimal
 , pydevd
 , pytest-mock
@@ -15,8 +16,7 @@
 buildPythonPackage rec {
   pname = "omegaconf";
   version = "2.3.0";
-  format = "setuptools";
-
+  pyproject = true;
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -31,6 +31,9 @@ buildPythonPackage rec {
       src = ./antlr4.patch;
       antlr_jar = "${antlr4.out}/share/java/antlr-${antlr4.version}-complete.jar";
     })
+
+    # https://github.com/omry/omegaconf/pull/1137
+    ./0000-add-support-for-dataclasses_missing_type.patch
   ];
 
   postPatch = ''
@@ -42,6 +45,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
+    setuptools
     jre_minimal
   ];
 
diff --git a/pkgs/development/python-modules/openai-triton/0000-dont-download-ptxas.patch b/pkgs/development/python-modules/openai-triton/0000-dont-download-ptxas.patch
new file mode 100644
index 00000000000..5038a5ba52e
--- /dev/null
+++ b/pkgs/development/python-modules/openai-triton/0000-dont-download-ptxas.patch
@@ -0,0 +1,39 @@
+diff --git a/python/setup.py b/python/setup.py
+index 2ac3accd2..f26161c72 100644
+--- a/python/setup.py
++++ b/python/setup.py
+@@ -101,25 +101,6 @@ def get_thirdparty_packages(triton_cache_path):
+ # ---- package data ---
+ 
+ 
+-def download_and_copy_ptxas():
+-    base_dir = os.path.dirname(__file__)
+-    src_path = "bin/ptxas"
+-    url = "https://conda.anaconda.org/nvidia/label/cuda-12.0.0/linux-64/cuda-nvcc-12.0.76-0.tar.bz2"
+-    dst_prefix = os.path.join(base_dir, "triton")
+-    dst_suffix = os.path.join("third_party", "cuda", src_path)
+-    dst_path = os.path.join(dst_prefix, dst_suffix)
+-    if not os.path.exists(dst_path):
+-        print(f'downloading and extracting {url} ...')
+-        ftpstream = urllib.request.urlopen(url)
+-        file = tarfile.open(fileobj=ftpstream, mode="r|*")
+-        with tempfile.TemporaryDirectory() as temp_dir:
+-            file.extractall(path=temp_dir)
+-            src_path = os.path.join(temp_dir, src_path)
+-            os.makedirs(os.path.split(dst_path)[0], exist_ok=True)
+-            shutil.copy(src_path, dst_path)
+-    return dst_suffix
+-
+-
+ # ---- cmake extension ----
+ 
+ 
+@@ -200,8 +181,6 @@ class CMakeBuild(build_ext):
+         subprocess.check_call(["cmake", "--build", "."] + build_args, cwd=self.build_temp)
+ 
+ 
+-download_and_copy_ptxas()
+-
+ setup(
+     name="triton",
+     version="2.0.0",
diff --git a/pkgs/development/python-modules/openai-triton/default.nix b/pkgs/development/python-modules/openai-triton/default.nix
index 68dfc24aafd..e1ac9cb4cef 100644
--- a/pkgs/development/python-modules/openai-triton/default.nix
+++ b/pkgs/development/python-modules/openai-triton/default.nix
@@ -1,5 +1,5 @@
 { lib
-, callPackage
+, config
 , buildPythonPackage
 , fetchFromGitHub
 , addOpenGLRunpath
@@ -14,10 +14,12 @@
 , ncurses
 , libxml2
 , lit
+, llvm
 , filelock
 , torchWithRocm
 , python
 , cudaPackages
+, cudaSupport ? config.cudaSupport
 }:
 
 let
@@ -33,7 +35,6 @@ let
   # be executed on the GPU.
   # Cf. https://nixos.org/manual/nixpkgs/unstable/#sec-cross-infra
   ptxas = "${pkgsTargetTarget.cudaPackages.cuda_nvcc}/bin/ptxas"; # Make sure cudaPackages is the right version each update (See python/setup.py)
-  llvm = callPackage ./llvm.nix { }; # Use a custom llvm, see llvm.nix for details
 in
 buildPythonPackage rec {
   pname = "triton";
@@ -57,6 +58,8 @@ buildPythonPackage rec {
     #   url = "https://github.com/openai/triton/commit/fc7c0b0e437a191e421faa61494b2ff4870850f1.patch";
     #   hash = "sha256-f0shIqHJkVvuil2Yku7vuqWFn7VCRKFSFjYRlwx25ig=";
     # })
+  ] ++ lib.optionals (!cudaSupport) [
+    ./0000-dont-download-ptxas.patch
   ];
 
   nativeBuildInputs = [
@@ -102,21 +105,18 @@ buildPythonPackage rec {
     substituteInPlace bin/CMakeLists.txt \
       --replace "add_subdirectory(FileCheck)" ""
 
-    # Use our linker flags
-    substituteInPlace python/triton/compiler.py \
-      --replace '${oldStr}' '${newStr}'
-
     # Don't fetch googletest
     substituteInPlace unittest/CMakeLists.txt \
       --replace "include (\''${CMAKE_CURRENT_SOURCE_DIR}/googletest.cmake)" ""\
       --replace "include(GoogleTest)" "find_package(GTest REQUIRED)"
+  '' + lib.optionalString cudaSupport ''
+    # Use our linker flags
+    substituteInPlace python/triton/compiler.py \
+      --replace '${oldStr}' '${newStr}'
   '';
 
   # Avoid GLIBCXX mismatch with other cuda-enabled python packages
   preConfigure = ''
-    export CC=${cudaPackages.backendStdenv.cc}/bin/cc;
-    export CXX=${cudaPackages.backendStdenv.cc}/bin/c++;
-
     # Upstream's setup.py tries to write cache somewhere in ~/
     export HOME=$(mktemp -d)
 
@@ -127,6 +127,9 @@ buildPythonPackage rec {
 
     # The rest (including buildPhase) is relative to ./python/
     cd python
+  '' + lib.optionalString cudaSupport ''
+    export CC=${cudaPackages.backendStdenv.cc}/bin/cc;
+    export CXX=${cudaPackages.backendStdenv.cc}/bin/c++;
 
     # Work around download_and_copy_ptxas()
     mkdir -p $PWD/triton/third_party/cuda/bin
@@ -137,7 +140,7 @@ buildPythonPackage rec {
   dontUseCmakeConfigure = true;
 
   # Setuptools (?) strips runpath and +x flags. Let's just restore the symlink
-  postFixup = ''
+  postFixup = lib.optionalString cudaSupport ''
     rm -f $out/${python.sitePackages}/triton/third_party/cuda/bin/ptxas
     ln -s ${ptxas} $out/${python.sitePackages}/triton/third_party/cuda/bin/ptxas
   '';
diff --git a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
index 138dc5f502f..56473cc95ae 100644
--- a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
+++ b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
@@ -8,6 +8,7 @@
 , torch
 , torchvision
 , typing-extensions
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -41,6 +42,7 @@ buildPythonPackage rec {
     "tests/pytorch_pfn_extras_tests/onnx_tests/test_export.py"
     "tests/pytorch_pfn_extras_tests/onnx_tests/test_torchvision.py"
     "tests/pytorch_pfn_extras_tests/onnx_tests/utils.py"
+    "tests/pytorch_pfn_extras_tests/onnx_tests/test_lax.py"
 
     # RuntimeError: No Op registered for Gradient with domain_version of 9
     "tests/pytorch_pfn_extras_tests/onnx_tests/test_grad.py"
@@ -53,13 +55,15 @@ buildPythonPackage rec {
     "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy.py"
     "tests/pytorch_pfn_extras_tests/profiler_tests/test_record.py"
     "tests/pytorch_pfn_extras_tests/runtime_tests/test_to.py"
-    "tests/pytorch_pfn_extras_tests/test_handler.py"
-    "tests/pytorch_pfn_extras_tests/test_logic.py"
+    "tests/pytorch_pfn_extras_tests/handler_tests/test_handler.py"
     "tests/pytorch_pfn_extras_tests/test_reporter.py"
     "tests/pytorch_pfn_extras_tests/training_tests/test_trainer.py"
     "tests/pytorch_pfn_extras_tests/utils_tests/test_checkpoint.py"
     "tests/pytorch_pfn_extras_tests/utils_tests/test_comparer.py"
     "tests/pytorch_pfn_extras_tests/utils_tests/test_new_comparer.py"
+  ] ++ lib.optionals (pythonAtLeast "3.11") [
+    # Remove this when https://github.com/NixOS/nixpkgs/pull/259068 is merged
+    "tests/pytorch_pfn_extras_tests/dynamo_tests/test_compile.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/skrl/default.nix b/pkgs/development/python-modules/skrl/default.nix
index 20f43924b9d..417c1c1fe35 100644
--- a/pkgs/development/python-modules/skrl/default.nix
+++ b/pkgs/development/python-modules/skrl/default.nix
@@ -1,9 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pythonOlder
-, pytestCheckHook
+, setuptools
 , gym
 , gymnasium
 , torch
@@ -11,13 +10,13 @@
 , tqdm
 , wandb
 , packaging
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "skrl";
   version = "1.0.0";
-  format = "setuptools";
-
+  pyproject = true;
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -27,14 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-89OoJanmaB74SLF1qMI8WFBdN1czS7Yr7BmojaRdo4M=";
   };
 
-  patches = [
-    # remove after next release:
-    (fetchpatch {
-       name = "fix-python_requires-specification";
-       url = "https://github.com/Toni-SM/skrl/pull/62/commits/9b554adfe2da6cd97cccbbcd418a349cc8f1de80.patch";
-       hash = "sha256-GeASMU1Pgy8U1zaIAVroBDjYaY+n93XP5uFyP4U9lok=";
-    })
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     gym
diff --git a/pkgs/development/python-modules/spacy/models.json b/pkgs/development/python-modules/spacy/models.json
index 0514c9e4197..7f25c4281c3 100644
--- a/pkgs/development/python-modules/spacy/models.json
+++ b/pkgs/development/python-modules/spacy/models.json
@@ -198,6 +198,30 @@
     "license": "cc-by-sa-40"
   },
   {
+    "pname": "ja_core_news_lg",
+    "version": "3.7.0",
+    "sha256": "1nb77kivzy0wixsw8ijmw78fffkpqa63kykqph04jzmh75ra4wvg",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ja_core_news_md",
+    "version": "3.7.0",
+    "sha256": "0p22bwc24q76cl7ndszvhqgllvq3ws3i3vbjsp5xvhxxls6p49x9",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ja_core_news_sm",
+    "version": "3.7.0",
+    "sha256": "0bfvkds4dqynjshk2lxfya9yfcnbvwjfhc6n7yh0852ms1ycicaw",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ja_core_news_trf",
+    "version": "3.7.0",
+    "sha256": "0n2lqql4flnilgf671n5mcdp8vi5pdjfz3vymxsapc1gyp29jykk",
+    "license": "cc-by-sa-30"
+  },
+  {
     "pname": "it_core_news_lg",
     "version": "3.7.0",
     "sha256": "0gwn6pf0rzbplahs2wnzp6379mmj066dqhijhq4ln4552fz4d1yx",
@@ -378,6 +402,30 @@
     "license": "mit"
   },
   {
+    "pname": "sl_core_news_lg",
+    "version": "3.7.0",
+    "sha256": "128ayhp21szc31ckiq3i8vib42i9xnz4lpi1709gjdc38cpmpnlp",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "sl_core_news_md",
+    "version": "3.7.0",
+    "sha256": "07gx174gw5q1zgyyg1xhfplihhnr311f9562ri5pdd2hgjyz58yb",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "sl_core_news_sm",
+    "version": "3.7.0",
+    "sha256": "005xwsnh5y3pf8y64lhvrzcbh8y34yr3in204as6hv7krsfg8bxa",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "sl_core_news_trf",
+    "version": "3.7.0",
+    "sha256": "0x97lwm1i2dq4kdg6rvarh9mnlcx45cnwq80qpjwv3b7zmviyq8c",
+    "license": "cc-by-sa-40"
+  },
+  {
     "pname": "sv_core_news_lg",
     "version": "3.7.0",
     "sha256": "05qaff8r3vs30zaxja1lgpibd12njp9ciq49zs26i6d4dqa18hdp",
diff --git a/pkgs/development/python-modules/stytra/0000-workaround-pyqtgraph.patch b/pkgs/development/python-modules/stytra/0000-workaround-pyqtgraph.patch
new file mode 100644
index 00000000000..ad0ecbb1130
--- /dev/null
+++ b/pkgs/development/python-modules/stytra/0000-workaround-pyqtgraph.patch
@@ -0,0 +1,26 @@
+diff --git a/stytra/gui/fishplots.py b/stytra/gui/fishplots.py
+index 49ef1fe..fd1cc50 100644
+--- a/stytra/gui/fishplots.py
++++ b/stytra/gui/fishplots.py
+@@ -13,7 +13,7 @@ from lightparam.gui import ParameterGui
+ from scipy.ndimage.filters import gaussian_filter1d
+ 
+ 
+-class StreamingPositionPlot(pg.GraphicsWindow):
++class StreamingPosition(pg.GraphicsView):
+     """Plot that displays the virtual position of the fish"""
+ 
+     def __init__(self, *args, data_accumulator, n_points=500, **kwargs):
+diff --git a/stytra/utilities.py b/stytra/utilities.py
+index f79c4db..feaa7ef 100644
+--- a/stytra/utilities.py
++++ b/stytra/utilities.py
+@@ -239,7 +239,7 @@ def recursive_update(d, u):
+     :return:
+     """
+     for k, v in u.items():
+-        if isinstance(v, collections.Mapping):
++        if isinstance(v, collections.ChainMap):
+             d[k] = recursive_update(d.get(k, {}), v)
+         else:
+             d[k] = v
diff --git a/pkgs/development/python-modules/stytra/default.nix b/pkgs/development/python-modules/stytra/default.nix
index 01907cb15b0..821aaa41437 100644
--- a/pkgs/development/python-modules/stytra/default.nix
+++ b/pkgs/development/python-modules/stytra/default.nix
@@ -33,8 +33,7 @@
 buildPythonPackage rec {
   pname = "stytra";
   version = "0.8.34";
-  format = "setuptools";
-
+  pyproject = true;
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
@@ -42,10 +41,10 @@ buildPythonPackage rec {
     sha256 = "aab9d07575ef599a9c0ae505656e3c03ec753462df3c15742f1f768f2b578f0a";
   };
 
-  # crashes python
-  preCheck = ''
-    rm stytra/tests/test_z_experiments.py
-  '';
+  patches = [
+    # https://github.com/portugueslab/stytra/issues/87
+    ./0000-workaround-pyqtgraph.patch
+  ];
 
   propagatedBuildInputs = [
     opencv4
@@ -79,6 +78,11 @@ buildPythonPackage rec {
     pyserial
   ];
 
+  disabledTestPaths = [
+    # Crashes python
+    "stytra/tests/test_z_experiments.py"
+  ];
+
   meta = with lib; {
     description = "A modular package to control stimulation and track behaviour";
     homepage = "https://github.com/portugueslab/stytra";
diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix
index 743f8952a9e..e31b6306bb1 100644
--- a/pkgs/development/python-modules/torch/default.nix
+++ b/pkgs/development/python-modules/torch/default.nix
@@ -305,7 +305,7 @@ in buildPythonPackage rec {
   ])
   ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
 
-  buildInputs = [ blas blas.provider pybind11 ]
+  buildInputs = [ blas blas.provider ]
     ++ lib.optionals cudaSupport (with cudaPackages; [
       cuda_cccl.dev # <thrust/*>
       cuda_cudart # cuda_runtime.h and libraries
@@ -357,17 +357,15 @@ in buildPythonPackage rec {
 
     # the following are required for tensorboard support
     pillow six future tensorboard protobuf
+
+    # ROCm build and `torch.compile` requires openai-triton
+    openai-triton
+
+    # torch/csrc requires `pybind11` at runtime
+    pybind11
   ]
   ++ lib.optionals MPISupport [ mpi ]
-  ++ lib.optionals rocmSupport [ rocmtoolkit_joined ]
-  # rocm build requires openai-triton;
-  # openai-triton currently requires cuda_nvcc,
-  # so not including it in the cpu-only build;
-  # torch.compile relies on openai-triton,
-  # so we include it for the cuda build as well
-  ++ lib.optionals (rocmSupport || cudaSupport) [
-    openai-triton
-  ];
+  ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
 
   # Tests take a long time and may be flaky, so just sanity-check imports
   doCheck = false;
diff --git a/pkgs/development/python-modules/torchinfo/default.nix b/pkgs/development/python-modules/torchinfo/default.nix
index 6cc7bcf3e27..59b7e99c9df 100644
--- a/pkgs/development/python-modules/torchinfo/default.nix
+++ b/pkgs/development/python-modules/torchinfo/default.nix
@@ -53,6 +53,8 @@ buildPythonPackage rec {
     "test_flan_t5_small"
     # AssertionError in output
     "test_google"
+    # "addmm_impl_cpu_" not implemented for 'Half'
+    "test_input_size_half_precision"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index 85e85c16afc..ee66ee817d1 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -14,6 +14,8 @@
 , pytestCheckHook
 , torchmetrics
 , pytorch-lightning
+, pytest-doctestplus
+, pytest-xdist
 }:
 
 let
@@ -22,10 +24,11 @@ let
 in
 buildPythonPackage {
   inherit pname version;
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = "PyTorchLightning";
-    repo = "metrics";
+    owner = "Lightning-AI";
+    repo = "torchmetrics";
     rev = "refs/tags/v${version}";
     hash = "sha256-g5JuTbiRd8yWx2nM3UE8ejOhuZ0XpAQdS5AC9AlrSFY=";
   };
@@ -51,22 +54,33 @@ buildPythonPackage {
     cloudpickle
     psutil
     pytestCheckHook
+    pytest-doctestplus
+    pytest-xdist
   ];
 
   # A cyclic dependency in: integrations/test_lightning.py
   doCheck = false;
   passthru.tests.check = torchmetrics.overridePythonAttrs (_: {
+    pname = "${pname}-check";
     doCheck = true;
+    # We don't have to install because the only purpose
+    # of this passthru test is to, well, test.
+    # This fixes having to set `catchConflicts` to false.
+    dontInstall = true;
   });
 
+  disabledTests = [
+    # `IndexError: list index out of range`
+    "test_metric_lightning_log"
+  ];
+
   disabledTestPaths = [
     # These require too many "leftpad-level" dependencies
-    "tests/text"
-    "tests/audio"
-    "tests/image"
+    # Also too cross-dependent
+    "tests/unittests"
 
-    # A few non-deterministic things like test_check_compute_groups_is_faster
-    "tests/bases/test_collections.py"
+    # A trillion import path mismatch errors
+    "src/torchmetrics"
   ];
 
   pythonImportsCheck = [
@@ -75,11 +89,10 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Machine learning metrics for distributed, scalable PyTorch applications (used in pytorch-lightning)";
-    homepage = "https://torchmetrics.readthedocs.io";
+    homepage = "https://lightning.ai/docs/torchmetrics/";
     license = licenses.asl20;
     maintainers = with maintainers; [
       SomeoneSerge
     ];
   };
 }
-
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index ac9bdf70815..21904dc615a 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ d-xo ];
+    mainProgram = "bazarr";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/lidarr/default.nix b/pkgs/servers/lidarr/default.nix
index 53050cfa7cc..daad39ee1cf 100644
--- a/pkgs/servers/lidarr/default.nix
+++ b/pkgs/servers/lidarr/default.nix
@@ -47,6 +47,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://lidarr.audio/";
     license = licenses.gpl3;
     maintainers = [ maintainers.etu ];
+    mainProgram = "Lidarr";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/servers/radarr/default.nix b/pkgs/servers/radarr/default.nix
index 7ea36b02479..ce5deb19de5 100644
--- a/pkgs/servers/radarr/default.nix
+++ b/pkgs/servers/radarr/default.nix
@@ -52,6 +52,7 @@ in stdenv.mkDerivation rec {
     changelog = "https://github.com/Radarr/Radarr/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ edwtjo purcell ];
+    mainProgram = "Radarr";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/servers/readarr/default.nix b/pkgs/servers/readarr/default.nix
index a2efdb1e1be..e41ec383a9b 100644
--- a/pkgs/servers/readarr/default.nix
+++ b/pkgs/servers/readarr/default.nix
@@ -46,6 +46,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://readarr.com";
     license = licenses.gpl3;
     maintainers = [ maintainers.jocelynthode ];
+    mainProgram = "Readarr";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
   };
diff --git a/pkgs/servers/sonarr/default.nix b/pkgs/servers/sonarr/default.nix
index ac5ae80cdc2..716a386c4fa 100644
--- a/pkgs/servers/sonarr/default.nix
+++ b/pkgs/servers/sonarr/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sonarr.tv/";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ fadenb purcell ];
+    mainProgram = "NzbDrone";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/video/recyclarr/default.nix b/pkgs/tools/video/recyclarr/default.nix
index f3dce877553..c360d191064 100644
--- a/pkgs/tools/video/recyclarr/default.nix
+++ b/pkgs/tools/video/recyclarr/default.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/recyclarr/recyclarr/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ josephst ];
+    mainProgram = "recyclarr";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 8d1c01c59bf..5bf99550ca3 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -4160,7 +4160,9 @@ self: super: with self; {
 
   oelint-parser = callPackage ../development/python-modules/oelint-parser { };
 
-  openllm = callPackage ../development/python-modules/openllm { };
+  openllm = callPackage ../development/python-modules/openllm {
+    openai-triton = self.openai-triton-cuda;
+  };
 
   openllm-client = callPackage ../development/python-modules/openllm-client { };
 
@@ -6662,8 +6664,7 @@ self: super: with self; {
   maya = callPackage ../development/python-modules/maya { };
 
   mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
-    inherit buildPythonPackage pythonOlder;
-    inherit (self) pyface pygments numpy packaging vtk traitsui envisage apptools pyqt5;
+    inherit (self) buildPythonPackage pythonOlder pythonAtLeast pyface pygments numpy packaging vtk traitsui envisage apptools pyqt5;
   };
 
   mbddns = callPackage ../development/python-modules/mbddns { };
@@ -8424,12 +8425,24 @@ self: super: with self; {
 
   open-meteo = callPackage ../development/python-modules/open-meteo { };
 
-  openai-triton = callPackage ../development/python-modules/openai-triton { cudaPackages = pkgs.cudaPackages_12_0; };
+  openai-triton = callPackage ../development/python-modules/openai-triton {
+    llvm = pkgs.openai-triton-llvm;
+    cudaPackages = pkgs.cudaPackages_12_0;
+  };
+
+  openai-triton-cuda = self.openai-triton.override {
+    cudaSupport = true;
+  };
+
+  openai-triton-no-cuda = self.openai-triton.override {
+    cudaSupport = false;
+  };
 
   openai-triton-bin = callPackage ../development/python-modules/openai-triton/bin.nix { };
 
   openai-whisper = callPackage ../development/python-modules/openai-whisper {
     inherit (pkgs.config) cudaSupport;
+    openai-triton = self.openai-triton-cuda;
   };
 
   openant = callPackage ../development/python-modules/openant { };
@@ -14057,6 +14070,7 @@ self: super: with self; {
 
   torchWithCuda = self.torch.override {
     magma = pkgs.magma-cuda-static;
+    openai-triton = self.openai-triton-cuda;
     cudaSupport = true;
     rocmSupport = false;
   };
@@ -14067,6 +14081,7 @@ self: super: with self; {
 
   torchWithRocm = self.torch.override {
     magma = pkgs.magma-hip;
+    openai-triton = self.openai-triton-no-cuda;
     rocmSupport = true;
     cudaSupport = false;
   };
@@ -15765,7 +15780,9 @@ self: super: with self; {
     inherit (pkgs) graphviz;
   };
 
-  xformers = callPackage ../development/python-modules/xformers { };
+  xformers = callPackage ../development/python-modules/xformers {
+    openai-triton = self.openai-triton-cuda;
+  };
 
   xgboost = callPackage ../development/python-modules/xgboost {
     inherit (pkgs) xgboost;