public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/sci:master commit in: sci-physics/pythia/files/, sci-physics/pythia/
@ 2015-06-05  6:02 Andrew Savchenko
  0 siblings, 0 replies; only message in thread
From: Andrew Savchenko @ 2015-06-05  6:02 UTC (permalink / raw
  To: gentoo-commits

commit:     df2e68372078184720feba376fe71b4ccd8b861a
Author:     Andrew Savchenko <bircoph <AT> gmail <DOT> com>
AuthorDate: Fri Jun  5 06:00:58 2015 +0000
Commit:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
CommitDate: Fri Jun  5 06:00:58 2015 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=df2e6837

sci-physics/pythia: fix all tests and related issues

 sci-physics/pythia/ChangeLog                       |  5 ++
 .../files/pythia8209-root-noninteractive.patch     | 17 ++++
 .../pythia/files/pythia8209-run-tests.patch        | 20 +++++
 sci-physics/pythia/pythia-8.2.09.ebuild            | 92 +++++++++++++++-------
 4 files changed, 105 insertions(+), 29 deletions(-)

diff --git a/sci-physics/pythia/ChangeLog b/sci-physics/pythia/ChangeLog
index a284d84..ae20b92 100644
--- a/sci-physics/pythia/ChangeLog
+++ b/sci-physics/pythia/ChangeLog
@@ -2,6 +2,11 @@
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
 # $Header: /var/cvsroot/gentoo-x86/sci-physics/pythia/ChangeLog,v 1.62 2015/05/27 14:06:39 bircoph Exp $
 
+  05 Jun 2015; Andrew Savchenko <bircoph@gentoo.org> pythia-8.2.09.ebuild,
+  +files/pythia8209-root-noninteractive.patch,
+  +files/pythia8209-run-tests.patch:
+  Fix all enabled tests. Allow parallel tests run. Fix pythia8-config.
+
   04 Jun 2015; Andrew Savchenko <bircoph@gentoo.org> pythia-8.2.09.ebuild:
   Fix some tests.
 

diff --git a/sci-physics/pythia/files/pythia8209-root-noninteractive.patch b/sci-physics/pythia/files/pythia8209-root-noninteractive.patch
new file mode 100644
index 0000000..4581eae
--- /dev/null
+++ b/sci-physics/pythia/files/pythia8209-root-noninteractive.patch
@@ -0,0 +1,17 @@
+--- pythia8209/examples/main91.cc.orig	2015-06-05 07:44:27.000000000 +0300
++++ pythia8209/examples/main91.cc	2015-06-05 08:17:22.477228166 +0300
+@@ -62,13 +62,9 @@
+   // Statistics on event generation.
+   pythia.stat();
+ 
+-  // Show histogram. Possibility to close it.
+-  mult->Draw();
+-  std::cout << "\nDouble click on the histogram window to quit.\n";
+-  gPad->WaitPrimitive();
+-
+   // Save histogram on file and close file.
+   mult->Write();
++  outFile->Close();
+   delete outFile;
+ 
+   // Done.

diff --git a/sci-physics/pythia/files/pythia8209-run-tests.patch b/sci-physics/pythia/files/pythia8209-run-tests.patch
new file mode 100644
index 0000000..d1edc83
--- /dev/null
+++ b/sci-physics/pythia/files/pythia8209-run-tests.patch
@@ -0,0 +1,20 @@
+--- pythia8209/examples/Makefile.orig	2015-06-04 22:21:53.000000000 +0300
++++ pythia8209/examples/Makefile	2015-06-05 05:35:25.324262331 +0300
+@@ -139,3 +139,17 @@
+ 	rm -f test[0-9][0-9][0-9]; rm -f out[0-9][0-9][0-9];\
+ 	rm -f weakbosons.lhe; rm -f Pythia8.promc; rm -f hist.root;\
+ 	rm -f *~; rm -f \#*; rm -f core*; rm -f *Dct.*
++	rm -f main*out *.dat
++
++# Run tests, inject test-specific arguments when needed
++main%.out: main%
++	./$< \
++	    $(if $(findstring $*,16 42 43 $(shell seq 81 89)), main$*.cmnd) \
++	    $(if $(findstring $*,         $(shell seq 81 83)), w+_production_lhc_0.lhe) \
++	    $(if $(findstring $*,                         84), hepmcout84.dat 2 w+_production_lhc) \
++	    $(if $(findstring $*,         $(shell seq 85 88)), w_production) \
++	    $(if $(findstring $*,   42 43 $(shell seq 81 89)), histout$*.dat) \
++	    > $@
++
++main89.out: main89
++	$(foreach cmd, $(wildcard main89*.cmnd), ./$< $(cmd) histout-$(cmd).dat >> $@ || exit;)

diff --git a/sci-physics/pythia/pythia-8.2.09.ebuild b/sci-physics/pythia/pythia-8.2.09.ebuild
index 61b8435..b112f9a 100644
--- a/sci-physics/pythia/pythia-8.2.09.ebuild
+++ b/sci-physics/pythia/pythia-8.2.09.ebuild
@@ -4,14 +4,24 @@
 
 EAPI=5
 
-inherit eutils versionator toolchain-funcs multilib
+inherit eutils multilib toolchain-funcs versionator
 
 MV=$(get_major_version)
 MY_P=${PN}$(replace_all_version_separators "" ${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"
+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"
@@ -31,11 +41,19 @@ DEPEND="${RDEPEND}
 
 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="${EPREFIX}/usr/share/pythia8"
+	PYTHIADIR="/usr/share/pythia8"
+	EPYTHIADIR="${EPREFIX}${PYTHIADIR}"
 	# set datadir for xmldor in include file
 	sed -i \
-		-e "s:../share/Pythia8/xmldoc:${PYTHIADIR}/xmldoc:" \
+		-e "s:../share/Pythia8/xmldoc:${EPYTHIADIR}/xmldoc:" \
 		include/Pythia8/Pythia.h || die
 	# respect libdir, prefix, flags
 	sed -i \
@@ -45,11 +63,23 @@ src_prepare() {
 		-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
 #	if ! use static-libs; then
@@ -61,6 +91,9 @@ src_prepare() {
 #			-e 's:\.a:\.so:g' \
 #			examples/Makefile || die
 #	fi
+
+	epatch "${FILESDIR}/${PN}8209-run-tests.patch"
+	epatch "${FILESDIR}/${PN}8209-root-noninteractive.patch"
 }
 
 # TODO: the following optional packages are out of Gentoo tree:
@@ -75,7 +108,7 @@ src_configure() {
 		--enable-shared \
 		--prefix="${EPREFIX}/usr" \
 		--prefix-lib="$(get_libdir)" \
-		--prefix-share="${PYTHIADIR}" \
+		--prefix-share="${EPYTHIADIR}" \
 		$(usex fastjet "--with-fastjet3" "") \
 		$(usex gzip "--with-gzip" "") \
 		$(usex hepmc "--with-hepmc2" "") \
@@ -86,40 +119,36 @@ src_configure() {
 			--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,51,52,54,61,62,73,80})" t
-	use hepmc && tests+=" $(echo main{41,42,85,86})"
-	use hepmc && use lhapdf && tests+=" $(echo main{43,{87..89}})"
-	use lhapdf && tests+=" $(echo main{51..54})"
-	use fastjet && tests+=" $(echo main{71,72})"
-	use fastjet && use hepmc && use lhapdf && tests+=" $(echo main{81..84})"
-	use root && tests+=" main91"
+	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
 
-	# some tests need arguments
-	local -a args
-	args[16]="main16.cmnd"
-	args[42]="main42.cmnd hepmcout42.dat"
-	args[43]="main43.cmnd hepmcout43.dat"
-
 	# 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}
-	for t in ${tests}; do
-		einfo "Running test ${t}..."
-		LD_LIBRARY_PATH="${S}/$(get_libdir):${LD_LIBRARY_PATH}" \
-		PYTHIA8DATA="../share/Pythia8/xmldoc/" \
-			./"${t}" ${args[t]} > "${t}.out" || die "test ${t} failed"
-	done
 	emake clean
-	rm main*.out *.dat || die
 }
 
 src_install() {
@@ -127,10 +156,10 @@ src_install() {
 	dobin bin/pythia8-config
 	doheader -r include/*
 	dolib lib/*
-	insinto "/usr/share/pythia8"
-	doins -r share/Pythia8/xmldoc
+	insinto "${PYTHIADIR}"
+	doins -r share/Pythia8/xmldoc examples/Makefile.inc
 
-	echo "PYTHIA8DATA=${PYTHIADIR}/xmldoc" >> 99pythia8
+	echo "PYTHIA8DATA=${EPYTHIADIR}/xmldoc" >> 99pythia8
 	doenvd 99pythia8
 
 	dodoc AUTHORS GUIDELINES README
@@ -139,11 +168,16 @@ src_install() {
 		dohtml -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/doc/${PF}
 		doins -r examples
 		docompress -x /usr/share/doc/${PF}/examples
 	fi
 
 	# cleanup
-	unset PYTHIADIR
+	unset PYTHIADIR EPYTHIADIR
 }


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-06-05  6:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-05  6:02 [gentoo-commits] proj/sci:master commit in: sci-physics/pythia/files/, sci-physics/pythia/ Andrew Savchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox