commit: 26b91f943c810e439c529ab909075e0526255a0e
Author: Alexander Puck Neuwirth <alexander <AT> neuwirth-informatik <DOT>
de>
AuthorDate: Thu Feb 13 12:13:54 2025 +0000
Commit: Alexander Puck Neuwirth <alexander <AT> neuwirth-informatik <DOT>
de>
CommitDate: Thu Feb 13 12:16:44 2025 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=26b91f94
sci-physics/openloops: add 2.1.4
Signed-off-by: Alexander Puck Neuwirth <alexander <AT> neuwirth-informatik.de>
sci-physics/openloops/metadata.xml | 4 +
sci-physics/openloops/openloops-2.1.4.ebuild | 143 +++++++++++++++++++++++++++
2 files changed, 147 insertions(+)
diff --git a/sci-physics/openloops/metadata.xml
b/sci-physics/openloops/metadata.xml
index ebd5233b6..f7ec2a109 100644
--- a/sci-physics/openloops/metadata.xml
+++ b/sci-physics/openloops/metadata.xml
@@ -24,5 +24,9 @@
<flag name="pplljj">Build pp to lljj process</flag>
<flag name="pplnj-ckm">Build pp to lnj process with ckm matrix</flag>
<flag name="pplnjj-ckm">Build pp to lljj process with ckm matrix</flag>
+ <flag name="ppjj">Build pp to jj process</flag>
+ <flag name="ppjjj">Build pp to jjj process</flag>
+ <flag name="ppajj">Build pp to ajj process</flag>
+ <flag name="pphllj-ew">Build pp to hllj process with EW corrections</flag>
</use>
</pkgmetadata>
diff --git a/sci-physics/openloops/openloops-2.1.4.ebuild
b/sci-physics/openloops/openloops-2.1.4.ebuild
new file mode 100644
index 000000000..8ad625413
--- /dev/null
+++ b/sci-physics/openloops/openloops-2.1.4.ebuild
@@ -0,0 +1,143 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit fortran-2 python-single-r1 scons-utils toolchain-funcs
+
+MY_PN=OpenLoops
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Evaluation of tree and one-loop matrix elements for any Standard
Model."
+HOMEPAGE="https://openloops.hepforge.org/index.html"
+#SRC_URI="https://openloops.hepforge.org/downloads?f=${MY_P}.tar.gz ->
${MY_P}.tar.gz"
+#S="${WORKDIR}/${MY_P}"
+# since the files are not publicly versioned we mirror them from
+# https://www.physik.uzh.ch/data/openloops/repositories/public/processes/2
+COMMON_URI="https://gitlab.com/openloopsmirror/"
+
+SRC_URI="
+
https://gitlab.com/openloops/OpenLoops/-/archive/${MY_P}/${MY_PN}-${MY_P}.tar.bz2
+ ppllj? (
${COMMON_URI}/ppllj/-/archive/a3a36918/ppllj-a3a36918.tar.bz2 )
+ pplljj? (
${COMMON_URI}/pplljj/-/archive/93a6e3f7/pplljj-93a6e3f7.tar.bz2 )
+ pplnj-ckm? (
${COMMON_URI}/pplnj_ckm/-/archive/4d8743c/pplnj_ckm-4d8743c.tar.bz2 )
+ pplnjj-ckm? (
${COMMON_URI}/pplnjj_ckm/-/archive/d3d5302/pplnjj_ckm-d3d5302.tar.bz2 )
+ pplla-ew? (
${COMMON_URI}/pplla_ew/-/archive/0a26af9a/pplla_ew-0a26af9a.tar.bz2 )
+ ppjj? ( ${COMMON_URI}/ppjj/-/archive/d3d5302/ppjj-d3d5302.tar.bz2
)
+ ppjjj? (
${COMMON_URI}/ppjjj/-/archive/93a6e3f7/ppjjj-93a6e3f7.tar.bz2 )
+ ppajj? (
${COMMON_URI}/ppajj/-/archive/93a6e3f7/ppajj-93a6e3f7.tar.bz2 )
+ pphllj-ew? (
${COMMON_URI}/pphllj_ew/-/archive/93a6e3f7/pphllj_ew-93a6e3f7.tar.bz2 )
+
+"
+S="${WORKDIR}/${MY_PN}-${MY_P}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+collier +cuttools +extra pplla-ew ppllj pplljj pplnj-ckm pplnjj-ckm
ppjj ppjjj ppajj pphllj-ew"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ sci-physics/qcdloop
+ sci-physics/oneloop[dpkind,qpkind16,-qpkind,-cppintf]
+ collier? ( sci-physics/collier[-static-libs] )
+ cuttools? ( sci-physics/cuttools[dummy] )
+ ${PYTHON_DEPS}
+"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+ mv openloops.cfg.tmpl openloops.cfg || die
+ sed -i "s|\\\$BASEDIR/scons -Q|scons -Q -C /opt/${MY_P}/|g" openloops
|| die
+ if use extra ; then
+ sed -i "s|#compile_extra.*|compile_extra = 1|" openloops.cfg ||
die
+ fi
+
+ cat <<-EOF >> openloops.cfg || die
+ compile_libraries = rambo trred
+ link_libraries = $(usev collier) $(usev cuttools)
+ ccflags = ${CFLAGS}
+ cxxflags = ${CXXFLAGS}
+ f_flags = ${FFLAGS} -I${ESYSROOT}/usr/include/
-I${ESYSROOT}/usr/include/cuttools -lcollier
+ link_flags = ${LDFLAGS} -I${ESYSROOT}/usr/include/
-I${ESYSROOT}/usr/include/cuttools -lcollier
+ cc = $(tc-getCC)
+ cxx = $(tc-getCXX)
+ fortran_compiler = $(tc-getFC)
+
+ release = $PV
+ import_env = @all
+ EOF
+
+ # fix rename for py3.12
+ sed -i 's/SafeConfigParser/ConfigParser/g' pyol/tools/OLBaseConfig.py
|| die
+ # wipe local scons
+ rm -r scons-local || die
+ rm scons || die
+}
+
+src_compile() {
+ escons --cache-disable
+ for OLPROC in pplla_ew ppllj pplljj pplnj_ckm pplnjj_ckm ppjj ppjjj
ppajj pphllj_ew; do
+ if use ${OLPROC//_/-}; then
+ # move downloaded files to src
+ mkdir -p "${S}/process_src/${OLPROC}" || die
+ mv "${WORKDIR}/${OLPROC}-"*/*
"${S}/process_src/${OLPROC}" || die
+ # compile it
+ escons auto=${OLPROC} generator=0
+ fi
+ done
+
+ # insert these later since we are done with compiling in ${S} now
+ cat <<-EOF >> openloops.cfg || die
+ process_src_dir = ${EPREFIX}/opt/${MY_P}/process_src/
+ process_obj_dir = ${EPREFIX}/opt/${MY_P}/process_obj/
+ process_lib_dir = ${EPREFIX}/opt/${MY_P}/proclib/
+ EOF
+}
+
+src_install() {
+ dosym ../opt/${MY_P} /opt/OpenLoops2
+ dobin openloops
+ cd include || die
+ doheader openloops.h
+
+ newenvd - 99openloops2 <<- _EOF_
+ OpenLoopsPath=${EPREFIX}/opt/OpenLoops2
+ _EOF_
+
+ # Also install so.version links
+ cd ../lib || die
+ dolib.so libolcommon.so* libopenloops.so* librambo.so* libtrred.so*
+
+ cd .. || die
+ # install processes
+ if [ -d "./proclib" ]; then
+ dodir "/opt/${MY_P}/proclib"
+ mv proclib/* "${ED}/opt/${MY_P}/proclib/" || die
+ fi
+
+ cd ./lib_src/olcommon/mod || die
+ doheader *.mod
+ cd ../../openloops/mod || die
+ doheader *.mod
+ cd ../../rambo/mod || die
+ doheader *.mod
+ cd ../../trred/mod || die
+ doheader *.mod
+
+ cd "${S}" || die "Failed to cd into ${S}"
+ insinto /opt/${MY_P}
+ doins openloops.cfg SConstruct
+ doins -r pyol
+
+ # no need to also install the source code
+ #doins -r process_src
+}
+
+pkg_postinst() {
+ elog "Install processes with openloops libinstall."
+ elog "They are installed in ${EPREFIX}/opt/${MY_P}/proclib/."
+}