<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e3e02025c4cb5869bb60fa5ab894f441a2f90ac4">https://github.com/macports/macports-ports/commit/e3e02025c4cb5869bb60fa5ab894f441a2f90ac4</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e3e02025c4c mfem: new port in science
</span>e3e02025c4c is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e3e02025c4cb5869bb60fa5ab894f441a2f90ac4
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Mon May 29 12:00:33 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    mfem: new port in science
</span>---
 science/mfem/Portfile                              | 121 +++++++++++++++++++++
 .../0001-CMakeLists-fix-flags-for-PowerPC.patch    |  23 ++++
 ...ANONYMOUS-to-MAP_ANON-whenever-it-is-unde.patch |  24 ++++
 3 files changed, 168 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mfem/Portfile b/science/mfem/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..17cd4d5c8a5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mfem/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,121 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           compilers 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           linear_algebra 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Disabled for now. See below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# PortGroup           mpi 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        mfem mfem 4.5.2 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          science
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Lightweight, general, scalable C++ library for finite element methods
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    MFEM is a modular parallel C++ library for finite element methods. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Its goal is to enable high-performance scalable finite element discretization research \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    and application development on a wide variety of platforms, ranging from laptops to supercomputers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://mfem.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  0c6fc09e42a18c5d029efdc954b44ae8a1d5d7c9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  d238caa1eb9607477aaeb0938ac10b16841dcd8c552de563697214807108be6b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    3311562
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  path:lib/pkgconfig/gnutls.pc:gnutls \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:hdf5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:mpfr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:netcdf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/mfem/mfem/pull/3696
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          0001-CMakeLists-fix-flags-for-PowerPC.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0002-Define-MAP_ANONYMOUS-to-MAP_ANON-whenever-it-is-unde.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# libocca module fails to build: https://github.com/mfem/mfem/issues/3697
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# MPICH build works, however needs -fpermissive, and many tests fail. Avoid for now.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Several dependencies require MPICH, therefore those are disabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Notice that disabling MPICH does not work properly: it is not used as a compiler,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# but the build still expects to link against it. Eh. Testing needs miniapps and examples,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# as those compose tests. Please do not move this port to compile with MPICH by default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# unless it is well-tested, including PPC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_SHARED_LIBS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DGinkgo_DIR=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DHDF5_DIR=${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DHDF5_LIBRARIES=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DHDF5_INCLUDE_DIRS=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_ENABLE_EXAMPLES=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_ENABLE_MINIAPPS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_ENABLE_TESTING=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_CUDA=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_GINKGO=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_GNUTLS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_HIOP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_HIP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_LAPACK=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_LIBUNWIND=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_MEMALLOC=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_METIS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_METIS_5=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_MPFR=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_MPI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_MUMPS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_NETCDF=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_OCCA=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_OPENMP=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_RAJA=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_SIMD=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_STRUMPACK=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_SUITESPARSE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_SUNDIALS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_SUPERLU=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_ZLIB=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DVERBOSE=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# mfem as such can be built with C++11, but using some of its dependencies requires C++14:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.openmp_version 4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.setup     require_fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ldflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -L${prefix}/lib/libomp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -lomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant ginkgo description "Enable Ginkgo" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Ginkgo wants MPICH, we do not.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ginkgo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_GINKGO=OFF -DMFEM_USE_GINKGO=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant hiop description "Enable HIOP" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Well, HIOP expects mpi.h to be available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:hiop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_HIOP=OFF -DMFEM_USE_HIOP=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant raja description "Enable Raja" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # For w/e reason, Raja wants Clang 16 now, and that Clang fails to build with MPICH.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Hide Raja into a variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:raja
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMFEM_USE_RAJA=OFF -DMFEM_USE_RAJA=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Move examples to a sane location:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    move ${destroot}${prefix}/examples ${destroot}${prefix}/share/${name}/examples
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.cmd-prepend    DYLD_LIBRARY_PATH=${cmake.build_dir}:${cmake.build_dir}/miniapps/common
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mfem/files/0001-CMakeLists-fix-flags-for-PowerPC.patch b/science/mfem/files/0001-CMakeLists-fix-flags-for-PowerPC.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..507cf966765
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mfem/files/0001-CMakeLists-fix-flags-for-PowerPC.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 9da38256b9533dc9faf3382b181fb650e5582918 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 28 May 2023 12:41:05 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/2] CMakeLists: fix flags for PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ miniapps/performance/CMakeLists.txt | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git miniapps/performance/CMakeLists.txt miniapps/performance/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c52f18402..e6cb54e29 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- miniapps/performance/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ miniapps/performance/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # terms of the BSD-3 license. We welcome feedback and contributions, see file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CONTRIBUTING.md for details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Rosetta will have x86 as a physical CPU, so we need CMAKE_OSX_ARCHITECTURES case too.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc|ppc64" OR (APPLE AND ${CMAKE_OSX_ARCHITECTURES} MATCHES "ppc|ppc64"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set(MFEM_PERF_CXX_ARCH_FLAGS "-mcpu=native" "-mtune=native")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif (APPLE AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set(MFEM_PERF_CXX_ARCH_FLAGS "-mcpu=apple-m1")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mfem/files/0002-Define-MAP_ANONYMOUS-to-MAP_ANON-whenever-it-is-unde.patch b/science/mfem/files/0002-Define-MAP_ANONYMOUS-to-MAP_ANON-whenever-it-is-unde.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..60dd3baf495
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mfem/files/0002-Define-MAP_ANONYMOUS-to-MAP_ANON-whenever-it-is-unde.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From ef5d022ab39058aff74d165d70f061ec6506e88f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 28 May 2023 13:07:47 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/2] Define MAP_ANONYMOUS to MAP_ANON whenever it is undefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ general/mem_manager.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 4 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git general/mem_manager.cpp general/mem_manager.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 37b80c878..3f9300de5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- general/mem_manager.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ general/mem_manager.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,6 +47,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif // MFEM_USE_UMPIRE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef MAP_ANONYMOUS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MAP_ANONYMOUS MAP_ANON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Internal debug option, useful for tracking some memory manager operations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // #define MFEM_TRACK_MEM_MANAGER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>