commit:     f99973d2f5532b3529325c6c654e3313f762f08b
Author:     Alexander Puck Neuwirth <alexander <AT> neuwirth-informatik <DOT> 
de>
AuthorDate: Sat Apr 26 17:45:37 2025 +0000
Commit:     Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
CommitDate: Mon May  5 18:32:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f99973d2

sci-physics/pythia: add 8.3.14

Signed-off-by: Alexander Puck Neuwirth <alexander <AT> neuwirth-informatik.de>
Part-of: https://github.com/gentoo/gentoo/pull/41774
Closes: https://github.com/gentoo/gentoo/pull/41774
Signed-off-by: Nowa Ammerlaan <nowa <AT> gentoo.org>

 sci-physics/pythia/Manifest             |   1 +
 sci-physics/pythia/pythia-8.3.14.ebuild | 214 ++++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sci-physics/pythia/Manifest b/sci-physics/pythia/Manifest
index 3ce7764a3930..0f84aa8bbe3a 100644
--- a/sci-physics/pythia/Manifest
+++ b/sci-physics/pythia/Manifest
@@ -14,3 +14,4 @@ DIST pythia8309.tgz 28407620 BLAKE2B 
0ef226e2e65829952d670b57c24bff2108d916ca547
 DIST pythia8311.tgz 28757044 BLAKE2B 
93a7cc26682bc6418f85e41def94a8cdfe39e180fa9fec2a6e47e9237fc2d42800dca2b76f54e2d56cb1d3a2b9a0008baf7b77610aabac2a6505fe08b2b4ffe2
 SHA512 
e0ae6cb444f11f3e3cf84d738b8c135f07ceafb28911b855bb63e3c596c5b9fd312a1f4ff78a098b707bfbb8f517a46177c4dbc57b4882cf03b12b0be49e2885
 DIST pythia8312.tgz 30218597 BLAKE2B 
71efca55572a241cf369e90186b033fbcd2326de82867f3f13057fbda372885632cab3d7b34ac5b444419bba4dd8d6c4bb90e12bf2424a43ae313c21268e8d89
 SHA512 
683ece1bd2cfd49d9cee742ce3fab693c5bf15017a6584d33e2a00bd0f0a67d1b84ff48da75f39cb4a4b564b9a35f997ab5187fe691f1f4b724cec5a4d717a23
 DIST pythia8313.tgz 29957501 BLAKE2B 
2149cafba036d09a66b874c775f4a425d5bbdd65d37f23c851f9cd3f7026ae45581187542d11ae5bbc18b7280fbc14e4daabd684b71c4437b3d9d1a4429f254a
 SHA512 
1753323aa021ec5d999056517dc021fd73b7331441ff4c841d559df884700cc997e6384043de7c15a054ec8a3b2d76f1cb9f5edc7c6141f08f70d49ca5f6fb84
+DIST pythia8314.tgz 30007148 BLAKE2B 
e953496c67e7678d6bb30660b83eba4928e7696e582924971ffb07aedc76baab5ab9103e720b49eac5d4f8014131926726df322e808e38416f395aa9f9f4776f
 SHA512 
bd21f56a8a07f3f9198328cddaa5b6c7fb0f048e2ab17d2f4e9da17dc98039dbb0df3cb1022a0d1030bc9eeda59036bc0a7299a5df38d202ee3c58f484e1635e

