summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Savchenko <bircoph@gentoo.org>2021-05-23 16:15:54 +0300
committerAndrew Savchenko <bircoph@gentoo.org>2021-05-23 16:28:59 +0300
commitba9d63eca7793d2bd236670186fb16b1ab7cf078 (patch)
tree1457cce01a3008b3d9e651bbd0c778813a907963 /sci-physics
parentsci-physics/lhapdf: fix build with /bin/sh != bash (diff)
downloadgentoo-ba9d63eca7793d2bd236670186fb16b1ab7cf078.tar.gz
gentoo-ba9d63eca7793d2bd236670186fb16b1ab7cf078.tar.bz2
gentoo-ba9d63eca7793d2bd236670186fb16b1ab7cf078.zip
sci-physics/pythia: version bump slot 8
- Update to 8.2.45 - This fixes build with lhapdf (bug 772923) - Use '|' instead of ':' as sed separator due to bug 685160 Closes: https://bugs.gentoo.org/710706 Closes: https://bugs.gentoo.org/772923 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Andrew Savchenko <bircoph@gentoo.org>
Diffstat (limited to 'sci-physics')
-rw-r--r--sci-physics/pythia/Manifest1
-rw-r--r--sci-physics/pythia/pythia-8.2.45.ebuild187
2 files changed, 188 insertions, 0 deletions
diff --git a/sci-physics/pythia/Manifest b/sci-physics/pythia/Manifest
index f8c0687c371d..f526c4d1d101 100644
--- a/sci-physics/pythia/Manifest
+++ b/sci-physics/pythia/Manifest
@@ -10,3 +10,4 @@ DIST pythia-6.4.18-examples.tar.bz2 36366 BLAKE2B ec655014d3904b66da4a1e748a37c3
DIST pythia-6.4.28.tar.xz 490248 BLAKE2B aff9006a4d3a0536d39a5b5161329f058b980554046a57979cc72c80067be96f00b5056dee29fc7f0039ddae074560823427c3a0e24e59f69662f08524fbdcd4 SHA512 f9db72658f2132ce08d31c8a9f7fe727466b184ef41cc4b762fe2bde48dbdfd7b5df19b21a869e20a1f107c96e9daec115c980e11592968eb2cad666b7c96bdc
DIST pythia6-20160413.tar.gz 567976 BLAKE2B 92ee81e41db46d49706599ee387a650f67d54a0ea165648de0d09d6cec811c2a4b22903c15cca0abaf5f34cf28333d70315a2c71f4ce0ec0bc48757c20114ae7 SHA512 2a9ea2ae299e8d49bd9750f8c68f0b7f534fb91254c2eebc60ef40828400bdf5e5c4e0956d61807e773a51db873ab4a036c3ac264f904d0bb2b85f4860e538d3
DIST pythia8226.tgz 17639842 BLAKE2B b80d7c10bd5ccc45fbb2db0df0eff679236b9911958f58987517b475e055959aa494a2199f64117631baedd90c8e2753f996e5d64552e39e54859bfe77274dad SHA512 85db807264f99c27dd87ad0572b98f4ac8d37fed818c3dd1ac89f0ac124ae0a5ee13b290727e515cb04269a6e0be8b386d954bed62309f26d1e60b431f952ca0
+DIST pythia8245.tgz 23737440 BLAKE2B 74fd060229a342a32ddd33cd1911708c03e23ee0656a23ed91663fa08b35bb015f75bedba2e6ef13cfc9524affde8e8b65653596eb34f1f080781e655b85af5b SHA512 25107eb98474217ac697476143e879c62fcf5653994a2daf61cfca892f91fbaea3c274019fb4469e9ef547e87d69b8842ee28db5fdac6433965a62eeb16ef95a
diff --git a/sci-physics/pythia/pythia-8.2.45.ebuild b/sci-physics/pythia/pythia-8.2.45.ebuild
new file mode 100644
index 000000000000..0dc12374459b
--- /dev/null
+++ b/sci-physics/pythia/pythia-8.2.45.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+MV=$(ver_cut 1)
+MY_P="${PN}${PV//./}"
+LHA_VER="6.1"
+
+DESCRIPTION="Lund Monte Carlo high-energy physics event generator"
+HOMEPAGE="http://pythia8.hepforge.org/"
+SRC_URI="http://home.thep.lu.se/~torbjorn/${PN}${MV}/${MY_P}.tgz
+ test? ( lhapdf? (
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/CT10.tar.gz
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/MRST2007lomod.tar.gz
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/NNPDF23_nlo_as_0119_qed_mc.tar.gz
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/NNPDF23_nnlo_as_0119_qed_mc.tar.gz
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/cteq66.tar.gz
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/cteq6l1.tar.gz
+ https://www.hepforge.org/archive/lhapdf/pdfsets/${LHA_VER}/unvalidated/MRST2004qed.tar.gz
+ ) )"
+
+SLOT="8"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples fastjet gzip +hepmc lhapdf root test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ fastjet? ( sci-physics/fastjet )
+ gzip? ( sys-libs/zlib )
+ hepmc? ( sci-physics/hepmc:0= )
+ lhapdf? ( sci-physics/lhapdf:= )"
+# ROOT is used only when building related tests
+DEPEND="${RDEPEND}
+ test? (
+ root? ( sci-physics/root:= )
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}8209-root-noninteractive.patch
+)
+
+S="${WORKDIR}/${MY_P}"
+
+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
+ sed -i 's|$(CXX) $^ -o $@ $(CXX_COMMON) $(CXX_SHARED)|$(CXX) $(LDFLAGS) $^ -o $@ $(CXX_COMMON) $(CXX_SHARED)|g' \
+ Makefile || die
+ sed -i 's|$(CXX)|$(CXX) $(LDFLAGS)|' examples/Makefile || 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 \
+ -e '/TARGETS=$(LOCAL_LIB)\/libpythia8\.a/d' \
+ -e 's|libpythia8\.a$|libpythia8$(LIB_SUFFIX)|g' \
+ 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
+ ./configure \
+ --arch=Linux \
+ --cxx=$(tc-getCXX) \
+ --enable-shared \
+ --prefix="${EPREFIX}/usr" \
+ --prefix-lib="$(get_libdir)" \
+ --prefix-share="${EPYTHIADIR}" \
+ $(usex fastjet "--with-fastjet3" "") \
+ $(usex gzip "--with-gzip" "") \
+ $(usex hepmc "--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|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 hepmc && tests+=" $(echo main{41,42,85,86}.out)"
+ use hepmc && 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 hepmc && 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
+ insinto "${PYTHIADIR}"
+ doins -r share/Pythia8/xmldoc 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
+}