diff --git a/pkgs/by-name/ad/adios2/package.nix b/pkgs/by-name/ad/adios2/package.nix index ffec3ff21f42..867476aea756 100644 --- a/pkgs/by-name/ad/adios2/package.nix +++ b/pkgs/by-name/ad/adios2/package.nix @@ -25,7 +25,9 @@ libffi, yaml-cpp, nlohmann_json, + openssl, llvmPackages, + gtest, ctestCheckHook, mpiCheckPhaseHook, testers, @@ -51,24 +53,24 @@ let }; in stdenv.mkDerivation (finalAttrs: { - version = "2.10.2"; + version = "2.11.0"; pname = "adios2"; src = fetchFromGitHub { owner = "ornladios"; repo = "adios2"; tag = "v${finalAttrs.version}"; - hash = "sha256-NVyw7xoPutXeUS87jjVv1YxJnwNGZAT4QfkBLzvQbwg="; + hash = "sha256-yHPI///17poiCEb7Luu5qfqxTWm9Nh+o9r57mZT26U0="; }; postPatch = '' chmod +x cmake/install/post/adios2-config.pre.sh.in patchShebangs cmake/install/post/{generate-adios2-config,adios2-config.pre}.sh.in - '' - # Dynamic cast to nullptr on darwin platform, switch to unsafe reinterpret cast. - + lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace bindings/Python/py11{Attribute,Engine,Variable}.cpp \ - --replace-fail "dynamic_cast" "reinterpret_cast" + + # use upstream GoogleTest.cmake + # see https://github.com/ornladios/ADIOS2/issues/4659 + substituteInPlace cmake/GoogleTest.cmake \ + --replace-fail 'CMAKE_VERSION VERSION_LESS 4' 'TRUE' ''; nativeBuildInputs = [ @@ -98,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: { zlib yaml-cpp nlohmann_json + openssl # Todo: add these optional dependencies in nixpkgs. # sz @@ -141,11 +144,10 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "ADIOS2_USE_UCX" (lib.meta.availableOn stdenv.hostPlatform ucx)) (lib.cmakeBool "ADIOS2_USE_Sodium" true) (lib.cmakeBool "ADIOS2_USE_Catalyst" true) + (lib.cmakeBool "ADIOS2_USE_OpenSSL" true) (lib.cmakeBool "ADIOS2_USE_Campaign" true) (lib.cmakeBool "ADIOS2_USE_AWSSDK" false) - # use vendored gtest as nixpkgs#gtest does not include in - (lib.cmakeBool "ADIOS2_USE_EXTERNAL_GTEST" false) (lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doCheck) # higher MPIEXEC_MAX_NUMPROCS>8 might cause tests failure in # - Engine.BP.BPJoinedArray.MultiBlock.BP4.MPI @@ -171,51 +173,29 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; dontUseNinjaCheck = true; - preCheck = '' - export adios2_DIR=$PWD - ''; - enableParallelChecking = false; - enabledTestPaths = [ - "../testing/adios2/python/Test*.py" - ]; - __darwinAllowLocalNetworking = finalAttrs.finalPackage.doCheck && mpiSupport; nativeCheckInputs = [ python3Packages.python + gtest ctestCheckHook mpiCheckPhaseHook ]; - # required for finding the generated adios2-config.cmake file - preInstall = '' - export adios2_DIR=$out/lib/cmake/adios2 - ''; - pythonImportsCheck = [ "adios2" ]; passthru.tests = { - withCheck = finalAttrs.finalPackage.overrideAttrs { - doCheck = true; - - disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ - # TypeError: cannot pickle 'TextIOWrapper' instances - "Test.Engine.DataMan1xN.Serial" - "Test.Engine.DataManSingleValues" - # The test assumed to always contain n*64 byte-length records. Right now the length of index buffer is 71 bytes. - "Staging.1x1.Local2.BPS.BB.BP4_stream" - # Timeout - "Staging.3x5LockGeometry.FS.BB.FileStream" - "Engine.Staging.TestOnDemandMPI.ADIOS2OnDemandMPI.SST.MPI" - ]; - }; - cmake-config = testers.hasCmakeConfigModules { moduleNames = [ "adios2" ]; package = finalAttrs.finalPackage; }; + } + // lib.optionalAttrs stdenv.hostPlatform.isLinux { + withCheck = finalAttrs.finalPackage.overrideAttrs { + doCheck = true; + }; }; meta = { diff --git a/pkgs/by-name/do/dolfinx/package.nix b/pkgs/by-name/do/dolfinx/package.nix index 93def43bc33b..a44c7e147ce6 100644 --- a/pkgs/by-name/do/dolfinx/package.nix +++ b/pkgs/by-name/do/dolfinx/package.nix @@ -12,7 +12,6 @@ kahip, adios2, python3Packages, - darwinMinVersionHook, catch2_3, withParmetis ? false, }: @@ -26,20 +25,16 @@ let ); in stdenv.mkDerivation (finalAttrs: { - version = "0.10.0.post3"; + version = "0.10.0.post4"; pname = "dolfinx"; src = fetchFromGitHub { owner = "fenics"; repo = "dolfinx"; tag = "v${finalAttrs.version}"; - hash = "sha256-YsFya92lz9Twc1PsSLGj6tJNvKb+MQfpmN/qOFxbe34="; + hash = "sha256-vzP5vBZpUR4HW6yJw1wFtbo/TiZ/k02TXV2Zk42b5aQ="; }; - preConfigure = '' - cd cpp - ''; - nativeBuildInputs = [ cmake pkg-config @@ -49,7 +44,6 @@ stdenv.mkDerivation (finalAttrs: { dolfinxPackages.kahip dolfinxPackages.scotch ] - ++ lib.optional stdenv.hostPlatform.isDarwin (darwinMinVersionHook "13.3") ++ lib.optional withParmetis dolfinxPackages.parmetis; propagatedBuildInputs = [ @@ -64,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: { python3Packages.fenics-ffcx ]; + cmakeDir = "../cpp"; + cmakeFlags = [ (lib.cmakeBool "DOLFINX_ENABLE_ADIOS2" true) (lib.cmakeBool "DOLFINX_ENABLE_PETSC" true) @@ -81,9 +77,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "${finalAttrs.pname}-unittests"; inherit (finalAttrs) version src; - preConfigure = '' - cd cpp/test - ''; + cmakeDir = "../cpp/test"; nativeBuildInputs = [ cmake