git: 3079ad1eeb37 - main - science/openmolcas: New port: Quantum chemistry software package

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 24 May 2022 19:51:25 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3079ad1eeb3730a0967ebcc19aa81f56d6e3e90b

commit 3079ad1eeb3730a0967ebcc19aa81f56d6e3e90b
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-05-24 19:04:13 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-05-24 19:51:18 +0000

    science/openmolcas: New port: Quantum chemistry software package
    
    OpenMolcas has issues: it doesn't respect UNIX file path
    conventions, it expects the installation directory to be writable.
    
    Currently it needs to be either run as root, or after chown,
    or after copying the entire tree to the home directory.
    
    Hopefully they will resolve these issues.
---
 science/Makefile                                   |   1 +
 science/openmolcas/Makefile                        |  48 +++++
 science/openmolcas/distinfo                        |   7 +
 science/openmolcas/files/patch-CMakeLists.txt      |  11 ++
 .../files/patch-src_mma__util_cgetshmem.c          |  11 ++
 science/openmolcas/pkg-descr                       |   6 +
 science/openmolcas/pkg-plist                       | 214 +++++++++++++++++++++
 7 files changed, 298 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index 4d7200d9d13b..98ca59dbb9db 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -190,6 +190,7 @@
     SUBDIR += openkim
     SUBDIR += openkim-models
     SUBDIR += openmc
+    SUBDIR += openmolcas
     SUBDIR += openmx
     SUBDIR += opensim-core
     SUBDIR += opensph
