git: 8dfcd1f2a8c9 - main - math/slepc: Re-add port: Scalable Library for Eigenvalue Problem Computations

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 23 Dec 2022 09:15:26 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8dfcd1f2a8c9f11755447eddd98b8a8ab3ebc8a3

commit 8dfcd1f2a8c9f11755447eddd98b8a8ab3ebc8a3
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-23 09:03:56 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-23 09:15:17 +0000

    math/slepc: Re-add port: Scalable Library for Eigenvalue Problem Computations
---
 MOVED                                    |  1 -
 math/Makefile                            |  1 +
 math/slepc/Makefile                      | 40 +++++++++++++
 math/slepc/distinfo                      |  3 +
 math/slepc/files/patch-config_install.py | 11 ++++
 math/slepc/pkg-descr                     |  7 +++
 math/slepc/pkg-plist                     | 98 ++++++++++++++++++++++++++++++++
 7 files changed, 160 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index fb0c67bbc8f9..023a8498196d 100644
--- a/MOVED
+++ b/MOVED
@@ -15701,7 +15701,6 @@ databases/py-bsddb||2020-12-29|Has expired: Uses deprecated version of python
 www/py-webhelpers||2020-12-29|Has expired: Uses deprecated version of python
 security/py-pyptlib||2020-12-29|Has expired: Uses deprecated version of python
 japanese/py-zinnia||2020-12-29|Has expired: Uses deprecated version of python
-math/slepc||2020-12-29|Has expired: Broken, uses deprecated version of python
 www/py-pastescript||2020-12-29|Has expired: Uses deprecated version of python
 databases/ldb14||2020-12-29|Has expired: Uses deprecated version of python
 math/py-slepc4py||2020-12-29|Has expired: Depends on broken and expiring math/slepc
diff --git a/math/Makefile b/math/Makefile
index d12ef087bdd8..61959da31c75 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1095,6 +1095,7 @@
     SUBDIR += sisl
     SUBDIR += slatec
     SUBDIR += sleef
+    SUBDIR += slepc
     SUBDIR += slgrace
     SUBDIR += slicot
     SUBDIR += snns
