From f3e0d149631063b662762145b6a37bffa3e393a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= <lukas.krupcik@vsb.cz>
Date: Tue, 30 May 2017 07:29:45 +0200
Subject: [PATCH] 	modified:   b/bzip2/bzip2-1.0.6.eb 	modified:  
 d/Doxygen/Doxygen-1.8.11-intel-2017a.eb 	new file:  
 f/foss/foss-2017a.eb 	new file:   g/gompi/gompi-2017a.eb 	new file:  
 h/hwloc/hwloc-1.11.7-GCC-6.3.0-2.27.eb 	new file:  
 h/hwloc/hwloc-1.11.7-GCC-7.1.0-2.28.eb 	new file:  
 l/libtool/libtool-2.4.6-GCC-7.1.0-2.28.eb 	modified:  
 n/netCDF/netCDF-4.4.1-intel-2017a.eb 	new file:  
 n/numactl/numactl-2.0.11-GCC-7.1.0-2.28.eb 	new file:  
 o/OpenMPI/OpenMPI-1.10.7-GCC-6.3.0-2.27.eb 	new file:  
 o/OpenMPI/OpenMPI-1.10.7-GCC-7.1.0-2.28.eb 	new file:  
 o/OpenMPI/OpenMPI-2.1.1-GCC-7.1.0-2.28.eb 	modified:  
 x/X11/X11-20160819.eb

---
 b/bzip2/bzip2-1.0.6.eb                     |  2 +-
 d/Doxygen/Doxygen-1.8.11-intel-2017a.eb    |  6 +--
 f/foss/foss-2017a.eb                       | 35 +++++++++++++++++
 g/gompi/gompi-2017a.eb                     | 20 ++++++++++
 h/hwloc/hwloc-1.11.7-GCC-6.3.0-2.27.eb     | 23 +++++++++++
 h/hwloc/hwloc-1.11.7-GCC-7.1.0-2.28.eb     | 23 +++++++++++
 l/libtool/libtool-2.4.6-GCC-7.1.0-2.28.eb  | 17 ++++++++
 n/netCDF/netCDF-4.4.1-intel-2017a.eb       |  6 +--
 n/numactl/numactl-2.0.11-GCC-7.1.0-2.28.eb | 23 +++++++++++
 o/OpenMPI/OpenMPI-1.10.7-GCC-6.3.0-2.27.eb | 45 ++++++++++++++++++++++
 o/OpenMPI/OpenMPI-1.10.7-GCC-7.1.0-2.28.eb | 45 ++++++++++++++++++++++
 o/OpenMPI/OpenMPI-2.1.1-GCC-7.1.0-2.28.eb  | 45 ++++++++++++++++++++++
 x/X11/X11-20160819.eb                      |  1 -
 13 files changed, 283 insertions(+), 8 deletions(-)
 create mode 100644 f/foss/foss-2017a.eb
 create mode 100644 g/gompi/gompi-2017a.eb
 create mode 100644 h/hwloc/hwloc-1.11.7-GCC-6.3.0-2.27.eb
 create mode 100644 h/hwloc/hwloc-1.11.7-GCC-7.1.0-2.28.eb
 create mode 100644 l/libtool/libtool-2.4.6-GCC-7.1.0-2.28.eb
 create mode 100644 n/numactl/numactl-2.0.11-GCC-7.1.0-2.28.eb
 create mode 100644 o/OpenMPI/OpenMPI-1.10.7-GCC-6.3.0-2.27.eb
 create mode 100644 o/OpenMPI/OpenMPI-1.10.7-GCC-7.1.0-2.28.eb
 create mode 100644 o/OpenMPI/OpenMPI-2.1.1-GCC-7.1.0-2.28.eb

diff --git a/b/bzip2/bzip2-1.0.6.eb b/b/bzip2/bzip2-1.0.6.eb
index 9af575e1..7f9e002b 100644
--- a/b/bzip2/bzip2-1.0.6.eb
+++ b/b/bzip2/bzip2-1.0.6.eb
@@ -1,7 +1,7 @@
 name = 'bzip2'
 version = '1.0.6'
 
