Commit 556cd7c6 authored by qbisi's avatar qbisi
Browse files

p4est: 0-unstable-2021-06-22 -> 2.8.7

parent ec52fb35
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
@@ -4,65 +4,75 @@
  fetchFromGitHub,
  autoreconfHook,
  pkg-config,
  p4est-withMetis ? true,
  metis,
  p4est-sc,
  mpi,
  mpiCheckPhaseHook,
}:
  debug ? false,
  withMetis ? true,
  mpiSupport ? true,

  # passthru.tests
  testers,
}:
let
  inherit (p4est-sc) debugEnable mpiSupport;
  dbg = lib.optionalString debugEnable "-dbg";
  withMetis = p4est-withMetis;
  p4est-sc' = p4est-sc.override { inherit mpi mpiSupport debug; };
in
stdenv.mkDerivation {
  pname = "p4est${dbg}";
  version = "unstable-2021-06-22";
stdenv.mkDerivation (finalAttrs: {
  pname = "p4est";
  version = "2.8.7";

  # fetch an untagged snapshot of the prev3-develop branch
  src = fetchFromGitHub {
    owner = "cburstedde";
    repo = "p4est";
    rev = "7423ac5f2b2b64490a7a92e5ddcbd251053c4dee";
    sha256 = "0vffnf48rzw6d0as4c3x1f31b4kapmdzr1hfj5rz5ngah72gqrph";
    tag = "v${finalAttrs.version}";
    hash = "sha256-8JvKaYOP4IO1Xmim74KNHvMLOV3y9VRoT76RBCaRyhI=";
  };

  strictDeps = true;

  postPatch = ''
    echo $version > .tarball-version

    substituteInPlace Makefile.am \
      --replace-fail "@P4EST_SC_AMFLAGS@" "-I ${p4est-sc}/share/aclocal"
  '';

  nativeBuildInputs = [
    autoreconfHook
    pkg-config
  ] ++ lib.optional mpiSupport mpi;

  buildInputs = [
    metis
  ];
  propagatedBuildInputs = [ p4est-sc ];
  buildInputs = lib.optional withMetis metis;
  inherit debugEnable mpiSupport withMetis;

  patches = [ ./p4est-metis.patch ];
  postPatch = ''
    sed -i -e "s:\(^\s*ACLOCAL_AMFLAGS.*\)\s@P4EST_SC_AMFLAGS@\s*$:\1 -I ${p4est-sc}/share/aclocal:" Makefile.am
  '';
  preAutoreconf = ''
    echo "2.8.0" > .tarball-version
  '';
  preConfigure = lib.optionalString mpiSupport ''
    unset CC
  '';
  propagatedBuildInputs = [ p4est-sc' ];

  configureFlags =
    p4est-sc.configureFlags ++ [ "--with-sc=${p4est-sc}" ] ++ lib.optional withMetis "--with-metis";
    [
      "--with-sc=${p4est-sc'}"
      "--with-metis"
      "--enable-p6est"
      "LDFLAGS=-lm"
    ]
    ++ lib.optionals mpiSupport [
      "--enable-mpi"
      "CC=mpicc"
    ]
    ++ lib.optional debug "--enable-debug";

  doCheck = true;

  inherit (p4est-sc)
    makeFlags
    dontDisableStatic
    enableParallelBuilding
    doCheck
    ;
  __darwinAllowLocalNetworking = mpiSupport;

  nativeCheckInputs = lib.optionals mpiSupport [
    mpiCheckPhaseHook
  ];

  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;

  meta = {
    branch = "prev3-develop";
    description = "Parallel AMR on Forests of Octrees";
    longDescription = ''
      The p4est software library provides algorithms for parallel AMR.
@@ -71,7 +81,8 @@ stdenv.mkDerivation {
    '';
    homepage = "https://www.p4est.org/";
    downloadPage = "https://github.com/cburstedde/p4est.git";
    pkgConfigModules = [ "p4est" ];
    license = lib.licenses.gpl2Plus;
    maintainers = [ ];
    maintainers = with lib.maintainers; [ qbisi ];
  };
}
})
+0 −26
Original line number Diff line number Diff line
diff --git a/src/p4est_connectivity.c b/src/p4est_connectivity.c
index 95339136..c93528f2 100644
--- a/src/p4est_connectivity.c
+++ b/src/p4est_connectivity.c
@@ -3715,6 +3715,7 @@ p4est_connectivity_reorder_newid (sc_MPI_Comm comm, int k,
                                   sc_array_t * newid)
 {
   const int           n = (int) conn->num_trees;
+  int                 metis_n;
   int                *xadj;
   int                *adjncy;
   int                *part;
@@ -3862,10 +3863,12 @@ p4est_connectivity_reorder_newid (sc_MPI_Comm comm, int k,
 
     P4EST_GLOBAL_INFO ("Entering metis\n");
     /* now call metis */
+    metis_n = n;
     P4EST_EXECUTE_ASSERT_INT
-      (METIS_PartGraphRecursive (&n, &ncon, xadj, adjncy, NULL, NULL,
+      (METIS_PartGraphRecursive (&metis_n, &ncon, xadj, adjncy, NULL, NULL,
                                  NULL, &k, NULL, NULL, NULL, &volume, part),
        METIS_OK);
+    P4EST_ASSERT (metis_n == n);
     P4EST_GLOBAL_INFO ("Done metis\n");
 
     P4EST_GLOBAL_STATISTICSF ("metis volume %d\n", volume);
+1 −5
Original line number Diff line number Diff line
@@ -15399,11 +15399,7 @@ with pkgs;

  p4est-sc-dbg = p4est-sc.override { debug = true; };

  p4est = callPackage ../development/libraries/science/math/p4est { };

  p4est-dbg = callPackage ../development/libraries/science/math/p4est {
    p4est-sc = p4est-sc-dbg;
  };
  p4est-dbg = p4est.override { debug = true; };

  sageWithDoc = sage.override { withDoc = true; };