diff --git a/math/slepc/Makefile b/math/slepc/Makefile
new file mode 100644
index 000000000000..7e86957a1c77
--- /dev/null
+++ b/math/slepc/Makefile
@@ -0,0 +1,40 @@
+PORTNAME=	slepc
+DISTVERSION=	3.18.1
+CATEGORIES=	math devel
+MASTER_SITES=	http://slepc.upv.es/download/distrib/
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Scalable Library for Eigenvalue Problem Computations
+WWW=		http://slepc.upv.es/
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+LIB_DEPENDS=	libblas.so:math/blas \
+		liblapack.so:math/lapack \
+		libmpich.so:net/mpich \
+		libpetsc.so:science/PETSc
+
+USES=		gmake fortran python:3.9 shebangfix xorg
+USE_XORG=	x11 # not really needed, but is inherited from the PETSc setup
+USE_LDCONFIG=	yes
+
+SHEBANG_FILES=	configure
+SHEBANG_GLOB=	*.py
+
+MAKEFILE=	makefile
+MAKE_ENV=	PETSC_DIR=${LOCALBASE} PETSC_ARCH="" SLEPC_DIR=${WRKSRC} PYTHON=${PYTHON_CMD}
+
+BINARY_ALIAS=	python=${PYTHON_CMD}
+
+OPTIONS_DEFINE=	EXAMPLES
+
+PORTEXAMPLES=	*
+
+do-configure:
+	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ./configure --prefix=${PREFIX}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libslepc.so.${PORTVERSION}
+
+.include <bsd.port.mk>
diff --git a/math/slepc/distinfo b/math/slepc/distinfo
new file mode 100644
index 000000000000..e080023ec1ae
--- /dev/null
+++ b/math/slepc/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1671617061
+SHA256 (slepc-3.18.1.tar.gz) = f6e6e16d8399c3f94d187da9d4bfdfca160de50ebda7d63f6fa8ef417597e9b4
+SIZE (slepc-3.18.1.tar.gz) = 6013016
diff --git a/math/slepc/files/patch-config_install.py b/math/slepc/files/patch-config_install.py
new file mode 100644
index 000000000000..7163fcf93a41
--- /dev/null
+++ b/math/slepc/files/patch-config_install.py
@@ -0,0 +1,11 @@
+--- config/install.py.orig	2022-12-21 10:04:56 UTC
++++ config/install.py
+@@ -331,7 +331,7 @@ for dir in dirs:
+ 
+   def installShare(self):
+     self.copies.extend(self.copytree(self.rootShareDir, self.destShareDir))
+-    examplesdir=os.path.join(self.destShareDir,'slepc','examples')
++    examplesdir=os.path.join(self.destShareDir,'examples','slepc')
+     if os.path.exists(examplesdir):
+       shutil.rmtree(examplesdir)
+     os.mkdir(examplesdir)
diff --git a/math/slepc/pkg-descr b/math/slepc/pkg-descr
new file mode 100644
index 000000000000..6fc23f2d2a93
--- /dev/null
+++ b/math/slepc/pkg-descr
@@ -0,0 +1,7 @@
+SLEPc is a software library for the solution of large scale sparse eigenvalue
+problems on parallel computers. It is an extension of PETSc and can be used for
+linear eigenvalue problems in either standard or generalized form, with real or
+complex arithmetic. It can also be used for computing a partial SVD of a large,
+sparse, rectangular matrix, and to solve nonlinear eigenvalue problems
+(polynomial or general). Additionally, SLEPc provides solvers for the
+computation of the action of a matrix function on a vector.
diff --git a/math/slepc/pkg-plist b/math/slepc/pkg-plist
new file mode 100644
index 000000000000..e7be83ab91e9
--- /dev/null
+++ b/math/slepc/pkg-plist
@@ -0,0 +1,98 @@
+include/slepc.h
+include/slepc/finclude/slepc.h
+include/slepc/finclude/slepcbv.h
+include/slepc/finclude/slepcds.h
+include/slepc/finclude/slepceps.h
+include/slepc/finclude/slepcfn.h
+include/slepc/finclude/slepclme.h
+include/slepc/finclude/slepcmfn.h
+include/slepc/finclude/slepcnep.h
+include/slepc/finclude/slepcpep.h
+include/slepc/finclude/slepcrg.h
+include/slepc/finclude/slepcst.h
+include/slepc/finclude/slepcsvd.h
+include/slepc/finclude/slepcsys.h
+include/slepc/private/bvimpl.h
+include/slepc/private/dsimpl.h
+include/slepc/private/epsimpl.h
+include/slepc/private/fnimpl.h
+include/slepc/private/lmeimpl.h
+include/slepc/private/mfnimpl.h
+include/slepc/private/nepimpl.h
+include/slepc/private/pepimpl.h
+include/slepc/private/rgimpl.h
+include/slepc/private/slepccontour.h
+include/slepc/private/slepcimpl.h
+include/slepc/private/slepcscalapack.h
+include/slepc/private/stimpl.h
+include/slepc/private/svdimpl.h
+include/slepc/private/vecimplslepc.h
+include/slepcblaslapack.h
+include/slepcblaslapack_mangle.h
+include/slepcbv.h
+include/slepcbv.mod
+include/slepcbvdef.mod
+include/slepcconf.h
+include/slepccublas.h
+include/slepcds.h
+include/slepcds.mod
+include/slepcdsdef.mod
+include/slepceps.h
+include/slepceps.mod
+include/slepcepsdef.mod
+include/slepcfn.h
+include/slepcfn.mod
+include/slepcfndef.mod
+include/slepclme.h
+include/slepclme.mod
+include/slepclmedef.mod
+include/slepcmagma.h
+include/slepcmat.h
+include/slepcmath.h
+include/slepcmfn.h
+include/slepcmfn.mod
+include/slepcmfndef.mod
+include/slepcnep.h
+include/slepcnep.mod
+include/slepcnepdef.mod
+include/slepcpep.h
+include/slepcpep.mod
+include/slepcpepdef.mod
+include/slepcrg.h
+include/slepcrg.mod
+include/slepcrgdef.mod
+include/slepcrgtypes.h
+include/slepcsc.h
+include/slepcst.h
+include/slepcst.mod
+include/slepcstdef.mod
+include/slepcsvd.h
+include/slepcsvd.mod
+include/slepcsvddef.mod
+include/slepcsys.h
+include/slepcsys.mod
+include/slepcsysdef.mod
+include/slepcvec.h
+include/slepcversion.h
+lib/libslepc.so
+lib/libslepc.so.3.18
+lib/libslepc.so.3.18.1
+lib/slepc/conf/memoryerror.log
+lib/slepc/conf/modules/slepc/3.18.1
+lib/slepc/conf/slepc_common
+lib/slepc/conf/slepc_rules
+lib/slepc/conf/slepc_test
+lib/slepc/conf/slepc_variables
+lib/slepc/conf/slepcrules
+lib/slepc/conf/slepcvariables
+lib/slepc/conf/uninstall.py
+libdata/pkgconfig/slepc.pc
+%%DATADIR%%/CMakeLists.txt
+%%DATADIR%%/Makefile.user
+%%DATADIR%%/datafiles/matrices/bfw62a.petsc
+%%DATADIR%%/datafiles/matrices/bfw62b.petsc
+%%DATADIR%%/datafiles/matrices/rdb200.petsc
+%%DATADIR%%/datafiles/matrices/readme
+%%DATADIR%%/datafiles/matrices/speaker107c.petsc
+%%DATADIR%%/datafiles/matrices/speaker107k.petsc
+%%DATADIR%%/datafiles/matrices/speaker107m.petsc