python3Packages.fenics: fix build, pin to older boost (#166728)

* python3Packages.fenics: fix build, pin to older boost

Looking at upstream, there are various issues with newer boost.
(At least some of them have been since fixed)

For now, fix the build by using a version of boost that works
with the current version.

Error here was complaining about `std::min_element`,
which is no longer available, apparently, due to newer boost
no longer (transitively) including <algorithm>.

This was added in C++17, so I'm not sure the cmake flag
specifying dolfin built with C++11 makes sense or is used.
Leaving for now :).

* nixos/tests/fenics: fix name of machine/node in script

Still fails for now.

* python3Packages.fenics: fix accidentally changed strings in subst

Looks like in migration to pkg-config this was erroneously
changed from `pkgconfig` (python package, and source string)
to `pkg-config` (nix package name, tool name).
(see 9bb3fccb5b)

Fixes the NixOS test.
This commit is contained in:
Will Dietz 2022-04-14 19:37:20 -05:00 committed by GitHub
parent ccb9653427
commit dde5b0ca7a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 3 deletions

View file

@ -44,6 +44,6 @@ in
{ nodes, ... }:
''
start_all()
node1.succeed("${fenicsScript}")
fenicsnode.succeed("${fenicsScript}")
'';
})

View file

@ -243,8 +243,8 @@ let
export CMAKE_PREFIX_PATH=${pybind11}/share/cmake/pybind11:$CMAKE_PREFIX_PATH
substituteInPlace setup.py --replace "pybind11==2.2.4" "pybind11"
substituteInPlace dolfin/jit/jit.py \
--replace 'pkg-config.exists("dolfin")' 'pkg-config.exists("${dolfin}/lib/pkgconfig/dolfin.pc")' \
--replace 'pkg-config.parse("dolfin")' 'pkg-config.parse("${dolfin}/lib/pkgconfig/dolfin.pc")'
--replace 'pkgconfig.exists("dolfin")' 'pkgconfig.exists("${dolfin}/lib/pkgconfig/dolfin.pc")' \
--replace 'pkgconfig.parse("dolfin")' 'pkgconfig.parse("${dolfin}/lib/pkgconfig/dolfin.pc")'
'';
buildInputs = [
dolfin

View file

@ -2851,6 +2851,7 @@ in {
fenics = callPackage ../development/libraries/science/math/fenics {
hdf5 = pkgs.hdf5_1_10;
boost = pkgs.boost169;
};
ffcv = callPackage ../development/python-modules/ffcv { };