summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/scotch/metis-headers-6.0.4.patch634
-rw-r--r--var/spack/repos/builtin/packages/scotch/package.py2
2 files changed, 636 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/scotch/metis-headers-6.0.4.patch b/var/spack/repos/builtin/packages/scotch/metis-headers-6.0.4.patch
new file mode 100644
index 0000000000..9c902a62b8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scotch/metis-headers-6.0.4.patch
@@ -0,0 +1,634 @@
+--- A/src/libscotch/Makefile 2014-09-23 21:28:28.000000000 +0200
++++ B/src/libscotch/Makefile 2015-07-24 12:51:31.357132922 +0200
+@@ -60,7 +60,7 @@ scotch :
+ libscotcherrexit$(LIB)
+
+ ptscotch : scotch
+- $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC="$(CCP)" \
++ $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC="$(CCP)" CCD="$(CCP)" \
+ ptscotch.h \
+ ptscotchf.h \
+ libptscotch$(LIB) \
+--- A/src/libscotchmetis/Makefile 2011-09-06 18:46:48.000000000 +0200
++++ B/src/libscotchmetis/Makefile 2015-08-25 13:37:31.424467916 +0200
+@@ -54,10 +54,12 @@ include ../Makefile.inc
+
+ scotch :
+ $(MAKE) CC="$(CCS)" SCOTCHLIB=ptscotch \
++ metis.h \
+ libscotchmetis$(LIB)
+
+ ptscotch :
+ $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC="$(CCP)" SCOTCHLIB=ptscotch \
++ parmetis.h \
+ libptscotchparmetis$(LIB)
+
+ install : scotch
+@@ -69,7 +71,7 @@ ptinstall : ptscotch
+ -$(CP) libptscotchparmetis$(LIB) $(libdir)
+
+ clean :
+- -$(RM) *~ *$(OBJ) lib*$(LIB)
++ -$(RM) *~ *$(OBJ) lib*$(LIB) metis.h parmetis.h
+
+ realclean : clean
+
+@@ -138,3 +140,10 @@ libscotchmetis$(LIB) : metis_graph_orde
+ metis_graph_part_f$(OBJ)
+ $(AR) $(ARFLAGS) $(@) $(^)
+ -$(RANLIB) $(@)
++metis.h : metis_skeleton.h \
++ ../libscotch/dummysizes
++ ../libscotch/dummysizes metis_skeleton.h metis.h
++
++parmetis.h : parmetis_skeleton.h \
++ ../libscotch/dummysizes
++ ../libscotch/dummysizes parmetis_skeleton.h parmetis.h
+--- A/src/libscotchmetis/metis.h 2012-09-13 17:43:52.000000000 +0200
++++ B/src/libscotchmetis/metis.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,97 +0,0 @@
+-/*********************************************************
+-** **
+-** WARNING: THIS IS NOT THE ORIGINAL INCLUDE FILE OF **
+-** THE MeTiS SOFTWARE PACKAGE. **
+-** This file is a compatibility include file provided **
+-** as part of the Scotch software distribution. **
+-** Preferably use the original MeTiS include file to **
+-** keep definitions of routines not overloaded by **
+-** the libScotchMeTiS library. **
+-** **
+-*********************************************************/
+-/* Copyright 2007,2010,2012 IPB, Universite de Bordeaux, INRIA & CNRS
+-**
+-** This file is part of the Scotch software package for static mapping,
+-** graph partitioning and sparse matrix ordering.
+-**
+-** This software is governed by the CeCILL-C license under French law
+-** and abiding by the rules of distribution of free software. You can
+-** use, modify and/or redistribute the software under the terms of the
+-** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
+-** URL: "http://www.cecill.info".
+-**
+-** As a counterpart to the access to the source code and rights to copy,
+-** modify and redistribute granted by the license, users are provided
+-** only with a limited warranty and the software's author, the holder of
+-** the economic rights, and the successive licensors have only limited
+-** liability.
+-**
+-** In this respect, the user's attention is drawn to the risks associated
+-** with loading, using, modifying and/or developing or reproducing the
+-** software by the user in light of its specific status of free software,
+-** that may mean that it is complicated to manipulate, and that also
+-** therefore means that it is reserved for developers and experienced
+-** professionals having in-depth computer knowledge. Users are therefore
+-** encouraged to load and test the software's suitability as regards
+-** their requirements in conditions enabling the security of their
+-** systems and/or data to be ensured and, more generally, to use and
+-** operate it in the same conditions as regards security.
+-**
+-** The fact that you are presently reading this means that you have had
+-** knowledge of the CeCILL-C license and that you accept its terms.
+-*/
+-/************************************************************/
+-/** **/
+-/** NAME : metis.h **/
+-/** **/
+-/** AUTHOR : Francois PELLEGRINI **/
+-/** **/
+-/** FUNCTION : Compatibility declaration file for the **/
+-/** MeTiS interface routines provided by **/
+-/** the Scotch project. **/
+-/** **/
+-/** DATES : # Version 5.0 : from : 08 sep 2006 **/
+-/** to 07 jun 2007 **/
+-/** # Version 5.1 : from : 30 jun 2010 **/
+-/** to 30 jun 2010 **/
+-/** # Version 6.0 : from : 13 sep 2012 **/
+-/** to 13 sep 2012 **/
+-/** **/
+-/************************************************************/
+-
+-/*
+-** The defines.
+-*/
+-
+-#ifdef SCOTCH_METIS_PREFIX
+-#define SCOTCH_METIS_PREFIXL scotch_
+-#define SCOTCH_METIS_PREFIXU SCOTCH_
+-#endif /* SCOTCH_METIS_PREFIX */
+-
+-#ifndef SCOTCH_METIS_PREFIXL
+-#define SCOTCH_METIS_PREFIXL
+-#endif /* SCOTCH_METIS_PREFIXL */
+-
+-#ifndef SCOTCH_METIS_PREFIXU
+-#define SCOTCH_METIS_PREFIXU
+-#endif /* SCOTCH_METIS_PREFIXU */
+-
+-#ifndef METISNAMEL
+-#define METISNAMEL(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXL),s)
+-#define METISNAMEU(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXU),s)
+-#define METISNAME2(p,s) METISNAME4(p,s)
+-#define METISNAME3(s) s
+-#define METISNAME4(p,s) p##s
+-#endif /* METISNAMEL */
+-
+-/*
+-** The function prototypes.
+-*/
+-
+-void METISNAMEU(METIS_EdgeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+-void METISNAMEU(METIS_NodeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+-void METISNAMEU(METIS_NodeWND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+-
+-void METISNAMEU(METIS_PartGraphKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+-void METISNAMEU(METIS_PartGraphRecursive) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+-void METISNAMEU(METIS_PartGraphVKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+--- A/src/libscotchmetis/metis_skeleton.h 1970-01-01 01:00:00.000000000 +0100
++++ B/src/libscotchmetis/metis_skeleton.h 2015-08-25 13:27:07.224497875 +0200
+@@ -0,0 +1,103 @@
++/*********************************************************
++** **
++** WARNING: THIS IS NOT THE ORIGINAL INCLUDE FILE OF **
++** THE MeTiS SOFTWARE PACKAGE. **
++** This file is a compatibility include file provided **
++** as part of the Scotch software distribution. **
++** Preferably use the original MeTiS include file to **
++** keep definitions of routines not overloaded by **
++** the libScotchMeTiS library. **
++** **
++*********************************************************/
++/* Copyright 2007,2010,2012 IPB, Universite de Bordeaux, INRIA & CNRS
++**
++** This file is part of the Scotch software package for static mapping,
++** graph partitioning and sparse matrix ordering.
++**
++** This software is governed by the CeCILL-C license under French law
++** and abiding by the rules of distribution of free software. You can
++** use, modify and/or redistribute the software under the terms of the
++** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
++** URL: "http://www.cecill.info".
++**
++** As a counterpart to the access to the source code and rights to copy,
++** modify and redistribute granted by the license, users are provided
++** only with a limited warranty and the software's author, the holder of
++** the economic rights, and the successive licensors have only limited
++** liability.
++**
++** In this respect, the user's attention is drawn to the risks associated
++** with loading, using, modifying and/or developing or reproducing the
++** software by the user in light of its specific status of free software,
++** that may mean that it is complicated to manipulate, and that also
++** therefore means that it is reserved for developers and experienced
++** professionals having in-depth computer knowledge. Users are therefore
++** encouraged to load and test the software's suitability as regards
++** their requirements in conditions enabling the security of their
++** systems and/or data to be ensured and, more generally, to use and
++** operate it in the same conditions as regards security.
++**
++** The fact that you are presently reading this means that you have had
++** knowledge of the CeCILL-C license and that you accept its terms.
++*/
++/************************************************************/
++/** **/
++/** NAME : metis.h **/
++/** **/
++/** AUTHOR : Francois PELLEGRINI **/
++/** **/
++/** FUNCTION : Compatibility declaration file for the **/
++/** MeTiS interface routines provided by **/
++/** the Scotch project. **/
++/** **/
++/** DATES : # Version 5.0 : from : 08 sep 2006 **/
++/** to 07 jun 2007 **/
++/** # Version 5.1 : from : 30 jun 2010 **/
++/** to 30 jun 2010 **/
++/** # Version 6.0 : from : 13 sep 2012 **/
++/** to 13 sep 2012 **/
++/** **/
++/************************************************************/
++
++#include<stdint.h>
++
++/*
++** The defines.
++*/
++
++#ifdef SCOTCH_METIS_PREFIX
++#define SCOTCH_METIS_PREFIXL scotch_
++#define SCOTCH_METIS_PREFIXU SCOTCH_
++#endif /* SCOTCH_METIS_PREFIX */
++
++#ifndef SCOTCH_METIS_PREFIXL
++#define SCOTCH_METIS_PREFIXL
++#endif /* SCOTCH_METIS_PREFIXL */
++
++#ifndef SCOTCH_METIS_PREFIXU
++#define SCOTCH_METIS_PREFIXU
++#endif /* SCOTCH_METIS_PREFIXU */
++
++#ifndef METISNAMEL
++#define METISNAMEL(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXL),s)
++#define METISNAMEU(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXU),s)
++#define METISNAME2(p,s) METISNAME4(p,s)
++#define METISNAME3(s) s
++#define METISNAME4(p,s) p##s
++#endif /* METISNAMEL */
++
++/*+ Integer type. +*/
++
++typedef DUMMYINT SCOTCH_Num;
++
++/*
++** The function prototypes.
++*/
++
++void METISNAMEU(METIS_EdgeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
++void METISNAMEU(METIS_NodeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
++void METISNAMEU(METIS_NodeWND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
++
++void METISNAMEU(METIS_PartGraphKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
++void METISNAMEU(METIS_PartGraphRecursive) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
++void METISNAMEU(METIS_PartGraphVKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const);
+--- A/src/libscotchmetis/parmetis.h 2012-09-13 17:41:21.000000000 +0200
++++ B/src/libscotchmetis/parmetis.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,100 +0,0 @@
+-/*********************************************************
+-** **
+-** WARNING: THIS IS NOT THE ORIGINAL INCLUDE FILE OF **
+-** THE ParMeTiS SOFTWARE PACKAGE. **
+-** This file is a compatibility include file provided **
+-** as part of the Scotch software distribution. **
+-** Preferably use the original ParMeTiS include file **
+-** to keep definitions of routines not overloaded by **
+-** the libPTScotchMeTiS library. **
+-** **
+-*********************************************************/
+-/* Copyright 2007,2008,2010,2012 IPB, Universite de Bordeaux, INRIA & CNRS
+-**
+-** This file is part of the Scotch software package for static mapping,
+-** graph partitioning and sparse matrix ordering.
+-**
+-** This software is governed by the CeCILL-C license under French law
+-** and abiding by the rules of distribution of free software. You can
+-** use, modify and/or redistribute the software under the terms of the
+-** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
+-** URL: "http://www.cecill.info".
+-**
+-** As a counterpart to the access to the source code and rights to copy,
+-** modify and redistribute granted by the license, users are provided
+-** only with a limited warranty and the software's author, the holder of
+-** the economic rights, and the successive licensors have only limited
+-** liability.
+-**
+-** In this respect, the user's attention is drawn to the risks associated
+-** with loading, using, modifying and/or developing or reproducing the
+-** software by the user in light of its specific status of free software,
+-** that may mean that it is complicated to manipulate, and that also
+-** therefore means that it is reserved for developers and experienced
+-** professionals having in-depth computer knowledge. Users are therefore
+-** encouraged to load and test the software's suitability as regards
+-** their requirements in conditions enabling the security of their
+-** systems and/or data to be ensured and, more generally, to use and
+-** operate it in the same conditions as regards security.
+-**
+-** The fact that you are presently reading this means that you have had
+-** knowledge of the CeCILL-C license and that you accept its terms.
+-*/
+-/************************************************************/
+-/** **/
+-/** NAME : parmetis.h **/
+-/** **/
+-/** AUTHOR : Francois PELLEGRINI **/
+-/** **/
+-/** FUNCTION : Compatibility declaration file for the **/
+-/** MeTiS interface routines provided by **/
+-/** the Scotch project. **/
+-/** **/
+-/** DATES : # Version 5.0 : from : 17 oct 2007 **/
+-/** to 18 oct 2007 **/
+-/** # Version 5.1 : from : 19 jun 2008 **/
+-/** to 30 jun 2010 **/
+-/** # Version 6.0 : from : 13 sep 2012 **/
+-/** to 13 sep 2012 **/
+-/** **/
+-/************************************************************/
+-
+-/*
+-** The defines and includes.
+-*/
+-
+-#ifndef __parmetis_h__
+-#define __parmetis_h__
+-
+-#include <mpi.h> /* Since ParMeTiS does it, do it too */
+-
+-#endif /* __parmetis_h__ */
+-
+-#ifdef SCOTCH_METIS_PREFIX
+-#define SCOTCH_METIS_PREFIXL scotch_
+-#define SCOTCH_METIS_PREFIXU SCOTCH_
+-#endif /* SCOTCH_METIS_PREFIX */
+-
+-#ifndef SCOTCH_METIS_PREFIXL
+-#define SCOTCH_METIS_PREFIXL
+-#endif /* SCOTCH_METIS_PREFIXL */
+-
+-#ifndef SCOTCH_METIS_PREFIXU
+-#define SCOTCH_METIS_PREFIXU
+-#endif /* SCOTCH_METIS_PREFIXU */
+-
+-#ifndef METISNAMEL
+-#define METISNAMEL(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXL),s)
+-#define METISNAMEU(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXU),s)
+-#define METISNAME2(p,s) METISNAME4(p,s)
+-#define METISNAME3(s) s
+-#define METISNAME4(p,s) p##s
+-#endif /* METISNAMEL */
+-
+-/*
+-** The function prototypes.
+-*/
+-
+-void METISNAMEU(ParMETIS_V3_NodeND) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const);
+-void METISNAMEU(ParMETIS_V3_PartGeomKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const);
+-void METISNAMEU(ParMETIS_V3_PartKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const);
+--- A/src/libscotchmetis/parmetis_skeleton.h 1970-01-01 01:00:00.000000000 +0100
++++ B/src/libscotchmetis/parmetis_skeleton.h 2015-08-25 13:42:17.972454163 +0200
+@@ -0,0 +1,105 @@
++/*********************************************************
++** **
++** WARNING: THIS IS NOT THE ORIGINAL INCLUDE FILE OF **
++** THE ParMeTiS SOFTWARE PACKAGE. **
++** This file is a compatibility include file provided **
++** as part of the Scotch software distribution. **
++** Preferably use the original ParMeTiS include file **
++** to keep definitions of routines not overloaded by **
++** the libPTScotchMeTiS library. **
++** **
++*********************************************************/
++/* Copyright 2007,2008,2010,2012 IPB, Universite de Bordeaux, INRIA & CNRS
++**
++** This file is part of the Scotch software package for static mapping,
++** graph partitioning and sparse matrix ordering.
++**
++** This software is governed by the CeCILL-C license under French law
++** and abiding by the rules of distribution of free software. You can
++** use, modify and/or redistribute the software under the terms of the
++** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
++** URL: "http://www.cecill.info".
++**
++** As a counterpart to the access to the source code and rights to copy,
++** modify and redistribute granted by the license, users are provided
++** only with a limited warranty and the software's author, the holder of
++** the economic rights, and the successive licensors have only limited
++** liability.
++**
++** In this respect, the user's attention is drawn to the risks associated
++** with loading, using, modifying and/or developing or reproducing the
++** software by the user in light of its specific status of free software,
++** that may mean that it is complicated to manipulate, and that also
++** therefore means that it is reserved for developers and experienced
++** professionals having in-depth computer knowledge. Users are therefore
++** encouraged to load and test the software's suitability as regards
++** their requirements in conditions enabling the security of their
++** systems and/or data to be ensured and, more generally, to use and
++** operate it in the same conditions as regards security.
++**
++** The fact that you are presently reading this means that you have had
++** knowledge of the CeCILL-C license and that you accept its terms.
++*/
++/************************************************************/
++/** **/
++/** NAME : parmetis.h **/
++/** **/
++/** AUTHOR : Francois PELLEGRINI **/
++/** **/
++/** FUNCTION : Compatibility declaration file for the **/
++/** MeTiS interface routines provided by **/
++/** the Scotch project. **/
++/** **/
++/** DATES : # Version 5.0 : from : 17 oct 2007 **/
++/** to 18 oct 2007 **/
++/** # Version 5.1 : from : 19 jun 2008 **/
++/** to 30 jun 2010 **/
++/** # Version 6.0 : from : 13 sep 2012 **/
++/** to 13 sep 2012 **/
++/** **/
++/************************************************************/
++
++/*
++** The defines and includes.
++*/
++
++#ifndef __parmetis_h__
++#define __parmetis_h__
++
++#include<stdint.h>
++#include <mpi.h> /* Since ParMeTiS does it, do it too */
++
++#endif /* __parmetis_h__ */
++
++#ifdef SCOTCH_METIS_PREFIX
++#define SCOTCH_METIS_PREFIXL scotch_
++#define SCOTCH_METIS_PREFIXU SCOTCH_
++#endif /* SCOTCH_METIS_PREFIX */
++
++#ifndef SCOTCH_METIS_PREFIXL
++#define SCOTCH_METIS_PREFIXL
++#endif /* SCOTCH_METIS_PREFIXL */
++
++#ifndef SCOTCH_METIS_PREFIXU
++#define SCOTCH_METIS_PREFIXU
++#endif /* SCOTCH_METIS_PREFIXU */
++
++#ifndef METISNAMEL
++#define METISNAMEL(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXL),s)
++#define METISNAMEU(s) METISNAME2(METISNAME3(SCOTCH_METIS_PREFIXU),s)
++#define METISNAME2(p,s) METISNAME4(p,s)
++#define METISNAME3(s) s
++#define METISNAME4(p,s) p##s
++#endif /* METISNAMEL */
++
++/*+ Integer type. +*/
++
++typedef DUMMYINT SCOTCH_Num;
++
++/*
++** The function prototypes.
++*/
++
++void METISNAMEU(ParMETIS_V3_NodeND) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const);
++void METISNAMEU(ParMETIS_V3_PartGeomKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const);
++void METISNAMEU(ParMETIS_V3_PartKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const);
+--- A/src/Makefile 2014-10-02 17:31:36.000000000 +0200
++++ B/src/Makefile 2015-08-25 13:00:50.288573562 +0200
+@@ -115,6 +115,7 @@ install : required $(bindir) $(includ
+ -$(CP) -f ../bin/[agm]*$(EXE) $(bindir)
+ -$(CP) -f ../bin/d[agm]*$(EXE) $(bindir)
+ -$(CP) -f ../include/*scotch*.h $(includedir)
++ -$(CP) -f ../include/*metis*.h $(includedir)
+ -$(CP) -f ../lib/*scotch*$(LIB) $(libdir)
+ -$(CP) -Rf ../man/* $(mandir)
+
+--- A/src/Makefile~ 1970-01-01 01:00:00.000000000 +0100
++++ B/src/Makefile~ 2014-10-02 17:31:36.000000000 +0200
+@@ -0,0 +1,134 @@
++## Copyright 2004,2007,2008,2010-2012,2014 IPB, Universite de Bordeaux, INRIA & CNRS
++##
++## This file is part of the Scotch software package for static mapping,
++## graph partitioning and sparse matrix ordering.
++##
++## This software is governed by the CeCILL-C license under French law
++## and abiding by the rules of distribution of free software. You can
++## use, modify and/or redistribute the software under the terms of the
++## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
++## URL: "http://www.cecill.info".
++##
++## As a counterpart to the access to the source code and rights to copy,
++## modify and redistribute granted by the license, users are provided
++## only with a limited warranty and the software's author, the holder of
++## the economic rights, and the successive licensors have only limited
++## liability.
++##
++## In this respect, the user's attention is drawn to the risks associated
++## with loading, using, modifying and/or developing or reproducing the
++## software by the user in light of its specific status of free software,
++## that may mean that it is complicated to manipulate, and that also
++## therefore means that it is reserved for developers and experienced
++## professionals having in-depth computer knowledge. Users are therefore
++## encouraged to load and test the software's suitability as regards
++## their requirements in conditions enabling the security of their
++## systems and/or data to be ensured and, more generally, to use and
++## operate it in the same conditions as regards security.
++##
++## The fact that you are presently reading this means that you have had
++## knowledge of the CeCILL-C license and that you accept its terms.
++##
++
++VERSION = 6
++RELEASE = 0
++PATCHLEVEL = 4
++
++.PHONY : clean default install ptscotch realclean required scotch
++
++default : scotch
++
++required : Makefile.inc ../bin ../include ../lib
++
++Makefile.inc :
++ @echo "#####################################################################"
++ @echo "BEFORE COMPILING Scotch OR PT-Scotch, YOU SHOULD HAVE AN APPROPRIATE"
++ @echo "Makefile.inc FILE IN THIS DIRECTORY. PLEASE LOOK INTO DIRECTORY"
++ @echo " ./Make.inc FOR AN EXISTING Makefile.inc FILE THAT FITS YOUR NEED, OR"
++ @echo "USE THEM AS MODELS IN CASE YOU NEED TO BUILD A NEW ONE FOR YOUR"
++ @echo "PARTICULAR PLATFORM."
++ @echo "#####################################################################"
++ @echo "Then, type \"make scotch\" (default) for the sequential library"
++ @echo "and software, or \"make ptscotch\" for the parallel library and"
++ @echo "software."
++ @exit 1
++
++include Makefile.inc
++
++prefix ?= /usr/local
++bindir ?= $(prefix)/bin
++includedir ?= $(prefix)/include
++libdir ?= $(prefix)/lib
++datarootdir ?= $(prefix)/share
++mandir ?= $(datarootdir)/man
++
++../bin :
++ -$(MKDIR) ../bin
++
++../include :
++ -$(MKDIR) ../include
++
++../lib :
++ -$(MKDIR) ../lib
++
++$(bindir) :
++ -$(MKDIR) $(bindir)
++
++$(datarootdir) :
++ -$(MKDIR) $(datarootdir)
++
++$(includedir) :
++ -$(MKDIR) $(includedir)
++
++$(libdir) :
++ -$(MKDIR) $(libdir)
++
++$(mandir) : $(datarootdir)
++ -$(MKDIR) $(mandir)
++
++$(mandir)/man1 : $(mandir)
++ -$(MKDIR) $(mandir)/man1
++
++scotch : required
++ (cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
++ (cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
++ (cd libscotchmetis ; $(MAKE) scotch && $(MAKE) install)
++
++ptscotch : required
++ (cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
++ (cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
++ (cd libscotchmetis ; $(MAKE) ptscotch && $(MAKE) ptinstall)
++
++check : scotch
++ (cd check ; $(MAKE) check)
++
++ptcheck : ptscotch
++ (cd check ; $(MAKE) ptcheck)
++
++esmumps : scotch
++ (cd esmumps ; $(MAKE) scotch && $(MAKE) install)
++
++ptesmumps : ptscotch
++ (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
++
++install : required $(bindir) $(includedir) $(libdir) $(mandir)/man1
++ -$(CP) -f ../bin/[agm]*$(EXE) $(bindir)
++ -$(CP) -f ../bin/d[agm]*$(EXE) $(bindir)
++ -$(CP) -f ../include/*scotch*.h $(includedir)
++ -$(CP) -f ../lib/*scotch*$(LIB) $(libdir)
++ -$(CP) -Rf ../man/* $(mandir)
++
++clean : required
++ (cd libscotch ; $(MAKE) clean)
++ (cd scotch ; $(MAKE) clean)
++ (cd libscotchmetis ; $(MAKE) clean)
++ (cd check ; $(MAKE) clean)
++ (cd esmumps ; $(MAKE) clean)
++
++realclean : required
++ (cd libscotch ; $(MAKE) realclean)
++ (cd scotch ; $(MAKE) realclean)
++ (cd libscotchmetis ; $(MAKE) realclean)
++ (cd check ; $(MAKE) realclean)
++ (cd esmumps ; $(MAKE) realclean)
++ -$(RM) ../bin/* ../include/* ../lib/*
+--- A/src/Make.inc/Makefile.inc.x86-64_pc_linux2~ 1970-01-01 01:00:00.000000000 +0100
++++ B/src/Make.inc/Makefile.inc.x86-64_pc_linux2~ 2015-08-25 13:09:33.984548426 +0200
+@@ -0,0 +1,21 @@
++EXE =
++LIB = .a
++OBJ = .o
++
++MAKE = make
++AR = ar
++ARFLAGS = -ruv
++CAT = cat
++CCS = gcc
++CCP = mpicc
++CCD = gcc
++CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -DIDXSIZE64 -DINT=int64_t
++CLIBFLAGS =
++LDFLAGS = -lz -lm -lrt -pthread
++CP = cp
++LEX = flex -Pscotchyy -olex.yy.c
++LN = ln
++MKDIR = mkdir
++MV = mv
++RANLIB = ranlib
++YACC = bison -pscotchyy -y -b y
diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py
index 0d8eaf1964..2e550bf2a7 100644
--- a/var/spack/repos/builtin/packages/scotch/package.py
+++ b/var/spack/repos/builtin/packages/scotch/package.py
@@ -33,6 +33,7 @@ class Scotch(Package):
url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.4.tar.gz"
list_url = "http://gforge.inria.fr/frs/?group_id=248"
+ version('6.0.5a', '8430dff7175a1dfd5a3258e75260cf71')
version('6.0.4', 'd58b825eb95e1db77efe8c6ff42d329f')
version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
version('6.0.0', 'c50d6187462ba801f9a82133ee666e8e')
@@ -60,6 +61,7 @@ class Scotch(Package):
# Version-specific patches
patch('nonthreaded-6.0.4.patch', when='@6.0.4')
patch('esmumps-ldflags-6.0.4.patch', when='@6.0.4')
+ patch('metis-headers-6.0.4.patch', when='@6.0.4')
# NOTE: In cross-compiling environment parallel build
# produces weird linker errors.