diff --git a/sci-physics/pythia/pythia-8.3.14.ebuild 
b/sci-physics/pythia/pythia-8.3.14.ebuild
new file mode 100644
index 000000000000..def740a93eae
--- /dev/null
+++ b/sci-physics/pythia/pythia-8.3.14.ebuild
@@ -0,0 +1,214 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+inherit toolchain-funcs python-single-r1
+
+MV=$(ver_cut 1-2)
+MY_P="${PN}${PV//./}"
+LHA_VER="6.2.1"
+
+DESCRIPTION="Lund Monte Carlo high-energy physics event generator"
+HOMEPAGE="https://pythia.org/";
+SRC_URI="test? ( lhapdf? (
+               https://lhapdfsets.web.cern.ch/lhapdfsets/current/CT10.tar.gz
+               
https://lhapdfsets.web.cern.ch/lhapdfsets/current/MRST2007lomod.tar.gz
+               
https://lhapdfsets.web.cern.ch/lhapdfsets/current/NNPDF23_nlo_as_0119_qed_mc.tar.gz
+               
https://lhapdfsets.web.cern.ch/lhapdfsets/current/NNPDF23_nnlo_as_0119_qed_mc.tar.gz
+               https://lhapdfsets.web.cern.ch/lhapdfsets/current/cteq66.tar.gz
+               https://lhapdfsets.web.cern.ch/lhapdfsets/current/cteq6l1.tar.gz
+               
https://www.hepforge.org/downloads/lhapdf/pdfsets/v6.backup/${LHA_VER}/MRST2004qed.tar.gz
+       ) )
+"
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://gitlab.com/Pythia8/releases";
+else
+       SRC_URI="https://pythia.org/download/${PN}${MV//./}/${MY_P}.tgz
+       ${SRC_URI}"
+       KEYWORDS="~amd64 ~x86"
+       S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="GPL-2"
+SLOT="8"
+IUSE="doc examples fastjet +hepmc3 hepmc2 lhapdf root test zlib python 
highfive mpich rivet" # evtgen mg5mes rivet powheg
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+       ?? ( hepmc3 hepmc2 )
+       python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+RDEPEND="
+       fastjet? ( sci-physics/fastjet )
+       hepmc3? ( sci-physics/hepmc:3= )
+       hepmc2? ( sci-physics/hepmc:2= )
+       lhapdf? ( sci-physics/lhapdf:= )
+       zlib? ( sys-libs/zlib )
+       highfive? (
+               sci-libs/HighFive
+               sci-libs/hdf5[cxx]
+       )
+       rivet? (
+               sci-physics/rivet:*
+       )
+       mpich? ( sys-cluster/mpich )
+       python? ( ${PYTHON_DEPS} )
+       "
+DEPEND="${RDEPEND}"
+# ROOT is used only when building related tests
+BDEPEND="
+       test? (
+               root? ( sci-physics/root:= )
+       )
+"
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+}
+
+pkg_pretend() {
+       if use root && ! use test; then
+               ewarn "ROOT support will only affect examples code build during 
test stage."
+               ewarn "Since you have tests disabled, this is a no-op."
+       fi
+}
+
+src_prepare() {
+       PYTHIADIR="/usr/share/Pythia8"
+       EPYTHIADIR="${EPREFIX}${PYTHIADIR}"
+
+       default
+       # set datadir for xmldor in include file
+       sed -i \
+               -e "s|../share/Pythia8/xmldoc|${EPYTHIADIR}/xmldoc|" \
+               include/Pythia8/Pythia.h || die
+       # respect libdir, prefix, flags
+       sed -i \
+               -e "s|/lib|/$(get_libdir)|g" \
+               -e "s|/usr|${EPREFIX}/usr|g" \
+               -e "s|-O2|${CXXFLAGS}|g" \
+               -e "s|Cint|Core|g" \
+               configure || die
+       # we use lhapdf6 instead of lhapdf5
+       # some PDFs changed, use something similar
+       sed -i \
+               -e "s|LHAPDF5|LHAPDF6|g" \
+               -e "s|\.LHgrid||g" \
+               -e "s|\.LHpdf||g" \
+               -e "s|MRST2001lo|MRST2007lomod|g" \
+               -e "s|cteq6ll|cteq6l1|g" \
+               -e "s|cteq6m|cteq66|g" \
+               examples/*.{cc,cmnd} || die
+       # After lhapdf5->6 migration PDFs are identical within ~1/1000
+       # https|//www.hepforge.org/archive/lhapdf/pdfsets/6.1/README
+       sed -i \
+               -e "s|1e-8|3e-1|g" \
+               -e "s|nlo_as_0119_qed|nlo_as_0119_qed_mc|g" \
+               -e "s|xmldoc|share/Pythia8/xmldoc|g" \
+               examples/main203.cc || die
+       # ask cflags from root
+       sed -i "s|root-config|root-config --cflags|g" examples/Makefile || die
+
+       sed -i 's|libpythia8\.a|libpythia8$(LIB_SUFFIX)|g' \
+               examples/Makefile || die
+}
+
+# TODO: the following optional packages are out of Gentoo tree:
+# - EvtGen 
http://atlas-computing.web.cern.ch/atlas-computing/links/externalDirectory/EvtGen/
+# - PowHEG http://powhegbox.mib.infn.it/
+# - ProMC  https://github.com/Argonne-National-Laboratory/ProMC/
+src_configure() {
+       # homemade configure script
+       local -x CXX="$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS}"
+       ./configure \
+               --arch=Linux \
+               --prefix="${EPREFIX}/usr" \
+               --prefix-lib="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix-share="${EPYTHIADIR}" \
+               $(usex fastjet "--with-fastjet3" "") \
+               $(usex zlib "--with-gzip" "") \
+               $(use_with hepmc3) \
+               $(use_with highfive) \
+               $(usex highfive --with-hdf5 "") \
+               $(use_with python) \
+               $(use_with rivet) \
+               $(use_with mpich) \
+               $(use_with hepmc2) \
+               $(usex lhapdf "--with-lhapdf6
+                       --with-lhapdf6-plugin=LHAPDF6.h
+                       --with-lhapdf6-lib=${EPREFIX}/usr/$(get_libdir)" "") \
+               $(usex root "--with-root
+                       --with-root-include=${EPREFIX}/usr/include/root
+                       --with-root-lib=${EPREFIX}/usr/$(get_libdir)/root" "") \
+               || die
+
+       # fix pythia config script
+       sed -i \
+               -e 's|Pythia8/examples/Makefile.inc|Pythia8/Makefile.inc|' \
+               -e "s|CFG_FILE=.*|CFG_FILE=${EPYTHIADIR}/Makefile.inc|" \
+               -e 's|LINE%=|LINE%%=|' \
+               bin/pythia8-config || die
+}
+
+src_test() {
+       cd examples || die
+
+       local tests="$(echo main{{101..103},{121..127}})"
+       use hepmc3 && tests+=" $(echo main{131..135})"
+       use hepmc3 && use mpich && use highfive && tests+=" $(echo main136)"
+       use lhapdf && tests+=" $(echo main{201..204})"
+       use fastjet && tests+=" $(echo main{{211..214},216})" # 215 fails...
+       use root && tests+=" main143"
+       use hepmc3 && use lhapdf && tests+=" $(echo main{133,162})"
+       use fastjet && use hepmc3 && use lhapdf && tests+=" $(echo main161)"
+       # Other tests disabled due to missing dependencies
+
+       # use emake for parallel instead of long runmains
+       LD_LIBRARY_PATH="${S}/$(get_libdir):${LD_LIBRARY_PATH}" \
+       PYTHIA8DATA="../share/Pythia8/xmldoc/" \
+       LHAPDF_DATA_PATH="${WORKDIR}" \
+       emake ${tests}
+       emake clean
+}
+
+src_install() {
+       # make install is too broken, much easier to install manually
+       dobin bin/pythia8-config
+       doheader -r include/*
+       dolib.so lib/libpythia8.so
+       use lhapdf && dolib.so lib/libpythia8lhapdf6.so
+       insinto "${PYTHIADIR}"
+       doins -r share/Pythia8/tunes share/Pythia8/xmldoc share/Pythia8/pdfdata 
examples/Makefile.inc
+
+       newenvd - 99pythia8 <<- _EOF_
+               PYTHIA8DATA=${EPYTHIADIR}/xmldoc
+       _EOF_
+
+       dodoc AUTHORS GUIDELINES README
+
+       if use doc; then
+               dodoc -r share/Pythia8/pdfdoc/.
+               dodoc -r share/Pythia8/htmldoc/.
+       fi
+       if use examples; then
+               # reuse system Makefile.inc
+               rm examples/Makefile.inc || die
+               sed -i "s|include Makefile.inc|include ${EPYTHIADIR}|" \
+                       examples/Makefile || die
+
+               insinto /usr/share/${PN}
+               doins -r examples
+               docompress -x /usr/share/doc/${PF}/examples
+       fi
+       if use python; then
+               local site_dir=$(python_get_sitedir)
+               insinto "${site_dir#${EPREFIX}}"
+               doins lib/pythia8.so
+       fi
+
+       # cleanup
+       unset PYTHIADIR EPYTHIADIR
+}

Reply via email to