diff --git a/pkgs/by-name/do/dolfinx/package.nix b/pkgs/by-name/do/dolfinx/package.nix index 8f544b2857ed..402f9b7aa820 100644 --- a/pkgs/by-name/do/dolfinx/package.nix +++ b/pkgs/by-name/do/dolfinx/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, pkg-config, spdlog, @@ -26,32 +25,16 @@ let ); in stdenv.mkDerivation (finalAttrs: { - version = "0.10.0.post5"; + version = "0.11.0.post0"; pname = "dolfinx"; src = fetchFromGitHub { owner = "fenics"; repo = "dolfinx"; tag = "v${finalAttrs.version}"; - hash = "sha256-CK7YEtJtrx/Mto72RHT4Qjg5StO28Et+FeCYxk5T+8s="; + hash = "sha256-brmU6AA7lN4TyHjHcg4mHUIj/OvJ16pfspEN95M4oOE="; }; - patches = [ - # Fix wrong span extent in _lift_bc_interior_facets - # https://github.com/FEniCS/dolfinx/pull/4102 - (fetchpatch { - url = "https://github.com/FEniCS/dolfinx/commit/6daca34a075a6dcdfdf77feb13d55d5dbd20e4dd.patch"; - hash = "sha256-b/C1MqslS2OBCt+kK/+vJjW8pmsJx2FQ36qDtFA1ewI="; - includes = [ "cpp/dolfinx/fem/assemble_vector_impl.h" ]; - }) - # Fix hdf5 interface for rank 1 - # https://github.com/FEniCS/dolfinx/pull/4043 - (fetchpatch { - url = "https://github.com/FEniCS/dolfinx/commit/fce7c44f220d4cb94c5149ad28cd1ab00909c319.patch"; - hash = "sha256-EVm4Rx5UO/3pKIVvjgYAkN+i5QR+u0Nxwxotlf41t+Q="; - }) - ]; - nativeBuildInputs = [ cmake pkg-config diff --git a/pkgs/by-name/li/libsupermesh/package.nix b/pkgs/by-name/li/libsupermesh/package.nix index 3608367671c8..e523f9a89026 100644 --- a/pkgs/by-name/li/libsupermesh/package.nix +++ b/pkgs/by-name/li/libsupermesh/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libsupermesh"; - version = "2025.4"; + version = "2026.0"; src = fetchFromGitHub { owner = "firedrakeproject"; repo = "libsupermesh"; - tag = "v${finalAttrs.version}"; - hash = "sha256-VIGfuSVneCBapZyU0GXyi6isUSdhD2Ylm4mCymSvzbo="; + tag = finalAttrs.version; + hash = "sha256-f/5y3XherRbN/Eq3tfivrOHByF8LAXtYN3v9Vx82m8Q="; }; strictDeps = true; @@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://github.com/firedrakeproject/libsupermesh"; description = "Parallel supermeshing library"; - changelog = "https://github.com/firedrakeproject/libsupermesh/releases/tag/v${finalAttrs.version}"; + changelog = "https://github.com/firedrakeproject/libsupermesh/releases/tag/${finalAttrs.version}"; license = lib.licenses.lgpl2Plus; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ qbisi ]; diff --git a/pkgs/by-name/pe/petsc/fix-petsc4py-install-prefix.patch b/pkgs/by-name/pe/petsc/fix-petsc4py-install-prefix.patch deleted file mode 100644 index d963cc6b6cdd..000000000000 --- a/pkgs/by-name/pe/petsc/fix-petsc4py-install-prefix.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/config/BuildSystem/config/packages/petsc4py.py b/config/BuildSystem/config/packages/petsc4py.py -index 4a58243..831aa04 100644 ---- a/config/BuildSystem/config/packages/petsc4py.py -+++ b/config/BuildSystem/config/packages/petsc4py.py -@@ -37,7 +37,7 @@ class Configure(config.package.Package): - - def Install(self): - import os -- installLibPath = os.path.join(self.installDir, 'lib') -+ installLibPath = os.path.join(self.installDir, '@PYTHON_SITEPACKAGES@') - if self.setCompilers.isDarwin(self.log): - apple = 'You may need to\n (csh/tcsh) setenv MACOSX_DEPLOYMENT_TARGET 10.X\n (sh/bash) MACOSX_DEPLOYMENT_TARGET=10.X; export MACOSX_DEPLOYMENT_TARGET\nbefore running make on PETSc' - else: -@@ -70,7 +70,7 @@ class Configure(config.package.Package): - newdir += 'NUMPY_INCLUDE="'+numpy_include+'" ' - - self.addDefine('HAVE_PETSC4PY',1) -- self.addDefine('PETSC4PY_INSTALL_PATH','"'+os.path.join(self.installdir.dir,'lib')+'"') -+ self.addDefine('PETSC4PY_INSTALL_PATH','"'+installLibPath+'"') - self.addMakeMacro('PETSC4PY','yes') - self.addMakeRule('petsc4pybuild','', \ - ['@echo "*** Building petsc4py ***"',\ diff --git a/pkgs/by-name/pe/petsc/package.nix b/pkgs/by-name/pe/petsc/package.nix index c3fa2eccd233..a8792cfaf19a 100644 --- a/pkgs/by-name/pe/petsc/package.nix +++ b/pkgs/by-name/pe/petsc/package.nix @@ -3,7 +3,6 @@ newScope, stdenv, fetchzip, - replaceVars, bash, pkg-config, gfortran, @@ -110,24 +109,24 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "petsc"; - version = "3.24.6"; + version = "3.25.2"; src = fetchzip { url = "https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-${finalAttrs.version}.tar.gz"; - hash = "sha256-PIW+dnIgnzQjpHqNBi4k730Bg7goO3G9zYVYoehvn7k="; + hash = "sha256-Q+QrOdSZO9wqdQKKVfhJzKaB3U80WdlegYtdZW7ScCg="; }; - patches = [ - (replaceVars ./fix-petsc4py-install-prefix.patch { - PYTHON_SITEPACKAGES = python3Packages.python.sitePackages; - }) - ]; - postPatch = '' patchShebangs ./lib/petsc/bin substituteInPlace config/example_template.py \ --replace-fail "/usr/bin/env bash" "${bash}/bin/bash" + + substituteInPlace config/BuildSystem/config/packages/petsc4py.py \ + --replace-fail "installLibPath = os.path.join(self.installDir, 'lib')" \ + "installLibPath = os.path.join(self.installDir, '${python3Packages.python.sitePackages}')" \ + --replace-fail "self.addDefine('PETSC4PY_INSTALL_PATH','\"'+os.path.join(self.installdir.dir,'lib')+'\"')" \ + "self.addDefine('PETSC4PY_INSTALL_PATH','\"'+installLibPath+'\"')" ''; strictDeps = true; @@ -232,11 +231,16 @@ stdenv.mkDerivation (finalAttrs: { # the library is installed and available. doInstallCheck = true; installCheckTarget = "check_install"; - - # The PETSC4PY=no flag disables the ex100 test, - # which compiles C code to load Python modules for solving a math problem. - # This test fails on the Darwin platform but is rarely a common use case for petsc4py. - installCheckFlags = lib.optional stdenv.hostPlatform.isDarwin "PETSC4PY=no"; + # check_install is defined in PETSc's top-level makefile. Select it directly + # instead of the default GNUmakefile wrapper, then check the installed prefix + # by pointing PETSC_DIR at $out. PETSC_ARCH must be empty for prefix installs, + # where lib/petsc/conf is not nested below an architecture-specific build dir. + installCheckFlags = [ + "-f" + "makefile" + "PETSC_DIR=${placeholder "out"}" + "PETSC_ARCH=" + ]; nativeInstallCheckInputs = [ mpiCheckPhaseHook diff --git a/pkgs/by-name/sl/slepc/package.nix b/pkgs/by-name/sl/slepc/package.nix index 90a5bfabc95f..5643d8620af6 100644 --- a/pkgs/by-name/sl/slepc/package.nix +++ b/pkgs/by-name/sl/slepc/package.nix @@ -21,13 +21,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "slepc"; - version = "3.24.3"; + version = "3.25.1"; src = fetchFromGitLab { owner = "slepc"; repo = "slepc"; tag = "v${finalAttrs.version}"; - hash = "sha256-eCCdADdhatarzordwPKpJPIQbFWYngMlJvMBoVcTOWk="; + hash = "sha256-CLZ3l9H41MrXa4IEkiiGS7VSs3ASNk5/DnLMmJ7NY5U="; }; postPatch = '' diff --git a/pkgs/development/python-modules/fenics-basix/default.nix b/pkgs/development/python-modules/fenics-basix/default.nix index 4f2bc052c21d..a3c8265abcf0 100644 --- a/pkgs/development/python-modules/fenics-basix/default.nix +++ b/pkgs/development/python-modules/fenics-basix/default.nix @@ -20,14 +20,14 @@ buildPythonPackage (finalAttrs: { pname = "fenics-basix"; - version = "0.10.0.post0"; + version = "0.11.0"; pyproject = true; src = fetchFromGitHub { owner = "fenics"; repo = "basix"; tag = "v${finalAttrs.version}"; - hash = "sha256-iKG6Cs28D0scPEIRKoGk/CgquKzGZvIjf4UIj4MQXHA="; + hash = "sha256-MBrK7O3iQ0XFONebbAFXBom9i985EyTAXrOlSMiIpk8="; }; dontUseCmakeConfigure = true; diff --git a/pkgs/development/python-modules/fenics-ffcx/default.nix b/pkgs/development/python-modules/fenics-ffcx/default.nix index b5718eb486fb..b48a2e848abd 100644 --- a/pkgs/development/python-modules/fenics-ffcx/default.nix +++ b/pkgs/development/python-modules/fenics-ffcx/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "fenics-ffcx"; - version = "0.10.1.post0"; + version = "0.11.0"; pyproject = true; src = fetchFromGitHub { owner = "fenics"; repo = "ffcx"; tag = "v${finalAttrs.version}"; - hash = "sha256-uV3sfK6tpdoVf+O/EYZw3yR1PdqkoXt4q66zwQ8h/Ks="; + hash = "sha256-pAnoCLf1ObJ2jDOdQ0cr3qu3z+rNeAVFPnvegp/KqeM="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/fenics-ufl/default.nix b/pkgs/development/python-modules/fenics-ufl/default.nix index 3770d4feff56..53cd87f976ce 100644 --- a/pkgs/development/python-modules/fenics-ufl/default.nix +++ b/pkgs/development/python-modules/fenics-ufl/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "fenics-ufl"; - version = "2025.2.1"; + version = "2026.1.0"; pyproject = true; src = fetchFromGitHub { owner = "fenics"; repo = "ufl"; tag = finalAttrs.version; - hash = "sha256-7hibe/oVueK5YORhA81641b5UcE4MVyQvgVD0Fngje4="; + hash = "sha256-FwU9QmkyYuUfxt4v8sHFv+YNHldx1g0e/TDezijTUb4="; }; build-system = [ diff --git a/pkgs/development/python-modules/firedrake-fiat/default.nix b/pkgs/development/python-modules/firedrake-fiat/default.nix index 533819f139a1..f49f8551eb61 100644 --- a/pkgs/development/python-modules/firedrake-fiat/default.nix +++ b/pkgs/development/python-modules/firedrake-fiat/default.nix @@ -2,37 +2,36 @@ lib, buildPythonPackage, fetchFromGitHub, - fetchFromBitbucket, setuptools, numpy, scipy, sympy, recursivenodes, symengine, - fenics-ufl, + firedrake-ufl, pytestCheckHook, nix-update-script, }: buildPythonPackage (finalAttrs: { pname = "firedrake-fiat"; - version = "2025.10.1"; + version = "2026.4.0"; pyproject = true; src = fetchFromGitHub { owner = "firedrakeproject"; repo = "fiat"; tag = finalAttrs.version; - hash = "sha256-x1/gf/QVez6GxPUafxdhxqyT0MkL6w2Qz6VAxRNufdc="; + hash = "sha256-aO4iFDwt9l5+s+96kjxja92OWnJb64OBpYXu6oxk51c="; }; postPatch = let - fiat-reference-data = fetchFromBitbucket { - owner = "fenics-project"; + fiat-reference-data = fetchFromGitHub { + owner = "firedrakeproject"; repo = "fiat-reference-data"; - rev = "0c8c97f7e4919402129e5ff3b54e3f0b9e902b7c"; - hash = "sha256-vdCkmCkKvLSYACF6MnZ/WuKuCNAoC3uu1A/9m9KwBK8="; + rev = "508bd755e024010f6fc691a36e51a8f4d7de7efe"; + hash = "sha256-Ylq5u3d54SnCiB3nLRkkQu7IkRVuMcUWPgIjn7SIQ0M="; }; in '' @@ -46,7 +45,7 @@ buildPythonPackage (finalAttrs: { scipy sympy recursivenodes - fenics-ufl + firedrake-ufl symengine ]; diff --git a/pkgs/development/python-modules/firedrake-ufl/default.nix b/pkgs/development/python-modules/firedrake-ufl/default.nix new file mode 100644 index 000000000000..350a12a09274 --- /dev/null +++ b/pkgs/development/python-modules/firedrake-ufl/default.nix @@ -0,0 +1,12 @@ +{ + fenics-ufl, +}: + +fenics-ufl.overrideAttrs (oldAttrs: rec { + version = "2025.3.0"; + + src = oldAttrs.src.override { + tag = version; + hash = "sha256-BFeVwurTsFNirpjZlgaABzw/cLzWxXwbCHJQBHrLuOY="; + }; +}) diff --git a/pkgs/development/python-modules/firedrake/default.nix b/pkgs/development/python-modules/firedrake/default.nix index 21864dfe0891..dbff6724aa46 100644 --- a/pkgs/development/python-modules/firedrake/default.nix +++ b/pkgs/development/python-modules/firedrake/default.nix @@ -15,7 +15,7 @@ decorator, cachetools, mpi4py, - fenics-ufl, + firedrake-ufl, firedrake-fiat, h5py, libsupermesh, @@ -34,7 +34,6 @@ scipy, sympy, islpy, - vtk, matplotlib, immutabledict, @@ -59,20 +58,20 @@ let in buildPythonPackage (finalAttrs: { pname = "firedrake"; - version = "2025.10.3"; + version = "2026.4.1"; pyproject = true; src = fetchFromGitHub { owner = "firedrakeproject"; repo = "firedrake"; tag = finalAttrs.version; - hash = "sha256-9AkyVM0dpjdQqpuOBN60lCKIZJR0HXpp0g1Am/xUwbI="; + hash = "sha256-scsxxs9k280R9+mM5CC7aIkKJ8rR1faexnUuMrDO9+k="; }; # relax build-dependency petsc4py postPatch = '' substituteInPlace pyproject.toml --replace-fail \ - "petsc4py==3.24.5" "petsc4py" + "petsc4py==3.25.0" "petsc4py" ''; pythonRelaxDeps = [ @@ -99,7 +98,7 @@ buildPythonPackage (finalAttrs: { decorator cachetools firedrakePackages.mpi4py - fenics-ufl + firedrake-ufl firedrake-fiat firedrakePackages.h5py immutabledict @@ -118,9 +117,6 @@ buildPythonPackage (finalAttrs: { rtree scipy sympy - # vtk optional required by IO module, we can make it a hard dependency in nixpkgs, - # see https://github.com/firedrakeproject/firedrake/pull/4713 - vtk # required by script spydump matplotlib ] diff --git a/pkgs/development/python-modules/petsctools/default.nix b/pkgs/development/python-modules/petsctools/default.nix index 425ea8e135f3..aa6fd9d2c689 100644 --- a/pkgs/development/python-modules/petsctools/default.nix +++ b/pkgs/development/python-modules/petsctools/default.nix @@ -11,14 +11,14 @@ buildPythonPackage (finalAttrs: { pname = "petsctools"; - version = "2025.3"; + version = "2026.0"; pyproject = true; src = fetchFromGitHub { owner = "firedrakeproject"; repo = "petsctools"; tag = finalAttrs.version; - hash = "sha256-5SV34KhympX58lWfFaQo5lVOeafcc/Y8HvYtZtY+4Eo="; + hash = "sha256-IMDPjhyehOkyifSJ7nOJQbZu21w6Xyyz9fv/WLDpEgQ="; }; build-system = [ @@ -43,6 +43,11 @@ buildPythonPackage (finalAttrs: { ] ++ finalAttrs.passthru.optional-dependencies.petsc4py; + disabledTests = [ + # Expects a double slash when PETSC_ARCH is empty. + "test_get_petsc_dirs" + ]; + meta = { homepage = "https://github.com/firedrakeproject/petsctools"; description = "Pythonic extensions for petsc4py and slepc4py"; diff --git a/pkgs/development/python-modules/pyadjoint-ad/default.nix b/pkgs/development/python-modules/pyadjoint-ad/default.nix index c20a2787f2f8..bc595c23d248 100644 --- a/pkgs/development/python-modules/pyadjoint-ad/default.nix +++ b/pkgs/development/python-modules/pyadjoint-ad/default.nix @@ -11,14 +11,14 @@ buildPythonPackage (finalAttrs: { pname = "pyadjoint-ad"; - version = "2025.10.1"; + version = "2026.4.1"; pyproject = true; src = fetchFromGitHub { owner = "dolfin-adjoint"; repo = "pyadjoint"; tag = finalAttrs.version; - hash = "sha256-UI1eRB9hy4lb/s18NjaAyjH3HvDwRbRzk0ZuWxf1Uuc="; + hash = "sha256-ChtZQ5MJeQt1CqAsFHTCwbIJrcwBKlNxSF5zi6pHLsA="; }; build-system = [ diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e0003dddcc13..c27fa1eb61d7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5662,6 +5662,8 @@ self: super: with self; { firedrake-fiat = callPackage ../development/python-modules/firedrake-fiat { }; + firedrake-ufl = callPackage ../development/python-modules/firedrake-ufl { }; + fireflyalgorithm = callPackage ../development/python-modules/fireflyalgorithm { }; firetv = callPackage ../development/python-modules/firetv { };