diff --git a/science/openmolcas/Makefile b/science/openmolcas/Makefile
new file mode 100644
index 000000000000..6c0b062fc8ee
--- /dev/null
+++ b/science/openmolcas/Makefile
@@ -0,0 +1,48 @@
+PORTNAME=	openmolcas
+DISTVERSION=	22.02
+CATEGORIES=	science # chemistry
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Quantum chemistry software package
+
+LICENSE=	LGPL21
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}
+LIB_DEPENDS=	libhdf5.so:science/hdf5 \
+		libsz.so:science/szip \
+		libxc.so:science/libxc
+
+USES=		cmake fortran python shebangfix
+USE_GCC=	yes # see https://gitlab.com/Molcas/OpenMolcas/-/issues/351
+
+USE_GITLAB=	yes
+GL_ACCOUNT=	Molcas
+GL_PROJECT=	OpenMolcas
+GL_COMMIT=	f8df69cf87b241a15ebc82d72a8f9a031a385dd4
+
+USE_GITHUB=	nodefault
+GH_TUPLE=	Reference-LAPACK:lapack:aa631b4b:lapack/External/lapack \
+		libwfa:libwfa:bbe3392a:libwfa/External/libwfa
+
+SHEBANG_FILES=	sbin/help_doc sbin/help_func sbin/help_basis sbin/setup sbin/verify sbin/version
+
+CMAKE_ARGS=	-DEXTERNAL_LIBXC:STRING=${LOCALBASE} \
+		-DFREEBSD_PYTHON_VER:STRING=${PYTHON_VER}
+#CMAKE_ON=	# for EFPLIB, MSYM see https://gitlab.com/Molcas/OpenMolcas/-/issues/350, for WFA - hdf5 needs updating
+CMAKE_OFF=	BUILD_TESTING
+
+CMAKE_INSTALL_PREFIX=	${DATADIR} # installed into DATADIR because it doesn't respect UNIX file path conventions, see https://gitlab.com/Molcas/OpenMolcas/-/issues/352
+
+BINARY_ALIAS=	cpp=${CPP} # cpp is called from cmake scripts
+
+post-install:
+	# remove unused static libraries, see https://gitlab.com/Molcas/OpenMolcas/-/issues/354
+	@${RM} -r ${STAGEDIR}${CMAKE_INSTALL_PREFIX}/lib
+	# remove unnecessary fines
+	@${RM} ${STAGEDIR}${CMAKE_INSTALL_PREFIX}/CONTRIBUTORS.md
+	@${RM} ${STAGEDIR}${CMAKE_INSTALL_PREFIX}/LICENSE
+	# remove empty doc directory
+	@${RMDIR} ${STAGEDIR}${DATADIR}/doc
+
+.include <bsd.port.mk>
diff --git a/science/openmolcas/distinfo b/science/openmolcas/distinfo
new file mode 100644
index 000000000000..962f32203d22
--- /dev/null
+++ b/science/openmolcas/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1653368495
+SHA256 (Reference-LAPACK-lapack-aa631b4b_GH0.tar.gz) = 04ddd43c8b1bed6447427e9dd2b4dd2ead7e2497d7a8fa5fea7f9b31f52117a2
+SIZE (Reference-LAPACK-lapack-aa631b4b_GH0.tar.gz) = 7631245
+SHA256 (libwfa-libwfa-bbe3392a_GH0.tar.gz) = c130488370ab0df228e532c80223ded3d23d80f04d405c2912588cfcfa05d121
+SIZE (libwfa-libwfa-bbe3392a_GH0.tar.gz) = 192935
+SHA256 (Molcas-OpenMolcas-f8df69cf87b241a15ebc82d72a8f9a031a385dd4_GL0.tar.gz) = 862ab4e5a76955e67af870c7c1b4344c250784299c5c0363c425a722671a892a
+SIZE (Molcas-OpenMolcas-f8df69cf87b241a15ebc82d72a8f9a031a385dd4_GL0.tar.gz) = 38439145
diff --git a/science/openmolcas/files/patch-CMakeLists.txt b/science/openmolcas/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..5fff45b0e5f2
--- /dev/null
+++ b/science/openmolcas/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig	2022-05-24 05:51:48 UTC
++++ CMakeLists.txt
+@@ -48,7 +48,7 @@ find_program (GIT "git")
+ find_program (PERL "perl")
+ mark_as_advanced (FORCE GIT PERL)
+ 
+-FIND_PACKAGE (Python COMPONENTS Interpreter)
++FIND_PACKAGE (Python ${FREEBSD_PYTHON_VER} EXACT COMPONENTS Interpreter)
+ 
+ ################################################################################
+ #                                                                              #
diff --git a/science/openmolcas/files/patch-src_mma__util_cgetshmem.c b/science/openmolcas/files/patch-src_mma__util_cgetshmem.c
new file mode 100644
index 000000000000..3044e1ea5261
--- /dev/null
+++ b/science/openmolcas/files/patch-src_mma__util_cgetshmem.c
@@ -0,0 +1,11 @@
+--- src/mma_util/cgetshmem.c.orig	2022-05-24 05:38:26 UTC
++++ src/mma_util/cgetshmem.c
+@@ -134,6 +134,8 @@ INT add_shmentry(mstat *MM, mentry *tmp, char *path, I
+       shmid = shmget(SHM_key, (size_t) tmp->len, 0644|IPC_CREAT|IPC_EXCL);
+ #elif _AIX_
+       shmid = shmget(SHM_key, (size_t) tmp->len, 0644|IPC_CREAT|IPC_EXCL|SHM_PIN);
++#elif __FreeBSD__
++      shmid = shmget(SHM_key, (size_t) tmp->len, 0644|IPC_CREAT|IPC_EXCL);
+ #else
+       shmid = shmget(SHM_key, (size_t) tmp->len, 0644|IPC_CREAT|IPC_EXCL|SHM_LOCKED);
+ /*    shmid = shmget(SHM_key, (size_t) tmp->len, 0644|IPC_CREAT|IPC_EXCL|SHM_LOCKED|SHM_NORESERVE);*/
diff --git a/science/openmolcas/pkg-descr b/science/openmolcas/pkg-descr
new file mode 100644
index 000000000000..3a31527b5097
--- /dev/null
+++ b/science/openmolcas/pkg-descr
@@ -0,0 +1,6 @@
+OpenMolcas is a quantum chemistry software package.
+
+The key feature of OpenMolcas is the multiconfigurational
+approach to the electronic structure.
+
+WWW: https://gitlab.com/Molcas/OpenMolcas
diff --git a/science/openmolcas/pkg-plist b/science/openmolcas/pkg-plist
new file mode 100644
index 000000000000..3c439dfd8557
--- /dev/null
+++ b/science/openmolcas/pkg-plist
@@ -0,0 +1,214 @@
+%%DATADIR%%/.molcashome
+%%DATADIR%%/.molcasversion
+%%DATADIR%%/basis_library/3-21G
+%%DATADIR%%/basis_library/4-31G
+%%DATADIR%%/basis_library/5-21G
+%%DATADIR%%/basis_library/6-311Gpp
+%%DATADIR%%/basis_library/6-31G
+%%DATADIR%%/basis_library/6-31Gpp
+%%DATADIR%%/basis_library/AHLRICHS_VDZ
+%%DATADIR%%/basis_library/AHLRICHS_VTZ
+%%DATADIR%%/basis_library/AIMP.README
+%%DATADIR%%/basis_library/ANO-DK3
+%%DATADIR%%/basis_library/ANO-L
+%%DATADIR%%/basis_library/ANO-ORCA
+%%DATADIR%%/basis_library/ANO-R
+%%DATADIR%%/basis_library/ANO-RCC
+%%DATADIR%%/basis_library/ANO-RCC.README
+%%DATADIR%%/basis_library/ANO-S
+%%DATADIR%%/basis_library/ANO-XS
+%%DATADIR%%/basis_library/AUG-CC-PV5Z
+%%DATADIR%%/basis_library/AUG-CC-PV6Z
+%%DATADIR%%/basis_library/AUG-CC-PVDZ
+%%DATADIR%%/basis_library/AUG-CC-PVQZ
+%%DATADIR%%/basis_library/AUG-CC-PVTZ
+%%DATADIR%%/basis_library/AUG-PC-0
+%%DATADIR%%/basis_library/AUG-PC-1
+%%DATADIR%%/basis_library/AUG-PC-2
+%%DATADIR%%/basis_library/AUG-PC-3
+%%DATADIR%%/basis_library/AUG-PC-4
+%%DATADIR%%/basis_library/CC-PV5Z
+%%DATADIR%%/basis_library/CC-PV5Z-DK
+%%DATADIR%%/basis_library/CC-PVDZ
+%%DATADIR%%/basis_library/CC-PVDZ-DK
+%%DATADIR%%/basis_library/CC-PVQZ
+%%DATADIR%%/basis_library/CC-PVQZ-DK
+%%DATADIR%%/basis_library/CC-PVTZ
+%%DATADIR%%/basis_library/CC-PVTZ-DK
+%%DATADIR%%/basis_library/CC-PWCV5Z-DK
+%%DATADIR%%/basis_library/CC-PWCVQZ-DK
+%%DATADIR%%/basis_library/CC-PWCVTZ-DK
+%%DATADIR%%/basis_library/CG-AIMP
+%%DATADIR%%/basis_library/DEF-SV-P
+%%DATADIR%%/basis_library/DEF-SVP
+%%DATADIR%%/basis_library/DEF-TZVP
+%%DATADIR%%/basis_library/DEF2-SVP
+%%DATADIR%%/basis_library/DEF2-TZVP
+%%DATADIR%%/basis_library/DEF2-TZVPP
+%%DATADIR%%/basis_library/EMB-AIMP
+%%DATADIR%%/basis_library/JGAUSS-DZP
+%%DATADIR%%/basis_library/LANL2DZ
+%%DATADIR%%/basis_library/LANL2DZ_NL
+%%DATADIR%%/basis_library/MCP-AQZP
+%%DATADIR%%/basis_library/MCP-ATZP
+%%DATADIR%%/basis_library/MCP-DZP
+%%DATADIR%%/basis_library/MCP-QZP
+%%DATADIR%%/basis_library/MCP-TZP
+%%DATADIR%%/basis_library/MUONIC
+%%DATADIR%%/basis_library/NP-AIMP
+%%DATADIR%%/basis_library/NR-AIMP
+%%DATADIR%%/basis_library/PC-0
+%%DATADIR%%/basis_library/PC-1
+%%DATADIR%%/basis_library/PC-2
+%%DATADIR%%/basis_library/PC-3
+%%DATADIR%%/basis_library/PC-4
+%%DATADIR%%/basis_library/QRPLIB
+%%DATADIR%%/basis_library/RAF-R
+%%DATADIR%%/basis_library/RYDBERG
+%%DATADIR%%/basis_library/SADLEJ_PVTZ
+%%DATADIR%%/basis_library/SARC2-QZVP-DKH2
+%%DATADIR%%/basis_library/STO-3G
+%%DATADIR%%/basis_library/STUTTGART
+%%DATADIR%%/basis_library/STUTTGART_NL
+%%DATADIR%%/basis_library/basis.tbl
+%%DATADIR%%/basis_library/basistype.tbl
+%%DATADIR%%/basis_library/c_Basis/DEF-SV-P
+%%DATADIR%%/basis_library/c_Basis/DEF-SVP
+%%DATADIR%%/basis_library/c_Basis/DEF-TZVP
+%%DATADIR%%/basis_library/c_Basis/basis.tbl
+%%DATADIR%%/basis_library/c_Basis/basistype.tbl
+%%DATADIR%%/basis_library/c_Basis/trans.tbl
+%%DATADIR%%/basis_library/j_Basis/DEF-SV-P
+%%DATADIR%%/basis_library/j_Basis/DEF-SVP
+%%DATADIR%%/basis_library/j_Basis/DEF-TZVP
+%%DATADIR%%/basis_library/j_Basis/basis.tbl
+%%DATADIR%%/basis_library/j_Basis/basistype.tbl
+%%DATADIR%%/basis_library/j_Basis/trans.tbl
+%%DATADIR%%/basis_library/jk_Basis/CC-PVTZ
+%%DATADIR%%/basis_library/jk_Basis/DEF-SV-P
+%%DATADIR%%/basis_library/jk_Basis/DEF-SVP
+%%DATADIR%%/basis_library/jk_Basis/basis.tbl
+%%DATADIR%%/basis_library/jk_Basis/basistype.tbl
+%%DATADIR%%/basis_library/jk_Basis/trans.tbl
+%%DATADIR%%/basis_library/trans.tbl
+%%DATADIR%%/bin/alaska.exe
+%%DATADIR%%/bin/averd.exe
+%%DATADIR%%/bin/caspt2.exe
+%%DATADIR%%/bin/casvb.exe
+%%DATADIR%%/bin/ccsdt.exe
+%%DATADIR%%/bin/chcc.exe
+%%DATADIR%%/bin/cht3.exe
+%%DATADIR%%/bin/cpf.exe
+%%DATADIR%%/bin/dynamix.exe
+%%DATADIR%%/bin/espf.exe
+%%DATADIR%%/bin/expbas.exe
+%%DATADIR%%/bin/extf.exe
+%%DATADIR%%/bin/false.exe
+%%DATADIR%%/bin/ffpt.exe
+%%DATADIR%%/bin/gateway.exe
+%%DATADIR%%/bin/genano.exe
+%%DATADIR%%/bin/grid_it.exe
+%%DATADIR%%/bin/guessorb.exe
+%%DATADIR%%/bin/guga.exe
+%%DATADIR%%/bin/gugaci.exe
+%%DATADIR%%/bin/gugadrt.exe
+%%DATADIR%%/bin/last_energy.exe
+%%DATADIR%%/bin/localisation.exe
+%%DATADIR%%/bin/loprop.exe
+%%DATADIR%%/bin/mbpt2.exe
+%%DATADIR%%/bin/mckinley.exe
+%%DATADIR%%/bin/mclr.exe
+%%DATADIR%%/bin/mcpdft.exe
+%%DATADIR%%/bin/motra.exe
+%%DATADIR%%/bin/mpprop.exe
+%%DATADIR%%/bin/mrci.exe
+%%DATADIR%%/bin/mula.exe
+%%DATADIR%%/bin/numerical_gradient.exe
+%%DATADIR%%/bin/parnell.exe
+%%DATADIR%%/bin/poly_aniso.exe
+%%DATADIR%%/bin/qmstat.exe
+%%DATADIR%%/bin/quater.exe
+%%DATADIR%%/bin/rasscf.exe
+%%DATADIR%%/bin/rassi.exe
+%%DATADIR%%/bin/rhodyn.exe
+%%DATADIR%%/bin/rpa.exe
+%%DATADIR%%/bin/scf.exe
+%%DATADIR%%/bin/seward.exe
+%%DATADIR%%/bin/single_aniso.exe
+%%DATADIR%%/bin/slapaf.exe
+%%DATADIR%%/bin/surfacehop.exe
+%%DATADIR%%/bin/vibrot.exe
+%%DATADIR%%/data/MolGUI.prgm
+%%DATADIR%%/data/abdata
+%%DATADIR%%/data/alaska.prgm
+%%DATADIR%%/data/averd.prgm
+%%DATADIR%%/data/banner.txt
+%%DATADIR%%/data/caspt2.prgm
+%%DATADIR%%/data/casvb.prgm
+%%DATADIR%%/data/ccsdt.prgm
+%%DATADIR%%/data/chcc.prgm
+%%DATADIR%%/data/check.prgm
+%%DATADIR%%/data/cht3.prgm
+%%DATADIR%%/data/cpf.prgm
+%%DATADIR%%/data/dmrgscf.prgm
+%%DATADIR%%/data/dynamix.prgm
+%%DATADIR%%/data/espf.prgm
+%%DATADIR%%/data/expbas.prgm
+%%DATADIR%%/data/extf.prgm
+%%DATADIR%%/data/false.prgm
+%%DATADIR%%/data/ffpt.prgm
+%%DATADIR%%/data/functionals.txt
+%%DATADIR%%/data/gateway.prgm
+%%DATADIR%%/data/genano.prgm
+%%DATADIR%%/data/global.prgm
+%%DATADIR%%/data/grid_it.prgm
+%%DATADIR%%/data/guessorb.prgm
+%%DATADIR%%/data/guga.prgm
+%%DATADIR%%/data/gugaci.prgm
+%%DATADIR%%/data/gugadrt.prgm
+%%DATADIR%%/data/info.txt
+%%DATADIR%%/data/inporb_files.prgm
+%%DATADIR%%/data/inputs.tpl
+%%DATADIR%%/data/isotope_data.txt
+%%DATADIR%%/data/keyword.db
+%%DATADIR%%/data/keyword.xml
+%%DATADIR%%/data/landing.txt
+%%DATADIR%%/data/last_energy.prgm
+%%DATADIR%%/data/localisation.prgm
+%%DATADIR%%/data/loprop.prgm
+%%DATADIR%%/data/mbpt2.prgm
+%%DATADIR%%/data/mckinley.prgm
+%%DATADIR%%/data/mclr.prgm
+%%DATADIR%%/data/mcpdft.prgm
+%%DATADIR%%/data/modalias.txt
+%%DATADIR%%/data/motra.prgm
+%%DATADIR%%/data/mpprop.prgm
+%%DATADIR%%/data/mpssi.prgm
+%%DATADIR%%/data/mrci.prgm
+%%DATADIR%%/data/mula.prgm
+%%DATADIR%%/data/nevpt2.prgm
+%%DATADIR%%/data/numerical_gradient.prgm
+%%DATADIR%%/data/poly_aniso.prgm
+%%DATADIR%%/data/qmstat.prgm
+%%DATADIR%%/data/quater.prgm
+%%DATADIR%%/data/rasscf.prgm
+%%DATADIR%%/data/rassi.prgm
+%%DATADIR%%/data/rcodes.txt
+%%DATADIR%%/data/rhodyn.prgm
+%%DATADIR%%/data/rpa.prgm
+%%DATADIR%%/data/rysrw
+%%DATADIR%%/data/scf.prgm
+%%DATADIR%%/data/seward.prgm
+%%DATADIR%%/data/single_aniso.prgm
+%%DATADIR%%/data/slapaf.prgm
+%%DATADIR%%/data/surfacehop.prgm
+%%DATADIR%%/data/symmetrize.prgm
+%%DATADIR%%/data/vibrot.prgm
+%%DATADIR%%/data/wfa.prgm
+%%DATADIR%%/molcas.rte
+%%DATADIR%%/pymolcas
+%%DATADIR%%/sbin/help_basis
+%%DATADIR%%/sbin/help_doc
+%%DATADIR%%/sbin/help_func
+%%DATADIR%%/sbin/setup
+%%DATADIR%%/sbin/version