-homepage = 'http://www.bzip.org/'
+homepage = 'http://departments.icmab.es/leem/siesta'
 description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically 
 compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical 
 compressors), whilst being around twice as fast at compression and six times faster at decompression."""
diff --git a/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb b/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb
index 3c0fdf85..4bae27ce 100644
--- a/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb
+++ b/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb
@@ -11,9 +11,9 @@ sources = ['%(namelower)s-%(version)s.src.tar.gz']
 source_urls = ['http://ftp.stack.nl/pub/users/dimitri/']
 
 builddependencies = [
-    ('CMake', '3.7.2'),
-    ('flex', '2.6.0'),
-    ('Bison', '3.0.4'),
+    ('CMake', '3.8.1', '', True),
+    ('flex', '2.6.0', '', True),
+    ('Bison', '3.0.4', '', True),
 ]
 
 parallel = 1
diff --git a/f/foss/foss-2017a.eb b/f/foss/foss-2017a.eb
new file mode 100644
index 00000000..ae32897c
--- /dev/null
+++ b/f/foss/foss-2017a.eb
@@ -0,0 +1,35 @@
+easyblock = 'Toolchain'
+
+name = 'foss'
+version = '2017a'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK."""
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+gccver = '6.3.0-2.27'
+
+blaslib = 'OpenBLAS'
+blasver = '0.2.19'
+blas = '%s-%s' % (blaslib, blasver)
+blassuff = '-LAPACK-3.7.0'
+
+# toolchain used to build foss dependencies
+comp_mpi_tc_name = 'gompi'
+comp_mpi_tc = (comp_mpi_tc_name, version)
+
+# compiler toolchain depencies
+# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain
+# because of toolchain preperation functions
+# For binutils, stick to http://wiki.osdev.org/Cross-Compiler_Successful_Builds
+dependencies = [
+    ('GCC', gccver),
+    ('OpenMPI', '1.10.7', '', ('GCC', gccver)),
+    (blaslib, blasver, blassuff, ('GCC', gccver)),
+    ('FFTW', '3.3.6', '', comp_mpi_tc),
+    ('ScaLAPACK', '2.0.2', '-%s%s' % (blas, blassuff), comp_mpi_tc),
+]
+
+moduleclass = 'toolchain'
diff --git a/g/gompi/gompi-2017a.eb b/g/gompi/gompi-2017a.eb
new file mode 100644
index 00000000..a29ccb09
--- /dev/null
+++ b/g/gompi/gompi-2017a.eb
@@ -0,0 +1,20 @@
+easyblock = "Toolchain"
+
+name = 'gompi'
+version = '2017a'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain,
+ including OpenMPI for MPI support."""
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+gccver = '6.3.0-2.27'
+
+# compiler toolchain dependencies
+dependencies = [
+    ('GCC', gccver),  # includes both GCC 6.3.0 and binutils 2.27
+    ('OpenMPI', '1.10.7', '', ('GCC', gccver)),
+]
+
+moduleclass = 'toolchain'
diff --git a/h/hwloc/hwloc-1.11.7-GCC-6.3.0-2.27.eb b/h/hwloc/hwloc-1.11.7-GCC-6.3.0-2.27.eb
new file mode 100644
index 00000000..8f0b8dee
--- /dev/null
+++ b/h/hwloc/hwloc-1.11.7-GCC-6.3.0-2.27.eb
@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake' 
+ 
+name = 'hwloc' 
+version = '1.11.7' 
+ 
+homepage = 'http://www.open-mpi.org/projects/hwloc/' 
+description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction 
+(across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including 
+NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various 
+system attributes such as cache and memory information as well as the locality of I/O devices such as 
+network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering 
+information about modern computing hardware so as to exploit it accordingly and efficiently.""" 
+ 
+toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} 
+ 
+source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] 
+sources = [SOURCE_TAR_GZ] 
+ 
+dependencies = [('numactl', '2.0.11')] 
+ 
+configopts = "--enable-libnuma=$EBROOTNUMACTL" 
+ 
+moduleclass = 'system'
diff --git a/h/hwloc/hwloc-1.11.7-GCC-7.1.0-2.28.eb b/h/hwloc/hwloc-1.11.7-GCC-7.1.0-2.28.eb
new file mode 100644
index 00000000..eb5c7561
--- /dev/null
+++ b/h/hwloc/hwloc-1.11.7-GCC-7.1.0-2.28.eb
@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake' 
+ 
+name = 'hwloc' 
+version = '1.11.7' 
+ 
+homepage = 'http://www.open-mpi.org/projects/hwloc/' 
+description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction 
+(across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including 
+NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various 
+system attributes such as cache and memory information as well as the locality of I/O devices such as 
+network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering 
+information about modern computing hardware so as to exploit it accordingly and efficiently.""" 
+ 
+toolchain = {'name': 'GCC', 'version': '7.1.0-2.28'} 
+ 
+source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] 
+sources = [SOURCE_TAR_GZ] 
+ 
+dependencies = [('numactl', '2.0.11')] 
+ 
+configopts = "--enable-libnuma=$EBROOTNUMACTL" 
+ 
+moduleclass = 'system'
diff --git a/l/libtool/libtool-2.4.6-GCC-7.1.0-2.28.eb b/l/libtool/libtool-2.4.6-GCC-7.1.0-2.28.eb
new file mode 100644
index 00000000..b51deb8c
--- /dev/null
+++ b/l/libtool/libtool-2.4.6-GCC-7.1.0-2.28.eb
@@ -0,0 +1,17 @@
+easyblock = 'ConfigureMake'
+
+name = 'libtool'
+version = '2.4.6'
+
+homepage = 'http://www.gnu.org/software/libtool'
+description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries
+ behind a consistent, portable interface."""
+
+toolchain = {'name': 'GCC', 'version': '7.1.0-2.28'}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = [GNU_SOURCE]
+
+dependencies = [('M4', '1.4.18', '', True)]
+
+moduleclass = 'lib'
diff --git a/n/netCDF/netCDF-4.4.1-intel-2017a.eb b/n/netCDF/netCDF-4.4.1-intel-2017a.eb
index af2e996e..99d2d51a 100644
--- a/n/netCDF/netCDF-4.4.1-intel-2017a.eb
+++ b/n/netCDF/netCDF-4.4.1-intel-2017a.eb
@@ -16,12 +16,12 @@ source_urls = [
 
 dependencies = [
     ('HDF5', '1.8.17'),
-    ('cURL', '7.49.1'),
-    ('Szip', '2.1'),
+    ('cURL', '7.53.1', '', True),
+    ('Szip', '2.1', '', True),
 ]
 
 builddependencies = [
-    ('CMake', '3.7.2'),
+    ('CMake', '3.8.1', '', True),
     ('Doxygen', '1.8.11'),
 ]
 
diff --git a/n/numactl/numactl-2.0.11-GCC-7.1.0-2.28.eb b/n/numactl/numactl-2.0.11-GCC-7.1.0-2.28.eb
new file mode 100644
index 00000000..a4bb6fa6
--- /dev/null
+++ b/n/numactl/numactl-2.0.11-GCC-7.1.0-2.28.eb
@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake' 
+ 
+name = 'numactl' 
+version = '2.0.11' 
+ 
+homepage = 'http://oss.sgi.com/projects/libnuma/' 
+description = """The numactl program allows you to run your application program on specific cpu's and memory nodes. 
+It does this by supplying a NUMA memory policy to the operating system before running your program. 
+The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.""" 
+ 
+toolchain = {'name': 'GCC', 'version': '7.1.0-2.28'}
+
+source_urls = ['ftp://oss.sgi.com/www/projects/libnuma/download/'] 
+sources = [SOURCE_TAR_GZ] 
+ 
+checksums = ['d3bc88b7ddb9f06d60898f4816ae9127'] 
+ 
+sanity_check_paths = { 
+    'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], 
+    'dirs': ['share/man', 'include'] 
+} 
+ 
+moduleclass = 'tools'
diff --git a/o/OpenMPI/OpenMPI-1.10.7-GCC-6.3.0-2.27.eb b/o/OpenMPI/OpenMPI-1.10.7-GCC-6.3.0-2.27.eb
new file mode 100644
index 00000000..1382fe9f
--- /dev/null
+++ b/o/OpenMPI/OpenMPI-1.10.7-GCC-6.3.0-2.27.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'OpenMPI'
+version = '1.10.7'
+
+homepage = 'http://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-2 implementation."""
+
+toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+
+dependencies = [('hwloc', '1.11.7')]
+
+builddependencies = [
+            ('Java', '1.8.0_121', '', True)
+]
+
+configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs '
+configopts += '--enable-mpirun-prefix-by-default '  # suppress failure modes in relation to mpirun path
+configopts += '--with-hwloc=$EBROOTHWLOC '  # hwloc support
+configopts += '--disable-dlopen '  # statically link component, don't do dynamic loading
+configopts += '--with-tm=/opt/pbs/default '  # Enable PBS
+configopts += '--enable-mpi-java ' # Java support RT#4090
+
+# for PBS Pro 13
+preconfigopts = 'export LIBS="-ldl" && '
+
+# needed for --with-verbs
+osdependencies = [('libibverbs-dev', 'libibverbs-devel')]
+
+libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"]
+sanity_check_paths = {
+    'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] +
+             ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] +
+             ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]],
+    'dirs': ["include/openmpi/ompi/mpi/cxx"],
+}
+
+modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
+                'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
+}
+
+moduleclass = 'mpi'
diff --git a/o/OpenMPI/OpenMPI-1.10.7-GCC-7.1.0-2.28.eb b/o/OpenMPI/OpenMPI-1.10.7-GCC-7.1.0-2.28.eb
new file mode 100644
index 00000000..5bde577f
--- /dev/null
+++ b/o/OpenMPI/OpenMPI-1.10.7-GCC-7.1.0-2.28.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'OpenMPI'
+version = '1.10.7'
+
+homepage = 'http://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-2 implementation."""
+
+toolchain = {'name': 'GCC', 'version': '7.1.0-2.28'}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+
+dependencies = [('hwloc', '1.11.7')]
+
+builddependencies = [
+            ('Java', '1.8.0_121', '', True)
+]
+
+configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs '
+configopts += '--enable-mpirun-prefix-by-default '  # suppress failure modes in relation to mpirun path
+configopts += '--with-hwloc=$EBROOTHWLOC '  # hwloc support
+configopts += '--disable-dlopen '  # statically link component, don't do dynamic loading
+configopts += '--with-tm=/opt/pbs/default '  # Enable PBS
+configopts += '--enable-mpi-java ' # Java support RT#4090
+
+# for PBS Pro 13
+preconfigopts = 'export LIBS="-ldl" && '
+
+# needed for --with-verbs
+osdependencies = [('libibverbs-dev', 'libibverbs-devel')]
+
+libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"]
+sanity_check_paths = {
+    'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] +
+             ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] +
+             ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]],
+    'dirs': ["include/openmpi/ompi/mpi/cxx"],
+}
+
+modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
+                'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
+}
+
+moduleclass = 'mpi'
diff --git a/o/OpenMPI/OpenMPI-2.1.1-GCC-7.1.0-2.28.eb b/o/OpenMPI/OpenMPI-2.1.1-GCC-7.1.0-2.28.eb
new file mode 100644
index 00000000..a8cd1ae8
--- /dev/null
+++ b/o/OpenMPI/OpenMPI-2.1.1-GCC-7.1.0-2.28.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'OpenMPI'
+version = '2.1.1'
+
+homepage = 'http://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-2 implementation."""
+
+toolchain = {'name': 'GCC', 'version': '7.1.0-2.28'}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+
+dependencies = [('hwloc', '1.11.7')]
+
+builddependencies = [
+            ('Java', '1.8.0_121', '', True)
+]
+
+configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs '
+configopts += '--enable-mpirun-prefix-by-default '  # suppress failure modes in relation to mpirun path
+configopts += '--with-hwloc=$EBROOTHWLOC '  # hwloc support
+configopts += '--disable-dlopen '  # statically link component, don't do dynamic loading
+configopts += '--with-tm=/opt/pbs/default '  # Enable PBS
+configopts += '--enable-mpi-java ' # Java support RT#4090
+
+# for PBS Pro 13
+preconfigopts = 'export LIBS="-ldl" && '
+
+# needed for --with-verbs
+osdependencies = [('libibverbs-dev', 'libibverbs-devel')]
+
+libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"]
+sanity_check_paths = {
+    'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] +
+             ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] +
+             ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]],
+    'dirs': ["include/openmpi/ompi/mpi/cxx"],
+}
+
+modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
+                'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
+}
+
+moduleclass = 'mpi'
diff --git a/x/X11/X11-20160819.eb b/x/X11/X11-20160819.eb
index 5c4b34da..88dd1ba9 100644
--- a/x/X11/X11-20160819.eb
+++ b/x/X11/X11-20160819.eb
@@ -91,7 +91,6 @@ components = [
     ('libXdamage', '1.1.4', common_specs),
     ('libfontenc', '1.1.3', common_specs),
     ('libXfont', '1.5.1', common_specs),
-    ('libXft', '2.3.2', common_specs),
     ('libXi', '1.7.6', common_specs),
     ('libXinerama', '1.1.3', common_specs),
     ('libXrandr', '1.5.0', common_specs),