diff --git a/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch b/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ca1d96574abba171956adac3e86ed5bbf77b8cb0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch
@@ -0,0 +1,11 @@
+--- CLHEP/CMakeLists.txt	2016-06-20 14:41:12.000000000 -0500
++++ CLHEP/CMakeLists.txt	2016-06-20 14:40:57.000000000 -0500
+@@ -37,7 +37,7 @@
+ # If Policy CMP0042 exists, use OLD to prefer the use of install names
+ # instead of the new @rpath default. 
+ if(POLICY CMP0042)
+-  cmake_policy(SET CMP0042 NEW)
++  cmake_policy(SET CMP0042 OLD)
+ endif()
+ 
+ set(CMAKE_MODULE_PATH 
diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..02a9da9e271fe4dbec9fa41d4f60c342d7853eb8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clhep/package.py
@@ -0,0 +1,81 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Clhep(Package):
+    """CLHEP is a C++ Class Library for High Energy Physics. """
+    homepage = "http://proj-clhep.web.cern.ch/proj-clhep/"
+    url      = "http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/clhep-2.2.0.5.tgz"
+    list_url = "https://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/"
+
+    version('2.3.2.2', '567b304b0fa017e1e9fbf199f456ebe9')
+    version('2.3.1.1', '16efca7641bc118c9d217cc96fe90bf5')
+    version('2.3.1.0', 'b084934fc26a4182a08c09c292e19161')
+    version('2.3.0.0', 'a00399a2ca867f2be902c22fc71d7e2e')
+    version('2.2.0.8', '5a23ed3af785ac100a25f6cb791846af')
+    version('2.2.0.5', '1584e8ce6ebf395821aed377df315c7c')
+    version('2.2.0.4', '71d2c7c2e39d86a0262e555148de01c1')
+
+    variant('debug', default=False, description="Switch to the debug version of CLHEP.")
+    variant('cxx11', default=True, description="Compile using c++11 dialect.")
+    variant('cxx14', default=False, description="Compile using c++14 dialect.")
+
+    depends_on('cmake@2.8.12.2:', when='@2.2.0.4:2.3.0.0', type='build')
+    depends_on('cmake@3.2:', when='@2.3.0.1:', type='build')
+
+    def patch(self):
+        filter_file('SET CMP0042 OLD',
+                    'SET CMP0042 NEW',
+                    '%s/%s/CLHEP/CMakeLists.txt'
+                    % (self.stage.path, self.spec.version))
+
+    def install(self, spec, prefix):
+        # Handle debug
+        # Pull out the BUILD_TYPE so we can change it (Release is default)
+        cmake_args = [arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg]
+        build_type = 'Debug' if '+debug' in spec else 'MinSizeRel'
+        cmake_args.extend(['-DCMAKE_BUILD_TYPE=' + build_type])
+
+        if '+cxx11' in spec:
+            env['CXXFLAGS'] = self.compiler.cxx11_flag
+            cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
+                              self.compiler.cxx11_flag)
+
+        if '+cxx14' in spec:
+            env['CXXFLAGS'] = self.compiler.cxx14_flag
+            cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
+                              self.compiler.cxx14_flag)
+
+        # Note that the tar file is unusual in that there's a
+        # CLHEP directory (addtional layer)
+        cmake_args.append("../CLHEP")
+
+        # Run cmake in a build directory
+        with working_dir('build', create=True):
+            cmake(*cmake_args)
+            make()
+            make("install")
diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..239ef6d58691f54b8616e1795fdb06bf9c49b913
--- /dev/null
+++ b/var/spack/repos/builtin/packages/geant4/package.py
@@ -0,0 +1,85 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Geant4(Package):
+    """Geant4 is a toolkit for the simulation of the passage of particles
+    through matter. Its areas of application include high energy, nuclear
+    and accelerator physics, as well as studies in medical and space
+    science."""
+
+    homepage = "http://geant4.cern.ch/"
+    url      = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz"
+
+    version('10.02.p01', 'b81f7082a15f6a34b720b6f15c6289cfe4ddbbbdcef0dc52719f71fac95f7f1c')
+    version('10.01.p03', '4fb4175cc0dabcd517443fbdccd97439')
+
+    variant('qt', default=False, description='Enable Qt support')
+
+    depends_on('cmake@3.5:', type='build')
+
+    depends_on("clhep@2.3.1.1~cxx11+cxx14", when="@10.02.p01")
+    depends_on("clhep@2.2.0.4~cxx11+cxx14", when="@10.01.p03")
+    depends_on("expat")
+    depends_on("zlib")
+    depends_on("xerces-c")
+    depends_on("qt@4.8:", when="+qt")
+
+    def install(self, spec, prefix):
+        cmake_args = list(std_cmake_args)
+        cmake_args.append('-DXERCESC_ROOT_DIR:STRING=%s' %
+                          spec['xerces-c'].prefix)
+        cmake_args.append('-DGEANT4_BUILD_CXXSTD=c++14')
+
+        cmake_args += ['-DGEANT4_USE_GDML=ON',
+                       '-DGEANT4_USE_SYSTEM_EXPAT=ON',
+                       '-DGEANT4_USE_SYSTEM_ZLIB=ON',
+                       '-DGEANT4_USE_SYSTEM_CLHEP=ON']
+
+        # fixme: turn off data for now and maybe each data set should
+        # go into a separate package to cut down on disk usage between
+        # different code versions using the same data versions.
+        cmake_args.append('-DGEANT4_INSTALL_DATA=OFF')
+
+        # http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch02s03.html
+        # fixme: likely things that need addressing:
+        # -DGEANT4_USE_OPENGL_X11=ON
+
+        if '+qt' in spec:
+            cmake_args.append('-DGEANT4_USE_QT=ON')
+
+        build_directory = join_path(self.stage.path, 'spack-build')
+        source_directory = self.stage.source_path
+
+        with working_dir(build_directory, create=True):
+            cmake(source_directory, *cmake_args)
+            make()
+            make("install")
+
+    def url_for_version(self, version):
+        """Handle Geant4's unusual version string."""
+        return "http://geant4.cern.ch/support/source/geant4.%s.tar.gz" % version
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..ca296350a4197e03d5e7a9fd0b7630e892d07cb7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gmake(Package):
+    """GNU Make."""
+
+    homepage = "http://gnu.org/gnu/make"
+    url      = "ftp://ftp.gnu.org/gnu/make/make-4.0.tar.gz"
+
+    version('4.0', 'b5e558f981326d9ca1bfdb841640721a')
+
+    def install(self, spec, prefix):
+        configure('--prefix={0}'.format(prefix))
+
+        make()
+        make('install')
+        with working_dir(prefix.bin):
+            symlink('make', 'gmake')
diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab80dcf6babb56873aa7e715470f8ee3dddd089e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hepmc/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Hepmc(Package):
+    """The HepMC package is an object oriented, C++ event record for
+       High Energy Physics Monte Carlo generators and simulation."""
+
+    homepage = "http://hepmc.web.cern.ch/hepmc/"
+    url      = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz"
+
+    version('2.06.09', 'c47627ced4255b40e731b8666848b087')
+    version('2.06.08', 'a2e889114cafc4f60742029d69abd907')
+    version('2.06.07', '11d7035dccb0650b331f51520c6172e7')
+    version('2.06.06', '102e5503537a3ecd6ea6f466aa5bc4ae')
+    version('2.06.05', '2a4a2a945adf26474b8bdccf4f881d9c')
+
+    depends_on("cmake", type='build')
+
+    def install(self, spec, prefix):
+        build_directory = join_path(self.stage.path, 'spack-build')
+        source_directory = self.stage.source_path
+        options = [source_directory]
+        options.append('-Dmomentum:STRING=GEV')
+        options.append('-Dlength:STRING=MM')
+        options.extend(std_cmake_args)
+
+        with working_dir(build_directory, create=True):
+            cmake(*options)
+            make()
+            make('install')
diff --git a/var/spack/repos/builtin/packages/heppdt/package.py b/var/spack/repos/builtin/packages/heppdt/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..5fb7ec86d57f5799453d6f00ffb4c93386dec8db
--- /dev/null
+++ b/var/spack/repos/builtin/packages/heppdt/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Heppdt(Package):
+    """ The HepPID library contains translation methods for particle ID's
+    to and from various Monte Carlo generators and the PDG standard
+    numbering scheme. We realize that the generators adhere closely
+    to the standard, but there are occasional differences."""
+    homepage = "http://lcgapp.cern.ch/project/simu/HepPDT/"
+    url      = "http://lcgapp.cern.ch/project/simu/HepPDT/download/HepPDT-2.06.01.tar.gz"
+
+    version('3.04.01', 'a8e93c7603d844266b62d6f189f0ac7e')
+    version('3.04.00', '2d2cd7552d3e9539148febacc6287db2')
+    version('3.03.02', '0b85f1809bb8b0b28a46f23c718b2773')
+    version('3.03.01', 'd411f3bfdf9c4350d802241ba2629cc2')
+    version('3.03.00', 'cd84d0a0454be982dcd8c285e060a7b3')
+    version('2.06.01', '5688b4bdbd84b48ed5dd2545a3dc33c0')
+
+    def install(self, spec, prefix):
+        configure('--prefix=%s' % prefix)
+
+        make()
+        make("install")
diff --git a/var/spack/repos/builtin/packages/root/math_uint.patch b/var/spack/repos/builtin/packages/root/math_uint.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ff4a38b91c2e6aa36edcd0e017c5be6eadbdcf37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/root/math_uint.patch
@@ -0,0 +1,115 @@
+From 5f3faffdd869bce5e254ae70f69290e4651a061d Mon Sep 17 00:00:00 2001
+From: Lorenzo Moneta <Lorenzo.Moneta@cern.ch>
+Date: Mon, 4 Jan 2016 15:38:23 +0100
+Subject: [PATCH] Fix ROOT-7886. Use unsigned int instead of uint
+
+---
+ math/mathcore/inc/Math/Delaunay2D.h |  2 +-
+ math/mathcore/src/Delaunay2D.cxx    | 30 +++++++++++++++---------------
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/math/mathcore/inc/Math/Delaunay2D.h b/math/mathcore/inc/Math/Delaunay2D.h
+index 6255e78..472bded 100644
+--- a/math/mathcore/inc/Math/Delaunay2D.h
++++ b/math/mathcore/inc/Math/Delaunay2D.h
+@@ -273,7 +273,7 @@ class Delaunay2D  {
+    double fYCellStep; //! inverse denominator to calculate X cell = fNCells / (fYNmax - fYNmin)
+    std::set<UInt_t> fCells[(fNCells+1)*(fNCells+1)]; //! grid cells with containing triangles
+ 
+-   inline unsigned int Cell(uint x, uint y) const {
++   inline unsigned int Cell(UInt_t x, UInt_t y) const {
+ 	   return x*(fNCells+1) + y;
+    }
+ 
+diff --git a/math/mathcore/src/Delaunay2D.cxx b/math/mathcore/src/Delaunay2D.cxx
+index c4d4680..9a82858 100644
+--- a/math/mathcore/src/Delaunay2D.cxx
++++ b/math/mathcore/src/Delaunay2D.cxx
+@@ -190,7 +190,7 @@ void Delaunay2D::DoFindTriangles() {
+ 
+ 				Triangle tri;
+ 
+-				auto transform = [&] (const uint i) {
++				auto transform = [&] (const unsigned int i) {
+ 					tri.x[i] = face.vertex(i)->point().x();
+ 					tri.y[i] = face.vertex(i)->point().y();
+ 					tri.idx[i] = face.vertex(i)->info();
+@@ -326,7 +326,7 @@ void Delaunay2D::DoFindTriangles() {
+ 	for(int t = 0; t < out.numberoftriangles; ++t){
+ 		Triangle tri;
+ 
+-		auto transform = [&] (const uint v) {
++		auto transform = [&] (const unsigned int v) {
+ 			//each triangle as numberofcorners vertices ( = 3)
+ 			tri.idx[v] = out.trianglelist[t*out.numberofcorners + v];
+ 
+@@ -354,14 +354,14 @@ void Delaunay2D::DoFindTriangles() {
+ 		auto bx = std::minmax({tri.x[0], tri.x[1], tri.x[2]});
+ 		auto by = std::minmax({tri.y[0], tri.y[1], tri.y[2]});
+ 
+-		uint cellXmin = CellX(bx.first);
+-		uint cellXmax = CellX(bx.second);
++		unsigned int cellXmin = CellX(bx.first);
++		unsigned int cellXmax = CellX(bx.second);
+ 
+-		uint cellYmin = CellY(by.first);
+-		uint cellYmax = CellY(by.second);
++		unsigned int cellYmin = CellY(by.first);
++		unsigned int cellYmax = CellY(by.second);
+ 
+-		for(uint i = cellXmin; i <= cellXmax; ++i)
+-			for(uint j = cellYmin; j <= cellYmax; ++j){
++		for(unsigned int i = cellXmin; i <= cellXmax; ++i)
++			for(unsigned int j = cellYmin; j <= cellYmax; ++j){
+ 				//printf("(%u,%u) = %u\n", i, j, Cell(i,j));
+ 				fCells[Cell(i,j)].insert(t);
+ 			}
+@@ -382,7 +382,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+    ///  FindAllTriangles();
+ 
+     //see comment in header for CGAL fallback section
+-    auto bayCoords = [&] (const uint t) -> std::tuple<double, double, double> {
++    auto bayCoords = [&] (const unsigned int t) -> std::tuple<double, double, double> {
+     	double la = ( (fTriangles[t].y[1] - fTriangles[t].y[2])*(xx - fTriangles[t].x[2])
+     					 + (fTriangles[t].x[2] - fTriangles[t].x[1])*(yy - fTriangles[t].y[2]) ) * fTriangles[t].invDenom;
+     	double lb = ( (fTriangles[t].y[2] - fTriangles[t].y[0])*(xx - fTriangles[t].x[2])
+@@ -401,7 +401,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+ 	if(cX < 0 || cX > fNCells || cY < 0 || cY > fNCells)
+ 		return fZout; //TODO some more fancy interpolation here
+ 
+-    for(uint t : fCells[Cell(cX, cY)]){
++    for(unsigned int t : fCells[Cell(cX, cY)]){
+     	auto coords = bayCoords(t);
+ 
+     	if(inTriangle(coords)){
+@@ -415,7 +415,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+ 
+     //debugging
+ 
+-    /*for(uint t = 0; t < fNdt; ++t){
++    /*for(unsigned int t = 0; t < fNdt; ++t){
+     	auto coords = bayCoords(t);
+ 
+     	if(inTriangle(coords)){
+@@ -423,17 +423,17 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+     		//brute force found a triangle -> grid not
+     		printf("Found triangle %u for (%f,%f) -> (%u,%u)\n", t, xx,yy, cX, cY);
+     		printf("Triangles in grid cell: ");
+-    		for(uint x : fCells[Cell(cX, cY)])
++    		for(unsigned int x : fCells[Cell(cX, cY)])
+     			printf("%u ", x);
+     		printf("\n");
+ 
+     		printf("Triangle %u is in cells: ", t);
+-    		for(uint i = 0; i <= fNCells; ++i)
+-    			for(uint j = 0; j <= fNCells; ++j)
++    		for(unsigned int i = 0; i <= fNCells; ++i)
++    			for(unsigned int j = 0; j <= fNCells; ++j)
+     				if(fCells[Cell(i,j)].count(t))
+     					printf("(%u,%u) ", i, j);
+     		printf("\n");
+-    		for(uint i = 0; i < 3; ++i)
++    		for(unsigned int i = 0; i < 3; ++i)
+     			printf("\tpoint %u (%u): (%f,%f) -> (%u,%u)\n", i, fTriangles[t].idx[i], fTriangles[t].x[i], fTriangles[t].y[i], CellX(fTriangles[t].x[i]), CellY(fTriangles[t].y[i]));
+ 
+     		//we found the triangle -> interpolate using the barycentric interpolation
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f66dcebaa657fc8497ac56c1ff3508a8d81ad48
--- /dev/null
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+import sys
+
+
+class Root(Package):
+    """ROOT is a data analysis framework."""
+    homepage = "https://root.cern.ch"
+    url      = "https://root.cern.ch/download/root_v6.07.02.source.tar.gz"
+
+    version('6.06.06', '4308449892210c8d36e36924261fea26')
+    version('6.06.04', '55a2f98dd4cea79c9c4e32407c2d6d17')
+    version('6.06.02', 'e9b8b86838f65b0a78d8d02c66c2ec55')
+
+    if sys.platform == 'darwin':
+        patch('math_uint.patch', when='@6.06.02')
+        patch('root6-60606-mathmore.patch', when='@6.06.06')
+
+    variant('graphviz', default=False, description='Enable graphviz support')
+
+    depends_on("cmake", type='build')
+    depends_on("pcre")
+    depends_on("fftw")
+    depends_on("graphviz", when="+graphviz")
+    depends_on("python")
+    depends_on("gsl")
+    depends_on("libxml2+python")
+    depends_on("jpeg")
+    if sys.platform != 'darwin':
+        depends_on("libpng")
+        depends_on("openssl")
+        depends_on("freetype")
+
+    def install(self, spec, prefix):
+        build_directory = join_path(self.stage.path, 'spack-build')
+        source_directory = self.stage.source_path
+        options = [source_directory]
+        if '+debug' in spec:
+            options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
+        else:
+            options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
+        options.append('-Dcxx14=on')
+        options.append('-Dcocoa=off')
+        options.append('-Dbonjour=off')
+        options.append('-Dx11=on')
+        options.extend(std_cmake_args)
+        if sys.platform == 'darwin':
+            darwin_options = [
+                '-Dcastor=OFF',
+                '-Drfio=OFF',
+                '-Ddcache=OFF']
+            options.extend(darwin_options)
+        with working_dir(build_directory, create=True):
+            cmake(*options)
+            make()
+            make("install")
+
+    def setup_dependent_environment(self, spack_env, run_env, dspec):
+        spack_env.set('ROOTSYS', self.prefix)
+        spack_env.set('ROOT_VERSION', 'v6')
+        spack_env.prepend_path('PYTHONPATH', self.prefix.lib)
+
+    def url_for_version(self, version):
+        """Handle ROOT's unusual version string."""
+        return "https://root.cern.ch/download/root_v%s.source.tar.gz" % version
diff --git a/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch b/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d009a5af0de55d1be72d0e1e5cd3fd43f2b4c648
--- /dev/null
+++ b/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch
@@ -0,0 +1,29 @@
+diff --git a/math/mathmore/inc/Math/QuantFuncMathMore.h b/math/mathmore/inc/Math/QuantFuncMathMore.h
+index fd6679c..03ccc03 100644
+--- a/math/mathmore/inc/Math/QuantFuncMathMore.h
++++ b/math/mathmore/inc/Math/QuantFuncMathMore.h
+@@ -25,17 +25,6 @@
+   **********************************************************************/
+ 
+ 
+-#if defined(__CINT__) && !defined(__MAKECINT__)
+-// avoid to include header file when using CINT
+-#ifndef _WIN32
+-#include "../lib/libMathMore.so"
+-#else
+-#include "../bin/libMathMore.dll"
+-#endif
+-
+-#else
+-
+-
+ #ifndef ROOT_Math_QuantFuncMathMore
+ #define ROOT_Math_QuantFuncMathMore
+ 
+@@ -190,5 +179,3 @@ namespace MathMore {
+ 
+ 
+ #endif // ROOT_Math_QuantFuncMathMore
+-
+-#endif // if defined (__CINT__) && !defined(__MAKECINT__)
+
diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..db076dbc5692ede87c64546db355cd01a17d569b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xrootd/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Xrootd(Package):
+    """The XROOTD project aims at giving high performance, scalable fault
+       tolerant access to data repositories of many kinds."""
+    homepage = "http://xrootd.org"
+    url      = "http://xrootd.org/download/v4.3.0/xrootd-4.3.0.tar.gz"
+
+    version('4.3.0', '39c2fab9f632f35e12ff607ccaf9e16c')
+
+    depends_on('cmake', type='build')
+
+    def install(self, spec, prefix):
+        options = []
+        options.extend(std_cmake_args)
+
+        build_directory = join_path(self.stage.path, 'spack-build')
+        source_directory = self.stage.source_path
+
+        if '+debug' in spec:
+            options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
+
+        with working_dir(build_directory, create=True):
+            cmake(source_directory, *options)
+            make()
+            make("install")