summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MOVED1
-rw-r--r--science/Makefile1
-rw-r--r--science/pastix/Makefile62
-rw-r--r--science/pastix/distinfo3
-rw-r--r--science/pastix/files/patch-cmake__modules_morse__cmake_modules_find_LibrariesAbsolutePath.cmake18
-rw-r--r--science/pastix/pkg-descr10
-rw-r--r--science/pastix/pkg-plist154
7 files changed, 248 insertions, 1 deletions
diff --git a/MOVED b/MOVED
index 9d5eb2735f37..304d22791cbf 100644
--- a/MOVED
+++ b/MOVED
@@ -4461,7 +4461,6 @@ www/py-fastapi-users||2025-06-02|Has expired: Depends on expired devel/py-makefu
multimedia/ffsubsync||2025-06-02|Has expired: Depends on expired multimedia/py-ffmpeg-python
biology/checkm||2025-06-02|Has expired: Depends on expired science/py-DendroPy
net/pichi||2025-06-02|Has expired: Depends on expired security/mbedtls2
-science/pastix||2025-06-02|Has expired: Depends on expired lang/julia
science/dvc||2025-06-02|Has expired: Depends on expired math/py-grandalf
textproc/py-extract-msg||2025-06-02|Has expired: Depends on expiring textproc/py-RTFDE
devel/py-pcodedmp||2025-06-02|Has expired: Depends on expired devel/py-oletools
diff --git a/science/Makefile b/science/Makefile
index 6b99b108ef41..fa2e9d6f9404 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -268,6 +268,7 @@
SUBDIR += paje
SUBDIR += paraview
SUBDIR += parthenon
+ SUBDIR += pastix
SUBDIR += pcmsolver
SUBDIR += phonopy
SUBDIR += plumed
diff --git a/science/pastix/Makefile b/science/pastix/Makefile
new file mode 100644
index 000000000000..6bca922f6246
--- /dev/null
+++ b/science/pastix/Makefile
@@ -0,0 +1,62 @@
+PORTNAME= pastix
+PORTVERSION= 6.3.2
+PORTREVISION= 2
+CATEGORIES= science
+MASTER_SITES= https://gitlab.inria.fr/solverstack/pastix/uploads/${GL_TAG}/
+
+MAINTAINER= thierry@FreeBSD.org
+COMMENT= PaStiX: a sparse direct solver
+WWW= https://solverstack.gitlabpages.inria.fr/pastix/
+
+LICENSE= LGPL3
+
+DEPRECATED= Depends on expired lang/julia
+EXPIRATION_DATE=2025-06-01
+
+BUILD_DEPENDS= bash:shells/bash \
+ ${PYNUMPY}
+LIB_DEPENDS= libmetis.so:math/metis \
+ libjulia.so:lang/julia \
+ libscotch.so:cad/scotch \
+ libhwloc.so:devel/hwloc2
+RUN_DEPENDS= bash:shells/bash \
+ ${PYNUMPY}
+
+USES= cmake blaslapack:openblas fortran pkgconfig python
+
+#USE_GITLAB= yes
+#GL_SITE= https://gitlab.inria.fr/
+#GL_ACCOUNT= solverstack
+#GL_PROJECT= pastix spm:s morse_cmake:m
+#GL_TAGNAME= 6e35c2ba179013b058f5d4e1afd4b451953149c6 \
+# 14e36c1586c9ba13f938b1a89f51c080d6551392:s \
+# 31cd2bbb0d76f2b9fd83011d8f079d97540b0ba8:m
+#GL_SUBDIR= spm:s cmake_modules/morse_cmake:m
+GL_TAG= 32711239db22edb6c291282b581b9e0b # tarball with submodules
+
+LDFLAGS+= -lm
+CMAKE_ARGS= -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DPASTIX_ORDERING_METIS:BOOL=ON \
+ -DPython_VERSION_MAJOR=${PYTHON_MAJOR_VER} \
+ -DPython_VERSION_MINOR=${PYTHON_VER:E}
+USE_LDCONFIG= yes
+TEST_TARGET= test
+
+PLIST_SUB= VER=${PORTVERSION}
+
+OPTIONS_DEFINE= EXAMPLES
+EX2FIX= spm/examples spm/wrappers/fortran90 spm/wrappers/python
+EX2FIX2= example example/old wrappers/julia wrappers/fortran90 wrappers/python
+
+pre-configure:
+.for ex in ${EX2FIX}
+ ${REINPLACE_CMD} -e 's|DESTINATION examples|DESTINATION ${EXAMPLESDIR}/${ex:C/examples//:C/example//}|' \
+ -e 's|share/doc/spm/examples|${EXAMPLESDIR}/spm|' \
+ ${WRKSRC}/${ex}/CMakeLists.txt
+.endfor
+.for ex in ${EX2FIX2}
+ ${REINPLACE_CMD} -e 's|share/doc/pastix/examples|share/examples/pastix|' \
+ ${WRKSRC}/${ex}/CMakeLists.txt
+.endfor
+
+.include <bsd.port.mk>
diff --git a/science/pastix/distinfo b/science/pastix/distinfo
new file mode 100644
index 000000000000..57dfb03afa36
--- /dev/null
+++ b/science/pastix/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1702559693
+SHA256 (pastix-6.3.2.tar.gz) = c4da8802d1933eecf8c09d7e63c014c81ccf353fe623142e9f5c5fc65ed82ee0
+SIZE (pastix-6.3.2.tar.gz) = 2077150
diff --git a/science/pastix/files/patch-cmake__modules_morse__cmake_modules_find_LibrariesAbsolutePath.cmake b/science/pastix/files/patch-cmake__modules_morse__cmake_modules_find_LibrariesAbsolutePath.cmake
new file mode 100644
index 000000000000..2a28d0d2cd71
--- /dev/null
+++ b/science/pastix/files/patch-cmake__modules_morse__cmake_modules_find_LibrariesAbsolutePath.cmake
@@ -0,0 +1,18 @@
+--- cmake_modules/morse_cmake/modules/find/LibrariesAbsolutePath.cmake.orig 2021-06-14 12:08:21 UTC
++++ cmake_modules/morse_cmake/modules/find/LibrariesAbsolutePath.cmake
+@@ -55,6 +55,7 @@ macro(LIBRARIES_ABSOLUTE_PATH lib_list hints_paths)
+ endif()
+ endif()
+
++ if (NOT ${_library} STREQUAL "-pthread")
+ # try to find the lib
+ find_library(_library_path
+ NAMES ${_library}
+@@ -66,6 +67,7 @@ macro(LIBRARIES_ABSOLUTE_PATH lib_list hints_paths)
+ message(FATAL_ERROR "Dependency of ${lib_list} '${_library}' NOT FOUND")
+ endif()
+ unset(_library_path CACHE)
++ endif()
+ endif()
+ endforeach()
+ endmacro()
diff --git a/science/pastix/pkg-descr b/science/pastix/pkg-descr
new file mode 100644
index 000000000000..5d5929d3418b
--- /dev/null
+++ b/science/pastix/pkg-descr
@@ -0,0 +1,10 @@
+PaStiX (Parallel Sparse matriX package) is a scientific library that provides a
+high performance parallel solver for very large sparse linear systems based on
+direct methods. Numerical algorithms are implemented in single or double
+precision (real or complex) using LLt, LDLt and LU with static pivoting (for non
+symmetric matrices having a symmetric pattern). This solver also provides some
+low-rank compression methods to reduce the memory footprint and/or the
+time-to-solution.
+
+It is bundled with SPM (SParse Matrix Package).
+See also https://gitlab.inria.fr/solverstack/spm
diff --git a/science/pastix/pkg-plist b/science/pastix/pkg-plist
new file mode 100644
index 000000000000..0b950389dde2
--- /dev/null
+++ b/science/pastix/pkg-plist
@@ -0,0 +1,154 @@
+include/pastix.h
+include/pastix/api.h
+include/pastix/cblas.h
+include/pastix/config.h
+include/pastix/datatypes.h
+include/pastix/graph.h
+include/pastix/lapacke.h
+include/pastix/old_api.h
+include/pastix/order.h
+include/pastix/pastixf.mod
+include/pastix/pastixf_bindings.mod
+include/pastix/pastixf_enums.mod
+include/pastix/pastixf_interfaces.mod
+include/pastix/spmf.mod
+include/pastix/spmf_bindings.mod
+include/pastix/spmf_enums.mod
+include/pastix/spmf_interfaces.mod
+include/spm.h
+include/spm/c_spm.h
+include/spm/config.h
+include/spm/const.h
+include/spm/d_spm.h
+include/spm/datatypes.h
+include/spm/mpi.h
+include/spm/p_spm.h
+include/spm/pastixf.mod
+include/spm/pastixf_bindings.mod
+include/spm/pastixf_enums.mod
+include/spm/pastixf_interfaces.mod
+include/spm/s_spm.h
+include/spm/spmf.mod
+include/spm/spmf_bindings.mod
+include/spm/spmf_enums.mod
+include/spm/spmf_interfaces.mod
+include/spm/z_spm.h
+lib/cmake/pastix/PASTIXConfig.cmake
+lib/cmake/pastix/PASTIXConfigVersion.cmake
+lib/cmake/pastix/cblasTargets.cmake
+lib/cmake/pastix/lapackeTargets.cmake
+lib/cmake/pastix/mTargets.cmake
+lib/cmake/pastix/pastixTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/pastix/pastixTargets.cmake
+lib/cmake/pastix/pastix_kernelsTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/pastix/pastix_kernelsTargets.cmake
+lib/cmake/pastix/pastixfTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/pastix/pastixfTargets.cmake
+lib/cmake/spm/SPMConfig.cmake
+lib/cmake/spm/SPMConfigVersion.cmake
+lib/cmake/spm/spmTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/spm/spmTargets.cmake
+lib/cmake/spm/spmfTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/spm/spmfTargets.cmake
+lib/julia/PaStiX/Project.toml
+lib/julia/PaStiX/src/PaStiX.jl
+lib/julia/PaStiX/src/pastix_enums.jl
+lib/julia/spm/Project.toml
+lib/julia/spm/examples/spm_driver.jl
+lib/julia/spm/examples/spm_user.jl
+lib/julia/spm/src/spm.jl
+lib/julia/spm/src/spm_enums.jl
+lib/libpastix.so
+lib/libpastix.so.6.3
+lib/libpastix.so.%%VER%%
+lib/libpastix_kernels.so
+lib/libpastixf.so
+lib/libpastixf.so.6
+lib/libpastixf.so.%%VER%%
+lib/libspm.so
+lib/libspm.so.1
+lib/libspm.so.1.2.2
+lib/libspmf.so
+lib/libspmf.so.1
+lib/libspmf.so.1.2.2
+%%PYTHON_SITELIBDIR%%/spm/__init__.py
+%%PYTHON_SITELIBDIR%%/spm/__pastix__.py
+%%PYTHON_SITELIBDIR%%/spm/__spm__.py
+%%PYTHON_SITELIBDIR%%/spm/enum.py
+%%PYTHON_SITELIBDIR%%/spm/pastix.py
+%%PYTHON_SITELIBDIR%%/spm/solver.py
+%%PYTHON_SITELIBDIR%%/spm/spm.py
+libdata/pkgconfig/pastix.pc
+libdata/pkgconfig/pastixf.pc
+libdata/pkgconfig/spm.pc
+libdata/pkgconfig/spmf.pc
+share/bash-completion/completions/pastix/pastix
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/analyze
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/analyze.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bench_facto
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/bench_facto.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/flaplacian
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/flaplacian.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fmultidof
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fmultidof.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fmultilap
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fmultilap.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fsimple
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fsimple.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fstep-by-step
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/fstep-by-step.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/test_mt.in
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fortran/test_seq.in
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/julia/schur.jl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/julia/simple.jl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/julia/step-by-step.jl
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/multidof
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/multidof.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/old/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/old/old_simple
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/old/old_step-by-step
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/old/simple.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/old/step-by-step.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/personal
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/personal.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python/schur.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python/schur_obj.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python/simple.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python/simple_obj.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/python/step-by-step.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/reentrant
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/reentrant.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/refinement
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/refinement.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/schur
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/schur.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple_solve_and_refine
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple_solve_and_refine.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple_trans
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simple_trans.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_drivers
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_drivers.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_lap1
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_lap1.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_lap2
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_lap2.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_mdof1
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_mdof1.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_mdof2
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/example_mdof2.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/fortran/spmf_driver
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/fortran/spmf_driver.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/fortran/spmf_rebalance
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/fortran/spmf_rebalance.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/fortran/spmf_user
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/fortran/spmf_user.F90
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/python/spm_driver.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spm/python/spm_scipy.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/step-by-step
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/step-by-step.c