summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriarspider <iarspider@gmail.com>2020-07-06 17:51:36 +0200
committerGitHub <noreply@github.com>2020-07-06 10:51:36 -0500
commite62ddcb5823133ce20ff6c00084f71b3bde28992 (patch)
tree0ca169a413fedd944fcc2ac1df6272b6a4668f18
parentb3bc538df649c5b6bfaba697b70cf874da454c26 (diff)
downloadspack-e62ddcb5823133ce20ff6c00084f71b3bde28992.tar.gz
spack-e62ddcb5823133ce20ff6c00084f71b3bde28992.tar.bz2
spack-e62ddcb5823133ce20ff6c00084f71b3bde28992.tar.xz
spack-e62ddcb5823133ce20ff6c00084f71b3bde28992.zip
Add Rivet and YODA (#17372)
* Add Rivet and YODA * Add patches * Flake-8 * Set level for Rivet patches * Syntax fix * Fix dependencies of Rivet * Update var/spack/repos/builtin/packages/rivet/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
-rw-r--r--var/spack/repos/builtin/packages/rivet/package.py123
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch44
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch30
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch12
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch39
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch39
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch39
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch10
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch43
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch42
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch90
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch24
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch97
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch97
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch70
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/yoda/package.py84
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch50
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch50
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch72
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch22
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch50
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch11
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch23
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch11
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch11
30 files changed, 1238 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py
new file mode 100644
index 0000000000..8baf2c42ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/package.py
@@ -0,0 +1,123 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Rivet(AutotoolsPackage):
+ """Rivet - the particle-physics MC analysis toolkit"""
+
+ homepage = "https://rivet.hepforge.org/"
+ url = "https://rivet.hepforge.org/downloads/?f=Rivet-3.1.2.tar.bz2"
+
+ version('3.1.2', sha256='c041d09644f4eae7c212d82237033267fbc1583dfbb4e3e67377f86cece9577a')
+ version('3.1.1', sha256='7c98b26af5f859bc65200499d15765e4b056b4cf233b34176f27a7e6bc4cf9b1')
+ version('3.1.0', sha256='4e156daee5eb10bd1573ef32d4a6a6df74788cd9180fc977db93ef4cb281000c')
+ version('3.0.2', sha256='9624d6cdcad77eafde40312cf6a1c97f4263f22faf9244b198c140b2c256d2f3')
+ version('3.0.1', sha256='e7551168b86a05c9c029c319c313a0aa142a476195e7ff986c896c1b868f89dd')
+ version('3.0.0', sha256='3944434d3791dccb54f7b2257589df6252cc7c065ce9deb57fbef466ff9e62b1')
+ version('2.7.2b', sha256='e9f0a709f8226cde54f9406d36efab1e1b8ed0c6574fbcb1d72a186b09188106')
+ version('2.7.2', sha256='a6634537c005660e56514b70ab9efb9d466c50685d6fb45ed03e9e1988479f02')
+ version('2.7.1', sha256='b4145d8369b8a9fa0ada7ba2e5a2e9992d8e4a12ca4874d835246d2e708cbdef')
+ version('2.7.0', sha256='34ad6a0b47dc4736feac8580a275e8b3a46df8fbeefd91e813add0a1525aacaf')
+ version('2.6.2', sha256='9dde49d5c02038a295f03d2972f85be8746205bdb5ca1eab868b2c9129ade37a')
+ version('2.6.1', sha256='e490d1f35aafa3e175690ae92f862c07a5fe2c51f693c88c87789f0441c89022')
+ version('2.6.0', sha256='fb3229dccd31ea40b0af09974253073f6ad0a3a97e9a0cf44b53748ea8e2f900')
+ version('2.5.4', sha256='772252193698d994fd111f790e72a4024df7572d492e3d5a9e840a074c5527e2')
+ version('2.5.3', sha256='99e10330564ac479c6637d317c08882889a272db8ee204ad45a6ee1dcb291de4')
+ version('2.5.2', sha256='70aa27764a14159c94c0b753a0c3d3600ac669def398cb2d8a6c63ae17704f05')
+ version('2.5.1', sha256='14ee5828de217e96a30e666192515a2083afee030d81d36fc6bea948e9f7810a')
+ version('2.5.0', sha256='c59ff35715be0caf65d6ba808b3badad0f6f7e7758f2049fb6ba43ed579bd4af')
+ version('2.4.3', sha256='18aafecab6c3baeac871a9743946433c2dc01825d8fe291b157719a15c342682')
+ version('2.4.2', sha256='accb146f3082719781a51eec879427c31401577c44f60b27ec8450102fe68aff')
+ version('2.4.1', sha256='c14f0f58d1792d84d62c62b44ebb94db004776feba83fd8186bba898d55123cf')
+ version('2.4.0', sha256='5ee2f34a277ed058b8aef750d946b40d4cf781023b9adab03ca95e803a39fb06')
+ version('2.3.0', sha256='dd07702981d586e4b97b0fa56ae08cd08a631a952322a9b52e7622a46a7741ab')
+ version('2.2.1', sha256='9e64ba19d567bdf4d0cc42b435491c4363b5fec90170d034445a99a1e752b691')
+ version('2.2.0', sha256='3bdafe2007ff54c4734e0c8bc6ba9dc97028d4c41d538201b9582a869af8ae1a')
+ version('2.1.2', sha256='40a20c1ee186326e5bfd906e0bc88f16dc740551be9cc274e9a826873d9c1eed')
+ version('2.1.1', sha256='eefa936de6f6c34a6bab39899841f3189d7621c8ba227032f0f32e6e20dfcf85')
+ version('2.1.0', sha256='58a1ca7b5a47719933782c050e67d0eb3823a7384cfc3c434fece41724c307e6')
+ version('2.0.0', sha256='038f81f92fbba001ed23b56c1229a4f3b41e0c32e00bc92ea58d042909e3855a')
+ version('1.9.0', sha256='55ef552b351328c287194aa99fa2b797e6632dc3fa88dfccd58264602012e044')
+ version('1.8.3', sha256='aa82742fd4d7c68bfbef1367c4c605e06f9fed479a753db96aa6659407fcc4fd')
+ version('1.8.2', sha256='56be98d31693253543f3e657c8f8edc7979c89fdb0ede1bdddfb3a9f5d4cfc3a')
+ version('1.8.1', sha256='7e06d22350bec30220186e796caa93e9bfebd8d771a7efd35673897248437c61')
+ version('1.8.0', sha256='7b28f9163f74583b1542b87c48f28a3ad1338da6136d8e3ca0aeba21095f5fe0')
+ version('1.7.0', sha256='180741f590f210474b686d60241ad59e008221751ead21f0950c59aff93e54fd')
+ version('1.6.0', sha256='1affd9e779f48477402e4150f315b3179204cbbc920db2d0129cd9c38bd18b26')
+ version('1.5.1', sha256='9f24e9824286d5b0302c7e440f4803a8e3b8da50e1260e78c3b3c2eb587b317a')
+ version('1.5.0', sha256='b7fe63e8caacc5c038ab567fe505d275288eedaa1aed6c379057629eef126006')
+ version('1.4.0', sha256='067c94659bb7859904e20e72a676f94f103e6e012b7dba8071f51e8a6e624dbb')
+ version('1.3.0', sha256='5ce41c8492c2fcf809a7135bf8335a01a98ea85fb556b3d00bd4260151efd12f')
+ version('1.2.1', sha256='2d0380b819f778d8d9c2a462af90bd6a6188121e4edcc6202d936130b59bab17')
+ version('1.2.0', sha256='ff5869f6dc9465f429e54686e12c39becac57a83273542179a59bac7561b6404')
+ version('1.1.3', sha256='4be3cd9e6f808cdc5511991be2756f5fa838b6ecd01806fdbe7aec0aa382f946')
+ version('1.1.2', sha256='a15b5d3339481446dec1b719d7d531a87a2e9d11c9fe8044e270ea69611b07c8')
+ version('1.1.1', sha256='bd87fefee6bb8368216755342dc80ab3f8f3c813732dd03c6f94135d45f7036b')
+
+ depends_on('yoda', type=('build', 'run'), when='@2.0.0:')
+ depends_on('yoda@1.8.0:', type=('build', 'run'), when='@3.1.0:')
+
+ depends_on('hepmc', type=('build', 'run'))
+ depends_on('boost', when='@:2.5.0,3:', type=('build', 'run'))
+ depends_on('fastjet', type=('build', 'run'))
+ depends_on('gsl', type=('build', 'run'), when='@:2.6.0,2.6.2:')
+ depends_on('python', type=('build', 'run'))
+ depends_on('swig', type=('build', 'run'))
+ depends_on('yaml-cpp', when='@2.0.0:2.1.2', type=('build', 'run'))
+
+ patch('rivet-1.8.2.patch', when='@1.8.2', level=0)
+ patch('rivet-1.9.0.patch', when='@1.9.0', level=0)
+ patch('rivet-2.2.0.patch', when='@2.2.0', level=0)
+ patch('rivet-2.2.1.patch', when='@2.2.1', level=0)
+ patch('rivet-2.4.0.patch', when='@2.4.0', level=0)
+ patch('rivet-2.4.2.patch', when='@2.4.2', level=0)
+ patch('rivet-2.4.3.patch', when='@2.4.3', level=0)
+ patch('rivet-2.5.1.patch', when='@2.5.1', level=0)
+ patch('rivet-2.5.2.patch', when='@2.5.2', level=0)
+ patch('rivet-2.5.3.patch', when='@2.5.3', level=0)
+ patch('rivet-2.5.4.patch', when='@2.5.4', level=0)
+ patch('rivet-2.6.0.patch', when='@2.6.0', level=0)
+ patch('rivet-2.6.1.patch', when='@2.6.1', level=0)
+ patch('rivet-2.6.2.patch', when='@2.6.2', level=0)
+ patch('rivet-2.7.0.patch', when='@2.7.0', level=0)
+ patch('rivet-3.0.0.patch', when='@3.0.0', level=0)
+ patch('rivet-3.0.1.patch', when='@3.0.1', level=0)
+ patch('rivet-3.1.0.patch', when='@3.1.0', level=0)
+ patch('rivet-3.1.1.patch', when='@3.1.1', level=0)
+
+ @run_before('configure')
+ def copy_gsl_m4(self):
+ if self.spec.satisfies('@2.6.2:'):
+ copy('rivet/gsl.m4', 'm4/gsl.m4')
+
+ @property
+ def force_autoreconf(self):
+ return self.version >= Version('2.6.2')
+
+ def configure_args(self):
+ args = []
+ args += ['--with-hepmc=' + self.spec['hepmc'].prefix]
+
+ if self.spec.satisfies('@:1.999.999'):
+ args += ['--with-boost-incpath=' + self.spec['boost'].includes]
+ else:
+ if spec.satisfies('@:2.5.0,3:'):
+ args += ['--with-boost=' + self.spec['boost'].prefix]
+
+ args += ['--with-fastjet=' + self.spec['fastjet'].prefix]
+ if self.spec.satisfies('@2:'):
+ args += ['--with-yoda=' + self.spec['yoda'].prefix]
+
+ if self.spec.satisfies('@:2.6.0,2.6.2:'):
+ args += ['--with-gsl=' + self.spc['gsl'].prefix]
+
+ args += ['--disable-pdfmanual', '--enable-unvalidated']
+
+ if self.spec.satisfies('@2:'):
+ args += ['--enable-stdcxx11']
+
+ return args
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch
new file mode 100644
index 0000000000..95cbe774a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch
@@ -0,0 +1,44 @@
+--- src/Tools/Makefile.in.orig 2013-05-15 14:02:25.000000000 +0200
++++ src/Tools/Makefile.in 2013-05-15 14:03:14.000000000 +0200
+@@ -79,7 +79,7 @@
+ libRivetTools_la-ParticleIdUtils.lo \
+ libRivetTools_la-tinyxml.lo libRivetTools_la-tinyxmlerror.lo \
+ libRivetTools_la-tinyxmlparser.lo \
+- libRivetTools_la-BinnedHistogram.lo \
++# libRivetTools_la-BinnedHistogram.lo \
+ libRivetTools_la-mt2_bisect.lo libRivetTools_la-RivetMT2.lo \
+ libRivetTools_la-BinnedHistogram.lo
+ libRivetTools_la_OBJECTS = $(am_libRivetTools_la_OBJECTS)
+@@ -371,7 +371,7 @@
+ TinyXML/tinyxml.cpp \
+ TinyXML/tinyxmlerror.cpp \
+ TinyXML/tinyxmlparser.cpp \
+- BinnedHistogram.cc \
++# BinnedHistogram.cc \
+ mt2_bisect.cc \
+ RivetMT2.cc \
+ BinnedHistogram.cc
+--- include/LWH/Axis.h.orig 2013-05-14 18:30:02.000000000 +0200
++++ include/LWH/Axis.h 2013-05-14 18:31:35.000000000 +0200
+
+@@ -115,7 +115,7 @@
+ *
+ */
+ int coordToIndex(double coord) const {
+- assert( ! isnan(coord) );
++ assert( ! std::isnan(coord) );
+ if ( coord >= upper ) return OVERFLOW_BIN;
+ else if ( coord < lower ) return UNDERFLOW_BIN;
+ else return int((coord - lower)/binWidth(0));
+
+--- src/Tools/Makefile.am.orig 2013-05-15 13:14:11.000000000 +0200
++++ src/Tools/Makefile.am 2013-05-15 13:16:53.000000000 +0200
+@@ -14,7 +14,7 @@
+ TinyXML/tinyxml.cpp \
+ TinyXML/tinyxmlerror.cpp \
+ TinyXML/tinyxmlparser.cpp \
+- BinnedHistogram.cc \
++# BinnedHistogram.cc \
+ mt2_bisect.cc \
+ RivetMT2.cc \
+ BinnedHistogram.cc
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch
new file mode 100644
index 0000000000..9d274550b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch
@@ -0,0 +1,30 @@
+--- bin/rivet-buildplugin.in.orig 2014-09-02 11:22:32.000000000 +0200
++++ bin/rivet-buildplugin.in 2014-09-02 11:26:31.000000000 +0200
+@@ -62,6 +62,7 @@
+ mycppflags=""
+ prefix="@prefix@"
+ irivet="@includedir@"
++exec_prefix=@exec_prefix@
+ test -n "$irivet" && mycppflags="$mycppflags -I${irivet}"
+ ihepmc="@HEPMCINCPATH@"
+ test -n "$ihepmc" && mycppflags="$mycppflags -I${ihepmc}"
+@@ -74,7 +75,7 @@
+
+ ## Get Rivet system linker flags (duplicating that in rivet-config.in)
+ myldflags=""
+-lrivet="@libdir@"
++lrivet="${exec_prefix}/lib"
+ test -n "$lrivet" && myldflags="$myldflags -L${lrivet}"
+ lhepmc="@HEPMCLIBPATH@"
+ test -n "$lhepmc" && myldflags="$myldflags -L${lhepmc}"
+--- bin/rivet-findid 2015-06-23 09:15:28.000000001 +0200
++++ bin/rivet-findid 2015-06-23 09:15:38.000000001 +0200
+@@ -170,7 +170,7 @@
+ if k=='code':
+ entries[v] = c.text
+ if entries.get('9') == 'SPIRESTeX':
+- result['bibtex'] = entries['z']
++ result['bibtex'] = entries['a']
+
+ if i.get('tag') == '037':
+ entries = {}
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch
new file mode 100644
index 0000000000..ac9268a252
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-findid 2015-06-23 09:39:49.000000001 +0200
++++ bin/rivet-findid 2015-06-23 09:40:09.000000001 +0200
+@@ -160,7 +160,7 @@
+ if k=='code':
+ entries[v] = c.text
+ if entries.get('9') == 'SPIRESTeX':
+- result['bibtex'] = entries['z']
++ result['bibtex'] = entries['a']
+
+ if i.get('tag') == '037':
+ entries = {}
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch
new file mode 100644
index 0000000000..a9fceb92c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-findid 2015-06-23 09:40:38.000000001 +0200
++++ bin/rivet-findid 2015-06-23 09:40:45.000000001 +0200
+@@ -160,7 +160,7 @@
+ if k=='code':
+ entries[v] = c.text
+ if entries.get('9') == 'SPIRESTeX':
+- result['bibtex'] = entries['z']
++ result['bibtex'] = entries['a']
+
+ if i.get('tag') == '037':
+ entries = {}
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch
new file mode 100644
index 0000000000..7ce4f1dd55
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch
@@ -0,0 +1,12 @@
+--- configure 2015-10-07 12:35:57.000000000 +0300
++++ configure 2015-10-09 16:18:02.432562522 +0300
+@@ -18728,7 +18728,7 @@
+ ## Boost utility library
+ echo "$as_me: this is boost.m4 serial 24" >&5
+ boost_save_IFS=$IFS
+-boost_version_req=1.55.0
++boost_version_req=1.53.0
+ IFS=.
+ set x $boost_version_req 0 0 0
+ IFS=$boost_save_IFS
+
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch
new file mode 100644
index 0000000000..98436c5acf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch
@@ -0,0 +1,39 @@
+--- configure.orig 2016-09-30 14:12:42.317369715 +0200
++++ configure 2016-09-30 14:17:21.690229397 +0200
+@@ -19644,11 +19644,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -19676,15 +19680,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"`
+
+- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch
new file mode 100644
index 0000000000..9d006df8c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch
@@ -0,0 +1,39 @@
+--- configure.orig 2016-06-28 23:57:35.000000000 +0200
++++ configure 2016-09-19 12:44:23.411192406 +0200
+@@ -19643,11 +19643,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -19675,15 +19679,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"`
+
+- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch
new file mode 100644
index 0000000000..dc5f484203
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch
@@ -0,0 +1,39 @@
+--- configure.orig 2016-09-30 09:25:10.000000000 +0200
++++ configure 2016-09-30 09:27:01.000000000 +0200
+@@ -19681,11 +19681,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -19713,15 +19717,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"`
+
+- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch
new file mode 100644
index 0000000000..9f536d3751
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch
@@ -0,0 +1,10 @@
+--- ./include/Rivet/Tools/RivetSTL.hh.orig 2017-08-03 11:49:33.005431033 +0200
++++ ./include/Rivet/Tools/RivetSTL.hh 2017-08-03 11:50:13.817841608 +0200
+@@ -19,6 +19,7 @@
+ #include <iomanip>
+ #include <cmath>
+ #include <limits>
++#include <functional>
+
+
+ #ifndef foreach
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch
new file mode 100644
index 0000000000..bebf5c73ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch
@@ -0,0 +1,43 @@
+--- include/Rivet/Config/RivetCommon.hh.orig 2017-05-31 12:32:04.547062840 +0200
++++ include/Rivet/Config/RivetCommon.hh 2017-05-31 12:32:12.379054886 +0200
+@@ -2,6 +2,7 @@
+ #define RIVET_RivetCommon_HH
+
+ // Convenience build-setup header for Rivet internal use
++#include <functional>
+
+ // Automatic build info from autoconf
+ #include "Rivet/Config/RivetConfig.hh"
+--- include/Rivet/Run.hh.orig 2017-05-31 12:36:00.225823486 +0200
++++ include/Rivet/Run.hh 2017-05-31 12:36:18.653804770 +0200
+@@ -4,6 +4,7 @@
+
+ #include "Rivet/Tools/RivetSTL.hh"
+ #include "Rivet/Tools/RivetHepMC.hh"
++#include <functional>
+
+ namespace Rivet {
+
+--- include/Rivet/Particle.hh.orig 2017-05-31 12:39:14.273626411 +0200
++++ include/Rivet/Particle.hh 2017-05-31 14:00:02.387272379 +0200
+@@ -11,6 +11,8 @@
+ // NOTE: Rivet/Tools/ParticleUtils.hh included at the end
+ #include "fastjet/PseudoJet.hh"
+
++#include <functional>
++
+ namespace Rivet {
+
+
+--- include/Rivet/Tools/RivetSTL.hh.orig 2017-05-31 14:05:28.368975178 +0200
++++ include/Rivet/Tools/RivetSTL.hh 2017-05-31 14:05:44.432960512 +0200
+@@ -1,6 +1,8 @@
+ #ifndef RIVET_RivetSTL_HH
+ #define RIVET_RivetSTL_HH
+
++#include <functional>
++
+ #include <string>
+ #include <vector>
+ #include <set>
+
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch
new file mode 100644
index 0000000000..af338da6d5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch
@@ -0,0 +1,42 @@
+patch written by GENSER to avoid system libraries of GLS coming from fastjet-config
+--- include/Rivet/Tools/JetUtils.hh
++++ include/Rivet/Tools/JetUtils.hh
+@@ -47,4 +47,5 @@
+ struct BoolJetFunctor {
+ virtual bool operator()(const Jet& p) const = 0;
++ virtual ~BoolJetFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleBaseUtils.hh
++++ include/Rivet/Tools/ParticleBaseUtils.hh
+@@ -23,4 +23,5 @@
+ struct BoolParticleBaseFunctor {
+ virtual bool operator()(const ParticleBase& p) const = 0;
++ virtual ~BoolParticleBaseFunctor() {}
+ };
+
+@@ -397,4 +398,5 @@
+ struct DoubleParticleBaseFunctor {
+ virtual double operator()(const ParticleBase& p) const = 0;
++ virtual ~DoubleParticleBaseFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleUtils.hh
++++ include/Rivet/Tools/ParticleUtils.hh
+@@ -486,4 +486,5 @@
+ struct BoolParticleFunctor {
+ virtual bool operator()(const Particle& p) const = 0;
++ virtual ~BoolParticleFunctor() {}
+ };
+
+--- src/Makefile.in.orig 2018-01-30 13:52:58.641670247 +0100
++++ src/Makefile.in 2018-01-30 13:53:19.377586118 +0100
+@@ -449,7 +449,7 @@
+ libRivet_la_SOURCES =
+ libRivet_la_LDFLAGS = -export-dynamic -avoid-version -L$(YODALIBPATH) -L$(HEPMCLIBPATH)
+ libRivet_la_LIBADD = Core/libRivetCore.la Projections/libRivetProjections.la Tools/libRivetTools.la $(ANA_LIBADD) \
+- -lYODA -lHepMC -ldl -lm $(FASTJETCONFIGLIBADD) $(GSL_LDFLAGS)
++ -lYODA -lHepMC -ldl -lm $(GSL_LDFLAGS) $(FASTJETCONFIGLIBADD)
+
+ all: all-recursive
+
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch
new file mode 100644
index 0000000000..2cb7cab14b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch
@@ -0,0 +1,90 @@
+--- include/Rivet/Tools/JetUtils.hh
++++ include/Rivet/Tools/JetUtils.hh
+@@ -47,4 +47,5 @@
+ struct BoolJetFunctor {
+ virtual bool operator()(const Jet& p) const = 0;
++ virtual ~BoolJetFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleBaseUtils.hh
++++ include/Rivet/Tools/ParticleBaseUtils.hh
+@@ -23,4 +23,5 @@
+ struct BoolParticleBaseFunctor {
+ virtual bool operator()(const ParticleBase& p) const = 0;
++ virtual ~BoolParticleBaseFunctor() {}
+ };
+
+@@ -397,4 +398,5 @@
+ struct DoubleParticleBaseFunctor {
+ virtual double operator()(const ParticleBase& p) const = 0;
++ virtual ~DoubleParticleBaseFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleUtils.hh
++++ include/Rivet/Tools/ParticleUtils.hh
+@@ -486,4 +486,5 @@
+ struct BoolParticleFunctor {
+ virtual bool operator()(const Particle& p) const = 0;
++ virtual ~BoolParticleFunctor() {}
+ };
+
+--- analyses/Makefile.in.orig 2018-06-28 09:22:46.722022129 +0200
++++ analyses/Makefile.in 2018-06-28 10:11:59.772373529 +0200
+@@ -523,21 +523,21 @@
+ @ENABLE_ANALYSES_TRUE@%.so:
+ @ENABLE_ANALYSES_TRUE@ @+echo && RIVET_BUILDPLUGIN_BEFORE_INSTALL=1 bash $(top_builddir)/bin/rivet-buildplugin -j2 $@ $^ -I$(top_builddir)/include
+
+-@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell ls $(srcdir)/pluginALICE/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell ls $(srcdir)/pluginATLAS/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell ls $(srcdir)/pluginCDF/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell ls $(srcdir)/pluginCMS/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell ls $(srcdir)/pluginD0/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell ls $(srcdir)/pluginHERA/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell ls $(srcdir)/pluginLEP/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell ls $(srcdir)/pluginLHCb/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell ls $(srcdir)/pluginLHCf/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell ls $(srcdir)/pluginMC/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell ls $(srcdir)/pluginMisc/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell ls $(srcdir)/pluginPetra/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell ls $(srcdir)/pluginRHIC/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell ls $(srcdir)/pluginSPS/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell ls $(srcdir)/pluginTOTEM/*.cc)
++@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell find $(srcdir)/pluginALICE/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell find $(srcdir)/pluginATLAS/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell find $(srcdir)/pluginCDF/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell find $(srcdir)/pluginCMS/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell find $(srcdir)/pluginD0/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell find $(srcdir)/pluginHERA/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell find $(srcdir)/pluginLEP/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell find $(srcdir)/pluginLHCb/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell find $(srcdir)/pluginLHCf/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell find $(srcdir)/pluginMC/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell find $(srcdir)/pluginMisc/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell find $(srcdir)/pluginPetra/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell find $(srcdir)/pluginRHIC/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell find $(srcdir)/pluginSPS/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell find $(srcdir)/pluginTOTEM/ -name '*.cc' -not -name 'tmp*')
+
+ @ENABLE_ANALYSES_TRUE@all-local: $(PLUGIN_LIBS) $(PLUGIN_DATAFILES)
+ @ENABLE_ANALYSES_TRUE@ mkdir -p $(builddir)/data
+--- analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc.orig 2018-07-02 10:43:08.656094368 +0200
++++ analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc 2018-07-02 10:44:04.920361160 +0200
+@@ -2,6 +2,7 @@
+ #include "Rivet/Analysis.hh"
+ #include "Rivet/Projections/FinalState.hh"
+ #include "Rivet/Projections/PromptFinalState.hh"
++#include "Rivet/Projections/ChargedFinalState.hh"
+ #include "Rivet/Projections/FastJets.hh"
+ #include "Rivet/Projections/Sphericity.hh"
+ #include "Rivet/Projections/SmearedParticles.hh"
+--- include/Rivet/AnalysisHandler.hh.orig 2018-07-10 10:39:21.719532209 +0200
++++ include/Rivet/AnalysisHandler.hh 2018-07-10 10:39:29.225608530 +0200
+@@ -17,7 +17,7 @@
+
+ // Needed to make smart pointers compare equivalent in the STL set
+ struct CmpAnaHandle {
+- bool operator() (const AnaHandle& a, const AnaHandle& b) {
++ bool operator() (const AnaHandle& a, const AnaHandle& b) const {
+ return a.get() < b.get();
+ }
+ };
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch
new file mode 100644
index 0000000000..878e72d739
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch
@@ -0,0 +1,24 @@
+--- doc/Makefile.in.orig 2018-10-17 18:29:15.568630034 +0200
++++ doc/Makefile.in 2018-10-17 18:31:45.829375147 +0200
+@@ -594,15 +594,15 @@
+ .PRECIOUS: Makefile
+
+ @ENABLE_PYEXT_TRUE@analyses.html: $(top_srcdir)/analyses $(srcdir)/mk-analysis-html
+-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \
+-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \
+ @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \
+-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-html
++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-html
+ @ENABLE_PYEXT_TRUE@analyses.json: $(top_srcdir)/analyses $(srcdir)/mk-analysis-json
+-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \
+-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \
+ @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \
+-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-json
++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-json
+
+ @WITH_ASCIIDOC_TRUE@compare-histos.html: compare-histos.txt
+ @WITH_ASCIIDOC_TRUE@ asciidoc -a toc compare-histos.txt
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch
new file mode 100644
index 0000000000..a327f481d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch
@@ -0,0 +1,97 @@
+--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100
++++ configure.ac 2019-01-23 11:02:26.704761899 +0100
+@@ -151,12 +151,12 @@
+
+
+ # ## GNU Scientific Library
+-# AC_SEARCH_GSL
+-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
+-# oldCPPFLAGS=$CPPFLAGS
+-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
+-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
+-# CPPFLAGS=$oldCPPFLAGS
++AC_SEARCH_GSL
++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
++oldCPPFLAGS=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
++CPPFLAGS=$oldCPPFLAGS
+
+
+ ## Disable build/install of standard analyses
+@@ -256,7 +256,7 @@
+ ## Set default build flags
+ AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include"
+ #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3"
+-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
+ dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)"
+--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100
++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100
+@@ -82,8 +82,8 @@
+ test -n "$iyoda" && OUT="$OUT -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && OUT="$OUT -I${ifastjet}"
+- # igsl="@GSLINCPATH@"
+- # test -n "$igsl" && OUT="$OUT -I${igsl}"
++ igsl="@GSLINCPATH@"
++ test -n "$igsl" && OUT="$OUT -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && OUT="$OUT ${iboost}"
+ fi
+@@ -98,8 +98,8 @@
+ test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA"
+ lfastjet="@FASTJETCONFIGLIBADD@"
+ test -n "$lfastjet" && OUT="$OUT ${lfastjet}"
+- # lgsl="@GSLLIBPATH@"
+- # test -n "$lgsl" && OUT="$OUT -L${lgsl}"
++ lgsl="@GSLLIBPATH@"
++ test -n "$lgsl" && OUT="$OUT -L${lgsl}"
+ fi
+
+ tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>')
+--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100
++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100
+@@ -169,8 +169,8 @@
+ test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}"
+-# igsl="@GSLINCPATH@"
+-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
++igsl="@GSLINCPATH@"
++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && mycppflags="$mycppflags ${iboost}"
+
+--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100
++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100
+@@ -29,11 +29,11 @@
+
+
+ ## Be careful with extracting the GSL path from the flags string
+-# import re
+-# re_libdirflag = re.compile(r".*-L\s*(\S+).*")
+-# re_match = re_libdirflag.search("@GSL_LDFLAGS@")
+-# if re_match:
+- # lookupdirs.append( re_match.group(1) )
++import re
++re_libdirflag = re.compile(r".*-L\s*(\S+).*")
++re_match = re_libdirflag.search("@GSL_LDFLAGS@")
++if re_match:
++ lookupdirs.append( re_match.group(1) )
+
+ ## A helper function
+ def ext(name, depends=[], statics=[]):
+@@ -47,8 +47,8 @@
+ language="c++",
+ # depends=depends,
+ include_dirs=[incdir1, incdir2, incdir3, incdir4],
+- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
+- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
+ extra_link_args=BASE_LINK_ARGS,
+ library_dirs=lookupdirs,
+ runtime_library_dirs=lookupdirs[1:],
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch
new file mode 100644
index 0000000000..a327f481d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch
@@ -0,0 +1,97 @@
+--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100
++++ configure.ac 2019-01-23 11:02:26.704761899 +0100
+@@ -151,12 +151,12 @@
+
+
+ # ## GNU Scientific Library
+-# AC_SEARCH_GSL
+-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
+-# oldCPPFLAGS=$CPPFLAGS
+-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
+-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
+-# CPPFLAGS=$oldCPPFLAGS
++AC_SEARCH_GSL
++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
++oldCPPFLAGS=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
++CPPFLAGS=$oldCPPFLAGS
+
+
+ ## Disable build/install of standard analyses
+@@ -256,7 +256,7 @@
+ ## Set default build flags
+ AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include"
+ #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3"
+-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
+ dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)"
+--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100
++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100
+@@ -82,8 +82,8 @@
+ test -n "$iyoda" && OUT="$OUT -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && OUT="$OUT -I${ifastjet}"
+- # igsl="@GSLINCPATH@"
+- # test -n "$igsl" && OUT="$OUT -I${igsl}"
++ igsl="@GSLINCPATH@"
++ test -n "$igsl" && OUT="$OUT -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && OUT="$OUT ${iboost}"
+ fi
+@@ -98,8 +98,8 @@
+ test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA"
+ lfastjet="@FASTJETCONFIGLIBADD@"
+ test -n "$lfastjet" && OUT="$OUT ${lfastjet}"
+- # lgsl="@GSLLIBPATH@"
+- # test -n "$lgsl" && OUT="$OUT -L${lgsl}"
++ lgsl="@GSLLIBPATH@"
++ test -n "$lgsl" && OUT="$OUT -L${lgsl}"
+ fi
+
+ tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>')
+--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100
++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100
+@@ -169,8 +169,8 @@
+ test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}"
+-# igsl="@GSLINCPATH@"
+-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
++igsl="@GSLINCPATH@"
++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && mycppflags="$mycppflags ${iboost}"
+
+--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100
++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100
+@@ -29,11 +29,11 @@
+
+
+ ## Be careful with extracting the GSL path from the flags string
+-# import re
+-# re_libdirflag = re.compile(r".*-L\s*(\S+).*")
+-# re_match = re_libdirflag.search("@GSL_LDFLAGS@")
+-# if re_match:
+- # lookupdirs.append( re_match.group(1) )
++import re
++re_libdirflag = re.compile(r".*-L\s*(\S+).*")
++re_match = re_libdirflag.search("@GSL_LDFLAGS@")
++if re_match:
++ lookupdirs.append( re_match.group(1) )
+
+ ## A helper function
+ def ext(name, depends=[], statics=[]):
+@@ -47,8 +47,8 @@
+ language="c++",
+ # depends=depends,
+ include_dirs=[incdir1, incdir2, incdir3, incdir4],
+- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
+- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
+ extra_link_args=BASE_LINK_ARGS,
+ library_dirs=lookupdirs,
+ runtime_library_dirs=lookupdirs[1:],
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch
new file mode 100644
index 0000000000..229bfb4acc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch
@@ -0,0 +1,70 @@
+--- bin/rivet-buildplugin.in.orig Mon Jul 08 15:16:09 2019 +0100
++++ bin/rivet-buildplugin.in Wed Jul 10 16:15:41 2019 +0100
+@@ -172,4 +172,6 @@
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}"
++ifjcontrib="@FJCONTRIBCPPFLAGS@"
++test -n "$ifjcontrib" && mycppflags="$mycppflags ${ifjcontrib}"
+
+ ## Get Rivet system linker flags (duplicating that in rivet-config.in)
+--- bin/rivet-config.in.orig Mon Jul 08 15:16:09 2019 +0100
++++ bin/rivet-config.in Wed Jul 10 16:15:41 2019 +0100
+@@ -83,4 +83,6 @@
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && OUT="$OUT -I${ifastjet}"
++ ifjcontrib="@FJCONTRIBCPPFLAGS@"
++ test -n "$ifjcontrib" && OUT="$OUT ${ifjcontrib}"
+ fi
+
+--- configure.ac.orig Mon Jul 08 15:16:09 2019 +0100
++++ configure.ac Wed Jul 10 16:15:41 2019 +0100
+@@ -197,10 +197,26 @@
+ FASTJETLIBADD="$FASTJETLIBADD -lEECambridgePlugin -lJadePlugin"
+ fi;
++
++## FastJet contrib (allow paths specified separately from FJ)
++AC_ARG_WITH([fjcontrib],
++ [AC_HELP_STRING(--with-fjcontrib, path to FastJet Contrib @<:@$FASTJETPATH@:>@)], [], [])
++if test -n "$with_fjcontrib"; then
++ AC_MSG_NOTICE([FastJet Contrib base path given: $with_fjcontrib])
++ FJCONTRIBINCPATH=$with_fjcontrib/include
++ FJCONTRIBLIBPATH=$with_fjcontrib/lib
++ FJCONTRIBCPPFLAGS=-I$FJCONTRIBINCPATH
++ AC_SUBST(FJCONTRIBINCPATH)
++ AC_SUBST(FJCONTRIBLIBPATH)
++ AC_SUBST(FJCONTRIBCPPFLAGS)
++ FASTJETLIBADD="-L$FJCONTRIBLIBPATH $FASTJETLIBADD"
++fi
+ FASTJETLIBADD="$FASTJETLIBADD -lfastjetcontribfragile -lfastjettools"
++
++## Test FastJet + Contrib
++## Check for FastJet headers that require the --enable-all(cxx)plugins option
+ AC_MSG_NOTICE([FastJet LIBADD = $FASTJETLIBADD])
+ AC_SUBST(FASTJETLIBADD)
+-# Check for FastJet headers that require the --enable-all(cxx)plugins option
+ oldCPPFLAGS=$CPPFLAGS
+-CPPFLAGS="$CPPFLAGS -I$FASTJETINCPATH"
++CPPFLAGS="$CPPFLAGS $FASTJETCPPFLAGS $FJCONTRIBCPPFLAGS"
+ oldLIBS=$LIBS
+ LIBS="$LIBS $FASTJETLIBADD"
+@@ -339,5 +355,4 @@
+ #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3"
+ #AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
+-dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)"
+ if test x$use_hepmc2 = xyes ; then
+@@ -346,5 +361,5 @@
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMC3INCPATH)"
+ fi
+-AM_CPPFLAGS="$AM_CPPFLAGS -I\$(FASTJETINCPATH)"
++AM_CPPFLAGS="$AM_CPPFLAGS \$(FASTJETCPPFLAGS) \$(FJCONTRIBCPPFLAGS)"
+ AC_CEDAR_CHECKCXXFLAG([-pedantic], [AM_CXXFLAGS="$AM_CXXFLAGS -pedantic"])
+ AC_CEDAR_CHECKCXXFLAG([-Wall], [AM_CXXFLAGS="$AM_CXXFLAGS -Wall"])
+--- src/AnalysisTools/Makefile.am.org Mon Jul 08 15:16:09 2019 +0100
++++ src/AnalysisTools/Makefile.am Wed Jul 10 16:15:41 2019 +0100
+@@ -6,4 +6,4 @@
+ MC_JetSplittings.cc
+
+-libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH)
++libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH) -L$(FJCONTRIBLIBPATH)
+ libRivetAnalysisTools_la_LIBS = $(FASTJETLIBADD)
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch
new file mode 100644
index 0000000000..31bdcbc7e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-buildplugin.in.orig 2020-04-30 14:41:44.988555918 +0200
++++ bin/rivet-buildplugin.in 2020-04-30 14:42:21.301319083 +0200
+@@ -249,7 +249,7 @@
+ srcnames[$idx]="$tmpfile"
+ fi
+ done
+-objnames=("${srcnames[@]/.cc/.o}")
++objnames=("${srcnames[@]/%.cc/.o}")
+
+ if [[ -z "$debug" ]]; then silencer="@"; fi
+ tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX)
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch
new file mode 100644
index 0000000000..ff09f52862
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-build.in.orig 2020-04-30 11:11:53.820773774 +0200
++++ bin/rivet-build.in 2020-04-30 11:12:32.766024110 +0200
+@@ -249,7 +249,7 @@
+ srcnames[$idx]="$tmpfile"
+ fi
+ done
+-objnames=("${srcnames[@]/.cc/.o}")
++objnames=("${srcnames[@]/%.cc/.o}")
+
+ if [[ -z "$debug" ]]; then silencer="@"; fi
+ tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX)
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch
new file mode 100644
index 0000000000..687d22819a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch
@@ -0,0 +1,11 @@
+--- configure.ac.orig 2020-05-12 11:26:03.482506197 +0200
++++ configure.ac 2020-05-12 11:54:55.569077342 +0200
+@@ -211,7 +211,7 @@
+ if test "$fjmajor" -lt 3; then
+ AC_MSG_ERROR([FastJet version 3.0.0 or later is required])
+ fi
+- FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs| tr ' ' '\n' | grep -v gcc | tr '\n' ' ')"
++ FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs)"
+ else
+ FASTJETLIBADD="-L$FASTJETLIBPATH -l$FASTJETLIBNAME"
+ FASTJETLIBADD="$FASTJETLIBADD -lSISConePlugin -lsiscone -lsiscone_spherical"
diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py
new file mode 100644
index 0000000000..21ebb020d0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/package.py
@@ -0,0 +1,84 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Yoda(AutotoolsPackage):
+ """YODA - Yet more Objects for Data Analysis"""
+
+ homepage = "https://yoda.hepforge.org/"
+ url = "https://yoda.hepforge.org/downloads/?f=YODA-1.8.3.tar.bz2"
+
+ version('1.8.3', sha256='d9dd0ea5e0f630cdf4893c09a40c78bd44455777c2125385ecc26fa9a2acba8a')
+ version('1.8.2', sha256='89558c11cf9b88b0899713e5b4bf8781fdcecc480ff155985ebbf148c6d80bdb')
+ version('1.8.1', sha256='51472e12065b9469f13906f0dc609e036d0c1dbd2a8e445e7d654aba73660112')
+ version('1.8.0', sha256='82c62bbaedb4b6b7d50cd42ce5409d453d46c1cc6724047db5efa74d34dd6dc5')
+ version('1.7.7', sha256='cfb64b099a79ec4d138792f0b464a8fbb04c4345143f77bbdca07acb744628ce')
+ version('1.7.6', sha256='864a1459c82676c991fcaed931263a415e815e3c9dc2cad2f94bda6fa4d112e5')
+ version('1.7.5', sha256='7b1dc7bb380d0fbadce12072f5cc21912c115e826182a3922d864e7edea131db')
+ version('1.7.4', sha256='3df316b89e9c0052104f8956e4f7d26c0b0b05cdace7d908be35c383361e3a71')
+ version('1.7.3', sha256='ebf6094733823e9cc2d1586aff06db2d8999c74a47e666baf305322f62c48058')
+ version('1.7.2', sha256='7f093cf947824ec118767c7c1999a50ea9343c173cf8c5062e3800ba54c2943e')
+ version('1.7.1', sha256='edd7971ecd272314309c800395200b07cf68547cbac3378a02d0b8c9ac03027b')
+ version('1.7.0', sha256='b3d6bfb0c52ed87cd240cee5e93e09102832d9ef32505d7275f4d3191a35ce3b')
+ version('1.6.7', sha256='2abf378573832c201bc6a9fecfff5b2006fc98c7a272540326cda8eb5bd95e16')
+ version('1.6.6', sha256='cf172a496d9108b93420530ea91055d07ecd514d2894d78db46b806530e91d21')
+ version('1.6.5', sha256='1477fe754cfe2e4e06aa363a773accf18aab960a8b899968b77834368cac14c5')
+ version('1.6.4', sha256='4c01f43c18b7b2e71f61dea0bb8c6fdc099c8e1a66256c510652884c4ffffbca')
+ version('1.6.3', sha256='1dd7e334fe54a05ff911d9e227d395abc5efd29e29d60187a036b2201f97da19')
+ version('1.6.2', sha256='5793cd1320694118423888801ca520f2719565fde04699ee69e1751f47cb57a8')
+ version('1.6.1', sha256='ec3f4cc4eb57f94fb431cc37db10eb831f025df95ffd9e516b8009199253c62b')
+ version('1.6.0', sha256='2920ef2588268484b650dc08438664a3539b79c65a9e80d58e3771bb699e2a6b')
+ version('1.5.9', sha256='1a19cc8c34c08f1797a93d355250e682eb85d62d4ab277b6714d7873b4bdde75')
+ version('1.5.8', sha256='011c5be5cc565f8baf02e7ebbe57a57b4d70dc6a528d5b0102700020bbf5a973')
+ version('1.5.7', sha256='f775df11b034154b8f5d43f12007692c3314672e60d3e554b3928fe5b0f00c29')
+ version('1.5.6', sha256='050e17b1b80658213281a2e4112dfecc0096f01f269cd739d601b2fd0e790a0c')
+ version('1.5.5', sha256='ce45df6248c6c50633953048240513dc52ca5c9144ef69ea72ada2df23bc4918')
+ version('1.5.4', sha256='c41853a1f3aa0794875ae09c1ba4348942eb890e798ac7cee6e3505a9b68b678')
+ version('1.5.3', sha256='1220ac0ae204c3ed6b22a6a35c30d9b5c1ded35a1054cff131861b4a919d4904')
+ version('1.5.2', sha256='ec113c53a6174b174aaea8f45802cc419184ce056123b93ab8d3f80fc1bd4986')
+ version('1.5.1', sha256='a8b088b3ede67d560e40f91f4f99be313f21841c46ce2f657af7692a7bbe3276')
+ version('1.5.0', sha256='2c2b77344854fac937a8ef07c0928c50829ff4c69bcad6e0afb92da611b7dd18')
+ version('1.4.0', sha256='e76a129f7c2b72b53525fe0b712606eeeab0dc145daa070ebf0728f0384eaf48')
+ version('1.3.1', sha256='274e196d009e3aac6dd1f2db876de9613ca1a3c21ec3364bc3662f5493bc9747')
+ version('1.3.0', sha256='d63197d5940b481ecb06cf4703d9c0b49388f32cad61ccae580d1b80312bd215')
+ version('1.2.1', sha256='e86964e91e4fbbba443d2848f55c028001de4713dcc64c40339389de053e7d8b')
+ version('1.2.0', sha256='143fa86cd7965d26d3897a5752307bfe08f4866c2f9a9f226a393127d19ee353')
+ version('1.1.0', sha256='5d2e8f3c1cddfb59fe651931c7c605fe0ed067864fa86047aed312c6a7938e01')
+ version('1.0.7', sha256='145c27d922c27a4e1d6d50030f4ddece5f03d6c309a5e392a5fcbb5e83e747ab')
+ version('1.0.6', sha256='357732448d67a593e5ff004418f2a2a263a1401ffe84e021f8a714aa183eaa21')
+ version('1.0.5', sha256='ba72bc3943a1b39fa63900570948199cf5ed5c7523f2c4af4740e51b098f1794')
+ version('1.0.4', sha256='697fe397c69689feecb2a731e19b2ff85e19343b8198c4f18a7064c4f7123950')
+ version('1.0.3', sha256='6a1d1d75d9d74da457726ea9463c1b0b6ba38d4b43ef54e1c33f885e70fdae4b')
+
+ variant("root", default=False, description="Enable ROOT interface")
+
+ depends_on('python', type=('build', 'run'))
+ depends_on('py-future', type=('build', 'run'))
+ depends_on('boost', when='@:1.6.0', type=('build', 'run'))
+ depends_on('py-cython', type='build')
+ depends_on('py-matplotlib', when='@1.3.0:', type=('build', 'run'))
+ depends_on('root', type=('build', 'run'), when='+root')
+
+ patch('yoda-1.5.5.patch', level=0, when='@1.5.5')
+ patch('yoda-1.5.9.patch', level=0, when='@1.5.9')
+ patch('yoda-1.6.1.patch', level=0, when='@1.6.1')
+ patch('yoda-1.6.2.patch', level=0, when='@1.6.2')
+ patch('yoda-1.6.3.patch', level=0, when='@1.6.3')
+ patch('yoda-1.6.4.patch', level=0, when='@1.6.4')
+ patch('yoda-1.6.5.patch', level=0, when='@1.6.5')
+ patch('yoda-1.6.6.patch', level=0, when='@1.6.6')
+ patch('yoda-1.6.7.patch', level=0, when='@1.6.7')
+
+ def configure_args(self):
+ args = []
+ if self.spec.satisfies('@:1.6.0'):
+ args += '--with-boost=' + self.spec['boost'].prefix
+
+ if '+root' in spec:
+ args += '--enable-root'
+
+ return args
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch
new file mode 100644
index 0000000000..ba86d4cc31
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch
@@ -0,0 +1,50 @@
+--- configure.orig 2016-09-30 08:52:56.000000000 +0200
++++ configure 2016-09-30 08:56:39.000000000 +0200
+@@ -16568,11 +16568,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16600,15 +16604,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-30 08:57:23.000000000 +0200
+ +++ pyext/setup.py.in 2016-09-30 08:57:58.000000000 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch
new file mode 100644
index 0000000000..37a9ffab32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch
@@ -0,0 +1,50 @@
+--- configure.orig 2016-09-30 09:01:00.000000000 +0200
++++ configure 2016-09-30 09:03:05.000000000 +0200
+@@ -16574,11 +16574,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16606,15 +16610,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-30 09:03:25.000000000 +0200
+ +++ pyext/setup.py.in 2016-09-30 09:04:03.000000000 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch
new file mode 100644
index 0000000000..0a5996a70d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch
@@ -0,0 +1,72 @@
+--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300
++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I@includedir@"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA"
+--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300
++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I${prefix}/include"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA"
+--- configure.orig 2016-09-30 09:04:54.000000000 +0200
++++ configure 2016-09-30 09:07:44.000000000 +0200
+@@ -16508,11 +16508,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16540,15 +16544,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-30 09:07:58.000000000 +0200
+ +++ pyext/setup.py.in 2016-09-30 09:08:17.000000000 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch
new file mode 100644
index 0000000000..a0eb97d0f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch
@@ -0,0 +1,22 @@
+--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300
++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I@includedir@"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA"
+--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300
++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I${prefix}/include"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA"
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch
new file mode 100644
index 0000000000..4d50a3cf2d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch
@@ -0,0 +1,50 @@
+--- configure.orig 2016-08-09 21:07:54.000000000 +0200
++++ configure 2016-09-19 11:49:18.560986340 +0200
+@@ -16520,11 +16520,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16552,15 +16556,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-06 17:25:39.993785138 +0200
+ +++ pyext/setup.py.in 2016-09-06 17:26:10.368489432 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch
new file mode 100644
index 0000000000..44b8ed06bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch
@@ -0,0 +1,11 @@
+--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200
++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch
new file mode 100644
index 0000000000..ee632655ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch
@@ -0,0 +1,23 @@
+--- bin/yoda2aida.orig 2016-10-07 13:25:57.355168158 +0200
++++ bin/yoda2aida 2016-10-07 13:26:04.779169090 +0200
+@@ -18,7 +18,7 @@
+ parser.add_option("-M", "--unmatch", dest="UNMATCH", metavar="PATT", default=None,
+ help="exclude histograms whose path matches this regex")
+
+-sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n"
++sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n")
+
+ opts, args = parser.parse_args()
+ in_out = parse_x2y_args(args, ".yoda", ".aida")
+
+--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200
++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch
new file mode 100644
index 0000000000..fd400e4d7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch
@@ -0,0 +1,11 @@
+--- pyext/setup.py.in.orig 2017-02-01 15:24:41.000000000 +0100
++++ pyext/setup.py.in 2017-02-01 15:25:04.000000000 +0100
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch
new file mode 100644
index 0000000000..cc45b3e689
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch
@@ -0,0 +1,11 @@
+--- pyext/setup.py.in.orig 2017-07-17 12:13:12.057895620 +0200
++++ pyext/setup.py.in 2017-07-17 12:15:11.991048036 +0200
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure