about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/science
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/science')
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kalign/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/last/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/poretools/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/biology/strelka/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch31
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/nvc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/openems/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/eprover/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/isabelle/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/logic/naproche/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/z3/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/caffe/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/math/calc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/cbc/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/math/clp/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/eigenmath/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/math/yacas/fix-test-script.patch26
-rw-r--r--nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix82
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/5.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/misc/toil/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix32
29 files changed, 257 insertions, 183 deletions
diff --git a/nixpkgs/pkgs/applications/science/biology/kalign/default.nix b/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
index b28c640cb7aa..3ca83978d969 100644
--- a/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kalign";
-  version = "3.3.5";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "TimoLassmann";
     repo = "kalign";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-QufTiaiRcNOnLhOO4cnOE9bNcj9mlCg/ERFIHJB8KOU=";
+    hash = "sha256-QcFNaCTqj6CFiOzQ6ezfBL0mu8PDU11hyNdkcsLOPzA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/biology/last/default.nix b/nixpkgs/pkgs/applications/science/biology/last/default.nix
index 7cf1560d2492..607b1ee51cc5 100644
--- a/nixpkgs/pkgs/applications/science/biology/last/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/last/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1499";
+  version = "1518";
 
   src = fetchFromGitLab {
     owner = "mcfrith";
     repo = "last";
     rev = "refs/tags/${version}";
-    hash = "sha256-uofXtGGDloM1FxW0PYKKwfDOPlAJiapGVKwd1clFzp8=";
+    hash = "sha256-a6i5BfJhVHkXTLd7SVFxISEB+Kwl7BhjUUkF8ItMOak=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/biology/poretools/default.nix b/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
index efbedf9a121a..47ffd507efda 100644
--- a/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
@@ -11,12 +11,13 @@ python2Packages.buildPythonPackage rec {
     sha256 = "0bglj833wxpp3cq430p1d3xp085ls221js2y90w7ir2x5ay8l7am";
   };
 
-  propagatedBuildInputs = [python2Packages.h5py python2Packages.matplotlib python2Packages.seaborn python2Packages.pandas];
+  propagatedBuildInputs = [ python2Packages.h5py python2Packages.matplotlib python2Packages.seaborn python2Packages.pandas ];
 
   meta = {
     description = "a toolkit for working with nanopore sequencing data from Oxford Nanopore";
     license = lib.licenses.mit;
     homepage = "https://poretools.readthedocs.io/en/latest/";
-    maintainers = [lib.maintainers.rybern];
+    maintainers = [ lib.maintainers.rybern ];
+    broken = true; # Build error: h5py-3.9.0 not supported for interpreter python2.7
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/strelka/default.nix b/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
index 9730601e4e7d..ad6c0d9e5a4c 100644
--- a/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, cmake, zlib, python2}:
+{lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, zlib, python2}:
 
 stdenv.mkDerivation rec {
   pname = "strelka";
@@ -11,8 +11,28 @@ stdenv.mkDerivation rec {
     sha256 = "1nykbmim1124xh22nrhrsn8xgjb3s2y7akrdapn9sl1gdych4ppf";
   };
 
+  patches = [
+    # Pull pending fix for gcc-12:
+    #   https://github.com/Illumina/strelka/pull/204
+    (fetchpatch {
+      name = "limits.patch";
+      url = "https://github.com/Illumina/strelka/commit/98272cd345c6e4c672e6a5b7721204fcac0502d6.patch";
+      hash = "sha256-psBiuN32nvwZ+QX51JQjIdRhEE3k7PfwbkD10ckqvZk=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace src/cmake/boost.cmake \
+      --replace "1.58.0" "${boost.version}" \
+      --replace "Boost_USE_STATIC_LIBS ON" "Boost_USE_STATIC_LIBS OFF"
+  '';
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ zlib python2 ];
+  buildInputs = [ boost zlib python2 ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_STANDARD=14"
+  ];
 
   env.NIX_CFLAGS_COMPILE = toString [
     "-Wno-error=maybe-uninitialized"
@@ -37,7 +57,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     homepage = "https://github.com/Illumina/strelka";
     maintainers = with maintainers; [ jbedo ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 
 }
diff --git a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
index 5794d7077af9..59ff285c1537 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -68,7 +68,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     platforms = with lib.platforms; linux ++ darwin;
     maintainers = [ lib.maintainers.cge ];
-    # never built on aarch64-darwin since first introduction in nixpkgs
-    broken = stdenv.isDarwin && stdenv.isAarch64;
+    broken = true; # Build error: h5py-3.9.0 not supported for interpreter python2.7
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
index 9933d0d8c727..4c4482919772 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -1,41 +1,119 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchFromGitHub
+, fetchurl
+, git
+, cmake
+, gnum4
 , gfortran
+, pkg-config
 , fftw
 , blas
 , lapack
-, useMpi ? false
+, scalapack
+, wannier90
+, hdf5
+, libmbd
+, libxc
+, enableMpi ? true
 , mpi
 }:
 
+assert ! blas.isILP64;
+assert ! lapack.isILP64;
+
+let
+  # "rev"s must exactly match the git submodule commits in the QE repo
+  gitSubmodules = {
+    devxlib = fetchFromGitLab {
+      group = "max-centre";
+      owner = "components";
+      repo = "devicexlib";
+      rev = "a6b89ef77b1ceda48e967921f1f5488d2df9226d";
+      hash = "sha256-p3fRplVG4YSN6ILNlOwf+aSEhpTJPXqiS1+wnzWVA2U=";
+    };
+
+    pw2qmcpack = fetchFromGitHub {
+      owner = "QMCPACK";
+      repo = "pw2qmcpack";
+      rev = "f72ab25fa4ea755c1b4b230ae8074b47d5509c70";
+      hash = "sha256-K1Z90xexsUvk4SdEb8FGryRal0GAFoLz3j1h/RT2nYw=";
+    };
+  };
+
+in
 stdenv.mkDerivation rec {
-  version = "6.6";
+  version = "7.2";
   pname = "quantum-espresso";
 
   src = fetchFromGitLab {
     owner = "QEF";
     repo = "q-e";
     rev = "qe-${version}";
-    sha256 = "1mkfmw0fq1dabplzdn6v1abhw0ds55gzlvbx3a9brv493whk21yp";
+    hash = "sha256-0q0QWX4BVjVHjcbKOBpjbBADuL+2S5LAALyrxmjVs4c=";
   };
 
-  passthru = {
-    inherit mpi;
-  };
+  # add git submodules manually and fix pkg-config file
+  prePatch = ''
+    chmod -R +rwx external/
+
+    substituteInPlace external/devxlib.cmake \
+      --replace "qe_git_submodule_update(external/devxlib)" ""
+    substituteInPlace external/CMakeLists.txt \
+      --replace "qe_git_submodule_update(external/pw2qmcpack)" "" \
+      --replace "qe_git_submodule_update(external/d3q)" "" \
+      --replace "qe_git_submodule_update(external/qe-gipaw)" ""
 
-  preConfigure = ''
-    patchShebangs configure
+    ${builtins.toString (builtins.attrValues
+      (builtins.mapAttrs
+        (name: val: ''
+          cp -r ${val}/* external/${name}/.
+          chmod -R +rwx external/${name}
+        '')
+        gitSubmodules
+      )
+    )}
+
+    substituteInPlace cmake/quantum_espresso.pc.in \
+      --replace 'libdir="''${prefix}/@CMAKE_INSTALL_LIBDIR@"' 'libdir="@CMAKE_INSTALL_FULL_LIBDIR@"'
   '';
 
-  nativeBuildInputs = [ gfortran ];
+  passthru = { inherit mpi; };
+
+  nativeBuildInputs = [
+    cmake
+    gfortran
+    git
+    pkg-config
+  ];
 
-  buildInputs = [ fftw blas lapack ]
-    ++ (lib.optionals useMpi [ mpi ]);
+  buildInputs = [
+    fftw
+    blas
+    lapack
+    wannier90
+    libmbd
+    libxc
+    hdf5
+  ] ++ lib.optional enableMpi scalapack;
 
-  configureFlags = if useMpi then [ "LD=${mpi}/bin/mpif90" ] else [ "LD=${gfortran}/bin/gfortran" ];
+  propagatedBuildInputs = lib.optional enableMpi mpi;
+  propagatedUserEnvPkgs = lib.optional enableMpi mpi;
 
-  makeFlags = [ "all" ];
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DWANNIER90_ROOT=${wannier90}"
+    "-DMBD_ROOT=${libmbd}"
+    "-DQE_ENABLE_OPENMP=ON"
+    "-DQE_ENABLE_LIBXC=ON"
+    "-DQE_ENABLE_HDF5=ON"
+    "-DQE_ENABLE_PLUGINS=pw2qmcpack"
+  ] ++ lib.optionals enableMpi [
+    "-DQE_ENABLE_MPI=ON"
+    "-DQE_ENABLE_MPI_MODULE=ON"
+    "-DQE_ENABLE_SCALAPACK=ON"
+  ];
 
   meta = with lib; {
     description = "Electronic-structure calculations and materials modeling at the nanoscale";
diff --git a/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix b/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
index f6b0ff93fff5..abdb0716f370 100644
--- a/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "csxcad";
-  version = "unstable-2022-05-18";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "thliebig";
     repo = "CSXCAD";
-    rev = "cd9decb4d9cebe3c8bf115e2c0ee73f730f22da1";
-    sha256 = "1604amhvp7dm8ych7gwzxwawqvb9hpjglk5ffd4qm0y3k6r89arn";
+    rev = "v${version}";
+    sha256 = "sha256-SSV5ulx3rCJg99I/oOQbqe+gOSs+BfcCo6UkWHVhnSs=";
   };
 
   patches = [./searchPath.patch ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch b/nixpkgs/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch
deleted file mode 100644
index d095eada9d6e..000000000000
--- a/nixpkgs/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/shapely/geos.py b/shapely/geos.py
-index 88c5f53..1ccd6e4 100644
---- a/shapely/geos.py
-+++ b/shapely/geos.py
-@@ -96,6 +96,7 @@ if sys.platform.startswith('linux'):
-         alt_paths = [
-             'libgeos_c.so.1',
-             'libgeos_c.so',
-+            '@libgeos_c@',
-         ]
-         _lgeos = load_dll('geos_c', fallbacks=alt_paths)
- 
-@@ -160,6 +161,7 @@ elif sys.platform == 'darwin':
-             "/usr/local/lib/libgeos_c.dylib",
-             # homebrew Apple Silicon
-             "/opt/homebrew/lib/libgeos_c.dylib",
-+            "@libgeos_c@",
-         ]
-         _lgeos = load_dll('geos_c', fallbacks=alt_paths)
- 
-diff --git a/tests/test_dlls.py b/tests/test_dlls.py
-index c71da8e..c36262c 100644
---- a/tests/test_dlls.py
-+++ b/tests/test_dlls.py
-@@ -18,4 +18,5 @@ class LoadingTestCase(unittest.TestCase):
-             '/opt/homebrew/lib/libgeos_c.dylib',  # homebrew (macOS)
-             os.path.join(sys.prefix, "lib", "libgeos_c.so"), # anaconda (Linux)
-             'libgeos_c.so.1',
--            'libgeos_c.so'])
-+            'libgeos_c.so',
-+            '@libgeos_c@'])
diff --git a/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix b/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix
index dc4991bf480b..284a0b15830b 100644
--- a/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvc";
-  version = "1.10.4";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "nickg";
     repo = "nvc";
     rev = "r${version}";
-    hash = "sha256-f4VjSBoJnsGb8MHKegJDlomPG32DuTgFcyv1w0GxKvA=";
+    hash = "sha256-95vIyBQ38SGpI+gnDqK1MRRzOT6uiYjDr1c//folqZ8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/electronics/openems/default.nix b/nixpkgs/pkgs/applications/science/electronics/openems/default.nix
index 083f01a42881..864b120993d9 100644
--- a/nixpkgs/pkgs/applications/science/electronics/openems/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/openems/default.nix
@@ -18,15 +18,15 @@
 , hyp2mat
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "openems";
-  version = "unstable-2020-02-15";
+  version = "0.0.36";
 
   src = fetchFromGitHub {
     owner = "thliebig";
     repo = "openEMS";
-    rev = "ba793ac84e2f78f254d6d690bb5a4c626326bbfd";
-    sha256 = "1dca6b6ccy771irxzsj075zvpa3dlzv4mjb8xyg9d889dqlgyl45";
+    rev = "v${version}";
+    sha256 = "sha256-wdH+Zw7G2ZigzBMX8p3GKdFVx/AhbTNL+P3w+YjI/dc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
index 0645fd29522f..a028803db139 100644
--- a/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cryptominisat";
-  version = "5.11.14";
+  version = "5.11.15";
 
   src = fetchFromGitHub {
     owner = "msoos";
     repo = "cryptominisat";
     rev = version;
-    hash = "sha256-p/sVinjEh078PGtJ6JBRA8EmrJVcchBs9L3bRZvCHuo=";
+    hash = "sha256-OenuIPo5U0+egWMpxfaKWPLbO5YRQJSXLYptih+ZQQ0=";
   };
 
   buildInputs = [ python3 boost ];
diff --git a/nixpkgs/pkgs/applications/science/logic/eprover/default.nix b/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
index ec1fc6b11d25..d4a8b7a6b2e8 100644
--- a/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eprover";
-  version = "3.0";
+  version = "3.0.03";
 
   src = fetchurl {
     url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
-    hash = "sha256-gBgDC+GH948JMsjzo/SOpWDzJXu0g58YX1VW28PeorI=";
+    hash = "sha256-cS5zUe2N9Kd9uzbNpeBtvLbgUN0c3N3tGcYczK3KsdQ=";
   };
 
   buildInputs = [ which ];
diff --git a/nixpkgs/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix b/nixpkgs/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix
index 7587c4638c18..d9b8dd5cf28f 100644
--- a/nixpkgs/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix
+++ b/nixpkgs/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "isabelle-linter";
-  version = "1.2.1";
+  version = "2023-1.0.0";
 
   src = fetchFromGitHub {
     owner = "isabelle-prover";
     repo = "isabelle-linter";
-    rev = "Isabelle2022-v${version}";
-    sha256 = "sha256-qlojNCsm3/49TtAVq6J31BbQipdIoDcn71pBotZyquY=";
+    rev = "Isabelle2023-v1.0.0";
+    sha256 = "sha256-q9+qN94NaTzvhbcNQj7yH/VVfs1QgCH8OU8HW+5+s9U=";
   };
 
   nativeBuildInputs = [ isabelle ];
diff --git a/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
index 2cb96bbc0a37..edc4483bcfa9 100644
--- a/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
@@ -46,7 +46,7 @@ let
   };
 in stdenv.mkDerivation (finalAttrs: rec {
   pname = "isabelle";
-  version = "2022";
+  version = "2023";
 
   dirname = "Isabelle${version}";
 
@@ -56,18 +56,18 @@ in stdenv.mkDerivation (finalAttrs: rec {
       fetchurl
         {
           url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
-          sha256 = "0b84rx9b7b5y8m1sg7xdp17j6yngd2dkx6v5bkd8h7ly102lai18";
+          sha256 = "sha256-0VSW2SrHNI3/k4cCCZ724ruXaq7W1NCPsLrXFZ9l1/Q=";
         }
     else if stdenv.hostPlatform.isx86
     then
       fetchurl {
         url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
-        sha256 = "1ih4gykkp1an43qdgc5xzyvf30fhs0dah3y0a5ksbmvmjsfnxyp7";
+        sha256 = "sha256-Go4ZCsDz5gJ7uWG5VLrNJOddMPX18G99FAadpX53Rqg=";
       }
     else
       fetchurl {
         url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux_arm.tar.gz";
-        hash = "sha256-qI/BR/KZwLjnkO5q/yYeW4lN4xyUe78VOM2INC/Z/io=";
+        hash = "sha256-Tzxxs0gKw6vymbaXIzH8tK5VgUrpOIp9vcWQ/zxnRCc=";
       };
 
   nativeBuildInputs = [ java ];
@@ -134,8 +134,7 @@ in stdenv.mkDerivation (finalAttrs: rec {
 
     substituteInPlace src/Tools/Setup/src/Environment.java \
       --replace 'cmd.add("/usr/bin/env");' "" \
-      --replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");" \
-      --replace 'private static read_file(path: Path): String =' 'private static String read_file(Path path) throws IOException'
+      --replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");"
 
     substituteInPlace src/Pure/General/sha1.ML \
       --replace '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'
diff --git a/nixpkgs/pkgs/applications/science/logic/naproche/default.nix b/nixpkgs/pkgs/applications/science/logic/naproche/default.nix
index ecc347080081..f6743745a7b6 100644
--- a/nixpkgs/pkgs/applications/science/logic/naproche/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/naproche/default.nix
@@ -2,13 +2,13 @@
 
 with haskellPackages; mkDerivation {
   pname = "Naproche-SAD";
-  version = "2022-10-24";
+  version = "unstable-2023-07-11";
 
   src = fetchFromGitHub {
     owner = "naproche";
     repo = "naproche";
-    rev = "c8c4ca2d5fdb92bf17e0e54c99bd2a9691255d80";
-    sha256 = "0xvh6kkl5k5ygp2nrbq3k0snvzczbmcp1yrwdkah3fzhf9i3yykx";
+    rev = "4c399d49a86987369bec6e1ac5ae3739cd6db0a8";
+    sha256 = "sha256-Ji6yxbDEcwuYAzIZwK5sHNltK1WBFBfpyoEtoID/U4k=";
   };
 
   isExecutable = true;
diff --git a/nixpkgs/pkgs/applications/science/logic/z3/default.nix b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
index 6165cfe8bd22..26848e1397aa 100644
--- a/nixpkgs/pkgs/applications/science/logic/z3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
@@ -24,7 +24,7 @@ let common = { version, sha256, patches ? [ ], tag ? "z3" }:
     inherit version sha256 patches;
     src = fetchFromGitHub {
       owner = "Z3Prover";
-      repo = pname;
+      repo = "z3";
       rev = "${tag}-${version}";
       sha256 = sha256;
     };
diff --git a/nixpkgs/pkgs/applications/science/math/caffe/default.nix b/nixpkgs/pkgs/applications/science/math/caffe/default.nix
index 42c160393595..6595f0b846dd 100644
--- a/nixpkgs/pkgs/applications/science/math/caffe/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/caffe/default.nix
@@ -26,24 +26,17 @@ let
   # The default for cudatoolkit 10.1 is CUDNN 8.0.5, the last version to support CUDA 10.1.
   # However, this caffe does not build with CUDNN 8.x, so we use CUDNN 7.6.5 instead.
   # Earlier versions of cudatoolkit use pre-8.x CUDNN, so we use the default.
-  cudnn = if lib.versionOlder cudatoolkit.version "10.1"
-    then cudaPackages.cudnn
-    else cudaPackages.cudnn_7_6;
-in
-
-assert leveldbSupport -> (leveldb != null && snappy != null);
-assert cudnnSupport -> cudaSupport;
-assert ncclSupport -> cudaSupport;
-assert pythonSupport -> (python != null && numpy != null);
+  hasCudnn =
+    if lib.versionOlder cudatoolkit.version "10.1"
+    then cudaPackages ? cudnn
+    else cudaPackages ? cudnn_7_6;
 
-let
   toggle = bool: if bool then "ON" else "OFF";
 
   test_model_weights = fetchurl {
     url = "http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel";
     sha256 = "472d4a06035497b180636d8a82667129960371375bd10fcb6df5c6c7631f25e0";
   };
-
 in
 
 stdenv.mkDerivation rec {
@@ -74,7 +67,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ boost gflags glog protobuf hdf5-cpp opencv4 blas ]
                 ++ lib.optional cudaSupport cudatoolkit
-                ++ lib.optional cudnnSupport cudnn
+                ++ lib.optional (lib.versionOlder cudatoolkit.version "10.1" && hasCudnn) cudaPackages.cudnn
+                ++ lib.optional (lib.versionAtLeast cudatoolkit.version "10.1" && hasCudnn) cudaPackages.cudnn_7_6
                 ++ lib.optional lmdbSupport lmdb
                 ++ lib.optional ncclSupport nccl
                 ++ lib.optionals leveldbSupport [ leveldb snappy ]
@@ -154,7 +148,14 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://caffe.berkeleyvision.org/";
     maintainers = with maintainers; [ ];
-    broken = (pythonSupport && (python.isPy310)) || cudaSupport;
+    broken =
+      (pythonSupport && (python.isPy310))
+      || cudaSupport
+      || !(leveldbSupport -> (leveldb != null && snappy != null))
+      || !(cudnnSupport -> (hasCudnn && cudaSupport))
+      || !(ncclSupport -> cudaSupport)
+      || !(pythonSupport -> (python != null && numpy != null))
+    ;
     license = licenses.bsd2;
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/nixpkgs/pkgs/applications/science/math/calc/default.nix b/nixpkgs/pkgs/applications/science/math/calc/default.nix
index 86ec445d9b3e..0f8982eac5b9 100644
--- a/nixpkgs/pkgs/applications/science/math/calc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/calc/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "calc";
-  version = "2.15.0.1";
+  version = "2.15.0.2";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/v${finalAttrs.version}/calc-${finalAttrs.version}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/calc-${finalAttrs.version}.tar.bz2"
     ];
-    hash = "sha256-u/mt9y4805IWYDdEHz94dPb4V+d4YVrrhzz8v3B+q24=";
+    hash = "sha256-dPEj32SiR7RhI9fBa9ny9+EEuuiXS2WswRcDVuOMJXc=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/science/math/cbc/default.nix b/nixpkgs/pkgs/applications/science/math/cbc/default.nix
index 1909e4bb1d04..fb92b1cc98fb 100644
--- a/nixpkgs/pkgs/applications/science/math/cbc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/cbc/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
   };
 
   # or-tools has a hard dependency on Cbc static libraries, so we build both
-  configureFlags = [ "-C" "--enable-static" ];
+  configureFlags = [ "-C" "--enable-static" ]
+    ++ lib.optionals stdenv.cc.isClang [ "CXXFLAGS=-std=c++14" ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/science/math/clp/default.nix b/nixpkgs/pkgs/applications/science/math/clp/default.nix
index 52a74ff3979c..4cfff4702e69 100644
--- a/nixpkgs/pkgs/applications/science/math/clp/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/clp/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.epl20;
     homepage = "https://github.com/coin-or/Clp";
     description = "An open-source linear programming solver written in C++";
-    platforms = platforms.darwin ++ [ "x86_64-linux" ];
+    platforms = platforms.darwin ++ platforms.linux;
     maintainers = [ maintainers.vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix b/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix
index 1e80d9a06eba..a2743b163247 100644
--- a/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eigenmath";
-  version = "unstable-2023-11-17";
+  version = "unstable-2023-12-12";
 
   src = fetchFromGitHub {
     owner = "georgeweigt";
     repo = pname;
-    rev = "b0d822f10243ad5b1c88efb5a82b43a0bbf1bfbc";
-    hash = "sha256-eJ/EmzV5UZGxwZNIna/XXkYY+vkLc610KcywBFPRfyM=";
+    rev = "bec2c9bd0750ec7970f6c701e619565c9d348e84";
+    hash = "sha256-+VohU8mkFjZ0zhjmri0KY1kTzPLn2q5Au4nEBdXcR+8=";
   };
 
   checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
index ade614c89b0f..0c859fd95bea 100644
--- a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qalculate-gtk";
-  version = "4.8.1";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-bG0hui5GjHWHny/8Rq5sZGz3s5rYnYlpc+K8I/LwDto=";
+    hash = "sha256-rQxOOxM4TazkDs/H3KEPbdo6WBl0ptyAlZwv8nnGMss=";
   };
 
   hardeningDisable = [ "format" ];
@@ -23,6 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "http://qalculate.github.io";
     maintainers = with maintainers; [ gebner doronbehar alyaeanyx ];
     license = licenses.gpl2Plus;
+    mainProgram = "qalculate-gtk";
     platforms = platforms.all;
   };
 })
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix
index adc43b5f9dab..9932c7c2dcd9 100644
--- a/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qalculate-qt";
-  version = "4.8.1";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-qt";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-hH+orU+5PmPcrhkLKCdsDhVCrD8Mvxp2RPTGSlsUP7Y=";
+    hash = "sha256-Ac8RRxLheaenlR7JqKzfBpPxsq7PHfE9qXFf3Vx4GSg=";
   };
 
   nativeBuildInputs = [ qmake intltool pkg-config qttools wrapQtAppsHook ];
@@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "http://qalculate.github.io";
     maintainers = with maintainers; [ _4825764518 ];
     license = licenses.gpl2Plus;
+    mainProgram = "qalculate-qt";
     platforms = platforms.unix;
   };
 })
diff --git a/nixpkgs/pkgs/applications/science/math/yacas/fix-test-script.patch b/nixpkgs/pkgs/applications/science/math/yacas/fix-test-script.patch
deleted file mode 100644
index da85f0dc0e1b..000000000000
--- a/nixpkgs/pkgs/applications/science/math/yacas/fix-test-script.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git i/tests/test-yacas w/tests/test-yacas
-index b375d78b..0e3a616b 100755
---- i/tests/test-yacas
-+++ w/tests/test-yacas
-@@ -35,9 +35,9 @@ FAILED_TESTS=""  # list of failed tests
- FAILURES=0       # number of failed tests
- TOTALTESTS=0     # total number of tests
- 
--TESTFILE=/tmp/test-yacas.$$
--TIMEFILE=/tmp/time-yacas.$$
--VERSIONF=/tmp/version-yacas-$$.ys
-+TESTFILE="$(mktemp -t test-yacas.XXX)"
-+TIMEFILE="$(mktemp -t time-yacas.XXX)"
-+VERSIONF="$(mktemp -t version-yacas-XXX.ys)"
- LOGFILE=yacas-logfile.txt
- echo "Print(Version());" > $VERSIONF
- VERSION=`$CMD $VERSIONF`
-@@ -69,7 +69,7 @@ for scr in $SCRIPTS; do
- #		fi
-     echo "Running $scr"
- 	if [ -f $TESTFILE ]; then rm $TESTFILE ; fi
--    /bin/bash -c "time -p ($CMD $f || echo \"Error: exit status $?\") | tee $TESTFILE" \
-+	    bash -c "time -p ($CMD $f || echo \"Error: exit status $?\") | tee $TESTFILE" \
- 		2> $TIMEFILE \
- 		|| (echo "Error -- User interrupt" > $TESTFILE)
- #	cat $TIMEFILE
diff --git a/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix b/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
index cdc083a467d8..f61fe5b01857 100644
--- a/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
+++ b/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
@@ -1,8 +1,11 @@
 { lib
-, stdenv
+, buildFHSEnv
 , fetchFromGitHub
-, scons
+, ocl-icd
 , openssl
+, scons
+, stdenv
+, extraPkgs ? [ ]
 }:
 let
   version = "8.1.18";
@@ -14,57 +17,64 @@ let
     hash = "sha256-G0rknVmZiyC4sRTOowFjf7EQ5peGf+HLPPcLWXXFlX4=";
   };
 
-  fah-web-client-bastetSrc = fetchFromGitHub {
-    owner = "foldingathome";
-    repo = "fah-web-client-bastet";
-    rev = "v${version}";
-    hash = lib.fakeHash;
-  };
-in
-stdenv.mkDerivation {
-  pname = "fah-client";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "FoldingAtHome";
-    repo = "fah-client-bastet";
-    rev = "v${version}";
-    hash = "sha256-IgT/5NqCwN8N8OObjtASuT4IRb2EN4bdixxUdjiyddI=";
-  };
+  fah-client = stdenv.mkDerivation {
+    pname = "fah-client";
+    inherit version;
 
-  nativeBuildInputs = [ scons ];
+    src = fetchFromGitHub {
+      owner = "FoldingAtHome";
+      repo = "fah-client-bastet";
+      rev = "v${version}";
+      hash = "sha256-IgT/5NqCwN8N8OObjtASuT4IRb2EN4bdixxUdjiyddI=";
+    };
 
-  buildInputs = [ openssl ];
+    nativeBuildInputs = [ scons ];
 
-  postUnpack = ''
-    export CBANG_HOME=$NIX_BUILD_TOP/cbang
+    buildInputs = [ openssl ];
 
-    cp -r --no-preserve=mode ${cbangSrc} $CBANG_HOME
-  '';
+    postUnpack = ''
+      export CBANG_HOME=$NIX_BUILD_TOP/cbang
 
-  preBuild = ''
-    scons -C $CBANG_HOME
-  '';
+      cp -r --no-preserve=mode ${cbangSrc} $CBANG_HOME
+    '';
+
+    preBuild = ''
+      scons -C $CBANG_HOME
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/{bin,share/applications,share/feh-client}
 
-  installPhase = ''
-    runHook preInstall
+      cp fah-client $out/bin/fah-client
 
-    mkdir -p $out/{bin,share/applications,share/feh-client}
+      cp install/lin/fah-client.desktop $out/share/applications/
+      cp -r images $out/share/feh-client/
 
-    cp fah-client $out/bin/fah-client
+      sed -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" -i $out/share/applications/fah-client.desktop
+
+      runHook postInstall
+    '';
+
+  };
+in
+buildFHSEnv {
+  name = fah-client.name;
 
-    cp install/lin/fah-client.desktop $out/share/applications/
-    cp -r images $out/share/feh-client/
+  targetPkgs = _: [ fah-client ocl-icd ] ++ extraPkgs;
 
-    sed -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" -i $out/share/applications/fah-client.desktop
+  runScript = "/bin/fah-client";
 
-    runHook postInstall
+  extraInstallCommands = ''
+    mv $out/bin/$name $out/bin/fah-client
   '';
 
   meta = {
     description = "Folding@home client";
     homepage = "https://foldingathome.org/";
     license = lib.licenses.gpl3;
+    mainProgram = "fah-client";
     maintainers = [ lib.maintainers.zimbatm ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/applications/science/misc/root/5.nix b/nixpkgs/pkgs/applications/science/misc/root/5.nix
index 2d830e3d1016..dfe7b5eca97f 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/5.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/5.nix
@@ -155,7 +155,7 @@ stdenv.mkDerivation rec {
     homepage = "https://root.cern.ch/";
     description = "A data analysis framework";
     platforms = platforms.unix;
-    broken = !stdenv.isx86_64;
+    broken = !stdenv.isx86_64 || stdenv.cc.isClang or false;
     maintainers = with maintainers; [ veprbl ];
     license = licenses.lgpl21;
   };
diff --git a/nixpkgs/pkgs/applications/science/misc/root/default.nix b/nixpkgs/pkgs/applications/science/misc/root/default.nix
index 3f3b64069bb1..24844eb621ec 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -58,7 +58,7 @@
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.28.08";
+  version = "6.28.10";
 
   passthru = {
     tests = import ./tests { inherit callPackage; };
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    hash = "sha256-o+ZLTAH4fNm75X5h75a0FibkmwRGCVBw1B2b+6NSaGI=";
+    hash = "sha256-adb962B+ayC9AsdX+mIXAkwLYTLB6bHf9Nhdmiu35R4=";
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
diff --git a/nixpkgs/pkgs/applications/science/misc/toil/default.nix b/nixpkgs/pkgs/applications/science/misc/toil/default.nix
index 7fc070f4f9f7..9142676fff48 100644
--- a/nixpkgs/pkgs/applications/science/misc/toil/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/toil/default.nix
@@ -6,21 +6,16 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "toil";
-  version = "5.7.1";
+  version = "5.12.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "DataBiosphere";
     repo = pname;
     rev = "refs/tags/releases/${version}";
-    hash = "sha256-m+XvNyzd0ly2YqKhgxezgGaCXLs3CmupJMnp5RIZqNI=";
+    hash = "sha256-cTpbQo9tPZifUO59vbnIa3XUinFJ2/5Slfe4yszglFM=";
   };
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "docker>=3.7.2, <6" "docker"
-  '';
-
   propagatedBuildInputs = with python3.pkgs; [
     addict
     dill
@@ -42,7 +37,6 @@ python3.pkgs.buildPythonApplication rec {
     boto
     botocore
     flask
-    mypy-boto3-s3
     pytestCheckHook
     stubserver
   ]);
@@ -63,6 +57,10 @@ python3.pkgs.buildPythonApplication rec {
     "src/toil/test/src"
     "src/toil/test/wdl"
     "src/toil/test/utils/utilsTest.py"
+    "src/toil/test/cwl/cwlTest.py"
+    "src/toil/test/lib/test_ec2.py"
+    "src/toil/test/lib/aws/test_iam.py"
+    "src/toil/test/lib/aws/test_s3.py"
   ];
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index e669562c9cc7..1daeeb81410a 100644
--- a/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -1,4 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, hwloc, fftw, perl, blas, lapack, mpi, cudatoolkit
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, hwloc
+, fftw
+, perl
+, blas
+, lapack
+, mpi
+, cudaPackages
 , plumed
 , singlePrec ? true
 , config
@@ -9,6 +19,8 @@
 }:
 
 let
+  inherit (cudaPackages.cudaFlags) cudaCapabilities dropDot;
+
   # Select reasonable defaults for all major platforms
   # The possible values are defined in CMakeLists.txt:
   # AUTO None SSE2 SSE4.1 AVX_128_FMA AVX_256 AVX2_256
@@ -52,7 +64,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs =
     [ cmake ]
     ++ lib.optional enablePlumed plumed
-    ;
+    ++ lib.optionals enableCuda [ cudaPackages.cuda_nvcc ];
 
   buildInputs = [
     fftw
@@ -61,13 +73,17 @@ in stdenv.mkDerivation rec {
     blas
     lapack
   ] ++ lib.optional enableMpi mpi
-    ++ lib.optional enableCuda cudatoolkit
-  ;
+  ++ lib.optionals enableCuda [
+    cudaPackages.cuda_cudart
+    cudaPackages.libcufft
+    cudaPackages.cuda_profiler_api
+  ];
 
   propagatedBuildInputs = lib.optional enableMpi mpi;
   propagatedUserEnvPkgs = lib.optional enableMpi mpi;
 
   cmakeFlags = [
+    (lib.cmakeBool "GMX_HWLOC" true)
     "-DGMX_SIMD:STRING=${SIMD cpuAcceleration}"
     "-DGMX_OPENMP:BOOL=TRUE"
     "-DBUILD_SHARED_LIBS=ON"
@@ -87,7 +103,13 @@ in stdenv.mkDerivation rec {
      else [
        "-DGMX_MPI:BOOL=FALSE"
      ]
-  ) ++ lib.optional enableCuda "-DGMX_GPU=CUDA";
+  ) ++ lib.optionals enableCuda [
+    "-DGMX_GPU=CUDA"
+    (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" (builtins.concatStringsSep ";" (map dropDot cudaCapabilities)))
+
+    # Gromacs seems to ignore and override the normal variables, so we add this ad hoc:
+    (lib.cmakeFeature "GMX_CUDA_TARGET_COMPUTE" (builtins.concatStringsSep ";" (map dropDot cudaCapabilities)))
+  ];
 
   postInstall = ''
     moveToOutput share/cmake $dev