summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Puck Neuwirth <alexander@neuwirth-informatik.de>2024-05-05 19:29:52 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-05-15 12:26:35 +0200
commite0e79b7d35e95207ef5f23a978138ccdbebeb545 (patch)
tree288b18f3509ccc2f74df694edd413186f1dcb902
parentapp-portage/pkg-testing-tools: add 0.2.5 (diff)
downloadgentoo-e0e79b7d35e95207ef5f23a978138ccdbebeb545.tar.gz
gentoo-e0e79b7d35e95207ef5f23a978138ccdbebeb545.tar.bz2
gentoo-e0e79b7d35e95207ef5f23a978138ccdbebeb545.zip
sci-physics/pythia: add 8.3.11
Signed-off-by: Alexander Puck Neuwirth <alexander@neuwirth-informatik.de> Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
-rw-r--r--sci-physics/pythia/Manifest1
-rw-r--r--sci-physics/pythia/pythia-8.3.11.ebuild188
2 files changed, 189 insertions, 0 deletions
diff --git a/sci-physics/pythia/Manifest b/sci-physics/pythia/Manifest
index f3de451fdba1..79a364ae3853 100644
--- a/sci-physics/pythia/Manifest
+++ b/sci-physics/pythia/Manifest
@@ -12,3 +12,4 @@ DIST pythia6428-split.tgz 689807 BLAKE2B 5acb53a75db22509e3def7d0a2fa31672e50f8d
DIST pythia8245.tgz 23605527 BLAKE2B 1007c2f8b50a115d29fe1b0363a187feca717cb2147ef759e999aeaf51ac457e9edbbdc78be47ed57d008e572b99fb327823249b31596241ee72ff587b81c8f1 SHA512 1cc579581475bfe2381059cc4789069041fa63649c86353f65cc2baa12c85142fb6c087e1607c2004b6284a21cada30a172da9853a71afa01c787272a7534574
DIST pythia8307.tgz 26016414 BLAKE2B 0253309d71ca4e46183de80396c3a226d072ea2e8aeaf87da33994b3303017a6ca567f6731902aba43c20fec2c0aeace0728f2ce725f9221f161a70055fa6043 SHA512 63e7a3e76f8bfe0cd7b34ef523d8bbcfa50ee780c8437384ef7eb208f0f682481b0166673647db98468baeb6df855fdbf0cbb1509dcc5eda39c90f3f3461fd2a
DIST pythia8309.tgz 28407620 BLAKE2B 0ef226e2e65829952d670b57c24bff2108d916ca547233041e97dabb81d9616be3e404da7225f9cb4a2c9773c0c22939d813eaed92560e01c6fbe37e4690c232 SHA512 c7d99a9a1f7bf1441532720667ab224283b866e7f3ea9e730c839ac62e3b8b9e5c01471fb94a4a48d481635544e4ed230796a710531650bfffde96f0f78590bf
+DIST pythia8311.tgz 28757044 BLAKE2B 93a7cc26682bc6418f85e41def94a8cdfe39e180fa9fec2a6e47e9237fc2d42800dca2b76f54e2d56cb1d3a2b9a0008baf7b77610aabac2a6505fe08b2b4ffe2 SHA512 e0ae6cb444f11f3e3cf84d738b8c135f07ceafb28911b855bb63e3c596c5b9fd312a1f4ff78a098b707bfbb8f517a46177c4dbc57b4882cf03b12b0be49e2885
diff --git a/sci-physics/pythia/pythia-8.3.11.ebuild b/sci-physics/pythia/pythia-8.3.11.ebuild
new file mode 100644
index 000000000000..291b7e736a10
--- /dev/null
+++ b/sci-physics/pythia/pythia-8.3.11.ebuild
@@ -0,0 +1,188 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+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="https://pythia.org/download/${PN}${MV//./}/${MY_P}.tgz
+ 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
+ ) )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="8"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples fastjet +hepmc3 hepmc2 lhapdf root test zlib"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+ ?? ( hepmc3 hepmc2 )
+"
+
+RDEPEND="
+ fastjet? ( sci-physics/fastjet )
+ hepmc3? ( sci-physics/hepmc:3= )
+ hepmc2? ( sci-physics/hepmc:2= )
+ lhapdf? ( sci-physics/lhapdf:= )
+ zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}"
+# ROOT is used only when building related tests
+BDEPEND="
+ test? (
+ root? ( sci-physics/root:= )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}8209-root-noninteractive.patch
+)
+
+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/main54.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 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{{01..32},37,38,61,62,73,80}.out)"
+ use hepmc3 && tests+=" $(echo main{41,42,85,86}.out)"
+ use hepmc3 && use lhapdf && tests+=" $(echo main{43,{87..89}}.out)"
+ use lhapdf && tests+=" $(echo main{51..54}.out)"
+ use fastjet && tests+=" $(echo main{71,72}.out)"
+ use fastjet && use hepmc3 && use lhapdf && tests+=" $(echo main{81..84}).out"
+ use root && tests+=" main91.out"
+ # Disabled tests:
+ # 33 needs PowHEG
+ # 46 needs ProMC
+ # 48 needs EvtGen
+ # 92 generated ROOT dictionary is badly broken
+
+ # 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/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
+
+ # cleanup
+ unset PYTHIADIR EPYTHIADIR
+}