From 142703ae8eca0370438bc1536cfea015a0f7029e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 16 Dec 2013 16:07:34 +0100 Subject: [PATCH 001/732] add easyconfigs for ATSAS --- .../a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb | 23 +++++++++++++++++++ .../a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb | 23 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb create mode 100644 easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb new file mode 100644 index 0000000000..aaf2a2b8d8 --- /dev/null +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb @@ -0,0 +1,23 @@ +easyblock = 'Tarball' + +name = 'ATSAS' +version = '2.5.1-1.el6.x86_64' + +homepage = 'http://www.embl-hamburg.de/ExternalInfo/Research/Sax/software.html' +description = """ATSAS is a program suite for small-angle scattering data analysis from biological macromolecules.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download via http://www.embl-hamburg.de/biosaxs/download.html +sources = ['%(namelower)s-%(version)s.tar.gz'] + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/atsas'], +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'lib64/atsas'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb new file mode 100644 index 0000000000..37cfd159dd --- /dev/null +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb @@ -0,0 +1,23 @@ +easyblock = 'Tarball' + +name = 'ATSAS' +version = '2.5.1-1.sl5.x86_64' + +homepage = 'http://www.embl-hamburg.de/ExternalInfo/Research/Sax/software.html' +description = """ATSAS is a program suite for small-angle scattering data analysis from biological macromolecules.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download via http://www.embl-hamburg.de/biosaxs/download.html +sources = ['%(namelower)s-%(version)s.tar.gz'] + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/atsas'], +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'lib64/atsas'], +} + +moduleclass = 'bio' -- GitLab From 867a1e5b359e0374cadec7f4cc5f4bf4f642a36b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 18 Dec 2013 07:35:42 +0100 Subject: [PATCH 002/732] fix remarks --- easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb | 5 +++-- easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb index aaf2a2b8d8..60a094505c 100644 --- a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb @@ -1,7 +1,8 @@ easyblock = 'Tarball' name = 'ATSAS' -version = '2.5.1-1.el6.x86_64' +version = '2.5.1-1' +versionsuffix = '.el6.x86_64' homepage = 'http://www.embl-hamburg.de/ExternalInfo/Research/Sax/software.html' description = """ATSAS is a program suite for small-angle scattering data analysis from biological macromolecules.""" @@ -9,7 +10,7 @@ description = """ATSAS is a program suite for small-angle scattering data analys toolchain = {'name': 'dummy', 'version': 'dummy'} # download via http://www.embl-hamburg.de/biosaxs/download.html -sources = ['%(namelower)s-%(version)s.tar.gz'] +sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz'] modextrapaths = { 'LD_LIBRARY_PATH': ['lib64/atsas'], diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb index 37cfd159dd..5dc5ca2151 100644 --- a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb @@ -1,7 +1,8 @@ easyblock = 'Tarball' name = 'ATSAS' -version = '2.5.1-1.sl5.x86_64' +version = '2.5.1-1' +versionsuffix = '.sl5.x86_64' homepage = 'http://www.embl-hamburg.de/ExternalInfo/Research/Sax/software.html' description = """ATSAS is a program suite for small-angle scattering data analysis from biological macromolecules.""" @@ -9,7 +10,7 @@ description = """ATSAS is a program suite for small-angle scattering data analys toolchain = {'name': 'dummy', 'version': 'dummy'} # download via http://www.embl-hamburg.de/biosaxs/download.html -sources = ['%(namelower)s-%(version)s.tar.gz'] +sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz'] modextrapaths = { 'LD_LIBRARY_PATH': ['lib64/atsas'], -- GitLab From ab483cb47ba1cadf1908c47db776692d4156af78 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 19 Mar 2014 13:47:41 +0100 Subject: [PATCH 003/732] add subversion v1.6.23 as build dep for Python 2.5.6, add easyconfigs for subversion + deps --- .../APR-util-1.5.3-goalf-1.1.0-no-OFED.eb | 23 ++++++++++++ .../APR-util-1.5.3-gompi-1.4.12-no-OFED.eb | 23 ++++++++++++ .../a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb | 23 ++++++++++++ .../a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb | 23 ++++++++++++ .../a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb | 23 ++++++++++++ .../a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb | 23 ++++++++++++ .../a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb | 23 ++++++++++++ .../a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb | 17 +++++++++ .../a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb | 17 +++++++++ .../a/APR/APR-1.5.0-goolf-1.4.10.eb | 17 +++++++++ .../a/APR/APR-1.5.0-ictce-4.0.6.eb | 17 +++++++++ .../a/APR/APR-1.5.0-ictce-4.1.13.eb | 17 +++++++++ .../a/APR/APR-1.5.0-ictce-5.2.0.eb | 17 +++++++++ .../a/APR/APR-1.5.0-ictce-5.3.0.eb | 17 +++++++++ .../libxml2-2.9.1-gompi-1.4.12-no-OFED.eb | 22 ++++++++++++ ...libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb | 27 ++++++++++++++ .../l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb | 22 ++++++++++++ .../n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb | 24 +++++++++++++ .../neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb | 24 +++++++++++++ .../n/neon/neon-0.30.0-goolf-1.4.10.eb | 24 +++++++++++++ .../n/neon/neon-0.30.0-ictce-4.0.6.eb | 24 +++++++++++++ .../n/neon/neon-0.30.0-ictce-4.1.13.eb | 24 +++++++++++++ .../n/neon/neon-0.30.0-ictce-5.2.0.eb | 24 +++++++++++++ .../n/neon/neon-0.30.0-ictce-5.3.0.eb | 24 +++++++++++++ .../Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb | 4 +++ .../Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb | 4 +++ .../Python/Python-2.5.6-goolf-1.4.10-bare.eb | 4 +++ .../p/Python/Python-2.5.6-ictce-4.0.6-bare.eb | 4 +++ .../Python/Python-2.5.6-ictce-4.1.13-bare.eb | 4 +++ .../p/Python/Python-2.5.6-ictce-5.2.0-bare.eb | 4 +++ .../p/Python/Python-2.5.6-ictce-5.3.0-bare.eb | 4 +++ .../SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb | 35 +++++++++++++++++++ .../SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb | 35 +++++++++++++++++++ .../s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb | 35 +++++++++++++++++++ .../s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb | 35 +++++++++++++++++++ .../s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb | 35 +++++++++++++++++++ .../s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb | 35 +++++++++++++++++++ .../s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb | 35 +++++++++++++++++++ .../subversion-1.6.23-goalf-1.1.0-no-OFED.eb | 28 +++++++++++++++ .../subversion-1.6.23-gompi-1.4.12-no-OFED.eb | 28 +++++++++++++++ .../subversion-1.6.23-goolf-1.4.10.eb | 28 +++++++++++++++ .../subversion-1.6.23-ictce-4.0.6.eb | 28 +++++++++++++++ .../subversion-1.6.23-ictce-4.1.13.eb | 28 +++++++++++++++ .../subversion-1.6.23-ictce-5.2.0.eb | 28 +++++++++++++++ .../subversion-1.6.23-ictce-5.3.0.eb | 28 +++++++++++++++ .../subversion-1.8.8-goolf-1.4.10.eb | 28 +++++++++++++++ .../subversion-1.8.8-ictce-4.1.13.eb | 28 +++++++++++++++ .../subversion-1.8.8-ictce-5.5.0.eb | 28 +++++++++++++++ .../t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb | 19 ++++++++++ .../t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb | 19 ++++++++++ .../t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb | 19 ++++++++++ .../t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb | 19 ++++++++++ .../t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb | 19 ++++++++++ 53 files changed, 1167 insertions(+) create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb create mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb create mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb create mode 100755 easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb create mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb create mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb create mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb create mode 100755 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb create mode 100755 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb create mode 100755 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb new file mode 100644 index 0000000000..f2b2f6d4d4 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..f5f429b778 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb new file mode 100644 index 0000000000..f2b44bb9a1 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb new file mode 100644 index 0000000000..6785705751 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb new file mode 100644 index 0000000000..ab0ac9c226 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb new file mode 100644 index 0000000000..669555d663 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb new file mode 100644 index 0000000000..5820665193 --- /dev/null +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb @@ -0,0 +1,23 @@ +name = 'APR-util' +version = '1.5.3' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) util libraries." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('APR', '1.5.0')] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" + +sanity_check_paths = { + 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], + 'dirs': ["include/apr-1"], +} + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb new file mode 100644 index 0000000000..42d75b76df --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..c9b38d32bc --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb new file mode 100644 index 0000000000..e069e515a2 --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb new file mode 100644 index 0000000000..bb13d21a33 --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb new file mode 100644 index 0000000000..c26ce2075a --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb new file mode 100644 index 0000000000..3f74bca0b9 --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb new file mode 100644 index 0000000000..7c6b787d78 --- /dev/null +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb @@ -0,0 +1,17 @@ +name = 'APR' +version = '1.5.0' + +homepage = 'http://apr.apache.org/' +description = "Apache Portable Runtime (APR) libraries." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://archive.apache.org/dist/apr/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], + 'dirs': ["include/apr-1"], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..6e4ab86218 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.7')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb new file mode 100755 index 0000000000..d68ae2eaee --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb @@ -0,0 +1,27 @@ +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic' + +pythonver = '2.7.5' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb new file mode 100644 index 0000000000..232c2e480f --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.7')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb new file mode 100644 index 0000000000..f111e9310e --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..212229e999 --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb new file mode 100644 index 0000000000..dbf0e6619b --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb new file mode 100644 index 0000000000..fdf1eabe1a --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb new file mode 100644 index 0000000000..97eea6a566 --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb new file mode 100644 index 0000000000..244a91df81 --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb new file mode 100644 index 0000000000..6dd467a1fe --- /dev/null +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb @@ -0,0 +1,24 @@ +name = 'neon' +version = '0.30.0' + +homepage = 'http://www.webdav.org/neon/' +description = "neon is an HTTP and WebDAV client library, with a C interface." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = [homepage] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.7'), + ('libxml2', '2.9.1'), +] + +configopts = "--with-libxml2" + +sanity_check_paths = { + 'files': ["bin/neon-config", "lib/libneon.a"], + 'dirs': ["include/neon"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb index 279bdd8c99..6bc189fb19 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb @@ -19,6 +19,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb index f9f346f7bc..ba4c8ccf22 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb @@ -19,6 +19,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb index 66cb466a25..9074876929 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb @@ -19,6 +19,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb index 781b45ed3f..8df72e769a 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb @@ -21,6 +21,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb index c8bc196270..6fde08c369 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb @@ -21,6 +21,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb index 79512f826c..a35457f6ec 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb @@ -19,6 +19,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb index f949db90c2..99ba7a0a56 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb @@ -19,6 +19,10 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] +# Python 2.5 requires an old subversion version to build correctly, +# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' +builddependencies = [('subversion', '1.6.23')] + osdependencies = [('openssl-devel', 'libssl-dev')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb new file mode 100644 index 0000000000..1f9d380786 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..330ea91aef --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb new file mode 100644 index 0000000000..72c8d21c52 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb new file mode 100644 index 0000000000..8ab8985748 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb new file mode 100644 index 0000000000..6948614b01 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb new file mode 100644 index 0000000000..6a16570c53 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb new file mode 100644 index 0000000000..499e33114e --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb new file mode 100644 index 0000000000..10fcdfa9b8 --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..18b01448ee --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb new file mode 100644 index 0000000000..c4f4b6ed90 --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb new file mode 100644 index 0000000000..cc7766f42b --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb new file mode 100644 index 0000000000..0e7556d3dd --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb new file mode 100644 index 0000000000..3dd8117f6f --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb new file mode 100644 index 0000000000..8b59c05878 --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.6.23' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb new file mode 100644 index 0000000000..5f9488ba6c --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.8.8' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb new file mode 100644 index 0000000000..672480bf95 --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.8.8' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb new file mode 100644 index 0000000000..17a3d6e7d2 --- /dev/null +++ b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb @@ -0,0 +1,28 @@ +name = 'subversion' +version = '1.8.8' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['http://archive.apache.org/dist/subversion/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +dependencies = [ + ('APR', '1.5.0'), + ('APR-util', '1.5.3'), + ('SQLite', '3.8.4.1'), + ('zlib', '1.2.7'), + ('neon', '0.30.0'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb new file mode 100644 index 0000000000..688b7db304 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,19 @@ +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb new file mode 100644 index 0000000000..bf05390914 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,19 @@ +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb new file mode 100755 index 0000000000..4497a53f78 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb @@ -0,0 +1,19 @@ +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb new file mode 100755 index 0000000000..a112f672e2 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb @@ -0,0 +1,19 @@ +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb new file mode 100755 index 0000000000..d9d3d41205 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb @@ -0,0 +1,19 @@ +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' -- GitLab From 3c41da9803d064e8e7ecdfafcc408551072ef28f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 19 Mar 2014 17:02:30 +0100 Subject: [PATCH 004/732] drop subversion v1.8.8 ictce/5.5.0 easyconfig --- .../subversion-1.8.8-ictce-5.5.0.eb | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb deleted file mode 100644 index 17a3d6e7d2..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-5.5.0.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.8.8' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' -- GitLab From 8d87638c6dd193e9b7950b4bfdf5f929f624b150 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 6 Aug 2014 12:25:14 +0300 Subject: [PATCH 005/732] Adding CP2K v.2.4.0 and CP2K with i-pi --- .../c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb | 37 ++ .../c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb | 35 ++ .../easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch | 509 ++++++++++++++++++ .../c/CP2K/fix_compile_date_lastcvs.patch | 11 +- 4 files changed, 585 insertions(+), 7 deletions(-) create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb new file mode 100644 index 0000000000..8c26b632c2 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb @@ -0,0 +1,37 @@ +name = 'CP2K' +version = '2.4.0' +versionsuffix = '-ipi' + +homepage = 'http://www.cp2k.org' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, + to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. + It provides a general framework for different methods such as e.g. density functional theory (DFT) + using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sourceforge.net/projects/cp2k/files/'] + +sources = ['%s-%s.tar.bz2' % (name.lower(), version)] + +patches = [ + 'cp2k-2.4.0_ipi.patch', + 'fix_compile_date_lastcvs.patch', + 'do_regtest_nocompile.patch' + ] + +builddependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5') + ] + +dependencies = [('Libint', '1.1.4')] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# about 100 tests fail +ignore_regtest_fails=True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb new file mode 100644 index 0000000000..9389d88e83 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +name = 'CP2K' +version = '2.4.0' + +homepage = 'http://www.cp2k.org' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, + to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. + It provides a general framework for different methods such as e.g. density functional theory (DFT) + using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sourceforge.net/projects/cp2k/files/'] + +sources = ['%s-%s.tar.bz2' % (name.lower(), version)] + +patches = [ + 'fix_compile_date_lastcvs.patch', + 'do_regtest_nocompile.patch' + ] + +builddependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5') + ] + +dependencies = [('Libint', '1.1.4')] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# about 100 tests fail +ignore_regtest_fails=True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch b/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch new file mode 100644 index 0000000000..ba7ceaf26e --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch @@ -0,0 +1,509 @@ +diff -rupN cp2k-2.4.0_ref/makefiles/Makefile cp2k-2.4.0/makefiles/Makefile +--- cp2k-2.4.0_ref/makefiles/Makefile 2013-08-15 10:46:04.535899216 +0100 ++++ cp2k-2.4.0/makefiles/Makefile 2013-08-15 10:53:45.827911028 +0100 +@@ -354,7 +354,7 @@ else + LIB_OBJECTS = + endif + +-$(LIB_CP2K_ARCHIVE): $(OBJECTS) ++$(LIB_CP2K_ARCHIVE): $(OBJECTS) sockets.o + $(AR) $(LIB_CP2K_ARCHIVE) $? + ifneq ($(RANLIB),) + $(RANLIB) $(LIB_CP2K_ARCHIVE) +diff -rupN cp2k-2.4.0_ref/src/cp2k_runs.F cp2k-2.4.0/src/cp2k_runs.F +--- cp2k-2.4.0_ref/src/cp2k_runs.F 2013-08-15 10:46:04.091899205 +0100 ++++ cp2k-2.4.0/src/cp2k_runs.F 2013-08-15 10:56:31.715915275 +0100 +@@ -73,10 +73,10 @@ MODULE cp2k_runs + USE input_constants, ONLY: & + bsse_run, cell_opt_run, debug_run, do_atom, do_band, do_cp2k, do_ep, & + do_farming, do_fist, do_mixed, do_opt_basis, do_optimize_input, & +- do_qmmm, do_qs, do_tamc, do_test, ehrenfest, electronic_spectra_run, & +- energy_force_run, energy_run, geo_opt_run, linear_response_run, & +- mol_dyn_run, mon_car_run, none_run, pint_run, real_time_propagation, & +- vib_anal ++ do_qmmm, do_qs, do_tamc, do_test, driver_run, ehrenfest, & ++ electronic_spectra_run, energy_force_run, energy_run, geo_opt_run, & ++ linear_response_run, mol_dyn_run, mon_car_run, none_run, pint_run, & ++ real_time_propagation, vib_anal + USE input_cp2k, ONLY: create_cp2k_input_reading,& + create_cp2k_root_section,& + create_global_section,& +@@ -117,6 +117,7 @@ MODULE cp2k_runs + USE timings, ONLY: timeset,& + timestop + USE vibrational_analysis, ONLY: vb_anal ++ USE driver, ONLY: run_driver + #include "cp_common_uses.h" + + IMPLICIT NONE +@@ -362,6 +363,8 @@ CONTAINS + error=suberror) + CASE (mol_dyn_run) + CALL qs_mol_dyn ( force_env, globenv, error=suberror ) ++ CASE (driver_run) ++ CALL run_driver ( force_env, globenv, error=suberror ) + CASE (geo_opt_run) + CALL cp_geo_opt(force_env,globenv,error=suberror) + CASE (cell_opt_run) +diff -rupN cp2k-2.4.0_ref/src/driver.F cp2k-2.4.0/src/driver.F +--- cp2k-2.4.0_ref/src/driver.F 1970-01-01 01:00:00.000000000 +0100 ++++ cp2k-2.4.0/src/driver.F 2013-08-15 15:43:44.895650242 +0100 +@@ -0,0 +1,216 @@ ++! ***************************************************************************** ++!> \brief Driver mode - To communicate with i-PI Python wrapper ++!> \par History ++!> none ++!> \author Michele Ceriotti 03.2012 ++! ***************************************************************************** ++MODULE driver ++ ++ USE force_env_methods, ONLY: force_env_calc_energy_force ++ USE force_env_types, ONLY: force_env_get,& ++ force_env_type, & ++ force_env_set_cell ++ USE kinds, ONLY: default_path_length,& ++ dp ++ USE input_section_types, ONLY: section_vals_get_subs_vals,& ++ section_vals_type,& ++ section_vals_val_get ++ ++ USE cell_types, ONLY: cell_clone,& ++ cell_create,& ++ cell_release,& ++ cell_type,& ++ compare_cells,& ++ init_cell,& ++ real_to_scaled,& ++ scaled_to_real ++ USE global_types, ONLY: global_environment_type ++ USE f77_interface, ONLY: default_para_env ++ USE cp_external_control, ONLY: external_control ++ USE message_passing, ONLY: mp_bcast, mp_sync ++ USE cp_subsys_types, ONLY: cp_subsys_release,& ++ cp_subsys_type ++ USE iso_c_binding ++ USE virial_types, ONLY: virial_type ++#include "cp_common_uses.h"t ++ ++ IMPLICIT NONE ++ ++ interface ++ subroutine usleep(useconds) bind(C) ++ ! integer(c_int) function usleep(useconds) bind(C) ++ use iso_c_binding ++ implicit none ++ integer(c_int32_t), value :: useconds ++ ! end function ++ end subroutine ++ end interface ++ ++ CONTAINS ++ SUBROUTINE run_driver ( force_env, globenv, error ) ++ TYPE(force_env_type), POINTER :: force_env ++ TYPE(global_environment_type), POINTER :: globenv ++ TYPE(cp_error_type), INTENT(inout) :: error ++ ++ TYPE(section_vals_type), POINTER :: drv_section, motion_section ++ TYPE(virial_type), POINTER :: virial ++ ++ CHARACTER(len=default_path_length) :: drv_hostname, c_hostname ++ INTEGER :: drv_port ++ LOGICAL :: drv_unix ++ ++ !MIK DRIVER ++ ! server address parsing ++ CHARACTER*1024 :: serveraddr, host ++ INTEGER socket, port, inet, nread, readbuffer, slock, swait, uwait ++ ! buffers and temporaries for communication ++ INTEGER, PARAMETER :: MSGLEN=12 ++ LOGICAL :: isinit=.true., hasdata=.false., ionode=.false. ++ CHARACTER*12 :: header ++ CHARACTER*1024 :: parbuffer ++ INTEGER nat ++ REAL *8 :: cellh(3,3), cellih(3,3), vir(3,3), pot ++ REAL*8, ALLOCATABLE :: combuf(:) ++ REAL*8 :: sigma(3,3) ++ ! access cp2k structures ++ TYPE(cp_subsys_type), POINTER :: subsys ++ integer ip, ii, idir ++ TYPE(cell_type), POINTER :: cpcell ++ logical should_stop ++ ionode=(default_para_env%source==default_para_env%mepos) ++ ++ ! reads driver parameters from input ++ motion_section => section_vals_get_subs_vals(force_env%root_section,"MOTION",error=error) ++ drv_section => section_vals_get_subs_vals(motion_section,"DRIVER",error=error) ++ ++ CALL section_vals_val_get(drv_section,"HOST",c_val=drv_hostname,error=error) ++ CALL section_vals_val_get(drv_section,"PORT",i_val=drv_port,error=error) ++ CALL section_vals_val_get(drv_section,"UNIX",l_val=drv_unix,error=error) ++ ++ ++ ! opens the socket ++ socket=0 ++ inet=1 ++ if (ionode) then ++ write(*,*) "@ i-PI DRIVER BEING LOADED" ++ write(*,*) "@ INPUT DATA: ", TRIM(drv_hostname), drv_port, drv_unix ++ c_hostname=TRIM(drv_hostname)//achar(0) ++ CALL open_socket(socket, .not. drv_unix, drv_port, c_hostname) ++ endif ++ ++ !now we have a socket, so we can initialize the CP2K environments. ++ NULLIFY(cpcell) ++ call cell_create(cpcell,error=error) ++ uwait=10000 ! number of MICROseconds to be waited in filesystem lock ++ driver_loop: DO ++ ! do communication on master node only... ++ header = "" ++ ++ ! this syncs the processes, possibly (see sockets.c) without calling MPI_Barrier, ++ ! which is nice as MPI_barrier eats up a lot of CPU for nothing ++ inet=slock(default_para_env%source, default_para_env%mepos) ++ CALL mp_sync(default_para_env%group) ++ ++ if (ionode) nread=readbuffer(socket, header, MSGLEN) ++ if (ionode) write(0,*) "returned from readbuffer" ++ ++ inet=swait(uwait, default_para_env%source, default_para_env%mepos) ++ CALL mp_sync(default_para_env%group) ++ ++ call mp_bcast(nread,default_para_env%source, default_para_env%group) ++ if (nread .eq. 0) then ++ if (ionode) write(*,*) " @ DRIVER MODE: Could not read from socket, exiting now." ++ exit ++ endif ++ ++ call mp_bcast(header,default_para_env%source, default_para_env%group) ++ ++ if (ionode) write(*,*) " @ DRIVER MODE: Message from server: ", trim(header) ++ if (trim(header) == "STATUS") then ++ ++ inet=slock(default_para_env%source, default_para_env%mepos) ++ CALL mp_sync(default_para_env%group) ++ if (ionode) then ! does not need init (well, maybe it should, just to check atom numbers and the like... ) ++ if (hasdata) then ++ call writebuffer(socket,"HAVEDATA ",MSGLEN) ++ else ++ call writebuffer(socket,"READY ",MSGLEN) ++ endif ++ endif ++ inet=swait(uwait,default_para_env%source, default_para_env%mepos) ++ CALL mp_sync(default_para_env%group) ++ else if (trim(header) == "POSDATA") then ++ if (ionode) then ++ nread=readbuffer(socket, cellh, 9*8) ++ nread=readbuffer(socket, cellih, 9*8) ++ nread=readbuffer(socket, nat, 4) ++ cellh=transpose(cellh) ++ cellih=transpose(cellih) ++ endif ++ call mp_bcast(cellh,default_para_env%source, default_para_env%group) ++ call mp_bcast(cellih,default_para_env%source, default_para_env%group) ++ call mp_bcast(nat,default_para_env%source, default_para_env%group) ++ if (.not.allocated(combuf)) allocate(combuf(3*nat)) ++ if (ionode) nread=readbuffer(socket, combuf, nat*3*8) ++ call mp_bcast(combuf,default_para_env%source, default_para_env%group) ++ ++ CALL force_env_get(force_env,subsys=subsys,error=error) ++ if (nat/=subsys%particles%n_els) WRITE(*,*) " @DRIVER MODE: Uh-oh! Particle number mismatch between i-pi and cp2k input!" ++ ii=0 ++ DO ip=1,subsys%particles%n_els ++ DO idir=1,3 ++ ii=ii+1 ++ subsys%particles%els(ip)%r(idir)=combuf(ii) ++ END DO ++ END DO ++ CALL init_cell(cpcell, hmat=cellh) ++ CALL force_env_set_cell(force_env,cell=cpcell,error=error) ++ ++ CALL force_env_calc_energy_force(force_env,calc_force=.TRUE. ,error=error) ++ ++ if (ionode) write(*,*) " @ DRIVER MODE: Received positions " ++ ++ combuf=0 ++ ii=0 ++ DO ip=1,subsys%particles%n_els ++ DO idir=1,3 ++ ii=ii+1 ++ combuf(ii)=subsys%particles%els(ip)%f(idir) ++ END DO ++ END DO ++ CALL force_env_get(force_env, potential_energy=pot, error=error) ++ CALL force_env_get(force_env,cell=cpcell, virial=virial, error=error) ++ vir = transpose(virial%pv_virial) ++ ++ CALL external_control(should_stop,"DPI",globenv=globenv,error=error) ++ IF (should_stop) EXIT ++ ++ hasdata=.true. ++ else if (trim(header)=="GETFORCE") then ++ if (ionode) write(*,*) " @ DRIVER MODE: Returning v,forces,stress " ++ if (ionode) then ++ call writebuffer(socket,"FORCEREADY ",MSGLEN) ++ call writebuffer(socket,pot,8) ++ call writebuffer(socket,nat,4) ++ call writebuffer(socket,combuf,3*nat*8) ++ call writebuffer(socket,vir,9*8) ++ ++ ! i-pi can also receive an arbitrary string, that will be printed out to the "extra" ++ ! trajectory file. this is useful if you want to return additional information, e.g. ++ ! atomic charges, wannier centres, etc. one must return the number of characters, then ++ ! the string. here we just send back zero characters. ++ nat=0 ++ call writebuffer(socket,nat,4) ! writes out zero for the length of the "extra" field (not implemented yet!) ++ endif ++ hasdata=.false. ++ else ++ if (ionode) write(*,*) " @DRIVER MODE: Socket disconnected, time to exit. " ++ exit ++ endif ++ ENDDO driver_loop ++ ++ END SUBROUTINE run_driver ++ ++END MODULE driver ++ ++ +diff -rupN cp2k-2.4.0_ref/src/input_constants.F cp2k-2.4.0/src/input_constants.F +--- cp2k-2.4.0_ref/src/input_constants.F 2013-08-15 10:46:04.107899205 +0100 ++++ cp2k-2.4.0/src/input_constants.F 2013-08-15 10:53:45.839911028 +0100 +@@ -135,7 +135,8 @@ MODULE input_constants + cell_opt_run=14,& + real_time_propagation=15,& + ehrenfest=16, & +- do_tamc=17 ++ do_tamc=17, & ++ driver_run=18 + + ! Run Types of Atom Code + INTEGER, PARAMETER, PUBLIC :: atom_no_run=1,& +diff -rupN cp2k-2.4.0_ref/src/input_cp2k.F cp2k-2.4.0/src/input_cp2k.F +--- cp2k-2.4.0_ref/src/input_cp2k.F 2013-08-15 10:46:04.131899206 +0100 ++++ cp2k-2.4.0/src/input_cp2k.F 2013-08-15 10:53:45.843911028 +0100 +@@ -422,13 +422,13 @@ CONTAINS + "BAND", "CELL_OPT", "WFN_OPT", "WAVEFUNCTION_OPTIMIZATION",& + "MOLECULAR_DYNAMICS", "GEOMETRY_OPTIMIZATION", "MONTECARLO",& + "ELECTRONIC_SPECTRA", "LINEAR_RESPONSE", "NORMAL_MODES","RT_PROPAGATION",& +- "EHRENFEST_DYN","TAMC" ),& ++ "EHRENFEST_DYN","TAMC","DRIVER" ),& + enum_i_vals=(/ none_run, energy_run, energy_force_run, mol_dyn_run,& + geo_opt_run, mon_car_run, electronic_spectra_run, debug_run,& + bsse_run, linear_response_run, pint_run, vib_anal,do_band,& + cell_opt_run, energy_run, energy_run, mol_dyn_run, geo_opt_run,& + mon_car_run, electronic_spectra_run, linear_response_run,& +- vib_anal,real_time_propagation,ehrenfest,do_tamc/),& ++ vib_anal,real_time_propagation,ehrenfest,do_tamc,driver_run/),& + enum_desc=s2a("Perform no tasks", "Computes energy","Computes energy and forces",& + "Molecular Dynamics","Geometry Optimization","Monte Carlo", "Computes absorption Spectra",& + "Performs a Debug analysis","Basis set superposition error","Linear Response",& +@@ -437,7 +437,7 @@ CONTAINS + "Alias for MC","Alias for SPECTRA","Alias for LR","Alias for VIBRATIONAL_ANALYSIS",& + "Real Time propagation run (fixed ionic positions)",& + "Ehrenfest dynamics (using real time propagation of the wavefunction)",& +- "TAMC"),& ++ "TAMC","i-PI driver mode"),& + supported_feature=.TRUE.,error=error) + CALL section_add_keyword(section,keyword,error=error) + CALL keyword_release(keyword,error=error) +diff -rupN cp2k-2.4.0_ref/src/input_cp2k_motion.F cp2k-2.4.0/src/input_cp2k_motion.F +--- cp2k-2.4.0_ref/src/input_cp2k_motion.F 2013-08-15 10:46:04.095899205 +0100 ++++ cp2k-2.4.0/src/input_cp2k_motion.F 2013-08-15 10:53:45.843911028 +0100 +@@ -103,6 +103,10 @@ CONTAINS + CALL section_add_subsection(section,subsection,error=error) + CALL section_release(subsection,error=error) + ++ CALL create_driver_section(subsection,error=error) ++ CALL section_add_subsection(section,subsection,error=error) ++ CALL section_release(subsection,error=error) ++ + CALL create_fe_section(subsection,error=error) + CALL section_add_subsection(section, subsection, error=error) + CALL section_release(subsection,error=error) +@@ -1713,6 +1717,59 @@ CONTAINS + END SUBROUTINE create_md_section + + ! ***************************************************************************** ++!> \param section will contain the driver section ++!> \param error variable to control error logging, stopping,... ++!> see module cp_error_handling ++!> \author mceriotti ++! ***************************************************************************** ++ SUBROUTINE create_driver_section(section,error) ++ TYPE(section_type), POINTER :: section ++ TYPE(cp_error_type), INTENT(inout) :: error ++ ++ CHARACTER(len=*), PARAMETER :: routineN = 'create_driver_section', & ++ routineP = moduleN//':'//routineN ++ ++ LOGICAL :: failure ++ TYPE(keyword_type), POINTER :: keyword ++ ++ failure=.FALSE. ++ ++ CPPrecondition(.NOT.ASSOCIATED(section),cp_failure_level,routineP,error,failure) ++ IF (.NOT. failure) THEN ++ CALL section_create(section,name="DRIVER",& ++ description="This section defines the parameters needed to run in i-PI driver mode.",& ++ n_keywords=3, n_subsections=0, repeats=.FALSE., required=.TRUE.,& ++ error=error) ++ ++ NULLIFY(keyword) ++ CALL keyword_create(keyword, name="unix",& ++ description="Use a UNIX socket rather than an INET socket.",& ++ usage="unix LOGICAL",& ++ default_l_val=.FALSE., lone_keyword_l_val=.TRUE., error=error) ++ CALL section_add_keyword(section,keyword,error=error) ++ CALL keyword_release(keyword,error=error) ++ ++ CALL keyword_create(keyword, name="port",& ++ description="Port number for the i-PI server.",& ++ usage="port ",& ++ default_i_val=12345, error=error) ++ CALL section_add_keyword(section,keyword,error=error) ++ CALL keyword_release(keyword,error=error) ++ ++ ++ CALL keyword_create(keyword, name="host",& ++ description="Host name for the i-PI server.",& ++ usage="host ",& ++ default_c_val="localhost", error=error) ++ CALL section_add_keyword(section,keyword,error=error) ++ CALL keyword_release(keyword,error=error) ++ ++ END IF ++ ++ END SUBROUTINE create_driver_section ++ ++ ++! ***************************************************************************** + !> \brief Defines AVERAGES section + !> \param error variable to control error logging, stopping,... + !> see module cp_error_handling +diff -rupN cp2k-2.4.0_ref/src/OBJECTDEFS cp2k-2.4.0/src/OBJECTDEFS +--- cp2k-2.4.0_ref/src/OBJECTDEFS 2013-08-15 10:46:04.091899205 +0100 ++++ cp2k-2.4.0/src/OBJECTDEFS 2013-08-15 10:53:45.843911028 +0100 +@@ -180,6 +180,7 @@ OBJECTS_GENERIC =\ + dm_ls_scf.o\ + dm_ls_scf_qs.o\ + dm_ls_scf_types.o\ ++ driver.o\ + efield_utils.o\ + eigenvalueproblems.o\ + eip_environment.o\ +diff -rupN cp2k-2.4.0_ref/src/sockets.c cp2k-2.4.0/src/sockets.c +--- cp2k-2.4.0_ref/src/sockets.c 1970-01-01 01:00:00.000000000 +0100 ++++ cp2k-2.4.0/src/sockets.c 2013-08-15 15:27:36.971625458 +0100 +@@ -0,0 +1,112 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++//#define FS_WAIT 1 // uncomment to use a file system lock rather than mpi_barrier. ++ ++void error(const char *msg) ++{ perror(msg); } ++ ++void open_socket_(int *psockfd, int* inet, int* port, char* host) // the darn fortran passes an extra argument for the string length. here I just ignore it ++{ ++ int sockfd, portno, n; ++ struct hostent *server; ++ ++ fprintf(stderr, "Connection requested %s, %d, %d\n", host, *port, *inet); ++ struct sockaddr * psock; int ssock; ++ if (*inet!=0) ++ { ++ struct sockaddr_in serv_addr; psock=(struct sockaddr *)&serv_addr; ssock=sizeof(serv_addr); ++ sockfd = socket(AF_INET, SOCK_STREAM, 0); ++ if (sockfd < 0) error("ERROR opening socket"); ++ ++ server = gethostbyname(host); ++ if (server == NULL) ++ { ++ fprintf(stderr, "ERROR, no such host %s \n", host); ++ exit(-1); ++ } ++ ++ bzero((char *) &serv_addr, sizeof(serv_addr)); ++ serv_addr.sin_family = AF_INET; ++ bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); ++ serv_addr.sin_port = htons(*port); ++ } ++ else ++ { ++ struct sockaddr_un serv_addr; psock=(struct sockaddr *)&serv_addr; ssock=sizeof(serv_addr); ++ sockfd = socket(AF_UNIX, SOCK_STREAM, 0); ++ bzero((char *) &serv_addr, sizeof(serv_addr)); ++ serv_addr.sun_family = AF_UNIX; ++ strcpy(serv_addr.sun_path, "/tmp/ipi_"); ++ strcpy(serv_addr.sun_path+9, host); ++ } ++ ++ if (connect(sockfd, psock, ssock) < 0) error("ERROR connecting"); ++ ++ *psockfd=sockfd; ++} ++ ++void writebuffer_(int *psockfd, char *data, int* plen) ++{ ++ int n; ++ int sockfd=*psockfd; ++ int len=*plen; ++ ++ n = write(sockfd,data,len); ++ if (n < 0) error("ERROR writing to socket\n"); ++} ++ ++ ++int readbuffer_(int *psockfd, char *data, int* plen) ++{ ++ int n, nr; ++ int sockfd=*psockfd; ++ int len=*plen; ++ ++ n = nr = read(sockfd,data,len); ++ ++ while (nr>0 && n Date: Thu, 7 Aug 2014 14:37:19 +0300 Subject: [PATCH 006/732] Adding modified configs and patch file --- .../c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb | 20 +++++++++---------- .../c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb | 18 ++++++++--------- .../easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch | 1 + 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb index 8c26b632c2..567f926654 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb @@ -4,9 +4,9 @@ versionsuffix = '-ipi' homepage = 'http://www.cp2k.org' description = """CP2K is a freely available (GPL) program, written in Fortran 95, - to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. - It provides a general framework for different methods such as e.g. density functional theory (DFT) - using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials. """ + to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. + It provides a general framework for different methods such as e.g. density functional theory (DFT) + using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials. """ toolchain = {'name': 'goolf', 'version': '1.4.10'} @@ -15,15 +15,15 @@ source_urls = ['http://sourceforge.net/projects/cp2k/files/'] sources = ['%s-%s.tar.bz2' % (name.lower(), version)] patches = [ - 'cp2k-2.4.0_ipi.patch', - 'fix_compile_date_lastcvs.patch', - 'do_regtest_nocompile.patch' - ] + 'cp2k-2.4.0_ipi.patch', + 'fix_compile_date_lastcvs.patch', + 'do_regtest_nocompile.patch' + ] builddependencies = [ - ('flex', '2.5.35'), - ('Bison', '2.5') - ] + ('flex', '2.5.35'), + ('Bison', '2.5') + ] dependencies = [('Libint', '1.1.4')] diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb index 9389d88e83..d44d72b4be 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb @@ -3,9 +3,9 @@ version = '2.4.0' homepage = 'http://www.cp2k.org' description = """CP2K is a freely available (GPL) program, written in Fortran 95, - to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. - It provides a general framework for different methods such as e.g. density functional theory (DFT) - using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials. """ + to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. + It provides a general framework for different methods such as e.g. density functional theory (DFT) + using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials. """ toolchain = {'name': 'goolf', 'version': '1.4.10'} @@ -14,14 +14,14 @@ source_urls = ['http://sourceforge.net/projects/cp2k/files/'] sources = ['%s-%s.tar.bz2' % (name.lower(), version)] patches = [ - 'fix_compile_date_lastcvs.patch', - 'do_regtest_nocompile.patch' - ] + 'fix_compile_date_lastcvs.patch', + 'do_regtest_nocompile.patch' + ] builddependencies = [ - ('flex', '2.5.35'), - ('Bison', '2.5') - ] + ('flex', '2.5.35'), + ('Bison', '2.5') + ] dependencies = [('Libint', '1.1.4')] diff --git a/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch b/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch index ba7ceaf26e..b8115df6c5 100644 --- a/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch +++ b/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch @@ -1,3 +1,4 @@ +#This patch makes CP2K source code compatible with i-pi diff -rupN cp2k-2.4.0_ref/makefiles/Makefile cp2k-2.4.0/makefiles/Makefile --- cp2k-2.4.0_ref/makefiles/Makefile 2013-08-15 10:46:04.535899216 +0100 +++ cp2k-2.4.0/makefiles/Makefile 2013-08-15 10:53:45.827911028 +0100 -- GitLab From 6d5ab1a5269f91edace9031576fd66789f3ba1bb Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 3 Sep 2014 13:10:39 +0200 Subject: [PATCH 007/732] add easyconfigs for pplacer and OCaml deps --- .../batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb | 32 ++++++++++++++ .../CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb | 36 +++++++++++++++ .../csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb | 35 +++++++++++++++ .../findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb | 29 ++++++++++++ ...SL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb | 35 +++++++++++++++ ...L-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb | 32 ++++++++++++++ ...L-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb | 31 +++++++++++++ .../o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb | 3 ++ .../o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 44 +++++++++++++++++++ .../o/OCaml/OCaml-4.01.0_icc-fixes.patch | 11 +++++ ...er-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 41 +++++++++++++++++ .../s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb | 35 +++++++++++++++ ...e3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb | 32 ++++++++++++++ .../t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb | 19 ++++++++ .../Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb | 20 +++++++++ 15 files changed, 435 insertions(+) create mode 100644 easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch create mode 100644 easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb diff --git a/easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..42ce7ca6fb --- /dev/null +++ b/easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,32 @@ +name = 'batteries' +version = '2.2' + +homepage = 'http://batteries.forge.ocamlcore.org/' +description = """OCaml Batteries included (or simply "Batteries") is a community-driven effort to standardize on an + consistent, documented, and comprehensive development platform for the OCaml programming language.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['http://forge.ocamlcore.org/frs/download.php/1363/'] +sources = [SOURCE_TAR_GZ] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [(ocaml, ocamlver)] + +skipsteps = ['configure'] + +buildopts = 'all' +preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib" + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['site-lib/batteries'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..29ce049ecc --- /dev/null +++ b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,36 @@ +name = 'CamlZIP' +version = '1.05' + +homepage = 'https://forge.ocamlcore.org/projects/camlzip/' +description = """This OCaml library provides easy access to compressed files in ZIP + and GZIP format, as well as to Java JAR files. It provides functions + for reading from and writing to compressed files in these formats.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['https://forge.ocamlcore.org/frs/download.php/1037/'] +sources = [SOURCE_TAR_GZ] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [ + (ocaml, ocamlver), + ('zlib', '1.2.7'), +] + +skipsteps = ['configure', 'install'] + +prebuildopts = "mkdir -p %(installdir)s/site-lib && " +buildopts = 'all && make allopt && OCAMLFIND_DESTDIR=%(installdir)s/site-lib make install-findlib' + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['site-lib/zip'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..4b85bf3dd4 --- /dev/null +++ b/easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,35 @@ +name = 'csv' +version = '1.3.3' + +homepage = 'https://forge.ocamlcore.org/projects/csv/' +description = """This is a pure OCaml library to read and write CSV files, including all extensions used by Excel -- + e.g., quotes, newlines, 8 bit characters in fields, "0 etc.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['https://forge.ocamlcore.org/frs/download.php/1376/'] +sources = [SOURCE_TAR_GZ] + +patches = ['csv-%(version)s_prefix.patch'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [(ocaml, ocamlver)] + +skipsteps = ['configure', 'build'] + +preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib PREFIX=%(installdir)s " + +parallel = 1 + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': ['bin/csvtool'], + 'dirs': ['site-lib/csv'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..d5d33d89fc --- /dev/null +++ b/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,29 @@ +name = 'findlib' +version = '1.5.2' + +homepage = 'http://projects.camlcity.org/projects/findlib.html' +description = """Findlib is a library manager for Objective Caml. It provides a convention how to store libraries, + and a file format ("META") to describe the properties of libraries. There is also a tool (ocamlfind) for interpreting + the META files, so that it is very easy to use libraries in programs and scripts.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['http://download.camlcity.org/download/'] +sources = [SOURCE_TAR_GZ] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) +dependencies = [(ocaml, ocamlver)] + +skipsteps = ['configure'] + +premakeopts = "./configure -bindir %(installdir)s/bin && " +preinstallopts = "mkdir %(installdir)s/site-lib && PATH=%(installdir)s/bin:$PATH" + +sanity_check_paths = { + 'files': ['bin/ocamlfind', 'bin/safe_camlp4'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..3ea3a84e5e --- /dev/null +++ b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,35 @@ +name = 'GSL-OCaml' +version = '0.6.3' + +homepage = 'http://mmottl.github.io/gsl-ocaml/' +description = "OCaml bindings to the GSL (GNU Scientific Library)." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['https://github.com/mmottl/gsl-ocaml/archive/'] +sources = ['v%(version)s.tar.gz'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [ + (ocaml, ocamlver), + ('GSL', '1.16'), +] + +skipsteps = ['configure'] +prebuildopts = "OCAML_BACKEND=gcc" +preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAML_BACKEND=gcc OCAMLFIND_DESTDIR=%(installdir)s/site-lib" + +parallel = 1 + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ["site-lib/gsl"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..8ebdaa8e3c --- /dev/null +++ b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,32 @@ +name = 'GSL-OCaml' +version = '1.17.2' + +homepage = 'http://mmottl.github.io/gsl-ocaml/' +description = "OCaml bindings to the GSL (GNU Scientific Library)." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['https://github.com/mmottl/gsl-ocaml/archive/'] +sources = ['v%(version)s.tar.gz'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [ + (ocaml, ocamlver), + ('GSL', '1.16'), +] + +configopts = "--destdir=%(installdir)s" +preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib" + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ["site-lib/gsl"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..87454947cb --- /dev/null +++ b/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,31 @@ +name = 'MCL' +version = '12-068oasis4' + +homepage = 'https://github.com/fhcrc/mcl' +description = """Graph clustering by flow simulation.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/fhcrc/mcl/archive/'] +sources = ['%(version)s.tar.gz'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [(ocaml, ocamlver)] + +preconfigopts = "ocaml setup.ml -configure --prefix %(installdir)s && " +buildopts = "&& ocaml setup.ml -build" +preinstallopts = "mkdir -p %(installdir)s/site-lib &&" +installopts = "&& OCAMLFIND_DESTDIR=%(installdir)s/site-lib ocaml setup.ml -install" + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb index ce145c9209..00d6056acc 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb @@ -26,11 +26,14 @@ builddependencies = [('Autoconf', '2.69')] dependencies = [('ncurses', '5.9')] prefix_opt = "-prefix " +configopts = '-cc "$CC $CFLAGS"' buildopts = "world.opt" # parallel build tends to break parallel = 1 +modextrapaths = {'CAML_LD_LIBRARY_PATH': 'lib'} + sanity_check_paths = { 'files': ["bin/ocaml", "bin/ocamlc"], 'dirs': [] diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb new file mode 100644 index 0000000000..1c91aeafaa --- /dev/null +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +## + +name = "OCaml" +version = "4.01.0" + +homepage = 'http://ocaml.org/' +description = """OCaml is a general purpose industrial-strength programming language + with an emphasis on expressiveness and safety. Developed for more than 20 years at Inria + it benefits from one of the most advanced type systems and supports functional, + imperative and object-oriented styles of programming.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = ['ocaml-%(version)s.tar.gz'] +sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) +source_urls = ['http://caml.inria.fr/pub/distrib/%s' % sourcedir] + +patches = ['OCaml-%(version)s_icc-fixes.patch'] + +builddependencies = [('Autoconf', '2.69')] +dependencies = [('ncurses', '5.9')] + +prefix_opt = "-prefix " +configopts = '-cc "$CC $CFLAGS"' +buildopts = "world.opt" + +# parallel build tends to break +parallel = 1 + +modextrapaths = {'CAML_LD_LIBRARY_PATH': 'lib'} + +sanity_check_paths = { + 'files': ["bin/ocaml", "bin/ocamlc"], + 'dirs': [] +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch new file mode 100644 index 0000000000..595505634a --- /dev/null +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -0,0 +1,11 @@ +--- ocaml-4.01.0/configure.orig 2014-08-19 12:26:23.008974288 +0200 ++++ ocaml-4.01.0/configure 2014-08-19 12:27:15.800298562 +0200 +@@ -1015,7 +1015,7 @@ + fi + + has_select=no +-if sh ./hasgot select && \ ++if cc="$cc -wd165" sh ./hasgot select && \ + sh ./hasgot -i sys/types.h $select_include -t fd_set ; then + echo "select() found." + echo "#define HAS_SELECT" >> s.h diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..48464d06a1 --- /dev/null +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,41 @@ +easyblock = 'MakeCp' + +name = 'pplacer' +version = '1.1.alpha16' + +homepage = 'http://matsen.fhcrc.org/pplacer/' +description = """Pplacer places query sequences on a fixed reference phylogenetic tree to maximize phylogenetic + likelihood or posterior probability according to a reference alignment. Pplacer is designed to be fast, to give + useful information about uncertainty, and to offer advanced visualization and downstream analysis.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['https://github.com/matsen/pplacer/archive/'] +sources = ['v%(version)s.tar.gz'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [ + (ocaml, ocamlver), + ('batteries', '2.2', versionsuffix), + ('CamlZIP', '1.05', versionsuffix), + ('GSL-OCaml', '0.6.3', versionsuffix), + ('csv', '1.3.3', versionsuffix), + ('SQLite3-OCaml', '2.0.6', versionsuffix), + ('Xmlm', '1.2.0', versionsuffix), + ('MCL', '12-068oasis4', versionsuffix), +] + +prebuildopts = "echo 'let version = \"v1.1.alpha16-9-g78ea126\"\n' > common_src/version.ml && " +parallel = 1 + +files_to_copy = ['bin'] + +sanity_check_paths = { + 'files': ['bin/guppy', 'bin/pplacer', 'bin/rppr'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb new file mode 100644 index 0000000000..ab3d1ec5e2 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +name = 'SQLite' +version = '3.8.6' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s00.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..d08ea78903 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,32 @@ +name = 'SQLite3-OCaml' +version = '2.0.6' + +homepage = 'https://github.com/mmottl/sqlite3-ocaml' +description = "OCaml bindings to the SQLite3 database.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['https://github.com/mmottl/sqlite3-ocaml/archive/'] +sources = ['v%(version)s.tar.gz'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [ + (ocaml, ocamlver), + ('SQLite', '3.8.6'), +] + +configopts = "--destdir=%(installdir)s" +preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib" + +modextrapaths = {'OCAMLPATH': 'site-lib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ["site-lib/sqlite3"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb new file mode 100644 index 0000000000..19a137231e --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb @@ -0,0 +1,19 @@ +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..7c572b469c --- /dev/null +++ b/easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,20 @@ +name = 'Xmlm' +version = '1.2.0' + +homepage = 'http://erratique.ch/software/xmlm' +description = """Xmlm is an OCaml streaming codec to decode and encode the XML data format. It can process XML + documents without a complete in-memory representation of the data.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['http://erratique.ch/software/xmlm/releases'] +sources = ['%(namelower)s-%(version)s.tbz'] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) + +builddependencies = [('findlib', '1.5.2', versionsuffix)] +dependencies = [(ocaml, ocamlver)] + +moduleclass = 'lib' -- GitLab From fc5be4489ad03f74f3d96f64582bb266f8d3f495 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 4 Sep 2014 09:08:06 +0200 Subject: [PATCH 008/732] ad missing patch file for csv --- easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch diff --git a/easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch b/easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch new file mode 100644 index 0000000000..d76bf10483 --- /dev/null +++ b/easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch @@ -0,0 +1,11 @@ +--- csv-1.3.3/Makefile.orig 2014-08-25 14:32:19.026905764 +0200 ++++ csv-1.3.3/Makefile 2014-08-25 14:32:33.607257131 +0200 +@@ -16,7 +16,7 @@ + ocaml setup.ml -build + + configure: setup.ml +- ocaml $< -configure --enable-tests ++ ocaml $< -configure --enable-tests --prefix $(PREFIX) + + setup.ml: _oasis + oasis setup -setup-update dynamic -- GitLab From 42760da1a91bed74172b2bb0d725b18d5ad9288c Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 4 Sep 2014 09:34:26 +0200 Subject: [PATCH 009/732] add zlib dependency for pplacer --- .../p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index 48464d06a1..935d5edab7 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -18,6 +18,7 @@ ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ + ('zlib', '1.2.7'), (ocaml, ocamlver), ('batteries', '2.2', versionsuffix), ('CamlZIP', '1.05', versionsuffix), -- GitLab From 9c13932ce72143051fe757a4700d7b19527302e5 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 4 Sep 2014 09:48:43 +0200 Subject: [PATCH 010/732] Revert "add zlib dependency for pplacer" This reverts commit 42760da1a91bed74172b2bb0d725b18d5ad9288c. --- .../p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index 935d5edab7..48464d06a1 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -18,7 +18,6 @@ ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ - ('zlib', '1.2.7'), (ocaml, ocamlver), ('batteries', '2.2', versionsuffix), ('CamlZIP', '1.05', versionsuffix), -- GitLab From 81722803bfb713021130fbb7760b51de6e738b86 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 4 Sep 2014 11:27:54 +0200 Subject: [PATCH 011/732] fix location of findlib.conf --- .../f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb index d5d33d89fc..e9f92f5302 100644 --- a/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb @@ -18,11 +18,13 @@ dependencies = [(ocaml, ocamlver)] skipsteps = ['configure'] -premakeopts = "./configure -bindir %(installdir)s/bin && " +premakeopts = "./configure -bindir %(installdir)s/bin -config %(installdir)s/findlib.conf && " preinstallopts = "mkdir %(installdir)s/site-lib && PATH=%(installdir)s/bin:$PATH" +modextravars = {'OCAMLFIND_CONF': '%(installdir)s/findlib.conf'} + sanity_check_paths = { - 'files': ['bin/ocamlfind', 'bin/safe_camlp4'], + 'files': ['bin/ocamlfind', 'bin/safe_camlp4', 'findlib.conf'], 'dirs': [], } -- GitLab From 9f73f3d64912e83a53eb5bde17eea4d9c3239c3a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 10 Oct 2014 16:48:31 +0200 Subject: [PATCH 012/732] get rid of unnecessary patch for OCaml with ictce --- .../easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 2 -- .../easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 11 ----------- 2 files changed, 13 deletions(-) delete mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 1c91aeafaa..6ad336f36b 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -22,8 +22,6 @@ sources = ['ocaml-%(version)s.tar.gz'] sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) source_urls = ['http://caml.inria.fr/pub/distrib/%s' % sourcedir] -patches = ['OCaml-%(version)s_icc-fixes.patch'] - builddependencies = [('Autoconf', '2.69')] dependencies = [('ncurses', '5.9')] diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch deleted file mode 100644 index 595505634a..0000000000 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ocaml-4.01.0/configure.orig 2014-08-19 12:26:23.008974288 +0200 -+++ ocaml-4.01.0/configure 2014-08-19 12:27:15.800298562 +0200 -@@ -1015,7 +1015,7 @@ - fi - - has_select=no --if sh ./hasgot select && \ -+if cc="$cc -wd165" sh ./hasgot select && \ - sh ./hasgot -i sys/types.h $select_include -t fd_set ; then - echo "select() found." - echo "#define HAS_SELECT" >> s.h -- GitLab From 53128ed575b3c95c43ca2a811bd65edd31d0482a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 10 Oct 2014 17:21:57 +0200 Subject: [PATCH 013/732] Revert "get rid of unnecessary patch for OCaml with ictce" This reverts commit 9f73f3d64912e83a53eb5bde17eea4d9c3239c3a. --- .../easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 2 ++ .../easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 6ad336f36b..1c91aeafaa 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -22,6 +22,8 @@ sources = ['ocaml-%(version)s.tar.gz'] sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) source_urls = ['http://caml.inria.fr/pub/distrib/%s' % sourcedir] +patches = ['OCaml-%(version)s_icc-fixes.patch'] + builddependencies = [('Autoconf', '2.69')] dependencies = [('ncurses', '5.9')] diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch new file mode 100644 index 0000000000..595505634a --- /dev/null +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -0,0 +1,11 @@ +--- ocaml-4.01.0/configure.orig 2014-08-19 12:26:23.008974288 +0200 ++++ ocaml-4.01.0/configure 2014-08-19 12:27:15.800298562 +0200 +@@ -1015,7 +1015,7 @@ + fi + + has_select=no +-if sh ./hasgot select && \ ++if cc="$cc -wd165" sh ./hasgot select && \ + sh ./hasgot -i sys/types.h $select_include -t fd_set ; then + echo "select() found." + echo "#define HAS_SELECT" >> s.h -- GitLab From b7a9da861043eb87f6519823a05253022134e40e Mon Sep 17 00:00:00 2001 From: Jordi Blasco Date: Thu, 26 Mar 2015 11:12:41 +1300 Subject: [PATCH 014/732] itac-9.0.3.051 --- .../easyconfigs/i/itac/itac-9.0.3.051.eb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 easybuild/easyconfigs/i/itac/itac-9.0.3.051.eb diff --git a/easybuild/easyconfigs/i/itac/itac-9.0.3.051.eb b/easybuild/easyconfigs/i/itac/itac-9.0.3.051.eb new file mode 100644 index 0000000000..42551d67c6 --- /dev/null +++ b/easybuild/easyconfigs/i/itac/itac-9.0.3.051.eb @@ -0,0 +1,21 @@ +name = 'itac' +version = '9.0.3.051' + +homepage = 'http://software.intel.com/en-us/intel-trace-analyzer/' +description = """The Intel Trace Collector is a low-overhead tracing library that performs + event-based tracing in applications. The Intel Trace Analyzer provides a convenient way to monitor application + activities gathered by the Intel Trace Collector through graphical displays. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_itac_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +preferredmpi = 'impi5' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'tools' -- GitLab From b9f6e36fe37d60e768e3c8a11290d4ccad3541c9 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 19 May 2015 23:02:17 +0200 Subject: [PATCH 015/732] include extensions in OCaml easyconfigs --- .../csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb | 35 ------------------ .../easyconfigs/c/csv/csv-1.3.3_prefix.patch | 11 ------ .../findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb | 31 ---------------- .../o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb | 33 +++++++++-------- .../o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 37 ++++++++++--------- .../Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb | 20 ---------- 6 files changed, 37 insertions(+), 130 deletions(-) delete mode 100644 easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb delete mode 100644 easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch delete mode 100644 easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb delete mode 100644 easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb diff --git a/easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index 4b85bf3dd4..0000000000 --- a/easybuild/easyconfigs/c/csv/csv-1.3.3-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,35 +0,0 @@ -name = 'csv' -version = '1.3.3' - -homepage = 'https://forge.ocamlcore.org/projects/csv/' -description = """This is a pure OCaml library to read and write CSV files, including all extensions used by Excel -- - e.g., quotes, newlines, 8 bit characters in fields, "0 etc.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['https://forge.ocamlcore.org/frs/download.php/1376/'] -sources = [SOURCE_TAR_GZ] - -patches = ['csv-%(version)s_prefix.patch'] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -builddependencies = [('findlib', '1.5.2', versionsuffix)] -dependencies = [(ocaml, ocamlver)] - -skipsteps = ['configure', 'build'] - -preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib PREFIX=%(installdir)s " - -parallel = 1 - -modextrapaths = {'OCAMLPATH': 'site-lib'} - -sanity_check_paths = { - 'files': ['bin/csvtool'], - 'dirs': ['site-lib/csv'], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch b/easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch deleted file mode 100644 index d76bf10483..0000000000 --- a/easybuild/easyconfigs/c/csv/csv-1.3.3_prefix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- csv-1.3.3/Makefile.orig 2014-08-25 14:32:19.026905764 +0200 -+++ csv-1.3.3/Makefile 2014-08-25 14:32:33.607257131 +0200 -@@ -16,7 +16,7 @@ - ocaml setup.ml -build - - configure: setup.ml -- ocaml $< -configure --enable-tests -+ ocaml $< -configure --enable-tests --prefix $(PREFIX) - - setup.ml: _oasis - oasis setup -setup-update dynamic diff --git a/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index e9f92f5302..0000000000 --- a/easybuild/easyconfigs/f/findlib/findlib-1.5.2-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,31 +0,0 @@ -name = 'findlib' -version = '1.5.2' - -homepage = 'http://projects.camlcity.org/projects/findlib.html' -description = """Findlib is a library manager for Objective Caml. It provides a convention how to store libraries, - and a file format ("META") to describe the properties of libraries. There is also a tool (ocamlfind) for interpreting - the META files, so that it is very easy to use libraries in programs and scripts.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['http://download.camlcity.org/download/'] -sources = [SOURCE_TAR_GZ] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) -dependencies = [(ocaml, ocamlver)] - -skipsteps = ['configure'] - -premakeopts = "./configure -bindir %(installdir)s/bin -config %(installdir)s/findlib.conf && " -preinstallopts = "mkdir %(installdir)s/site-lib && PATH=%(installdir)s/bin:$PATH" - -modextravars = {'OCAMLFIND_CONF': '%(installdir)s/findlib.conf'} - -sanity_check_paths = { - 'files': ['bin/ocamlfind', 'bin/safe_camlp4', 'findlib.conf'], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb index b4bc7ba9b4..eef25b2450 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb @@ -6,9 +6,6 @@ # License:: MIT/GPL # $Id$ ## - -easyblock = 'ConfigureMake' - name = "OCaml" version = "4.01.0" @@ -20,25 +17,29 @@ description = """OCaml is a general purpose industrial-strength programming lang toolchain = {'version': '1.4.10', 'name': 'goolf'} -sources = ['ocaml-%(version)s.tar.gz'] -sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) -source_urls = ['http://caml.inria.fr/pub/distrib/%s' % sourcedir] +ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) +opam_ver = '1.2.2' +source_urls = [ + 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, + 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, +] +sources = [ + 'ocaml-%(version)s.tar.gz', + 'opam-full-%s.tar.gz' % opam_ver, +] builddependencies = [('Autoconf', '2.69')] dependencies = [('ncurses', '5.9')] -prefix_opt = "-prefix " -configopts = '-cc "$CC $CFLAGS"' -buildopts = "world.opt" - # parallel build tends to break parallel = 1 -modextrapaths = {'CAML_LD_LIBRARY_PATH': 'lib'} - -sanity_check_paths = { - 'files': ["bin/ocaml", "bin/ocamlc"], - 'dirs': [] -} +# handled by OPAM, order matters! +exts_list = [ + ('ocamlfind', '1.5.5'), + ('batteries', '2.3.1'), + ('csv', '1.3.4'), + ('xmlm', '1.2.0'), +] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 1c91aeafaa..5c9d36e6b7 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -1,12 +1,11 @@ ## # This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild # -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos # License:: MIT/GPL # $Id$ ## - name = "OCaml" version = "4.01.0" @@ -16,29 +15,33 @@ description = """OCaml is a general purpose industrial-strength programming lang it benefits from one of the most advanced type systems and supports functional, imperative and object-oriented styles of programming.""" -toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchain = {'version': '1.4.10', 'name': 'goolf'} -sources = ['ocaml-%(version)s.tar.gz'] -sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) -source_urls = ['http://caml.inria.fr/pub/distrib/%s' % sourcedir] +ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) +opam_ver = '1.2.2' +source_urls = [ + 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, + 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, +] +sources = [ + 'ocaml-%(version)s.tar.gz', + 'opam-full-%s.tar.gz' % opam_ver, +] patches = ['OCaml-%(version)s_icc-fixes.patch'] builddependencies = [('Autoconf', '2.69')] dependencies = [('ncurses', '5.9')] -prefix_opt = "-prefix " -configopts = '-cc "$CC $CFLAGS"' -buildopts = "world.opt" - # parallel build tends to break parallel = 1 -modextrapaths = {'CAML_LD_LIBRARY_PATH': 'lib'} - -sanity_check_paths = { - 'files': ["bin/ocaml", "bin/ocamlc"], - 'dirs': [] -} +# handled by OPAM, order matters! +exts_list = [ + ('ocamlfind', '1.5.5'), + ('batteries', '2.3.1'), + ('csv', '1.3.4'), + ('xmlm', '1.2.0'), +] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index 7c572b469c..0000000000 --- a/easybuild/easyconfigs/x/Xmlm/Xmlm-1.2.0-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,20 +0,0 @@ -name = 'Xmlm' -version = '1.2.0' - -homepage = 'http://erratique.ch/software/xmlm' -description = """Xmlm is an OCaml streaming codec to decode and encode the XML data format. It can process XML - documents without a complete in-memory representation of the data.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['http://erratique.ch/software/xmlm/releases'] -sources = ['%(namelower)s-%(version)s.tbz'] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -builddependencies = [('findlib', '1.5.2', versionsuffix)] -dependencies = [(ocaml, ocamlver)] - -moduleclass = 'lib' -- GitLab From 1d979ba9139bf6c729cc1e532614ce3e8723c564 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Sep 2015 15:14:08 +0300 Subject: [PATCH 016/732] Adding modified configs --- .../c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb | 12 ++++++------ .../easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb | 8 ++++---- .../{cp2k-2.4.0_ipi.patch => CP2K-2.4.0_ipi.patch} | 0 3 files changed, 10 insertions(+), 10 deletions(-) rename easybuild/easyconfigs/c/CP2K/{cp2k-2.4.0_ipi.patch => CP2K-2.4.0_ipi.patch} (100%) diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb index 567f926654..b708ab38e5 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb @@ -12,18 +12,18 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['http://sourceforge.net/projects/cp2k/files/'] -sources = ['%s-%s.tar.bz2' % (name.lower(), version)] +sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'cp2k-2.4.0_ipi.patch', - 'fix_compile_date_lastcvs.patch', + 'CP2K-2.4.0_ipi.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', 'do_regtest_nocompile.patch' - ] +] builddependencies = [ ('flex', '2.5.35'), ('Bison', '2.5') - ] +] dependencies = [('Libint', '1.1.4')] @@ -34,4 +34,4 @@ parallel = 1 # about 100 tests fail ignore_regtest_fails=True -moduleclass = 'chem' + diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb index d44d72b4be..d3bcea99ca 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb @@ -11,17 +11,17 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['http://sourceforge.net/projects/cp2k/files/'] -sources = ['%s-%s.tar.bz2' % (name.lower(), version)] +sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'fix_compile_date_lastcvs.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', 'do_regtest_nocompile.patch' - ] +] builddependencies = [ ('flex', '2.5.35'), ('Bison', '2.5') - ] +] dependencies = [('Libint', '1.1.4')] diff --git a/easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch similarity index 100% rename from easybuild/easyconfigs/c/CP2K/cp2k-2.4.0_ipi.patch rename to easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch -- GitLab From 3e1f8943e1ff8924bee86a1ca13c0b4527d18352 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Sep 2015 15:16:30 +0300 Subject: [PATCH 017/732] last changes --- .../easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb | 2 +- .../easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb index b708ab38e5..aa550ff0b9 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb @@ -34,4 +34,4 @@ parallel = 1 # about 100 tests fail ignore_regtest_fails=True - +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch b/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch deleted file mode 100644 index a50d6e9cf4..0000000000 --- a/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- makefiles/Makefile.orig 2012-08-21 14:35:17.000000000 +0300 -+++ makefiles/Makefile 2013-11-12 12:41:29.361582641 +0200 -@@ -194,7 +194,7 @@ - # - ifeq ($(CPPSHELL),) - CPPSHELL := -D__COMPILE_ARCH="\"$(ARCH)\""\ -- -D__COMPILE_DATE="\"$(shell date)\""\ -+ -D__COMPILE_DATE="\"$(shell date | sed 's/ /_/g')\""\ - -D__COMPILE_HOST="\"$(shell hostname)\""\ - -D__COMPILE_REVISION="\"$(strip $(REVISION))\"" - endif -- GitLab From e61aac2fab0c11ba2dda71871b89e71c2e632e60 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Sep 2015 16:04:42 +0300 Subject: [PATCH 018/732] Adding accidentally deleted patch --- .../easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch diff --git a/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch b/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch new file mode 100644 index 0000000000..a50d6e9cf4 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch @@ -0,0 +1,11 @@ +--- makefiles/Makefile.orig 2012-08-21 14:35:17.000000000 +0300 ++++ makefiles/Makefile 2013-11-12 12:41:29.361582641 +0200 +@@ -194,7 +194,7 @@ + # + ifeq ($(CPPSHELL),) + CPPSHELL := -D__COMPILE_ARCH="\"$(ARCH)\""\ +- -D__COMPILE_DATE="\"$(shell date)\""\ ++ -D__COMPILE_DATE="\"$(shell date | sed 's/ /_/g')\""\ + -D__COMPILE_HOST="\"$(shell hostname)\""\ + -D__COMPILE_REVISION="\"$(strip $(REVISION))\"" + endif -- GitLab From 6dfa12bbcd946d3eab429cf96037dc8fcb6ced3b Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Tue, 22 Sep 2015 15:06:43 +0300 Subject: [PATCH 019/732] Making changes according to comments --- .../easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb | 6 +++--- .../easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch | 2 ++ .../easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch | 11 ----------- 4 files changed, 6 insertions(+), 15 deletions(-) delete mode 100644 easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb index aa550ff0b9..5716e9f33a 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb @@ -15,8 +15,8 @@ source_urls = ['http://sourceforge.net/projects/cp2k/files/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'CP2K-2.4.0_ipi.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', + 'CP2K-%(version)s_ipi.patch', + 'CP2K-%(version)s-fix_compile_date_lastsvn.patch', 'do_regtest_nocompile.patch' ] @@ -34,4 +34,4 @@ parallel = 1 # about 100 tests fail ignore_regtest_fails=True -moduleclass = 'chem' + diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb index d3bcea99ca..5c6f21e195 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10.eb @@ -14,7 +14,7 @@ source_urls = ['http://sourceforge.net/projects/cp2k/files/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', + 'CP2K-%(version)s-fix_compile_date_lastsvn.patch', 'do_regtest_nocompile.patch' ] diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch index b8115df6c5..3c7cc4aaec 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0_ipi.patch @@ -1,4 +1,6 @@ #This patch makes CP2K source code compatible with i-pi +#It was created by the CP2K team and can be found in the following link: +#https://github.com/i-pi/i-pi/tree/master/patches diff -rupN cp2k-2.4.0_ref/makefiles/Makefile cp2k-2.4.0/makefiles/Makefile --- cp2k-2.4.0_ref/makefiles/Makefile 2013-08-15 10:46:04.535899216 +0100 +++ cp2k-2.4.0/makefiles/Makefile 2013-08-15 10:53:45.827911028 +0100 diff --git a/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch b/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch deleted file mode 100644 index a50d6e9cf4..0000000000 --- a/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- makefiles/Makefile.orig 2012-08-21 14:35:17.000000000 +0300 -+++ makefiles/Makefile 2013-11-12 12:41:29.361582641 +0200 -@@ -194,7 +194,7 @@ - # - ifeq ($(CPPSHELL),) - CPPSHELL := -D__COMPILE_ARCH="\"$(ARCH)\""\ -- -D__COMPILE_DATE="\"$(shell date)\""\ -+ -D__COMPILE_DATE="\"$(shell date | sed 's/ /_/g')\""\ - -D__COMPILE_HOST="\"$(shell hostname)\""\ - -D__COMPILE_REVISION="\"$(strip $(REVISION))\"" - endif -- GitLab From 1c99c6b8f1c70ce1f5d6bd21d959ef4c592ece44 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Tue, 22 Sep 2015 15:31:55 +0300 Subject: [PATCH 020/732] adding back original patch file --- .../c/CP2K/fix_compile_date_lastcvs.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch diff --git a/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch b/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch new file mode 100644 index 0000000000..97dca5d868 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/fix_compile_date_lastcvs.patch @@ -0,0 +1,14 @@ +--- makefiles/Makefile.orig 2010-12-10 05:35:15.000000000 +0100 ++++ makefiles/Makefile 2011-01-24 10:14:35.000000000 +0100 +@@ -149,9 +149,9 @@ + # + ifeq ($(CPPSHELL),) + CPPSHELL := -D__COMPILE_ARCH="\"$(ARCH)\""\ +- -D__COMPILE_DATE="\"$(shell date)\""\ ++ -D__COMPILE_DATE="\"$(shell date | sed 's/ /_/g')\""\ + -D__COMPILE_HOST="\"$(shell hostname)\""\ +- -D__COMPILE_LASTCVS="\"$(shell tail -n1 $(SRCDIR)/CVS/Entries)\"" ++ -D__COMPILE_LASTCVS="\"$(shell tail -n1 $(SRCDIR)/CVS/Entries | sed 's/ /_/g')\"" + endif + + ifneq ($(CPP),) -- GitLab From 362a6d3cb7afa719253aafe12c3aeb8a8cfe88ad Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 14:56:37 +0200 Subject: [PATCH 021/732] remove old svnversion build dep in Python 2.5.6 easyconfigs (patch makes it uneccesary) --- .../p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb | 4 ---- .../p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb | 4 ---- .../easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb | 4 ---- .../easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb | 4 ---- .../easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb | 4 ---- .../easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb | 4 ---- .../easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb | 4 ---- 7 files changed, 28 deletions(-) diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb index 7756ecc5cf..43ff3feba7 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-goalf-1.1.0-no-OFED-bare.eb @@ -21,10 +21,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb index 6f7b7074bb..f825fd87bd 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.4.12-no-OFED-bare.eb @@ -21,10 +21,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb index 2b86e4f482..18d0d4a8df 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb @@ -21,10 +21,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb index ad5a259b72..23ddabe854 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.0.6-bare.eb @@ -24,10 +24,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb index 061722f46e..f747214b5c 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-4.1.13-bare.eb @@ -24,10 +24,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb index cfb317b18e..0228eae5be 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb @@ -21,10 +21,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb index ad8051da17..fc44c37e78 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb @@ -21,10 +21,6 @@ dependencies = [ # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] -# Python 2.5 requires an old subversion version to build correctly, -# in which 'svnversion' returns 'exported' rather than 'Unversioned directory' -builddependencies = [('subversion', '1.6.23')] - osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] moduleclass = 'lang' -- GitLab From 29cf2032b0d98eaa677c83aa38f5907f600c570d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 16:42:32 +0200 Subject: [PATCH 022/732] fix conflict --- .../l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb index f473597909..96f39c944c 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb @@ -4,13 +4,8 @@ name = 'libxml2' version = '2.9.1' homepage = 'http://xmlsoft.org/' -<<<<<<< HEAD -description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable -outside of the Gnome platform).""" -======= description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable outside of the Gnome platform).""" ->>>>>>> develop toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} -- GitLab From 05cfc4122c9ea2ddcd7c5502bb5bad82ed9708c3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 16:46:30 +0200 Subject: [PATCH 023/732] trash easyconfigs with different toolchains, stick to just goolf/1.4.10 --- .../APR-util-1.5.3-goalf-1.1.0-no-OFED.eb | 23 ------------ .../APR-util-1.5.3-gompi-1.4.12-no-OFED.eb | 23 ------------ .../a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb | 23 ------------ .../a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb | 23 ------------ .../a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb | 23 ------------ .../a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb | 23 ------------ .../a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb | 17 --------- .../a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb | 17 --------- .../a/APR/APR-1.5.0-ictce-4.0.6.eb | 17 --------- .../a/APR/APR-1.5.0-ictce-4.1.13.eb | 17 --------- .../a/APR/APR-1.5.0-ictce-5.2.0.eb | 17 --------- .../a/APR/APR-1.5.0-ictce-5.3.0.eb | 17 --------- .../n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb | 24 ------------- .../neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb | 24 ------------- .../n/neon/neon-0.30.0-ictce-4.0.6.eb | 24 ------------- .../n/neon/neon-0.30.0-ictce-4.1.13.eb | 24 ------------- .../n/neon/neon-0.30.0-ictce-5.2.0.eb | 24 ------------- .../n/neon/neon-0.30.0-ictce-5.3.0.eb | 24 ------------- .../Python-2.5.6-gompi-1.5.12-no-OFED-bare.eb | 26 -------------- .../SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb | 35 ------------------- .../SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb | 35 ------------------- .../s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb | 35 ------------------- .../s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb | 35 ------------------- .../s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb | 35 ------------------- .../s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb | 35 ------------------- .../subversion-1.6.23-goalf-1.1.0-no-OFED.eb | 28 --------------- .../subversion-1.6.23-gompi-1.4.12-no-OFED.eb | 28 --------------- .../subversion-1.6.23-ictce-4.0.6.eb | 28 --------------- .../subversion-1.6.23-ictce-4.1.13.eb | 28 --------------- .../subversion-1.6.23-ictce-5.2.0.eb | 28 --------------- .../subversion-1.6.23-ictce-5.3.0.eb | 28 --------------- .../subversion-1.8.8-ictce-4.1.13.eb | 28 --------------- .../t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb | 19 ---------- .../t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb | 19 ---------- .../t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb | 19 ---------- .../t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb | 19 ---------- .../t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb | 19 ---------- 37 files changed, 911 deletions(-) delete mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb delete mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb delete mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb delete mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb delete mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb delete mode 100644 easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb delete mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb delete mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb delete mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb delete mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb delete mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb delete mode 100644 easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb delete mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb delete mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb delete mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb delete mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb delete mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb delete mode 100644 easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.5.12-no-OFED-bare.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb delete mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb delete mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb delete mode 100755 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb delete mode 100755 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb delete mode 100755 easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb deleted file mode 100644 index f2b2f6d4d4..0000000000 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goalf-1.1.0-no-OFED.eb +++ /dev/null @@ -1,23 +0,0 @@ -name = 'APR-util' -version = '1.5.3' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) util libraries." - -toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('APR', '1.5.0')] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" - -sanity_check_paths = { - 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], - 'dirs': ["include/apr-1"], -} - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb deleted file mode 100644 index f5f429b778..0000000000 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-gompi-1.4.12-no-OFED.eb +++ /dev/null @@ -1,23 +0,0 @@ -name = 'APR-util' -version = '1.5.3' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) util libraries." - -toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('APR', '1.5.0')] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" - -sanity_check_paths = { - 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], - 'dirs': ["include/apr-1"], -} - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb deleted file mode 100644 index 6785705751..0000000000 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.0.6.eb +++ /dev/null @@ -1,23 +0,0 @@ -name = 'APR-util' -version = '1.5.3' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) util libraries." - -toolchain = {'name': 'ictce', 'version': '4.0.6'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('APR', '1.5.0')] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" - -sanity_check_paths = { - 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], - 'dirs': ["include/apr-1"], -} - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb deleted file mode 100644 index ab0ac9c226..0000000000 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-4.1.13.eb +++ /dev/null @@ -1,23 +0,0 @@ -name = 'APR-util' -version = '1.5.3' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) util libraries." - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('APR', '1.5.0')] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" - -sanity_check_paths = { - 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], - 'dirs': ["include/apr-1"], -} - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb deleted file mode 100644 index 669555d663..0000000000 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.2.0.eb +++ /dev/null @@ -1,23 +0,0 @@ -name = 'APR-util' -version = '1.5.3' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) util libraries." - -toolchain = {'name': 'ictce', 'version': '5.2.0'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('APR', '1.5.0')] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" - -sanity_check_paths = { - 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], - 'dirs': ["include/apr-1"], -} - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb deleted file mode 100644 index 5820665193..0000000000 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-ictce-5.3.0.eb +++ /dev/null @@ -1,23 +0,0 @@ -name = 'APR-util' -version = '1.5.3' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) util libraries." - -toolchain = {'name': 'ictce', 'version': '5.3.0'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('APR', '1.5.0')] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config" - -sanity_check_paths = { - 'files': ["bin/apu-1-config", "lib/libaprutil-1.so", "lib/libaprutil-1.a"], - 'dirs': ["include/apr-1"], -} - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb deleted file mode 100644 index 42d75b76df..0000000000 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-goalf-1.1.0-no-OFED.eb +++ /dev/null @@ -1,17 +0,0 @@ -name = 'APR' -version = '1.5.0' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) libraries." - -toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], - 'dirs': ["include/apr-1"], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb deleted file mode 100644 index c9b38d32bc..0000000000 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-gompi-1.4.12-no-OFED.eb +++ /dev/null @@ -1,17 +0,0 @@ -name = 'APR' -version = '1.5.0' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) libraries." - -toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], - 'dirs': ["include/apr-1"], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb deleted file mode 100644 index bb13d21a33..0000000000 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.0.6.eb +++ /dev/null @@ -1,17 +0,0 @@ -name = 'APR' -version = '1.5.0' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) libraries." - -toolchain = {'name': 'ictce', 'version': '4.0.6'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], - 'dirs': ["include/apr-1"], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb deleted file mode 100644 index c26ce2075a..0000000000 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-4.1.13.eb +++ /dev/null @@ -1,17 +0,0 @@ -name = 'APR' -version = '1.5.0' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) libraries." - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], - 'dirs': ["include/apr-1"], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb deleted file mode 100644 index 3f74bca0b9..0000000000 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.2.0.eb +++ /dev/null @@ -1,17 +0,0 @@ -name = 'APR' -version = '1.5.0' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) libraries." - -toolchain = {'name': 'ictce', 'version': '5.2.0'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], - 'dirs': ["include/apr-1"], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb deleted file mode 100644 index 7c6b787d78..0000000000 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-ictce-5.3.0.eb +++ /dev/null @@ -1,17 +0,0 @@ -name = 'APR' -version = '1.5.0' - -homepage = 'http://apr.apache.org/' -description = "Apache Portable Runtime (APR) libraries." - -toolchain = {'name': 'ictce', 'version': '5.3.0'} - -source_urls = ['http://archive.apache.org/dist/apr/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/apr-1-config", "lib/libapr-1.so", "lib/libapr-1.a"], - 'dirs': ["include/apr-1"], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb deleted file mode 100644 index f111e9310e..0000000000 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-goalf-1.1.0-no-OFED.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'neon' -version = '0.30.0' - -homepage = 'http://www.webdav.org/neon/' -description = "neon is an HTTP and WebDAV client library, with a C interface." - -toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} - -source_urls = [homepage] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('zlib', '1.2.7'), - ('libxml2', '2.9.1'), -] - -configopts = "--with-libxml2" - -sanity_check_paths = { - 'files': ["bin/neon-config", "lib/libneon.a"], - 'dirs': ["include/neon"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb deleted file mode 100644 index 212229e999..0000000000 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-gompi-1.4.12-no-OFED.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'neon' -version = '0.30.0' - -homepage = 'http://www.webdav.org/neon/' -description = "neon is an HTTP and WebDAV client library, with a C interface." - -toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} - -source_urls = [homepage] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('zlib', '1.2.7'), - ('libxml2', '2.9.1'), -] - -configopts = "--with-libxml2" - -sanity_check_paths = { - 'files': ["bin/neon-config", "lib/libneon.a"], - 'dirs': ["include/neon"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb deleted file mode 100644 index fdf1eabe1a..0000000000 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.0.6.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'neon' -version = '0.30.0' - -homepage = 'http://www.webdav.org/neon/' -description = "neon is an HTTP and WebDAV client library, with a C interface." - -toolchain = {'name': 'ictce', 'version': '4.0.6'} - -source_urls = [homepage] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('zlib', '1.2.7'), - ('libxml2', '2.9.1'), -] - -configopts = "--with-libxml2" - -sanity_check_paths = { - 'files': ["bin/neon-config", "lib/libneon.a"], - 'dirs': ["include/neon"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb deleted file mode 100644 index 97eea6a566..0000000000 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-4.1.13.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'neon' -version = '0.30.0' - -homepage = 'http://www.webdav.org/neon/' -description = "neon is an HTTP and WebDAV client library, with a C interface." - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -source_urls = [homepage] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('zlib', '1.2.7'), - ('libxml2', '2.9.1'), -] - -configopts = "--with-libxml2" - -sanity_check_paths = { - 'files': ["bin/neon-config", "lib/libneon.a"], - 'dirs': ["include/neon"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb deleted file mode 100644 index 244a91df81..0000000000 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.2.0.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'neon' -version = '0.30.0' - -homepage = 'http://www.webdav.org/neon/' -description = "neon is an HTTP and WebDAV client library, with a C interface." - -toolchain = {'name': 'ictce', 'version': '5.2.0'} - -source_urls = [homepage] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('zlib', '1.2.7'), - ('libxml2', '2.9.1'), -] - -configopts = "--with-libxml2" - -sanity_check_paths = { - 'files': ["bin/neon-config", "lib/libneon.a"], - 'dirs': ["include/neon"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb deleted file mode 100644 index 6dd467a1fe..0000000000 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-ictce-5.3.0.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'neon' -version = '0.30.0' - -homepage = 'http://www.webdav.org/neon/' -description = "neon is an HTTP and WebDAV client library, with a C interface." - -toolchain = {'name': 'ictce', 'version': '5.3.0'} - -source_urls = [homepage] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('zlib', '1.2.7'), - ('libxml2', '2.9.1'), -] - -configopts = "--with-libxml2" - -sanity_check_paths = { - 'files': ["bin/neon-config", "lib/libneon.a"], - 'dirs': ["include/neon"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.5.12-no-OFED-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.5.12-no-OFED-bare.eb deleted file mode 100644 index fbb6fb607f..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.5.6-gompi-1.5.12-no-OFED-bare.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'Python' -version = '2.5.6' -versionsuffix = '-bare' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'gompi', 'version': '1.5.12-no-OFED'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -patches = ['Python-%(version)s_svnversion-cmd.patch'] - -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.7'), - ('libreadline', '6.2'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb deleted file mode 100644 index 1f9d380786..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goalf-1.1.0-no-OFED.eb +++ /dev/null @@ -1,35 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -name = 'SQLite' -version = '3.8.4.1' - -homepage = 'http://www.hwaci.com/sw/sqlite/' -description = "SQLite: SQL Database Engine in a C Library" - -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} - -dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb deleted file mode 100644 index 330ea91aef..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-gompi-1.4.12-no-OFED.eb +++ /dev/null @@ -1,35 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -name = 'SQLite' -version = '3.8.4.1' - -homepage = 'http://www.hwaci.com/sw/sqlite/' -description = "SQLite: SQL Database Engine in a C Library" - -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} - -dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb deleted file mode 100644 index 8ab8985748..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.0.6.eb +++ /dev/null @@ -1,35 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -name = 'SQLite' -version = '3.8.4.1' - -homepage = 'http://www.hwaci.com/sw/sqlite/' -description = "SQLite: SQL Database Engine in a C Library" - -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -toolchain = {'name': 'ictce', 'version': '4.0.6'} - -dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb deleted file mode 100644 index 6948614b01..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-4.1.13.eb +++ /dev/null @@ -1,35 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -name = 'SQLite' -version = '3.8.4.1' - -homepage = 'http://www.hwaci.com/sw/sqlite/' -description = "SQLite: SQL Database Engine in a C Library" - -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb deleted file mode 100644 index 6a16570c53..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.2.0.eb +++ /dev/null @@ -1,35 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -name = 'SQLite' -version = '3.8.4.1' - -homepage = 'http://www.hwaci.com/sw/sqlite/' -description = "SQLite: SQL Database Engine in a C Library" - -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -toolchain = {'name': 'ictce', 'version': '5.2.0'} - -dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb deleted file mode 100644 index 499e33114e..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-ictce-5.3.0.eb +++ /dev/null @@ -1,35 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -name = 'SQLite' -version = '3.8.4.1' - -homepage = 'http://www.hwaci.com/sw/sqlite/' -description = "SQLite: SQL Database Engine in a C Library" - -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -toolchain = {'name': 'ictce', 'version': '5.3.0'} - -dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb deleted file mode 100644 index 10fcdfa9b8..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goalf-1.1.0-no-OFED.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.6.23' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb deleted file mode 100644 index 18b01448ee..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-gompi-1.4.12-no-OFED.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.6.23' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb deleted file mode 100644 index cc7766f42b..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.0.6.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.6.23' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'ictce', 'version': '4.0.6'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb deleted file mode 100644 index 0e7556d3dd..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-4.1.13.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.6.23' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb deleted file mode 100644 index 3dd8117f6f..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.2.0.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.6.23' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'ictce', 'version': '5.2.0'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb deleted file mode 100644 index 8b59c05878..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-ictce-5.3.0.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.6.23' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'ictce', 'version': '5.3.0'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb deleted file mode 100644 index 672480bf95..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-ictce-4.1.13.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.8.8' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb deleted file mode 100644 index 688b7db304..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-goalf-1.1.0-no-OFED.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'Tcl' -version = '8.6.1' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb deleted file mode 100644 index bf05390914..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-gompi-1.4.12-no-OFED.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'Tcl' -version = '8.6.1' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb deleted file mode 100755 index 4497a53f78..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.0.6.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'Tcl' -version = '8.6.1' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'ictce', 'version': '4.0.6'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb deleted file mode 100755 index a112f672e2..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-4.1.13.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'Tcl' -version = '8.6.1' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'ictce', 'version': '4.1.13'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb deleted file mode 100755 index d9d3d41205..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.2.0.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'Tcl' -version = '8.6.1' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'ictce', 'version': '5.2.0'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' -- GitLab From 173a810ac34382286a46d66d706adab97a9bcf49 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 16:48:49 +0200 Subject: [PATCH 024/732] add missing 'easyblock' line --- .../a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb | 2 ++ .../easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb | 2 ++ .../easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb | 2 ++ .../s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb | 1 + .../s/subversion/subversion-1.6.23-goolf-1.4.10.eb | 12 +++++++----- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb index f2b44bb9a1..1a3a23018b 100644 --- a/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.5.3-goolf-1.4.10.eb @@ -1,3 +1,5 @@ +easyblock = 'ConfigureMake' + name = 'APR-util' version = '1.5.3' diff --git a/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb b/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb index e069e515a2..bbe4a3f6c2 100644 --- a/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/a/APR/APR-1.5.0-goolf-1.4.10.eb @@ -1,3 +1,5 @@ +easyblock = 'ConfigureMake' + name = 'APR' version = '1.5.0' diff --git a/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb b/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb index dbf0e6619b..2732f2ab74 100644 --- a/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/n/neon/neon-0.30.0-goolf-1.4.10.eb @@ -1,3 +1,5 @@ +easyblock = 'ConfigureMake' + name = 'neon' version = '0.30.0' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb index 72c8d21c52..5d1c89464a 100644 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb @@ -9,6 +9,7 @@ # This work implements a part of the HPCBIOS project and is a component of the policy: # http://hpcbios.readthedocs.org/en/latest/ ## +easyblock = 'ConfigureMake' name = 'SQLite' version = '3.8.4.1' diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb index c4f4b6ed90..e53ac64a5b 100644 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb @@ -1,3 +1,5 @@ +easyblock = 'ConfigureMake' + name = 'subversion' version = '1.6.23' @@ -9,11 +11,6 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['http://archive.apache.org/dist/subversion/'] sources = [SOURCE_TAR_GZ] -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - dependencies = [ ('APR', '1.5.0'), ('APR-util', '1.5.3'), @@ -25,4 +22,9 @@ dependencies = [ configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + moduleclass = 'tools' -- GitLab From 7b78413357e94593a19d8b7e13dca2ac90077da1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 16:51:21 +0200 Subject: [PATCH 025/732] remove easyconfig for subversion 1.8.8 (see #1970) --- .../subversion-1.8.8-goolf-1.4.10.eb | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb b/easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb deleted file mode 100644 index 5f9488ba6c..0000000000 --- a/easybuild/easyconfigs/s/subversion/subversion-1.8.8-goolf-1.4.10.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'subversion' -version = '1.8.8' - -homepage = 'http://subversion.apache.org/' -description = " Subversion is an open source version control system." - -toolchain = {'name': 'goolf', 'version': '1.4.10'} - -source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] - -sanity_check_paths = { - 'files': ["bin/svn", "bin/svnversion"], - 'dirs': [], -} - -dependencies = [ - ('APR', '1.5.0'), - ('APR-util', '1.5.3'), - ('SQLite', '3.8.4.1'), - ('zlib', '1.2.7'), - ('neon', '0.30.0'), -] - -configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " -configopts += "--with-zlib=$EBROOTZLIB --with-neon=$EBROOTNEON" - -moduleclass = 'tools' -- GitLab From 067f1e9ebdab00845652acaaa2f562358e9d279d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 16:52:24 +0200 Subject: [PATCH 026/732] trash extra libxml2 easyconfig --- ...libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100755 easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb deleted file mode 100755 index d68ae2eaee..0000000000 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb +++ /dev/null @@ -1,27 +0,0 @@ -name = 'libxml2' -version = '2.9.1' - -homepage = 'http://xmlsoft.org/' -description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable - outside of the Gnome platform).""" - -toolchain = {'name': 'goolf', 'version': '1.4.10'} - -source_urls = [ - 'http://xmlsoft.org/sources/', - 'http://xmlsoft.org/sources/old/' -] -sources = [SOURCELOWER_TAR_GZ] - -configopts = 'CC="$CC" CXX="$CXX" --with-pic' - -pythonver = '2.7.5' -pythonshortver = '.'.join(pythonver.split('.')[0:2]) -versionsuffix = '-%s-%s' % ('Python', pythonver) - -dependencies = [ - ('zlib', '1.2.8'), - ('Python', pythonver), -] - -moduleclass = 'lib' -- GitLab From 08257022563059a4d3c0c1134a8ce44174015542 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 22 Sep 2015 18:40:14 +0200 Subject: [PATCH 027/732] subversion -> Subversion --- .../Subversion-1.6.23-goolf-1.4.10.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easybuild/easyconfigs/s/{subversion/subversion-1.6.23-goolf-1.4.10.eb => Subversion/Subversion-1.6.23-goolf-1.4.10.eb} (97%) diff --git a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb b/easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb similarity index 97% rename from easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb rename to easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb index e53ac64a5b..fc1179c894 100644 --- a/easybuild/easyconfigs/s/subversion/subversion-1.6.23-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb @@ -1,6 +1,6 @@ easyblock = 'ConfigureMake' -name = 'subversion' +name = 'Subversion' version = '1.6.23' homepage = 'http://subversion.apache.org/' -- GitLab From ea7c25c2cb7c2dcd8b20623199891abf407712ab Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 23 Sep 2015 10:35:34 +0300 Subject: [PATCH 028/732] Adding moduleclass --- easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb index 5716e9f33a..7188e62917 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.4.0-goolf-1.4.10-ipi.eb @@ -34,4 +34,4 @@ parallel = 1 # about 100 tests fail ignore_regtest_fails=True - +moduleclass = 'chem' -- GitLab From 98d4e2d24f4a8dab9c9b5dfd0edf58ea60d6e240 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 23 Sep 2015 12:03:12 +0200 Subject: [PATCH 029/732] fix sources spec --- .../easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb b/easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb index fc1179c894..07b1072638 100644 --- a/easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/s/Subversion/Subversion-1.6.23-goolf-1.4.10.eb @@ -9,7 +9,7 @@ description = " Subversion is an open source version control system." toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['http://archive.apache.org/dist/subversion/'] -sources = [SOURCE_TAR_GZ] +sources = [SOURCELOWER_TAR_GZ] dependencies = [ ('APR', '1.5.0'), -- GitLab From f5ea289e46eaf584a678f1edd0f7c3cfc5a1e22b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 1 Oct 2015 13:35:11 +0200 Subject: [PATCH 030/732] bump to OCaml 4.02.3 and foss/2015a (2015b yields problems?) --- .../Autotools/Autotools-20150215-GCC-4.9.2.eb | 17 ++++++++++ .../batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb | 32 ------------------- .../CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb | 1 - ...SL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb | 1 - ...L-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb | 1 - .../l/libtool/libtool-2.4.6-GCC-4.9.2.eb | 17 ++++++++++ ...L-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb | 1 - .../o/OCaml/OCaml-4.01.0_icc-fixes.patch | 11 ------- ...ce-5.5.0.eb => OCaml-4.02.3-foss-2015a.eb} | 10 +++--- ...er-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb} | 12 +++---- ...e3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb | 1 - 11 files changed, 43 insertions(+), 61 deletions(-) create mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb delete mode 100644 easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb delete mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch rename easybuild/easyconfigs/o/OCaml/{OCaml-4.01.0-ictce-5.5.0.eb => OCaml-4.02.3-foss-2015a.eb} (85%) rename easybuild/easyconfigs/p/pplacer/{pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb => pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb} (74%) diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb new file mode 100644 index 0000000000..9fe586bfbb --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index 42ce7ca6fb..0000000000 --- a/easybuild/easyconfigs/b/batteries/batteries-2.2-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,32 +0,0 @@ -name = 'batteries' -version = '2.2' - -homepage = 'http://batteries.forge.ocamlcore.org/' -description = """OCaml Batteries included (or simply "Batteries") is a community-driven effort to standardize on an - consistent, documented, and comprehensive development platform for the OCaml programming language.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['http://forge.ocamlcore.org/frs/download.php/1363/'] -sources = [SOURCE_TAR_GZ] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -builddependencies = [('findlib', '1.5.2', versionsuffix)] -dependencies = [(ocaml, ocamlver)] - -skipsteps = ['configure'] - -buildopts = 'all' -preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib" - -modextrapaths = {'OCAMLPATH': 'site-lib'} - -sanity_check_paths = { - 'files': [], - 'dirs': ['site-lib/batteries'], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb index 29ce049ecc..6a52cf9add 100644 --- a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb @@ -15,7 +15,6 @@ ocaml = 'OCaml' ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) -builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ (ocaml, ocamlver), ('zlib', '1.2.7'), diff --git a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb index 3ea3a84e5e..e9a5302250 100644 --- a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb @@ -13,7 +13,6 @@ ocaml = 'OCaml' ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) -builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ (ocaml, ocamlver), ('GSL', '1.16'), diff --git a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb index 8ebdaa8e3c..c67373f3c9 100644 --- a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb @@ -13,7 +13,6 @@ ocaml = 'OCaml' ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) -builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ (ocaml, ocamlver), ('GSL', '1.16'), diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb new file mode 100644 index 0000000000..4658960398 --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.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': '4.9.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.17')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb index 87454947cb..5fa738e35a 100644 --- a/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb @@ -13,7 +13,6 @@ sources = ['%(version)s.tar.gz'] ocaml = 'OCaml' ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) -builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [(ocaml, ocamlver)] preconfigopts = "ocaml setup.ml -configure --prefix %(installdir)s && " diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch deleted file mode 100644 index 595505634a..0000000000 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ocaml-4.01.0/configure.orig 2014-08-19 12:26:23.008974288 +0200 -+++ ocaml-4.01.0/configure 2014-08-19 12:27:15.800298562 +0200 -@@ -1015,7 +1015,7 @@ - fi - - has_select=no --if sh ./hasgot select && \ -+if cc="$cc -wd165" sh ./hasgot select && \ - sh ./hasgot -i sys/types.h $select_include -t fd_set ; then - echo "select() found." - echo "#define HAS_SELECT" >> s.h diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb similarity index 85% rename from easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb rename to easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb index 5c9d36e6b7..e9d2b5b537 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb @@ -6,8 +6,8 @@ # License:: MIT/GPL # $Id$ ## -name = "OCaml" -version = "4.01.0" +name = 'OCaml' +version = '4.02.3' homepage = 'http://ocaml.org/' description = """OCaml is a general purpose industrial-strength programming language @@ -15,7 +15,7 @@ description = """OCaml is a general purpose industrial-strength programming lang it benefits from one of the most advanced type systems and supports functional, imperative and object-oriented styles of programming.""" -toolchain = {'version': '1.4.10', 'name': 'goolf'} +toolchain = {'name': 'foss', 'version': '2015a'} ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) opam_ver = '1.2.2' @@ -28,9 +28,9 @@ sources = [ 'opam-full-%s.tar.gz' % opam_ver, ] -patches = ['OCaml-%(version)s_icc-fixes.patch'] +patches = ['OCaml-4.01.0_icc-fixes.patch'] -builddependencies = [('Autoconf', '2.69')] +builddependencies = [('Autotools', '20150215', '', ('GCC', '4.9.2'))] dependencies = [('ncurses', '5.9')] # parallel build tends to break diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb similarity index 74% rename from easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb rename to easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb index 48464d06a1..69404fe220 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb @@ -1,34 +1,30 @@ easyblock = 'MakeCp' name = 'pplacer' -version = '1.1.alpha16' +version = '1.1.alpha17' homepage = 'http://matsen.fhcrc.org/pplacer/' description = """Pplacer places query sequences on a fixed reference phylogenetic tree to maximize phylogenetic likelihood or posterior probability according to a reference alignment. Pplacer is designed to be fast, to give useful information about uncertainty, and to offer advanced visualization and downstream analysis.""" -toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchain = {'name': 'foss', 'version': '2015a'} source_urls = ['https://github.com/matsen/pplacer/archive/'] sources = ['v%(version)s.tar.gz'] ocaml = 'OCaml' -ocamlver = '4.01.0' +ocamlver = '4.02.3' versionsuffix = '-%s-%s' % (ocaml, ocamlver) -builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ (ocaml, ocamlver), - ('batteries', '2.2', versionsuffix), ('CamlZIP', '1.05', versionsuffix), ('GSL-OCaml', '0.6.3', versionsuffix), - ('csv', '1.3.3', versionsuffix), ('SQLite3-OCaml', '2.0.6', versionsuffix), - ('Xmlm', '1.2.0', versionsuffix), ('MCL', '12-068oasis4', versionsuffix), ] -prebuildopts = "echo 'let version = \"v1.1.alpha16-9-g78ea126\"\n' > common_src/version.ml && " +prebuildopts = "echo 'let version = \"v1.1.alpha17-9-g78ea126\"\n' > common_src/version.ml && " parallel = 1 files_to_copy = ['bin'] diff --git a/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb index d08ea78903..991bbf5a9c 100644 --- a/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb @@ -13,7 +13,6 @@ ocaml = 'OCaml' ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) -builddependencies = [('findlib', '1.5.2', versionsuffix)] dependencies = [ (ocaml, ocamlver), ('SQLite', '3.8.6'), -- GitLab From 2563bafe964b284017091c4688b1cc5d3cb5d469 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 1 Oct 2015 13:44:40 +0200 Subject: [PATCH 031/732] remove use of faulty patch file --- ...-OCaml-4.01.0.eb => CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb} | 0 easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb | 2 -- 2 files changed, 2 deletions(-) rename easybuild/easyconfigs/c/CamlZIP/{CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb => CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb} (100%) diff --git a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb similarity index 100% rename from easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-ictce-5.5.0-OCaml-4.01.0.eb rename to easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb index e9d2b5b537..91034014ce 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb @@ -28,8 +28,6 @@ sources = [ 'opam-full-%s.tar.gz' % opam_ver, ] -patches = ['OCaml-4.01.0_icc-fixes.patch'] - builddependencies = [('Autotools', '20150215', '', ('GCC', '4.9.2'))] dependencies = [('ncurses', '5.9')] -- GitLab From b37238968792f1982fecd3cdb9dd2de654991ed3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 1 Oct 2015 13:44:53 +0200 Subject: [PATCH 032/732] fix easyconfig for CamlZIP --- .../CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb index 6a52cf9add..860031c69b 100644 --- a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb +++ b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb @@ -1,3 +1,5 @@ +easyblock = 'OCamlPackage' + name = 'CamlZIP' version = '1.05' @@ -6,27 +8,17 @@ description = """This OCaml library provides easy access to compressed files in and GZIP format, as well as to Java JAR files. It provides functions for reading from and writing to compressed files in these formats.""" -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['https://forge.ocamlcore.org/frs/download.php/1037/'] -sources = [SOURCE_TAR_GZ] +toolchain = {'name': 'foss', 'version': '2015a'} ocaml = 'OCaml' -ocamlver = '4.01.0' +ocamlver = '4.02.3' versionsuffix = '-%s-%s' % (ocaml, ocamlver) dependencies = [ (ocaml, ocamlver), - ('zlib', '1.2.7'), + ('zlib', '1.2.8'), ] -skipsteps = ['configure', 'install'] - -prebuildopts = "mkdir -p %(installdir)s/site-lib && " -buildopts = 'all && make allopt && OCAMLFIND_DESTDIR=%(installdir)s/site-lib make install-findlib' - -modextrapaths = {'OCAMLPATH': 'site-lib'} - sanity_check_paths = { 'files': [], 'dirs': ['site-lib/zip'], -- GitLab From 4b040f6a85bdf133223f052d23f6bdec715ed401 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 1 Oct 2015 16:30:21 +0200 Subject: [PATCH 033/732] add ocaml+twt and gsl extensions, drop csv and xmlm specialized extensions --- ...L-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb | 31 ------------------- .../o/OCaml/OCaml-4.02.3-foss-2015a.eb | 12 ++++--- 2 files changed, 8 insertions(+), 35 deletions(-) delete mode 100644 easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb diff --git a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index c67373f3c9..0000000000 --- a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-1.17.2-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,31 +0,0 @@ -name = 'GSL-OCaml' -version = '1.17.2' - -homepage = 'http://mmottl.github.io/gsl-ocaml/' -description = "OCaml bindings to the GSL (GNU Scientific Library)." - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['https://github.com/mmottl/gsl-ocaml/archive/'] -sources = ['v%(version)s.tar.gz'] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -dependencies = [ - (ocaml, ocamlver), - ('GSL', '1.16'), -] - -configopts = "--destdir=%(installdir)s" -preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib" - -modextrapaths = {'OCAMLPATH': 'site-lib'} - -sanity_check_paths = { - 'files': [], - 'dirs': ["site-lib/gsl"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb index 91034014ce..ecb933f867 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb @@ -28,8 +28,12 @@ sources = [ 'opam-full-%s.tar.gz' % opam_ver, ] -builddependencies = [('Autotools', '20150215', '', ('GCC', '4.9.2'))] -dependencies = [('ncurses', '5.9')] +builddependencies = [('Autotools', '20150119', '', ('GCC', '4.9.2'))] +dependencies = [ + ('ncurses', '5.9'), + ('libreadline', '6.3'), + ('GSL', '1.16'), +] # parallel build tends to break parallel = 1 @@ -38,8 +42,8 @@ parallel = 1 exts_list = [ ('ocamlfind', '1.5.5'), ('batteries', '2.3.1'), - ('csv', '1.3.4'), - ('xmlm', '1.2.0'), + ('ocaml+twt', '0.94.0'), + ('gsl', '1.18.5'), ] moduleclass = 'lang' -- GitLab From 1bdbf8dfaf7f246d059eb5bbb98bdf5b83155727 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 1 Oct 2015 16:43:24 +0200 Subject: [PATCH 034/732] fix Autotools version --- easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb index ecb933f867..9eee49210d 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb @@ -28,7 +28,7 @@ sources = [ 'opam-full-%s.tar.gz' % opam_ver, ] -builddependencies = [('Autotools', '20150119', '', ('GCC', '4.9.2'))] +builddependencies = [('Autotools', '20150215', '', ('GCC', '4.9.2'))] dependencies = [ ('ncurses', '5.9'), ('libreadline', '6.3'), -- GitLab From 79ba11a9a26daff11e20a797ac6916e5e4efcfdd Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 1 Oct 2015 21:04:21 +0200 Subject: [PATCH 035/732] fix style isses, drop extensions from existing OCaml 4.01.0 easyconfig --- .../o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb index eef25b2450..25110fc6a9 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb @@ -6,8 +6,8 @@ # License:: MIT/GPL # $Id$ ## -name = "OCaml" -version = "4.01.0" +name = 'OCaml' +version = '4.01.0' homepage = 'http://ocaml.org/' description = """OCaml is a general purpose industrial-strength programming language @@ -15,7 +15,7 @@ description = """OCaml is a general purpose industrial-strength programming lang it benefits from one of the most advanced type systems and supports functional, imperative and object-oriented styles of programming.""" -toolchain = {'version': '1.4.10', 'name': 'goolf'} +toolchain = {'name': 'goolf', 'version': '1.4.10'} ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) opam_ver = '1.2.2' @@ -34,12 +34,4 @@ dependencies = [('ncurses', '5.9')] # parallel build tends to break parallel = 1 -# handled by OPAM, order matters! -exts_list = [ - ('ocamlfind', '1.5.5'), - ('batteries', '2.3.1'), - ('csv', '1.3.4'), - ('xmlm', '1.2.0'), -] - moduleclass = 'lang' -- GitLab From f91fcbe470777cc827184a5ade80ff40f00b1943 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 09:36:53 +0200 Subject: [PATCH 036/732] drop separate easyconfigs for OCaml packages, switch back to pplacer v1.1.alpha16 w/ ictce/5.5.0 and follow recommended build procedure for pplacer --- .../CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb | 27 ----------- ...SL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb | 34 ------------- ...L-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb | 30 ------------ .../o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 37 ++++++++++++++ ...er-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 48 +++++++++++++++++++ ...cer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb | 37 -------------- .../s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb | 16 ++++--- ...e3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb | 31 ------------ .../t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb | 6 +++ 9 files changed, 100 insertions(+), 166 deletions(-) delete mode 100644 easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb delete mode 100644 easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb delete mode 100644 easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb create mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb delete mode 100644 easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb delete mode 100644 easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb diff --git a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb b/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb deleted file mode 100644 index 860031c69b..0000000000 --- a/easybuild/easyconfigs/c/CamlZIP/CamlZIP-1.05-foss-2015a-OCaml-4.02.3.eb +++ /dev/null @@ -1,27 +0,0 @@ -easyblock = 'OCamlPackage' - -name = 'CamlZIP' -version = '1.05' - -homepage = 'https://forge.ocamlcore.org/projects/camlzip/' -description = """This OCaml library provides easy access to compressed files in ZIP - and GZIP format, as well as to Java JAR files. It provides functions - for reading from and writing to compressed files in these formats.""" - -toolchain = {'name': 'foss', 'version': '2015a'} - -ocaml = 'OCaml' -ocamlver = '4.02.3' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -dependencies = [ - (ocaml, ocamlver), - ('zlib', '1.2.8'), -] - -sanity_check_paths = { - 'files': [], - 'dirs': ['site-lib/zip'], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index e9a5302250..0000000000 --- a/easybuild/easyconfigs/g/GSL-OCaml/GSL-OCaml-0.6.3-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,34 +0,0 @@ -name = 'GSL-OCaml' -version = '0.6.3' - -homepage = 'http://mmottl.github.io/gsl-ocaml/' -description = "OCaml bindings to the GSL (GNU Scientific Library)." - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['https://github.com/mmottl/gsl-ocaml/archive/'] -sources = ['v%(version)s.tar.gz'] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -dependencies = [ - (ocaml, ocamlver), - ('GSL', '1.16'), -] - -skipsteps = ['configure'] -prebuildopts = "OCAML_BACKEND=gcc" -preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAML_BACKEND=gcc OCAMLFIND_DESTDIR=%(installdir)s/site-lib" - -parallel = 1 - -modextrapaths = {'OCAMLPATH': 'site-lib'} - -sanity_check_paths = { - 'files': [], - 'dirs': ["site-lib/gsl"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index 5fa738e35a..0000000000 --- a/easybuild/easyconfigs/m/MCL/MCL-12-068oasis4-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,30 +0,0 @@ -name = 'MCL' -version = '12-068oasis4' - -homepage = 'https://github.com/fhcrc/mcl' -description = """Graph clustering by flow simulation.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} -toolchainopts = {'pic': True} - -source_urls = ['https://github.com/fhcrc/mcl/archive/'] -sources = ['%(version)s.tar.gz'] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) -dependencies = [(ocaml, ocamlver)] - -preconfigopts = "ocaml setup.ml -configure --prefix %(installdir)s && " -buildopts = "&& ocaml setup.ml -build" -preinstallopts = "mkdir -p %(installdir)s/site-lib &&" -installopts = "&& OCAMLFIND_DESTDIR=%(installdir)s/site-lib ocaml setup.ml -install" - -modextrapaths = {'OCAMLPATH': 'site-lib'} - -sanity_check_paths = { - 'files': [], - 'dirs': ['bin'], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb new file mode 100644 index 0000000000..00cc54b782 --- /dev/null +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +## +name = 'OCaml' +version = '4.01.0' + +homepage = 'http://ocaml.org/' +description = """OCaml is a general purpose industrial-strength programming language + with an emphasis on expressiveness and safety. Developed for more than 20 years at Inria + it benefits from one of the most advanced type systems and supports functional, + imperative and object-oriented styles of programming.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) +opam_ver = '1.2.2' +source_urls = [ + 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, + 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, +] +sources = [ + 'ocaml-%(version)s.tar.gz', + 'opam-full-%s.tar.gz' % opam_ver, +] + +builddependencies = [('Autoconf', '2.69')] +dependencies = [('ncurses', '5.9')] + +# parallel build tends to break +parallel = 1 + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb new file mode 100644 index 0000000000..f16f8b1dff --- /dev/null +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -0,0 +1,48 @@ +easyblock = 'MakeCp' + +name = 'pplacer' +version = '1.1.alpha16' + +homepage = 'http://matsen.fhcrc.org/pplacer/' +description = """Pplacer places query sequences on a fixed reference phylogenetic tree to maximize phylogenetic + likelihood or posterior probability according to a reference alignment. Pplacer is designed to be fast, to give + useful information about uncertainty, and to offer advanced visualization and downstream analysis.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = [ + 'https://github.com/matsen/pplacer/archive/', + 'https://github.com/matsen/pplacer-opam-repository/archive/', +] +sources = [ + 'v%(version)s.tar.gz', + 'ba5e766.tar.gz', # pplacer-opam-repository (20151002) +] + +ocaml = 'OCaml' +ocamlver = '4.01.0' +versionsuffix = '-%s-%s' % (ocaml, ocamlver) +dependencies = [ + (ocaml, ocamlver), + ('zlib', '1.2.7'), # for CamlZIP OCaml package + ('GSL', '1.16'), # for GSL-OCaml package + ('SQLite', '3.8.6'), # for SQLite3-OCaml package +] + +start_dir = '%(name)-%(version)s' + +# see http://matsen.github.io/pplacer/compiling.html#opam +prebuildopts = "export OPAMROOT=%(installdir)s && opam init && " +prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && " +prebuildopts += "opam update pplacer-deps && eval `opam config env` && " +prebuildopts += "cat opam-requirements.txt | xargs opam install -y && " +parallel = 1 + +files_to_copy = ['bin'] + +sanity_check_paths = { + 'files': ['bin/guppy', 'bin/pplacer', 'bin/rppr'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb deleted file mode 100644 index 69404fe220..0000000000 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha17-foss-2015a-OCaml-4.02.3.eb +++ /dev/null @@ -1,37 +0,0 @@ -easyblock = 'MakeCp' - -name = 'pplacer' -version = '1.1.alpha17' - -homepage = 'http://matsen.fhcrc.org/pplacer/' -description = """Pplacer places query sequences on a fixed reference phylogenetic tree to maximize phylogenetic - likelihood or posterior probability according to a reference alignment. Pplacer is designed to be fast, to give - useful information about uncertainty, and to offer advanced visualization and downstream analysis.""" - -toolchain = {'name': 'foss', 'version': '2015a'} - -source_urls = ['https://github.com/matsen/pplacer/archive/'] -sources = ['v%(version)s.tar.gz'] - -ocaml = 'OCaml' -ocamlver = '4.02.3' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) -dependencies = [ - (ocaml, ocamlver), - ('CamlZIP', '1.05', versionsuffix), - ('GSL-OCaml', '0.6.3', versionsuffix), - ('SQLite3-OCaml', '2.0.6', versionsuffix), - ('MCL', '12-068oasis4', versionsuffix), -] - -prebuildopts = "echo 'let version = \"v1.1.alpha17-9-g78ea126\"\n' > common_src/version.ml && " -parallel = 1 - -files_to_copy = ['bin'] - -sanity_check_paths = { - 'files': ['bin/guppy', 'bin/pplacer', 'bin/rppr'], - 'dirs': [], -} - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb index ab3d1ec5e2..68d585b3df 100644 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb @@ -1,8 +1,8 @@ ## # This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild # -# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine -# Authors:: Fotis Georgatos +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos # License:: MIT/GPL # $Id$ # @@ -10,18 +10,20 @@ # http://hpcbios.readthedocs.org/en/latest/ ## +easyblock = 'ConfigureMake' + name = 'SQLite' version = '3.8.6' -homepage = 'http://www.hwaci.com/sw/sqlite/' +homepage = 'http://www.sqlite.org/' description = "SQLite: SQL Database Engine in a C Library" -# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz -source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] -sources = ['sqlite-autoconf-%s0%s0%s00.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - toolchain = {'name': 'ictce', 'version': '5.5.0'} +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2014/'] +sources = ['sqlite-autoconf-%s0%s0%s00.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + dependencies = [ ('libreadline', '6.2'), ('Tcl', '8.6.1'), diff --git a/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb deleted file mode 100644 index 991bbf5a9c..0000000000 --- a/easybuild/easyconfigs/s/SQLite3-OCaml/SQLite3-OCaml-2.0.6-ictce-5.5.0-OCaml-4.01.0.eb +++ /dev/null @@ -1,31 +0,0 @@ -name = 'SQLite3-OCaml' -version = '2.0.6' - -homepage = 'https://github.com/mmottl/sqlite3-ocaml' -description = "OCaml bindings to the SQLite3 database.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ['https://github.com/mmottl/sqlite3-ocaml/archive/'] -sources = ['v%(version)s.tar.gz'] - -ocaml = 'OCaml' -ocamlver = '4.01.0' -versionsuffix = '-%s-%s' % (ocaml, ocamlver) - -dependencies = [ - (ocaml, ocamlver), - ('SQLite', '3.8.6'), -] - -configopts = "--destdir=%(installdir)s" -preinstallopts = "mkdir -p %(installdir)s/site-lib && OCAMLFIND_DESTDIR=%(installdir)s/site-lib" - -modextrapaths = {'OCAMLPATH': 'site-lib'} - -sanity_check_paths = { - 'files': [], - 'dirs': ["site-lib/sqlite3"], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb index 19a137231e..335678c031 100644 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb @@ -1,3 +1,5 @@ +easyblock = 'ConfigureMake' + name = 'Tcl' version = '8.6.1' @@ -10,6 +12,10 @@ toolchain = {'name': 'ictce', 'version': '5.5.0'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] +dependencies = [ + ('zlib', '1.2.7'), +] + configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' runtest = 'test' -- GitLab From f51f48edb7f71ed1c835e3ea124c013e460ee60a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 09:38:07 +0200 Subject: [PATCH 037/732] remove unused easyconfigs --- .../Autotools/Autotools-20150215-GCC-4.9.2.eb | 17 ------- .../l/libtool/libtool-2.4.6-GCC-4.9.2.eb | 17 ------- .../o/OCaml/OCaml-4.02.3-foss-2015a.eb | 49 ------------------- 3 files changed, 83 deletions(-) delete mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb delete mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb delete mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb deleted file mode 100644 index 9fe586bfbb..0000000000 --- a/easybuild/easyconfigs/a/Autotools/Autotools-20150215-GCC-4.9.2.eb +++ /dev/null @@ -1,17 +0,0 @@ -easyblock = 'Bundle' - -name = 'Autotools' -version = '20150215' # date of the most recent change - -homepage = 'http://autotools.io' -description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" - -toolchain = {'name': 'GCC', 'version': '4.9.2'} - -dependencies = [ - ('Autoconf', '2.69'), # 20120424 - ('Automake', '1.15'), # 20150105 - ('libtool', '2.4.6'), # 20150215 -] - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb deleted file mode 100644 index 4658960398..0000000000 --- a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCC-4.9.2.eb +++ /dev/null @@ -1,17 +0,0 @@ -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': '4.9.2'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -dependencies = [('M4', '1.4.17')] - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb deleted file mode 100644 index 9eee49210d..0000000000 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb +++ /dev/null @@ -1,49 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -## -name = 'OCaml' -version = '4.02.3' - -homepage = 'http://ocaml.org/' -description = """OCaml is a general purpose industrial-strength programming language - with an emphasis on expressiveness and safety. Developed for more than 20 years at Inria - it benefits from one of the most advanced type systems and supports functional, - imperative and object-oriented styles of programming.""" - -toolchain = {'name': 'foss', 'version': '2015a'} - -ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) -opam_ver = '1.2.2' -source_urls = [ - 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, - 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, -] -sources = [ - 'ocaml-%(version)s.tar.gz', - 'opam-full-%s.tar.gz' % opam_ver, -] - -builddependencies = [('Autotools', '20150215', '', ('GCC', '4.9.2'))] -dependencies = [ - ('ncurses', '5.9'), - ('libreadline', '6.3'), - ('GSL', '1.16'), -] - -# parallel build tends to break -parallel = 1 - -# handled by OPAM, order matters! -exts_list = [ - ('ocamlfind', '1.5.5'), - ('batteries', '2.3.1'), - ('ocaml+twt', '0.94.0'), - ('gsl', '1.18.5'), -] - -moduleclass = 'lang' -- GitLab From a19fa08e929b1b6e54ca429439c883fd565ae431 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 10:27:38 +0200 Subject: [PATCH 038/732] add patch to make compilation of OCaml 4.01.0 with ictce/5.5.0 work --- .../easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 2 ++ .../easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 00cc54b782..51e6fb3d9d 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -28,6 +28,8 @@ sources = [ 'opam-full-%s.tar.gz' % opam_ver, ] +patches = ['OCaml-%(version)s_icc-fixes.patch'] + builddependencies = [('Autoconf', '2.69')] dependencies = [('ncurses', '5.9')] diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch new file mode 100644 index 0000000000..bbad224e68 --- /dev/null +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -0,0 +1,11 @@ +--- configure.orig 2015-10-06 10:19:12.763826416 +0200 ++++ configure 2015-10-06 10:19:56.005026703 +0200 +@@ -1084,7 +1084,7 @@ + fi + + has_gettimeofday=no +-if sh ./hasgot gettimeofday; then ++if sh ./hasgot cc="$cc -wd165" gettimeofday; then + echo "gettimeofday() found." + echo "#define HAS_GETTIMEOFDAY" >> s.h + has_gettimeofday="yes" -- GitLab From 89733709d862d84e04bbcadba1a839e63146cc3d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 10:49:36 +0200 Subject: [PATCH 039/732] fix patch --- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch index bbad224e68..6037d7e236 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -5,7 +5,7 @@ has_gettimeofday=no -if sh ./hasgot gettimeofday; then -+if sh ./hasgot cc="$cc -wd165" gettimeofday; then ++if sh cc="$cc -wd165" ./hasgot gettimeofday; then echo "gettimeofday() found." echo "#define HAS_GETTIMEOFDAY" >> s.h has_gettimeofday="yes" -- GitLab From 196677c005995eff4b5dc881d82e919c4d733329 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 12:54:26 +0200 Subject: [PATCH 040/732] really fix patch --- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch index 6037d7e236..ab2cf73c3e 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -5,7 +5,7 @@ has_gettimeofday=no -if sh ./hasgot gettimeofday; then -+if sh cc="$cc -wd165" ./hasgot gettimeofday; then ++if cc="$cc -wd165" sh ./hasgot gettimeofday; then echo "gettimeofday() found." echo "#define HAS_GETTIMEOFDAY" >> s.h has_gettimeofday="yes" -- GitLab From 414eb8ad2bba443c5c1177c01e7d3fd8751efbd5 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 14:16:19 +0200 Subject: [PATCH 041/732] fix typo --- .../p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index f16f8b1dff..fd414fb69a 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -29,7 +29,7 @@ dependencies = [ ('SQLite', '3.8.6'), # for SQLite3-OCaml package ] -start_dir = '%(name)-%(version)s' +start_dir = '%(name)s-%(version)s' # see http://matsen.github.io/pplacer/compiling.html#opam prebuildopts = "export OPAMROOT=%(installdir)s && opam init && " -- GitLab From 2f7d0856b564dc0bf2a249e5f53ab14e7007fee4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 14:24:19 +0200 Subject: [PATCH 042/732] no need to specify start_dir --- .../p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index fd414fb69a..020232dbc3 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -29,8 +29,6 @@ dependencies = [ ('SQLite', '3.8.6'), # for SQLite3-OCaml package ] -start_dir = '%(name)s-%(version)s' - # see http://matsen.github.io/pplacer/compiling.html#opam prebuildopts = "export OPAMROOT=%(installdir)s && opam init && " prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && " -- GitLab From 79c87bad7b6658455c0c9577b6b1e76407cc36c5 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 20:05:24 +0200 Subject: [PATCH 043/732] extend patch for OCaml configure, add M4 as build dep for pplacer --- .../easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 9 +++++++++ .../pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 11 ++++++++--- .../pplacer-1.1.alpha16_fix-sqlite3-req-pkg.patch | 11 +++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16_fix-sqlite3-req-pkg.patch diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch index ab2cf73c3e..1d8950ff29 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -1,5 +1,14 @@ --- configure.orig 2015-10-06 10:19:12.763826416 +0200 +++ configure 2015-10-06 10:19:56.005026703 +0200 +@@ -1015,7 +1015,7 @@ + fi + + has_select=no +-if sh ./hasgot select && \ ++if cc="$cc -wd165" sh ./hasgot select && \ + sh ./hasgot -i sys/types.h $select_include -t fd_set ; then + echo "select() found." + echo "#define HAS_SELECT" >> s.h @@ -1084,7 +1084,7 @@ fi diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index 020232dbc3..8a7218977a 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -19,6 +19,8 @@ sources = [ 'ba5e766.tar.gz', # pplacer-opam-repository (20151002) ] +patches = ['pplacer-%(version)s_fix-sqlite3-req-pkg.patch'] + ocaml = 'OCaml' ocamlver = '4.01.0' versionsuffix = '-%s-%s' % (ocaml, ocamlver) @@ -28,12 +30,15 @@ dependencies = [ ('GSL', '1.16'), # for GSL-OCaml package ('SQLite', '3.8.6'), # for SQLite3-OCaml package ] +builddependencies = [ + ('M4', '1.4.17'), +] # see http://matsen.github.io/pplacer/compiling.html#opam -prebuildopts = "export OPAMROOT=%(installdir)s && opam init && " +prebuildopts = "rm -rf %(installdir)s && export OPAMROOT=%(installdir)s && opam init && " prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && " -prebuildopts += "opam update pplacer-deps && eval `opam config env` && " -prebuildopts += "cat opam-requirements.txt | xargs opam install -y && " +prebuildopts += "echo 'OPAM UPDATE' && opam update pplacer-deps && echo 'OPAM CONFIG' && eval `opam config env` && " +prebuildopts += "echo 'OPAM INSTALL' && cat opam-requirements.txt | xargs opam install -y && " parallel = 1 files_to_copy = ['bin'] diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16_fix-sqlite3-req-pkg.patch b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16_fix-sqlite3-req-pkg.patch new file mode 100644 index 0000000000..6bb8c7268d --- /dev/null +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16_fix-sqlite3-req-pkg.patch @@ -0,0 +1,11 @@ +fix name of required sqlite3-ocaml package +see also https://github.com/matsen/pplacer/commit/4ae1c6803486a6460a776b6807657a3bcc4005da +--- opam-requirements.txt.orig 2015-10-06 16:38:42.246475661 +0200 ++++ opam-requirements.txt 2015-10-06 16:38:50.586708932 +0200 +@@ -4,5 +4,5 @@ + mcl.12-068oasis3 + batteries.2.1.0 + ocaml-gsl.0.6.3 +-sqlite3-ocaml.1.6.3 ++sqlite3.1.6.3 + camlzip.1.05 -- GitLab From 50eed51b8a23e4febfda9ac834e68d778cf545b6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 6 Oct 2015 20:51:29 +0200 Subject: [PATCH 044/732] set $OCAML_BACKEND to 'gcc' to fix issue with building gsl-ocaml --- .../p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index 8a7218977a..b23402e2e0 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -37,8 +37,8 @@ builddependencies = [ # see http://matsen.github.io/pplacer/compiling.html#opam prebuildopts = "rm -rf %(installdir)s && export OPAMROOT=%(installdir)s && opam init && " prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && " -prebuildopts += "echo 'OPAM UPDATE' && opam update pplacer-deps && echo 'OPAM CONFIG' && eval `opam config env` && " -prebuildopts += "echo 'OPAM INSTALL' && cat opam-requirements.txt | xargs opam install -y && " +prebuildopts += "opam update pplacer-deps && eval `opam config env` && " +prebuildopts += "export OCAML_BACKEND=gcc && cat opam-requirements.txt | xargs opam install -y && " parallel = 1 files_to_copy = ['bin'] -- GitLab From 494cc57bad11ad1669a241d34e95ce0b1e0bdb45 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 27 Oct 2015 11:01:28 +0100 Subject: [PATCH 045/732] {vis}[intel/2015b] p4vasp 0.3.29 --- .../p/p4vasp/p4vasp-0.3.29-intel-2015b.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb diff --git a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb new file mode 100644 index 0000000000..1a98acb8a6 --- /dev/null +++ b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'p4vasp' +version = '0.3.29' + +homepage = 'http://www.p4vasp.at/' +description = """Visualization suite for VASP""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +# download via http://www.p4vasp.at/index.php/downloads +sources = [SOURCE_TGZ] + +skipsteps = ['configure', 'build'] + +# redefine $HOME to specify installation prefix O_o +preinstallopts = "HOME=%(installdir)s make local &&" + +sanity_check_paths = { + 'files': ['p4vasp/bin/p4v', 'p4vasp/lib/libODP.a', 'p4vasp/lib/libp4vasp.a'], + 'dirs': ['p4vasp/data', 'p4vasp/include/ODP', 'p4vasp/include/p4vasp', 'p4vasp/python-packages', 'p4vasp/utils'], +} + +modextrapaths = { + 'CPATH': ['p4vasp/include'], + 'LIBRARY_PATH': ['p4vasp/lib'], + 'PATH': ['p4vasp/bin'], + 'PYTHONPATH': ['p4vasp/python-packages'], +} + +moduleclass = 'vis' -- GitLab From 3dcf130206be4537076431d0d2e92e7ceeccd566 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 27 Oct 2015 14:45:50 +0100 Subject: [PATCH 046/732] add PyGTK dep in p4vasp easyconfig --- .../g/GLib/GLib-2.47.1-intel-2015b.eb | 21 +++++++++++ ...Object-Introspection-1.46.0-intel-2015b.eb | 37 +++++++++++++++++++ ...ject-Introspection-1.46.0_env-python.patch | 8 ++++ ...Object-2.28.3-intel-2015b-Python-2.7.10.eb | 30 +++++++++++++++ .../PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb | 30 +++++++++++++++ ...4vasp-0.3.29-intel-2015b-Python-2.7.10.eb} | 5 +++ 6 files changed, 131 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb create mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb create mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch create mode 100644 easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb create mode 100644 easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb rename easybuild/easyconfigs/p/p4vasp/{p4vasp-0.3.29-intel-2015b.eb => p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb} (89%) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb new file mode 100644 index 0000000000..d5db1754d1 --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.47.1' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.6'), +] +builddependencies = [('Python', '2.7.10')] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb new file mode 100644 index 0000000000..adb7b2d88a --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'GObject-Introspection' +version = '1.46.0' + +homepage = 'https://wiki.gnome.org/GObjectIntrospection/' +description = """GObject introspection is a middleware layer between C libraries + (using GObject) and language bindings. The C library can be scanned at + compile time and generate a metadata file, in addition to the actual + native C library. Then at runtime, language bindings can read this + metadata and automatically provide bindings to call into the C library.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +patches = ['GObject-Introspection-%(version)s_env-python.patch'] + +dependencies = [ + ('Python', '2.7.10'), + ('GLib', '2.47.1'), + ('Bison', '3.0.4'), +] + +sanity_check_paths = { + 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + + ['lib/libgirepository-1.0.%s' % x for x in ['so', 'a']], + 'dirs': ['include', 'share'] +} + +modextrapaths = { + 'GI_TYPELIB_PATH': 'share', + 'XDG_DATA_DIRS': 'share', +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch new file mode 100644 index 0000000000..a308f8a3ed --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch @@ -0,0 +1,8 @@ +--- gobject-introspection-1.46.0.orig/tools/g-ir-tool-template.in 2015-10-27 12:42:43.844025247 +0100 ++++ gobject-introspection-1.46.0/tools/g-ir-tool-template.in 2015-10-27 12:41:09.431855691 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env @PYTHON@ ++#!/usr/bin/env python + # -*- Mode: Python -*- + # GObject-Introspection - a framework for introspecting GObject libraries + # Copyright (C) 2008 Johan Dahlin diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..447454d5c1 --- /dev/null +++ b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'PyGObject' +version = '2.28.3' + +homepage = 'http://www.pygtk.org/' +description = """Python Bindings for GLib/GObject/GIO/GTK+""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCELOWER_TAR_BZ2] + +pyver_maj_min = '2.7' +pyver = '%s.10' % pyver_maj_min +versionsuffix = '-Python-%s' % pyver + +dependencies = [ + ('Python', pyver), + ('GLib', '2.47.1'), + ('GObject-Introspection', '1.46.0'), + ('pycairo', '1.10.0', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/pygtk' % pyver_maj_min], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..b4ce217801 --- /dev/null +++ b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'PyGTK' +version = '2.24.0' + +homepage = 'http://www.pygtk.org/' +description = """PyGTK lets you to easily create programs with a graphical user interface + using the Python programming language.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +pyver_maj_min = '2.7' +pyver = '%s.10' % pyver_maj_min +versionsuffix = '-Python-%s' % pyver + +dependencies = [ + ('Python', pyver), + ('GLib', '2.47.1'), + ('PyGObject', '2.28.3', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/pygtk' % pyver_maj_min], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb similarity index 89% rename from easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb rename to easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb index 1a98acb8a6..7fcc6c3b0b 100644 --- a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b.eb +++ b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb @@ -2,6 +2,7 @@ easyblock = 'ConfigureMake' name = 'p4vasp' version = '0.3.29' +versionsuffix = '-Python-2.7.10' homepage = 'http://www.p4vasp.at/' description = """Visualization suite for VASP""" @@ -11,6 +12,10 @@ toolchain = {'name': 'intel', 'version': '2015b'} # download via http://www.p4vasp.at/index.php/downloads sources = [SOURCE_TGZ] +dependencies = [ + ('PyGTK', '2.24.0', versionsuffix), +] + skipsteps = ['configure', 'build'] # redefine $HOME to specify installation prefix O_o -- GitLab From 84d3505c022625c9693e88955f25f0768c5d37a4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 27 Oct 2015 16:44:17 +0100 Subject: [PATCH 047/732] add comment to patch for GObject-Introspection --- .../GObject-Introspection-1.46.0_env-python.patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch index a308f8a3ed..10ef1bbb3f 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch @@ -1,3 +1,5 @@ +avoid that full path to bin/python is used in Python scripts +author: Kenneth Hoste (HPC-UGent) --- gobject-introspection-1.46.0.orig/tools/g-ir-tool-template.in 2015-10-27 12:42:43.844025247 +0100 +++ gobject-introspection-1.46.0/tools/g-ir-tool-template.in 2015-10-27 12:41:09.431855691 +0100 @@ -1,4 +1,4 @@ -- GitLab From a533eb7d3ecbc97ed4dc2e732b3da4d903366985 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 27 Oct 2015 17:05:52 +0100 Subject: [PATCH 048/732] fix versionsuffix for GObject-Introspection --- ...Object-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb} | 5 ++++- .../PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) rename easybuild/easyconfigs/g/GObject-Introspection/{GObject-Introspection-1.46.0-intel-2015b.eb => GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb} (93%) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb similarity index 93% rename from easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb rename to easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb index adb7b2d88a..1cf131481f 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb @@ -17,8 +17,11 @@ sources = [SOURCELOWER_TAR_XZ] patches = ['GObject-Introspection-%(version)s_env-python.patch'] +pyver = '2.7.10' +versionsuffix = '-Python-%s' % pyver + dependencies = [ - ('Python', '2.7.10'), + ('Python', pyver), ('GLib', '2.47.1'), ('Bison', '3.0.4'), ] diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb index 447454d5c1..386119a809 100644 --- a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb @@ -18,7 +18,7 @@ versionsuffix = '-Python-%s' % pyver dependencies = [ ('Python', pyver), ('GLib', '2.47.1'), - ('GObject-Introspection', '1.46.0'), + ('GObject-Introspection', '1.46.0', versionsuffix), ('pycairo', '1.10.0', versionsuffix), ] -- GitLab From 668e7a21a2ec5781fd5288f20b78df181adf052d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 27 Oct 2015 22:57:37 +0100 Subject: [PATCH 049/732] switch to GLib 2.29.92 and PyGObject 2.28.6 --- .../cairo-1.14.2-intel-2015b-GLib-2.29.92.eb | 46 +++++++++++++++++++ ...l-2015b.eb => GLib-2.29.92-intel-2015b.eb} | 5 +- ...ction-0.10.8-intel-2015b-Python-2.7.10.eb} | 8 ++-- ...ject-Introspection-1.46.0_env-python.patch | 10 ---- ...Object-2.28.3-intel-2015b-Python-2.7.10.eb | 30 ------------ ...Object-2.28.6-intel-2015b-Python-2.7.10.eb | 34 ++++++++++++++ .../PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb | 8 ++-- ...-intel-2015b-Python-2.7.10-GLib-2.29.92.eb | 30 ++++++++++++ 8 files changed, 120 insertions(+), 51 deletions(-) create mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb rename easybuild/easyconfigs/g/GLib/{GLib-2.47.1-intel-2015b.eb => GLib-2.29.92-intel-2015b.eb} (84%) rename easybuild/easyconfigs/g/GObject-Introspection/{GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb => GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb} (87%) delete mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch delete mode 100644 easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb create mode 100644 easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb create mode 100644 easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb new file mode 100644 index 0000000000..75af067c33 --- /dev/null +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb @@ -0,0 +1,46 @@ +easyblock = 'ConfigureMake' + +name = 'cairo' +version = '1.14.2' + +homepage = 'http://cairographics.org' +description = """Cairo is a 2D graphics library with support for multiple output devices. + Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, + PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_XZ] + +glibver = '2.29.92' +versionsuffix = '-GLib-%s' % glibver + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libpng', '1.6.18'), + ('freetype', '2.6.1'), + ('pixman', '0.32.8'), + ('fontconfig', '2.11.94'), + ('expat', '2.1.0'), + ('GLib', glibver), +] + +# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC +configopts = "--enable-symbol-lookup=no --enable-gobject=yes" + +# workaround for "hidden symbol .* in .* is referenced by DSO" and "ld: final link failed: Bad value" +buildopts = 'LD="$CC" LDFLAGS="$LDFLAGS -shared-intel"' + +sanity_check_paths = { + 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', + 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', + 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + + ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', + '-script', '-script-interpreter', '-svg', '-version', '-xcb', + '-xlib', '-xlib-xrender']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb similarity index 84% rename from easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb rename to easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb index d5db1754d1..053d541683 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb @@ -1,7 +1,7 @@ easyblock = 'ConfigureMake' name = 'GLib' -version = '2.47.1' +version = '2.29.92' homepage = 'http://www.gtk.org/' description = """GLib is one of the base libraries of the GTK+ project""" @@ -10,11 +10,12 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] -sources = [SOURCELOWER_TAR_XZ] +sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.10')] diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb similarity index 87% rename from easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb rename to easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb index 1cf131481f..669dcee41a 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb @@ -1,7 +1,7 @@ easyblock = 'ConfigureMake' name = 'GObject-Introspection' -version = '1.46.0' +version = '0.10.8' homepage = 'https://wiki.gnome.org/GObjectIntrospection/' description = """GObject introspection is a middleware layer between C libraries @@ -13,16 +13,14 @@ description = """GObject introspection is a middleware layer between C libraries toolchain = {'name': 'intel', 'version': '2015b'} source_urls = [FTPGNOME_SOURCE] -sources = [SOURCELOWER_TAR_XZ] - -patches = ['GObject-Introspection-%(version)s_env-python.patch'] +sources = [SOURCELOWER_TAR_GZ] pyver = '2.7.10' versionsuffix = '-Python-%s' % pyver dependencies = [ ('Python', pyver), - ('GLib', '2.47.1'), + ('GLib', '2.29.92'), ('Bison', '3.0.4'), ] diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch deleted file mode 100644 index 10ef1bbb3f..0000000000 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.46.0_env-python.patch +++ /dev/null @@ -1,10 +0,0 @@ -avoid that full path to bin/python is used in Python scripts -author: Kenneth Hoste (HPC-UGent) ---- gobject-introspection-1.46.0.orig/tools/g-ir-tool-template.in 2015-10-27 12:42:43.844025247 +0100 -+++ gobject-introspection-1.46.0/tools/g-ir-tool-template.in 2015-10-27 12:41:09.431855691 +0100 -@@ -1,4 +1,4 @@ --#!/usr/bin/env @PYTHON@ -+#!/usr/bin/env python - # -*- Mode: Python -*- - # GObject-Introspection - a framework for introspecting GObject libraries - # Copyright (C) 2008 Johan Dahlin diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb deleted file mode 100644 index 386119a809..0000000000 --- a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.3-intel-2015b-Python-2.7.10.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'PyGObject' -version = '2.28.3' - -homepage = 'http://www.pygtk.org/' -description = """Python Bindings for GLib/GObject/GIO/GTK+""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = [PYPI_SOURCE] -sources = [SOURCELOWER_TAR_BZ2] - -pyver_maj_min = '2.7' -pyver = '%s.10' % pyver_maj_min -versionsuffix = '-Python-%s' % pyver - -dependencies = [ - ('Python', pyver), - ('GLib', '2.47.1'), - ('GObject-Introspection', '1.46.0', versionsuffix), - ('pycairo', '1.10.0', versionsuffix), -] - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages/pygtk' % pyver_maj_min], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..3c627c6217 --- /dev/null +++ b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'PyGObject' +version = '2.28.6' + +homepage = 'http://www.pygtk.org/' +description = """Python Bindings for GLib/GObject/GIO/GTK+""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +pyver_maj_min = '2.7' +pyver = '%s.10' % pyver_maj_min +versionsuffix = '-Python-%s' % pyver + +glibver = '2.29.92' +dependencies = [ + ('Python', pyver), + ('GLib', glibver), + ('GObject-Introspection', '0.10.8', versionsuffix), + ('pycairo', '1.10.0', versionsuffix + '-GLib-%s' % glibver), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['include/pygtk-%(version_major)s.0/pyglib.h', 'include/pygtk-%(version_major)s.0/pygobject.h', + 'lib/libpyglib-%(version_major)s.0-python.so'], + 'dirs': ['bin', 'lib/python%s/site-packages/' % pyver_maj_min], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb index b4ce217801..acfff835e3 100644 --- a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb @@ -18,13 +18,13 @@ versionsuffix = '-Python-%s' % pyver dependencies = [ ('Python', pyver), - ('GLib', '2.47.1'), - ('PyGObject', '2.28.3', versionsuffix), + ('GLib', '2.29.92'), + ('PyGObject', '2.28.6', versionsuffix), ] sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages/pygtk' % pyver_maj_min], + 'files': ['lib/pkgconfig/pygtk-%(version_major)s.0.pc'], + 'dirs': ['lib/pygtk'], } moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb b/easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb new file mode 100644 index 0000000000..23337bffcc --- /dev/null +++ b/easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb @@ -0,0 +1,30 @@ +easyblock = 'Waf' + +name = 'pycairo' +version = '1.10.0' + +homepage = 'http://cairographics.org/pycairo/' +description = """Python bindings for the cairo library""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://cairographics.org/releases/'] +# py2cairo is the Python 2 compatible release +sources = ['py2cairo-%(version)s.tar.bz2'] + +pyver_maj_min = '2.7' +pyver = '%s.10' % pyver_maj_min +glibver = '2.29.92' +versionsuffix = '-Python-%s-GLib-%s' % (pyver, glibver) + +dependencies = [ + ('Python', pyver), + ('cairo', '1.14.2', '-GLib-%s' % glibver), +] + +sanity_check_paths = { + 'files': ['include/pycairo/pycairo.h', 'lib/pkgconfig/pycairo.pc'], + 'dirs': ['lib/python%s/site-packages/cairo' % pyver_maj_min], +} + +moduleclass = 'vis' -- GitLab From b67dff1790779871c93a0dde2618d8ba18f2ebab Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 4 Nov 2015 11:06:45 +0100 Subject: [PATCH 050/732] 1 --- .../e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb | 37 + .../f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb | 43 + .../easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch | 871 ++++++++++++++++++ .../o/Octopus/Octopus-5.0.0-intel-2015b.eb | 51 + .../p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb | 27 + 5 files changed, 1029 insertions(+) create mode 100644 easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb create mode 100644 easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb create mode 100644 easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch create mode 100644 easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb create mode 100644 easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb diff --git a/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb b/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb new file mode 100644 index 0000000000..1e01d1ca9a --- /dev/null +++ b/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013-2014 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'ETSF_IO' +version = '1.0.4' + +homepage = 'http://www.etsf.eu/resources/software/libraries_and_tools' +description = """A library of F90 routines to read/write the ETSF file +format has been written. It is called ETSF_IO and available under LGPL. """ + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.etsf.eu/system/files'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-netcdf-prefix=$EBROOTNETCDF " +configopts += "--with-netcdf-libs='-L$EBROOTNETCDF/lib -lnetcdf -lnetcdff' " +configopts += " --with-netcdf-incs='-I$EBROOTNETCDF/include'" + +dependencies = [ + ('netCDF', '4.3.3.1'), + ('netCDF-Fortran', '4.4.2'), +] + +sanity_check_paths = { + 'files': ["bin/etsf_io"], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb new file mode 100644 index 0000000000..05f0826bb5 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.4-p2' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = ['%s-%s.tar.gz' % (name.lower(), version.split("-")[0])] +source_urls = [homepage] + +patches = ['%(name)s_%(version)s.patch'] + +builddependencies = [ + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), +] + +# the patch changed a Makefile.am, so we need to call autoreconf +preconfigopts = "autoreconf --verbose --symlink --force && " + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +# no quad precision, requires GCC v4.6 or higher +# see also http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch b/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch new file mode 100644 index 0000000000..981d2feb46 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch @@ -0,0 +1,871 @@ +#https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en#scripts +#Within these scripts we apply the following patches that have been submitted to FFTW but are not yet included in FFTW-3.3.4: +#We add two more global transposition algorithms to the planner. +#We patch file mpi/transpose-pairwise.c in order to fix a double free bug. +diff -rupN fftw-3.3.4/mpi/conf.c fftw-3.3.4-patched/mpi/conf.c +--- fftw-3.3.4/mpi/conf.c 2014-03-04 19:41:03.000000000 +0100 ++++ fftw-3.3.4-patched/mpi/conf.c 2015-09-05 05:53:19.085516467 +0200 +@@ -29,6 +29,8 @@ static const solvtab s = + SOLVTAB(XM(transpose_pairwise_register)), + SOLVTAB(XM(transpose_alltoall_register)), + SOLVTAB(XM(transpose_recurse_register)), ++ SOLVTAB(XM(transpose_pairwise_transposed_register)), ++ SOLVTAB(XM(transpose_alltoall_transposed_register)), + SOLVTAB(XM(dft_rank_geq2_register)), + SOLVTAB(XM(dft_rank_geq2_transposed_register)), + SOLVTAB(XM(dft_serial_register)), +diff -rupN fftw-3.3.4/mpi/Makefile.am fftw-3.3.4-patched/mpi/Makefile.am +--- fftw-3.3.4/mpi/Makefile.am 2013-03-18 13:10:45.000000000 +0100 ++++ fftw-3.3.4-patched/mpi/Makefile.am 2015-09-05 05:53:19.084516437 +0200 +@@ -16,6 +16,7 @@ BUILT_SOURCES = fftw3-mpi.f03.in fftw3-m + CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03 + + TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h ++TRANSPOSE_SRC += transpose-alltoall-transposed.c transpose-pairwise-transposed.c + DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h + RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h + RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h +diff -rupN fftw-3.3.4/mpi/mpi-transpose.h fftw-3.3.4-patched/mpi/mpi-transpose.h +--- fftw-3.3.4/mpi/mpi-transpose.h 2014-03-04 19:41:03.000000000 +0100 ++++ fftw-3.3.4-patched/mpi/mpi-transpose.h 2015-09-05 05:53:19.085516467 +0200 +@@ -59,3 +59,5 @@ int XM(mkplans_posttranspose)(const prob + void XM(transpose_pairwise_register)(planner *p); + void XM(transpose_alltoall_register)(planner *p); + void XM(transpose_recurse_register)(planner *p); ++void XM(transpose_pairwise_transposed_register)(planner *p); ++void XM(transpose_alltoall_transposed_register)(planner *p); +diff -rupN fftw-3.3.4/mpi/transpose-alltoall-transposed.c fftw-3.3.4-patched/mpi/transpose-alltoall-transposed.c +--- fftw-3.3.4/mpi/transpose-alltoall-transposed.c 1970-01-01 01:00:00.000000000 +0100 ++++ fftw-3.3.4-patched/mpi/transpose-alltoall-transposed.c 2015-09-05 05:53:19.085516467 +0200 +@@ -0,0 +1,280 @@ ++/* ++ * Copyright (c) 2003, 2007-11 Matteo Frigo ++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology ++ * Copyright (c) 2012 Michael Pippig ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * 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 ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++/* plans for distributed out-of-place transpose using MPI_Alltoall, ++ and which destroy the input array (also if TRANSPOSED_IN is used) */ ++ ++#include "mpi-transpose.h" ++#include ++ ++typedef struct { ++ solver super; ++ int copy_transposed_out; /* whether to copy the output for TRANSPOSED_OUT, ++ which makes the first transpose out-of-place ++ but costs an extra copy and requires us ++ to destroy the input */ ++} S; ++ ++typedef struct { ++ plan_mpi_transpose super; ++ ++ plan *cld1, *cld2, *cld2rest, *cld3; ++ ++ MPI_Comm comm; ++ int *send_block_sizes, *send_block_offsets; ++ int *recv_block_sizes, *recv_block_offsets; ++ ++ INT rest_Ioff, rest_Ooff; ++ ++ int equal_blocks; ++} P; ++ ++/* transpose locally to get contiguous chunks ++ this may take two transposes if the block sizes are unequal ++ (3 subplans, two of which operate on disjoint data) */ ++static void apply_pretranspose( ++ const P *ego, R *I, R *O ++ ) ++{ ++ plan_rdft *cld2, *cld2rest, *cld3; ++ ++ cld3 = (plan_rdft *) ego->cld3; ++ if (cld3) ++ cld3->apply(ego->cld3, O, O); ++ /* else TRANSPOSED_IN is true and user wants I transposed */ ++ ++ cld2 = (plan_rdft *) ego->cld2; ++ cld2->apply(ego->cld2, I, O); ++ cld2rest = (plan_rdft *) ego->cld2rest; ++ if (cld2rest) { ++ cld2rest->apply(ego->cld2rest, ++ I + ego->rest_Ioff, O + ego->rest_Ooff); ++ } ++} ++ ++static void apply(const plan *ego_, R *I, R *O) ++{ ++ const P *ego = (const P *) ego_; ++ plan_rdft *cld1 = (plan_rdft *) ego->cld1; ++ ++ if (cld1) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ /* transpose chunks globally */ ++ if (ego->equal_blocks) ++ MPI_Alltoall(O, ego->send_block_sizes[0], FFTW_MPI_TYPE, ++ I, ego->recv_block_sizes[0], FFTW_MPI_TYPE, ++ ego->comm); ++ else ++ MPI_Alltoallv(O, ego->send_block_sizes, ego->send_block_offsets, ++ FFTW_MPI_TYPE, ++ I, ego->recv_block_sizes, ego->recv_block_offsets, ++ FFTW_MPI_TYPE, ++ ego->comm); ++ ++ /* transpose locally to get non-transposed output */ ++ cld1->apply(ego->cld1, I, O); ++ } /* else TRANSPOSED_OUT is true and user wants O transposed */ ++ else { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, I); ++ ++ /* transpose chunks globally */ ++ if (ego->equal_blocks) ++ MPI_Alltoall(I, ego->send_block_sizes[0], FFTW_MPI_TYPE, ++ O, ego->recv_block_sizes[0], FFTW_MPI_TYPE, ++ ego->comm); ++ else ++ MPI_Alltoallv(I, ego->send_block_sizes, ego->send_block_offsets, ++ FFTW_MPI_TYPE, ++ O, ego->recv_block_sizes, ego->recv_block_offsets, ++ FFTW_MPI_TYPE, ++ ego->comm); ++ } ++} ++ ++static int applicable(const S *ego, const problem *p_, ++ const planner *plnr) ++{ ++ /* in contrast to transpose-alltoall this algorithm can not preserve the input, ++ * since we need at least one transpose before the (out-of-place) Alltoall */ ++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_; ++ return (1 ++ && p->I != p->O ++ && (!NO_DESTROY_INPUTP(plnr)) ++ && ((p->flags & TRANSPOSED_OUT) || !ego->copy_transposed_out) ++ && ONLY_TRANSPOSEDP(p->flags) ++ ); ++} ++ ++static void awake(plan *ego_, enum wakefulness wakefulness) ++{ ++ P *ego = (P *) ego_; ++ X(plan_awake)(ego->cld1, wakefulness); ++ X(plan_awake)(ego->cld2, wakefulness); ++ X(plan_awake)(ego->cld2rest, wakefulness); ++ X(plan_awake)(ego->cld3, wakefulness); ++} ++ ++static void destroy(plan *ego_) ++{ ++ P *ego = (P *) ego_; ++ X(ifree0)(ego->send_block_sizes); ++ MPI_Comm_free(&ego->comm); ++ X(plan_destroy_internal)(ego->cld3); ++ X(plan_destroy_internal)(ego->cld2rest); ++ X(plan_destroy_internal)(ego->cld2); ++ X(plan_destroy_internal)(ego->cld1); ++} ++ ++static void print(const plan *ego_, printer *p) ++{ ++ const P *ego = (const P *) ego_; ++ p->print(p, "(mpi-transpose-alltoall-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))", ++ ego->equal_blocks ? "/e" : "", ++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3); ++} ++ ++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr) ++{ ++ const S *ego = (const S *) ego_; ++ const problem_mpi_transpose *p; ++ P *pln; ++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0; ++ INT b, bt, vn, rest_Ioff, rest_Ooff; ++ R *O; ++ int *sbs, *sbo, *rbs, *rbo; ++ int pe, my_pe, n_pes; ++ int equal_blocks = 1; ++ static const plan_adt padt = { ++ XM(transpose_solve), awake, print, destroy ++ }; ++ ++ if (!applicable(ego, p_, plnr)) ++ return (plan *) 0; ++ ++ p = (const problem_mpi_transpose *) p_; ++ vn = p->vn; ++ ++ MPI_Comm_rank(p->comm, &my_pe); ++ MPI_Comm_size(p->comm, &n_pes); ++ ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ ++ if (p->flags & TRANSPOSED_OUT) { /* O stays transposed */ ++ if (ego->copy_transposed_out) { ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_1d) ++ (bt * p->nx * vn, 1, 1), ++ p->I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ } ++ else /* first transpose is in-place */ ++ O = p->I; ++ } ++ else { /* transpose nx x bt x vn -> bt x nx x vn */ ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (bt, vn, p->nx * vn, ++ p->nx, bt * vn, vn, ++ vn, 1, 1), ++ p->I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ } ++ ++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe, ++ &cld2, &cld2rest, &cld3, ++ &rest_Ioff, &rest_Ooff), ++ p->comm)) goto nada; ++ ++ ++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply); ++ ++ pln->cld1 = cld1; ++ pln->cld2 = cld2; ++ pln->cld2rest = cld2rest; ++ pln->rest_Ioff = rest_Ioff; ++ pln->rest_Ooff = rest_Ooff; ++ pln->cld3 = cld3; ++ ++ MPI_Comm_dup(p->comm, &pln->comm); ++ ++ /* Compute sizes/offsets of blocks to send for all-to-all command. */ ++ sbs = (int *) MALLOC(4 * n_pes * sizeof(int), PLANS); ++ sbo = sbs + n_pes; ++ rbs = sbo + n_pes; ++ rbo = rbs + n_pes; ++ b = XM(block)(p->nx, p->block, my_pe); ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ for (pe = 0; pe < n_pes; ++pe) { ++ INT db, dbt; /* destination block sizes */ ++ db = XM(block)(p->nx, p->block, pe); ++ dbt = XM(block)(p->ny, p->tblock, pe); ++ if (db != p->block || dbt != p->tblock) ++ equal_blocks = 0; ++ ++ /* MPI requires type "int" here; apparently it ++ has no 64-bit API? Grrr. */ ++ sbs[pe] = (int) (b * dbt * vn); ++ sbo[pe] = (int) (pe * (b * p->tblock) * vn); ++ rbs[pe] = (int) (db * bt * vn); ++ rbo[pe] = (int) (pe * (p->block * bt) * vn); ++ } ++ pln->send_block_sizes = sbs; ++ pln->send_block_offsets = sbo; ++ pln->recv_block_sizes = rbs; ++ pln->recv_block_offsets = rbo; ++ pln->equal_blocks = equal_blocks; ++ ++ X(ops_zero)(&pln->super.super.ops); ++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops); ++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops); ++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops); ++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops); ++ /* FIXME: should MPI operations be counted in "other" somehow? */ ++ ++ return &(pln->super.super); ++ ++ nada: ++ X(plan_destroy_internal)(cld3); ++ X(plan_destroy_internal)(cld2rest); ++ X(plan_destroy_internal)(cld2); ++ X(plan_destroy_internal)(cld1); ++ return (plan *) 0; ++} ++ ++static solver *mksolver(int copy_transposed_out) ++{ ++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 }; ++ S *slv = MKSOLVER(S, &sadt); ++ slv->copy_transposed_out = copy_transposed_out; ++ return &(slv->super); ++} ++ ++void XM(transpose_alltoall_transposed_register)(planner *p) ++{ ++ int cto; ++ for (cto = 0; cto <= 1; ++cto) ++ REGISTER_SOLVER(p, mksolver(cto)); ++} +diff -rupN fftw-3.3.4/mpi/transpose-pairwise.c fftw-3.3.4-patched/mpi/transpose-pairwise.c +--- fftw-3.3.4/mpi/transpose-pairwise.c 2014-03-04 19:41:03.000000000 +0100 ++++ fftw-3.3.4-patched/mpi/transpose-pairwise.c 2015-09-05 06:00:05.715433709 +0200 +@@ -53,7 +53,6 @@ static void transpose_chunks(int *sched, + { + if (sched) { + int i; +- MPI_Status status; + + /* TODO: explore non-synchronous send/recv? */ + +@@ -74,7 +73,7 @@ static void transpose_chunks(int *sched, + O + rbo[pe], (int) (rbs[pe]), + FFTW_MPI_TYPE, + pe, (pe * n_pes + my_pe) & 0xffff, +- comm, &status); ++ comm, MPI_STATUS_IGNORE); + } + } + +@@ -92,7 +91,7 @@ static void transpose_chunks(int *sched, + O + rbo[pe], (int) (rbs[pe]), + FFTW_MPI_TYPE, + pe, (pe * n_pes + my_pe) & 0xffff, +- comm, &status); ++ comm, MPI_STATUS_IGNORE); + } + } + } +@@ -350,6 +349,7 @@ nada: + X(plan_destroy_internal)(*cld3); + X(plan_destroy_internal)(*cld2rest); + X(plan_destroy_internal)(*cld2); ++ *cld2 = *cld2rest = *cld3 = NULL; + return 0; + } + +diff -rupN fftw-3.3.4/mpi/transpose-pairwise-transposed.c fftw-3.3.4-patched/mpi/transpose-pairwise-transposed.c +--- fftw-3.3.4/mpi/transpose-pairwise-transposed.c 1970-01-01 01:00:00.000000000 +0100 ++++ fftw-3.3.4-patched/mpi/transpose-pairwise-transposed.c 2015-09-05 06:00:07.280481042 +0200 +@@ -0,0 +1,510 @@ ++/* ++ * Copyright (c) 2003, 2007-11 Matteo Frigo ++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology ++ * Copyright (c) 2012 Michael Pippig ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * 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 ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++/* Distributed transposes using a sequence of carefully scheduled ++ pairwise exchanges. This has the advantage that it can be done ++ in-place, or out-of-place while preserving the input, using buffer ++ space proportional to the local size divided by the number of ++ processes (i.e. to the total array size divided by the number of ++ processes squared). */ ++ ++#include "mpi-transpose.h" ++#include ++ ++typedef struct { ++ solver super; ++ int preserve_input; /* preserve input even if DESTROY_INPUT was passed */ ++} S; ++ ++typedef struct { ++ plan_mpi_transpose super; ++ ++ plan *cld1, *cld2, *cld2rest, *cld3; ++ INT rest_Ioff, rest_Ooff; ++ ++ int n_pes, my_pe, *sched; ++ INT *send_block_sizes, *send_block_offsets; ++ INT *recv_block_sizes, *recv_block_offsets; ++ MPI_Comm comm; ++ int preserve_input; ++} P; ++ ++static void transpose_chunks(int *sched, int n_pes, int my_pe, ++ INT *sbs, INT *sbo, INT *rbs, INT *rbo, ++ MPI_Comm comm, ++ R *I, R *O) ++{ ++ if (sched) { ++ int i; ++ ++ /* TODO: explore non-synchronous send/recv? */ ++ ++ if (I == O) { ++ R *buf = (R*) MALLOC(sizeof(R) * sbs[0], BUFFERS); ++ ++ for (i = 0; i < n_pes; ++i) { ++ int pe = sched[i]; ++ if (my_pe == pe) { ++ if (rbo[pe] != sbo[pe]) ++ memmove(O + rbo[pe], O + sbo[pe], ++ sbs[pe] * sizeof(R)); ++ } ++ else { ++ memcpy(buf, O + sbo[pe], sbs[pe] * sizeof(R)); ++ MPI_Sendrecv(buf, (int) (sbs[pe]), FFTW_MPI_TYPE, ++ pe, (my_pe * n_pes + pe) & 0xffff, ++ O + rbo[pe], (int) (rbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (pe * n_pes + my_pe) & 0xffff, ++ comm, MPI_STATUS_IGNORE); ++ } ++ } ++ ++ X(ifree)(buf); ++ } ++ else { /* I != O */ ++ for (i = 0; i < n_pes; ++i) { ++ int pe = sched[i]; ++ if (my_pe == pe) ++ memcpy(O + rbo[pe], I + sbo[pe], sbs[pe] * sizeof(R)); ++ else ++ MPI_Sendrecv(I + sbo[pe], (int) (sbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (my_pe * n_pes + pe) & 0xffff, ++ O + rbo[pe], (int) (rbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (pe * n_pes + my_pe) & 0xffff, ++ comm, MPI_STATUS_IGNORE); ++ } ++ } ++ } ++} ++ ++/* transpose locally to get contiguous chunks ++ this may take two transposes if the block sizes are unequal ++ (3 subplans, two of which operate on disjoint data) */ ++static void apply_pretranspose( ++ const P *ego, R *I, R *O ++ ) ++{ ++ plan_rdft *cld2, *cld2rest, *cld3; ++ ++ cld3 = (plan_rdft *) ego->cld3; ++ if (cld3) ++ cld3->apply(ego->cld3, O, O); ++ /* else TRANSPOSED_IN is true and user wants I transposed */ ++ ++ cld2 = (plan_rdft *) ego->cld2; ++ cld2->apply(ego->cld2, I, O); ++ cld2rest = (plan_rdft *) ego->cld2rest; ++ if (cld2rest) { ++ cld2rest->apply(ego->cld2rest, ++ I + ego->rest_Ioff, O + ego->rest_Ooff); ++ } ++} ++ ++static void apply(const plan *ego_, R *I, R *O) ++{ ++ const P *ego = (const P *) ego_; ++ plan_rdft *cld1 = (plan_rdft *) ego->cld1; ++ ++ if (cld1) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ if(ego->preserve_input) I = O; ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, O, I); ++ ++ /* transpose locally to get non-transposed output */ ++ cld1->apply(ego->cld1, I, O); ++ } /* else TRANSPOSED_OUT is true and user wants O transposed */ ++ else if (ego->preserve_input) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, O, O); ++ } ++ else { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, I); ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, I, O); ++ } ++} ++ ++static int applicable(const S *ego, const problem *p_, ++ const planner *plnr) ++{ ++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_; ++ /* Note: this is *not* UGLY for out-of-place, destroy-input plans; ++ the planner often prefers transpose-pairwise to transpose-alltoall, ++ at least with LAM MPI on my machine. */ ++ return (1 ++ && (!ego->preserve_input || (!NO_DESTROY_INPUTP(plnr) ++ && p->I != p->O)) ++ && ONLY_TRANSPOSEDP(p->flags)); ++} ++ ++static void awake(plan *ego_, enum wakefulness wakefulness) ++{ ++ P *ego = (P *) ego_; ++ X(plan_awake)(ego->cld1, wakefulness); ++ X(plan_awake)(ego->cld2, wakefulness); ++ X(plan_awake)(ego->cld2rest, wakefulness); ++ X(plan_awake)(ego->cld3, wakefulness); ++} ++ ++static void destroy(plan *ego_) ++{ ++ P *ego = (P *) ego_; ++ X(ifree0)(ego->sched); ++ X(ifree0)(ego->send_block_sizes); ++ MPI_Comm_free(&ego->comm); ++ X(plan_destroy_internal)(ego->cld3); ++ X(plan_destroy_internal)(ego->cld2rest); ++ X(plan_destroy_internal)(ego->cld2); ++ X(plan_destroy_internal)(ego->cld1); ++} ++ ++static void print(const plan *ego_, printer *p) ++{ ++ const P *ego = (const P *) ego_; ++ p->print(p, "(mpi-transpose-pairwise-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))", ++ ego->preserve_input==2 ?"/p":"", ++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3); ++} ++ ++/* Given a process which_pe and a number of processes npes, fills ++ the array sched[npes] with a sequence of processes to communicate ++ with for a deadlock-free, optimum-overlap all-to-all communication. ++ (All processes must call this routine to get their own schedules.) ++ The schedule can be re-ordered arbitrarily as long as all processes ++ apply the same permutation to their schedules. ++ ++ The algorithm here is based upon the one described in: ++ J. A. M. Schreuder, "Constructing timetables for sport ++ competitions," Mathematical Programming Study 13, pp. 58-67 (1980). ++ In a sport competition, you have N teams and want every team to ++ play every other team in as short a time as possible (maximum overlap ++ between games). This timetabling problem is therefore identical ++ to that of an all-to-all communications problem. In our case, there ++ is one wrinkle: as part of the schedule, the process must do ++ some data transfer with itself (local data movement), analogous ++ to a requirement that each team "play itself" in addition to other ++ teams. With this wrinkle, it turns out that an optimal timetable ++ (N parallel games) can be constructed for any N, not just for even ++ N as in the original problem described by Schreuder. ++*/ ++static void fill1_comm_sched(int *sched, int which_pe, int npes) ++{ ++ int pe, i, n, s = 0; ++ A(which_pe >= 0 && which_pe < npes); ++ if (npes % 2 == 0) { ++ n = npes; ++ sched[s++] = which_pe; ++ } ++ else ++ n = npes + 1; ++ for (pe = 0; pe < n - 1; ++pe) { ++ if (npes % 2 == 0) { ++ if (pe == which_pe) sched[s++] = npes - 1; ++ else if (npes - 1 == which_pe) sched[s++] = pe; ++ } ++ else if (pe == which_pe) sched[s++] = pe; ++ ++ if (pe != which_pe && which_pe < n - 1) { ++ i = (pe - which_pe + (n - 1)) % (n - 1); ++ if (i < n/2) ++ sched[s++] = (pe + i) % (n - 1); ++ ++ i = (which_pe - pe + (n - 1)) % (n - 1); ++ if (i < n/2) ++ sched[s++] = (pe - i + (n - 1)) % (n - 1); ++ } ++ } ++ A(s == npes); ++} ++ ++/* Sort the communication schedule sched for npes so that the schedule ++ on process sortpe is ascending or descending (!ascending). This is ++ necessary to allow in-place transposes when the problem does not ++ divide equally among the processes. In this case there is one ++ process where the incoming blocks are bigger/smaller than the ++ outgoing blocks and thus have to be received in ++ descending/ascending order, respectively, to avoid overwriting data ++ before it is sent. */ ++static void sort1_comm_sched(int *sched, int npes, int sortpe, int ascending) ++{ ++ int *sortsched, i; ++ sortsched = (int *) MALLOC(npes * sizeof(int) * 2, OTHER); ++ fill1_comm_sched(sortsched, sortpe, npes); ++ if (ascending) ++ for (i = 0; i < npes; ++i) ++ sortsched[npes + sortsched[i]] = sched[i]; ++ else ++ for (i = 0; i < npes; ++i) ++ sortsched[2*npes - 1 - sortsched[i]] = sched[i]; ++ for (i = 0; i < npes; ++i) ++ sched[i] = sortsched[npes + i]; ++ X(ifree)(sortsched); ++} ++ ++/* make the plans to do the pre-MPI transpositions (shared with ++ transpose-alltoall-transposed) */ ++int XM(mkplans_pretranspose)(const problem_mpi_transpose *p, planner *plnr, ++ R *I, R *O, int my_pe, ++ plan **cld2, plan **cld2rest, plan **cld3, ++ INT *rest_Ioff, INT *rest_Ooff) ++{ ++ INT vn = p->vn; ++ INT b = XM(block)(p->nx, p->block, my_pe); ++ INT bt = p->tblock; ++ INT nyb = p->ny / bt; /* number of equal-sized blocks */ ++ INT nyr = p->ny - nyb * bt; /* leftover rows after equal blocks */ ++ ++ *cld2 = *cld2rest = *cld3 = NULL; ++ *rest_Ioff = *rest_Ooff = 0; ++ ++ if (!(p->flags & TRANSPOSED_IN) && (nyr == 0 || I != O)) { ++ INT ny = p->ny * vn; ++ bt *= vn; ++ *cld2 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (nyb, bt, b * bt, ++ b, ny, bt, ++ bt, 1, 1), ++ I, O), ++ 0, 0, NO_SLOW); ++ if (!*cld2) goto nada; ++ ++ if (nyr > 0) { ++ *rest_Ioff = nyb * bt; ++ *rest_Ooff = nyb * b * bt; ++ bt = nyr * vn; ++ *cld2rest = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_2d) ++ (b, ny, bt, ++ bt, 1, 1), ++ I + *rest_Ioff, ++ O + *rest_Ooff), ++ 0, 0, NO_SLOW); ++ if (!*cld2rest) goto nada; ++ } ++ } ++ else { ++ *cld2 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_4d) ++ (nyb, b * bt * vn, b * bt * vn, ++ b, vn, bt * vn, ++ bt, b * vn, vn, ++ vn, 1, 1), ++ I, O), ++ 0, 0, NO_SLOW); ++ if (!*cld2) goto nada; ++ ++ *rest_Ioff = *rest_Ooff = nyb * bt * b * vn; ++ *cld2rest = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_3d) ++ (b, vn, nyr * vn, ++ nyr, b * vn, vn, ++ vn, 1, 1), ++ I + *rest_Ioff, O + *rest_Ooff), ++ 0, 0, NO_SLOW); ++ if (!*cld2rest) goto nada; ++ ++ if (!(p->flags & TRANSPOSED_IN)) { ++ *cld3 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_3d) ++ (p->ny, vn, b * vn, ++ b, p->ny * vn, vn, ++ vn, 1, 1), ++ I, I), ++ 0, 0, NO_SLOW); ++ if (!*cld3) goto nada; ++ } ++ } ++ ++ return 1; ++ ++nada: ++ X(plan_destroy_internal)(*cld3); ++ X(plan_destroy_internal)(*cld2rest); ++ X(plan_destroy_internal)(*cld2); ++ *cld2 = *cld2rest = *cld3 = NULL; ++ return 0; ++} ++ ++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr) ++{ ++ const S *ego = (const S *) ego_; ++ const problem_mpi_transpose *p; ++ P *pln; ++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0; ++ INT b, bt, vn, rest_Ioff, rest_Ooff; ++ INT *sbs, *sbo, *rbs, *rbo; ++ int pe, my_pe, n_pes, sort_pe = -1, ascending = 1; ++ R *I, *O; ++ static const plan_adt padt = { ++ XM(transpose_solve), awake, print, destroy ++ }; ++ ++ UNUSED(ego); ++ ++ if (!applicable(ego, p_, plnr)) ++ return (plan *) 0; ++ ++ p = (const problem_mpi_transpose *) p_; ++ vn = p->vn; ++ I = p->I; O = p->O; ++ ++ MPI_Comm_rank(p->comm, &my_pe); ++ MPI_Comm_size(p->comm, &n_pes); ++ ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ ++ ++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) I = p->O; ++ ++ if (!(p->flags & TRANSPOSED_OUT)) { /* nx x bt x vn -> bt x nx x vn */ ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (bt, vn, p->nx * vn, ++ p->nx, bt * vn, vn, ++ vn, 1, 1), ++ I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ ++ } ++ else { ++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) ++ O = p->O; ++ else ++ O = p->I; ++ } ++ ++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe, ++ &cld2, &cld2rest, &cld3, ++ &rest_Ioff, &rest_Ooff), ++ p->comm)) goto nada; ++ ++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply); ++ ++ pln->cld1 = cld1; ++ pln->cld2 = cld2; ++ pln->cld2rest = cld2rest; ++ pln->rest_Ioff = rest_Ioff; ++ pln->rest_Ooff = rest_Ooff; ++ pln->cld3 = cld3; ++ pln->preserve_input = ego->preserve_input ? 2 : NO_DESTROY_INPUTP(plnr); ++ ++ MPI_Comm_dup(p->comm, &pln->comm); ++ ++ n_pes = (int) X(imax)(XM(num_blocks)(p->nx, p->block), ++ XM(num_blocks)(p->ny, p->tblock)); ++ ++ /* Compute sizes/offsets of blocks to exchange between processors */ ++ sbs = (INT *) MALLOC(4 * n_pes * sizeof(INT), PLANS); ++ sbo = sbs + n_pes; ++ rbs = sbo + n_pes; ++ rbo = rbs + n_pes; ++ b = XM(block)(p->nx, p->block, my_pe); ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ for (pe = 0; pe < n_pes; ++pe) { ++ INT db, dbt; /* destination block sizes */ ++ db = XM(block)(p->nx, p->block, pe); ++ dbt = XM(block)(p->ny, p->tblock, pe); ++ ++ sbs[pe] = b * dbt * vn; ++ sbo[pe] = pe * (b * p->tblock) * vn; ++ rbs[pe] = db * bt * vn; ++ rbo[pe] = pe * (p->block * bt) * vn; ++ ++ if (db * dbt > 0 && db * p->tblock != p->block * dbt) { ++ A(sort_pe == -1); /* only one process should need sorting */ ++ sort_pe = pe; ++ ascending = db * p->tblock > p->block * dbt; ++ } ++ } ++ pln->n_pes = n_pes; ++ pln->my_pe = my_pe; ++ pln->send_block_sizes = sbs; ++ pln->send_block_offsets = sbo; ++ pln->recv_block_sizes = rbs; ++ pln->recv_block_offsets = rbo; ++ ++ if (my_pe >= n_pes) { ++ pln->sched = 0; /* this process is not doing anything */ ++ } ++ else { ++ pln->sched = (int *) MALLOC(n_pes * sizeof(int), PLANS); ++ fill1_comm_sched(pln->sched, my_pe, n_pes); ++ if (sort_pe >= 0) ++ sort1_comm_sched(pln->sched, n_pes, sort_pe, ascending); ++ } ++ ++ X(ops_zero)(&pln->super.super.ops); ++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops); ++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops); ++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops); ++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops); ++ /* FIXME: should MPI operations be counted in "other" somehow? */ ++ ++ return &(pln->super.super); ++ ++ nada: ++ X(plan_destroy_internal)(cld3); ++ X(plan_destroy_internal)(cld2rest); ++ X(plan_destroy_internal)(cld2); ++ X(plan_destroy_internal)(cld1); ++ return (plan *) 0; ++} ++ ++static solver *mksolver(int preserve_input) ++{ ++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 }; ++ S *slv = MKSOLVER(S, &sadt); ++ slv->preserve_input = preserve_input; ++ return &(slv->super); ++} ++ ++void XM(transpose_pairwise_transposed_register)(planner *p) ++{ ++ int preserve_input; ++ for (preserve_input = 0; preserve_input <= 1; ++preserve_input) ++ REGISTER_SOLVER(p, mksolver(preserve_input)); ++} diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb new file mode 100644 index 0000000000..7750dafbb8 --- /dev/null +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'Octopus' +version = '5.0.0' +versionsuffix = '-mpi' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Main_Page' +description = """Octopus is a scientific program aimed at the ab initio virtual experimentation +on a hopefully ever-increasing range of system types. Electrons are described quantum-mechanically +within density-functional theory (DFT), in its time-dependent form (TDDFT) when doing simulations +in time. Nuclei are described classically as point particles. +Electron-nucleus interaction is described within the pseudopotential approximation.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True, 'opt': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=%(version)s/' ] + +builddependencies = [ + ('Bison', '3.0.4', '', ('GNU', '4.9.3-2.25')), +# ('Perl', '5.20.3'), +] + +dependencies = [ + ('libxc', '2.2.2'), + ('netCDF', '4.3.3.1'), + ('netCDF-Fortran', '4.4.2'), + ('FFTW', '3.3.4-p2'), + ('PFFT', '1.0.8-alpha'), + ('ETSF_IO', '1.0.4'), + ('GSL', '1.16'), +] + +configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' +configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' +configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lpthread" ' +configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' +configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' +configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' +configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' +configopts += '--with-pfft-prefix=$EBROOTPFFT --with-mpifftw-prefix=$EBROOTFFTW ' + +sanity_check_paths = { + 'files': ["bin/octopus_mpi"], + 'dirs': [] +} + +#runtest = 'MPIEXEC=`which mpirun` check' + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb b/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb new file mode 100644 index 0000000000..4ee4858b6d --- /dev/null +++ b/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'PFFT' +version = '1.0.8-alpha' + +homepage = 'https://www-user.tu-chemnitz.de/~mpip/software.php?lang=en' +description = """PFFT is a software library for computing massively parallel, fast Fourier +transformations on distributed memory architectures. PFFT can be understood as a generalization +of FFTW-MPI to multidimensional data decomposition.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.tu-chemnitz.de/~potts/workgroup/pippig/software/'] + +dependencies = [ + ('FFTW', '3.3.4-p2'), + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), +] + +sanity_check_paths = { + 'files': ['lib/libpfft.so.0.0.0', 'lib/libpfft.a'], + 'dirs': [], +} + +moduleclass = 'numlib' -- GitLab From 679c30c70d08293daf73c4c1a2569e5c1d749bd0 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 10 Nov 2015 08:24:09 +0100 Subject: [PATCH 051/732] 2 --- easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb index 7750dafbb8..932a21ffc2 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb @@ -19,7 +19,7 @@ source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=%(version)s/ builddependencies = [ ('Bison', '3.0.4', '', ('GNU', '4.9.3-2.25')), -# ('Perl', '5.20.3'), + ('Perl', '5.20.3'), ] dependencies = [ @@ -46,6 +46,6 @@ sanity_check_paths = { 'dirs': [] } -#runtest = 'MPIEXEC=`which mpirun` check' +runtest = 'MPIEXEC=`which mpirun` check' moduleclass = 'chem' -- GitLab From c5e37e8ce40ab0005f2b50b149ca694a0750660e Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Wed, 9 Dec 2015 13:56:39 +0100 Subject: [PATCH 052/732] Add deps for shift --- .../b/bbFTP/bbFTP-3.2.1-foss-2015b.eb | 42 + .../p/Perl/Perl-5.22.0-foss-2015b.eb | 909 ++++++++++++++++++ 2 files changed, 951 insertions(+) create mode 100644 easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb create mode 100644 easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb diff --git a/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb b/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb new file mode 100644 index 0000000000..ec80570d1a --- /dev/null +++ b/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +## + +easyblock = 'ConfigureMake' + +name = 'bbFTP' +version = '3.2.1' + +homepage = 'http://doc.in2p3.fr/bbftp/' +description = """bbFTP is a file transfer software. It implements its own transfer protocol, + which is optimized for large files (larger than 2GB) and secure as it does not read the + password in a file and encrypts the connection information. bbFTP main features are: + * Encoded username and password at connection * SSH and Certificate authentication modules + * Multi-stream transfer * Big windows as defined in RFC1323 * On-the-fly data compression + * Automatic retry * Customizable time-outs * Transfer simulation + * AFS authentication integration * RFIO interface""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +# fi. http://doc.in2p3.fr/bbftp/dist/bbftp-client-3.2.0.tar.gz +sources = ['%s-client-%s.tar.gz' % (name.lower(), version)] +source_urls = [homepage + 'dist'] + +start_dir = 'bbftpc' + +buildopts = "CC=$CC" + +dependencies = [('zlib', '1.2.8')] +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ['bin/bbftp'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb new file mode 100644 index 0000000000..37c67413c1 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb @@ -0,0 +1,909 @@ +name = 'Perl' +version = '5.22.0' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.58', { + 'source_tmpl': 'Config-General-2.58.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('TAP::Harness::Env', '3.35', { + 'source_tmpl': 'Test-Harness-3.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2013031301', { + 'source_tmpl': 'Regexp-Common-2013031301.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.021', { + 'source_tmpl': 'Test-Warnings-0.021.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '0.46', { + 'source_tmpl': 'DateTime-Locale-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '1.93', { + 'source_tmpl': 'DateTime-TimeZone-1.93.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.22', { + 'source_tmpl': 'Try-Tiny-0.22.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Params::Validate', '1.21', { + 'source_tmpl': 'Params-Validate-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.413', { + 'source_tmpl': 'List-MoreUtils-0.413.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['http://search.cpan.org/CPAN/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.20', { + 'source_tmpl': 'DateTime-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Module::Build', '0.4214', { + 'source_tmpl': 'Module-Build-0.4214.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Readonly', '2.00', { + 'source_tmpl': 'Readonly-2.00.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.27', { + 'source_tmpl': 'Tree-DAG_Node-1.27.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.634', { + 'source_tmpl': 'DBI-1.634.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.48', { + 'source_tmpl': 'DBD-SQLite-1.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.72', { + 'source_tmpl': 'Shell-0.72.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.47', { + 'source_tmpl': 'PathTools-3.47.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('ExtUtils::MakeMaker', '7.10', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.001014', { + 'source_tmpl': 'Test-Simple-1.001014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::WrapTie', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.40', { + 'source_tmpl': 'Test-Exception-0.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.11', { + 'source_tmpl': 'MIME-Types-2.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.71', { + 'source_tmpl': 'HTML-Parser-3.71.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.69', { + 'source_tmpl': 'URI-1.69.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.00', { + 'source_tmpl': 'Pod-POM-2.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.43', { + 'source_tmpl': 'Text-Diff-1.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.020', { + 'source_tmpl': 'IO-Socket-SSL-2.020.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Getopt::Long', '2.47', { + 'source_tmpl': 'Getopt-Long-2.47.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.03', { + 'source_tmpl': 'Test-Version-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '0.117', { + 'source_tmpl': 'Test-Deep-0.117.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.000002', { + 'source_tmpl': 'Moo-2.000002.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_urls': ['http://search.cpan.org/CPAN/authors/id/R/RE/REHSACK/'], + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.05', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.05.tgz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.63', { + 'source_tmpl': 'Test-Differences-0.63.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.056', { + 'source_tmpl': 'HTTP-Tiny-0.056.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.14', { + 'source_tmpl': 'Package-DeprecationManager-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9912', { + 'source_tmpl': 'version-0.9912.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + # fails: uses 'gcc' + #('XML::Bare', '0.53', { + # 'source_tmpl': 'XML-Bare-0.53.tar.gz', + # 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + #}), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.14', { + 'source_tmpl': 'Sub-Name-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.30', { + 'source_tmpl': 'Time-Piece-1.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2006', { + 'source_tmpl': 'Canary-Stability-2006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.11', { + 'source_tmpl': 'AnyEvent-7.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.32', { + 'source_tmpl': 'Expect-1.32.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SZ/SZABGAB'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0609', { + 'source_tmpl': 'Statistics-Descriptive-3.0609.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.13', { + 'source_tmpl': 'libwww-perl-6.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.49', { + 'source_tmpl': 'GDGraph-1.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::Tester', '1.001014', { + 'source_tmpl': 'Test-Simple-1.001014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967012', { + 'source_tmpl': 'Parse-RecDescent-1.967012.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.36', { + 'source_tmpl': 'Carp-1.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.13', { + 'source_tmpl': 'XML-XPath-1.13.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MS/MSERGEANT'], + }), + ('Capture::Tiny', '0.30', { + 'source_tmpl': 'Capture-Tiny-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('LWP', '6.13', { + 'source_tmpl': 'libwww-perl-6.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000001', { + 'source_tmpl': 'strictures-2.000001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.19', { + 'source_tmpl': 'File-Which-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.110', { + 'source_tmpl': 'Mock-Quick-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', 'v3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.09', { + 'source_tmpl': 'List-AllUtils-0.09.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.39', { + 'source_tmpl': 'Exception-Class-1.39.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.13', { + 'source_tmpl': 'Eval-Closure-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.20', { + 'source_tmpl': 'XML-Simple-2.20.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.006', { + 'source_tmpl': 'Test-Exception-LessClever-0.006.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.42', { + 'source_tmpl': 'Scalar-List-Utils-1.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('IO::Scalar', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.04', { + 'source_tmpl': 'DateTime-Tiny-1.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.87', { + 'source_tmpl': 'Log-Handler-0.87.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('HTML::Entities', '3.71', { + 'source_tmpl': 'HTML-Parser-3.71.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Devel::StackTrace', '2.00', { + 'source_tmpl': 'Devel-StackTrace-2.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1603', { + 'source_tmpl': 'Moose-2.1603.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.33', { + 'source_tmpl': 'File-Find-Rule-0.33.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.407', { + 'source_tmpl': 'SQL-Statement-1.407.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.109', { + 'source_tmpl': 'Data-OptList-0.109.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9154', { + 'source_tmpl': 'CPANPLUS-0.9154.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Harness', '3.35', { + 'source_tmpl': 'Test-Harness-3.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.04', { + 'source_tmpl': 'Text-Soundex-3.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.14', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.14.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.26', { + 'source_tmpl': 'Want-0.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.04', { + 'source_tmpl': 'Cwd-Guard-0.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.14', { + 'source_tmpl': 'MailTools-2.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] + +moduleclass = 'lang' -- GitLab From 26c49f89043ad588f34d00698478ec7643e27424 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Wed, 9 Dec 2015 13:57:37 +0100 Subject: [PATCH 053/732] Added shift/4.0 for foss/2015b --- .../s/shift/shift-4.0-foss-2015b.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb b/easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb new file mode 100644 index 0000000000..7adef50aac --- /dev/null +++ b/easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb @@ -0,0 +1,30 @@ +easyblock = 'CmdCp' + +name = 'shift' +version = '4.0' + +homepage = 'http://people.nas.nasa.gov/~kolano/projects/shift.html' +description = """ +Shift is a framework for Self-Healing Independent File Transfer that provides high +performance and resilience for local and remote transfers through a variety of techniques. +""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TGZ] +source_urls = [('http://sourceforge.net/projects/shiftc/files', 'download')] + +dependencies = [ + ('Perl', '5.22.0'), + ('bbFTP', '3.2.1'), +] + +files_to_copy = [(['perl/shiftc', 'perl/shift-mgr', 'perl/shift-aux'], 'bin'), 'etc', (['doc/shiftc.1'], 'man/man1')] +cmds_map = [] + +sanity_check_paths = { + 'files': ['bin/shiftc'], + 'dirs': ['etc'] +} + +moduleclass = 'tools' -- GitLab From 3ead2449def8a10bc0ade4635f5461b634b49356 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 5 Jan 2016 11:07:13 +1030 Subject: [PATCH 054/732] Easyconfig for installing picard-2.0.1-Java-1.8.0_66 --- .../p/picard/picard-2.0.1-Java-1.8.0_66.eb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb diff --git a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb new file mode 100644 index 0000000000..2035d823b9 --- /dev/null +++ b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb @@ -0,0 +1,14 @@ +name = 'picard' +version = '2.0.1' + +homepage = 'http://sourceforge.net/projects/picard' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s'] +sources = ['picard-tools-%(version)s.zip'] + +dependencies = [('Java', '1.8.0_66')] + +moduleclass = 'bio' -- GitLab From 79b88251817abe85c465f6679cd06d591321e490 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 5 Jan 2016 13:19:53 +1030 Subject: [PATCH 055/732] Follow easyconfig style of most recent picard-1.119-Java-1.7.0_80 --- .../p/picard/picard-2.0.1-Java-1.8.0_66.eb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb index 2035d823b9..2c0ba3aaf4 100644 --- a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb @@ -1,14 +1,18 @@ name = 'picard' version = '2.0.1' -homepage = 'http://sourceforge.net/projects/picard' -description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" toolchain = {'name': 'dummy', 'version': 'dummy'} -source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s'] -sources = ['picard-tools-%(version)s.zip'] +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] -dependencies = [('Java', '1.8.0_66')] +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] moduleclass = 'bio' -- GitLab From 83eee361133707fc007e69986f1973c8f68ea30c Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 5 Jan 2016 13:36:25 +1030 Subject: [PATCH 056/732] Added picard-1.120-Java-1.8.0_66\n\nThis identifies the version which transitioned from sourceforge to GitHub. --- .../p/picard/picard-1.120-Java-1.8.0_66.eb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb diff --git a/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb b/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb new file mode 100644 index 0000000000..0d15ad9204 --- /dev/null +++ b/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb @@ -0,0 +1,18 @@ +name = 'picard' +version = '1.120' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +moduleclass = 'bio' -- GitLab From 4d5fc2d330eee5dead6ffbe303c00ff066116cb5 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 13:56:45 +1030 Subject: [PATCH 057/732] Dummy/placeholder easyconfig file --- easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb diff --git a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb new file mode 100644 index 0000000000..e69de29bb2 -- GitLab From 04244b1223e8db6a1e132cd4881c8e6bfea27b6a Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 14:22:38 +1030 Subject: [PATCH 058/732] Added easyconfig for libffi-3.2.1-foss-2015b Changed source_url order to try http before ftp - my organisations filewall rules cause timeout issues with ftp sites. --- .../l/libffi/libffi-3.2.1-foss-2015b.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2015b.eb diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2015b.eb b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2015b.eb new file mode 100644 index 0000000000..d516d79d6d --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2015b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [ + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', + 'ftp://sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From 81778dcb0bab10a38110361fe50f5b8d7468599b Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 14:38:05 +1030 Subject: [PATCH 059/732] Added easyconfig for gettext-0.19.7-foss-2015b --- .../g/gettext/gettext-0.19.7-foss-2015b.eb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb new file mode 100644 index 0000000000..26649681d7 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' -- GitLab From e03ea02dd30cbdaa0838875d61deea9cf51d7255 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 15:17:02 +1030 Subject: [PATCH 060/732] Easyconfig for installing Exonerate-2.4.0-foss-2015b --- .../e/Exonerate/Exonerate-2.4.0-foss-2015b.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb index e69de29bb2..524d427c0e 100644 --- a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb +++ b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-foss-2015b.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'Exonerate' +version = '2.4.0' + +homepage = 'http://www.ebi.ac.uk/~guy/exonerate/' +description = """ Exonerate is a generic tool for pairwise sequence comparison. + It allows you to align sequences using a many alignment models, using either + exhaustive dynamic programming, or a variety of heuristics. """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['https://github.com/nathanweeks/exonerate/archive/'] +sources = ['v%(version)s.tar.gz'] + +dependencies = [('GLib', '2.46.2')] + +# parallel build fails +parallel = 1 + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["exonerate", "fastaclip", "fastaoverlap"]], + 'dirs': ["share"], +} + +moduleclass = 'bio' -- GitLab From f9f30a2a03acdf83081310b27f6a385ba1944530 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 15:35:07 +1030 Subject: [PATCH 061/732] Dummy/placeholder easyconfig file --- easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-foss-2015b.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-foss-2015b.eb diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-foss-2015b.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-foss-2015b.eb new file mode 100644 index 0000000000..e69de29bb2 -- GitLab From 95d826c0cb5ad83e398ebbe3615c4d718583660f Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 16:08:36 +1030 Subject: [PATCH 062/732] FastQC doesn't need a toolchain --- .../f/fastqc/{fastqc-0.11.4-foss-2015b.eb => fastqc-0.11.4.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/f/fastqc/{fastqc-0.11.4-foss-2015b.eb => fastqc-0.11.4.eb} (100%) diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-foss-2015b.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb similarity index 100% rename from easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-foss-2015b.eb rename to easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb -- GitLab From 3bcb41468dd84744810c719da3ee2898fdedabdd Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 16:11:06 +1030 Subject: [PATCH 063/732] Include Java version in filename --- .../f/fastqc/{fastqc-0.11.4.eb => fastqc-0.11.4-Java-1.8.0_66.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/f/fastqc/{fastqc-0.11.4.eb => fastqc-0.11.4-Java-1.8.0_66.eb} (100%) diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb similarity index 100% rename from easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb rename to easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb -- GitLab From ee4bb1f44ecaea8e3eaf639ebcbde181decc92e3 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 16:15:03 +1030 Subject: [PATCH 064/732] Easyconfig for installing fastqc-0.11.4-Java-1.8.0_66 --- .../f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb index e69de29bb2..091fd04f7d 100644 --- a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb @@ -0,0 +1,28 @@ +easyblock = 'EB_Java' + +name = 'fastqc' +version = '0.11.4' + +homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] +sources = ['%(name)s_v%(version)s.zip'] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +sanity_check_paths = { + 'files': ['fastqc'], + 'dirs': [], +} + +sanity_check_commands = [('fastqc', '-v')] + +moduleclass = 'bio' -- GitLab From 8eb70c2e968b456b35c4ac189478961a1c02caac Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 6 Jan 2016 16:20:10 +1030 Subject: [PATCH 065/732] Added modloadmsg so users know how to run picard properly --- easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb index 2c0ba3aaf4..2d067163eb 100644 --- a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb @@ -15,4 +15,6 @@ javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] +modloadmsg = "To execute picard run: java -jar \\${EBROOTPICARD}/%(name)s.jar" + moduleclass = 'bio' -- GitLab From 8ddc8adda57134077b0b2266e0fd109f7239a9b2 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Thu, 7 Jan 2016 15:06:45 +1030 Subject: [PATCH 066/732] Added GLib-2.46.2-foss-2015b dependency --- .../g/GLib/GLib-2.46.2-foss-2015b.eb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb new file mode 100644 index 0000000000..c1a803f76a --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.46.2' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.7'), +] +#builddependencies = [('Python', '2.7.9')] + +moduleclass = 'vis' -- GitLab From 27e326f7d3da848d7fe13ec2c28498bfdb0ada0f Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Thu, 7 Jan 2016 15:31:38 +1030 Subject: [PATCH 067/732] Corrected capitalisation of fastqc to FastQC --- .../f/{fastqc/fastqc-0.11.2.eb => FastQC/FastQC-0.11.2.eb} | 0 .../f/{fastqc/fastqc-0.11.3.eb => FastQC/FastQC-0.11.3.eb} | 0 .../FastQC-0.11.4-Java-1.8.0_66.eb} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/f/{fastqc/fastqc-0.11.2.eb => FastQC/FastQC-0.11.2.eb} (100%) rename easybuild/easyconfigs/f/{fastqc/fastqc-0.11.3.eb => FastQC/FastQC-0.11.3.eb} (100%) rename easybuild/easyconfigs/f/{fastqc/fastqc-0.11.4-Java-1.8.0_66.eb => FastQC/FastQC-0.11.4-Java-1.8.0_66.eb} (100%) diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb similarity index 100% rename from easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb rename to easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb similarity index 100% rename from easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb rename to easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb similarity index 100% rename from easybuild/easyconfigs/f/fastqc/fastqc-0.11.4-Java-1.8.0_66.eb rename to easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb -- GitLab From 9a3b218782568032ce513a7f6021b0bcac23b35c Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Thu, 7 Jan 2016 15:32:04 +1030 Subject: [PATCH 068/732] Corrected capitalisation of fastqc to FastQC --- easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb | 2 +- easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb | 2 +- easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb index 9ff730ebed..9d17537446 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb @@ -1,6 +1,6 @@ easyblock = 'EB_Java' -name = 'fastqc' +name = 'FastQC' version = '0.11.2' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb index c5f20b9165..4523d751de 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb @@ -1,6 +1,6 @@ easyblock = 'EB_Java' -name = 'fastqc' +name = 'FastQC' version = '0.11.3' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb index 091fd04f7d..b235fb563b 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb @@ -1,6 +1,6 @@ easyblock = 'EB_Java' -name = 'fastqc' +name = 'FastQC' version = '0.11.4' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' -- GitLab From b8cc7ccf74b59a8f3a7bb53067ebcf1f9f5548e2 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Thu, 7 Jan 2016 17:35:53 +1030 Subject: [PATCH 069/732] Covert from using EB_Java easyblock to PackedBinary --- .../easyconfigs/f/FastQC/FastQC-0.11.2.eb | 20 +++++++++++-------- .../easyconfigs/f/FastQC/FastQC-0.11.3.eb | 20 +++++++++++-------- .../f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb | 13 +++++++----- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb index 9d17537446..7f918037ff 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb @@ -1,21 +1,25 @@ -easyblock = 'EB_Java' +easyblock = 'PackedBinary' name = 'FastQC' version = '0.11.2' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' -description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" +description = """FastQC is a quality control application for high throughput sequence data. + It reads in sequence data in a variety of formats and can either provide an interactive + application to review the results of several different QC checks, or create an HTML based + report which can be integrated into a pipeline.""" toolchain = {'name': 'dummy', 'version': 'dummy'} -source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] -sources = ['%(name)s_v%(version)s.zip'] +source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] +sources = ['%(namelower)s_v%(version)s.zip'] -dependencies = [('Java', '1.7.0_60')] +java = 'Java' +javaver = '1.7.0_60' +#versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] -postinstallcmds = ["chmod -R a+rx %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { 'files': ['fastqc'], diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb index 4523d751de..9847842efa 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb @@ -1,21 +1,25 @@ -easyblock = 'EB_Java' +easyblock = 'PackedBinary' name = 'FastQC' version = '0.11.3' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' -description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" +description = """FastQC is a quality control application for high throughput sequence data. + It reads in sequence data in a variety of formats and can either provide an interactive + application to review the results of several different QC checks, or create an HTML based + report which can be integrated into a pipeline.""" toolchain = {'name': 'dummy', 'version': 'dummy'} -source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] -sources = ['%(name)s_v%(version)s.zip'] +source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] +sources = ['%(namelower)s_v%(version)s.zip'] -dependencies = [('Java', '1.7.0_80')] +java = 'Java' +javaver = '1.7.0_80' +#versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] -postinstallcmds = ["chmod -R a+rx %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { 'files': ['fastqc'], diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb index b235fb563b..301434b905 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb @@ -1,22 +1,25 @@ -easyblock = 'EB_Java' +easyblock = 'PackedBinary' name = 'FastQC' version = '0.11.4' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' -description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" +description = """FastQC is a quality control application for high throughput sequence data. + It reads in sequence data in a variety of formats and can either provide an interactive + application to review the results of several different QC checks, or create an HTML based + report which can be integrated into a pipeline.""" toolchain = {'name': 'dummy', 'version': 'dummy'} -source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] -sources = ['%(name)s_v%(version)s.zip'] +source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] +sources = ['%(namelower)s_v%(version)s.zip'] java = 'Java' javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] +postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { 'files': ['fastqc'], -- GitLab From 3fe8c6646c75870a7050add588f13b84a0b0bbdc Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Thu, 7 Jan 2016 21:40:16 +1030 Subject: [PATCH 070/732] Cleaned up older FastQC easyconfig files. The versionsuffix is now set to the Java version specified as the dependency. --- ...f-1.4.10.eb => FastQC-0.10.1-Java-1.7.0_80.eb} | 15 ++++++++------- ...C-0.11.2.eb => FastQC-0.11.2-Java-1.7.0_60.eb} | 2 +- ...C-0.11.3.eb => FastQC-0.11.3-Java-1.7.0_80.eb} | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) rename easybuild/easyconfigs/f/FastQC/{FastQC-0.10.1-goolf-1.4.10.eb => FastQC-0.10.1-Java-1.7.0_80.eb} (69%) rename easybuild/easyconfigs/f/FastQC/{FastQC-0.11.2.eb => FastQC-0.11.2-Java-1.7.0_60.eb} (95%) rename easybuild/easyconfigs/f/FastQC/{FastQC-0.11.3.eb => FastQC-0.11.3-Java-1.7.0_80.eb} (95%) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-goolf-1.4.10.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb similarity index 69% rename from easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-goolf-1.4.10.eb rename to easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb index 41209b695a..505f4f2807 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb @@ -17,22 +17,23 @@ description = """FastQC is a quality control application for high throughput seq application to review the results of several different QC checks, or create an HTML based report which can be integrated into a pipeline.""" -toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchain = {'name': 'dummy', 'version': 'dummy'} sources = ['%(namelower)s_v%(version)s.zip'] source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] java = 'Java' javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] -dependencies = [('Java', '1.7.0_80', '', True)] - -install_cmd = "cp -a FastQC/* %(installdir)s && chmod +x %(installdir)s/fastqc" +postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.32.jar"], - 'dirs': ["Contaminants", "Help", "Templates", "uk"], + 'files': ['fastqc'], + 'dirs': [], } +sanity_check_commands = [('fastqc', '-v')] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb similarity index 95% rename from easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb rename to easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb index 7f918037ff..c8f4df417f 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb @@ -16,7 +16,7 @@ sources = ['%(namelower)s_v%(version)s.zip'] java = 'Java' javaver = '1.7.0_60' -#versionsuffix = '-%s-%s' % (java, javaver) +versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] postinstallcmds = ['chmod +x %(installdir)s/fastqc'] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb similarity index 95% rename from easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb rename to easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb index 9847842efa..5b66419773 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb @@ -16,7 +16,7 @@ sources = ['%(namelower)s_v%(version)s.zip'] java = 'Java' javaver = '1.7.0_80' -#versionsuffix = '-%s-%s' % (java, javaver) +versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] postinstallcmds = ['chmod +x %(installdir)s/fastqc'] -- GitLab From 63ff88d71fd08e9083f5b96273936602856ffcd8 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Mon, 11 Jan 2016 06:14:38 +1030 Subject: [PATCH 071/732] Use modified FastQC with dummy toolchain --- .../easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb b/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb index 53e79949f3..8087d1607f 100644 --- a/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb @@ -16,7 +16,7 @@ source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s' install_cmd = "cp -a %(namelower)s_zip/* %(installdir)s && chmod +x %(installdir)s/%(namelower)s" dependencies = [ - ('FastQC', '0.10.1'), + ('FastQC', '0.10.1', '', True), ('cutadapt', '1.5', '-Python-2.7.10'), ] -- GitLab From 1e6fb7a9d2d54c6d76c3b78e9537998291adc84d Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Mon, 11 Jan 2016 07:40:13 +1030 Subject: [PATCH 072/732] Include Java version suffix for FastQC dependency --- .../easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb b/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb index 8087d1607f..dacf5b481c 100644 --- a/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.3.7-goolf-1.4.10.eb @@ -16,7 +16,7 @@ source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s' install_cmd = "cp -a %(namelower)s_zip/* %(installdir)s && chmod +x %(installdir)s/%(namelower)s" dependencies = [ - ('FastQC', '0.10.1', '', True), + ('FastQC', '0.10.1', '-Java-1.7.0_80', True), ('cutadapt', '1.5', '-Python-2.7.10'), ] -- GitLab From 17034187bba746893c393312f3dfa928f8b7d421 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Mon, 11 Jan 2016 12:53:00 +1030 Subject: [PATCH 073/732] Enabled Python 2.7.9 as a build dependency --- .../g/GLib/GLib-2.46.2-foss-2015b.eb | 2 +- .../p/Python/Python-2.7.9-foss-2015b.eb | 116 ++++++++++++++++++ 2 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-foss-2015b.eb diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb index c1a803f76a..55b64d46c2 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb @@ -16,6 +16,6 @@ dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.7'), ] -#builddependencies = [('Python', '2.7.9')] +builddependencies = [('Python', '2.7.9')] moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-foss-2015b.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-foss-2015b.eb new file mode 100644 index 0000000000..81bfd4da01 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-foss-2015b.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' -- GitLab From 90427ca99116eb944d585b3e41cf26b47de181ae Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 12 Jan 2016 17:07:12 +1030 Subject: [PATCH 074/732] Added easyconfig for GMAP-GSNAP-2015-12-31.v2-foss-2015b --- .../GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb new file mode 100644 index 0000000000..01cd80052a --- /dev/null +++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = "2015-12-31.v2" + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +# with these deps you can use standard compressed files +# to support files in gobby format take a look at README for extra dependencies +# http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + +# you can change the MAX_READLENGTH for GSNAP with something like this. +# details in the README http://research-pub.gene.com/gmap/src/README +#configopts = 'MAX_READLENGTH=250' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +moduleclass = 'bio' + -- GitLab From 213e46cff340c7f90318d33e7d5c676374652693 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 13 Jan 2016 12:58:45 +1030 Subject: [PATCH 075/732] Added easyconfig for BBMap suite of tools --- .../b/BBMap/BBMap-35.82-Java-1.8.0_66.eb | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb new file mode 100644 index 0000000000..3f29f51392 --- /dev/null +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'BBMap' +version = '35.82' + +homepage = 'https://sourceforge.net/projects/bbmap/' +description = """BBMap short read aligner, and other bioinformatic tools.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + +#start_dir = 'jni' +prebuildopts = 'cd jni && ' +buildopts = '-f makefile.linux' + +# put here the list of generated executables when compiling +#list_of_executables = ["cd-hit", "cd-hit-est", "cd-hit-2d", "cd-hit-est-2d", "cd-hit-div", "cd-hit-454"] + +# this is the real EasyBuild line to copy all the executables and perl scripts to "bin" +files_to_copy = ['./*'] + +sanity_check_paths = { + 'files': ['bbmap.sh'], + 'dirs': [] +} + +modextrapaths = {'PATH': ''} + +modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the compiled jni C code." + +moduleclass = 'bio' -- GitLab From bb4be77e4feae0fddd7b46c8f88bbc1b8b1162f7 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 13 Jan 2016 13:00:22 +1030 Subject: [PATCH 076/732] Remove unnecessary lines --- easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb index 3f29f51392..ac6e1abb04 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb @@ -16,14 +16,9 @@ dependencies = [(java, javaver)] source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s_%(version)s.tar.gz' ] -#start_dir = 'jni' prebuildopts = 'cd jni && ' buildopts = '-f makefile.linux' -# put here the list of generated executables when compiling -#list_of_executables = ["cd-hit", "cd-hit-est", "cd-hit-2d", "cd-hit-est-2d", "cd-hit-div", "cd-hit-454"] - -# this is the real EasyBuild line to copy all the executables and perl scripts to "bin" files_to_copy = ['./*'] sanity_check_paths = { -- GitLab From 10774be2c0dd4cace3b13653c1c8b078375eb1cf Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 13 Jan 2016 13:03:35 +1030 Subject: [PATCH 077/732] Corrected toolchain --- ...Java-1.8.0_66.eb => BBMap-35.82-foss-2015b-Java-1.8.0_66.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easybuild/easyconfigs/b/BBMap/{BBMap-35.82-Java-1.8.0_66.eb => BBMap-35.82-foss-2015b-Java-1.8.0_66.eb} (93%) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb similarity index 93% rename from easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb rename to easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index ac6e1abb04..22ae183da3 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -6,7 +6,7 @@ version = '35.82' homepage = 'https://sourceforge.net/projects/bbmap/' description = """BBMap short read aligner, and other bioinformatic tools.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'foss', 'version': '2015b'} java = 'Java' javaver = '1.8.0_66' -- GitLab From d7740bba2a27ca80cac1ab8dbe4211ed80d844b5 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 13 Jan 2016 13:19:37 +1030 Subject: [PATCH 078/732] Conditionally compile JNI code depending on OS. Dummy toolchain for Java dependency --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index 22ae183da3..dfcbaddec1 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -1,3 +1,5 @@ +import platform + easyblock = 'MakeCp' name = 'BBMap' @@ -11,13 +13,18 @@ toolchain = {'name': 'foss', 'version': '2015b'} java = 'Java' javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) -dependencies = [(java, javaver)] +dependencies = [(java, javaver, '', True)] source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s_%(version)s.tar.gz' ] prebuildopts = 'cd jni && ' -buildopts = '-f makefile.linux' + +os_type = platform.system() +if os_type == 'Linux': + buildopts = '-f makefile.linux' +elif os_type == 'Darwin': + buildopts = '-f makefile.osx' files_to_copy = ['./*'] -- GitLab From 9396f054451883e0c353926ab63f1530ac6e0b95 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 15 Jan 2016 15:09:48 +0100 Subject: [PATCH 079/732] add 'import gtk' as sanity check in PyGTK easyconfig, add gtk+ as dep --- .../ATK-2.16.0-intel-2015b-GLib-2.29.92.eb | 29 +++++++++++++++++++ ...-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb | 29 +++++++++++++++++++ .../gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb | 23 +++++++++++++++ ...arfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb | 28 ++++++++++++++++++ .../Pango-1.37.1-intel-2015b-GLib-2.29.92.eb | 24 +++++++++++++++ .../PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb | 6 +++- 6 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb create mode 100644 easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb create mode 100644 easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb create mode 100644 easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb create mode 100644 easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb diff --git a/easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb new file mode 100644 index 0000000000..afb1976aa4 --- /dev/null +++ b/easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'ATK' +version = '2.16.0' + +homepage = 'https://developer.gnome.org/ATK/stable/' +description = """ + ATK provides the set of accessibility interfaces that are implemented by other + toolkits and applications. Using the ATK interfaces, accessibility tools have + full access to view and control running applications. +""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_XZ] + +glibver = '2.29.92' +versionsuffix = '-GLib-%s' % glibver +dependencies = [ + ('GLib', glibver), +] + +sanity_check_paths = { + 'files': ['lib/libatk-1.0.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb new file mode 100644 index 0000000000..df97d34492 --- /dev/null +++ b/easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'gdk-pixbuf' +version = '2.31.4' + +homepage = 'https://developer.gnome.org/gdk-pixbuf/stable/' +description = """ + The Gdk Pixbuf is a toolkit for image loading and pixel buffer manipulation. + It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it + was distributed as part of GTK+ 2 but it was split off into a separate package + in preparation for the change to GTK+ 3. +""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_XZ] + +glibver = '2.29.92' +versionsuffix = '-GLib-%s' % glibver +dependencies = [ + ('GLib', glibver), + ('libjpeg-turbo', '1.4.0'), + ('libpng', '1.6.18'), + ('LibTIFF', '4.0.3'), + +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb new file mode 100644 index 0000000000..4fe143fa91 --- /dev/null +++ b/easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gtk+' +version = '2.24.28' +versionsuffix = '-GLib-2.29.92' + +homepage = 'https://developer.gnome.org/gtk+/stable/' +description = """ + The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications. +""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('ATK', '2.16.0', versionsuffix), + ('gdk-pixbuf', '2.31.4', versionsuffix), + ('Pango', '1.37.1', versionsuffix), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb new file mode 100644 index 0000000000..890b5853fb --- /dev/null +++ b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'HarfBuzz' +version = '0.9.41' + +homepage = 'http://www.freedesktop.org/wiki/Software/HarfBuzz' +description = """HarfBuzz is an OpenType text shaping engine.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.freedesktop.org/software/harfbuzz/release/'] +sources = [SOURCELOWER_TAR_BZ2] + +patches = ['HarfBuzz-%(version)s_no_symbolic.patch'] + +glibver = '2.29.92' +versionsuffix = '-GLib-%s' % glibver +dependencies = [ + ('GLib', glibver), + ('cairo', '1.14.2', versionsuffix), +] + +sanity_check_paths = { + 'files': ['lib/libharfbuzz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb new file mode 100644 index 0000000000..bf4f60f01b --- /dev/null +++ b/easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Pango' +version = '1.37.1' + +homepage = 'http://www.pango.org/' +description = """Pango is a library for laying out and rendering of text, with an emphasis on internationalization. +Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the +context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_XZ] + +glibver = '2.29.92' +versionsuffix = '-GLib-%s' % glibver +dependencies = [ + ('GLib', glibver), + ('cairo', '1.14.2', versionsuffix), + ('HarfBuzz', '0.9.41', versionsuffix), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb index acfff835e3..f7d18d2696 100644 --- a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb @@ -16,10 +16,12 @@ pyver_maj_min = '2.7' pyver = '%s.10' % pyver_maj_min versionsuffix = '-Python-%s' % pyver +glibver = '2.29.92' dependencies = [ ('Python', pyver), - ('GLib', '2.29.92'), + ('GLib', glibver), ('PyGObject', '2.28.6', versionsuffix), + ('gtk+', '2.24.28', '-GLib-%s' % glibver), ] sanity_check_paths = { @@ -27,4 +29,6 @@ sanity_check_paths = { 'dirs': ['lib/pygtk'], } +sanity_check_commands = [('python', "-c 'import gtk'")] + moduleclass = 'vis' -- GitLab From 6a252dac482f19fb8afd64954d97ad8b0a58a9ff Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 29 Jan 2016 14:51:18 +0100 Subject: [PATCH 080/732] updated ebs for new cray TC using dependency pinning --- .../j/JasPer/JasPer-1.900.1-CrayGNU-5.2.40.eb | 21 ---- .../l/Libint/Libint-1.1.4-CrayGNU-5.2.40.eb | 24 ---- .../libreadline-6.3-CrayGNU-5.2.40.eb | 30 ----- .../l/libxc/libxc-2.2.1-CrayGNU-5.2.40.eb | 32 ----- .../m/M4/M4-1.4.17-CrayGNU-5.2.40.eb | 23 ---- .../n/NFFT/NFFT-3.3.0-CrayGNU-5.2.40.eb | 22 ---- .../n/ncurses/ncurses-5.9-CrayGNU-5.2.40.eb | 36 ------ ...numpy-1.9.2-CrayGNU-5.2.40-Python-2.7.9.eb | 26 ---- .../Python-2.7.9-CrayGNU-5.2.40-bare.eb | 39 ------ .../p/Python/Python-2.7.9-CrayGNU-5.2.40.eb | 115 ------------------ .../s/Szip/Szip-2.1-CrayGNU-5.2.40.eb | 23 ---- ...cipy-0.15.1-CrayGNU-5.2.40-Python-2.7.9.eb | 19 --- .../s/spglib/spglib-1.7.3-CrayGNU-5.2.40.eb | 22 ---- .../t/tcsh/tcsh-6.18.01-CrayGNU-5.2.40.eb | 39 ------ .../w/WRF/WRF-3.6.1-CrayGNU-5.2.40-dmpar.eb | 41 ------- .../z/zlib/zlib-1.2.8-CrayGNU-5.2.40.eb | 22 ---- 16 files changed, 534 deletions(-) delete mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.40-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40-bare.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.40-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.40-dmpar.eb delete mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.40.eb diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.40.eb deleted file mode 100644 index cef32fd43d..0000000000 --- a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'JasPer' -version = '1.900.1' - -homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' -description = """The JasPer Project is an open-source initiative to provide a free - software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_ZIP] -source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] - -sanity_check_paths = { - 'files': ["bin/jasper", "lib/libjasper.a"], - 'dirs': ["include"], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.40.eb deleted file mode 100644 index 4f2df44352..0000000000 --- a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'Libint' -version = '1.1.4' - -homepage = 'https://sourceforge.net/p/libint/' -description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body - matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'opt': True, 'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') - -configopts = "--enable-deriv --enable-r12" - -sanity_check_paths = { - 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + - ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + - ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + - ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], - 'dirs':[], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.40.eb deleted file mode 100644 index 18966e6606..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.3' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """The GNU Readline library provides a set of functions for use by applications that - allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. - The Readline library includes additional functions to maintain a list of previously-entered command lines, - to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '5.9')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs' : [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.40.eb deleted file mode 100644 index 80df7f4320..0000000000 --- a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxc' -version = '2.2.1' - -homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' -description = """Libxc is a library of exchange-correlation functionals for density-functional theory. - The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'opt': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] - -configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' - -# From the libxc mailing list -# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect -# a fully working testsuite soon (unless someone wants to volunteer to do -# it, of course ) In the meantime, unless the majority of the tests -# fail, your build should be fine. -#runtest = 'check' - -sanity_check_paths = { - 'files': ['lib/libxc.a'], - 'dirs': ['include'], -} - -parallel = 1 - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.40.eb deleted file mode 100644 index d1ac7167dc..0000000000 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'M4' -version = '1.4.17' - -homepage = 'http://www.gnu.org/software/m4/m4.html' -description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible - although it has some extensions (for example, handling more than 9 positional parameters to macros). - GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -configopts = "--enable-cxx" - -sanity_check_paths = { - 'files': ["bin/m4"], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-5.2.40.eb deleted file mode 100644 index 292a68dda4..0000000000 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'NFFT' -version = '3.3.0' - -homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' -description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine - library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more - dimensions, of arbitrary input size, and of complex data.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = { 'dynamic': True } - -source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] -sources = [SOURCELOWER_TAR_GZ] - -sanity_check_paths = { - 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], - 'dirs': ['lib/pkgconfig'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.40.eb deleted file mode 100644 index 6f00fdbd51..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,36 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['ncurses-%(version)s_configure_darwin.patch'] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.40-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.40-Python-2.7.9.eb deleted file mode 100644 index 7d81f886bc..0000000000 --- a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.40-Python-2.7.9.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'numpy' -version = '1.9.2' - -homepage = 'http://www.numpy.org' -description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: - a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran - code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, - NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be - defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['numpy-1.8.0-mkl.patch'] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40-bare.eb deleted file mode 100644 index 3fafaaa920..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40-bare.eb +++ /dev/null @@ -1,39 +0,0 @@ -name = 'Python' -version = '2.7.9' -versionsuffix = '-bare' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True, 'opt': True} - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -# bare installation: no extensions included -exts_list = [] - -buildopts = 'LINKCC="$CC -dynamic"' - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40.eb deleted file mode 100644 index 186e5f94df..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,115 +0,0 @@ -name = 'Python' -version = '2.7.9' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.9.1' -scipyversion = '0.14.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -buildopts = 'LINKCC="$CC -dynamic"' - -# order is important! -# package versions updated Jan 19th 2015 -exts_list = [ - ('setuptools', '11.3.1', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '6.0.6', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': [ - 'numpy-1.8.0-mkl.patch', # % numpyversion, - ], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('blist', '1.3.6', { - 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], - }), - ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('lockfile', '0.10.2', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.21.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.9.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.4.0', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '2.0.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.11', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.15.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), - ('pyparsing', '2.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], - }), - ('netifaces', '0.10.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], - }), - ('netaddr', '0.7.13', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], - }), -] - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.40.eb deleted file mode 100644 index 821b800cb6..0000000000 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Szip' -version = '2.1' - -homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' -description = "Szip compression software, providing lossless compression of scientific data" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True, 'dynamic': True} - -source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -sanity_check_paths = { - 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + - ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.40-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.40-Python-2.7.9.eb deleted file mode 100644 index adb35688b3..0000000000 --- a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.40-Python-2.7.9.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'scipy' -version = '0.15.1' -versionsuffix = '-Python-2.7.9' - -homepage = 'http://www.scipy.org' -description = """SciPy is a collection of mathematical algorithms and convenience - functions built on the Numpy extension for Python.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True} - -source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('numpy', '1.9.2', versionsuffix), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-5.2.40.eb deleted file mode 100644 index f3db34a07a..0000000000 --- a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'spglib' -version = '1.7.3' - -homepage = 'http://spglib.sourceforge.net/' -description = """Spglib is a C library for finding and handling crystal symmetries.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'dynamic': True, } - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -start_dir = '%(name)s-%(version)s' - -sanity_check_paths = { - 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], - 'dirs': ['include/spglib'], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.40.eb deleted file mode 100644 index 171465e133..0000000000 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,39 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit -# Authors:: Valentin Plugaru -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html -## -easyblock = 'ConfigureMake' - -name = 'tcsh' -version = '6.18.01' - -homepage = 'http://www.tcsh.org' -description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). - It is a command language interpreter usable both as an interactive login shell and a shell script command - processor. It includes a command-line editor, programmable word completion, spelling correction, a history - mechanism, job control and a C-like syntax.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'dynamic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [ - 'ftp://ftp.astron.com/pub/%(namelower)s', - 'ftp://ftp.astron.com/pub/%(namelower)s/old', -] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/tcsh"], - 'dirs': [] -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.40-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.40-dmpar.eb deleted file mode 100644 index 4f97a28683..0000000000 --- a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.40-dmpar.eb +++ /dev/null @@ -1,41 +0,0 @@ -name = 'WRF' -version = '3.6.1' - -homepage = 'http://www.wrf-model.org' -description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale - numerical weather prediction system designed to serve both operational forecasting and atmospheric - research needs.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 - -sources = ['%(name)sV%(version)s.TAR.gz'] -source_urls = [ - 'http://www2.mmm.ucar.edu/wrf/src/', - 'http://www.mmm.ucar.edu/wrf/src/', -] - -# csh is used by WRF install scripts -builddependencies = [('tcsh', '6.18.01')] - -dependencies = [ - ('JasPer', '1.900.1'), - ('cray-netcdf/4.3.2', EXTERNAL_MODULE), - ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), -] - -patches = [ - 'WRF_parallel_build_fix.patch', - 'WRF-3.6.1_known_problems.patch', - 'WRF_tests_limit-runtimes.patch', -] - -# limit parallel build to 20 -maxparallel = 20 - -buildtype = "dmpar" -versionsuffix = '-%s' % buildtype - -runtest = False - -moduleclass = 'geo' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.40.eb deleted file mode 100644 index 942056eae5..0000000000 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'zlib' -version = '1.2.8' - -homepage = 'http://www.zlib.net/' -description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, - not covered by any patents -- lossless data-compression library for use on virtually any - computer hardware and operating system.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True, 'dynamic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] - -sanity_check_paths = { - 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'lib' -- GitLab From 4899a5bdbf2e3b8601a8d544e41aa492689cd3a8 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 29 Jan 2016 16:45:41 +0200 Subject: [PATCH 081/732] add easyconfig netCDF-4.4.0-intel-2016a.eb --- .../n/netCDF/netCDF-4.4.0-intel-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb new file mode 100644 index 0000000000..2818683dd7 --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb @@ -0,0 +1,33 @@ +name = 'netCDF' +version = '4.4.0' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['v%(version)s.tar.gz'] +source_urls = [ + 'https://github.com/Unidata/netcdf-c/archive/' +] + +dependencies = [ + ('HDF5', '1.8.16'), + ('cURL', '7.47.0'), +] + +builddependencies = [ + ('CMake', '3.4.3'), + ('Doxygen', '1.8.11'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' -- GitLab From fa11863cf5cb4aa57b73db4336ac0d2cae1b0504 Mon Sep 17 00:00:00 2001 From: Benjamin Roberts Date: Tue, 2 Feb 2016 14:20:50 +1300 Subject: [PATCH 082/732] New EasyConfigs for libspatialite - various versions and toolchains --- .../libspatialite-4.1.1-goolf-1.5.14.eb | 27 ++++++++++++++++ .../libspatialite-4.3.0-intel-2015a.eb | 32 +++++++++++++++++++ .../libspatialite-4.3.0a-foss-2015a.eb | 32 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb create mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb create mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb new file mode 100644 index 0000000000..8132d40673 --- /dev/null +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libspatialite' +version = '4.1.1' + +homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" +description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'usempi': False, 'pic': True} + +download_suffix = '' +source_urls = ['http://www.gaia-gis.it/gaia-sins/'] +sources = [SOURCE_TAR_GZ] + +patches = ['libspatialite-configure.ac.patch'] + +dependencies = [('FreeXL','1.0.0g'),('GEOS','3.3.5'), ('SQLite', '3.8.4.3'), ('PROJ', '4.8.0')] +configopts = '--disable-geosadvanced' +builddependencies = [('CMake', '2.8.10.2')] + +sanity_check_paths = { + 'files': ["lib/libspatialite.la"], + 'dirs': ["lib","include"] + } + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb new file mode 100644 index 0000000000..732c224f99 --- /dev/null +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libspatialite' +version = '4.3.0' + +homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" +description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'usempi': False, 'pic': True} + +download_suffix = '' +source_urls = ['http://www.gaia-gis.it/gaia-sins/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('FreeXL','1.0.1'), + ('GEOS','3.3.9'), + ('SQLite', '3.8.9'), + ('PROJ', '4.9.1'), +] + +configopts = '--disable-geosadvanced' + +builddependencies = [('CMake', '3.2.2')] + +sanity_check_paths = { + 'files': ["lib/libspatialite.la"], + 'dirs': ["lib","include"] + } + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb new file mode 100644 index 0000000000..0c50d9148b --- /dev/null +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libspatialite' +version = '4.3.0a' + +homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" +description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'usempi': False, 'pic': True} + +download_suffix = '' +source_urls = ['http://www.gaia-gis.it/gaia-sins/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('FreeXL', '1.0.2'), + ('GEOS', '3.5.0', '-Python-2.7.11'), + ('SQLite', '3.10.0'), + ('PROJ', '4.9.1'), +] + +configopts = '--disable-geosadvanced' + +builddependencies = [('CMake', '3.4.1')] + +sanity_check_paths = { + 'files': ["lib/libspatialite.la"], + 'dirs': ["lib","include"] + } + +moduleclass = 'lib' -- GitLab From 771d76c24113e7b777347eb29d6b4905b51e3e75 Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 2 Feb 2016 14:14:21 +0100 Subject: [PATCH 083/732] adding cray 2015.06-XC --- .../b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb | 22 ++++ .../b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb | 15 +++ .../c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb | 23 ++++ .../c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb | 38 ++++++ .../f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb | 14 +++ .../Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb | 24 ++++ .../libreadline-6.3-CrayGNU-2015.06-XC.eb | 30 +++++ .../l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb | 32 +++++ .../m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb | 23 ++++ .../n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb | 22 ++++ .../ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb | 36 ++++++ ...y-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb | 26 ++++ .../Python-2.7.9-CrayGNU-2015.06-XC-bare.eb | 39 ++++++ .../Python/Python-2.7.9-CrayGNU-2015.06-XC.eb | 115 ++++++++++++++++++ .../s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb | 23 ++++ ...-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb | 19 +++ .../spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb | 22 ++++ .../t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb | 39 ++++++ .../WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb | 41 +++++++ .../z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb | 22 ++++ 20 files changed, 625 insertions(+) create mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb create mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb create mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..77bb4a043c --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..5b74aeb4ae --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +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.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..2813041da2 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'dynamic': True} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..c1c02c3bcf --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.6.0' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.1'), +] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..d9b2e6f439 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb @@ -0,0 +1,14 @@ +name = 'flex' +version = '2.5.39' + +homepage = 'http://flex.sourceforge.net/' +description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..8c50a3c766 --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb @@ -0,0 +1,24 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..86d9535460 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..3ef89d660d --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..68ee7aa23b --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..9a44adf4a0 --- /dev/null +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'NFFT' +version = '3.3.0' + +homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' +description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine + library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more + dimensions, of arbitrary input size, and of complex data.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = { 'dynamic': True } + +source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..39a02a2b9d --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'optarch': True, 'shared': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb new file mode 100644 index 0000000000..09f3884a76 --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb @@ -0,0 +1,26 @@ +name = 'numpy' +version = '1.9.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb new file mode 100644 index 0000000000..ae58dbb498 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb @@ -0,0 +1,39 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True, 'opt': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +# bare installation: no extensions included +exts_list = [] + +buildopts = 'LINKCC="$CC -dynamic"' + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..d2018b8970 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +buildopts = 'LINKCC="$CC -dynamic"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..621f9235dd --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True, 'dynamic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb new file mode 100644 index 0000000000..b47cc99c57 --- /dev/null +++ b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb @@ -0,0 +1,19 @@ +name = 'scipy' +version = '0.15.1' +versionsuffix = '-Python-2.7.9' + +homepage = 'http://www.scipy.org' +description = """SciPy is a collection of mathematical algorithms and convenience + functions built on the Numpy extension for Python.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True} + +source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('numpy', '1.9.2', versionsuffix), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..90249a4422 --- /dev/null +++ b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'spglib' +version = '1.7.3' + +homepage = 'http://spglib.sourceforge.net/' +description = """Spglib is a C library for finding and handling crystal symmetries.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'dynamic': True, } + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +start_dir = '%(name)s-%(version)s' + +sanity_check_paths = { + 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], + 'dirs': ['include/spglib'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..07d83bd968 --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'dynamic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb new file mode 100644 index 0000000000..0b7fd5cfb3 --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb @@ -0,0 +1,41 @@ +name = 'WRF' +version = '3.6.1' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.18.01')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('cray-netcdf/4.3.2', EXTERNAL_MODULE), + ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-3.6.1_known_problems.patch', + 'WRF_tests_limit-runtimes.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +runtest = False + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..e2f5d3e598 --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True, 'dynamic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From 19e35e1b9bab0a773934e803edc04adc2fa21e6d Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 2 Feb 2016 14:16:09 +0100 Subject: [PATCH 084/732] Cray 2015.11 XC --- .../b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb | 22 ++++ .../b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb | 15 +++ .../c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb | 23 ++++ .../c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb | 38 ++++++ .../f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb | 14 +++ .../Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb | 24 ++++ .../libreadline-6.3-CrayGNU-2015.11-XC.eb | 30 +++++ .../l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb | 32 +++++ .../m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb | 23 ++++ .../n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb | 22 ++++ .../ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb | 36 ++++++ ...y-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb | 26 ++++ .../Python-2.7.9-CrayGNU-2015.11-XC-bare.eb | 39 ++++++ .../Python/Python-2.7.9-CrayGNU-2015.11-XC.eb | 115 ++++++++++++++++++ .../s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb | 23 ++++ ...-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb | 19 +++ .../spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb | 22 ++++ .../t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb | 39 ++++++ .../WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb | 41 +++++++ .../z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb | 22 ++++ 20 files changed, 625 insertions(+) create mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb create mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..cfb18be138 --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..5666a2e9f5 --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +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.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..5d449a2077 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'dynamic': True} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..18250df781 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.6.0' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.1'), +] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..7fbee438c5 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb @@ -0,0 +1,14 @@ +name = 'flex' +version = '2.5.39' + +homepage = 'http://flex.sourceforge.net/' +description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..ba7eabefb4 --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb @@ -0,0 +1,24 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..9f6f591568 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..bfd88b3c4b --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..fd7cafa798 --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..f5c36d9c4c --- /dev/null +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'NFFT' +version = '3.3.0' + +homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' +description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine + library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more + dimensions, of arbitrary input size, and of complex data.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = { 'dynamic': True } + +source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..a3d14a3a11 --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'optarch': True, 'shared': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb new file mode 100644 index 0000000000..91375139ee --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb @@ -0,0 +1,26 @@ +name = 'numpy' +version = '1.9.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb new file mode 100644 index 0000000000..f91af70f07 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb @@ -0,0 +1,39 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True, 'opt': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +# bare installation: no extensions included +exts_list = [] + +buildopts = 'LINKCC="$CC -dynamic"' + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..da85447313 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +buildopts = 'LINKCC="$CC -dynamic"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..d97f4cebb2 --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True, 'dynamic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb new file mode 100644 index 0000000000..b69de1aa3b --- /dev/null +++ b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb @@ -0,0 +1,19 @@ +name = 'scipy' +version = '0.15.1' +versionsuffix = '-Python-2.7.9' + +homepage = 'http://www.scipy.org' +description = """SciPy is a collection of mathematical algorithms and convenience + functions built on the Numpy extension for Python.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('numpy', '1.9.2', versionsuffix), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..06a6cb2664 --- /dev/null +++ b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'spglib' +version = '1.7.3' + +homepage = 'http://spglib.sourceforge.net/' +description = """Spglib is a C library for finding and handling crystal symmetries.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'dynamic': True, } + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +start_dir = '%(name)s-%(version)s' + +sanity_check_paths = { + 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], + 'dirs': ['include/spglib'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..e07994886a --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'dynamic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb new file mode 100644 index 0000000000..d353e6742c --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb @@ -0,0 +1,41 @@ +name = 'WRF' +version = '3.6.1' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.18.01')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('cray-netcdf/4.3.2', EXTERNAL_MODULE), + ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-3.6.1_known_problems.patch', + 'WRF_tests_limit-runtimes.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +runtest = False + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..7d35b456b3 --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True, 'dynamic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From ec0bca72390c31cb16ff117b1f78f085b4be6ec4 Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 2 Feb 2016 14:24:21 +0100 Subject: [PATCH 085/732] adding gromacs and jasper --- .../GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb | 38 +++++++++++++++++++ .../JasPer-1.900.1-CrayGNU-2015.11-XC.eb | 21 ++++++++++ 2 files changed, 59 insertions(+) create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb create mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb new file mode 100644 index 0000000000..0faa18f3de --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..b3d235faba --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'JasPer' +version = '1.900.1' + +homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' +description = """The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_ZIP] +source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] + +sanity_check_paths = { + 'files': ["bin/jasper", "lib/libjasper.a"], + 'dirs': ["include"], +} + +moduleclass = 'vis' -- GitLab From 7d8aa043176d7a960af65451fcfb2a3b545dcd87 Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 2 Feb 2016 14:32:32 +0100 Subject: [PATCH 086/732] added Gromacs and JasPer --- .../GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb | 38 +++++++++++++++++++ .../JasPer-1.900.1-CrayGNU-2015.06-XC.eb | 21 ++++++++++ 2 files changed, 59 insertions(+) create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb create mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb new file mode 100644 index 0000000000..31d5fed4d1 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb new file mode 100644 index 0000000000..057b6423c3 --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'JasPer' +version = '1.900.1' + +homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' +description = """The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_ZIP] +source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] + +sanity_check_paths = { + 'files': ["bin/jasper", "lib/libjasper.a"], + 'dirs': ["include"], +} + +moduleclass = 'vis' -- GitLab From 25ee5b39069f77a58dee584edb7deea6cdc1f5df Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Tue, 2 Feb 2016 19:43:35 +0100 Subject: [PATCH 087/732] added ImageMagick-6.9.3-2-goolf-1.4.10.eb and missing deps --- .../ImageMagick-6.9.3-2-goolf-1.4.10.eb | 29 +++++++++++++++++++ .../l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb | 15 ++++++++++ .../libjpeg-turbo-1.4.1-goolf-1.4.10.eb | 24 +++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb create mode 100644 easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb new file mode 100644 index 0000000000..91d3272c34 --- /dev/null +++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'ImageMagick' +version = '6.9.3-2' + +homepage = 'http://www.imagemagick.org/' +description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.imagemagick.org/download/'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('freetype', '2.5.0.1'), + ('Ghostscript', '9.10'), + ('JasPer', '1.900.1'), + ('libjpeg-turbo', '1.4.1'), + ('LibTIFF', '4.0.3'), + ('libX11', '1.6.1'), + ('libXext', '1.3.2'), + ('libXt', '1.1.4'), + ('LittleCMS', '2.7'), +] + +modextravars = {'MAGICK_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb new file mode 100644 index 0000000000..af18beb748 --- /dev/null +++ b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb @@ -0,0 +1,15 @@ +easyblock = 'ConfigureMake' + +name = 'LittleCMS' +version = '2.7' + +homepage = 'http://www.littlecms.com/' +description = """ Little CMS intends to be an OPEN SOURCE small-footprint color management engine, + with special focus on accuracy and performance. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sourceforge.net/projects/lcms/files/lcms/%(version)s/'] +sources = ['lcms2-%(version)s.tar.gz'] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb new file mode 100644 index 0000000000..b5f70e73bc --- /dev/null +++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libjpeg-turbo' +version = '1.4.1' + +homepage = 'http://sourceforge.net/libjpeg-turbo/' +description = """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG +compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and transcoding. +""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('NASM', '2.07'), +] + +configopts = "--with-jpeg8" +runtest = "test" + +moduleclass = 'lib' -- GitLab From 265a314ee9bc5b53892e6abfebce5c50a638fe07 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Tue, 2 Feb 2016 23:36:03 +0100 Subject: [PATCH 088/732] added pkg-config dependency --- .../i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb index 91d3272c34..c751d87629 100644 --- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb @@ -22,6 +22,7 @@ dependencies = [ ('libXext', '1.3.2'), ('libXt', '1.1.4'), ('LittleCMS', '2.7'), + ('pkg-config', '0.27.1'), ] modextravars = {'MAGICK_HOME': '%(installdir)s'} -- GitLab From e1ef6c675000659343591b391917fb1700a6fc15 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Wed, 3 Feb 2016 09:28:25 +0100 Subject: [PATCH 089/732] moved pkg-config to builddeps --- .../i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb index c751d87629..11edf87c57 100644 --- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb @@ -11,6 +11,10 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] source_urls = ['http://www.imagemagick.org/download/'] +builddependencies = [ + ('pkg-config', '0.27.1'), +] + dependencies = [ ('bzip2', '1.0.6'), ('freetype', '2.5.0.1'), @@ -22,7 +26,6 @@ dependencies = [ ('libXext', '1.3.2'), ('libXt', '1.1.4'), ('LittleCMS', '2.7'), - ('pkg-config', '0.27.1'), ] modextravars = {'MAGICK_HOME': '%(installdir)s'} -- GitLab From b520afc4de5f3a3ecc7f7a96e77757283b57fd1e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 5 Feb 2016 14:18:55 +0200 Subject: [PATCH 090/732] add easyconfig CMake-3.4.3-intel-2016a.eb, add easyconfig Doxygen-1.8.11-intel-2016a.eb, add easyconfig cURL-7.47.0-intel-2016a.eb --- .../c/CMake/CMake-3.4.3-intel-2016a.eb | 31 +++++++++++++++++++ .../c/cURL/cURL-7.47.0-intel-2016a.eb | 31 +++++++++++++++++++ .../d/Doxygen/Doxygen-1.8.11-intel-2016a.eb | 19 ++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb new file mode 100644 index 0000000000..31b70f1b8a --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb new file mode 100644 index 0000000000..80ee257e06 --- /dev/null +++ b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.47.0' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# dependencies = [('OpenSSL', '1.0.1p')] +# configopts = "--with-ssl=$EBROOTOPENSSL" + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb new file mode 100644 index 0000000000..2d5dc8597f --- /dev/null +++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb @@ -0,0 +1,19 @@ +name = 'Doxygen' +version = '1.8.11' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.4.3'), + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +moduleclass = 'devel' -- GitLab From b019fe54647e6fffe46a6f4811063f71112de804 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 5 Feb 2016 14:44:53 +0200 Subject: [PATCH 091/732] add easyconfig HDF5-1.8.16-intel-2016a.eb --- .../h/HDF5/HDF5-1.8.16-intel-2016a.eb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb new file mode 100644 index 0000000000..dc65dce562 --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb @@ -0,0 +1,26 @@ +name = 'HDF5' +version = '1.8.16' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-1.8.15_configure_intel.patch', + 'configure_libtool.patch', +] + +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' -- GitLab From b146200dbd2f7aa7ec3339a4cde3971967c6cd44 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 5 Feb 2016 14:47:42 +0200 Subject: [PATCH 092/732] add easyconfig Szip-2.1-intel-2016a.eb --- .../s/Szip/Szip-2.1-intel-2016a.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb new file mode 100644 index 0000000000..67b0f10359 --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From e5e8fb96f10b3f441fe3302c37acb15abf3dd77e Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 5 Feb 2016 15:16:42 +0100 Subject: [PATCH 093/732] updated ebs to default value for toolchain opts dynamic = True --- easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb | 1 - easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb | 1 - easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb | 2 +- .../easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb | 1 - easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb | 1 - easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb | 2 +- 6 files changed, 2 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb index 5d449a2077..1a73916b52 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb @@ -8,7 +8,6 @@ description = """CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.""" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'dynamic': True} source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb index f5c36d9c4c..656ae6d877 100644 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb @@ -9,7 +9,6 @@ description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fa dimensions, of arbitrary input size, and of complex data.""" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = { 'dynamic': True } source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb index d97f4cebb2..6340c63211 100644 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb @@ -7,7 +7,7 @@ homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' description = "Szip compression software, providing lossless compression of scientific data" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True, 'dynamic': True} +toolchainopts = {'pic': True, } source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb index 06a6cb2664..bdb5c45a5a 100644 --- a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb @@ -7,7 +7,6 @@ homepage = 'http://spglib.sourceforge.net/' description = """Spglib is a C library for finding and handling crystal symmetries.""" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'dynamic': True, } source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCE_TAR_GZ] diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb index e07994886a..3b456bd5d5 100644 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb @@ -21,7 +21,6 @@ description = """Tcsh is an enhanced, but completely compatible version of the B mechanism, job control and a C-like syntax.""" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'dynamic': True} sources = [SOURCELOWER_TAR_GZ] source_urls = [ diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb index 7d35b456b3..0c6915d7cd 100644 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb @@ -9,7 +9,7 @@ description = """zlib is designed to be a free, general-purpose, legally unencum computer hardware and operating system.""" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True, 'dynamic': True} +toolchainopts = {'pic': True, } sources = [SOURCELOWER_TAR_GZ] source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] -- GitLab From 110a98840e1f1d882b83502c94953ef32dfd5d81 Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 5 Feb 2016 15:21:12 +0100 Subject: [PATCH 094/732] updated ebs to default value for toolchain opts dynamic = True --- easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb | 1 - easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb | 1 - easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb | 2 +- .../easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb | 1 - easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb | 1 - easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb | 2 +- 6 files changed, 2 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb index 2813041da2..d4b9c66352 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb @@ -8,7 +8,6 @@ description = """CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.""" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'dynamic': True} source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb index 9a44adf4a0..4acf581ee5 100644 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb @@ -9,7 +9,6 @@ description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fa dimensions, of arbitrary input size, and of complex data.""" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = { 'dynamic': True } source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb index 621f9235dd..a075d53839 100644 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb @@ -7,7 +7,7 @@ homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' description = "Szip compression software, providing lossless compression of scientific data" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True, 'dynamic': True} +toolchainopts = {'pic': True, } source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb index 90249a4422..68086c7c98 100644 --- a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb @@ -7,7 +7,6 @@ homepage = 'http://spglib.sourceforge.net/' description = """Spglib is a C library for finding and handling crystal symmetries.""" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'dynamic': True, } source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCE_TAR_GZ] diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb index 07d83bd968..c5db50a961 100644 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb @@ -21,7 +21,6 @@ description = """Tcsh is an enhanced, but completely compatible version of the B mechanism, job control and a C-like syntax.""" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'dynamic': True} sources = [SOURCELOWER_TAR_GZ] source_urls = [ diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb index e2f5d3e598..fbc74998eb 100644 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb @@ -9,7 +9,7 @@ description = """zlib is designed to be a free, general-purpose, legally unencum computer hardware and operating system.""" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True, 'dynamic': True} +toolchainopts = {'pic': True, } sources = [SOURCELOWER_TAR_GZ] source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] -- GitLab From 05f1e7f9d3c58a71d4c9619597ca6450fd54199b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 5 Feb 2016 15:53:20 +0100 Subject: [PATCH 095/732] remove easyconfigs that are being added through #2447 and #2448 --- .../c/CMake/CMake-3.4.3-intel-2016a.eb | 31 ------------------- .../h/HDF5/HDF5-1.8.16-intel-2016a.eb | 26 ---------------- .../s/Szip/Szip-2.1-intel-2016a.eb | 23 -------------- 3 files changed, 80 deletions(-) delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb deleted file mode 100644 index 31b70f1b8a..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.4.3-intel-2016a.eb +++ /dev/null @@ -1,31 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.4.3' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = '-- -DCMAKE_USE_OPENSSL=1' - -dependencies = [ - ('ncurses', '6.0'), - # OS dependency should be preferred if the os version is more recent then this version, - # it's nice to have an up to date openssl for security reasons - #('OpenSSL', '1.0.1p'), -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb deleted file mode 100644 index dc65dce562..0000000000 --- a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-intel-2016a.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'HDF5' -version = '1.8.16' - -homepage = 'http://www.hdfgroup.org/HDF5/' -description = """HDF5 is a unique technology suite that makes possible the management of - extremely large and complex data collections.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} - -source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -patches = [ - 'HDF5-1.8.15_configure_intel.patch', - 'configure_libtool.patch', -] - -buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' - -dependencies = [ - ('zlib', '1.2.8'), - ('Szip', '2.1'), -] - -moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb deleted file mode 100644 index 67b0f10359..0000000000 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-intel-2016a.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Szip' -version = '2.1' - -homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' -description = "Szip compression software, providing lossless compression of scientific data" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True, 'pic': True} - -source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -sanity_check_paths = { - 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + - ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], - 'dirs': [], -} - -moduleclass = 'tools' -- GitLab From c31ab01763787288bd13198a122b8870b9c663d6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 5 Feb 2016 16:56:32 +0200 Subject: [PATCH 096/732] add easyconfig R-3.2.3-intel-2016a.eb --- .../easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 398 ++++++++++++++++++ 1 file changed, 398 insertions(+) create mode 100644 easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb new file mode 100644 index 0000000000..2f1c082832 --- /dev/null +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -0,0 +1,398 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.47.0'), # for RCurl + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', dict(ext_options.items() + [('patches', ['forecast-6.1_icpc-wd308.patch'])])), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), +] + +moduleclass = 'lang' -- GitLab From a8356625b0edb3fb95816588a703e2bd5941d6c0 Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 5 Feb 2016 17:35:08 +0100 Subject: [PATCH 097/732] added missing fftw dependency to nfft --- easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb index 4acf581ee5..24a66a56a8 100644 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb @@ -13,6 +13,10 @@ toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] sources = [SOURCELOWER_TAR_GZ] +dependencies = [ + ('fftw/3.3.4.2', EXTERNAL_MODULE), +] + sanity_check_paths = { 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], 'dirs': ['lib/pkgconfig'], -- GitLab From 764ea007f168d57340a7aa9bfa84105d71c0f289 Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 5 Feb 2016 17:36:54 +0100 Subject: [PATCH 098/732] added missing fftw dependency to nfft --- easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb index 656ae6d877..10957199be 100644 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb @@ -13,6 +13,10 @@ toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] sources = [SOURCELOWER_TAR_GZ] +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + sanity_check_paths = { 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], 'dirs': ['lib/pkgconfig'], -- GitLab From d976704782fe5a842871121e15af43dcb932fa2b Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 5 Feb 2016 19:46:44 +0100 Subject: [PATCH 099/732] fix for cray's fftw + cmake detection --- .../g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb index 0faa18f3de..94600c2c59 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb @@ -31,6 +31,13 @@ sources = [ 'regressiontests-%(version)s.tar.gz', ] +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW} && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/../include && " + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + builddependencies = [('CMake', '3.2.2')] runtest = False -- GitLab From 7df75991277ec4893b062d68ec6ca9fe04eea6e7 Mon Sep 17 00:00:00 2001 From: perettig Date: Fri, 5 Feb 2016 19:48:37 +0100 Subject: [PATCH 100/732] fix for cray's fftw + cmake detection --- .../g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb index 31d5fed4d1..f4f5d5d089 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb @@ -31,6 +31,13 @@ sources = [ 'regressiontests-%(version)s.tar.gz', ] +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW} && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/../include && " + +dependencies = [ + ('fftw/3.3.4.2', EXTERNAL_MODULE), +] + builddependencies = [('CMake', '3.2.2')] runtest = False -- GitLab From b858aa12c5eeec33a74209885410e5450fdc08ac Mon Sep 17 00:00:00 2001 From: perettig Date: Sat, 6 Feb 2016 11:41:24 +0100 Subject: [PATCH 101/732] fixed fftw minor version to match PE 2015.06 --- .../g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb | 2 +- easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb index f4f5d5d089..8fe8110183 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb @@ -35,7 +35,7 @@ preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW} && preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/../include && " dependencies = [ - ('fftw/3.3.4.2', EXTERNAL_MODULE), + ('fftw/3.3.4.3', EXTERNAL_MODULE), ] builddependencies = [('CMake', '3.2.2')] diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb index 24a66a56a8..f016964748 100644 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb @@ -14,7 +14,7 @@ source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] sources = [SOURCELOWER_TAR_GZ] dependencies = [ - ('fftw/3.3.4.2', EXTERNAL_MODULE), + ('fftw/3.3.4.3', EXTERNAL_MODULE), ] sanity_check_paths = { -- GitLab From 3f9dce28fb1bdb6884149ea219187a4557193e15 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 6 Feb 2016 23:06:36 +0200 Subject: [PATCH 102/732] add easyconfig PROJ-4.9.2-intel-2016a.eb --- .../p/PROJ/PROJ-4.9.2-intel-2016a.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-intel-2016a.eb diff --git a/easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-intel-2016a.eb b/easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-intel-2016a.eb new file mode 100644 index 0000000000..67b8275d1e --- /dev/null +++ b/easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-intel-2016a.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2014-2015 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'PROJ' +version = '4.9.2' + +homepage = 'http://trac.osgeo.org/proj/' +description = """Program proj is a standard Unix filter function which converts +geographic longitude and latitude coordinates into cartesian coordinates""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['http://download.osgeo.org/proj/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/cs2cs', 'bin/geod', 'bin/invgeod', 'bin/invproj', + 'bin/nad2bin', 'bin/proj'], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From 7580fb2ca2421bc17618d989dc97a8e150edf095 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 10 Feb 2016 20:05:55 +0100 Subject: [PATCH 103/732] rework p4vasp to use intel/2016a and easyconfigs from #2443 --- .../ATK-2.16.0-intel-2015b-GLib-2.29.92.eb | 29 ------------ .../cairo-1.14.2-intel-2015b-GLib-2.29.92.eb | 46 ------------------- .../g/GLib/GLib-2.29.92-intel-2015b.eb | 22 --------- ...ection-0.10.8-intel-2015b-Python-2.7.10.eb | 38 --------------- ...-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb | 29 ------------ .../gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb | 23 ---------- ...arfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb | 28 ----------- .../Pango-1.37.1-intel-2015b-GLib-2.29.92.eb | 24 ---------- ...Object-2.28.6-intel-2015b-Python-2.7.10.eb | 34 -------------- .../PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb | 34 -------------- ...4vasp-0.3.29-intel-2016a-Python-2.7.11.eb} | 4 +- ...-intel-2015b-Python-2.7.10-GLib-2.29.92.eb | 30 ------------ 12 files changed, 2 insertions(+), 339 deletions(-) delete mode 100644 easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb delete mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb delete mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb delete mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb delete mode 100644 easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb delete mode 100644 easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb delete mode 100644 easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb delete mode 100644 easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb delete mode 100644 easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb delete mode 100644 easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb rename easybuild/easyconfigs/p/p4vasp/{p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb => p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb} (91%) delete mode 100644 easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb diff --git a/easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb deleted file mode 100644 index afb1976aa4..0000000000 --- a/easybuild/easyconfigs/a/ATK/ATK-2.16.0-intel-2015b-GLib-2.29.92.eb +++ /dev/null @@ -1,29 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ATK' -version = '2.16.0' - -homepage = 'https://developer.gnome.org/ATK/stable/' -description = """ - ATK provides the set of accessibility interfaces that are implemented by other - toolkits and applications. Using the ATK interfaces, accessibility tools have - full access to view and control running applications. -""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_XZ] - -glibver = '2.29.92' -versionsuffix = '-GLib-%s' % glibver -dependencies = [ - ('GLib', glibver), -] - -sanity_check_paths = { - 'files': ['lib/libatk-1.0.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb deleted file mode 100644 index 75af067c33..0000000000 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.2-intel-2015b-GLib-2.29.92.eb +++ /dev/null @@ -1,46 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'cairo' -version = '1.14.2' - -homepage = 'http://cairographics.org' -description = """Cairo is a 2D graphics library with support for multiple output devices. - Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, - PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://cairographics.org/releases/'] -sources = [SOURCE_TAR_XZ] - -glibver = '2.29.92' -versionsuffix = '-GLib-%s' % glibver - -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libpng', '1.6.18'), - ('freetype', '2.6.1'), - ('pixman', '0.32.8'), - ('fontconfig', '2.11.94'), - ('expat', '2.1.0'), - ('GLib', glibver), -] - -# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC -configopts = "--enable-symbol-lookup=no --enable-gobject=yes" - -# workaround for "hidden symbol .* in .* is referenced by DSO" and "ld: final link failed: Bad value" -buildopts = 'LD="$CC" LDFLAGS="$LDFLAGS -shared-intel"' - -sanity_check_paths = { - 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', - 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', - 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + - ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', - '-script', '-script-interpreter', '-svg', '-version', '-xcb', - '-xlib', '-xlib-xrender']], - 'dirs': ['lib/pkgconfig'], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb deleted file mode 100644 index 053d541683..0000000000 --- a/easybuild/easyconfigs/g/GLib/GLib-2.29.92-intel-2015b.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'GLib' -version = '2.29.92' - -homepage = 'http://www.gtk.org/' -description = """GLib is one of the base libraries of the GTK+ project""" - -toolchain = {'name': 'intel', 'version': '2015b'} -toolchainopts = {'optarch': True, 'pic': True} - -source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] -sources = ['glib-%(version)s.tar.xz'] - -dependencies = [ - ('libffi', '3.2.1'), - ('gettext', '0.19.6'), - ('libxml2', '2.9.2'), -] -builddependencies = [('Python', '2.7.10')] - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb deleted file mode 100644 index 669dcee41a..0000000000 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-0.10.8-intel-2015b-Python-2.7.10.eb +++ /dev/null @@ -1,38 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'GObject-Introspection' -version = '0.10.8' - -homepage = 'https://wiki.gnome.org/GObjectIntrospection/' -description = """GObject introspection is a middleware layer between C libraries - (using GObject) and language bindings. The C library can be scanned at - compile time and generate a metadata file, in addition to the actual - native C library. Then at runtime, language bindings can read this - metadata and automatically provide bindings to call into the C library.""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = [FTPGNOME_SOURCE] -sources = [SOURCELOWER_TAR_GZ] - -pyver = '2.7.10' -versionsuffix = '-Python-%s' % pyver - -dependencies = [ - ('Python', pyver), - ('GLib', '2.29.92'), - ('Bison', '3.0.4'), -] - -sanity_check_paths = { - 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + - ['lib/libgirepository-1.0.%s' % x for x in ['so', 'a']], - 'dirs': ['include', 'share'] -} - -modextrapaths = { - 'GI_TYPELIB_PATH': 'share', - 'XDG_DATA_DIRS': 'share', -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb deleted file mode 100644 index df97d34492..0000000000 --- a/easybuild/easyconfigs/g/gdk-pixbuf/gdk-pixbuf-2.31.4-intel-2015b-GLib-2.29.92.eb +++ /dev/null @@ -1,29 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'gdk-pixbuf' -version = '2.31.4' - -homepage = 'https://developer.gnome.org/gdk-pixbuf/stable/' -description = """ - The Gdk Pixbuf is a toolkit for image loading and pixel buffer manipulation. - It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it - was distributed as part of GTK+ 2 but it was split off into a separate package - in preparation for the change to GTK+ 3. -""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_XZ] - -glibver = '2.29.92' -versionsuffix = '-GLib-%s' % glibver -dependencies = [ - ('GLib', glibver), - ('libjpeg-turbo', '1.4.0'), - ('libpng', '1.6.18'), - ('LibTIFF', '4.0.3'), - -] - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb deleted file mode 100644 index 4fe143fa91..0000000000 --- a/easybuild/easyconfigs/g/gtk+/gtk+-2.24.28-intel-2015b-GLib-2.29.92.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'gtk+' -version = '2.24.28' -versionsuffix = '-GLib-2.29.92' - -homepage = 'https://developer.gnome.org/gtk+/stable/' -description = """ - The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications. -""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_XZ] - -dependencies = [ - ('ATK', '2.16.0', versionsuffix), - ('gdk-pixbuf', '2.31.4', versionsuffix), - ('Pango', '1.37.1', versionsuffix), -] - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb deleted file mode 100644 index 890b5853fb..0000000000 --- a/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-0.9.41-intel-2015b-GLib-2.29.92.eb +++ /dev/null @@ -1,28 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'HarfBuzz' -version = '0.9.41' - -homepage = 'http://www.freedesktop.org/wiki/Software/HarfBuzz' -description = """HarfBuzz is an OpenType text shaping engine.""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://www.freedesktop.org/software/harfbuzz/release/'] -sources = [SOURCELOWER_TAR_BZ2] - -patches = ['HarfBuzz-%(version)s_no_symbolic.patch'] - -glibver = '2.29.92' -versionsuffix = '-GLib-%s' % glibver -dependencies = [ - ('GLib', glibver), - ('cairo', '1.14.2', versionsuffix), -] - -sanity_check_paths = { - 'files': ['lib/libharfbuzz.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb b/easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb deleted file mode 100644 index bf4f60f01b..0000000000 --- a/easybuild/easyconfigs/p/Pango/Pango-1.37.1-intel-2015b-GLib-2.29.92.eb +++ /dev/null @@ -1,24 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Pango' -version = '1.37.1' - -homepage = 'http://www.pango.org/' -description = """Pango is a library for laying out and rendering of text, with an emphasis on internationalization. -Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the -context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x.""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_XZ] - -glibver = '2.29.92' -versionsuffix = '-GLib-%s' % glibver -dependencies = [ - ('GLib', glibver), - ('cairo', '1.14.2', versionsuffix), - ('HarfBuzz', '0.9.41', versionsuffix), -] - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb deleted file mode 100644 index 3c627c6217..0000000000 --- a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2015b-Python-2.7.10.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'PyGObject' -version = '2.28.6' - -homepage = 'http://www.pygtk.org/' -description = """Python Bindings for GLib/GObject/GIO/GTK+""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = [FTPGNOME_SOURCE] -sources = [SOURCELOWER_TAR_XZ] - -pyver_maj_min = '2.7' -pyver = '%s.10' % pyver_maj_min -versionsuffix = '-Python-%s' % pyver - -glibver = '2.29.92' -dependencies = [ - ('Python', pyver), - ('GLib', glibver), - ('GObject-Introspection', '0.10.8', versionsuffix), - ('pycairo', '1.10.0', versionsuffix + '-GLib-%s' % glibver), -] - -parallel = 1 - -sanity_check_paths = { - 'files': ['include/pygtk-%(version_major)s.0/pyglib.h', 'include/pygtk-%(version_major)s.0/pygobject.h', - 'lib/libpyglib-%(version_major)s.0-python.so'], - 'dirs': ['bin', 'lib/python%s/site-packages/' % pyver_maj_min], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb deleted file mode 100644 index f7d18d2696..0000000000 --- a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2015b-Python-2.7.10.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'PyGTK' -version = '2.24.0' - -homepage = 'http://www.pygtk.org/' -description = """PyGTK lets you to easily create programs with a graphical user interface - using the Python programming language.""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = [PYPI_SOURCE] -sources = [SOURCELOWER_TAR_GZ] - -pyver_maj_min = '2.7' -pyver = '%s.10' % pyver_maj_min -versionsuffix = '-Python-%s' % pyver - -glibver = '2.29.92' -dependencies = [ - ('Python', pyver), - ('GLib', glibver), - ('PyGObject', '2.28.6', versionsuffix), - ('gtk+', '2.24.28', '-GLib-%s' % glibver), -] - -sanity_check_paths = { - 'files': ['lib/pkgconfig/pygtk-%(version_major)s.0.pc'], - 'dirs': ['lib/pygtk'], -} - -sanity_check_commands = [('python', "-c 'import gtk'")] - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb similarity index 91% rename from easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb rename to easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb index 7fcc6c3b0b..7903d62ba9 100644 --- a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb @@ -2,12 +2,12 @@ easyblock = 'ConfigureMake' name = 'p4vasp' version = '0.3.29' -versionsuffix = '-Python-2.7.10' +versionsuffix = '-Python-2.7.11' homepage = 'http://www.p4vasp.at/' description = """Visualization suite for VASP""" -toolchain = {'name': 'intel', 'version': '2015b'} +toolchain = {'name': 'intel', 'version': '2016a'} # download via http://www.p4vasp.at/index.php/downloads sources = [SOURCE_TGZ] diff --git a/easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb b/easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb deleted file mode 100644 index 23337bffcc..0000000000 --- a/easybuild/easyconfigs/p/pycairo/pycairo-1.10.0-intel-2015b-Python-2.7.10-GLib-2.29.92.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'Waf' - -name = 'pycairo' -version = '1.10.0' - -homepage = 'http://cairographics.org/pycairo/' -description = """Python bindings for the cairo library""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['http://cairographics.org/releases/'] -# py2cairo is the Python 2 compatible release -sources = ['py2cairo-%(version)s.tar.bz2'] - -pyver_maj_min = '2.7' -pyver = '%s.10' % pyver_maj_min -glibver = '2.29.92' -versionsuffix = '-Python-%s-GLib-%s' % (pyver, glibver) - -dependencies = [ - ('Python', pyver), - ('cairo', '1.14.2', '-GLib-%s' % glibver), -] - -sanity_check_paths = { - 'files': ['include/pycairo/pycairo.h', 'lib/pkgconfig/pycairo.pc'], - 'dirs': ['lib/python%s/site-packages/cairo' % pyver_maj_min], -} - -moduleclass = 'vis' -- GitLab From 67e8369d71fbc6489383b3ca8a43adf1fe2ed2d5 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 13 Feb 2016 11:18:45 +0100 Subject: [PATCH 104/732] fix source URL for ImageMagick, add sanity checks + minor version bumps --- ...eb => ImageMagick-6.9.3-3-goolf-1.4.10.eb} | 11 +++++-- .../l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb | 6 ++++ ...eb => libjpeg-turbo-1.4.2-goolf-1.4.10.eb} | 10 ++++-- .../n/NASM/NASM-2.11.08-goolf-1.4.10.eb | 31 +++++++++++++++++++ 4 files changed, 53 insertions(+), 5 deletions(-) rename easybuild/easyconfigs/i/ImageMagick/{ImageMagick-6.9.3-2-goolf-1.4.10.eb => ImageMagick-6.9.3-3-goolf-1.4.10.eb} (68%) rename easybuild/easyconfigs/l/libjpeg-turbo/{libjpeg-turbo-1.4.1-goolf-1.4.10.eb => libjpeg-turbo-1.4.2-goolf-1.4.10.eb} (63%) create mode 100644 easybuild/easyconfigs/n/NASM/NASM-2.11.08-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb similarity index 68% rename from easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb rename to easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb index c751d87629..adc09ca30a 100644 --- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb @@ -1,7 +1,7 @@ easyblock = 'ConfigureMake' name = 'ImageMagick' -version = '6.9.3-2' +version = '6.9.3-3' homepage = 'http://www.imagemagick.org/' description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" @@ -9,14 +9,14 @@ description = """ImageMagick is a software suite to create, edit, compose, or co toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.imagemagick.org/download/'] +source_urls = ['https://launchpad.net/imagemagick/main/%(version)s/+download/'] dependencies = [ ('bzip2', '1.0.6'), ('freetype', '2.5.0.1'), ('Ghostscript', '9.10'), ('JasPer', '1.900.1'), - ('libjpeg-turbo', '1.4.1'), + ('libjpeg-turbo', '1.4.2'), ('LibTIFF', '4.0.3'), ('libX11', '1.6.1'), ('libXext', '1.3.2'), @@ -25,6 +25,11 @@ dependencies = [ ('pkg-config', '0.27.1'), ] +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], +} + modextravars = {'MAGICK_HOME': '%(installdir)s'} moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb index af18beb748..13281d87fa 100644 --- a/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb @@ -12,4 +12,10 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['http://sourceforge.net/projects/lcms/files/lcms/%(version)s/'] sources = ['lcms2-%(version)s.tar.gz'] +sanity_check_paths = { + 'files': ['bin/jpgicc', 'bin/linkicc', 'bin/psicc', 'bin/transicc', 'include/lcms2.h', 'include/lcms2_plugin.h', + 'lib/liblcms2.a', 'lib/liblcms2.%s' % SHLIB_EXT, 'lib/pkgconfig/lcms2.pc'], + 'dirs': ['share/man'], +} + moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb similarity index 63% rename from easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb rename to easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb index b5f70e73bc..548eb81065 100644 --- a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb @@ -1,7 +1,7 @@ easyblock = 'ConfigureMake' name = 'libjpeg-turbo' -version = '1.4.1' +version = '1.4.2' homepage = 'http://sourceforge.net/libjpeg-turbo/' description = """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG @@ -15,10 +15,16 @@ source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] dependencies = [ - ('NASM', '2.07'), + ('NASM', '2.11.08'), ] configopts = "--with-jpeg8" runtest = "test" +sanity_check_paths = { + 'files': ['bin/cjpeg', 'bin/djpeg', 'bin/jpegtran', 'bin/rdjpgcom', 'bin/tjbench', 'bin/wrjpgcom', + 'lib/libjpeg.a', 'libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a', 'lib/libturbojpeg.%s' % SHLIB_EXT], + 'dirs': ['include', 'man', 'share'], +} + moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NASM/NASM-2.11.08-goolf-1.4.10.eb b/easybuild/easyconfigs/n/NASM/NASM-2.11.08-goolf-1.4.10.eb new file mode 100644 index 0000000000..617fb03523 --- /dev/null +++ b/easybuild/easyconfigs/n/NASM/NASM-2.11.08-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-90.html +## + +easyblock = 'ConfigureMake' + +name = 'NASM' +version = '2.11.08' + +homepage = 'http://www.nasm.us/' +description = """NASM: General-purpose x86 assembler""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://www.nasm.us/pub/nasm/releasebuilds/%(version)s'] + +sanity_check_paths = { + 'files': ['bin/nasm'], + 'dirs': [], +} + +moduleclass = 'lang' -- GitLab From 21415a9341ea1216a0dca9456b441baa4d1dfa8d Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Wed, 17 Feb 2016 23:13:47 +0000 Subject: [PATCH 105/732] Working versiion with upstream Boost 1.60 fix --- ...ynchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb diff --git a/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb b/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb new file mode 100644 index 0000000000..b8f1d5f134 --- /dev/null +++ b/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb @@ -0,0 +1,31 @@ +easyblock = 'RPackage' + +name = 'synchronicity' +version = '1.1.9.1' + +homepage = 'http://cran.r-project.org/web/packages/%(name)s' +description = """synchronicity: Boost mutex functionality in R""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [ + 'http://cran.r-project.org/src/contrib/', + 'http://cran.r-project.org/src/contrib/Archive/$(name)s/', +] +sources = ['%(name)s_%(version)s.tar.gz'] + +r = 'R' +rver = '3.2.3' +versionsuffix = '-%s-%s' % (r, rver) + +dependencies = [ + (r, rver), + ('BH', '1.60.0-1', '-R-3.2.3'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['synchronicity'], +} + +moduleclass = 'lang' -- GitLab From 8e33fd247dff9201fd3ab371560068869e5639e9 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Wed, 17 Feb 2016 23:21:19 +0000 Subject: [PATCH 106/732] Add author information --- .../r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb b/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb index b8f1d5f134..f056af2b4f 100644 --- a/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb +++ b/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb @@ -1,3 +1,8 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Adam Huffman +# The Francis Crick Institute + easyblock = 'RPackage' name = 'synchronicity' -- GitLab From 52ad0d5711da3c786090c4359296dae3961a2701 Mon Sep 17 00:00:00 2001 From: Ewan Higgs Date: Thu, 18 Feb 2016 15:11:18 +0100 Subject: [PATCH 107/732] Add support for GATE-7.0 for intel-2016a --- .../Autotools-20150119-intel-2016a.eb | 17 +++ .../b/Bison/Bison-3.0.2-intel-2016a.eb | 22 ++++ .../c/CFITSIO/CFITSIO-3.37-intel-2016a.eb | 22 ++++ .../c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb | 24 ++++ .../c/CMake/CMake-3.1.3-intel-2016a.eb | 22 ++++ .../c/CMake/CMake-3.2.3-intel-2016a.eb | 31 +++++ .../e/eudev/eudev-3.0-intel-2016a.eb | 33 +++++ .../fixesproto/fixesproto-5.0-intel-2016a.eb | 19 +++ .../fontconfig-2.11.93-intel-2016a.eb | 22 ++++ .../fontsproto-2.1.3-intel-2016a.eb | 20 +++ .../f/freetype/freetype-2.5.5-intel-2016a.eb | 21 ++++ .../g/GATE/GATE-7.0-intel-2016a.eb | 29 +++++ .../easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb | 18 +++ .../g/Geant4/Geant4-9.6.p04-intel-2016a.eb | 24 ++++ .../g/gettext/gettext-0.19.4-intel-2016a.eb | 18 +++ .../g/glproto/glproto-1.4.17-intel-2016a.eb | 20 +++ .../g/gperf/gperf-3.0.4-intel-2016a.eb | 22 ++++ .../inputproto-2.3.1-intel-2016a.eb | 19 +++ .../k/kbproto/kbproto-1.0.6-intel-2016a.eb | 19 +++ .../k/kbproto/kbproto-1.0.7-intel-2016a.eb | 19 +++ .../LLVM-3.6.2-intel-2016a-Python-2.7.9.eb | 38 ++++++ .../libX11-1.6.3-intel-2016a-Python-2.7.9.eb | 37 ++++++ .../l/libXau/libXau-1.0.8-intel-2016a.eb | 25 ++++ .../libXdamage-1.1.4-intel-2016a.eb | 26 ++++ .../l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb | 25 ++++ .../l/libXext/libXext-1.3.3-intel-2016a.eb | 34 +++++ .../libXfixes/libXfixes-5.0.1-intel-2016a.eb | 24 ++++ .../l/libXfont/libXfont-1.5.1-intel-2016a.eb | 29 +++++ .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 34 +++++ .../l/libXpm/libXpm-3.5.11-intel-2016a.eb | 22 ++++ .../libXrender-0.9.9-intel-2016a.eb | 28 +++++ .../l/libdrm/libdrm-2.4.59-intel-2016a.eb | 25 ++++ .../libfontenc-1.1.3-intel-2016a.eb | 23 ++++ .../libpciaccess-0.13.1-intel-2016a.eb | 26 ++++ .../l/libpng/libpng-1.6.16-intel-2016a.eb | 19 +++ .../libpthread-stubs-0.3-intel-2016a.eb | 20 +++ .../l/libtool/libtool-2.4.5-intel-2016a.eb | 17 +++ .../libxcb-1.11-intel-2016a-Python-2.7.9.eb | 34 +++++ .../libxml2-2.9.2-intel-2016a-Python-2.7.9.eb | 28 +++++ .../Mesa-10.4.5-intel-2016a-Python-2.7.9.eb | 75 +++++++++++ .../makedepend-1.0.5-intel-2016a.eb | 20 +++ .../n/ncurses/ncurses-5.9-intel-2016a.eb | 36 ++++++ .../p/PCRE/PCRE-8.36-intel-2016a.eb | 18 +++ .../p/Python/Python-2.7.9-intel-2016a.eb | 117 ++++++++++++++++++ .../pkg-config/pkg-config-0.28-intel-2016a.eb | 27 ++++ .../r/ROOT/ROOT-v5.34.26-intel-2016a.eb | 57 +++++++++ .../renderproto-0.11-intel-2016a.eb | 20 +++ .../s/SQLite/SQLite-3.8.8.1-intel-2016a.eb | 38 ++++++ .../t/Tcl/Tcl-8.6.3-intel-2016a.eb | 25 ++++ .../t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb | 24 ++++ ...xcb-proto-1.11-intel-2016a-Python-2.7.9.eb | 27 ++++ .../xextproto/xextproto-7.3.0-intel-2016a.eb | 25 ++++ .../xorg-macros-1.17-intel-2016a.eb | 22 ++++ .../x/xproto/xproto-7.0.27-intel-2016a.eb | 24 ++++ .../x/xtrans/xtrans-1.3.5-intel-2016a.eb | 24 ++++ 55 files changed, 1534 insertions(+) create mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb create mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb create mode 100644 easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb create mode 100644 easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb create mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb create mode 100644 easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb create mode 100644 easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb create mode 100644 easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb new file mode 100644 index 0000000000..8d512386b5 --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150119' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.5'), # 20150119 +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb new file mode 100644 index 0000000000..4fdbf98d8f --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb new file mode 100644 index 0000000000..7af022d137 --- /dev/null +++ b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.37' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb new file mode 100644 index 0000000000..42f08bd8d9 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'CMakeMake' + +name = 'CLHEP' +version = '2.1.3.1' + +homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' +description = """The CLHEP project is intended to be a set of HEP-specific foundation and + utility classes such as random generators, physics vectors, geometry and linear algebra. + CLHEP is structured in a set of packages independent of any external package.""" + + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TGZ] +source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] + +builddependencies = [('CMake', '3.1.3')] + +separate_build_dir = True + +configopts = '-DCMAKE_BUILD_TYPE=Release' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb new file mode 100644 index 0000000000..45251dfaf6 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.1.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb new file mode 100644 index 0000000000..34313f0a0f --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1k'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb b/easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb new file mode 100644 index 0000000000..246e9d0730 --- /dev/null +++ b/easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'eudev' +version = '3.0' + +homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' +description = """eudev is a fork of systemd-udev with the goal of obtaining + better compatibility with existing software such as + OpenRC and Upstart, older kernels, various toolchains + and anything else required by users and various distributions.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'cstd': 'c99'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] +patches = ['%(name)s-%(version)s_pre-2.6.34_kernel.patch'] + +builddependencies = [ + ('gperf', '3.0.4'), +] + +osdependencies = [('kernel-headers', 'linux-libc-dev')] + +configopts = '--disable-blkid --disable-selinux --disable-gudev --disable-manpages ' +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/udevadm', 'include/libudev.h', 'include/udev.h', 'lib/libudev.so.1'], + 'dirs': [], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb new file mode 100644 index 0000000000..33951308af --- /dev/null +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'fixesproto' +version = '5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org FixesProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb new file mode 100644 index 0000000000..f906761e9b --- /dev/null +++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = "fontconfig" +version = '2.11.93' + +homepage = 'http://www.freedesktop.org/software/fontconfig' +description = """Fontconfig is a library designed to provide system-wide font configuration, customization and +application access.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.freedesktop.org/software/fontconfig/release/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('expat', '2.1.0'), + ('freetype', '2.5.5'), +] + +configopts = '--disable-docs ' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb new file mode 100644 index 0000000000..5b1c1517ba --- /dev/null +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'fontsproto' +version = '2.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X11 font extension wire protocol" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb b/easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb new file mode 100644 index 0000000000..35f4da2da2 --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb @@ -0,0 +1,21 @@ +name = 'freetype' +version = '2.5.5' + +homepage = 'http://freetype.org' +description = """FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and + portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display + servers, font conversion tools, text image generation tools, and many other products as well.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('libpng', '1.6.16')] + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb b/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb new file mode 100644 index 0000000000..a0a092ac93 --- /dev/null +++ b/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb @@ -0,0 +1,29 @@ +name = 'GATE' +version = '7.0' + +homepage = 'http://www.opengatecollaboration.org/' +description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and + dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [('%(namelower)s_v%(version)s.tar_.gz', "tar xfvz %s")] +source_urls = ['http://www.opengatecollaboration.org/sites/opengatecollaboration.org/files/'] + +patches = [ + 'GATE-%(version)s_Makefile-prefix.patch', + 'GATE-%(version)s_unistdh.patch', +] + +builddependencies = [ + ('CMake', '3.1.3'), +] + +dependencies = [ + ('Geant4', '9.6.p04'), + ('CLHEP', '2.1.3.1'), + ('ROOT', 'v5.34.26'), +] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb new file mode 100644 index 0000000000..75f289b550 --- /dev/null +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '1.16' + +homepage = 'http://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb new file mode 100644 index 0000000000..0496cd5322 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb @@ -0,0 +1,24 @@ +name = 'Geant4' +version = '9.6.p04' + +homepage = 'http://geant4.cern.ch/' +description = """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.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + ('CLHEP', '2.1.3.1'), +] + +builddependencies = [('CMake', '3.1.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb new file mode 100644 index 0000000000..069f899a71 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.4' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb new file mode 100644 index 0000000000..c26a1ac08a --- /dev/null +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'glproto' +version = '1.4.17' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb new file mode 100644 index 0000000000..5938576aa7 --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'gperf' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/gperf/' +description = """GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash + function and hash table, in form of C or C++ code, for looking up a value depending on the input string. The hash + function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single + string comparison only.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/gperf'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb new file mode 100644 index 0000000000..323816dd0b --- /dev/null +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'inputproto' +version = '2.3.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org InputProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb new file mode 100644 index 0000000000..3a33382528 --- /dev/null +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb new file mode 100644 index 0000000000..29d6a6987a --- /dev/null +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb new file mode 100644 index 0000000000..6139d93743 --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'LLVM' +version = '3.6.2' +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +homepage = "http://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'cstd': 'gnu++11'} + +source_urls = ["http://llvm.org/releases/%(version)s"] +sources = ["llvm-%(version)s.src.tar.xz"] + +builddependencies = [ + ('CMake', '3.2.3'), + (python, pyver), +] + +configopts = '-DBUILD_SHARED_LIBS=ON ' + +sanity_check_paths = { + 'files': ['bin/llvm-ar'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +separate_build_dir = True + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb new file mode 100644 index 0000000000..060a6e35d0 --- /dev/null +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' +versionsuffix = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', versionsuffix), + ('inputproto', '2.3.1'), + ('xproto', '7.0.27'), + ('kbproto', '1.0.6'), +] + +dependencies = [ + ('libxcb', '1.11', versionsuffix), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb new file mode 100644 index 0000000000..5a623c350f --- /dev/null +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('xproto', '7.0.27'), +] + +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb new file mode 100644 index 0000000000..420c8c2f42 --- /dev/null +++ b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' +pyver = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.3', pyver), + ('libxcb', '1.11', pyver), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.so', 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb new file mode 100644 index 0000000000..a7153188df --- /dev/null +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.27'), +] +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb new file mode 100644 index 0000000000..b08a10bd51 --- /dev/null +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.27'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3', '-Python-2.7.9'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb new file mode 100644 index 0000000000..50734ffc1f --- /dev/null +++ b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb new file mode 100644 index 0000000000..58e597f6b8 --- /dev/null +++ b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libXfont' +version = '1.5.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X font libary""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fontsproto', '2.1.3'), + ('xproto', '7.0.27'), + ('xtrans', '1.3.5'), + ('libfontenc', '1.1.3'), +] +dependencies = [ + ('libX11', '1.6.3', '-Python-2.7.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXfont.so', 'lib/libXfont.a'], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..ab04e0520c --- /dev/null +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.6'), + ('renderproto', '0.11'), +] + +libx11ver = '1.6.3' +versionsuffix = '-libX11-%s' % libx11ver + +dependencies = [ + ('libX11', libx11ver, '-Python-2.7.9'), + ('libXrender', '0.9.9'), + ('freetype', '2.5.5'), + ('fontconfig', '2.11.93'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb new file mode 100644 index 0000000000..39b2ff6653 --- /dev/null +++ b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libXpm' +version = '3.5.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXp provides the X print library.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [('gettext', '0.19.4', '', ('GCC', '4.9.2'))] + +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['libXpm.a', 'libXpm.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb new file mode 100644 index 0000000000..06b460f5f2 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3', '-Python-2.7.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb new file mode 100644 index 0000000000..8d7f8591ba --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libdrm' +version = '2.4.59' + +homepage = 'http://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +source_urls = ['http://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +dependencies = [ + ('libpthread-stubs', '0.3'), + ('libpciaccess', '0.13.1'), +] + +sanity_check_paths = { + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, + 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], + 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb new file mode 100644 index 0000000000..d93ab58f1d --- /dev/null +++ b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.27'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb new file mode 100644 index 0000000000..eeafddf420 --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.13.1' + +homepage = 'http://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +source_urls = ['http://cgit.freedesktop.org/xorg/lib/libpciaccess/snapshot'] +sources = [SOURCE_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +builddependencies = [ + ('Autotools', '20150119', '', ('GCC', '4.9.2')), + ('xorg-macros', '1.17'), +] + +preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb new file mode 100644 index 0000000000..d9a7ed9527 --- /dev/null +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.16' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +configopts = "--with-pic" + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb new file mode 100644 index 0000000000..afc1225690 --- /dev/null +++ b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpthread-stubs' +version = '0.3' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +sanity_check_paths = { + 'files': ['lib/pkgconfig/pthread-stubs.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb new file mode 100644 index 0000000000..4219e58cfd --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.5' + +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': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.17')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb new file mode 100644 index 0000000000..4279354d1f --- /dev/null +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('xcb-proto', '1.11', versionsuffix), + ('libXau', '1.0.8'), + ('libpthread-stubs', '0.3'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", + "-randr", "-record", "-render", "-res", "-screensaver", + "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", + "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb new file mode 100644 index 0000000000..e000b25261 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic' + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb new file mode 100644 index 0000000000..712aaf2f8b --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb @@ -0,0 +1,75 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '10.4.5' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = ['%(name)sLib-%(version)s.tar.gz'] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +patches = ['Mesa-%(version)s_sse4_1.patch'] + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), + ('Automake', '1.15'), + ('makedepend', '1.0.5'), + ('kbproto', '1.0.6'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.27'), + ('libtool', '2.4.5'), + ('pkg-config', '0.28'), + ('glproto', '1.4.17'), + ('M4', '1.4.17') +] + +dependencies = [ + ('Python', pythonver), + ('libxml2', '2.9.2', versionsuffix), + ('libdrm', '2.4.59'), + ('libX11', '1.6.3', versionsuffix), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.6.2', versionsuffix), + ('eudev', '3.0'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --disable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +configopts += " --disable-driglx-direct --with-gallium-drivers='' --disable-egl""" + +# package-config files for os dependencies are in an os specific place +#preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' + +prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GL/wmesa.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb new file mode 100644 index 0000000000..1158bd68be --- /dev/null +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.5' + +homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb new file mode 100644 index 0000000000..f16049293d --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb new file mode 100644 index 0000000000..dabda6ed92 --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.36' + +homepage = 'http://www.pcre.org/' +description = """The PCRE library is a set of functions that implement regular expression pattern matching using + the same syntax and semantics as Perl 5.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp" + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb new file mode 100644 index 0000000000..1d8106ab4e --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb @@ -0,0 +1,117 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb new file mode 100644 index 0000000000..9a712cb3b4 --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.28' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb new file mode 100644 index 0000000000..face3c9641 --- /dev/null +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb @@ -0,0 +1,57 @@ +name = 'ROOT' +version = 'v5.34.26' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-v5_recent-ifort.patch', + 'ROOT-v5.34.26_libX.patch', +] + +python = 'Python' +pyver = '2.7.9' + +dependencies = [ + ('GSL', '1.16'), + ('Mesa', '10.4.5', '-%s-%s' % (python, pyver)), + ('libxml2', '2.9.2', '-%s-%s' % (python, pyver)), + ('PCRE', '8.36'), + ('CFITSIO', '3.37'), + ('freetype', '2.5.5'), + (python, pyver), + ('zlib', '1.2.8'), + ('libXft', '2.3.2', '-libX11-1.6.3'), + ('libXpm', '3.5.11'), + ('libXext', '1.3.3'), +] + +# use external ZLIB +preconfigopts = 'ZLIB=$EBROOTZLIB ' + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xrootd --disable-mysql --disable-krb5 --disable-odbc ' +configopts += ' --disable-oracle --disable-pgsql --disable-qt --disable-sqlite' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$MKLROOT/mkl/include/fftw --with-fftw3-libdir=$MKLROOT/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' +configopts += ' --with-cfitsio-incdir=$EBROOTCFITSIO/include --with-cfitsio-libdir=$EBROOTCFITSIO/lib' +configopts += ' --with-opengl-incdir=$EBROOTMESA/include --with-opengl-libdir=$EBROOTMESA/lib' +configopts += ' --with-x11-libdir=$EBROOTLIBX11/lib --with-xext-libdir=$EBROOTLIBXEXT/lib' +configopts += ' --with-xft-libdir=$EBROOTLIBXFT/lib' +configopts += ' --with-xpm-incdir=$EBROOTLIBXPM/include --with-xpm-libdir=$EBROOTLIBXPM/lib' + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb new file mode 100644 index 0000000000..37b516e535 --- /dev/null +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'renderproto' +version = '0.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrender protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb new file mode 100644 index 0000000000..4421de3277 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2016a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb new file mode 100644 index 0000000000..e368b2b5ef --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb new file mode 100644 index 0000000000..c673514d37 --- /dev/null +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb new file mode 100644 index 0000000000..7cbfd9e916 --- /dev/null +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-proto' +version = '1.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) +dependencies = [(python, pyver)] + +pyshortver = '.'.join(pyver.split('.')[0:2]) + +sanity_check_paths = { + 'files': ['lib/pkgconfig/xcb-proto.pc'], + 'dirs': ['lib/python%s/site-packages/xcbgen' % pyshortver] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb new file mode 100644 index 0000000000..dcc6160700 --- /dev/null +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb new file mode 100644 index 0000000000..f26da7ae49 --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.17' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +dependencies = [('Autotools', '20150119', '', ('GCC', '4.9.2'))] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb new file mode 100644 index 0000000000..2f1b41c474 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.27' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb new file mode 100644 index 0000000000..8366af681c --- /dev/null +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', + 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', + 'Xtranstli.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From bbe3efb4a29bb9a1b15636cff2b4cbc516792d96 Mon Sep 17 00:00:00 2001 From: Ewan Higgs Date: Thu, 18 Feb 2016 15:25:27 +0100 Subject: [PATCH 108/732] Add GATE-6.2 support for intel-2016a. --- .../c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb | 20 +++++ .../c/CMake/CMake-2.8.4-intel-2016a.eb | 22 +++++ .../g/GATE/GATE-6.2-intel-2016a.eb | 26 ++++++ .../easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb | 18 ++++ .../g/Geant4/Geant4-9.5.p01-intel-2016a.eb | 24 +++++ .../libreadline-6.2-intel-2016a.eb | 30 +++++++ .../libxml2-2.8.0-intel-2016a-Python-2.7.3.eb | 33 +++++++ .../p/Python/Python-2.7.3-intel-2016a.eb | 89 +++++++++++++++++++ .../r/ROOT/ROOT-v5.34.01-intel-2016a.eb | 39 ++++++++ 9 files changed, 301 insertions(+) create mode 100644 easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb new file mode 100644 index 0000000000..ceed3e9cd3 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'CLHEP' +version = '2.1.1.0' + +homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' +description = """The CLHEP project is intended to be a set of HEP-specific foundation and + utility classes such as random generators, physics vectors, geometry and linear algebra. + CLHEP is structured in a set of packages independent of any external package.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TGZ] +source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] + +# CLHEP compiles with icc instead of icpc +configopts = 'CXX="$CC" CXXFLAGS="$CXXFLAGS -gcc"' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb new file mode 100644 index 0000000000..62574e2454 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '2.8.4' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb new file mode 100644 index 0000000000..502c8f56f7 --- /dev/null +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb @@ -0,0 +1,26 @@ +name = 'GATE' +version = '6.2' + +homepage = 'http://www.opengatecollaboration.org/' +description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and + dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [('%%(namelower)s_v%s_tar_gz_15843.gz' % '_'.join(version.split('.')), "tar xfvz %s")] +source_urls = ['http://www.opengatecollaboration.org/sites/opengatecollaboration.org/files/gate_release/2012/08/'] + +patches = [ + 'GATE-%(version)s_Makefile-prefix.patch', + 'GATE-%(version)s_GCC-4.7.patch', +] + +dependencies = [ + ('Geant4', '9.5.p01'), + ('CLHEP', '2.1.1.0'), + ('ROOT', 'v5.34.01'), +] +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb new file mode 100644 index 0000000000..714d2f9de8 --- /dev/null +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '1.15' + +homepage = 'http://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb new file mode 100644 index 0000000000..5b065cc9f0 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb @@ -0,0 +1,24 @@ +name = 'Geant4' +version = '9.5.p01' + +homepage = 'http://geant4.cern.ch/' +description = """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.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb new file mode 100644 index 0000000000..3d2c4263e5 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.2' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb new file mode 100644 index 0000000000..d4cc4b5eb1 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb new file mode 100644 index 0000000000..96ff3e825b --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb new file mode 100644 index 0000000000..a76d8e6f3c --- /dev/null +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb @@ -0,0 +1,39 @@ +name = 'ROOT' +version = 'v5.34.01' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = ['%s_%s.source.tar.gz' % (name.lower(), version)] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-%(version)s_recent-ifort.patch', +] + +python = 'Python' +pyver = '2.7.3' + +dependencies = [ + ('GSL', '1.15'), + ('libxml2', '2.8.0', '-%s-%s' % (python, pyver)), + (python, pyver), +] + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$EBROOTIMKL/mkl/include/fftw --with-fftw3-libdir=$EBROOTIMKL/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' -- GitLab From 8e83769f3ce54088a63c872a8ca6f89bfbabb260 Mon Sep 17 00:00:00 2001 From: Ewan Higgs Date: Thu, 18 Feb 2016 15:40:28 +0100 Subject: [PATCH 109/732] Fix up xcb-proto mis-import. --- .../xcb-proto-1.11-intel-2016a-Python-2.7.9.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/x/xcb-proto/{xcb-proto-1.11-intel-2016a-Python-2.7.9.eb => }/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb (100%) diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb similarity index 100% rename from easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb rename to easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb -- GitLab From 0496a6bd9d329ae1748ca82b211a7a63380dd151 Mon Sep 17 00:00:00 2001 From: iotaka Date: Thu, 18 Feb 2016 17:10:39 +0200 Subject: [PATCH 110/732] add easyconfig Boost-1.59.0-intel-2015b.eb --- .../b/Boost/Boost-1.59.0-intel-2015b.eb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb b/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb new file mode 100644 index 0000000000..7461992321 --- /dev/null +++ b/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb @@ -0,0 +1,21 @@ +name = 'Boost' +version = '1.59.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' -- GitLab From 8ad5823fa146d339ad0d9bd4b5e6f4f3a1eeb7b0 Mon Sep 17 00:00:00 2001 From: iotaka Date: Thu, 18 Feb 2016 17:11:56 +0200 Subject: [PATCH 111/732] add easyconfig OpenFOAM-3.0.0-intel-2015b.eb --- .../o/OpenFOAM/OpenFOAM-3.0.0-intel-2015b.eb | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-3.0.0-intel-2015b.eb diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-3.0.0-intel-2015b.eb b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-3.0.0-intel-2015b.eb new file mode 100644 index 0000000000..eb8704d554 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-3.0.0-intel-2015b.eb @@ -0,0 +1,40 @@ +name = 'OpenFOAM' +version = '3.0.0' + +homepage = 'http://www.openfoam.com/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'cstd': 'c++14'} + +source_urls = ['http://downloads.sourceforge.net/foam/%(version)s'] +sources = [ + SOURCE_TGZ, + 'ThirdParty-%(version)s.tgz', +] + +patches = [ + 'OpenFOAM-%(version)s_cleanup.patch', + 'OpenFOAM-%(version)s_libreadline.patch', + ('ThirdParty-%(version)s_cleanup.patch', ".."), # patch should not be applied in OpenFOAM subdir +] + +dependencies = [ + ('libreadline', '6.3'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0', '-32bitIDX'), + ('ncurses', '5.9'), + ('SCOTCH', '6.0.4'), + ('Boost', '1.59.0'), +] + +builddependencies = [ + ('Bison', '3.0.4'), + ('CMake', '3.3.2'), + ('flex', '2.5.39'), +] + +moduleclass = 'cae' -- GitLab From 29bdfe711f830e92f3442131f7b11f95fe9020d2 Mon Sep 17 00:00:00 2001 From: Benjamin Roberts Date: Fri, 19 Feb 2016 13:51:40 +1300 Subject: [PATCH 112/732] Patch needed for older versions of libspatialite --- .../l/libspatialite/libspatialite-configure.ac.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch b/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch new file mode 100644 index 0000000000..aacff1481f --- /dev/null +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch @@ -0,0 +1,12 @@ +diff -urN libspatialite-4.1.1.orig/configure libspatialite-4.1.1/configure +--- libspatialite-4.1.1.orig/configure 2013-06-29 08:53:15.000000000 +0200 ++++ libspatialite-4.1.1/configure 2014-04-02 11:37:56.484423000 +0200 +@@ -263,7 +263,7 @@ + LIBS="$GEOS_LDFLAGS" + AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])) + LIBS="$LIBS_SAVE" +- LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' ++ LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" + + #----------------------------------------------------------------------- + # --enable-geosadvanced -- GitLab From b49f76d9db0d68b541194ce6cc77a92667c6027a Mon Sep 17 00:00:00 2001 From: Benjamin Roberts Date: Fri, 19 Feb 2016 15:27:04 +1300 Subject: [PATCH 113/732] Deleted libspatialite-4.1.1 and associated files --- .../libspatialite-4.1.1-goolf-1.5.14.eb | 27 ------------------- .../libspatialite-configure.ac.patch | 12 --------- 2 files changed, 39 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb delete mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb deleted file mode 100644 index 8132d40673..0000000000 --- a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb +++ /dev/null @@ -1,27 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libspatialite' -version = '4.1.1' - -homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" -description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." - -toolchain = {'name': 'goolf', 'version': '1.5.14'} -toolchainopts = {'usempi': False, 'pic': True} - -download_suffix = '' -source_urls = ['http://www.gaia-gis.it/gaia-sins/'] -sources = [SOURCE_TAR_GZ] - -patches = ['libspatialite-configure.ac.patch'] - -dependencies = [('FreeXL','1.0.0g'),('GEOS','3.3.5'), ('SQLite', '3.8.4.3'), ('PROJ', '4.8.0')] -configopts = '--disable-geosadvanced' -builddependencies = [('CMake', '2.8.10.2')] - -sanity_check_paths = { - 'files': ["lib/libspatialite.la"], - 'dirs': ["lib","include"] - } - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch b/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch deleted file mode 100644 index aacff1481f..0000000000 --- a/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN libspatialite-4.1.1.orig/configure libspatialite-4.1.1/configure ---- libspatialite-4.1.1.orig/configure 2013-06-29 08:53:15.000000000 +0200 -+++ libspatialite-4.1.1/configure 2014-04-02 11:37:56.484423000 +0200 -@@ -263,7 +263,7 @@ - LIBS="$GEOS_LDFLAGS" - AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])) - LIBS="$LIBS_SAVE" -- LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' -+ LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" - - #----------------------------------------------------------------------- - # --enable-geosadvanced -- GitLab From d447397f4f05bb119f8f6068323e7a5ec3e83e68 Mon Sep 17 00:00:00 2001 From: Benjamin Roberts Date: Fri, 19 Feb 2016 15:44:45 +1300 Subject: [PATCH 114/732] Older version of libspatialite, reinstated --- .../libspatialite-4.1.1-goolf-1.5.14.eb | 27 +++++++++++++++++++ .../libspatialite-configure.ac.patch | 12 +++++++++ 2 files changed, 39 insertions(+) create mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb create mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb new file mode 100644 index 0000000000..8132d40673 --- /dev/null +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libspatialite' +version = '4.1.1' + +homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" +description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'usempi': False, 'pic': True} + +download_suffix = '' +source_urls = ['http://www.gaia-gis.it/gaia-sins/'] +sources = [SOURCE_TAR_GZ] + +patches = ['libspatialite-configure.ac.patch'] + +dependencies = [('FreeXL','1.0.0g'),('GEOS','3.3.5'), ('SQLite', '3.8.4.3'), ('PROJ', '4.8.0')] +configopts = '--disable-geosadvanced' +builddependencies = [('CMake', '2.8.10.2')] + +sanity_check_paths = { + 'files': ["lib/libspatialite.la"], + 'dirs': ["lib","include"] + } + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch b/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch new file mode 100644 index 0000000000..aacff1481f --- /dev/null +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch @@ -0,0 +1,12 @@ +diff -urN libspatialite-4.1.1.orig/configure libspatialite-4.1.1/configure +--- libspatialite-4.1.1.orig/configure 2013-06-29 08:53:15.000000000 +0200 ++++ libspatialite-4.1.1/configure 2014-04-02 11:37:56.484423000 +0200 +@@ -263,7 +263,7 @@ + LIBS="$GEOS_LDFLAGS" + AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])) + LIBS="$LIBS_SAVE" +- LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' ++ LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" + + #----------------------------------------------------------------------- + # --enable-geosadvanced -- GitLab From 21d05c9574074a7c3dd736dd87e3754f98036012 Mon Sep 17 00:00:00 2001 From: iotaka Date: Fri, 19 Feb 2016 09:56:21 +0200 Subject: [PATCH 115/732] modify easyconfig Boost-1.59.0-intel-2015b.eb --- easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb b/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb index 7461992321..61f63ebb4e 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.59.0-intel-2015b.eb @@ -4,6 +4,7 @@ version = '1.59.0' homepage = 'http://www.boost.org/' description = """Boost provides free peer-reviewed portable C++ source libraries.""" +configopts = '--without-libraries=python' toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'pic': True, 'usempi': True} -- GitLab From ed00667eab043229c937957918f0e8e42a500506 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 19 Feb 2016 10:47:00 +0000 Subject: [PATCH 116/732] Add missing easybuild for BH, required by R-synchronicity --- .../b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb diff --git a/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb b/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb new file mode 100644 index 0000000000..b605c4cd2e --- /dev/null +++ b/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb @@ -0,0 +1,32 @@ + +easyblock = 'RPackage' + +name = 'BH' +version = '1.60.0-1' + +homepage = 'http://cran.r-project.org/web/packages/%(name)s' +description = """BH: Boost C++ Header Files for R""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [ + 'http://cran.r-project.org/src/contrib/', + 'http://cran.r-project.org/src/contrib/Archive/$(name)s/', +] +sources = ['%(name)s_%(version)s.tar.gz'] + +r = 'R' +rver = '3.2.3' +versionsuffix = '-%s-%s' % (r, rver) + +dependencies = [ + (r, rver), + ('Boost', '1.58.0', '-Python-2.7.10'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['BH'], +} + +moduleclass = 'lang' -- GitLab From aa545b351e213e22c78fe1f2d561f972aaa4b37c Mon Sep 17 00:00:00 2001 From: Ewan Higgs Date: Fri, 19 Feb 2016 11:53:13 +0100 Subject: [PATCH 117/732] Roll ncurses forward to 6.0. --- easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb | 2 +- easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb | 2 +- easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb | 2 +- easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb | 2 +- easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb index 62574e2454..6e790f2a9a 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] sources = [SOURCELOWER_TAR_GZ] -dependencies = [('ncurses', '5.9')] +dependencies = [('ncurses', '6.0')] sanity_check_paths = { 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb index 45251dfaf6..afe0d69bd0 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] sources = [SOURCELOWER_TAR_GZ] -dependencies = [('ncurses', '5.9')] +dependencies = [('ncurses', '6.0')] sanity_check_paths = { 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb index 34313f0a0f..bf57c1d381 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb @@ -15,7 +15,7 @@ sources = [SOURCELOWER_TAR_GZ] configopts = '-- -DCMAKE_USE_OPENSSL=1' dependencies = [ - ('ncurses', '5.9'), + ('ncurses', '6.0'), # OS dependency should be preferred if the os version is more recent then this version, # it's nice to have an up to date openssl for security reasons #('OpenSSL', '1.0.1k'), diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb index 3d2c4263e5..3c775612ac 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb @@ -15,7 +15,7 @@ toolchainopts = {'pic': True} sources = ['readline-%(version)s.tar.gz'] source_urls = ['http://ftp.gnu.org/gnu/readline'] -dependencies = [('ncurses', '5.9')] +dependencies = [('ncurses', '6.0')] # for the termcap symbols, use EB ncurses preconfigopts = "LDFLAGS='-lncurses'" diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb index 96ff3e825b..2d8bea6dd7 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb @@ -18,7 +18,7 @@ dependencies = [ ('bzip2', '1.0.6'), ('zlib', '1.2.8'), ('libreadline', '6.2'), - ('ncurses', '5.9'), + ('ncurses', '6.0'), # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons ] diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb index 1d8106ab4e..37aa3417d0 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb @@ -18,7 +18,7 @@ dependencies = [ ('bzip2', '1.0.6'), ('zlib', '1.2.8'), ('libreadline', '6.3'), - ('ncurses', '5.9'), + ('ncurses', '6.0'), ('SQLite', '3.8.8.1'), ('Tk', '8.6.3', '-no-X11'), # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -- GitLab From 987fd3082e4a43c9c8cf69201529407b05c4095e Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 19 Feb 2016 10:57:10 +0000 Subject: [PATCH 118/732] Add authorship comments --- easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb b/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb index b605c4cd2e..314d4d2d26 100644 --- a/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb +++ b/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb @@ -1,3 +1,7 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Adam Huffman +# The Francis Crick Institute easyblock = 'RPackage' -- GitLab From 428ae828445f94eb093f89b33a88475efbb0416b Mon Sep 17 00:00:00 2001 From: Danilo Guerrera Date: Fri, 19 Feb 2016 17:12:47 +0100 Subject: [PATCH 119/732] fix: added M4 as builddependency --- .../easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb | 1 + easybuild/easyconfigs/b/binutils/binutils-2.25.eb | 1 + easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb | 5 ++++- easybuild/easyconfigs/f/flex/flex-2.5.39.eb | 4 +++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb index 5fcc8fc6b3..8efdae380a 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb @@ -12,6 +12,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [GNU_SOURCE] builddependencies = [ + ('M4', '1.4.17'), ('flex', '2.5.39'), ('Bison', '3.0.4'), # zlib required, but being linked instatically, so not a runtime dep diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25.eb index 3a95cee4b6..246106ec92 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25.eb @@ -12,6 +12,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [GNU_SOURCE] builddependencies = [ + ('M4', '1.4.17'), ('flex', '2.5.39'), ('Bison', '3.0.4'), # zlib required, but being linked instatically, so not a runtime dep diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb index bd9f2b71e7..ce96075acd 100644 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb @@ -11,6 +11,9 @@ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] # use same binutils version that was used when building GCCcore toolchain -builddependencies = [('binutils', '2.25', '', True)] +builddependencies = [ + ('M4', '1.4.17'), + ('binutils', '2.25', '', True) +] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39.eb index 53eb8f6c78..e4d83f163c 100644 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39.eb +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39.eb @@ -5,10 +5,12 @@ homepage = 'http://flex.sourceforge.net/' description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} toolchainopts = {'pic': True} sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] +builddependencies = [('M4', '1.4.17')] + moduleclass = 'lang' -- GitLab From 1de66628f9550887de03b5ce3a5cffbb69e3846e Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 19 Feb 2016 22:41:42 +0000 Subject: [PATCH 120/732] Remove R- prefix from filename --- .../synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/r/{R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb => R/synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb} (100%) diff --git a/easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb b/easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb similarity index 100% rename from easybuild/easyconfigs/r/R-synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb rename to easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb -- GitLab From 68f3c25bdbf0c97c7084e96413b145abf6917536 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 19 Feb 2016 23:04:49 +0000 Subject: [PATCH 121/732] Fix typo in renamed file --- ...15b-R.3.2.3.eb => synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/r/R/{synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb => synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb} (100%) diff --git a/easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb b/easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb similarity index 100% rename from easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R.3.2.3.eb rename to easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb -- GitLab From b337156069c68689680c8c0230fe2738e2d23d40 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 20 Feb 2016 08:59:27 +0000 Subject: [PATCH 122/732] At last move synchronicity to the correct location --- .../synchronicity}/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/{r/R => s/synchronicity}/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb (100%) diff --git a/easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb b/easybuild/easyconfigs/s/synchronicity/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb similarity index 100% rename from easybuild/easyconfigs/r/R/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb rename to easybuild/easyconfigs/s/synchronicity/synchronicity-1.1.9.1-foss-2015b-R-3.2.3.eb -- GitLab From 395bc0f0bf229ffb5587c331d3aa82faa90d9bd0 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 20 Feb 2016 17:50:03 +0100 Subject: [PATCH 123/732] sync OCaml 4.01.0 ictce/5.5.0 easyconfig wrt deps & extensions --- .../a/Automake/Automake-1.15-ictce-5.5.0.eb | 33 +++++++++++++++++++ .../Autotools-20150215-ictce-5.5.0.eb | 17 ++++++++++ .../libreadline-6.3-ictce-5.5.0.eb | 32 ++++++++++++++++++ .../l/libtool/libtool-2.4.6-ictce-5.5.0.eb | 17 ++++++++++ .../o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 16 +++++++-- 5 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/a/Automake/Automake-1.15-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20150215-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb create mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.15-ictce-5.5.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.15-ictce-5.5.0.eb new file mode 100644 index 0000000000..25677b6f64 --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.15-ictce-5.5.0.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'Automake' +version = "1.15" + +homepage = 'http://www.gnu.org/software/automake/automake.html' +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('Autoconf', '2.69')] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20150215-ictce-5.5.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-ictce-5.5.0.eb new file mode 100644 index 0000000000..72e186977d --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-ictce-5.5.0.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb new file mode 100644 index 0000000000..128a4b2314 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """ The GNU Readline library provides a set of functions for use + by applications that allow users to edit command lines as they are typed + in. Both Emacs and vi editing modes are available. The Readline library + includes additional functions to maintain a list of previously-entered + command lines, to recall and perhaps reedit those lines, and perform + csh-like history expansion on previous commands.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb new file mode 100644 index 0000000000..1a6a78bca6 --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.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': 'ictce', 'version': '5.5.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.17')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 51e6fb3d9d..8fc41ecd35 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -30,10 +30,22 @@ sources = [ patches = ['OCaml-%(version)s_icc-fixes.patch'] -builddependencies = [('Autoconf', '2.69')] -dependencies = [('ncurses', '5.9')] +builddependencies = [('Autotools', '20150215')] +dependencies = [ + ('ncurses', '5.9'), + ('libreadline', '6.3'), + ('GSL', '1.16'), +] # parallel build tends to break parallel = 1 +# handled by OPAM, order matters! +exts_list = [ + ('ocamlfind', '1.5.5'), + ('batteries', '2.3.1'), + ('ocaml+twt', '0.94.0'), + ('gsl', '1.18.5'), +] + moduleclass = 'lang' -- GitLab From 56fde423f5ec58a7f19990c3fe5b2901705785d4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 20 Feb 2016 18:02:30 +0100 Subject: [PATCH 124/732] fix M4 version --- easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb index 1a6a78bca6..cbd60cd24a 100644 --- a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-ictce-5.5.0.eb @@ -12,6 +12,6 @@ toolchain = {'name': 'ictce', 'version': '5.5.0'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -dependencies = [('M4', '1.4.17')] +dependencies = [('M4', '1.4.16')] moduleclass = 'lib' -- GitLab From 1ee5deb5089f1cdcd20e75d341de349d88e86aa4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 21 Feb 2016 15:04:32 +0100 Subject: [PATCH 125/732] sync SQLite/Tcl easyconfigs --- easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb | 4 ++-- .../{Tcl-8.6.1-ictce-5.5.0.eb => Tcl-8.6.2-ictce-5.5.0.eb} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename easybuild/easyconfigs/t/Tcl/{Tcl-8.6.1-ictce-5.5.0.eb => Tcl-8.6.2-ictce-5.5.0.eb} (93%) diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb index 68d585b3df..d2bc173ef8 100644 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb @@ -25,8 +25,8 @@ source_urls = ['http://www.sqlite.org/2014/'] sources = ['sqlite-autoconf-%s0%s0%s00.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename dependencies = [ - ('libreadline', '6.2'), - ('Tcl', '8.6.1'), + ('libreadline', '6.3'), + ('Tcl', '8.6.2'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb similarity index 93% rename from easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb rename to easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb index 335678c031..7f2d451b76 100644 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.1-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb @@ -1,7 +1,7 @@ easyblock = 'ConfigureMake' name = 'Tcl' -version = '8.6.1' +version = '8.6.2' homepage = 'http://www.tcl.tk/' description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, @@ -13,7 +13,7 @@ source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ - ('zlib', '1.2.7'), + ('zlib', '1.2.8'), ] configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' -- GitLab From 564274eb22871497463c2e50a55a5e913d455989 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 21 Feb 2016 15:25:45 +0100 Subject: [PATCH 126/732] remove custom libreadline/Tcl/SQLite easyconfigs --- .../libreadline-6.3-ictce-5.5.0.eb | 32 ---------------- .../s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb | 37 ------------------- .../t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb | 25 ------------- 3 files changed, 94 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb delete mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb deleted file mode 100644 index 128a4b2314..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-5.5.0.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.3' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """ The GNU Readline library provides a set of functions for use - by applications that allow users to edit command lines as they are typed - in. Both Emacs and vi editing modes are available. The Readline library - includes additional functions to maintain a list of previously-entered - command lines, to recall and perhaps reedit those lines, and perform - csh-like history expansion on previous commands.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '5.9')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs': [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb deleted file mode 100644 index d2bc173ef8..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.6-ictce-5.5.0.eb +++ /dev/null @@ -1,37 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -easyblock = 'ConfigureMake' - -name = 'SQLite' -version = '3.8.6' - -homepage = 'http://www.sqlite.org/' -description = "SQLite: SQL Database Engine in a C Library" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz -source_urls = ['http://www.sqlite.org/2014/'] -sources = ['sqlite-autoconf-%s0%s0%s00.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename - -dependencies = [ - ('libreadline', '6.3'), - ('Tcl', '8.6.2'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb deleted file mode 100644 index 7f2d451b76..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb +++ /dev/null @@ -1,25 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Tcl' -version = '8.6.2' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'ictce', 'version': '5.5.0'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -dependencies = [ - ('zlib', '1.2.8'), -] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' -- GitLab From b825580bdccf60588f5150a60eab1fbb50d3ef1d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 21 Feb 2016 15:56:35 +0100 Subject: [PATCH 127/732] stick to libreadline 6.2 --- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 8fc41ecd35..52574ce4b0 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -33,7 +33,7 @@ patches = ['OCaml-%(version)s_icc-fixes.patch'] builddependencies = [('Autotools', '20150215')] dependencies = [ ('ncurses', '5.9'), - ('libreadline', '6.3'), + ('libreadline', '6.2'), ('GSL', '1.16'), ] -- GitLab From bb8088a795a3739822b1baa6ea5dcbbaefb7d577 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 21 Feb 2016 17:21:29 +0100 Subject: [PATCH 128/732] sync up OCaml 4.01.0 easyconfigs --- .../o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb | 21 ++++++++++++++----- .../o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 3 +-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb index 5c4386e5cf..8afea955fc 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb @@ -17,21 +17,32 @@ description = """OCaml is a general purpose industrial-strength programming lang toolchain = {'name': 'goolf', 'version': '1.4.10'} -ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[:-1]) opam_ver = '1.2.2' source_urls = [ - 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, + 'http://caml.inria.fr/pub/distrib/ocaml-%(version_major_minor)s', 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ - SOURCELOWER_TAR_GZ, + 'ocaml-%(version)s.tar.gz', 'opam-full-%s.tar.gz' % opam_ver, ] -builddependencies = [('Autoconf', '2.69')] -dependencies = [('ncurses', '5.9')] +builddependencies = [('Autotools', '20150215', '', ('GCC', '4.7.2'))] +dependencies = [ + ('ncurses', '5.9'), + ('libreadline', '6.3'), + ('GSL', '1.16'), +] # parallel build tends to break parallel = 1 +# handled by OPAM, order matters! +exts_list = [ + ('ocamlfind', '1.5.5'), + ('batteries', '2.3.1'), + ('ocaml+twt', '0.94.0'), + ('gsl', '1.18.5'), +] + moduleclass = 'lang' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 52574ce4b0..3fb3f65385 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -17,10 +17,9 @@ description = """OCaml is a general purpose industrial-strength programming lang toolchain = {'name': 'ictce', 'version': '5.5.0'} -ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) opam_ver = '1.2.2' source_urls = [ - 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, + 'http://caml.inria.fr/pub/distrib/ocaml-%(version_major_minor)s', 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ -- GitLab From 71836c97bf340d96f338f8d4cad9ec9b3b728c37 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 21 Feb 2016 17:29:36 +0100 Subject: [PATCH 129/732] fix source URLs for OCaml --- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 2 +- easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb index 8afea955fc..810207a42e 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb @@ -19,7 +19,7 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} opam_ver = '1.2.2' source_urls = [ - 'http://caml.inria.fr/pub/distrib/ocaml-%(version_major_minor)s', + 'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]), 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 3fb3f65385..144def4311 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -19,7 +19,7 @@ toolchain = {'name': 'ictce', 'version': '5.5.0'} opam_ver = '1.2.2' source_urls = [ - 'http://caml.inria.fr/pub/distrib/ocaml-%(version_major_minor)s', + 'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]), 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb index ed1f201357..12dba48bf0 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb @@ -17,10 +17,9 @@ description = """OCaml is a general purpose industrial-strength programming lang toolchain = {'name': 'foss', 'version': '2015a'} -ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1]) opam_ver = '1.2.2' source_urls = [ - 'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir, + 'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]), 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ -- GitLab From 7536aa23df9188929e6781e55a05a5988bb943a6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 21 Feb 2016 18:57:05 +0100 Subject: [PATCH 130/732] add comment in patch file --- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch index 1d8950ff29..3b6ab1f097 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch @@ -1,3 +1,5 @@ +fix for Fatal error: exception Invalid_argument("gettimeofday not implemented") +author: Kenneth Hoste (HPC-UGent) --- configure.orig 2015-10-06 10:19:12.763826416 +0200 +++ configure 2015-10-06 10:19:56.005026703 +0200 @@ -1015,7 +1015,7 @@ -- GitLab From 78b5df7b4437faf94ba8ea6b484e097973e27154 Mon Sep 17 00:00:00 2001 From: Benjamin Roberts Date: Mon, 22 Feb 2016 12:49:20 +1300 Subject: [PATCH 131/732] Removed older version of libspatialite --- .../libspatialite-4.1.1-goolf-1.5.14.eb | 27 ------------------- .../libspatialite-configure.ac.patch | 12 --------- 2 files changed, 39 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb delete mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb deleted file mode 100644 index 8132d40673..0000000000 --- a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.1.1-goolf-1.5.14.eb +++ /dev/null @@ -1,27 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libspatialite' -version = '4.1.1' - -homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" -description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." - -toolchain = {'name': 'goolf', 'version': '1.5.14'} -toolchainopts = {'usempi': False, 'pic': True} - -download_suffix = '' -source_urls = ['http://www.gaia-gis.it/gaia-sins/'] -sources = [SOURCE_TAR_GZ] - -patches = ['libspatialite-configure.ac.patch'] - -dependencies = [('FreeXL','1.0.0g'),('GEOS','3.3.5'), ('SQLite', '3.8.4.3'), ('PROJ', '4.8.0')] -configopts = '--disable-geosadvanced' -builddependencies = [('CMake', '2.8.10.2')] - -sanity_check_paths = { - 'files': ["lib/libspatialite.la"], - 'dirs': ["lib","include"] - } - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch b/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch deleted file mode 100644 index aacff1481f..0000000000 --- a/easybuild/easyconfigs/l/libspatialite/libspatialite-configure.ac.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN libspatialite-4.1.1.orig/configure libspatialite-4.1.1/configure ---- libspatialite-4.1.1.orig/configure 2013-06-29 08:53:15.000000000 +0200 -+++ libspatialite-4.1.1/configure 2014-04-02 11:37:56.484423000 +0200 -@@ -263,7 +263,7 @@ - LIBS="$GEOS_LDFLAGS" - AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])) - LIBS="$LIBS_SAVE" -- LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c' -+ LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" - - #----------------------------------------------------------------------- - # --enable-geosadvanced -- GitLab From 9f4b14efcfb9f49ad9a019c7221341b2cb879bd9 Mon Sep 17 00:00:00 2001 From: Benjamin Roberts Date: Mon, 22 Feb 2016 12:52:30 +1300 Subject: [PATCH 132/732] Removed ec for libspatialite 4.3.0 with the Intel compiler suite --- .../libspatialite-4.3.0-intel-2015a.eb | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb deleted file mode 100644 index 732c224f99..0000000000 --- a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0-intel-2015a.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libspatialite' -version = '4.3.0' - -homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" -description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." - -toolchain = {'name': 'intel', 'version': '2015a'} -toolchainopts = {'usempi': False, 'pic': True} - -download_suffix = '' -source_urls = ['http://www.gaia-gis.it/gaia-sins/'] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('FreeXL','1.0.1'), - ('GEOS','3.3.9'), - ('SQLite', '3.8.9'), - ('PROJ', '4.9.1'), -] - -configopts = '--disable-geosadvanced' - -builddependencies = [('CMake', '3.2.2')] - -sanity_check_paths = { - 'files': ["lib/libspatialite.la"], - 'dirs': ["lib","include"] - } - -moduleclass = 'lib' -- GitLab From bed52ee87acb7282f5e577ca7107cd77a4570a3a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Feb 2016 12:05:26 +0100 Subject: [PATCH 133/732] fix minor style issues in libspatialite easyconfig --- .../libspatialite-4.3.0a-foss-2015a.eb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb index 0c50d9148b..9c107ea9d9 100644 --- a/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb +++ b/easybuild/easyconfigs/l/libspatialite/libspatialite-4.3.0a-foss-2015a.eb @@ -4,12 +4,12 @@ name = 'libspatialite' version = '4.3.0a' homepage = "https://www.gaia-gis.it/fossil/libspatialite/home" -description = "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities." +description = """SpatiaLite is an open source library intended to extend the SQLite core to support + fully fledged Spatial SQL capabilities.""" toolchain = {'name': 'foss', 'version': '2015a'} toolchainopts = {'usempi': False, 'pic': True} -download_suffix = '' source_urls = ['http://www.gaia-gis.it/gaia-sins/'] sources = [SOURCE_TAR_GZ] @@ -20,13 +20,13 @@ dependencies = [ ('PROJ', '4.9.1'), ] -configopts = '--disable-geosadvanced' - builddependencies = [('CMake', '3.4.1')] +configopts = '--disable-geosadvanced' + sanity_check_paths = { - 'files': ["lib/libspatialite.la"], - 'dirs': ["lib","include"] - } + 'files': ['include/spatialite.h', 'lib/libspatialite.a', 'lib/libspatialite.%s' % SHLIB_EXT], + 'dirs': ['include/spatialite'], +} moduleclass = 'lib' -- GitLab From 9976756eff680b58611c1c762960589766047b78 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Feb 2016 17:11:27 +0100 Subject: [PATCH 134/732] update list of extensions for R 3.2.1 (req. for ShrinkBayes) --- easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb index 73337ba428..0b60771f8e 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb @@ -395,6 +395,13 @@ exts_list = [ ('Lmoments', '1.1-6', ext_options), ('distillery', '1.0-2', ext_options), ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), ] moduleclass = 'lang' -- GitLab From 287331b8e9c78e397f19d4b6a5f01f5c149eca66 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Feb 2016 20:24:46 +0100 Subject: [PATCH 135/732] fix output of 'pplacer --version' --- .../pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index b23402e2e0..7d55417f25 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -39,6 +39,9 @@ prebuildopts = "rm -rf %(installdir)s && export OPAMROOT=%(installdir)s && opam prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && " prebuildopts += "opam update pplacer-deps && eval `opam config env` && " prebuildopts += "export OCAML_BACKEND=gcc && cat opam-requirements.txt | xargs opam install -y && " +prebuildopts += "echo 'let version = \"v%(version)s\"\n' > common_src/version.ml && " + +# parallel build tends to break parallel = 1 files_to_copy = ['bin'] @@ -48,4 +51,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = [('pplacer', '--version | grep %(version)s')] + moduleclass = 'bio' -- GitLab From 32da2fef77be402b96b2f0ebc7791d8226879634 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 23 Feb 2016 10:03:29 +1030 Subject: [PATCH 136/732] Add picard 1.141 and 2.1.0 with Java 1.8.0_74 --- .../p/picard/picard-1.141-Java-1.8.0_74.eb | 18 +++++++++++++++++ .../p/picard/picard-2.1.0-Java-1.8.0_74.eb | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb create mode 100644 easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb diff --git a/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb b/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb new file mode 100644 index 0000000000..3c1e54038f --- /dev/null +++ b/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb @@ -0,0 +1,18 @@ +name = 'picard' +version = '1.141' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +java = 'Java' +javaver = '1.8.0_74' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb b/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb new file mode 100644 index 0000000000..2c1613a976 --- /dev/null +++ b/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb @@ -0,0 +1,20 @@ +name = 'picard' +version = '2.1.0' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +java = 'Java' +javaver = '1.8.0_74' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = "To execute picard run: java -jar \\${EBROOTPICARD}/%(name)s.jar" + +moduleclass = 'bio' -- GitLab From 79893898874cac6df84108d8faa8f2482bf3b0c8 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 23 Feb 2016 10:04:51 +1030 Subject: [PATCH 137/732] Added NextClip 1.3.1 using foss-2015b --- .../n/NextClip/NextClip-1.3.1-foss-2015b.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb diff --git a/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb b/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb new file mode 100644 index 0000000000..b4ac0527df --- /dev/null +++ b/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb @@ -0,0 +1,24 @@ +easyblock = 'MakeCp' + +name = 'NextClip' +version = '1.3.1' + +homepage = 'https://github.com/richardmleggett/nextclip' +description = """Nextera Long Mate Pair analysis and processing tool.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['https://github.com/richardmleggett/nextclip/archive'] +sources = ['NextClip_v%(version)s.tar.gz'] + +files_to_copy = ['bin', 'examples', 'scripts', 'nextclipmanual.pdf'] + +sanity_check_paths = { + 'files': ["bin/nextclip"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' -- GitLab From ba11c9863958218fa12ec282f9d15ad2e5a29380 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 23 Feb 2016 12:29:59 +1030 Subject: [PATCH 138/732] Made changes according to suggestions by @boegel --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index dfcbaddec1..71dd3c4e06 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -20,13 +20,10 @@ sources = ['%(name)s_%(version)s.tar.gz' ] prebuildopts = 'cd jni && ' -os_type = platform.system() -if os_type == 'Linux': - buildopts = '-f makefile.linux' -elif os_type == 'Darwin': - buildopts = '-f makefile.osx' +suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] +buildopts = "-f makefile.%s" % suff -files_to_copy = ['./*'] +files_to_copy = ['*'] sanity_check_paths = { 'files': ['bbmap.sh'], -- GitLab From 5ef9ccfb95a4bbc11a2f2c636ec3ea444522d387 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 23 Feb 2016 12:31:01 +1030 Subject: [PATCH 139/732] Added easy config for Java 1.8.0_74 --- .../BBMap-35.82-foss-2015b-Java-1.8.0_74.eb | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb new file mode 100644 index 0000000000..c02118b3a9 --- /dev/null +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb @@ -0,0 +1,37 @@ +import platform + +easyblock = 'MakeCp' + +name = 'BBMap' +version = '35.82' + +homepage = 'https://sourceforge.net/projects/bbmap/' +description = """BBMap short read aligner, and other bioinformatic tools.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +java = 'Java' +javaver = '1.8.0_74' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver, '', True)] + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + +prebuildopts = 'cd jni && ' + +suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] +buildopts = "-f makefile.%s" % suff + +files_to_copy = ['*'] + +sanity_check_paths = { + 'files': ['bbmap.sh'], + 'dirs': [] +} + +modextrapaths = {'PATH': ''} + +modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the compiled jni C code." + +moduleclass = 'bio' -- GitLab From fc228cbf1815d938ba8121592264bbc26c525f95 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 23 Feb 2016 10:17:59 +0100 Subject: [PATCH 140/732] Remove hard-coded -xSSE4.2 for scipy with intel compiler --- .../p/Python/Python-3.5.1-intel-2016a.eb | 1 + .../p/Python/numpy-1.10.4-sse42.patch | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/p/Python/numpy-1.10.4-sse42.patch diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb index 0a2f41e168..d0254354b9 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb @@ -41,6 +41,7 @@ exts_list = [ 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], 'patches': [ 'numpy-1.8.0-mkl.patch', # % numpyversion, + 'numpy-%s-sse42.patch' % numpyversion, ], }), ('scipy', scipyversion, { diff --git a/easybuild/easyconfigs/p/Python/numpy-1.10.4-sse42.patch b/easybuild/easyconfigs/p/Python/numpy-1.10.4-sse42.patch new file mode 100644 index 0000000000..75ffeaa0d5 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/numpy-1.10.4-sse42.patch @@ -0,0 +1,25 @@ +#Remove hard coded -xSSE4.2 compilation flag for Intel compilers (add the usual -xHOST) +#compilation would fail on non-SSE4.2 CPUs, and for further CPUs/compilers it would restrict the generated code to SSE4.2 +# February 19th, 2016 by B. Hajgato - Free University Brussels (VUB) +--- ./numpy/distutils/intelccompiler.py.orig 2016-01-06 22:07:54.000000000 +0100 ++++ ./numpy/distutils/intelccompiler.py 2016-02-19 15:07:00.438235792 +0100 +@@ -54,7 +54,7 @@ + def __init__(self, verbose=0, dry_run=0, force=0): + UnixCCompiler.__init__(self, verbose, dry_run, force) + self.cc_exe = ('icc -m64 -fPIC -fp-model strict -O3 ' +- '-fomit-frame-pointer -openmp -xSSE4.2') ++ '-fomit-frame-pointer -openmp -xHOST') + compiler = self.cc_exe + if platform.system() == 'Darwin': + shared_flag = '-Wl,-undefined,dynamic_lookup' +--- ./numpy/distutils/fcompiler/intel.py.orig 2016-01-07 03:16:25.000000000 +0100 ++++ ./numpy/distutils/fcompiler/intel.py 2016-02-19 15:07:16.424220745 +0100 +@@ -123,7 +123,7 @@ + return ['-openmp -fp-model strict'] + + def get_flags_arch(self): +- return ['-xSSE4.2'] ++ return ['-xHOST'] + + # Is there no difference in the version string between the above compilers + # and the Visual compilers? -- GitLab From afdf8a54cf71a27b8f4f6824897c26b59dc880c0 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 11:14:44 +0100 Subject: [PATCH 141/732] fix remark --- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb index 810207a42e..0a78e38ade 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb @@ -23,7 +23,7 @@ source_urls = [ 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ - 'ocaml-%(version)s.tar.gz', + SOURCELOWER_TAR_GZ, 'opam-full-%s.tar.gz' % opam_ver, ] diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb index 144def4311..eb591f01b3 100644 --- a/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb @@ -23,7 +23,7 @@ source_urls = [ 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, ] sources = [ - 'ocaml-%(version)s.tar.gz', + SOURCELOWER_TAR_GZ, 'opam-full-%s.tar.gz' % opam_ver, ] -- GitLab From afaa6ff4b4f85865b5ae8ff83ce0a4d9f7d3610b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 23 Feb 2016 11:36:14 +0100 Subject: [PATCH 142/732] configfiles with numpy 1.10 included --- .../p/Python/Python-2.7.11-intel-2015b.eb | 5 +++- .../p/Python/Python-2.7.11-intel-2016a.eb | 5 +++- .../p/Python/Python-3.5.1-intel-2016a.eb | 2 +- .../p/Python/numpy-1.10.1-sse42.patch | 25 +++++++++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 easybuild/easyconfigs/p/Python/numpy-1.10.1-sse42.patch diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb index 256977ab08..74d0c82b50 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb @@ -43,7 +43,10 @@ exts_list = [ }), ('numpy', numpyversion, { 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': ['numpy-1.8.0-mkl.patch'], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], }), ('scipy', scipyversion, { 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb index 68dbf9f030..6819a492c9 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb @@ -43,7 +43,10 @@ exts_list = [ }), ('numpy', numpyversion, { 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': ['numpy-1.8.0-mkl.patch'], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], }), ('scipy', scipyversion, { 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb index d0254354b9..e610aff618 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb @@ -40,7 +40,7 @@ exts_list = [ ('numpy', numpyversion, { 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], 'patches': [ - 'numpy-1.8.0-mkl.patch', # % numpyversion, + 'numpy-1.8.0-mkl.patch', 'numpy-%s-sse42.patch' % numpyversion, ], }), diff --git a/easybuild/easyconfigs/p/Python/numpy-1.10.1-sse42.patch b/easybuild/easyconfigs/p/Python/numpy-1.10.1-sse42.patch new file mode 100644 index 0000000000..60cdd96731 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/numpy-1.10.1-sse42.patch @@ -0,0 +1,25 @@ +#Remove hard coded -xSSE4.2 compilation flag for Intel compilers (add the usual -xHOST) +#compilation would fail on non-SSE4.2 CPUs, and for further CPUs/compilers it would restrict the generated code to SSE4.2 +# February 19th, 2016 by B. Hajgato - Free University Brussels (VUB) +--- numpy/distutils/intelccompiler.py.orig 2015-10-12 16:29:01.000000000 +0200 ++++ numpy/distutils/intelccompiler.py 2016-02-23 11:31:50.350422787 +0100 +@@ -49,7 +49,7 @@ + def __init__(self, verbose=0, dry_run=0, force=0): + UnixCCompiler.__init__(self, verbose, dry_run, force) + self.cc_exe = ('icc -m64 -fPIC -fp-model strict -O3 ' +- '-fomit-frame-pointer -openmp -xSSE4.2') ++ '-fomit-frame-pointer -openmp -xHOST') + compiler = self.cc_exe + self.set_executables(compiler=compiler, + compiler_so=compiler, +--- numpy/distutils/fcompiler/intel.py.orig 2015-10-12 16:29:01.000000000 +0200 ++++ numpy/distutils/fcompiler/intel.py 2016-02-23 11:31:50.350422787 +0100 +@@ -123,7 +123,7 @@ + return ['-openmp -fp-model strict'] + + def get_flags_arch(self): +- return ['-xSSE4.2'] ++ return ['-xHOST'] + + # Is there no difference in the version string between the above compilers + # and the Visual compilers? -- GitLab From 8cb4757e1083c7f7748737ac153c7c72a2657156 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 11:45:49 +0100 Subject: [PATCH 143/732] use pplacer easyblock --- ...cer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb index 7d55417f25..67fa1882a4 100644 --- a/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb +++ b/easybuild/easyconfigs/p/pplacer/pplacer-1.1.alpha16-ictce-5.5.0-OCaml-4.01.0.eb @@ -1,5 +1,3 @@ -easyblock = 'MakeCp' - name = 'pplacer' version = '1.1.alpha16' @@ -34,23 +32,7 @@ builddependencies = [ ('M4', '1.4.17'), ] -# see http://matsen.github.io/pplacer/compiling.html#opam -prebuildopts = "rm -rf %(installdir)s && export OPAMROOT=%(installdir)s && opam init && " -prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && " -prebuildopts += "opam update pplacer-deps && eval `opam config env` && " -prebuildopts += "export OCAML_BACKEND=gcc && cat opam-requirements.txt | xargs opam install -y && " -prebuildopts += "echo 'let version = \"v%(version)s\"\n' > common_src/version.ml && " - # parallel build tends to break parallel = 1 -files_to_copy = ['bin'] - -sanity_check_paths = { - 'files': ['bin/guppy', 'bin/pplacer', 'bin/rppr'], - 'dirs': [], -} - -sanity_check_commands = [('pplacer', '--version | grep %(version)s')] - moduleclass = 'bio' -- GitLab From 031c4c9f1f87fcccf0248a2f0c73bf1c99e2645a Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 23 Feb 2016 21:16:18 +1030 Subject: [PATCH 144/732] removed import statements and wrapped lines longer than 120 chars --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb | 5 ++--- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index 71dd3c4e06..2679eeb7f4 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -1,5 +1,3 @@ -import platform - easyblock = 'MakeCp' name = 'BBMap' @@ -32,6 +30,7 @@ sanity_check_paths = { modextrapaths = {'PATH': ''} -modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the compiled jni C code." +modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the + compiled jni C code." moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb index c02118b3a9..e9d0c0554f 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb @@ -1,5 +1,3 @@ -import platform - easyblock = 'MakeCp' name = 'BBMap' @@ -32,6 +30,7 @@ sanity_check_paths = { modextrapaths = {'PATH': ''} -modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the compiled jni C code." +modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the + compiled jni C code." moduleclass = 'bio' -- GitLab From fbf8fc17849937fc4749f29ee88bb6d042a73049 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 11:47:46 +0100 Subject: [PATCH 145/732] sync up R 3.2.1 and 3.2.3 easyconfigs w.r.t. list of extensions --- .../easyconfigs/r/R/R-3.2.1-foss-2015b.eb | 21 +++++++++++++++++++ .../easyconfigs/r/R/R-3.2.1-intel-2015a.eb | 21 +++++++++++++++++++ .../easyconfigs/r/R/R-3.2.3-foss-2015b.eb | 21 +++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb index 79832f4acc..23d28da007 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb @@ -383,6 +383,27 @@ exts_list = [ ('EasyABC', '1.5', ext_options), ('shape', '1.4.2', ext_options), ('tidyr', '0.3.1', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb index 06397a454b..b7ba0004fa 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb @@ -383,6 +383,27 @@ exts_list = [ ('EasyABC', '1.5', ext_options), ('shape', '1.4.2', ext_options), ('tidyr', '0.3.1', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb index 5a07a10c24..ce43b870fa 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb @@ -394,6 +394,27 @@ exts_list = [ ('tensorA', '0.36', ext_options), ('EasyABC', '1.5', ext_options), ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), ] moduleclass = 'lang' -- GitLab From 3801590fa7c269c8915ca8bbb7b88e10d2653927 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 23 Feb 2016 11:50:08 +0100 Subject: [PATCH 146/732] numpy patches for -xSSE4.2 added --- .../numpy-1.10.1-intel-2015b-Python-2.7.10.eb | 5 +++- .../n/numpy/numpy-1.10.1-sse42.patch | 25 +++++++++++++++++++ .../numpy-1.10.4-intel-2015b-Python-2.7.10.eb | 5 +++- .../numpy-1.10.4-intel-2016a-Python-2.7.11.eb | 5 +++- .../n/numpy/numpy-1.10.4-sse42.patch | 25 +++++++++++++++++++ 5 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.10.1-sse42.patch create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.10.4-sse42.patch diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.10.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/n/numpy/numpy-1.10.1-intel-2015b-Python-2.7.10.eb index 49bbddc678..8d802d968f 100644 --- a/easybuild/easyconfigs/n/numpy/numpy-1.10.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/n/numpy/numpy-1.10.1-intel-2015b-Python-2.7.10.eb @@ -13,7 +13,10 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCE_TAR_GZ] -patches = ['numpy-1.8.0-mkl.patch'] +patches = [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%(version)s-sse42.patch', +] python = 'Python' pyver = '2.7.10' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.10.1-sse42.patch b/easybuild/easyconfigs/n/numpy/numpy-1.10.1-sse42.patch new file mode 100644 index 0000000000..60cdd96731 --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.10.1-sse42.patch @@ -0,0 +1,25 @@ +#Remove hard coded -xSSE4.2 compilation flag for Intel compilers (add the usual -xHOST) +#compilation would fail on non-SSE4.2 CPUs, and for further CPUs/compilers it would restrict the generated code to SSE4.2 +# February 19th, 2016 by B. Hajgato - Free University Brussels (VUB) +--- numpy/distutils/intelccompiler.py.orig 2015-10-12 16:29:01.000000000 +0200 ++++ numpy/distutils/intelccompiler.py 2016-02-23 11:31:50.350422787 +0100 +@@ -49,7 +49,7 @@ + def __init__(self, verbose=0, dry_run=0, force=0): + UnixCCompiler.__init__(self, verbose, dry_run, force) + self.cc_exe = ('icc -m64 -fPIC -fp-model strict -O3 ' +- '-fomit-frame-pointer -openmp -xSSE4.2') ++ '-fomit-frame-pointer -openmp -xHOST') + compiler = self.cc_exe + self.set_executables(compiler=compiler, + compiler_so=compiler, +--- numpy/distutils/fcompiler/intel.py.orig 2015-10-12 16:29:01.000000000 +0200 ++++ numpy/distutils/fcompiler/intel.py 2016-02-23 11:31:50.350422787 +0100 +@@ -123,7 +123,7 @@ + return ['-openmp -fp-model strict'] + + def get_flags_arch(self): +- return ['-xSSE4.2'] ++ return ['-xHOST'] + + # Is there no difference in the version string between the above compilers + # and the Visual compilers? diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2015b-Python-2.7.10.eb index db4b5f54bf..a7d1f53ad3 100644 --- a/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2015b-Python-2.7.10.eb @@ -13,7 +13,10 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCE_TAR_GZ] -patches = ['numpy-1.8.0-mkl.patch'] +patches = [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%(version)s-sse42.patch', +] python = 'Python' pyver = '2.7.10' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2016a-Python-2.7.11.eb index b76b0c1b2e..62945ed938 100644 --- a/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/n/numpy/numpy-1.10.4-intel-2016a-Python-2.7.11.eb @@ -14,7 +14,10 @@ toolchain = {'name': 'intel', 'version': '2016a'} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCE_TAR_GZ] -patches = ['numpy-1.8.0-mkl.patch'] +patches = [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%(version)s-sse42.patch', +] dependencies = [ ('Python', '2.7.11'), diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.10.4-sse42.patch b/easybuild/easyconfigs/n/numpy/numpy-1.10.4-sse42.patch new file mode 100644 index 0000000000..75ffeaa0d5 --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.10.4-sse42.patch @@ -0,0 +1,25 @@ +#Remove hard coded -xSSE4.2 compilation flag for Intel compilers (add the usual -xHOST) +#compilation would fail on non-SSE4.2 CPUs, and for further CPUs/compilers it would restrict the generated code to SSE4.2 +# February 19th, 2016 by B. Hajgato - Free University Brussels (VUB) +--- ./numpy/distutils/intelccompiler.py.orig 2016-01-06 22:07:54.000000000 +0100 ++++ ./numpy/distutils/intelccompiler.py 2016-02-19 15:07:00.438235792 +0100 +@@ -54,7 +54,7 @@ + def __init__(self, verbose=0, dry_run=0, force=0): + UnixCCompiler.__init__(self, verbose, dry_run, force) + self.cc_exe = ('icc -m64 -fPIC -fp-model strict -O3 ' +- '-fomit-frame-pointer -openmp -xSSE4.2') ++ '-fomit-frame-pointer -openmp -xHOST') + compiler = self.cc_exe + if platform.system() == 'Darwin': + shared_flag = '-Wl,-undefined,dynamic_lookup' +--- ./numpy/distutils/fcompiler/intel.py.orig 2016-01-07 03:16:25.000000000 +0100 ++++ ./numpy/distutils/fcompiler/intel.py 2016-02-19 15:07:16.424220745 +0100 +@@ -123,7 +123,7 @@ + return ['-openmp -fp-model strict'] + + def get_flags_arch(self): +- return ['-xSSE4.2'] ++ return ['-xHOST'] + + # Is there no difference in the version string between the above compilers + # and the Visual compilers? -- GitLab From 9a32aba82c42a4c8b6b0680b28ddf172aa9c64db Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 11:52:05 +0100 Subject: [PATCH 147/732] remove duplicate entries in R extensions list --- easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb | 2 -- easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb | 2 -- 2 files changed, 4 deletions(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb index 23d28da007..b1cc503084 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb @@ -366,8 +366,6 @@ exts_list = [ ('SuperLearner', '2.0-15', ext_options), ('lpSolve', '5.6.13', ext_options), ('mediation', '4.4.5', ext_options), - ('lpSolve', '5.6.13', ext_options), - ('mediation', '4.4.5', ext_options), ('caret', '6.0-57', ext_options), ('adabag', '4.1', ext_options), ('parallelMap', '1.3', ext_options), diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb index b7ba0004fa..0e86ace8cb 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb @@ -366,8 +366,6 @@ exts_list = [ ('SuperLearner', '2.0-15', ext_options), ('lpSolve', '5.6.13', ext_options), ('mediation', '4.4.5', ext_options), - ('lpSolve', '5.6.13', ext_options), - ('mediation', '4.4.5', ext_options), ('caret', '6.0-57', ext_options), ('adabag', '4.1', ext_options), ('parallelMap', '1.3', ext_options), -- GitLab From d6f0769eac43fe6b190c5deef61b372d41880623 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 14:15:34 +0100 Subject: [PATCH 148/732] fix sanity check for xtrans --- easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb | 5 ++--- easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb | 5 ++--- easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb | 5 ++--- .../easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb | 7 ++++--- easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb | 5 ++--- easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb | 5 ++--- 6 files changed, 14 insertions(+), 18 deletions(-) diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb index 1d6eb396ed..0edc961a34 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb @@ -15,9 +15,8 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtranstli.c', 'Xtransutil.c']], 'dirs': [], } diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb index 23de4f9f86..1a4f54a0c5 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb @@ -15,9 +15,8 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], } diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb index f7ff52f126..01968fd489 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb @@ -15,9 +15,8 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], } diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb index aba9aa9dae..0f0fef97b7 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb @@ -15,9 +15,10 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', 'Xtranslcl.c', + 'Xtranssock.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], } diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb index 3b75c81b7b..0613532497 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb @@ -15,9 +15,8 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], } diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb index bfcb216ed9..21b74f6cfe 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb @@ -15,9 +15,8 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], } -- GitLab From f6644ed91896d7a7d17000d33204d46d54ebdf6c Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 23 Feb 2016 14:23:05 +0100 Subject: [PATCH 149/732] {vis}[intel-2016b] libX11 1.6.3 (REVIEW) --- .../inputproto-2.3.1-intel-2016a.eb | 19 ++++++++++ .../k/kbproto/kbproto-1.0.7-intel-2016a.eb | 19 ++++++++++ .../l/libX11/libX11-1.6.3-intel-2016a.eb | 37 +++++++++++++++++++ .../l/libXau/libXau-1.0.8-intel-2016a.eb | 25 +++++++++++++ .../libpthread-stubs-0.3-intel-2016a.eb | 20 ++++++++++ .../l/libxcb/libxcb-1.11.1-intel-2016a.eb | 31 ++++++++++++++++ ...cb-proto-1.11-intel-2016a-Python-2.7.11.eb | 27 ++++++++++++++ .../xextproto/xextproto-7.3.0-intel-2016a.eb | 25 +++++++++++++ .../x/xproto/xproto-7.0.28-intel-2016a.eb | 23 ++++++++++++ .../x/xtrans/xtrans-1.3.5-intel-2016a.eb | 23 ++++++++++++ 10 files changed, 249 insertions(+) create mode 100644 easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb new file mode 100644 index 0000000000..323816dd0b --- /dev/null +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'inputproto' +version = '2.3.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org InputProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb new file mode 100644 index 0000000000..29d6a6987a --- /dev/null +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb new file mode 100644 index 0000000000..abaa07d7cf --- /dev/null +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', '-Python-2.7.11'), + ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xtrans', '1.3.5'), +] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb new file mode 100644 index 0000000000..cca4ea1438 --- /dev/null +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb new file mode 100644 index 0000000000..afc1225690 --- /dev/null +++ b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpthread-stubs' +version = '0.3' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +sanity_check_paths = { + 'files': ['lib/pkgconfig/pthread-stubs.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb new file mode 100644 index 0000000000..0a842ce83c --- /dev/null +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('xcb-proto', '1.11', '-Python-2.7.11'), + ('libpthread-stubs', '0.3'), +] +dependencies = [ + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", + "-randr", "-record", "-render", "-res", "-screensaver", + "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", + "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..80c7b50387 --- /dev/null +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-proto' +version = '1.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.11' +versionsuffix = '-%s-%s' % (python, pyver) +builddependencies = [(python, pyver)] + +pyshortver = '.'.join(pyver.split('.')[0:2]) + +sanity_check_paths = { + 'files': ['lib/pkgconfig/xcb-proto.pc'], + 'dirs': ['lib/python%s/site-packages/xcbgen' % pyshortver] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb new file mode 100644 index 0000000000..dcc6160700 --- /dev/null +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb new file mode 100644 index 0000000000..1d3df458a7 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb new file mode 100644 index 0000000000..217429b1ab --- /dev/null +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 4810e815ae6b4bea733def7fae731886979003e6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 14:47:40 +0100 Subject: [PATCH 150/732] fix double files entry --- easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb index 0f0fef97b7..ed6733fd17 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb @@ -15,8 +15,6 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', 'Xtranslcl.c', - 'Xtranssock.c', 'Xtransutil.c']], 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], -- GitLab From 6878b7887ac71609905c68debe4face53a5ed438 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 14:48:31 +0100 Subject: [PATCH 151/732] add patch for building multicool with intel/2015a --- easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb | 2 +- .../r/R/multicool-0.1-9_icpc-wd308.patch | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb index 0e86ace8cb..81ca43ddff 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb @@ -398,7 +398,7 @@ exts_list = [ ('pixmap', '0.4-11', ext_options), ('tkrplot', '0.0-23', ext_options), ('misc3d', '0.8-4', ext_options), - ('multicool', '0.1-9', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), ('ks', '1.10.1', ext_options), ('logcondens', '2.1.4', ext_options), ('Iso', '0.0-17', ext_options), diff --git a/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch b/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch new file mode 100644 index 0000000000..cb7beebcc6 --- /dev/null +++ b/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch @@ -0,0 +1,14 @@ +diff -ruN multicool.orig/MD5 multicool/MD5 +--- multicool.orig/MD5 2015-10-28 18:39:18.000000000 +0100 ++++ multicool/MD5 2016-02-23 14:09:09.547773000 +0100 +@@ -20,3 +20,4 @@ + b18b7e9e5912cf1014aa2c2fa8e86047 *src/compositions.cpp + 79239d0d8b59b7533a639d668c3a0857 *src/multicool.cpp + 62c660482671757c5490a422d955cbe1 *src/multinomial.h ++b1d3a4d02405fe08c7983c479bc27f13 *src/Makevars +diff -ruN multicool.orig/src/Makevars multicool/src/Makevars +--- multicool.orig/src/Makevars 1970-01-01 01:00:00.000000000 +0100 ++++ multicool/src/Makevars 2016-02-23 13:24:01.456230240 +0100 +@@ -0,0 +1,2 @@ ++# disable Intel C++ compiler (icpc) warning/error #308, to avoid 'member "std::complex::_M_value" is inaccessible' ++PKG_CXXFLAGS = -wd308 -- GitLab From 752b19dbf1591386f9162513035d783916619b86 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 15:07:19 +0100 Subject: [PATCH 152/732] add comment in patch file --- easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch b/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch index cb7beebcc6..35704c2945 100644 --- a/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch +++ b/easybuild/easyconfigs/r/R/multicool-0.1-9_icpc-wd308.patch @@ -1,3 +1,5 @@ +add -wd308 compiler option to avoid compiler warning #308 being treated as an error +author: Kenneth Hoste (HPC-UGent) diff -ruN multicool.orig/MD5 multicool/MD5 --- multicool.orig/MD5 2015-10-28 18:39:18.000000000 +0100 +++ multicool/MD5 2016-02-23 14:09:09.547773000 +0100 -- GitLab From 48c9941ab0e9a10a48691e432d81dc940cb1fa3f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 15:16:02 +0100 Subject: [PATCH 153/732] Hercules foundation is now FWO --- setup.py | 2 +- test/__init__.py | 2 +- test/easyconfigs/easyconfigs.py | 2 +- test/easyconfigs/suite.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 73bcfd5c01..52810146f6 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# the Hercules foundation (http://www.herculesstichting.be/in_English) +# FWO (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild diff --git a/test/__init__.py b/test/__init__.py index c4b9363e8a..2769d58e65 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -5,7 +5,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# the Hercules foundation (http://www.herculesstichting.be/in_English) +# FWO (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index e2e81c58df..5f0914847a 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -5,7 +5,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# the Hercules foundation (http://www.herculesstichting.be/in_English) +# FWO (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild diff --git a/test/easyconfigs/suite.py b/test/easyconfigs/suite.py index 6afbd6ffb1..bfdd952cee 100644 --- a/test/easyconfigs/suite.py +++ b/test/easyconfigs/suite.py @@ -6,7 +6,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# the Hercules foundation (http://www.herculesstichting.be/in_English) +# FWO (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild -- GitLab From ed3d5eedf7410555842e2c32df5dba82cfc2a058 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 15:25:05 +0100 Subject: [PATCH 154/732] fix remarks --- setup.py | 2 +- test/__init__.py | 2 +- test/easyconfigs/easyconfigs.py | 2 +- test/easyconfigs/suite.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 52810146f6..e1abe096bf 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# FWO (http://www.fwo.be/en) +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild diff --git a/test/__init__.py b/test/__init__.py index 2769d58e65..856f7e4178 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -5,7 +5,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# FWO (http://www.fwo.be/en) +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 5f0914847a..f3b329c872 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -5,7 +5,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# FWO (http://www.fwo.be/en) +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild diff --git a/test/easyconfigs/suite.py b/test/easyconfigs/suite.py index bfdd952cee..79a1fb0d08 100644 --- a/test/easyconfigs/suite.py +++ b/test/easyconfigs/suite.py @@ -6,7 +6,7 @@ # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), # with support of Ghent University (http://ugent.be/hpc), # the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), -# FWO (http://www.fwo.be/en) +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). # # http://github.com/hpcugent/easybuild -- GitLab From 9dfe8a7ff4e67d9f2707bbd8dd3a2e4d079a33ca Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Tue, 23 Feb 2016 16:06:10 +0100 Subject: [PATCH 155/732] added new libxml2 with proper configure options to use zlib provided by easybuild --- .../l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb new file mode 100644 index 0000000000..66513c188b --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' -- GitLab From 007e97273afcad25295f6ab2989fb52cde171ef9 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 18:05:38 +0200 Subject: [PATCH 156/732] add easyconfig ANSYS_CFD-17.0.eb --- .../easyconfigs/a/ANSYS_CFD/ANSYS_CFD-17.0.eb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 easybuild/easyconfigs/a/ANSYS_CFD/ANSYS_CFD-17.0.eb diff --git a/easybuild/easyconfigs/a/ANSYS_CFD/ANSYS_CFD-17.0.eb b/easybuild/easyconfigs/a/ANSYS_CFD/ANSYS_CFD-17.0.eb new file mode 100644 index 0000000000..0217d1be22 --- /dev/null +++ b/easybuild/easyconfigs/a/ANSYS_CFD/ANSYS_CFD-17.0.eb @@ -0,0 +1,15 @@ +easyblock = 'EB_FLUENT' + +name = 'ANSYS_CFD' +version = '17.0' + +homepage = 'http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics' +description = """ANSYS computational fluid dynamics (CFD) simulation software allows you to predict, with confidence, + the impact of fluid flows on your product throughout design and manufacturing as well as during end use. + ANSYS renowned CFD analysis tools include the widely used and well-validated ANSYS Fluent and ANSYS CFX.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['FLUIDSTRUCTURES_%s_LINX64.tar' % ''.join(version.split('.'))] + +moduleclass = 'cae' -- GitLab From 1334f50e26a5190c56a8cb49feda8253e36d6cf4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 17:21:56 +0100 Subject: [PATCH 157/732] add HCsnip to Bioconductor bundles --- .../R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb | 5 +++++ .../R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb | 5 +++++ .../R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb index b172ff0137..bcc39b48aa 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb @@ -133,6 +133,11 @@ exts_list = [ ('derfinder', '1.2.1', bioconductor_options), ('polyester', '1.4.0', bioconductor_options), ('Rsubread', '1.18.0', bioconductor_options), + ('pcaMethods', '1.58.0', bioconductor_options), + ('CGHbase', '1.28.0', bioconductor_options), + ('marray', '1.46.0', bioconductor_options), + ('sigaR', '1.12.0', bioconductor_options), + ('HCsnip', '1.8.0', bioconductor_options), ] modextrapaths = {'R_LIBS': ''} diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb index 8c43cb0960..180d089207 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb @@ -133,6 +133,11 @@ exts_list = [ ('derfinder', '1.2.1', bioconductor_options), ('polyester', '1.4.0', bioconductor_options), ('Rsubread', '1.18.0', bioconductor_options), + ('pcaMethods', '1.58.0', bioconductor_options), + ('CGHbase', '1.28.0', bioconductor_options), + ('marray', '1.46.0', bioconductor_options), + ('sigaR', '1.12.0', bioconductor_options), + ('HCsnip', '1.8.0', bioconductor_options), ] modextrapaths = {'R_LIBS': ''} diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb index 1a0beb9ba9..01e62a5a31 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb @@ -134,6 +134,10 @@ exts_list = [ ('polyester', '1.4.0', bioconductor_options), ('Rsubread', '1.18.0', bioconductor_options), ('pcaMethods', '1.58.0', bioconductor_options), + ('CGHbase', '1.28.0', bioconductor_options), + ('marray', '1.46.0', bioconductor_options), + ('sigaR', '1.12.0', bioconductor_options), + ('HCsnip', '1.8.0', bioconductor_options), ] modextrapaths = {'R_LIBS': ''} -- GitLab From 97c56f72dec2eef45e1cd0379ee51a54b826830e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 17:26:59 +0100 Subject: [PATCH 158/732] fix order --- .../R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb | 2 +- .../R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb | 2 +- .../R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb index bcc39b48aa..9b319b7e55 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb @@ -134,8 +134,8 @@ exts_list = [ ('polyester', '1.4.0', bioconductor_options), ('Rsubread', '1.18.0', bioconductor_options), ('pcaMethods', '1.58.0', bioconductor_options), - ('CGHbase', '1.28.0', bioconductor_options), ('marray', '1.46.0', bioconductor_options), + ('CGHbase', '1.28.0', bioconductor_options), ('sigaR', '1.12.0', bioconductor_options), ('HCsnip', '1.8.0', bioconductor_options), ] diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb index 180d089207..e7aac6aac1 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb @@ -134,8 +134,8 @@ exts_list = [ ('polyester', '1.4.0', bioconductor_options), ('Rsubread', '1.18.0', bioconductor_options), ('pcaMethods', '1.58.0', bioconductor_options), - ('CGHbase', '1.28.0', bioconductor_options), ('marray', '1.46.0', bioconductor_options), + ('CGHbase', '1.28.0', bioconductor_options), ('sigaR', '1.12.0', bioconductor_options), ('HCsnip', '1.8.0', bioconductor_options), ] diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb index 01e62a5a31..e6d844c21e 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb @@ -134,8 +134,8 @@ exts_list = [ ('polyester', '1.4.0', bioconductor_options), ('Rsubread', '1.18.0', bioconductor_options), ('pcaMethods', '1.58.0', bioconductor_options), - ('CGHbase', '1.28.0', bioconductor_options), ('marray', '1.46.0', bioconductor_options), + ('CGHbase', '1.28.0', bioconductor_options), ('sigaR', '1.12.0', bioconductor_options), ('HCsnip', '1.8.0', bioconductor_options), ] -- GitLab From 03f1bcdd659c63cc48230b1fc4e6bbc37bbe637d Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 23 Feb 2016 17:51:03 +0100 Subject: [PATCH 159/732] removes craype and fftw from the toolchain --- easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb | 2 -- easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb | 2 -- easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb | 2 -- easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb | 2 -- easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb | 2 -- easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb | 2 -- 6 files changed, 12 deletions(-) diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb index c35ce0b32e..4fa134a241 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb @@ -11,10 +11,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ ('PrgEnv-cray/5.2.40', EXTERNAL_MODULE), ('cce/8.3.12', EXTERNAL_MODULE), - ('craype/2.4.0', EXTERNAL_MODULE), ('cray-libsci/13.0.4', EXTERNAL_MODULE), ('cray-mpich/7.2.2', EXTERNAL_MODULE), - ('fftw/3.3.4.3', EXTERNAL_MODULE), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb index 3433ca305d..947665d0f0 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb @@ -11,10 +11,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ ('PrgEnv-cray/5.2.82', EXTERNAL_MODULE), ('cce/8.4.1', EXTERNAL_MODULE), - ('craype/2.4.2', EXTERNAL_MODULE), ('cray-libsci/13.2.0', EXTERNAL_MODULE), ('cray-mpich/7.2.6', EXTERNAL_MODULE), - ('fftw/3.3.4.5', EXTERNAL_MODULE), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb index f804d0e859..4f31279f13 100644 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb @@ -11,10 +11,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ ('PrgEnv-gnu/5.2.40', EXTERNAL_MODULE), ('gcc/4.8.2', EXTERNAL_MODULE), - ('craype/2.4.0', EXTERNAL_MODULE), ('cray-libsci/13.0.4', EXTERNAL_MODULE), ('cray-mpich/7.2.2', EXTERNAL_MODULE), - ('fftw/3.3.4.3', EXTERNAL_MODULE), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb index 15eb5087e5..410ddc97f5 100644 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb @@ -11,10 +11,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ ('PrgEnv-gnu/5.2.82', EXTERNAL_MODULE), ('gcc/4.9.3', EXTERNAL_MODULE), - ('craype/2.4.2', EXTERNAL_MODULE), ('cray-libsci/13.2.0', EXTERNAL_MODULE), ('cray-mpich/7.2.6', EXTERNAL_MODULE), - ('fftw/3.3.4.5', EXTERNAL_MODULE), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb index 5ee5f118a3..0c39be9a84 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb @@ -11,10 +11,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ ('PrgEnv-intel/5.2.82', EXTERNAL_MODULE), ('intel/15.0.1.133', EXTERNAL_MODULE), - ('craype/2.4.0', EXTERNAL_MODULE), ('cray-libsci/13.0.4', EXTERNAL_MODULE), ('cray-mpich/7.2.2', EXTERNAL_MODULE), - ('fftw/3.3.4.3', EXTERNAL_MODULE), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb index 7846b2d7c5..d021b8f24e 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb @@ -11,10 +11,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ ('PrgEnv-intel/5.2.82', EXTERNAL_MODULE), ('intel/15.0.1.133', EXTERNAL_MODULE), - ('craype/2.4.2', EXTERNAL_MODULE), ('cray-libsci/13.2.0', EXTERNAL_MODULE), ('cray-mpich/7.2.6', EXTERNAL_MODULE), - ('fftw/3.3.4.5', EXTERNAL_MODULE), ] moduleclass = 'toolchain' -- GitLab From 009ca8514d0d7008cdd3bb986c2ec1eb9cf64095 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 18:23:18 +0100 Subject: [PATCH 160/732] add more extensions, use patch file when building multicool with intel toolchain --- easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb | 5 +++++ easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb | 5 +++++ easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb | 7 ++++++- easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb index b1cc503084..de7294123d 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-foss-2015b.eb @@ -402,6 +402,11 @@ exts_list = [ ('ks', '1.10.1', ext_options), ('logcondens', '2.1.4', ext_options), ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.0-24', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb index 81ca43ddff..644dcc259b 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015a.eb @@ -402,6 +402,11 @@ exts_list = [ ('ks', '1.10.1', ext_options), ('logcondens', '2.1.4', ext_options), ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.0-24', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb index 0b60771f8e..36f8e25856 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.1-intel-2015b.eb @@ -398,10 +398,15 @@ exts_list = [ ('pixmap', '0.4-11', ext_options), ('tkrplot', '0.0-23', ext_options), ('misc3d', '0.8-4', ext_options), - ('multicool', '0.1-9', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), ('ks', '1.10.1', ext_options), ('logcondens', '2.1.4', ext_options), ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.0-24', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb index ce43b870fa..aae3ac82f6 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb @@ -415,6 +415,11 @@ exts_list = [ ('ks', '1.10.1', ext_options), ('logcondens', '2.1.4', ext_options), ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), ] moduleclass = 'lang' -- GitLab From 7ff6b215544bef956a196f30cc7bc67876ffb786 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 18:43:57 +0100 Subject: [PATCH 161/732] add --with-zlib configure argument in libxml easyconfigs --- .../l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb | 2 +- .../easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb | 2 +- .../l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb | 2 +- .../l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb | 2 +- .../l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb | 2 +- .../l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb | 2 +- .../l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb | 2 +- .../easyconfigs/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb | 2 +- .../easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb | 2 +- .../easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb | 2 +- .../easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb | 2 +- .../l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015a.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015b.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014.06.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014b.eb | 2 +- .../l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb | 2 +- .../l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a.eb | 2 +- easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015b.eb | 2 +- .../l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb | 2 +- .../l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb | 2 +- .../l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb | 2 +- .../l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb | 2 +- 46 files changed, 46 insertions(+), 46 deletions(-) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb index 5fdaa5d70c..e98bac6018 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.3' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb index 952422def7..4a4a4816ab 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb index 4a1316692f..e1868be130 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb @@ -13,7 +13,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.3' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb index f2fa0134cb..00021cddc9 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb @@ -15,7 +15,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb index 33784ddde9..b82e8e6c93 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.3' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb index 3117fe0a65..91e1ffbc9c 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb index cc27d1b86c..31e824b5ea 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.3' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb index 61308782ea..5a92ef8bcb 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.3' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb index fd29030590..98b15d6f97 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb index 81d93bf45c..3f185c7e6d 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.3' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb index 8a4a61220f..0567c075f0 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb index 0aa0c13986..ee43d716e2 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb @@ -15,7 +15,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb index b1af1bc74e..06cdc26c76 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb index 1364db9fd8..3042a3cf37 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb index c35a6e9fc3..f0aa6dee9c 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb index 60a6e14404..33b6562e0f 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb index b388d01bd8..e44ddd0d64 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb index f80ae7c225..90b9bc8ea5 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb index 6bb7068cf9..487bf333ac 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb index 2382dbbd47..5448805458 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb index 72ae920157..b09000568f 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb index 8a60398865..3e1cc77790 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb index a2720d5e9b..5da6298832 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb index 1c1b880f56..aa7e4b1f77 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb index 90f80b2804..e50f08d5e3 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.7')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb index 449f38ddfb..9d4e84392a 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.6' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb index 118fae1f4c..0cdacffa3a 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb index 615b01f264..ca67a911c1 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-intel-2014b.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-intel-2014b.eb index 222bbd19cd..c6335dd8b2 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-intel-2014b.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb index 7575c86f51..841eddc11e 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb index 01f5647249..8d892b499f 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb index 9bdf731db3..3c33fb41da 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb @@ -16,7 +16,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015a.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015a.eb index 541ab91f1b..ae39cc8c24 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015a.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015a.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015b.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015b.eb index 8fd891d71a..ad02e51c2e 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015b.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-foss-2015b.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb index 9d5d34d98e..f232e382c0 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb index aa5618634d..22d8c149d6 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014.06.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014.06.eb index fe435074c9..acdd85b6e6 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014.06.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014.06.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014b.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014b.eb index 7f753229e0..22aefe7d0c 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2014b.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb index e102ff79f5..37724f23f1 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.10' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb index da831a62f3..307b1793d4 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.9' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a.eb index f49980dfe3..1a4f4c99c4 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015a.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015b.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015b.eb index b18959ba97..b95f92dfd9 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2015b.eb @@ -17,7 +17,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' dependencies = [('zlib', '1.2.8')] diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb index 28c3bb06af..6cafc86e4f 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.11' pythonshortver = '.'.join(pythonver.split('.')[:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb index 51c493e7e0..34777c9cc6 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.10' pythonshortver = '.'.join(pythonver.split('.')[0:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb index 61e0b9ca78..b28071061a 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pythonver = '2.7.11' pythonshortver = '.'.join(pythonver.split('.')[:2]) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb index 41e4fc099e..41e2af0e98 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb @@ -14,7 +14,7 @@ source_urls = [ ] sources = [SOURCELOWER_TAR_GZ] -configopts = 'CC="$CC" CXX="$CXX" --with-pic' +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' pyver = '2.7.11' pyshortver = '.'.join(pyver.split('.')[:2]) -- GitLab From 263c142e3957856e7b302834d5aa74a217b8893a Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 24 Feb 2016 05:29:55 +1030 Subject: [PATCH 162/732] triple-quote wrapping string --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index 2679eeb7f4..1bf6254658 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -30,7 +30,7 @@ sanity_check_paths = { modextrapaths = {'PATH': ''} -modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the - compiled jni C code." +modloadmsg = """For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the + compiled jni C code.""" moduleclass = 'bio' -- GitLab From 9813d105d5aa2726a0c4ef66f48d6b9495995ade Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 24 Feb 2016 05:30:30 +1030 Subject: [PATCH 163/732] triple-quote wrapping string --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb index e9d0c0554f..d0f2ef813c 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb @@ -30,7 +30,7 @@ sanity_check_paths = { modextrapaths = {'PATH': ''} -modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the - compiled jni C code." +modloadmsg = """For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the + compiled jni C code.""" moduleclass = 'bio' -- GitLab From 2c337996819704e08175c378fc033633ef940ead Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 23 Feb 2016 21:11:05 +0100 Subject: [PATCH 164/732] add additional deps required for Bioconductor extensions --- easybuild/easyconfigs/r/R/R-3.2.0-goolf-1.7.20.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.0-goolf-1.7.20.eb b/easybuild/easyconfigs/r/R/R-3.2.0-goolf-1.7.20.eb index 37f178514d..499d383ce4 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.0-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.0-goolf-1.7.20.eb @@ -348,6 +348,11 @@ exts_list = [ ('gdalUtils', '0.3.1', ext_options), ('pracma', '1.8.3', ext_options), ('bio3d', '2.2-2', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.0-24', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), ] moduleclass = 'lang' -- GitLab From 3f5d02ad4d2f1206346fca2a7a0ef370c26e5702 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Tue, 23 Feb 2016 21:36:38 +0100 Subject: [PATCH 165/732] ctffind-4.0.17-intel-2015a.eb --- .../c/ctffind/ctffind-4.0.17-intel-2015a.eb | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb diff --git a/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb b/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb new file mode 100644 index 0000000000..650aea81eb --- /dev/null +++ b/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'ctffind' +version = '4.0.17' + +homepage = 'http://grigoriefflab.janelia.org/ctffind4' +description = """program for finding CTFs of electron micrographs""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'openmp': True} + +source_urls = ['http://grigoriefflab.janelia.org/sites/default/files/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('GSL', '1.16')] + +# when running ./configure in the root folder it fails. +# application doesn't provide a 'make install' +prebuildopts = 'mkdir build && cd build && ' +prebuildopts += ' ../configure --enable-static --disable-debug --enable-optimisations --enable-openmp FC=${FC} F77=${F77} && ' + +files_to_copy = [(['build/ctffind'], 'bin'), 'doc', 'scripts'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/ctffind'], + 'dirs': [], +} + +modloadmsg = """Define OMP_NUM_THREADS or use the command line option --omp-num-threads=N when using this application""" + +moduleclass = 'bio' -- GitLab From 5b24009a577a16d5a09779397447cac1a3269c88 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Wed, 24 Feb 2016 07:17:15 +0000 Subject: [PATCH 166/732] Use Boost 1.60.0 without Python extra ver for BH --- easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb b/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb index 314d4d2d26..16cdd37dda 100644 --- a/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb +++ b/easybuild/easyconfigs/b/BH/BH-1.60.0-1-foss-2015b-R-3.2.3.eb @@ -25,7 +25,7 @@ versionsuffix = '-%s-%s' % (r, rver) dependencies = [ (r, rver), - ('Boost', '1.58.0', '-Python-2.7.10'), + ('Boost', '1.60.0'), ] sanity_check_paths = { -- GitLab From 2d163f93442b9a6ba1a2199077229050ae80edff Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Wed, 24 Feb 2016 09:03:56 +0100 Subject: [PATCH 167/732] switch toolchain from intel-2015a to intel-2015b --- ...find-4.0.17-intel-2015a.eb => ctffind-4.0.17-intel-2015b.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easybuild/easyconfigs/c/ctffind/{ctffind-4.0.17-intel-2015a.eb => ctffind-4.0.17-intel-2015b.eb} (95%) diff --git a/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb b/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015b.eb similarity index 95% rename from easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb rename to easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015b.eb index 650aea81eb..c378da306a 100644 --- a/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015a.eb +++ b/easybuild/easyconfigs/c/ctffind/ctffind-4.0.17-intel-2015b.eb @@ -11,7 +11,7 @@ version = '4.0.17' homepage = 'http://grigoriefflab.janelia.org/ctffind4' description = """program for finding CTFs of electron micrographs""" -toolchain = {'name': 'intel', 'version': '2015a'} +toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'openmp': True} source_urls = ['http://grigoriefflab.janelia.org/sites/default/files/'] -- GitLab From 2a35ad1780dabe3004626493e8af25e727e92483 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 24 Feb 2016 09:05:36 +0100 Subject: [PATCH 168/732] {compiler}[intel-2016b] LLVM 3.7.1 (REVIEW) --- .../l/LLVM/LLVM-3.7.1-intel-2016a.eb | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb new file mode 100644 index 0000000000..2605ca36ca --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'LLVM' +version = '3.7.1' + +homepage = "http://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'cstd': 'gnu++11'} + +source_urls = ["http://llvm.org/releases/%(version)s"] +sources = ["llvm-%(version)s.src.tar.xz"] + +builddependencies = [ + ('CMake', '3.4.3'), + ('Python', '2.7.11'), +] + +configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' + +sanity_check_paths = { + 'files': ['bin/llvm-ar'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +separate_build_dir = True + +moduleclass = 'compiler' -- GitLab From 1c022d289c4f01b916e7e531e83905d8ce590b7d Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 24 Feb 2016 09:52:52 +0100 Subject: [PATCH 169/732] {system}[intel-2016b] eudev 3.1.5 (REVIEW) --- .../e/eudev/eudev-3.1.5-intel-2016a.eb | 33 +++++++++++++++++++ .../g/gperf/gperf-3.0.4-intel-2016a.eb | 22 +++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 easybuild/easyconfigs/e/eudev/eudev-3.1.5-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb diff --git a/easybuild/easyconfigs/e/eudev/eudev-3.1.5-intel-2016a.eb b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-intel-2016a.eb new file mode 100644 index 0000000000..8da9fd6afa --- /dev/null +++ b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'eudev' +version = '3.1.5' + +homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' +description = """eudev is a fork of systemd-udev with the goal of obtaining + better compatibility with existing software such as + OpenRC and Upstart, older kernels, various toolchains + and anything else required by users and various distributions.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'cstd': 'c99'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] +patches = ['%(name)s-3.1.2_pre-2.6.34_kernel.patch'] + +builddependencies = [ + ('gperf', '3.0.4'), +] + +osdependencies = [('kernel-headers', 'linux-libc-dev')] + +configopts = '--disable-blkid --disable-selinux --disable-gudev --disable-manpages ' +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/udevadm', 'include/libudev.h', 'include/udev.h', 'lib/libudev.so.1'], + 'dirs': [], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb new file mode 100644 index 0000000000..5938576aa7 --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'gperf' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/gperf/' +description = """GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash + function and hash table, in form of C or C++ code, for looking up a value depending on the input string. The hash + function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single + string comparison only.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/gperf'], + 'dirs': [] +} + +moduleclass = 'devel' -- GitLab From 88d299aab7ad9f435840b3605e00feabfb219c5d Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 24 Feb 2016 10:12:22 +0100 Subject: [PATCH 170/732] Removed version from PrgEnv-*, as recommended by Cray (and in order to avoid the swap bugs) --- easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb | 3 ++- easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb | 3 ++- easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb | 3 ++- easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb | 3 ++- easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb | 3 ++- easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb index 4fa134a241..c636f35399 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb @@ -9,7 +9,8 @@ description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ - ('PrgEnv-cray/5.2.40', EXTERNAL_MODULE), + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-cray', EXTERNAL_MODULE), ('cce/8.3.12', EXTERNAL_MODULE), ('cray-libsci/13.0.4', EXTERNAL_MODULE), ('cray-mpich/7.2.2', EXTERNAL_MODULE), diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb index 947665d0f0..39476d8b11 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb @@ -9,7 +9,8 @@ description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ - ('PrgEnv-cray/5.2.82', EXTERNAL_MODULE), + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-cray', EXTERNAL_MODULE), ('cce/8.4.1', EXTERNAL_MODULE), ('cray-libsci/13.2.0', EXTERNAL_MODULE), ('cray-mpich/7.2.6', EXTERNAL_MODULE), diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb index 4f31279f13..0612076d5a 100644 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb @@ -9,7 +9,8 @@ description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ - ('PrgEnv-gnu/5.2.40', EXTERNAL_MODULE), + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-gnu', EXTERNAL_MODULE), ('gcc/4.8.2', EXTERNAL_MODULE), ('cray-libsci/13.0.4', EXTERNAL_MODULE), ('cray-mpich/7.2.2', EXTERNAL_MODULE), diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb index 410ddc97f5..370978db76 100644 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb @@ -9,7 +9,8 @@ description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ - ('PrgEnv-gnu/5.2.82', EXTERNAL_MODULE), + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-gnu', EXTERNAL_MODULE), ('gcc/4.9.3', EXTERNAL_MODULE), ('cray-libsci/13.2.0', EXTERNAL_MODULE), ('cray-mpich/7.2.6', EXTERNAL_MODULE), diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb index 0c39be9a84..e5197716b4 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb @@ -9,7 +9,8 @@ description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ - ('PrgEnv-intel/5.2.82', EXTERNAL_MODULE), + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-intel', EXTERNAL_MODULE), ('intel/15.0.1.133', EXTERNAL_MODULE), ('cray-libsci/13.0.4', EXTERNAL_MODULE), ('cray-mpich/7.2.2', EXTERNAL_MODULE), diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb index d021b8f24e..ead4db02ae 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb @@ -9,7 +9,8 @@ description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module toolchain = {'name': 'dummy', 'version': 'dummy'} dependencies = [ - ('PrgEnv-intel/5.2.82', EXTERNAL_MODULE), + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-intel', EXTERNAL_MODULE), ('intel/15.0.1.133', EXTERNAL_MODULE), ('cray-libsci/13.2.0', EXTERNAL_MODULE), ('cray-mpich/7.2.6', EXTERNAL_MODULE), -- GitLab From 986ed755dd319a212e3872e4b0998f2ebf6ae016 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Wed, 24 Feb 2016 13:46:34 +0100 Subject: [PATCH 171/732] fix pcre config options. Required for future R lang releases --- easybuild/easyconfigs/p/PCRE/PCRE-8.12-goalf-1.1.0-no-OFED.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.12-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.5.0.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.35-intel-2014b.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.36-foss-2015a.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2015a.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.37-foss-2015a.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015a.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015b.eb | 2 +- easybuild/easyconfigs/p/PCRE/PCRE-8.38-intel-2016a.eb | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goalf-1.1.0-no-OFED.eb index 4a9ef5925f..497a1cd036 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goalf-1.1.0-no-OFED.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://prdownloads.sourceforge.net/pcre'] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goolf-1.4.10.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goolf-1.4.10.eb index 5916d698fc..a1e4190b59 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-goolf-1.4.10.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://prdownloads.sourceforge.net/pcre'] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-4.0.6.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-4.0.6.eb index e5f29eb85e..c2c366d78a 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-4.0.6.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://prdownloads.sourceforge.net/pcre'] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.3.0.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.3.0.eb index 871d373c07..97cfc3e3dd 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.3.0.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://prdownloads.sourceforge.net/pcre'] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.5.0.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.5.0.eb index 365ae1e42a..c8297a55fa 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.12-ictce-5.5.0.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://prdownloads.sourceforge.net/pcre'] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.35-intel-2014b.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.35-intel-2014b.eb index a4df16eaad..4db7f55f63 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.35-intel-2014b.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.35-intel-2014b.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-foss-2015a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-foss-2015a.eb index 7881c04da4..bb1b441bcd 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-foss-2015a.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-foss-2015a.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2015a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2015a.eb index f2529df084..968b4462f3 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2015a.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2015a.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.37-foss-2015a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.37-foss-2015a.eb index 58ef584548..2142c1c7b5 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.37-foss-2015a.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.37-foss-2015a.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015a.eb index 1218fbc5d1..7e31b8922b 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015a.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015a.eb @@ -13,6 +13,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015b.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015b.eb index ac1733e912..1be2911b8b 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015b.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.37-intel-2015b.eb @@ -15,6 +15,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.38-intel-2016a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-intel-2016a.eb index 61beae9c6a..12bd040e3c 100644 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.38-intel-2016a.eb +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-intel-2016a.eb @@ -15,6 +15,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCELOWER_TAR_GZ] -configopts = "--with-pic --disable-cpp --enable-utf8 --enable-unicode-properties" +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" moduleclass = 'devel' -- GitLab From a9eda46e61ffa115f7ff86d5fc1a2b0f20661c5d Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 24 Feb 2016 14:19:58 +0100 Subject: [PATCH 172/732] {vis}[intel-2016b] libXext 1.3.3 (REVIEW) --- .../l/libXext/libXext-1.3.3-intel-2016a.eb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb new file mode 100644 index 0000000000..5ca8f8bd74 --- /dev/null +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 135f9f3580f2f147abfbec19015524e2957ae9f3 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 24 Feb 2016 14:29:54 +0100 Subject: [PATCH 173/732] {vis}[intel-2016b] libXfixes 5.0.1 (REVIEW) --- .../fixesproto/fixesproto-5.0-intel-2016a.eb | 19 +++++++++++++++ .../libXfixes/libXfixes-5.0.1-intel-2016a.eb | 24 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb new file mode 100644 index 0000000000..33951308af --- /dev/null +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'fixesproto' +version = '5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org FixesProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb new file mode 100644 index 0000000000..3dd084da60 --- /dev/null +++ b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 89f50747efa7402b7ab8083d77f81e835c8dd3ba Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 24 Feb 2016 14:44:16 +0100 Subject: [PATCH 174/732] {vis}[intel-2016b] libXdamage 1.1.4 (REVIEW) --- .../libXdamage-1.1.4-intel-2016a.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb new file mode 100644 index 0000000000..bc72561b6e --- /dev/null +++ b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.%s' % SHLIB_EXT, 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From d326521cc5f6abeeaee36467739e71614c9977f3 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 24 Feb 2016 15:03:10 +0100 Subject: [PATCH 175/732] {vis}[intel-2016b] libXfont 1.5.1 (REVIEW) --- .../fontsproto-2.1.3-intel-2016a.eb | 20 ++++++++++++ .../l/libXfont/libXfont-1.5.1-intel-2016a.eb | 31 +++++++++++++++++++ .../libfontenc-1.1.3-intel-2016a.eb | 23 ++++++++++++++ .../xorg-macros-1.19.0-intel-2016a.eb | 22 +++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb new file mode 100644 index 0000000000..5b1c1517ba --- /dev/null +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'fontsproto' +version = '2.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X11 font extension wire protocol" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb new file mode 100644 index 0000000000..027bd58513 --- /dev/null +++ b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXfont' +version = '1.5.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X font libary""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fontsproto', '2.1.3'), + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), + ('xorg-macros', '1.19.0'), + ('libfontenc', '1.1.3'), +] +dependencies = [ + ('libX11', '1.6.3'), + ('freetype', '2.6.2'), +] + +sanity_check_paths = { + 'files': ['lib/libXfont.%s' % SHLIB_EXT, 'lib/libXfont.a'], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb new file mode 100644 index 0000000000..458d0fa78b --- /dev/null +++ b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb new file mode 100644 index 0000000000..0697bb42ab --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From b7a106dd1c2fb81345546e08566979fbcfd9a9ff Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 24 Feb 2016 22:05:45 +0100 Subject: [PATCH 176/732] fixed wrong reference to prgenv-gnu --- easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb | 2 +- easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb | 2 +- easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb | 2 +- easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb index c636f35399..bf91772267 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb @@ -4,7 +4,7 @@ name = 'CrayCCE' version = '2015.06-XC' homepage = 'http://docs.cray.com/books/S-9407-1511' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module (PE release: November 2015).\n""" +description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module (PE release: November 2015).\n""" toolchain = {'name': 'dummy', 'version': 'dummy'} diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb index 39476d8b11..dbf091ccf3 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb @@ -4,7 +4,7 @@ name = 'CrayCCE' version = '2015.11-XC' homepage = 'http://docs.cray.com/books/S-9407-1511' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module (PE release: November 2015).\n""" +description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module (PE release: November 2015).\n""" toolchain = {'name': 'dummy', 'version': 'dummy'} diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb index e5197716b4..c80854490a 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb @@ -4,7 +4,7 @@ name = 'CrayIntel' version = '2015.06-XC' homepage = 'http://docs.cray.com/books/S-9407-1511' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module (PE release: November 2015).\n""" +description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module (PE release: November 2015).\n""" toolchain = {'name': 'dummy', 'version': 'dummy'} diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb index ead4db02ae..cc105734db 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb @@ -4,7 +4,7 @@ name = 'CrayIntel' version = '2015.11-XC' homepage = 'http://docs.cray.com/books/S-9407-1511' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module (PE release: November 2015).\n""" +description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module (PE release: November 2015).\n""" toolchain = {'name': 'dummy', 'version': 'dummy'} -- GitLab From 34f5c330aebf494428f2b9c8dfb9546af34852d9 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 06:41:57 +0000 Subject: [PATCH 177/732] Update fastqc dummy to 0.11.4 --- .../easyconfigs/f/fastqc/fastqc-0.11.4.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb new file mode 100644 index 0000000000..a4d75eb501 --- /dev/null +++ b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb @@ -0,0 +1,27 @@ +easyblock = 'EB_Java' + +name = 'fastqc' +version = '0.11.4' + +homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] +sources = ['%(name)s_v%(version)s.zip'] + +dependencies = [('Java', '1.7.0_80')] + +postinstallcmds = ["chmod -R a+rx %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +modextrapaths = {'PATH': ['']} + +sanity_check_paths = { + 'files': ['fastqc'], + 'dirs': [], +} + +sanity_check_commands = [('fastqc', '-v')] + +moduleclass = 'bio' -- GitLab From 6b5d0f1a13edc489f1891040fcef60a7be877098 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 25 Feb 2016 07:50:03 +0100 Subject: [PATCH 178/732] added xproto as builddep for libxcb (needed by libXau) --- easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index 0a842ce83c..f95256fd36 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -14,6 +14,7 @@ sources = [SOURCELOWER_TAR_GZ] builddependencies = [ ('xcb-proto', '1.11', '-Python-2.7.11'), + ('xproto', '7.0.28'), ('libpthread-stubs', '0.3'), ] dependencies = [ -- GitLab From 6666182f017dd3e4af2fe21f48e4bdc72088f063 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 06:57:03 +0000 Subject: [PATCH 179/732] Update cutadapt to 1.9.1 for foss-2015b, update homepage/description and authors --- ...cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..89051e4847 --- /dev/null +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel +# Author: Adam Huffman +# The Francis Crick Institute + +easyblock = "PythonPackage" + +name = 'cutadapt' +version = '1.9.1' + +homepage = 'http://opensource.scilifelab.se/projects/cutadapt/' +description = """ Cutadapt finds and removes adapter sequences, primers, poly-A tails and + other types of unwanted sequence from your high-throughput sequencing reads. """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.10' +pyshortver = '.'.join(pyver.split('.')[:2]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), +] + +sanity_check_paths = { + 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.so' % pyshortver], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From ea900fa9a9db4e81443148e70091e6d1bc29c412 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 07:15:08 +0000 Subject: [PATCH 180/732] Port STAR 2.5.1b to foss-2015b --- .../s/STAR/STAR-2.5.1b-foss-2015b.eb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/s/STAR/STAR-2.5.1b-foss-2015b.eb diff --git a/easybuild/easyconfigs/s/STAR/STAR-2.5.1b-foss-2015b.eb b/easybuild/easyconfigs/s/STAR/STAR-2.5.1b-foss-2015b.eb new file mode 100644 index 0000000000..8c14b0d9a6 --- /dev/null +++ b/easybuild/easyconfigs/s/STAR/STAR-2.5.1b-foss-2015b.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Author: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.1b' + +homepage = 'https://code.google.com/p/rna-star/' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(version)s.tar.gz'] + +# a binary is provided with the source files. We delete it +prebuildopts = 'rm -fr bin/ && ' + +parallel = 1 + +files_to_copy = [(["source/STAR"], "bin"), "CHANGES.md", "doc", "extras", "LICENSE", "README.md", "RELEASEnotes.md"] + +sanity_check_paths = { + 'files': ["bin/STAR"], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 46da2c8bba97084769a33fd6923df165f86bd8de Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 07:29:55 +0000 Subject: [PATCH 181/732] Update picard to 2.1.0 including move to GitHub --- .../easyconfigs/p/picard/picard-2.1.0.eb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 easybuild/easyconfigs/p/picard/picard-2.1.0.eb diff --git a/easybuild/easyconfigs/p/picard/picard-2.1.0.eb b/easybuild/easyconfigs/p/picard/picard-2.1.0.eb new file mode 100644 index 0000000000..d68d511ad0 --- /dev/null +++ b/easybuild/easyconfigs/p/picard/picard-2.1.0.eb @@ -0,0 +1,20 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman +# The Francis Crick Institute + +name = 'picard' +version = '2.1.0' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """ A set of command line tools (in Java) for manipulating + high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM + and VCF.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/broadinstitute/%(name)s/releases/download/%(version)s'] +sources = ['%(name)s-tools-%(version)s.zip'] + +dependencies = [('Java', '1.8.0_74')] + +moduleclass = 'bio' -- GitLab From 86c85bba0a716af4148bf1f2a945d7e3ea22f031 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 25 Feb 2016 09:56:09 +0100 Subject: [PATCH 182/732] {vis}[intel-2016b] Mesa-11.1.2 (WIP) --- .../l/libdrm/libdrm-2.4.67-intel-2016a.eb | 28 +++++++ .../l/libxml2/libxml2-2.9.3-intel-2016a.eb | 29 ++++++++ .../m/Mesa/Mesa-11.1.2-intel-2016a.eb | 74 +++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb new file mode 100644 index 0000000000..5a91110f77 --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libdrm' +version = '2.4.67' + +homepage = 'http://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +source_urls = ['http://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +builddependencies = [ + ('libpthread-stubs', '0.3'), +] + +dependencies = [ + ('libpciaccess', '0.13.4'), +] + +sanity_check_paths = { + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.so', + 'lib/libdrm_radeon.so', 'lib/libdrm.so', 'lib/libkms.so'], + 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb new file mode 100644 index 0000000000..b762d96901 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb new file mode 100644 index 0000000000..c0e3c997a1 --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -0,0 +1,74 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.1.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' + +sanity_check_paths = { + 'files': ['lib/libGL.so', 'lib/libOSMesa.so', + 'lib/libGLESv1_CM.so', 'lib/libGLESv2.so', + 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GLES/gl.h', 'include/GLES2/gl2.h', + 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' -- GitLab From 6c0fab2653861c660cede78a50dffa74c84aa6ff Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 25 Feb 2016 09:59:48 +0100 Subject: [PATCH 183/732] xorg-macros flrshed out --- .../xorg-macros-1.19.0-intel-2016a.eb | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb deleted file mode 100644 index 0697bb42ab..0000000000 --- a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'xorg-macros' -version = '1.19.0' - -homepage = 'http://cgit.freedesktop.org/xorg/util/macros' -description = """X.org macros utilities.""" -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! -sources = ['util-macros-%(version)s.tar.gz'] - -builddependencies = [('Autotools', '20150215')] - -preconfigopts = './autogen.sh && ' - -sanity_check_paths = { - 'files': ['share/pkgconfig/xorg-macros.pc'], - 'dirs': [], -} - -moduleclass = 'devel' -- GitLab From 03e33466685a1ccdbc19f79c0a8e209bda71b667 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 25 Feb 2016 10:01:34 +0100 Subject: [PATCH 184/732] {devel}[intel-2016b] xorg-mactos 1.19.0 (REVIEW) --- .../xorg-macros-1.19.0-intel-2016a.eb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb new file mode 100644 index 0000000000..0697bb42ab --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 2271ac6e1a3e0de4a61166fbe3332732fd6182c5 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 25 Feb 2016 10:42:30 +0100 Subject: [PATCH 185/732] added libXdmcp as dep for libxcb --- .../l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb | 25 +++++++++++++++++++ .../l/libxcb/libxcb-1.11.1-intel-2016a.eb | 1 + 2 files changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb new file mode 100644 index 0000000000..248b0fbfbc --- /dev/null +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index f95256fd36..0a6fed4f0e 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -19,6 +19,7 @@ builddependencies = [ ] dependencies = [ ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), ] sanity_check_paths = { -- GitLab From 6f9e153c549f204d30d534593425b076eb44acc2 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 25 Feb 2016 11:07:12 +0100 Subject: [PATCH 186/732] libXdmcp dep moved to libxcb/libX11 --- easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb index 5ca8f8bd74..3e89327b58 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -19,7 +19,6 @@ builddependencies = [ dependencies = [ ('libX11', '1.6.3'), - ('libXdmcp', '1.1.2'), ] sanity_check_paths = { -- GitLab From 6d8707cc3a58a9174380ca0a92907269e16da346 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 11:17:36 +0000 Subject: [PATCH 187/732] Use SHLIB_EXT for Python shared objects --- .../c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb | 2 +- .../c/cutadapt/cutadapt-1.5-intel-2014b-Python-2.7.8.eb | 2 +- .../c/cutadapt/cutadapt-1.8.1-intel-2015a-Python-2.7.9.eb | 2 +- .../c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb index 1d7c0f2ab8..141aedc7d3 100644 --- a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb @@ -26,7 +26,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/python%s/site-packages/cutadapt/_align.so' % pyshortver], + 'files': ['lib/python%s/site-packages/cutadapt/_align.%s' % (pyshortver, SHLIB_EXT)], 'dirs': [], } diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-intel-2014b-Python-2.7.8.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-intel-2014b-Python-2.7.8.eb index 259ebe78db..c50c4a1b5f 100644 --- a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-intel-2014b-Python-2.7.8.eb +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.5-intel-2014b-Python-2.7.8.eb @@ -26,7 +26,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.so' % pyshortver], + 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.%s' % (pyshortver, SHLIB_EXT)], 'dirs': [], } diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.8.1-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.8.1-intel-2015a-Python-2.7.9.eb index 880a7ad08e..8898d1ce85 100644 --- a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.8.1-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.8.1-intel-2015a-Python-2.7.9.eb @@ -29,7 +29,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.so' % pyshortver], + 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.%s' % (pyshortver, SHLIB_EXT)], 'dirs': [], } diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb index 89051e4847..6c74a88bb4 100644 --- a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.9.1-foss-2015b-Python-2.7.10.eb @@ -30,7 +30,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.so' % pyshortver], + 'files': ['bin/cutadapt', 'lib/python%s/site-packages/cutadapt/_align.%s' % (pyshortver, SHLIB_EXT)], 'dirs': [], } -- GitLab From c98cc913e1018a12ac3b6ba5f01136dc266bc0c0 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 12:16:01 +0000 Subject: [PATCH 188/732] Port PLINK to foss-2015b --- .../p/PLINK/PLINK-1.07-foss-2015b.eb | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb diff --git a/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb b/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb new file mode 100644 index 0000000000..ec21e3a09b --- /dev/null +++ b/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb @@ -0,0 +1,49 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Author: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'PLINK' +version = '1.07' + +homepage = 'http://pngu.mgh.harvard.edu/~purcell/plink/' +description = """ PLINK is a free, open-source whole genome association analysis toolset, + designed to perform a range of basic, large-scale analyses in a computationally efficient manner. + The focus of PLINK is purely on analysis of genotype/phenotype data, so there is no support for + steps prior to this (e.g. study design and planning, generating genotype or CNV calls from raw data). + Through integration with gPLINK and Haploview, there is some support for the subsequent visualization, + annotation and storage of results. """ + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'openmp': True} + +sources = ['%(namelower)s-%(version)s-src.zip'] +source_urls = ['http://pngu.mgh.harvard.edu/~purcell/plink/dist/'] + +dependencies = [('zlib', '1.2.8')] + +# plink makefile is a little bit tricky so we pass every options as arguments +# review plink original makefile for details +# if you want "new version check" change to WITH_WEBCHECK="1", but if your compute nodes +# have no internet access better leave it as is +buildopts = ' CXX_UNIX="$CXX $CXXFLAGS" WITH_R_PLUGINS=1 WITH_WEBCHECK="" WITH_ZLIB=1 ' +buildopts += ' WITH_LAPACK=1 FORCE_DYNAMIC=1 LIB_LAPACK=$BLAS_LAPACK_LIB_DIR/libmkl_lapack.a' + +files_to_copy = [ + (["plink", "gPLINK.jar"], 'bin'), + "test.map", + "test.ped", + "COPYING.txt", + "README.txt", +] + +sanity_check_paths = { + 'files': ["bin/plink", "bin/gPLINK.jar", "test.map", "test.ped", "COPYING.txt", "README.txt"], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 2b0f12104a46fe2ba2a90cc601dd88e3b1b0c7b8 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 25 Feb 2016 14:21:31 +0000 Subject: [PATCH 189/732] GROMACS 5.1.2 for foss 2015b --- .../GROMACS-5.1.2-foss-2015b-hybrid.eb | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb new file mode 100644 index 0000000000..8744e777c7 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +# +# Version 5.1.2 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.2.2'), + ('libxml2', '2.9.2') +] + +dependencies = [('Boost', '1.60.0')] + +moduleclass = 'bio' -- GitLab From 2377dc54b8e60769418bdf65bd831f68bbd99765 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Fri, 26 Feb 2016 16:46:13 +1030 Subject: [PATCH 190/732] move sources and source_urls line above toolchain line --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb | 6 +++--- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index 2679eeb7f4..a0696f7e27 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -6,6 +6,9 @@ version = '35.82' homepage = 'https://sourceforge.net/projects/bbmap/' description = """BBMap short read aligner, and other bioinformatic tools.""" +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + toolchain = {'name': 'foss', 'version': '2015b'} java = 'Java' @@ -13,9 +16,6 @@ javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver, '', True)] -source_urls = [SOURCEFORGE_SOURCE] -sources = ['%(name)s_%(version)s.tar.gz' ] - prebuildopts = 'cd jni && ' suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb index e9d0c0554f..a8764758d2 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb @@ -6,6 +6,9 @@ version = '35.82' homepage = 'https://sourceforge.net/projects/bbmap/' description = """BBMap short read aligner, and other bioinformatic tools.""" +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + toolchain = {'name': 'foss', 'version': '2015b'} java = 'Java' @@ -13,9 +16,6 @@ javaver = '1.8.0_74' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver, '', True)] -source_urls = [SOURCEFORGE_SOURCE] -sources = ['%(name)s_%(version)s.tar.gz' ] - prebuildopts = 'cd jni && ' suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] -- GitLab From a3f61ea62aed39594de22d5f876ccf718a365e9a Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Fri, 26 Feb 2016 17:21:36 +1030 Subject: [PATCH 191/732] Added patch to modify shebang lines of supplied scripts --- .../n/NextClip/NextClip-1.3.1-foss-2015b.eb | 2 + .../n/NextClip/NextClip_scripts_shebang.patch | 60 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch diff --git a/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb b/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb index b4ac0527df..3b2f0c8e13 100644 --- a/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb +++ b/easybuild/easyconfigs/n/NextClip/NextClip-1.3.1-foss-2015b.eb @@ -11,6 +11,8 @@ toolchain = {'name': 'foss', 'version': '2015b'} source_urls = ['https://github.com/richardmleggett/nextclip/archive'] sources = ['NextClip_v%(version)s.tar.gz'] +patches = ['NextClip_scripts_shebang.patch'] + files_to_copy = ['bin', 'examples', 'scripts', 'nextclipmanual.pdf'] sanity_check_paths = { diff --git a/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch b/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch new file mode 100644 index 0000000000..4e078bad33 --- /dev/null +++ b/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch @@ -0,0 +1,60 @@ +diff --git a/scripts/index_bwa.sh b/scripts/index_bwa.sh +index 2862e42..472d7f1 100755 +--- a/scripts/index_bwa.sh ++++ b/scripts/index_bwa.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + + source bwa-0.6.1 + +diff --git a/scripts/nextclip_index_reference.pl b/scripts/nextclip_index_reference.pl +index 03810b3..b7f7649 100755 +--- a/scripts/nextclip_index_reference.pl ++++ b/scripts/nextclip_index_reference.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl -w + + # Script: nextclip_index_reference.pl + # Purpose: Produce simple index file of a reference +diff --git a/scripts/nextclip_lmp_analysis.pl b/scripts/nextclip_lmp_analysis.pl +index 8af0b21..39b0f20 100755 +--- a/scripts/nextclip_lmp_analysis.pl ++++ b/scripts/nextclip_lmp_analysis.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl -w + + # Script: nextclip_lmp_analysis.pl + # Purpose: NextClip Long Mate Pair analysis pipeline +diff --git a/scripts/nextclip_make_report.pl b/scripts/nextclip_make_report.pl +index ed05261..1c80fba 100755 +--- a/scripts/nextclip_make_report.pl ++++ b/scripts/nextclip_make_report.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl -w + + # Script: nextclip_make_report.pl + # Purpose: Produce PDF report of NextClip analysis +diff --git a/scripts/nextclip_plot_graphs.sh b/scripts/nextclip_plot_graphs.sh +index f6a3a2b..d4b809e 100755 +--- a/scripts/nextclip_plot_graphs.sh ++++ b/scripts/nextclip_plot_graphs.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + + # Script: nextclip_plot_graphs.sh + # Purpose: Plot insert length and read length graphs for NextClip +diff --git a/scripts/nextclip_sam_parse.pl b/scripts/nextclip_sam_parse.pl +index cc04193..692326a 100755 +--- a/scripts/nextclip_sam_parse.pl ++++ b/scripts/nextclip_sam_parse.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl -w + + # Script: nextclip_sam_parse.pl + # Purpose: Parse SAM files for NextClip -- GitLab From d10e09de068ed2cfa0e70e8fe7d6e17901803ed3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 26 Feb 2016 09:45:59 +0100 Subject: [PATCH 192/732] fix remarks by @ladc --- .../easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb | 2 ++ .../l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb index 13281d87fa..bea932c18d 100644 --- a/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.7-goolf-1.4.10.eb @@ -12,6 +12,8 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['http://sourceforge.net/projects/lcms/files/lcms/%(version)s/'] sources = ['lcms2-%(version)s.tar.gz'] +dependencies = [('libjpeg-turbo', '1.4.2')] + sanity_check_paths = { 'files': ['bin/jpgicc', 'bin/linkicc', 'bin/psicc', 'bin/transicc', 'include/lcms2.h', 'include/lcms2_plugin.h', 'lib/liblcms2.a', 'lib/liblcms2.%s' % SHLIB_EXT, 'lib/pkgconfig/lcms2.pc'], diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb index 548eb81065..c9cc4d2e6f 100644 --- a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-goolf-1.4.10.eb @@ -23,8 +23,8 @@ runtest = "test" sanity_check_paths = { 'files': ['bin/cjpeg', 'bin/djpeg', 'bin/jpegtran', 'bin/rdjpgcom', 'bin/tjbench', 'bin/wrjpgcom', - 'lib/libjpeg.a', 'libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a', 'lib/libturbojpeg.%s' % SHLIB_EXT], - 'dirs': ['include', 'man', 'share'], + 'lib/libjpeg.a', 'lib/libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a', 'lib/libturbojpeg.%s' % SHLIB_EXT], + 'dirs': ['include', 'share/man'], } moduleclass = 'lib' -- GitLab From f1b8cfbe20d85d6b6286bc08e9b111b30acaa517 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 26 Feb 2016 09:57:28 +0100 Subject: [PATCH 193/732] add configopts related to dependencies to ImageMagick easyconfig --- .../i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb index adc09ca30a..160c3c8697 100644 --- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb @@ -25,6 +25,8 @@ dependencies = [ ('pkg-config', '0.27.1'), ] +configopts = "--with-gslib --with-x" + sanity_check_paths = { 'files': [], 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], -- GitLab From ca253943c24e7b1d039257ae86dac74b9f4b594c Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Fri, 26 Feb 2016 10:09:16 +0100 Subject: [PATCH 194/732] style fix. builddeps after deps --- .../i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb index e9fe2f9009..8b641aebb3 100644 --- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-6.9.3-3-goolf-1.4.10.eb @@ -11,10 +11,6 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] source_urls = ['https://launchpad.net/imagemagick/main/%(version)s/+download/'] -builddependencies = [ - ('pkg-config', '0.27.1'), -] - dependencies = [ ('bzip2', '1.0.6'), ('freetype', '2.5.0.1'), @@ -28,6 +24,10 @@ dependencies = [ ('LittleCMS', '2.7'), ] +builddependencies = [ + ('pkg-config', '0.27.1'), +] + configopts = "--with-gslib --with-x" sanity_check_paths = { -- GitLab From a8bfd828e19fecac84950b22b97cb7f8c803490a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 26 Feb 2016 13:58:13 +0200 Subject: [PATCH 195/732] add easyconfig MLC-3.0.eb --- easybuild/easyconfigs/m/MLC/MLC-3.0.eb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/m/MLC/MLC-3.0.eb diff --git a/easybuild/easyconfigs/m/MLC/MLC-3.0.eb b/easybuild/easyconfigs/m/MLC/MLC-3.0.eb new file mode 100644 index 0000000000..6f9d7320ea --- /dev/null +++ b/easybuild/easyconfigs/m/MLC/MLC-3.0.eb @@ -0,0 +1,23 @@ +easyblock = 'Tarball' + +name = 'MLC' +version = '3.0' + +homepage = 'https://software.intel.com/en-us/articles/intelr-memory-latency-checker' +description = """Intel Memory Latency Checker (Intel MLC) is a tool used to measure memory latencies and b/w, + and how they change with increasing load on the system.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download requires agreeing to license +# https://software.intel.com/en-us/articles/intelr-memory-latency-checker#download +sources = ['mlcv3.0.tgz'] + +sanity_check_paths = { + 'files': ['Linux/mlc', 'Linux/mlc_avx512', 'mlc_license.txt', 'readme.pdf'], + 'dirs': [], +} + +modextrapaths = {'PATH': 'Linux'} + +moduleclass = 'tools' -- GitLab From 8c0dab16657a63779f5f1ab23d30528a131fe803 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 26 Feb 2016 13:37:19 +0100 Subject: [PATCH 196/732] Python added as dep instead of builddep for xcb-proto --- .../x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb index 80c7b50387..ab4aaa83ac 100644 --- a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb @@ -15,7 +15,7 @@ sources = [SOURCELOWER_TAR_GZ] python = 'Python' pyver = '2.7.11' versionsuffix = '-%s-%s' % (python, pyver) -builddependencies = [(python, pyver)] +dependencies = [(python, pyver)] pyshortver = '.'.join(pyver.split('.')[0:2]) -- GitLab From 37064bb76ce2e9c22f0ee04b5d5c570e7efed68c Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 26 Feb 2016 15:21:28 +0100 Subject: [PATCH 197/732] add metagenomeSeq in Bioconductor bundle --- .../R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb | 1 + .../R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb | 1 + .../R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb | 1 + 3 files changed, 3 insertions(+) diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb index 9b319b7e55..1fcada1694 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-goolf-1.7.20-R-3.2.0.eb @@ -138,6 +138,7 @@ exts_list = [ ('CGHbase', '1.28.0', bioconductor_options), ('sigaR', '1.12.0', bioconductor_options), ('HCsnip', '1.8.0', bioconductor_options), + ('metagenomeSeq', '1.10.0', bioconductor_options), ] modextrapaths = {'R_LIBS': ''} diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb index e7aac6aac1..21cd4399f4 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015a-R-3.2.1.eb @@ -138,6 +138,7 @@ exts_list = [ ('CGHbase', '1.28.0', bioconductor_options), ('sigaR', '1.12.0', bioconductor_options), ('HCsnip', '1.8.0', bioconductor_options), + ('metagenomeSeq', '1.10.0', bioconductor_options), ] modextrapaths = {'R_LIBS': ''} diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb index e6d844c21e..c3940a9034 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-intel-2015b-R-3.2.1.eb @@ -138,6 +138,7 @@ exts_list = [ ('CGHbase', '1.28.0', bioconductor_options), ('sigaR', '1.12.0', bioconductor_options), ('HCsnip', '1.8.0', bioconductor_options), + ('metagenomeSeq', '1.10.0', bioconductor_options), ] modextrapaths = {'R_LIBS': ''} -- GitLab From b31fab3acd0c8a686836236940bdf97239e5fede Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 26 Feb 2016 15:32:15 +0100 Subject: [PATCH 198/732] add xcb-proto with system python dep (toolchainless) --- .../l/libxcb/libxcb-1.11.1-intel-2016a.eb | 2 ++ .../easyconfigs/x/xcb-proto/xcb-proto-1.11.eb | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index 0a6fed4f0e..faa9778d64 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -14,6 +14,8 @@ sources = [SOURCELOWER_TAR_GZ] builddependencies = [ ('xcb-proto', '1.11', '-Python-2.7.11'), + # Alternatively, you can use xcb-proto using system Python: + #('xcb-proto', 1.11', '', ('dummy', 'dummy')) ('xproto', '7.0.28'), ('libpthread-stubs', '0.3'), ] diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb new file mode 100644 index 0000000000..27a89ed005 --- /dev/null +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-proto' +version = '1.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[0:2]) + +sanity_check_paths = { + 'files': ['lib/pkgconfig/xcb-proto.pc'], + 'dirs': ['lib/python%s/site-packages/xcbgen' % pyshortver] +} + +moduleclass = 'devel' -- GitLab From d24df53180230f32708ac4364cedcf6d63710433 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 26 Feb 2016 15:37:36 +0100 Subject: [PATCH 199/732] use of 'pyver' template --- .../xcb-proto-1.11-intel-2016a-Python-2.7.11.eb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb index ab4aaa83ac..97ddefed62 100644 --- a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb @@ -12,16 +12,12 @@ toolchain = {'name': 'intel', 'version': '2016a'} source_urls = ['http://xcb.freedesktop.org/dist/'] sources = [SOURCELOWER_TAR_GZ] -python = 'Python' -pyver = '2.7.11' -versionsuffix = '-%s-%s' % (python, pyver) -dependencies = [(python, pyver)] - -pyshortver = '.'.join(pyver.split('.')[0:2]) +versionsuffix = '-Python-%(pyver)s' +dependencies = [('Python', '2.7.11')] sanity_check_paths = { 'files': ['lib/pkgconfig/xcb-proto.pc'], - 'dirs': ['lib/python%s/site-packages/xcbgen' % pyshortver] + 'dirs': ['lib/python%(pyshortver)s/site-packages/xcbgen' % pyshortver] } moduleclass = 'devel' -- GitLab From 28295bfcdf710044b12df5ce0b42839aaf3c0e51 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Sat, 27 Feb 2016 07:32:32 +1030 Subject: [PATCH 200/732] Cleaned up patch file. 1) Added comment and author. 2) Strip superfluous `-w` from perl shebang line. - the scripts already use the `use warnings;` pragma. --- .../n/NextClip/NextClip_scripts_shebang.patch | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch b/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch index 4e078bad33..35d7d7811b 100644 --- a/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch +++ b/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch @@ -1,5 +1,6 @@ -diff --git a/scripts/index_bwa.sh b/scripts/index_bwa.sh -index 2862e42..472d7f1 100755 +Fix hardcoding of /usr/bin/perl, use perl available through $PATH +Fix hardcoding of /bin/bash, use bash available through $PATH +author: Nathan S. Watson-Haigh (ACPFG) --- a/scripts/index_bwa.sh +++ b/scripts/index_bwa.sh @@ -1,4 +1,4 @@ @@ -8,38 +9,30 @@ index 2862e42..472d7f1 100755 source bwa-0.6.1 -diff --git a/scripts/nextclip_index_reference.pl b/scripts/nextclip_index_reference.pl -index 03810b3..b7f7649 100755 --- a/scripts/nextclip_index_reference.pl +++ b/scripts/nextclip_index_reference.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w -+#!/usr/bin/env perl -w ++#!/usr/bin/env perl # Script: nextclip_index_reference.pl # Purpose: Produce simple index file of a reference -diff --git a/scripts/nextclip_lmp_analysis.pl b/scripts/nextclip_lmp_analysis.pl -index 8af0b21..39b0f20 100755 --- a/scripts/nextclip_lmp_analysis.pl +++ b/scripts/nextclip_lmp_analysis.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w -+#!/usr/bin/env perl -w ++#!/usr/bin/env perl # Script: nextclip_lmp_analysis.pl # Purpose: NextClip Long Mate Pair analysis pipeline -diff --git a/scripts/nextclip_make_report.pl b/scripts/nextclip_make_report.pl -index ed05261..1c80fba 100755 --- a/scripts/nextclip_make_report.pl +++ b/scripts/nextclip_make_report.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w -+#!/usr/bin/env perl -w ++#!/usr/bin/env perl # Script: nextclip_make_report.pl # Purpose: Produce PDF report of NextClip analysis -diff --git a/scripts/nextclip_plot_graphs.sh b/scripts/nextclip_plot_graphs.sh -index f6a3a2b..d4b809e 100755 --- a/scripts/nextclip_plot_graphs.sh +++ b/scripts/nextclip_plot_graphs.sh @@ -1,4 +1,4 @@ @@ -48,13 +41,11 @@ index f6a3a2b..d4b809e 100755 # Script: nextclip_plot_graphs.sh # Purpose: Plot insert length and read length graphs for NextClip -diff --git a/scripts/nextclip_sam_parse.pl b/scripts/nextclip_sam_parse.pl -index cc04193..692326a 100755 --- a/scripts/nextclip_sam_parse.pl +++ b/scripts/nextclip_sam_parse.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w -+#!/usr/bin/env perl -w ++#!/usr/bin/env perl # Script: nextclip_sam_parse.pl # Purpose: Parse SAM files for NextClip -- GitLab From 1c72713e304c89211af163e7b5198c679f7efd12 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Sat, 27 Feb 2016 00:02:38 +0100 Subject: [PATCH 201/732] syntax corrected --- .../x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb index 97ddefed62..67fb1d84ea 100644 --- a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb @@ -17,7 +17,7 @@ dependencies = [('Python', '2.7.11')] sanity_check_paths = { 'files': ['lib/pkgconfig/xcb-proto.pc'], - 'dirs': ['lib/python%(pyshortver)s/site-packages/xcbgen' % pyshortver] + 'dirs': ['lib/python%(pyshortver)s/site-packages/xcbgen'] } moduleclass = 'devel' -- GitLab From c20c697fea73326d6717032c50feb178c94eb0ee Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 26 Feb 2016 23:31:01 +0000 Subject: [PATCH 202/732] Update GROMACS to 5.1.2 for foss 2015b --- .../easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb index 8744e777c7..db2a991381 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2015b-hybrid.eb @@ -30,7 +30,7 @@ source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] sources = [SOURCELOWER_TAR_GZ] builddependencies = [ - ('CMake', '3.2.2'), + ('CMake', '3.4.1'), ('libxml2', '2.9.2') ] -- GitLab From efbe383c0a9c022f859c2f59f6be6d4199aa199d Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 08:32:37 +0000 Subject: [PATCH 203/732] Add fixes for building with modern GCC --- .../p/PLINK/PLINK-1.07-foss-2015b.eb | 4 +- .../p/PLINK/PLINK-1.07_redeclaration.patch | 68 +++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch diff --git a/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb b/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb index ec21e3a09b..8218ead1ea 100644 --- a/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb +++ b/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb @@ -24,6 +24,8 @@ toolchainopts = {'openmp': True} sources = ['%(namelower)s-%(version)s-src.zip'] source_urls = ['http://pngu.mgh.harvard.edu/~purcell/plink/dist/'] +patches = ['PLINK-1.07_redeclaration.patch'] + dependencies = [('zlib', '1.2.8')] # plink makefile is a little bit tricky so we pass every options as arguments @@ -31,7 +33,7 @@ dependencies = [('zlib', '1.2.8')] # if you want "new version check" change to WITH_WEBCHECK="1", but if your compute nodes # have no internet access better leave it as is buildopts = ' CXX_UNIX="$CXX $CXXFLAGS" WITH_R_PLUGINS=1 WITH_WEBCHECK="" WITH_ZLIB=1 ' -buildopts += ' WITH_LAPACK=1 FORCE_DYNAMIC=1 LIB_LAPACK=$BLAS_LAPACK_LIB_DIR/libmkl_lapack.a' +buildopts += ' WITH_LAPACK=1 FORCE_DYNAMIC=1 LIB_LAPACK=$EBROOTOPENBLAS/lib/libopenblas.so' files_to_copy = [ (["plink", "gPLINK.jar"], 'bin'), diff --git a/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch b/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch new file mode 100644 index 0000000000..20e3f284a8 --- /dev/null +++ b/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch @@ -0,0 +1,68 @@ +diff --git a/sets.cpp b/sets.cpp +index 3a8f92f..adef60f 100644 +--- a/sets.cpp ++++ b/sets.cpp +@@ -768,11 +768,11 @@ vector_t Set::profileTestScore() + ////////////////////////////////////////////// + // Reset original missing status + +- vector::iterator i = PP->sample.begin(); +- while ( i != PP->sample.end() ) ++ vector::iterator i_iter = PP->sample.begin(); ++ while ( i_iter != PP->sample.end() ) + { +- (*i)->missing = (*i)->flag; +- ++i; ++ (*i_iter)->missing = (*i_iter)->flag; ++ ++i_iter; + } + + //////////////////////////////////////////////// +diff --git a/elf.cpp b/elf.cpp +index ec2ed3d..49bda44 100644 +--- a/elf.cpp ++++ b/elf.cpp +@@ -1175,10 +1175,10 @@ void Plink::elfBaseline() + << setw(8) << gcnt << " " + << setw(8) << (double)cnt / (double)gcnt << "\n"; + +- map::iterator i = chr_cnt.begin(); +- while ( i != chr_cnt.end() ) ++ map::iterator i_iter = chr_cnt.begin(); ++ while ( i_iter != chr_cnt.end() ) + { +- int c = i->first; ++ int c = i_iter->first; + int x = chr_cnt.find( c )->second; + int y = chr_gcnt.find( c )->second; + +@@ -1189,7 +1189,7 @@ void Plink::elfBaseline() + << setw(8) << y << " " + << setw(8) << (double)x / (double)y << "\n"; + +- ++i; ++ ++i_iter; + } + + } +diff --git a/idhelp.cpp b/idhelp.cpp +index a9244fa..8353c9e 100644 +--- a/idhelp.cpp ++++ b/idhelp.cpp +@@ -772,12 +772,12 @@ void IDHelper::idHelp() + for (int j = 0 ; j < jointField.size(); j++ ) + { + set & jf = jointField[j]; +- set::iterator j = jf.begin(); ++ set::iterator j_iter = jf.begin(); + PP->printLOG(" { "); +- while ( j != jf.end() ) ++ while ( j_iter != jf.end() ) + { +- PP->printLOG( (*j)->name + " " ); +- ++j; ++ PP->printLOG( (*j_iter)->name + " " ); ++ ++j_iter; + } + PP->printLOG(" }"); + } -- GitLab From 36ed24d791b618dc064b589abc3f5829f3373e8a Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 08:58:37 +0000 Subject: [PATCH 204/732] Update BWA to 0.7.13, including move to GitHub --- .../b/BWA/BWA-0.7.13-foss-2015b.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb new file mode 100644 index 0000000000..2d42585347 --- /dev/null +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb @@ -0,0 +1,32 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# +# Version >= 0.7.13 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'BWA' +version = '0.7.13' + +homepage = 'https://github.com/lh3/bwa' +description = """Burrows-Wheeler Aligner (BWA) is an efficient program that aligns + relatively short nucleotide sequences against a long reference sequence such as the human genome.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/lh3/%(name)s/archive/'] +sources = ['v%(version)s.tar.gz'] + +#Sanity check included in custom easyblock + +moduleclass = 'bio' -- GitLab From 2537e3c0735b05034ae291b72fc65aa946e0960e Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 09:08:57 +0000 Subject: [PATCH 205/732] Update Bowtie2 to 2.2.7 --- .../b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb diff --git a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb new file mode 100644 index 0000000000..2b67034216 --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman >adam.huffman@crick.ac.uk> +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.7' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' -- GitLab From 9938fc7b765ad8f868236c6a5d0be506158f59ea Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 09:10:41 +0000 Subject: [PATCH 206/732] Fix typo --- easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb index 2b67034216..f74362241f 100644 --- a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb +++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb @@ -4,7 +4,7 @@ # Biozentrum - University of Basel # Modified by: Robert Schmidt # Ottawa Hospital Research Institute - Bioinformatics Team -# Modified by: Adam Huffman >adam.huffman@crick.ac.uk> +# Modified by: Adam Huffman # The Francis Crick Institute easyblock = 'MakeCp' -- GitLab From a17dc36d1ae356e5982d0beacbd21b68222670d3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 27 Feb 2016 10:30:57 +0100 Subject: [PATCH 207/732] fix FFTW lib/include path in configopts for GROMACS w/ CrayGNU --- .../g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb index 94600c2c59..7d022ac778 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb @@ -31,8 +31,8 @@ sources = [ 'regressiontests-%(version)s.tar.gz', ] -preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW} && " -preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/../include && " +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " dependencies = [ ('fftw/3.3.4.5', EXTERNAL_MODULE), -- GitLab From e1f2153568e1e11ac44c07ebcbb0ddda5f34ea89 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 27 Feb 2016 10:31:23 +0100 Subject: [PATCH 208/732] fix FFTW lib/include path in configopts for GROMACS w/ CrayGNU --- .../g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb index 8fe8110183..eb693a5ca3 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb @@ -31,8 +31,8 @@ sources = [ 'regressiontests-%(version)s.tar.gz', ] -preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW} && " -preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/../include && " +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW}/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/include && " dependencies = [ ('fftw/3.3.4.3', EXTERNAL_MODULE), -- GitLab From 9922ff5412d8eaa7cb477e2fb31de862bb9988a1 Mon Sep 17 00:00:00 2001 From: perettig Date: Sat, 27 Feb 2016 12:04:23 +0100 Subject: [PATCH 209/732] deleted deprecated .eb versions 5.x --- .../b/Bison/Bison-3.0.2-CrayGNU-5.1.29.eb | 22 ---- .../b/Bison/Bison-3.0.2-CrayGNU-5.2.25.eb | 22 ---- .../b/Bison/Bison-3.0.2-CrayGNU-5.2.40.eb | 22 ---- .../b/bzip2/bzip2-1.0.6-CrayGNU-5.1.29.eb | 15 --- .../b/bzip2/bzip2-1.0.6-CrayGNU-5.2.25.eb | 15 --- .../b/bzip2/bzip2-1.0.6-CrayGNU-5.2.40.eb | 15 --- .../c/CMake/CMake-3.2.2-CrayGNU-5.1.29.eb | 23 ---- .../c/CMake/CMake-3.2.2-CrayGNU-5.2.25.eb | 23 ---- .../c/CMake/CMake-3.2.2-CrayGNU-5.2.40.eb | 23 ---- .../c/CP2K/CP2K-2.6.0-CrayGNU-5.1.29.eb | 38 ------ .../c/CP2K/CP2K-2.6.0-CrayGNU-5.2.25.eb | 38 ------ .../c/CP2K/CP2K-2.6.0-CrayGNU-5.2.40.eb | 38 ------ .../easyconfigs/c/CrayCCE/CrayCCE-5.1.29.eb | 16 --- .../easyconfigs/c/CrayCCE/CrayCCE-5.2.25.eb | 16 --- .../easyconfigs/c/CrayCCE/CrayCCE-5.2.40.eb | 16 --- .../easyconfigs/c/CrayGNU/CrayGNU-5.1.29.eb | 16 --- .../easyconfigs/c/CrayGNU/CrayGNU-5.2.25.eb | 16 --- .../easyconfigs/c/CrayGNU/CrayGNU-5.2.40.eb | 16 --- .../c/CrayIntel/CrayIntel-5.1.29.eb | 16 --- .../c/CrayIntel/CrayIntel-5.2.25.eb | 16 --- .../c/CrayIntel/CrayIntel-5.2.40.eb | 16 --- .../f/flex/flex-2.5.39-CrayGNU-5.1.29.eb | 14 --- .../f/flex/flex-2.5.39-CrayGNU-5.2.25.eb | 14 --- .../f/flex/flex-2.5.39-CrayGNU-5.2.40.eb | 14 --- .../GROMACS-4.6.7-CrayGNU-5.1.29-mpi.eb | 38 ------ .../GROMACS-4.6.7-CrayGNU-5.2.25-mpi.eb | 38 ------ .../GROMACS-4.6.7-CrayGNU-5.2.40-mpi.eb | 38 ------ .../h/HPL/HPL-2.1-CrayCCE-5.1.29.eb | 22 ---- .../h/HPL/HPL-2.1-CrayCCE-5.2.25.eb | 22 ---- .../h/HPL/HPL-2.1-CrayCCE-5.2.40.eb | 22 ---- .../h/HPL/HPL-2.1-CrayGNU-5.1.29.eb | 18 --- .../h/HPL/HPL-2.1-CrayGNU-5.2.25.eb | 18 --- .../h/HPL/HPL-2.1-CrayGNU-5.2.40.eb | 18 --- .../h/HPL/HPL-2.1-CrayIntel-5.1.29.eb | 18 --- .../h/HPL/HPL-2.1-CrayIntel-5.2.25.eb | 18 --- .../h/HPL/HPL-2.1-CrayIntel-5.2.40.eb | 18 --- .../j/JasPer/JasPer-1.900.1-CrayGNU-5.1.29.eb | 21 ---- .../j/JasPer/JasPer-1.900.1-CrayGNU-5.2.25.eb | 21 ---- .../l/Libint/Libint-1.1.4-CrayGNU-5.1.29.eb | 24 ---- .../l/Libint/Libint-1.1.4-CrayGNU-5.2.25.eb | 24 ---- .../libreadline-6.3-CrayGNU-5.1.29.eb | 30 ----- .../libreadline-6.3-CrayGNU-5.2.25.eb | 30 ----- .../l/libxc/libxc-2.2.1-CrayGNU-5.1.29.eb | 32 ----- .../l/libxc/libxc-2.2.1-CrayGNU-5.2.25.eb | 32 ----- .../m/M4/M4-1.4.17-CrayGNU-5.1.29.eb | 23 ---- .../m/M4/M4-1.4.17-CrayGNU-5.2.25.eb | 23 ---- .../n/ncurses/ncurses-5.9-CrayGNU-5.1.29.eb | 36 ------ .../n/ncurses/ncurses-5.9-CrayGNU-5.2.25.eb | 36 ------ ...numpy-1.9.2-CrayGNU-5.1.29-Python-2.7.9.eb | 26 ---- ...numpy-1.9.2-CrayGNU-5.2.25-Python-2.7.9.eb | 26 ---- .../Python-2.7.9-CrayGNU-5.1.29-bare.eb | 39 ------ .../p/Python/Python-2.7.9-CrayGNU-5.1.29.eb | 115 ------------------ .../Python-2.7.9-CrayGNU-5.2.25-bare.eb | 39 ------ .../p/Python/Python-2.7.9-CrayGNU-5.2.25.eb | 115 ------------------ .../s/Szip/Szip-2.1-CrayGNU-5.1.29.eb | 23 ---- .../s/Szip/Szip-2.1-CrayGNU-5.2.25.eb | 23 ---- ...cipy-0.15.1-CrayGNU-5.1.29-Python-2.7.9.eb | 19 --- ...cipy-0.15.1-CrayGNU-5.2.25-Python-2.7.9.eb | 19 --- .../t/tcsh/tcsh-6.18.01-CrayGNU-5.1.29.eb | 39 ------ .../t/tcsh/tcsh-6.18.01-CrayGNU-5.2.25.eb | 39 ------ .../w/WRF/WRF-3.6.1-CrayGNU-5.1.29-dmpar.eb | 42 ------- .../w/WRF/WRF-3.6.1-CrayGNU-5.2.25-dmpar.eb | 42 ------- .../z/zlib/zlib-1.2.8-CrayGNU-5.1.29.eb | 22 ---- .../z/zlib/zlib-1.2.8-CrayGNU-5.2.25.eb | 22 ---- 64 files changed, 1750 deletions(-) delete mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.1.29.eb delete mode 100644 easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.25.eb delete mode 100644 easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.40.eb delete mode 100644 easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.1.29.eb delete mode 100644 easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.25.eb delete mode 100644 easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.40.eb delete mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.1.29-mpi.eb delete mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.25-mpi.eb delete mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.40-mpi.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.1.29.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.25.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.40.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.40.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.1.29.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.25.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.40.eb delete mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.1.29-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.25-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29-bare.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25-bare.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.1.29-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.25-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.25.eb delete mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.1.29-dmpar.eb delete mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.25-dmpar.eb delete mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.1.29.eb delete mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.25.eb diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.1.29.eb deleted file mode 100644 index 96873ab500..0000000000 --- a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Bison' -version = '3.0.2' - -homepage = 'http://www.gnu.org/software/bison' -description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar - into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [('M4', '1.4.17')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], - 'dirs': [], -} - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.25.eb deleted file mode 100644 index 79f11b47fe..0000000000 --- a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Bison' -version = '3.0.2' - -homepage = 'http://www.gnu.org/software/bison' -description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar - into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [('M4', '1.4.17')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], - 'dirs': [], -} - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.40.eb deleted file mode 100644 index 67832ccafa..0000000000 --- a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Bison' -version = '3.0.2' - -homepage = 'http://www.gnu.org/software/bison' -description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar - into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [('M4', '1.4.17')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], - 'dirs': [], -} - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.1.29.eb deleted file mode 100644 index a04591dede..0000000000 --- a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,15 +0,0 @@ -name = 'bzip2' -version = '1.0.6' - -homepage = 'http://www.bzip.org/' -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.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.bzip.org/%(version)s'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.25.eb deleted file mode 100644 index 3f96190606..0000000000 --- a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,15 +0,0 @@ -name = 'bzip2' -version = '1.0.6' - -homepage = 'http://www.bzip.org/' -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.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.bzip.org/%(version)s'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.40.eb deleted file mode 100644 index 58489cb68f..0000000000 --- a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,15 +0,0 @@ -name = 'bzip2' -version = '1.0.6' - -homepage = 'http://www.bzip.org/' -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.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.bzip.org/%(version)s'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.1.29.eb deleted file mode 100644 index 68df962efa..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.2' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'dynamic': True} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.25.eb deleted file mode 100644 index 75190be28b..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.2' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'dynamic': True} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.40.eb deleted file mode 100644 index 275dc8cada..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.2' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'dynamic': True} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.1.29.eb deleted file mode 100644 index e1f9bdb729..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,38 +0,0 @@ -name = 'CP2K' -version = '2.6.0' - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.1'), -] - -builddependencies = [ - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test reports failures -ignore_regtest_fails = True - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.25.eb deleted file mode 100644 index 43baa97a11..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,38 +0,0 @@ -name = 'CP2K' -version = '2.6.0' - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.1'), -] - -builddependencies = [ - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test reports failures -ignore_regtest_fails = True - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.40.eb deleted file mode 100644 index eea0ba5f73..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,38 +0,0 @@ -name = 'CP2K' -version = '2.6.0' - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.1'), -] - -builddependencies = [ - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test reports failures -ignore_regtest_fails = True - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.1.29.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.1.29.eb deleted file mode 100644 index 766d96d756..0000000000 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.1.29.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayCCE' -version = '5.1.29' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-cray/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.0', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.25.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.25.eb deleted file mode 100644 index 7a2e621e24..0000000000 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.25.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayCCE' -version = '5.2.25' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-cray/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.2', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.40.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.40.eb deleted file mode 100644 index b31f4b3a23..0000000000 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-5.2.40.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayCCE' -version = '5.2.40' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-cray/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.2', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.1.29.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.1.29.eb deleted file mode 100644 index b3e7499933..0000000000 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.1.29.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayGNU' -version = '5.1.29' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-gnu/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.0', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.25.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.25.eb deleted file mode 100644 index 4015746894..0000000000 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.25.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayGNU' -version = '5.2.25' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-gnu/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.2', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.40.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.40.eb deleted file mode 100644 index dbbbbbd303..0000000000 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-5.2.40.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayGNU' -version = '5.2.40' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-gnu/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.2', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.1.29.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.1.29.eb deleted file mode 100644 index 7c17b80f7e..0000000000 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.1.29.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayIntel' -version = '5.1.29' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-intel/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.0', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.25.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.25.eb deleted file mode 100644 index edaac85f54..0000000000 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.25.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayIntel' -version = '5.2.25' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-intel/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.2', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.40.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.40.eb deleted file mode 100644 index 5937accfe4..0000000000 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-5.2.40.eb +++ /dev/null @@ -1,16 +0,0 @@ -easyblock = 'Toolchain' - -name = 'CrayIntel' -version = '5.2.40' - -homepage = '(none)' -description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module.""" - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -dependencies = [ - ('PrgEnv-intel/' + version, EXTERNAL_MODULE), # also loads cray-libsci - ('fftw/3.3.4.2', EXTERNAL_MODULE), -] - -moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.1.29.eb deleted file mode 100644 index a6d2ced89c..0000000000 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,14 +0,0 @@ -name = 'flex' -version = '2.5.39' - -homepage = 'http://flex.sourceforge.net/' -description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, - sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.25.eb deleted file mode 100644 index e9455b96ac..0000000000 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,14 +0,0 @@ -name = 'flex' -version = '2.5.39' - -homepage = 'http://flex.sourceforge.net/' -description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, - sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.40.eb deleted file mode 100644 index 470ec059e0..0000000000 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,14 +0,0 @@ -name = 'flex' -version = '2.5.39' - -homepage = 'http://flex.sourceforge.net/' -description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, - sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.1.29-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.1.29-mpi.eb deleted file mode 100644 index 1aa3886405..0000000000 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.1.29-mpi.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University -# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ -# George Tsouloupas , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html -## -name = 'GROMACS' -version = '4.6.7' -versionsuffix = '-mpi' - -homepage = 'http://www.gromacs.org' -description = """GROMACS is a versatile package to perform molecular dynamics, - i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'usempi': True} - -# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz -source_urls = [ - 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources - 'http://gerrit.gromacs.org/download/', # regression tests sources -] -sources = [ - SOURCELOWER_TAR_GZ, - 'regressiontests-%(version)s.tar.gz', -] - -builddependencies = [('CMake', '3.2.2')] - -runtest = False - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.25-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.25-mpi.eb deleted file mode 100644 index 4a945e2af8..0000000000 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.25-mpi.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University -# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ -# George Tsouloupas , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html -## -name = 'GROMACS' -version = '4.6.7' -versionsuffix = '-mpi' - -homepage = 'http://www.gromacs.org' -description = """GROMACS is a versatile package to perform molecular dynamics, - i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'usempi': True} - -# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz -source_urls = [ - 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources - 'http://gerrit.gromacs.org/download/', # regression tests sources -] -sources = [ - SOURCELOWER_TAR_GZ, - 'regressiontests-%(version)s.tar.gz', -] - -builddependencies = [('CMake', '3.2.2')] - -runtest = False - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.40-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.40-mpi.eb deleted file mode 100644 index 239ea564c8..0000000000 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-5.2.40-mpi.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University -# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ -# George Tsouloupas , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html -## -name = 'GROMACS' -version = '4.6.7' -versionsuffix = '-mpi' - -homepage = 'http://www.gromacs.org' -description = """GROMACS is a versatile package to perform molecular dynamics, - i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'usempi': True} - -# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz -source_urls = [ - 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources - 'http://gerrit.gromacs.org/download/', # regression tests sources -] -sources = [ - SOURCELOWER_TAR_GZ, - 'regressiontests-%(version)s.tar.gz', -] - -builddependencies = [('CMake', '3.2.2')] - -runtest = False - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.1.29.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.1.29.eb deleted file mode 100644 index a7abc8534e..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.1.29.eb +++ /dev/null @@ -1,22 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayCCE', 'version': '5.1.29'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -patches = [ - # fix Make dependencies, so parallel build also works - 'HPL_parallel-make.patch', - 'HPL-2.1_LINKER-ld.patch', -] - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.25.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.25.eb deleted file mode 100644 index 109c7ddafc..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.25.eb +++ /dev/null @@ -1,22 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayCCE', 'version': '5.2.25'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -patches = [ - # fix Make dependencies, so parallel build also works - 'HPL_parallel-make.patch', - 'HPL-2.1_LINKER-ld.patch', -] - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.40.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.40.eb deleted file mode 100644 index b91a1eb499..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-5.2.40.eb +++ /dev/null @@ -1,22 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayCCE', 'version': '5.2.40'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -patches = [ - # fix Make dependencies, so parallel build also works - 'HPL_parallel-make.patch', - 'HPL-2.1_LINKER-ld.patch', -] - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.1.29.eb deleted file mode 100644 index 806d976659..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.25.eb deleted file mode 100644 index b4acf0c1bc..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.40.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.40.eb deleted file mode 100644 index dcfcc5ca6e..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-5.2.40.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.40'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.1.29.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.1.29.eb deleted file mode 100644 index c8cac688c8..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.1.29.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayIntel', 'version': '5.1.29'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.25.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.25.eb deleted file mode 100644 index 0344d227a5..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.25.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayIntel', 'version': '5.2.25'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.40.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.40.eb deleted file mode 100644 index 8a33b68ad9..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-5.2.40.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayIntel', 'version': '5.2.40'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.1.29.eb deleted file mode 100644 index feca7c584a..0000000000 --- a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'JasPer' -version = '1.900.1' - -homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' -description = """The JasPer Project is an open-source initiative to provide a free - software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_ZIP] -source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] - -sanity_check_paths = { - 'files': ["bin/jasper", "lib/libjasper.a"], - 'dirs': ["include"], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.25.eb deleted file mode 100644 index 606c94876c..0000000000 --- a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'JasPer' -version = '1.900.1' - -homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' -description = """The JasPer Project is an open-source initiative to provide a free - software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_ZIP] -source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] - -sanity_check_paths = { - 'files': ["bin/jasper", "lib/libjasper.a"], - 'dirs': ["include"], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.1.29.eb deleted file mode 100644 index 7d4d9128c9..0000000000 --- a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'Libint' -version = '1.1.4' - -homepage = 'https://sourceforge.net/p/libint/' -description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body - matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'opt': True, 'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') - -configopts = "--enable-deriv --enable-r12" - -sanity_check_paths = { - 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + - ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + - ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + - ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], - 'dirs':[], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.25.eb deleted file mode 100644 index e7bca79f1d..0000000000 --- a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'Libint' -version = '1.1.4' - -homepage = 'https://sourceforge.net/p/libint/' -description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body - matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'opt': True, 'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') - -configopts = "--enable-deriv --enable-r12" - -sanity_check_paths = { - 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + - ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + - ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + - ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], - 'dirs':[], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.1.29.eb deleted file mode 100644 index 1069375589..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.3' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """The GNU Readline library provides a set of functions for use by applications that - allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. - The Readline library includes additional functions to maintain a list of previously-entered command lines, - to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '5.9')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs' : [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.25.eb deleted file mode 100644 index 33f071a9b3..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.3' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """The GNU Readline library provides a set of functions for use by applications that - allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. - The Readline library includes additional functions to maintain a list of previously-entered command lines, - to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '5.9')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs' : [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.1.29.eb deleted file mode 100644 index 548d650cde..0000000000 --- a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxc' -version = '2.2.1' - -homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' -description = """Libxc is a library of exchange-correlation functionals for density-functional theory. - The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'opt': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] - -configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' - -# From the libxc mailing list -# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect -# a fully working testsuite soon (unless someone wants to volunteer to do -# it, of course ) In the meantime, unless the majority of the tests -# fail, your build should be fine. -#runtest = 'check' - -sanity_check_paths = { - 'files': ['lib/libxc.a'], - 'dirs': ['include'], -} - -parallel = 1 - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.25.eb deleted file mode 100644 index 79002b6ce4..0000000000 --- a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxc' -version = '2.2.1' - -homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' -description = """Libxc is a library of exchange-correlation functionals for density-functional theory. - The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'opt': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] - -configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' - -# From the libxc mailing list -# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect -# a fully working testsuite soon (unless someone wants to volunteer to do -# it, of course ) In the meantime, unless the majority of the tests -# fail, your build should be fine. -#runtest = 'check' - -sanity_check_paths = { - 'files': ['lib/libxc.a'], - 'dirs': ['include'], -} - -parallel = 1 - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.1.29.eb deleted file mode 100644 index de4b325756..0000000000 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'M4' -version = '1.4.17' - -homepage = 'http://www.gnu.org/software/m4/m4.html' -description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible - although it has some extensions (for example, handling more than 9 positional parameters to macros). - GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -configopts = "--enable-cxx" - -sanity_check_paths = { - 'files': ["bin/m4"], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.25.eb deleted file mode 100644 index 06f80557f1..0000000000 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'M4' -version = '1.4.17' - -homepage = 'http://www.gnu.org/software/m4/m4.html' -description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible - although it has some extensions (for example, handling more than 9 positional parameters to macros). - GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -configopts = "--enable-cxx" - -sanity_check_paths = { - 'files': ["bin/m4"], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.1.29.eb deleted file mode 100644 index 6b7bb1c347..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,36 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['ncurses-%(version)s_configure_darwin.patch'] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.25.eb deleted file mode 100644 index 01680ab5b7..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,36 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['ncurses-%(version)s_configure_darwin.patch'] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.1.29-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.1.29-Python-2.7.9.eb deleted file mode 100644 index 49b27458ee..0000000000 --- a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.1.29-Python-2.7.9.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'numpy' -version = '1.9.2' - -homepage = 'http://www.numpy.org' -description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: - a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran - code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, - NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be - defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['numpy-1.8.0-mkl.patch'] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.25-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.25-Python-2.7.9.eb deleted file mode 100644 index fa04b42299..0000000000 --- a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-5.2.25-Python-2.7.9.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'numpy' -version = '1.9.2' - -homepage = 'http://www.numpy.org' -description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: - a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran - code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, - NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be - defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['numpy-1.8.0-mkl.patch'] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29-bare.eb deleted file mode 100644 index 5c84059a20..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29-bare.eb +++ /dev/null @@ -1,39 +0,0 @@ -name = 'Python' -version = '2.7.9' -versionsuffix = '-bare' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True, 'opt': True} - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -# bare installation: no extensions included -exts_list = [] - -buildopts = 'LINKCC="$CC -dynamic"' - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29.eb deleted file mode 100644 index 2e085966c7..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,115 +0,0 @@ -name = 'Python' -version = '2.7.9' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.9.1' -scipyversion = '0.14.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -buildopts = 'LINKCC="$CC -dynamic"' - -# order is important! -# package versions updated Jan 19th 2015 -exts_list = [ - ('setuptools', '11.3.1', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '6.0.6', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': [ - 'numpy-1.8.0-mkl.patch', # % numpyversion, - ], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('blist', '1.3.6', { - 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], - }), - ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('lockfile', '0.10.2', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.21.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.9.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.4.0', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '2.0.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.11', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.15.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), - ('pyparsing', '2.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], - }), - ('netifaces', '0.10.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], - }), - ('netaddr', '0.7.13', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], - }), -] - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25-bare.eb deleted file mode 100644 index 1e9572eb83..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25-bare.eb +++ /dev/null @@ -1,39 +0,0 @@ -name = 'Python' -version = '2.7.9' -versionsuffix = '-bare' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True, 'opt': True} - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -# bare installation: no extensions included -exts_list = [] - -buildopts = 'LINKCC="$CC -dynamic"' - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25.eb deleted file mode 100644 index 0c1b139dda..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,115 +0,0 @@ -name = 'Python' -version = '2.7.9' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.9.1' -scipyversion = '0.14.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -buildopts = 'LINKCC="$CC -dynamic"' - -# order is important! -# package versions updated Jan 19th 2015 -exts_list = [ - ('setuptools', '11.3.1', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '6.0.6', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': [ - 'numpy-1.8.0-mkl.patch', # % numpyversion, - ], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('blist', '1.3.6', { - 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], - }), - ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('lockfile', '0.10.2', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.21.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.9.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.4.0', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '2.0.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.11', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.15.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), - ('pyparsing', '2.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], - }), - ('netifaces', '0.10.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], - }), - ('netaddr', '0.7.13', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], - }), -] - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.1.29.eb deleted file mode 100644 index 04ccb9df33..0000000000 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Szip' -version = '2.1' - -homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' -description = "Szip compression software, providing lossless compression of scientific data" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True, 'dynamic': True} - -source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -sanity_check_paths = { - 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + - ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.25.eb deleted file mode 100644 index ce6dcbcc3d..0000000000 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Szip' -version = '2.1' - -homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' -description = "Szip compression software, providing lossless compression of scientific data" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True, 'dynamic': True} - -source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -sanity_check_paths = { - 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + - ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.1.29-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.1.29-Python-2.7.9.eb deleted file mode 100644 index d6c03f828c..0000000000 --- a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.1.29-Python-2.7.9.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'scipy' -version = '0.15.1' -versionsuffix = '-Python-2.7.9' - -homepage = 'http://www.scipy.org' -description = """SciPy is a collection of mathematical algorithms and convenience - functions built on the Numpy extension for Python.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True} - -source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('numpy', '1.9.2', versionsuffix), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.25-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.25-Python-2.7.9.eb deleted file mode 100644 index be06b3e907..0000000000 --- a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-5.2.25-Python-2.7.9.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'scipy' -version = '0.15.1' -versionsuffix = '-Python-2.7.9' - -homepage = 'http://www.scipy.org' -description = """SciPy is a collection of mathematical algorithms and convenience - functions built on the Numpy extension for Python.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True} - -source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('numpy', '1.9.2', versionsuffix), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.1.29.eb deleted file mode 100644 index b62190e55f..0000000000 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,39 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit -# Authors:: Valentin Plugaru -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html -## -easyblock = 'ConfigureMake' - -name = 'tcsh' -version = '6.18.01' - -homepage = 'http://www.tcsh.org' -description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). - It is a command language interpreter usable both as an interactive login shell and a shell script command - processor. It includes a command-line editor, programmable word completion, spelling correction, a history - mechanism, job control and a C-like syntax.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'dynamic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [ - 'ftp://ftp.astron.com/pub/%(namelower)s', - 'ftp://ftp.astron.com/pub/%(namelower)s/old', -] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/tcsh"], - 'dirs': [] -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.25.eb deleted file mode 100644 index c678adaf68..0000000000 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,39 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit -# Authors:: Valentin Plugaru -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html -## -easyblock = 'ConfigureMake' - -name = 'tcsh' -version = '6.18.01' - -homepage = 'http://www.tcsh.org' -description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). - It is a command language interpreter usable both as an interactive login shell and a shell script command - processor. It includes a command-line editor, programmable word completion, spelling correction, a history - mechanism, job control and a C-like syntax.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'dynamic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [ - 'ftp://ftp.astron.com/pub/%(namelower)s', - 'ftp://ftp.astron.com/pub/%(namelower)s/old', -] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/tcsh"], - 'dirs': [] -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.1.29-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.1.29-dmpar.eb deleted file mode 100644 index cfdc17ab69..0000000000 --- a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.1.29-dmpar.eb +++ /dev/null @@ -1,42 +0,0 @@ -name = 'WRF' -version = '3.6.1' - -homepage = 'http://www.wrf-model.org' -description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale - numerical weather prediction system designed to serve both operational forecasting and atmospheric - research needs.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 - -sources = ['%(name)sV%(version)s.TAR.gz'] -source_urls = [ - 'http://www2.mmm.ucar.edu/wrf/src/', - 'http://www.mmm.ucar.edu/wrf/src/', -] - -# use tcsh provided by system, using an EB-provided tcsh results in a hanging build command on some Cray systems -osdependencies = ['tcsh'] -#builddependencies = [('tcsh', '6.18.01')] - -dependencies = [ - ('JasPer', '1.900.1'), - ('cray-netcdf/4.3.2', EXTERNAL_MODULE), - ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), -] - -patches = [ - 'WRF_parallel_build_fix.patch', - 'WRF-3.6.1_known_problems.patch', - 'WRF_tests_limit-runtimes.patch', -] - -# limit parallel build to 20 -maxparallel = 20 - -buildtype = "dmpar" -versionsuffix = '-%s' % buildtype - -runtest = False - -moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.25-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.25-dmpar.eb deleted file mode 100644 index b4103d924f..0000000000 --- a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-5.2.25-dmpar.eb +++ /dev/null @@ -1,42 +0,0 @@ -name = 'WRF' -version = '3.6.1' - -homepage = 'http://www.wrf-model.org' -description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale - numerical weather prediction system designed to serve both operational forecasting and atmospheric - research needs.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 - -sources = ['%(name)sV%(version)s.TAR.gz'] -source_urls = [ - 'http://www2.mmm.ucar.edu/wrf/src/', - 'http://www.mmm.ucar.edu/wrf/src/', -] - -# use tcsh provided by system, using an EB-provided tcsh results in a hanging build command on some Cray systems -osdependencies = ['tcsh'] -#builddependencies = [('tcsh', '6.18.01')] - -dependencies = [ - ('JasPer', '1.900.1'), - ('cray-netcdf/4.3.2', EXTERNAL_MODULE), - ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), -] - -patches = [ - 'WRF_parallel_build_fix.patch', - 'WRF-3.6.1_known_problems.patch', - 'WRF_tests_limit-runtimes.patch', -] - -# limit parallel build to 20 -maxparallel = 20 - -buildtype = "dmpar" -versionsuffix = '-%s' % buildtype - -runtest = False - -moduleclass = 'geo' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.1.29.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.1.29.eb deleted file mode 100644 index e23fdc62cb..0000000000 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.1.29.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'zlib' -version = '1.2.8' - -homepage = 'http://www.zlib.net/' -description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, - not covered by any patents -- lossless data-compression library for use on virtually any - computer hardware and operating system.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.1.29'} -toolchainopts = {'pic': True, 'dynamic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] - -sanity_check_paths = { - 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.25.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.25.eb deleted file mode 100644 index 196dc1e3be..0000000000 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-5.2.25.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'zlib' -version = '1.2.8' - -homepage = 'http://www.zlib.net/' -description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, - not covered by any patents -- lossless data-compression library for use on virtually any - computer hardware and operating system.""" - -toolchain = {'name': 'CrayGNU', 'version': '5.2.25'} -toolchainopts = {'pic': True, 'dynamic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] - -sanity_check_paths = { - 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'lib' -- GitLab From 732df2686676167f531b7e4de3268b978f878747 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 27 Feb 2016 14:31:03 +0100 Subject: [PATCH 210/732] update with R 3.2.3 easyconfig in current develop --- .../easyconfigs/r/R/R-3.2.3-foss-2015b.eb | 1 - .../easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 26 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb index aae3ac82f6..229ad73a8c 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb @@ -56,7 +56,6 @@ exts_list = [ 'utils', # non-standard libraries, should be specified with fixed versions! ('Rmpi', '0.6-5', ext_options), - ('Rmpi', '0.6-5', ext_options), ('abind', '1.4-3', ext_options), ('magic', '1.5-6', ext_options), ('geometry', '0.3-6', ext_options), diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index 2f1c082832..46ed150b7a 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -393,6 +393,32 @@ exts_list = [ ('tensorA', '0.36', ext_options), ('EasyABC', '1.5', ext_options), ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), ] moduleclass = 'lang' -- GitLab From ce8f1d793d00f67a5dce1baaa21ffec30ccc7471 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 20:09:20 +0000 Subject: [PATCH 211/732] Add details about purpose and provenance of the patch --- .../easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch b/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch index 20e3f284a8..9ba80c7478 100644 --- a/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch +++ b/easybuild/easyconfigs/p/PLINK/PLINK-1.07_redeclaration.patch @@ -1,3 +1,10 @@ +Taken from https://github.com/Homebrew/homebrew-science/pull/958 + +This fixes code in PLINK that causes errors when building with +GCC >= 4.8. + +The patch is itself derived from Debian originally. + diff --git a/sets.cpp b/sets.cpp index 3a8f92f..adef60f 100644 --- a/sets.cpp -- GitLab From fec82c4c000dd1f46ab3e57f95f3ec7479092339 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 20:12:03 +0000 Subject: [PATCH 212/732] Use platform-agnostic dynamic library extension --- easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb b/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb index 8218ead1ea..3dbf1f6dcc 100644 --- a/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb +++ b/easybuild/easyconfigs/p/PLINK/PLINK-1.07-foss-2015b.eb @@ -33,7 +33,7 @@ dependencies = [('zlib', '1.2.8')] # if you want "new version check" change to WITH_WEBCHECK="1", but if your compute nodes # have no internet access better leave it as is buildopts = ' CXX_UNIX="$CXX $CXXFLAGS" WITH_R_PLUGINS=1 WITH_WEBCHECK="" WITH_ZLIB=1 ' -buildopts += ' WITH_LAPACK=1 FORCE_DYNAMIC=1 LIB_LAPACK=$EBROOTOPENBLAS/lib/libopenblas.so' +buildopts += ' WITH_LAPACK=1 FORCE_DYNAMIC=1 LIB_LAPACK=$EBROOTOPENBLAS/lib/libopenblas.%s' % SHLIB_EXT files_to_copy = [ (["plink", "gPLINK.jar"], 'bin'), -- GitLab From 3ab3bd7a72ddaf4c7aa4ca42b3d283b3e68c63e9 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 27 Feb 2016 20:16:27 +0000 Subject: [PATCH 213/732] Remove superfluous comment --- easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb index 2d42585347..c4baaa942f 100644 --- a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb @@ -27,6 +27,4 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['https://github.com/lh3/%(name)s/archive/'] sources = ['v%(version)s.tar.gz'] -#Sanity check included in custom easyblock - moduleclass = 'bio' -- GitLab From 881a1af7508fe81b6716e69ca4cf91469764b885 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 08:24:29 +0000 Subject: [PATCH 214/732] Port HTSeq and matplotlib dep to foss-2015b --- .../HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb | 32 +++++++++++++ ...tplotlib-1.5.1-foss-2015b-Python-2.7.10.eb | 45 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb create mode 100644 easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..59b6c70412 --- /dev/null +++ b/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = 'HTSeq' +version = '0.6.1p1' + +homepage = 'http://www-huber.embl.de/users/anders/HTSeq/' +description = """A framework to process and analyze data from high-throughput sequencing (HTS) assays""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonver = '2.7.10' +pyshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % (python, pythonver) +eggname = '%%(name)s-%%(version)s-py%s-linux-x86_64.egg' % pyshortver + +dependencies = [ + (python, pythonver), + ('matplotlib', '1.5.1', versionsuffix), +] + +sanity_check_paths = { + 'files': ["bin/htseq-count", "bin/htseq-qa"], + 'dirs': ["lib/python%s/site-packages/%s" % (pyshortver, eggname)], +} + +options = {'modulename': '%(name)s'} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..207a23ff90 --- /dev/null +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb @@ -0,0 +1,45 @@ +easyblock = 'Bundle' + +name = 'matplotlib' +version = '1.5.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://matplotlib.org' +description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of + hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python + and ipython shell, web application servers, and six graphical user interface toolkits.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_filter = ('python -c "import %(ext_name)s"', '') + +dependencies = [ + ('Python', '2.7.10'), + ('freetype', '2.6.2'), + ('libpng', '1.6.21'), +] + +exts_list = [ + ('Cycler', '0.9.0', { + 'modulename': 'cycler', + 'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'], + 'source_tmpl': 'cycler-%(version)s.tar.gz', + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/m/matplotlib'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'vis' -- GitLab From 23f91104b705ad48bb482f5e9dd34e22c11e1b10 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 08:27:08 +0000 Subject: [PATCH 215/732] Change moduleclass to bio --- .../h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb index 59b6c70412..84e43a6849 100644 --- a/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/h/HTSeq/HTSeq-0.6.1p1-foss-2015b-Python-2.7.10.eb @@ -29,4 +29,4 @@ sanity_check_paths = { options = {'modulename': '%(name)s'} -moduleclass = 'data' +moduleclass = 'bio' -- GitLab From 345cfaa10d12af8d373e52420b02c22ef47226c8 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 10:32:34 +0000 Subject: [PATCH 216/732] Add missing deps freetype and libpng --- .../f/freetype/freetype-2.6.2-foss-2015b.eb | 21 +++++++++++++++++++ .../l/libpng/libpng-1.6.21-foss-2015b.eb | 19 +++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2015b.eb create mode 100644 easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2015b.eb b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2015b.eb new file mode 100644 index 0000000000..54449d2405 --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2015b.eb @@ -0,0 +1,21 @@ +name = 'freetype' +version = '2.6.2' + +homepage = 'http://freetype.org' +description = """FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and + portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display + servers, font conversion tools, text image generation tools, and many other products as well.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('libpng', '1.6.21')] + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb new file mode 100644 index 0000000000..eb62c5487c --- /dev/null +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.21' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +configopts = "--with-pic" + +moduleclass = 'lib' -- GitLab From 2ee94c2ec31992f07aeca2aa10ed443b97b87235 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 28 Feb 2016 14:08:46 +0100 Subject: [PATCH 217/732] add missing easyconfigs to resolve deps for R 3.2.3 w/ intel/2016a --- .../c/cURL/cURL-7.47.0-intel-2016a.eb | 31 +++++++++++++++++ .../d/Doxygen/Doxygen-1.8.11-intel-2016a.eb | 19 +++++++++++ .../g/GDAL/GDAL-2.0.2-intel-2016a.eb | 29 ++++++++++++++++ .../l/libxml2/libxml2-2.9.3-intel-2016a.eb | 29 ++++++++++++++++ .../n/netCDF/netCDF-4.3.3.1-intel-2016a.eb | 34 +++++++++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb new file mode 100644 index 0000000000..d47702643f --- /dev/null +++ b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.47.0' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# dependencies = [('OpenSSL', '1.0.1r')] +# configopts = "--with-ssl=$EBROOTOPENSSL" + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb new file mode 100644 index 0000000000..dd1ad80d3a --- /dev/null +++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb @@ -0,0 +1,19 @@ +name = 'Doxygen' +version = '1.8.11' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.4.1'), + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a.eb new file mode 100644 index 0000000000..203a2ae454 --- /dev/null +++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = '2.0.2' + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://download.osgeo.org/gdal/%(version)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('netCDF', '4.3.3.1'), + ('expat', '2.1.0'), + ('libxml2', '2.9.3'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['lib/libgdal.%s' % SHLIB_EXT, 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb new file mode 100644 index 0000000000..b762d96901 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-intel-2016a.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-intel-2016a.eb new file mode 100644 index 0000000000..40796ae26b --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-intel-2016a.eb @@ -0,0 +1,34 @@ +name = 'netCDF' +version = '4.3.3.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/', + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/old', +] + +dependencies = [ + ('HDF5', '1.8.16'), + ('cURL', '7.47.0'), +] + +builddependencies = [ + ('CMake', '3.4.1'), + ('Doxygen', '1.8.11'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' -- GitLab From 8dd7e4c9c70387654f7b9e18936ad94767d668fc Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 20:59:47 +0000 Subject: [PATCH 218/732] Add sanity checks from intel version --- easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb index eb62c5487c..03fb87f59f 100644 --- a/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2015b.eb @@ -16,4 +16,11 @@ dependencies = [('zlib', '1.2.8')] configopts = "--with-pic" +majminver = ''.join(version.split('.')[:2]) +sanity_check_paths = { + 'files': ['include/pngconf.h', 'include/png.h', 'include/pnglibconf.h', 'lib/libpng.a', + 'lib/libpng.%s' % SHLIB_EXT, 'lib/libpng%s.a' % majminver, 'lib/libpng%s.%s' % (majminver, SHLIB_EXT)], + 'dirs': ['bin', 'include/libpng%s' % majminver, 'share/man'], +} + moduleclass = 'lib' -- GitLab From 9ccd759202411cc04a8a5c4c20dfe5f0601cf9f4 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 21:08:20 +0000 Subject: [PATCH 219/732] Revert homepage to SourceForge, keep source url as GitHub --- easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb index c4baaa942f..2018ca59b4 100644 --- a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2015b.eb @@ -12,12 +12,14 @@ # Version >= 0.7.13 # Author: Adam Huffman # The Francis Crick Institute +# +# Note that upstream development is mainly at: https://github.com/lh3/bwa ## name = 'BWA' version = '0.7.13' -homepage = 'https://github.com/lh3/bwa' +homepage = 'http://bio-bwa.sourceforge.net/' description = """Burrows-Wheeler Aligner (BWA) is an efficient program that aligns relatively short nucleotide sequences against a long reference sequence such as the human genome.""" -- GitLab From 4c85cfcbcaf4214827916aa863bfb6425503d90b Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 21:21:01 +0000 Subject: [PATCH 220/732] Port to foss-2015b with Perl 5.22.0 --- .../PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb diff --git a/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb b/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb new file mode 100644 index 0000000000..c5cac8c87f --- /dev/null +++ b/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb @@ -0,0 +1,118 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Modified by Adam Huffman +# The Francis Crick Institute + +easyblock = 'Tarball' + +name = 'PRINSEQ' +version = '0.20.4' + +homepage = 'http://prinseq.sourceforge.net' +description = """A bioinformatics tool to PRe-process and show INformation of SEQuence data.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://sourceforge.net/projects/prinseq/files/standalone/'] +sources = ['%(namelower)s-lite-%(version)s.tar.gz'] + +perl = 'Perl' +perlver = '5.22.0' +versionsuffix = '-%s-%s' % (perl, perlver) + +dependencies = [ + (perl, perlver), +] + +# these are the perl libraries dependencies +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +exts_list = [ + ('ExtUtils::Depends', '0.405', { + 'source_tmpl': 'ExtUtils-Depends-0.405.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('ExtUtils::PkgConfig', '1.15', { + 'source_tmpl': 'ExtUtils-PkgConfig-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV/'], + }), + ('Pod::Usage', '1.68', { + 'source_tmpl': 'Pod-Usage-1.68.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR/'], + }), + ('File::Temp', '0.2304', { + 'source_tmpl': 'File-Temp-0.2304.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/'], + }), + ('Digest::MD5', '2.54', { + 'source_tmpl': 'Digest-MD5-2.54.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA/'], + }), + ('Cairo', '1.106', { + 'source_tmpl': 'Cairo-1.106.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('Statistics::PCA', '0.0.1', { + 'source_tmpl': 'Statistics-PCA-0.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSTH/'], + }), + ('MIME::Base64', '3.15', { + 'source_tmpl': 'MIME-Base64-3.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('Math::Cephes::Matrix', '0.5304', { + 'source_tmpl': 'Math-Cephes-0.5304.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/'], + }), + ('Math::MatrixReal', '2.12', { + 'source_tmpl': 'Math-MatrixReal-2.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LETO/'], + }), + ('Text::SimpleTable', '2.03', { + 'source_tmpl': 'Text-SimpleTable-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MR/MRAMBERG/'], + }), + ('Contextual::Return', '0.004008', { + 'source_tmpl': 'Contextual-Return-0.004008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/'], + }), + ('Want', '0.26', { + 'source_tmpl': 'Want-0.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN/'], + }), +] + +# this is the script which relies in many extra Perl libraries so we verify it's working fine +sanity_check_commands = [('perl', '%(installdir)s/prinseq-graphs.pl')] + +modextrapaths = { + 'PATH': "", # add installation dir to PATH + 'PERL5LIB': 'lib/perl5/site_perl/%s/' % (perlver) +} + +postinstallcmds = [ + "sed -i -e 's|/usr/bin/perl|/usr/bin/env\ perl|' %(installdir)s/*.pl", # fix shebang line + "chmod +x %(installdir)s/*.pl" # add execution permission +] + +sanity_check_paths = { + 'files': ['prinseq-lite.pl', 'prinseq-graphs.pl', 'prinseq-graphs-noPCA.pl'], + 'dirs': [] +} + +moduleclass = 'bio' -- GitLab From e3b608a17ab7d1d29ad29f1585ca97e9048ae9c6 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 21:23:08 +0000 Subject: [PATCH 221/732] Use bare Perl --- .../p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb b/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb index c5cac8c87f..9d69ec6346 100644 --- a/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb +++ b/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb @@ -23,7 +23,7 @@ perlver = '5.22.0' versionsuffix = '-%s-%s' % (perl, perlver) dependencies = [ - (perl, perlver), + (perl, perlver, '-bare'), ] # these are the perl libraries dependencies -- GitLab From 1fd2f757002f308e9a18d8da6607d72be91112fb Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 21:55:51 +0000 Subject: [PATCH 222/732] Port TopHat2 to foss-2015b --- .../t/TopHat/TopHat-2.1.1-foss-2015b.eb | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb new file mode 100644 index 0000000000..31db65ea57 --- /dev/null +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb @@ -0,0 +1,41 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'TopHat' +version = '2.1.1' + +homepage = 'http://ccb.jhu.edu/software/tophat/' +description = """TopHat is a fast splice junction mapper for RNA-Seq reads.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://ccb.jhu.edu/software/tophat/downloads/'] + +patches = [ + 'tophat_ictce.patch', + 'tophat-2.0.13-zlib.patch', +] + +dependencies = [ + ('Boost', '1.60.0'), + ('zlib', '1.2.8'), +] + +configopts = '--with-boost=$EBROOTBOOST' + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/tophat'], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 78dc6d965f6ee331912f3d693fbb044ce7e713db Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 22:03:45 +0000 Subject: [PATCH 223/732] Disable obsolete bundled SeqAn patch for ictce --- easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb index 31db65ea57..dfc3160664 100644 --- a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb @@ -20,7 +20,7 @@ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://ccb.jhu.edu/software/tophat/downloads/'] patches = [ - 'tophat_ictce.patch', + #'tophat_ictce.patch', 'tophat-2.0.13-zlib.patch', ] -- GitLab From 2a49fc45bee7a42924637dc5db55c101d5081b91 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 22:06:27 +0000 Subject: [PATCH 224/732] Remove reference to obsolete patch --- easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb index dfc3160664..3bdcb05552 100644 --- a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.1-foss-2015b.eb @@ -20,7 +20,6 @@ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://ccb.jhu.edu/software/tophat/downloads/'] patches = [ - #'tophat_ictce.patch', 'tophat-2.0.13-zlib.patch', ] -- GitLab From c57b21df6e316880f727115ae54e8018ba22e9bd Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 22:34:55 +0000 Subject: [PATCH 225/732] Update ATSAS PR to 2.7.1 for EL7 --- .../a/ATSAS/ATSAS-2.7.1-1.el7.x86_64.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/a/ATSAS/ATSAS-2.7.1-1.el7.x86_64.eb diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.7.1-1.el7.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.7.1-1.el7.x86_64.eb new file mode 100644 index 0000000000..d2e1adc5f0 --- /dev/null +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.7.1-1.el7.x86_64.eb @@ -0,0 +1,24 @@ +easyblock = 'Tarball' + +name = 'ATSAS' +version = '2.7.1-1' +versionsuffix = '.el7.x86_64' + +homepage = 'http://www.embl-hamburg.de/ExternalInfo/Research/Sax/software.html' +description = """ATSAS is a program suite for small-angle scattering data analysis from biological macromolecules.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download via http://www.embl-hamburg.de/biosaxs/download.html +sources = ['%(name)s-%(version)s%(versionsuffix)s.tar.gz'] + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/atsas'], +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'lib64/atsas', 'share/atsas'], +} + +moduleclass = 'bio' -- GitLab From 706d522e108ed3af7d674ac1bb113b427cca4a18 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 28 Feb 2016 22:58:56 +0000 Subject: [PATCH 226/732] Port Exonerate to foss-2015b --- .../e/Exonerate/Exonerate-2.2.0-foss-2015b.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb diff --git a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb new file mode 100644 index 0000000000..56718e16b7 --- /dev/null +++ b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'Exonerate' +version = '2.2.0' + +homepage = 'http://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate' +description = """ Exonerate is a generic tool for pairwise sequence comparison. + It allows you to align sequences using a many alignment models, using either + exhaustive dynamic programming, or a variety of heuristics. """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('GLib', '2.34.3')] + +# parallel build fails +parallel = 1 + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["exonerate", "fastaclip", "fastaoverlap"]], + 'dirs': ["share"], +} + +moduleclass = 'bio' -- GitLab From 27e6de9cdc5b54a3fbe4949e34e2cf94aefcb414 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Mon, 29 Feb 2016 14:19:59 +1030 Subject: [PATCH 227/732] Do not patch standard /bin/bash shebang --- .../n/NextClip/NextClip_scripts_shebang.patch | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch b/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch index 35d7d7811b..41d0a5aee9 100644 --- a/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch +++ b/easybuild/easyconfigs/n/NextClip/NextClip_scripts_shebang.patch @@ -1,14 +1,5 @@ Fix hardcoding of /usr/bin/perl, use perl available through $PATH -Fix hardcoding of /bin/bash, use bash available through $PATH author: Nathan S. Watson-Haigh (ACPFG) ---- a/scripts/index_bwa.sh -+++ b/scripts/index_bwa.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/usr/bin/env bash - - source bwa-0.6.1 - --- a/scripts/nextclip_index_reference.pl +++ b/scripts/nextclip_index_reference.pl @@ -1,4 +1,4 @@ @@ -33,14 +24,6 @@ author: Nathan S. Watson-Haigh (ACPFG) # Script: nextclip_make_report.pl # Purpose: Produce PDF report of NextClip analysis ---- a/scripts/nextclip_plot_graphs.sh -+++ b/scripts/nextclip_plot_graphs.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/usr/bin/env bash - - # Script: nextclip_plot_graphs.sh - # Purpose: Plot insert length and read length graphs for NextClip --- a/scripts/nextclip_sam_parse.pl +++ b/scripts/nextclip_sam_parse.pl @@ -1,4 +1,4 @@ -- GitLab From f3d74231e0f1cb067f670ada15b04c1b3bc167ee Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 29 Feb 2016 08:14:15 +0000 Subject: [PATCH 228/732] Add GLib-2.34.3 for foss-2015b, dep of Exonerate --- .../g/GLib/GLib-2.34.3-foss-2015b.eb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb new file mode 100644 index 0000000000..7b323a630d --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.34.3' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = ['glib-%(version)s.tar.xz'] + +dependencies = [ + ('libffi', '3.0.13'), + ('gettext', '0.18.2'), + ('libxml2', '2.9.1'), +] +builddependencies = [('Python', '2.7.3')] + +moduleclass = 'vis' -- GitLab From 5696614ee4628512d461fd548e76d172f013c2fc Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 29 Feb 2016 08:21:31 +0000 Subject: [PATCH 229/732] Add gettext 0.18.2 for foss-2015b, required by Exonerate --- .../g/gettext/gettext-0.18.2-foss-2015b.eb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.18.2-foss-2015b.eb diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.18.2-foss-2015b.eb b/easybuild/easyconfigs/g/gettext/gettext-0.18.2-foss-2015b.eb new file mode 100644 index 0000000000..e7d30bfac7 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.18.2-foss-2015b.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' -- GitLab From 16dff43802386b1e30413b192c45ba9ad28c6da9 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 29 Feb 2016 08:27:30 +0000 Subject: [PATCH 230/732] Add libxml2 2.9.1 for foss-2015b, required by Exonerate --- .../l/libxml2/libxml2-2.9.1-foss-2015b.eb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-foss-2015b.eb diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-foss-2015b.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-foss-2015b.eb new file mode 100644 index 0000000000..03c075bd1a --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.1-foss-2015b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' -- GitLab From 39cce5364c3d11f2fe5beb6d4df0b7b9a217156e Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 29 Feb 2016 08:31:24 +0000 Subject: [PATCH 231/732] Add libreadline-6.2 & Python-2.7.3 for foss-2015b, required by Exonerate --- .../libreadline/libreadline-6.2-foss-2015b.eb | 30 ++++++ .../p/Python/Python-2.7.3-foss-2015b.eb | 91 +++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.3-foss-2015b.eb diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb new file mode 100644 index 0000000000..6589e3ba7c --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.2' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.3-foss-2015b.eb b/easybuild/easyconfigs/p/Python/Python-2.7.3-foss-2015b.eb new file mode 100644 index 0000000000..7bff359058 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.3-foss-2015b.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' -- GitLab From 9d482c5f629fd622429a12205cc78e75481f2823 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 29 Feb 2016 09:12:02 +0000 Subject: [PATCH 232/732] Fix source location for Exonerate --- easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb index 56718e16b7..6a9d4b5398 100644 --- a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb +++ b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.2.0-foss-2015b.eb @@ -17,7 +17,7 @@ description = """ Exonerate is a generic tool for pairwise sequence comparison. toolchain = {'name': 'foss', 'version': '2015b'} -source_urls = [homepage] +source_urls = ['http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/%(namelower)s/'] sources = [SOURCELOWER_TAR_GZ] dependencies = [('GLib', '2.34.3')] -- GitLab From 25fc417f23ed3aace68b32d6940139fa6ce109a2 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 29 Feb 2016 11:09:45 +0100 Subject: [PATCH 233/732] minor update in sanity_check_paths in ATSAS easyconfigs --- easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb | 2 +- easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb index 60a094505c..3806f502e6 100644 --- a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb @@ -18,7 +18,7 @@ modextrapaths = { sanity_check_paths = { 'files': [], - 'dirs': ['bin', 'lib64/atsas'], + 'dirs': ['bin', 'lib64/atsas', 'share/atsas'], } moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb index 5dc5ca2151..53cffee901 100644 --- a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb @@ -18,7 +18,7 @@ modextrapaths = { sanity_check_paths = { 'files': [], - 'dirs': ['bin', 'lib64/atsas'], + 'dirs': ['bin', 'lib64/atsas', 'share/atsas'], } moduleclass = 'bio' -- GitLab From eeeeb1d63b5aa30279312e603ab101ca0b9b801d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 29 Feb 2016 11:14:21 +0100 Subject: [PATCH 234/732] no 'atsas' subdir in 'share' for older ATSAS versions --- easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb | 2 +- easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb index 3806f502e6..72a18e6d64 100644 --- a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.el6.x86_64.eb @@ -18,7 +18,7 @@ modextrapaths = { sanity_check_paths = { 'files': [], - 'dirs': ['bin', 'lib64/atsas', 'share/atsas'], + 'dirs': ['bin', 'lib64/atsas', 'share'], } moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb index 53cffee901..8f8ca911d7 100644 --- a/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb +++ b/easybuild/easyconfigs/a/ATSAS/ATSAS-2.5.1-1.sl5.x86_64.eb @@ -18,7 +18,7 @@ modextrapaths = { sanity_check_paths = { 'files': [], - 'dirs': ['bin', 'lib64/atsas', 'share/atsas'], + 'dirs': ['bin', 'lib64/atsas', 'share'], } moduleclass = 'bio' -- GitLab From 9615ed7316f14d2de87e1c4eb2be54a01236071a Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Mon, 29 Feb 2016 14:44:13 +0100 Subject: [PATCH 235/732] Add easyconfig for latest MVAPICH2 2.1 and 2.2b --- .../m/MVAPICH2/MVAPICH2-2.1-GCC-4.9.3-2.25.eb | 17 +++++++++++++++++ .../m/MVAPICH2/MVAPICH2-2.2b-GCC-4.9.3-2.25.eb | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.1-GCC-4.9.3-2.25.eb create mode 100644 easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.2b-GCC-4.9.3-2.25.eb diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.1-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.1-GCC-4.9.3-2.25.eb new file mode 100644 index 0000000000..13f9a5a43d --- /dev/null +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.1-GCC-4.9.3-2.25.eb @@ -0,0 +1,17 @@ +name = 'MVAPICH2' +version = '2.1' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] +sources = [SOURCELOWER_TAR_GZ] + +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['0095ceecb19bbb7fb262131cb9c2cdd6'] + +builddependencies = [('Bison', '3.0.4')] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.2b-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.2b-GCC-4.9.3-2.25.eb new file mode 100644 index 0000000000..7f35d9ebdf --- /dev/null +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.2b-GCC-4.9.3-2.25.eb @@ -0,0 +1,17 @@ +name = 'MVAPICH2' +version = '2.2b' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] +sources = [SOURCELOWER_TAR_GZ] + +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['5651e8b7a72d7c77ca68da48f3a5d108'] + +builddependencies = [('Bison', '3.0.4')] + +moduleclass = 'mpi' -- GitLab From 59b3ad2fd4b84df9d337f8ec5e1b94dcb7dbaf40 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Mon, 29 Feb 2016 14:57:59 +0100 Subject: [PATCH 236/732] Add new toolchain foos_mv2 2016a Same as foss 2016a except that OpenMPI is replaced by MVAPICH2. --- .../b/Bison/Bison-3.0.4-GCC-4.9.3-2.25.eb | 22 ++++++++++++ .../f/FFTW/FFTW-3.3.4-gmvapich2-2016a.eb | 34 ++++++++++++++++++ .../easyconfigs/f/foss_mv2/foss_mv2-2016a.eb | 35 +++++++++++++++++++ .../g/gmvapich2/gmvapich2-2016a.eb | 25 +++++++++++++ ...ich2-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb | 25 +++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3-2.25.eb create mode 100644 easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmvapich2-2016a.eb create mode 100644 easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb create mode 100644 easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb create mode 100644 easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmvapich2-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3-2.25.eb new file mode 100644 index 0000000000..570b1b1c8b --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCC-4.9.3-2.25.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmvapich2-2016a.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmvapich2-2016a.eb new file mode 100644 index 0000000000..757b5eba91 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmvapich2-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.4' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gmvapich2', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-quad-precision", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom', 'q-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']] + + ['lib/libfftw3q.a', 'lib/libfftw3q_omp.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb b/easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb new file mode 100644 index 0000000000..868fa56f62 --- /dev/null +++ b/easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'Toolchain' + +name = 'foss_mv2' +version = '2016a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + MVAPICH2 for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gccver = '4.9.3-2.25' + +blaslib = 'OpenBLAS' +blasver = '0.2.15' +blas = '%s-%s' % (blaslib, blasver) +blassuff = '-LAPACK-3.6.0' + +# toolchain used to build foss dependencies +comp_mpi_tc_name = 'gmvapich2' +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), + ('MVAPICH2', '2.2b', '', ('GCC', gccver)), + (blaslib, blasver, blassuff, ('GCC', gccver)), + ('FFTW', '3.3.4', '', comp_mpi_tc), + ('ScaLAPACK', '2.0.2', '-%s%s' % (blas, blassuff), comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb b/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb new file mode 100644 index 0000000000..efd6351300 --- /dev/null +++ b/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb @@ -0,0 +1,25 @@ +easyblock = "Toolchain" + +name = 'gmvapich2' +version = '2016a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including MVAPICH2 for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compname = 'GCC' +compver = '4.9.3-2.25' +comp = (compname, compver) + +mpilib = 'MVAPICH2' +mpiver = '2.2b' + +# compiler toolchain dependencies +dependencies = [ + comp, + (mpilib, mpiver, '', comp), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmvapich2-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmvapich2-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb new file mode 100644 index 0000000000..ea5206c7ec --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmvapich2-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb @@ -0,0 +1,25 @@ +name = 'ScaLAPACK' +version = '2.0.2' + +homepage = 'http://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gmvapich2', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] + +blaslib = 'OpenBLAS' +blasver = '0.2.15' +blassuff = '-LAPACK-3.6.0' + +versionsuffix = "-%s-%s%s" % (blaslib, blasver, blassuff) + +dependencies = [(blaslib, blasver, blassuff, ('GCC', '4.9.3-2.25'))] + +# parallel build tends to fail, so disabling it +parallel = 1 + +moduleclass = 'numlib' -- GitLab From 5568d14ced220871b5303bd34e8cf295dfb338c8 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 29 Feb 2016 20:05:44 +0200 Subject: [PATCH 237/732] add easyconfig Boost-1.60.0-intel-2016a-Python-2.7.11.eb --- .../Boost-1.60.0-intel-2016a-Python-2.7.11.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..5a42251165 --- /dev/null +++ b/easybuild/easyconfigs/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' -- GitLab From 99911e51a62b180a0e56cb2e817e54ad28acbd71 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 1 Mar 2016 06:21:44 +1030 Subject: [PATCH 238/732] Moved sources and source_urls to below toolchain --- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb | 4 ++-- .../b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb index 543fdf8204..cd21d99d6d 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -6,11 +6,11 @@ version = '35.82' homepage = 'https://sourceforge.net/projects/bbmap/' description = """BBMap short read aligner, and other bioinformatic tools.""" +toolchain = {'name': 'foss', 'version': '2015b'} + source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s_%(version)s.tar.gz' ] -toolchain = {'name': 'foss', 'version': '2015b'} - java = 'Java' javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb index 5ec7a87ccc..dff5ba78e2 100644 --- a/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb @@ -6,11 +6,11 @@ version = '35.82' homepage = 'https://sourceforge.net/projects/bbmap/' description = """BBMap short read aligner, and other bioinformatic tools.""" +toolchain = {'name': 'foss', 'version': '2015b'} + source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s_%(version)s.tar.gz' ] -toolchain = {'name': 'foss', 'version': '2015b'} - java = 'Java' javaver = '1.8.0_74' versionsuffix = '-%s-%s' % (java, javaver) -- GitLab From 2396154e2efec2abc991051f89c4bbfdd954969c Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 1 Mar 2016 09:12:29 +1030 Subject: [PATCH 239/732] rm empty line and moved sources above dependencies. --- .../g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb index 01cd80052a..db19b2803a 100644 --- a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb @@ -14,6 +14,9 @@ description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST toolchain = {'name': 'foss', 'version': '2015b'} +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + # with these deps you can use standard compressed files # to support files in gobby format take a look at README for extra dependencies # http://research-pub.gene.com/gmap/src/README @@ -22,9 +25,6 @@ dependencies = [ ('zlib', '1.2.8'), ] -source_urls = ['http://research-pub.gene.com/gmap/src/'] -sources = [SOURCELOWER_TAR_GZ] - # you can change the MAX_READLENGTH for GSNAP with something like this. # details in the README http://research-pub.gene.com/gmap/src/README #configopts = 'MAX_READLENGTH=250' @@ -35,4 +35,3 @@ sanity_check_paths = { } moduleclass = 'bio' - -- GitLab From 59c143639c705d0790db523ba85984b9ebe2c9db Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 1 Mar 2016 11:02:34 +1030 Subject: [PATCH 240/732] Patch fastqc shebang --- .../f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb | 2 ++ .../f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb | 2 ++ .../f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb | 2 ++ .../f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb | 2 ++ easybuild/easyconfigs/f/FastQC/FastQC_shebang.patch | 11 +++++++++++ 5 files changed, 19 insertions(+) create mode 100644 easybuild/easyconfigs/f/FastQC/FastQC_shebang.patch diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb index 505f4f2807..02def8d267 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb @@ -22,6 +22,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} sources = ['%(namelower)s_v%(version)s.zip'] source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] +patches = ['FastQC_shebang.patch'] + java = 'Java' javaver = '1.7.0_80' versionsuffix = '-%s-%s' % (java, javaver) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb index c8f4df417f..77e77bc53c 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb @@ -14,6 +14,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] sources = ['%(namelower)s_v%(version)s.zip'] +patches = ['FastQC_shebang.patch'] + java = 'Java' javaver = '1.7.0_60' versionsuffix = '-%s-%s' % (java, javaver) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb index 5b66419773..cda11898cd 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb @@ -14,6 +14,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] sources = ['%(namelower)s_v%(version)s.zip'] +patches = ['FastQC_shebang.patch'] + java = 'Java' javaver = '1.7.0_80' versionsuffix = '-%s-%s' % (java, javaver) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb index 301434b905..811ae1b2f1 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb @@ -14,6 +14,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] sources = ['%(namelower)s_v%(version)s.zip'] +patches = ['FastQC_shebang.patch'] + java = 'Java' javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC_shebang.patch b/easybuild/easyconfigs/f/FastQC/FastQC_shebang.patch new file mode 100644 index 0000000000..8e9733bfce --- /dev/null +++ b/easybuild/easyconfigs/f/FastQC/FastQC_shebang.patch @@ -0,0 +1,11 @@ +Fix hardcoding of /usr/bin/perl, use perl available through $PATH +author: Nathan S. Watson-Haigh (ACPFG) +--- fastqc.orig 2016-03-01 10:53:17.433849105 +1030 ++++ fastqc 2016-03-01 10:53:44.850579745 +1030 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + use warnings; + use strict; + use FindBin qw($RealBin); + -- GitLab From e235142f01298e92a3ba422e3ae49c75f8b40b00 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 1 Mar 2016 11:03:20 +1030 Subject: [PATCH 241/732] Added FastQC easyconfig for Java 1.8.0_74 --- .../f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb new file mode 100644 index 0000000000..1ade195661 --- /dev/null +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb @@ -0,0 +1,33 @@ +easyblock = 'PackedBinary' + +name = 'FastQC' +version = '0.11.4' + +homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' +description = """FastQC is a quality control application for high throughput sequence data. + It reads in sequence data in a variety of formats and can either provide an interactive + application to review the results of several different QC checks, or create an HTML based + report which can be integrated into a pipeline.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/%(namelower)s'] +sources = ['%(namelower)s_v%(version)s.zip'] + +patches = ['FastQC_shebang.patch'] + +java = 'Java' +javaver = '1.8.0_74' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +postinstallcmds = ['chmod +x %(installdir)s/fastqc'] + +sanity_check_paths = { + 'files': ['fastqc'], + 'dirs': [], +} + +sanity_check_commands = [('fastqc', '-v')] + +moduleclass = 'bio' -- GitLab From 3fb3472a3993017be1dbe49d2dd4384d9b3d8674 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 1 Mar 2016 13:03:14 +1030 Subject: [PATCH 242/732] Added additional dependencies for foss-2015b --- .../s/SQLite/SQLite-3.8.8.1-foss-2015b.eb | 38 +++++++++++++++++++ .../t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb | 24 ++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-foss-2015b.eb create mode 100644 easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-foss-2015b.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-foss-2015b.eb new file mode 100644 index 0000000000..b3cfb08afd --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-foss-2015b.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2015b'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb new file mode 100644 index 0000000000..31e024fb43 --- /dev/null +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' -- GitLab From 422795e79def0a88f53e09422dbb906e261a1080 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 1 Mar 2016 13:12:08 +1030 Subject: [PATCH 243/732] Ignore EasyBuild log files generated when using gc3pie --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8179a745b4..ed706988e3 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ dist/ *egg-info/ *.swp *.ropeproject/ +eb-*.log -- GitLab From c54e5589cbcb366b1b2b76a4ed2348722307d723 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 1 Mar 2016 09:08:09 +0100 Subject: [PATCH 244/732] use system python xcb-proto (with dummy toolchain) --- .../l/libxcb/libxcb-1.11.1-intel-2016a.eb | 4 +--- ...cb-proto-1.11-intel-2016a-Python-2.7.11.eb | 23 ------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index faa9778d64..fb5897b62d 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -13,9 +13,7 @@ source_urls = ['http://xcb.freedesktop.org/dist/'] sources = [SOURCELOWER_TAR_GZ] builddependencies = [ - ('xcb-proto', '1.11', '-Python-2.7.11'), - # Alternatively, you can use xcb-proto using system Python: - #('xcb-proto', 1.11', '', ('dummy', 'dummy')) + ('xcb-proto', '1.11', '', True), ('xproto', '7.0.28'), ('libpthread-stubs', '0.3'), ] diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb deleted file mode 100644 index 67fb1d84ea..0000000000 --- a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.11.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'xcb-proto' -version = '1.11' - -homepage = 'http://xcb.freedesktop.org/' -description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, -latency hiding, direct access to the protocol, improved threading support, and extensibility.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://xcb.freedesktop.org/dist/'] -sources = [SOURCELOWER_TAR_GZ] - -versionsuffix = '-Python-%(pyver)s' -dependencies = [('Python', '2.7.11')] - -sanity_check_paths = { - 'files': ['lib/pkgconfig/xcb-proto.pc'], - 'dirs': ['lib/python%(pyshortver)s/site-packages/xcbgen'] -} - -moduleclass = 'devel' -- GitLab From 1bc43aa964c4c9b1bbf2248d5179def7f2e3a3eb Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 1 Mar 2016 09:13:04 +0100 Subject: [PATCH 245/732] added comment for xcb-proto --- easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb index 27a89ed005..6a306d862e 100644 --- a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb +++ b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11.eb @@ -7,6 +7,8 @@ homepage = 'http://xcb.freedesktop.org/' description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.""" +# even though xcb-proto is installed with configure-make-make install, nothing is actually built; +# only .py files are installed using Python, and some .xlm flies copied, so OK to use dummy toolchain toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://xcb.freedesktop.org/dist/'] -- GitLab From 178df22db68499259f8f0b9039d6679e7d0707e7 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 1 Mar 2016 09:16:14 +0100 Subject: [PATCH 246/732] libX11 using system python dependent xcb-proto --- easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb index abaa07d7cf..5df5e13e43 100644 --- a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb @@ -13,7 +13,7 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xextproto', '7.3.0'), - ('xcb-proto', '1.11', '-Python-2.7.11'), + ('xcb-proto', '1.11', '', True), ('inputproto', '2.3.1'), ('xproto', '7.0.28'), ('libpthread-stubs', '0.3'), -- GitLab From dabd9c350d7c563b0afcfd5ba24418d6e90b2394 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 1 Mar 2016 09:49:09 +0100 Subject: [PATCH 247/732] minor style fixes in X lib easyconfigs --- .../easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb | 2 +- .../easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb | 2 +- .../easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb | 8 ++++---- .../x/xextproto/xextproto-7.3.0-intel-2016a.eb | 1 - .../easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb | 1 - 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb index cca4ea1438..243dbd6f22 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -18,7 +18,7 @@ builddependencies = [ ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb index 248b0fbfbc..24fc239d5e 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb @@ -18,7 +18,7 @@ builddependencies = [ ('xproto', '7.0.28'), ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index fb5897b62d..098e8569bb 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -23,10 +23,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb index dcc6160700..af65fa2a9d 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb index 217429b1ab..bb8657a96c 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] -- GitLab From 13e0fd850081d09820f7b98047e2b220018c26cf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 1 Mar 2016 10:03:03 +0100 Subject: [PATCH 248/732] don't hardcode optarch=True in xextproto/xtrans easyconfigs --- .../easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb | 1 - .../easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb | 1 - .../easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb | 1 - easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb | 1 - easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb | 1 - easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb | 1 - .../easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb | 1 - easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb | 1 - easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb | 1 - easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.4.10.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.5.14.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-4.1.13.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-5.3.0.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb | 1 - easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb | 1 - 20 files changed, 20 deletions(-) diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb index d4118dc48c..222c1cb8a9 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb index 6e6a5a03b2..f8d28a6517 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb index 054bc51cbe..7e5dd65346 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '4.1.13'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb index 4f5a5e2a0d..e73a8f9515 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb index 829a1e95f8..0f74426405 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2014b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb index 0c9b21f3fb..bceed61321 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2014b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb index 18ab59d5ae..eb7322e162 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb index 673a0e5e21..6156597f8b 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2014b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb index 494a482b64..96189817b0 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb index 6c19b3821e..d2b93b5852 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb @@ -7,7 +7,6 @@ homepage = "http://www.freedesktop.org/wiki/Software/xlibs" description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.4.10.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.4.10.eb index 6694ef584a..247e613160 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.4.10.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'goolf', 'version': '1.4.10'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.5.14.eb index 7ac7af4a53..33279f3ceb 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-goolf-1.5.14.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'goolf', 'version': '1.5.14'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-4.1.13.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-4.1.13.eb index ec378cd83c..7b02bd54ca 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-4.1.13.eb @@ -8,7 +8,6 @@ description = """xtrans includes a number of routines to make X implementations at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. """ toolchain = {'name': 'ictce', 'version': '4.1.13'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-5.3.0.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-5.3.0.eb index 98cc20e543..2b8c6ebbdd 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.2-ictce-5.3.0.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'ictce', 'version': '5.3.0'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb index 0edc961a34..6edc4ce87f 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.2.6-foss-2014b.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'foss', 'version': '2014b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb index 1a4f54a0c5..eac6d863c0 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2014b.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'intel', 'version': '2014b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb index 01968fd489..788f0681d1 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.4-intel-2015a.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'intel', 'version': '2015a'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb index ed6733fd17..573dd33276 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-goolf-1.5.14.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'goolf', 'version': '1.5.14'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb index 0613532497..a2e3133d2a 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015a.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'intel', 'version': '2015a'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb index 21b74f6cfe..e36d13a40f 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2015b.eb @@ -9,7 +9,6 @@ description = """xtrans includes a number of routines to make X implementations """ toolchain = {'name': 'intel', 'version': '2015b'} -toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] -- GitLab From 09f7bcf1f365506804290e641cc0d42e32528357 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 1 Mar 2016 10:10:13 +0100 Subject: [PATCH 249/732] minor style fixes in libXau/libXdmcp/libxcb easyconfigs --- easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2014b.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-goolf-1.4.10.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-ictce-4.1.13.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-ictce-5.3.0.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb | 2 +- .../easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb | 2 +- .../easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb | 2 +- .../easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb | 2 +- .../easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb | 2 +- .../easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb | 2 +- .../l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb | 8 ++++---- .../l/libxcb/libxcb-1.10-intel-2014b-Python-2.7.8.eb | 8 ++++---- .../l/libxcb/libxcb-1.11-goolf-1.5.14-Python-2.7.9.eb | 8 ++++---- .../l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.10.eb | 8 ++++---- .../l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.9.eb | 8 ++++---- .../l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.10.eb | 8 ++++---- .../l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.11.eb | 8 ++++---- .../libxcb/libxcb-1.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb | 8 ++++---- .../l/libxcb/libxcb-1.8-goolf-1.4.10-Python-2.7.3.eb | 8 ++++---- .../l/libxcb/libxcb-1.8-goolf-1.5.14-Python-2.7.3.eb | 8 ++++---- .../l/libxcb/libxcb-1.8-ictce-4.0.6-Python-2.7.3.eb | 8 ++++---- .../l/libxcb/libxcb-1.8-ictce-4.1.13-Python-2.7.3.eb | 8 ++++---- .../l/libxcb/libxcb-1.8-ictce-5.3.0-Python-2.7.3.eb | 8 ++++---- .../l/libxcb/libxcb-1.8-intel-2014b-Python-2.7.8.eb | 8 ++++---- 26 files changed, 68 insertions(+), 68 deletions(-) diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2014b.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2014b.eb index fb7fa9047c..7a01f9c781 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2014b.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2014b.eb @@ -18,7 +18,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.4.10.eb index bb9632f8a7..12dd6869a6 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.4.10.eb @@ -14,7 +14,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb index 658d67c165..f1bc2bfb36 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb @@ -18,7 +18,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-4.1.13.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-4.1.13.eb index 20b6db8b12..2131263c1d 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-4.1.13.eb @@ -14,7 +14,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-5.3.0.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-5.3.0.eb index 7fec589824..6493f4c619 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-ictce-5.3.0.eb @@ -14,7 +14,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb index 4d40c3b428..22bf8016cf 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb @@ -18,7 +18,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb index 724c920249..408dc4aede 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb @@ -18,7 +18,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb index 9cfc777f9e..9304d0fc79 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb @@ -18,7 +18,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['libXau.a', 'libXau.%s' % SHLIB_EXT]], + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb index a15cb924db..735a0391ab 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb @@ -18,7 +18,7 @@ builddependencies = [ ('xproto', '7.0.26'), ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb index dfac851674..cc513f2315 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb @@ -18,7 +18,7 @@ builddependencies = [ ('xproto', '7.0.27'), ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb index 0bcd783d04..79416debdd 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb @@ -18,7 +18,7 @@ builddependencies = [ ('xproto', '7.0.27'), ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb index e4f8395c43..93de3908f0 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb @@ -18,7 +18,7 @@ builddependencies = [ ('xproto', '7.0.28'), ] sanity_check_paths = { - 'files': ['lib/%s' % x for x in ['%(name)s.a', '%(name)s.so']], + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb index 104ccdae65..6921c06b50 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb @@ -26,10 +26,10 @@ dependencies = [ #preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.10-intel-2014b-Python-2.7.8.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.10-intel-2014b-Python-2.7.8.eb index 72ed48fe99..ce3fc060e8 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.10-intel-2014b-Python-2.7.8.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.10-intel-2014b-Python-2.7.8.eb @@ -24,10 +24,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-goolf-1.5.14-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-goolf-1.5.14-Python-2.7.9.eb index 26de0f9322..5ba8e74d17 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-goolf-1.5.14-Python-2.7.9.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-goolf-1.5.14-Python-2.7.9.eb @@ -21,10 +21,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.10.eb index 4f2074c3fb..24ebce544e 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.10.eb @@ -24,10 +24,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.9.eb index d72a9273ac..5da025a420 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2015a-Python-2.7.9.eb @@ -24,10 +24,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.10.eb index 6621cf1702..89cf21ee1e 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.10.eb @@ -24,10 +24,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.11.eb index cc7392bf9e..59081eb776 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2015b-Python-2.7.11.eb @@ -24,10 +24,10 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb index 2a52455403..3b3682ba69 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.4.10-Python-2.7.3.eb index a52d5bb05d..ed4684b89c 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.4.10-Python-2.7.3.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.5.14-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.5.14-Python-2.7.3.eb index 056448ccd2..768ffc0072 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.5.14-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-goolf-1.5.14-Python-2.7.3.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.0.6-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.0.6-Python-2.7.3.eb index 1368050899..228e1f7aaf 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.0.6-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.0.6-Python-2.7.3.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.1.13-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.1.13-Python-2.7.3.eb index 68e4849e58..4733d7980f 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.1.13-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-4.1.13-Python-2.7.3.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-5.3.0-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-5.3.0-Python-2.7.3.eb index 16f804c17d..e27e71a1c5 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-5.3.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-ictce-5.3.0-Python-2.7.3.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-intel-2014b-Python-2.7.8.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-intel-2014b-Python-2.7.8.eb index 8c055b9572..008c8f05f6 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.8-intel-2014b-Python-2.7.8.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.8-intel-2014b-Python-2.7.8.eb @@ -25,10 +25,10 @@ dependencies = [ preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], 'dirs': ['include/xcb', 'lib/pkgconfig'], } -- GitLab From f5dc75d383fdf09e64c446e1ab94694f2e84d493 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Tue, 1 Mar 2016 10:55:10 +0100 Subject: [PATCH 250/732] GAMESS-US for intel/2016a --- .../GAMESS-US-20141205-R1-intel-2016a.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20141205-R1-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20141205-R1-intel-2016a.eb b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20141205-R1-intel-2016a.eb new file mode 100644 index 0000000000..b9f96d96e3 --- /dev/null +++ b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20141205-R1-intel-2016a.eb @@ -0,0 +1,23 @@ +name = 'GAMESS-US' +version = '20141205-R1' + +homepage = 'http://www.msg.chem.iastate.edu/gamess/index.html' +description = """ The General Atomic and Molecular Electronic Structure System (GAMESS) + is a general ab initio quantum chemistry package. """ + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': True} + +# manually download via http://www.msg.chem.iastate.edu/gamess/download.html (requires registration) +# rename gamess-current.tar.gz by changing 'current' to the proper version +sources = ['gamess-%(version)s.tar.gz'] +checksums = ['6403592eaa885cb3691505964d684516'] + +patches = ['GAMESS-US_rungms-slurm.patch'] + +# increase these numbers if your system is bigger in terms of cores-per-node or number of nodes +# it's OK if these values are larger than what your system provides +maxcpus = '1000' +maxnodes = '100000' + +moduleclass = 'chem' -- GitLab From 1f99e880ce30ff3e36228c2f81e7ff171519586e Mon Sep 17 00:00:00 2001 From: Ewan Higgs Date: Tue, 1 Mar 2016 11:51:14 +0100 Subject: [PATCH 251/732] Bring xtrans sanity check in line with new 2015 check. --- easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb index 8366af681c..983b4ae968 100644 --- a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-intel-2016a.eb @@ -15,9 +15,8 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] sanity_check_paths = { - 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtransdnet.c', 'Xtrans.h', - 'Xtransint.h', 'Xtranslcl.c', 'Xtransos2.c', 'Xtranssock.c', - 'Xtranstli.c', 'Xtransutil.c']], + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], 'dirs': [], } -- GitLab From f1ea4e405247379130399eecb2ea64b88ad2ef1a Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Tue, 1 Mar 2016 14:39:31 +0100 Subject: [PATCH 252/732] Rename foss_mv2/2016a to gmvolf/2016a --- .../{f/foss_mv2/foss_mv2-2016a.eb => g/gmvolf/gmvolf-2016a.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easybuild/easyconfigs/{f/foss_mv2/foss_mv2-2016a.eb => g/gmvolf/gmvolf-2016a.eb} (98%) diff --git a/easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb b/easybuild/easyconfigs/g/gmvolf/gmvolf-2016a.eb similarity index 98% rename from easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb rename to easybuild/easyconfigs/g/gmvolf/gmvolf-2016a.eb index 868fa56f62..b9a63b2c7c 100644 --- a/easybuild/easyconfigs/f/foss_mv2/foss_mv2-2016a.eb +++ b/easybuild/easyconfigs/g/gmvolf/gmvolf-2016a.eb @@ -1,6 +1,6 @@ easyblock = 'Toolchain' -name = 'foss_mv2' +name = 'gmvolf' version = '2016a' homepage = '(none)' -- GitLab From 41d4edb4448ceed6054e0ec90e1f016dcbc6257a Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Tue, 1 Mar 2016 14:52:20 +0100 Subject: [PATCH 253/732] Add new toolchain gmpolf/2016a (same as foss/2016a but with MPICH 3.2) --- .../f/FFTW/FFTW-3.3.4-gmpich-2016a.eb | 34 ++++++++++++++++++ .../easyconfigs/g/gmpich/gmpich-2016a.eb | 25 +++++++++++++ .../easyconfigs/g/gmpolf/gmpolf-2016a.eb | 35 +++++++++++++++++++ .../m/MPICH/MPICH-3.2-GCC-4.9.3-2.25.eb | 16 +++++++++ ...pich-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb | 25 +++++++++++++ 5 files changed, 135 insertions(+) create mode 100644 easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmpich-2016a.eb create mode 100644 easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb create mode 100644 easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb create mode 100644 easybuild/easyconfigs/m/MPICH/MPICH-3.2-GCC-4.9.3-2.25.eb create mode 100644 easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmpich-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmpich-2016a.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmpich-2016a.eb new file mode 100644 index 0000000000..71efac9c7e --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-gmpich-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.4' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gmpich', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-quad-precision", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom', 'q-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']] + + ['lib/libfftw3q.a', 'lib/libfftw3q_omp.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb b/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb new file mode 100644 index 0000000000..d495830401 --- /dev/null +++ b/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb @@ -0,0 +1,25 @@ +easyblock = "Toolchain" + +name = 'gmpich' +version = '2016a' + +homepage = '(none)' +description = """gcc and GFortran based compiler toolchain, + including MPICH for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compname = 'GCC' +compver = '4.9.3-2.25' +comp = (compname, compver) + +mpilib = 'MPICH' +mpiver = '3.2' + +# compiler toolchain dependencies +dependencies = [ + comp, + (mpilib, mpiver, '', comp), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb b/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb new file mode 100644 index 0000000000..391d1f7f0c --- /dev/null +++ b/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb @@ -0,0 +1,35 @@ +easyblock = "Toolchain" + +name = 'gmpolf' +version = '2016a' + +homepage = '(none)' +description = """gcc and GFortran based compiler toolchain, + MPICH for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gccver = '4.9.3-2.25' + +blaslib = 'OpenBLAS' +blasver = '0.2.15' +blas = '%s-%s' % (blaslib, blasver) +blassuff = '-LAPACK-3.6.0' + +# toolchain used to build foss dependencies +comp_mpi_tc_name = 'gmpich' +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), + ('MVAPICH2', '2.2b', '', ('GCC', gccver)), + (blaslib, blasver, blassuff, ('GCC', gccver)), + ('FFTW', '3.3.4', '', comp_mpi_tc), + ('ScaLAPACK', '2.0.2', '-%s%s' % (blas, blassuff), comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-3.2-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/m/MPICH/MPICH-3.2-GCC-4.9.3-2.25.eb new file mode 100644 index 0000000000..06251f71e8 --- /dev/null +++ b/easybuild/easyconfigs/m/MPICH/MPICH-3.2-GCC-4.9.3-2.25.eb @@ -0,0 +1,16 @@ +name = 'MPICH' +version = '3.2' + +homepage = 'http://www.mpich.org/' +description = """MPICH v3.x is an open source high-performance MPI 3.0 implementation. +It does not support InfiniBand (use MVAPICH2 with InfiniBand devices).""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.mpich.org/static/tarballs/%(version)s'] + +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['f414cfa77099cd1fa1a5ae4e22db508a'] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmpich-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmpich-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb new file mode 100644 index 0000000000..9cf751a2ad --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.0.2-gmpich-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0.eb @@ -0,0 +1,25 @@ +name = 'ScaLAPACK' +version = '2.0.2' + +homepage = 'http://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gmpich', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] + +blaslib = 'OpenBLAS' +blasver = '0.2.15' +blassuff = '-LAPACK-3.6.0' + +versionsuffix = "-%s-%s%s" % (blaslib, blasver, blassuff) + +dependencies = [(blaslib, blasver, blassuff, ('GCC', '4.9.3-2.25'))] + +# parallel build tends to fail, so disabling it +parallel = 1 + +moduleclass = 'numlib' -- GitLab From 53522dffe1b16b4875262a28d04e656704bbd150 Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Tue, 1 Mar 2016 15:59:25 +0100 Subject: [PATCH 254/732] New horton easyconfig --- ...Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 59 +++++++++++++++++++ .../l/Libint/Libint-2.0.3-intel-2015b.eb | 14 +++++ 2 files changed, 73 insertions(+) create mode 100644 easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb create mode 100644 easybuild/easyconfigs/l/Libint/Libint-2.0.3-intel-2015b.eb diff --git a/easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb new file mode 100644 index 0000000000..b7da1e5b9b --- /dev/null +++ b/easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -0,0 +1,59 @@ +easyblock = "PythonPackage" +name = 'horton' +version = '2.0.0' + +homepage = 'http://theochem.github.io/horton' +description = """\ +HORTON is a Helpful Open-source Research TOol for N-fermion systems, written +primarily in the Python programming language. (HORTON is named after the helpful +pachyderm, not the Canadian caffeine supply store.) The ultimate goal of HORTON +is to provide a platform for testing new ideas on the quantum many-body problem +at a reasonable computational cost. Although HORTON is primarily designed to be +a quantum-chemistry program, it can perform computations involving model +Hamiltonians, and could be extended for computations in nuclear physics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/theochem/horton/releases/download/%s' % version] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonversion = '2.7.10' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) +pythonversionsuffix = "-%s-%s" % (python, pythonversion) + +hdf5version = '1.8.15-patch1' +hdf5versionsuffix = '-HDF5-%s-serial' % hdf5version + +versionsuffix = pythonversionsuffix + hdf5versionsuffix + +dependencies = [ + (python, pythonversion), + ('h5py', '2.5.0', versionsuffix), + ('matplotlib', '1.4.3', pythonversionsuffix), + ('sympy', '0.7.6.1', pythonversionsuffix), + ('Libint', '2.0.3'), + ('libxc', '2.2.2'), +] + + +prebuildopts = ' '.join([ + 'BLAS_EXTRA_COMPILE_ARGS=-DMKL_ILP64:-I${MKLROOT}/include', + 'BLAS_LIBRARY_DIRS=${MKLROOT}/lib/intel64', + 'BLAS_LIBRARIES=mkl_intel_ilp64:mkl_core:mkl_sequential:pthread:m:mkl_def', +]) + +# Avoid need for X11 in tests by specifying "backend: agg" in matplotlibrc +runtest = ' '.join([ + 'export MATPLOTLIBRC=$PWD;', + 'echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc;', + '%s python setup.py build_ext -i; ' % prebuildopts, + 'nosetests -v', +]) + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/horton' % pythonshortversion] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/Libint/Libint-2.0.3-intel-2015b.eb b/easybuild/easyconfigs/l/Libint/Libint-2.0.3-intel-2015b.eb new file mode 100644 index 0000000000..114eb8bcef --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-2.0.3-intel-2015b.eb @@ -0,0 +1,14 @@ +name = 'Libint' +version = '2.0.3' + +homepage = 'https://sourceforge.net/p/libint' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = ['libint-%(version)s-stable.tgz'] +source_urls = ['http://downloads.sourceforge.net/project/libint/libint-for-mpqc'] + +moduleclass = 'chem' -- GitLab From 8a11bb1ce7d28aef4ba678bb2d5f8d040a98eb4e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 1 Mar 2016 17:23:04 +0100 Subject: [PATCH 255/732] fix syntax & style issues in horton easyconfig file --- ...Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 53 +++++++++++++++++ ...Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 59 ------------------- 2 files changed, 53 insertions(+), 59 deletions(-) create mode 100644 easybuild/easyconfigs/h/horton/horton-2.0.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb delete mode 100644 easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb diff --git a/easybuild/easyconfigs/h/horton/horton-2.0.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/h/horton/horton-2.0.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb new file mode 100644 index 0000000000..ab045435b2 --- /dev/null +++ b/easybuild/easyconfigs/h/horton/horton-2.0.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -0,0 +1,53 @@ +easyblock = 'PythonPackage' + +name = 'horton' +version = '2.0.0' + +homepage = 'http://theochem.github.io/horton' +description = """HORTON is a Helpful Open-source Research TOol for N-fermion systems, written + primarily in the Python programming language. (HORTON is named after the helpful + pachyderm, not the Canadian caffeine supply store.) The ultimate goal of HORTON + is to provide a platform for testing new ideas on the quantum many-body problem + at a reasonable computational cost. Although HORTON is primarily designed to be + a quantum-chemistry program, it can perform computations involving model + Hamiltonians, and could be extended for computations in nuclear physics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/theochem/horton/releases/download/%s' % version] +sources = [SOURCE_TAR_GZ] + +pyver = '2.7.10' +hdf5ver = '1.8.15-patch1' +versionsuffix = '-Python-%s-HDF5-%s-serial' % (pyver, hdf5ver) + +dependencies = [ + ('Python', pyver), + ('h5py', '2.5.0', versionsuffix), + ('matplotlib', '1.4.3', '-Python-%s' % pyver), + ('sympy', '0.7.6.1', '-Python-%s' % pyver), + ('Libint', '2.0.3'), + ('libxc', '2.2.2'), +] + +prebuildopts = ' '.join([ + 'BLAS_EXTRA_COMPILE_ARGS=-DMKL_ILP64:-I${MKLROOT}/include', + 'BLAS_LIBRARY_DIRS=${MKLROOT}/lib/intel64', + 'BLAS_LIBRARIES=mkl_intel_ilp64:mkl_core:mkl_sequential:pthread:m:mkl_def', +]) + +# Avoid need for X11 in tests by specifying "backend: agg" in matplotlibrc +runtest = ' '.join([ + 'export MATPLOTLIBRC=$PWD;', + 'echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc;', + '%s python setup.py build_ext -i; ' % prebuildopts, + 'nosetests -v', +]) + +pyshortver = '.'.join(pyver.split('.')[:2]) +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/horton' % pyshortver], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb deleted file mode 100644 index b7da1e5b9b..0000000000 --- a/easybuild/easyconfigs/h/horton/horton-2.0.0-intel2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb +++ /dev/null @@ -1,59 +0,0 @@ -easyblock = "PythonPackage" -name = 'horton' -version = '2.0.0' - -homepage = 'http://theochem.github.io/horton' -description = """\ -HORTON is a Helpful Open-source Research TOol for N-fermion systems, written -primarily in the Python programming language. (HORTON is named after the helpful -pachyderm, not the Canadian caffeine supply store.) The ultimate goal of HORTON -is to provide a platform for testing new ideas on the quantum many-body problem -at a reasonable computational cost. Although HORTON is primarily designed to be -a quantum-chemistry program, it can perform computations involving model -Hamiltonians, and could be extended for computations in nuclear physics.""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['https://github.com/theochem/horton/releases/download/%s' % version] -sources = [SOURCE_TAR_GZ] - -python = 'Python' -pythonversion = '2.7.10' -pythonshortversion = ".".join(pythonversion.split(".")[:-1]) -pythonversionsuffix = "-%s-%s" % (python, pythonversion) - -hdf5version = '1.8.15-patch1' -hdf5versionsuffix = '-HDF5-%s-serial' % hdf5version - -versionsuffix = pythonversionsuffix + hdf5versionsuffix - -dependencies = [ - (python, pythonversion), - ('h5py', '2.5.0', versionsuffix), - ('matplotlib', '1.4.3', pythonversionsuffix), - ('sympy', '0.7.6.1', pythonversionsuffix), - ('Libint', '2.0.3'), - ('libxc', '2.2.2'), -] - - -prebuildopts = ' '.join([ - 'BLAS_EXTRA_COMPILE_ARGS=-DMKL_ILP64:-I${MKLROOT}/include', - 'BLAS_LIBRARY_DIRS=${MKLROOT}/lib/intel64', - 'BLAS_LIBRARIES=mkl_intel_ilp64:mkl_core:mkl_sequential:pthread:m:mkl_def', -]) - -# Avoid need for X11 in tests by specifying "backend: agg" in matplotlibrc -runtest = ' '.join([ - 'export MATPLOTLIBRC=$PWD;', - 'echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc;', - '%s python setup.py build_ext -i; ' % prebuildopts, - 'nosetests -v', -]) - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages/horton' % pythonshortversion] -} - -moduleclass = 'chem' -- GitLab From 85f5c7e0dab202958c57ad7cb10fb67f786c8aa0 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 1 Mar 2016 17:13:24 +0000 Subject: [PATCH 256/732] Bump Python dep of GLib to 2.7.11 --- easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb index 7b323a630d..9226838fbe 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb @@ -17,6 +17,6 @@ dependencies = [ ('gettext', '0.18.2'), ('libxml2', '2.9.1'), ] -builddependencies = [('Python', '2.7.3')] +builddependencies = [('Python', '2.7.11')] moduleclass = 'vis' -- GitLab From d7d10195adce9a593aa947a3fd4a0ba24c63f910 Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 1 Mar 2016 18:31:13 +0100 Subject: [PATCH 257/732] Adding Gromacs for CrayIntel --- .../CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb | 22 +++++++++ .../GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb | 45 +++++++++++++++++++ .../ncurses-5.9-CrayIntel-2015.11-XC.eb | 36 +++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb new file mode 100644 index 0000000000..8fe0d6e4d8 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb new file mode 100644 index 0000000000..492e226263 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb new file mode 100644 index 0000000000..c7ee77bd84 --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} +toolchainopts = {'optarch': True, 'shared': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' -- GitLab From 1f685ceb9d80a2941679fe46507deaaf3ae549e8 Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 1 Mar 2016 18:34:22 +0100 Subject: [PATCH 258/732] adding wrf CrayIntel --- .../JasPer-1.900.1-CrayIntel-2015.11-XC.eb | 21 ++++++++++ .../ncurses-5.9-CrayIntel-2015.11-XC.eb | 36 ++++++++++++++++++ .../tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb | 38 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb create mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb new file mode 100644 index 0000000000..45bc1007dd --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'JasPer' +version = '1.900.1' + +homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' +description = """The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_ZIP] +source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] + +sanity_check_paths = { + 'files': ["bin/jasper", "lib/libjasper.a"], + 'dirs': ["include"], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb new file mode 100644 index 0000000000..c7ee77bd84 --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} +toolchainopts = {'optarch': True, 'shared': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb new file mode 100644 index 0000000000..df83e70f3b --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' -- GitLab From 43be742f7950497b92e6004429e1505b6e7b7ab3 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 1 Mar 2016 17:39:51 +0000 Subject: [PATCH 259/732] Fix GLib Python dep to 2.7.10 --- easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb index 9226838fbe..04873f8e5c 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.34.3-foss-2015b.eb @@ -17,6 +17,6 @@ dependencies = [ ('gettext', '0.18.2'), ('libxml2', '2.9.1'), ] -builddependencies = [('Python', '2.7.11')] +builddependencies = [('Python', '2.7.10')] moduleclass = 'vis' -- GitLab From 7e675b855e2101b45b32327fca4557549dc15d3a Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 1 Mar 2016 18:40:50 +0100 Subject: [PATCH 260/732] add wrf --- .../WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb new file mode 100644 index 0000000000..dc552a3235 --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb @@ -0,0 +1,41 @@ +name = 'WRF' +version = '3.6.1' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.18.01')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('cray-netcdf/4.3.2', EXTERNAL_MODULE), + ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-3.6.1_known_problems.patch', + 'WRF_tests_limit-runtimes.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +runtest = False + +moduleclass = 'geo' -- GitLab From 6d09160f4ab0a0189093278d00998be5eeb280dc Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Tue, 1 Mar 2016 18:41:10 +0100 Subject: [PATCH 261/732] Remove explicit ConfigureMake in MPICH easyconfig because it now has its own easyblock --- easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb | 2 -- easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb | 2 -- 2 files changed, 4 deletions(-) diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb index ecc1ac4836..971d6adf6f 100644 --- a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb +++ b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb @@ -1,5 +1,3 @@ -easyblock = 'ConfigureMake' - name = 'MPICH' version = '3.0.3' diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb index f81230a16b..1b8044cecf 100644 --- a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb +++ b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb @@ -1,5 +1,3 @@ -easyblock = 'ConfigureMake' - name = 'MPICH' version = '3.0.4' -- GitLab From daa3272710f05a34d76e94a6b3941c1215a1422a Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Tue, 1 Mar 2016 20:26:02 +0100 Subject: [PATCH 262/732] Update MPICH easyconfig files --- .../m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb | 16 +++------------- .../m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb | 17 +++-------------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb index 971d6adf6f..e96f02635c 100644 --- a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb +++ b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.3-ClangGCC-1.1.3.eb @@ -8,19 +8,9 @@ It does not support InfiniBand (use MVAPICH2 with InfiniBand devices).""" toolchain = {'name': 'ClangGCC', 'version': '1.1.3'} sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.mpich.org/static/tarballs/%s' % version] +source_urls = ['http://www.mpich.org/static/tarballs/%(version)s'] -# MPICH configure wants F90/F90FLAGS to be renamed to FC/FCFLAGS. -preconfigopts = 'export FC="$F90"; export FCFLAGS="$F90FLAGS"; unset F90; unset F90FLAGS; ' - -# Build shared libraries -configopts = '--enable-shared' - -sanity_check_paths = { - 'files': ['bin/mpicc', 'bin/mpicxx', 'bin/mpic++', 'bin/mpif77', 'bin/mpif90', - 'bin/mpiexec', 'bin/mpirun', - 'include/mpi.h', 'include/mpi.mod', 'include/mpif.h'], - 'dirs': [], -} +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['ee2b8a8b88e3915804df0efcc747c48b'] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb index 1b8044cecf..cf4928e564 100644 --- a/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb +++ b/easybuild/easyconfigs/m/MPICH/MPICH-3.0.4-GCC-4.8.1.eb @@ -7,21 +7,10 @@ It does not support InfiniBand (use MVAPICH2 with InfiniBand devices).""" toolchain = {'name': 'GCC', 'version': '4.8.1'} -sources = ['mpich-%(version)s.tar.gz'] +sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.mpich.org/static/tarballs/%(version)s'] -# MPICH configure wants F90/F90FLAGS to be renamed to FC/FCFLAGS. -preconfigopts = 'export FC="$F90"; export FCFLAGS="$F90FLAGS"; unset F90; unset F90FLAGS; ' - -# Build shared libraries -configopts = '--enable-shared' - -sanity_check_paths = { - 'files': ['bin/mpicc', 'bin/mpicxx', 'bin/mpic++', 'bin/mpif77', 'bin/mpif90', 'bin/mpiexec', 'bin/mpirun', - 'include/mpi.h', 'include/mpi.mod', 'include/mpif.h', 'lib/libfmpich.a', 'lib/libfmpich.%s' % SHLIB_EXT, - 'lib/libmpich.a', 'lib/libmpich.%s' % SHLIB_EXT, 'lib/libmpichcxx.a', 'lib/libmpichcxx.%s' % SHLIB_EXT, 'lib/libmpichf90.a', - 'lib/libmpichf90.%s' % SHLIB_EXT], - 'dirs': [], -} +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['9c5d5d4fe1e17dd12153f40bc5b6dbc0'] moduleclass = 'mpi' -- GitLab From fc76451b18136caaa9a9cc19f0454d1b7da9e238 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 2 Mar 2016 15:20:59 +1030 Subject: [PATCH 263/732] More foss-2015b dependencies --- .../easyconfigs/t/Tcl/Tcl-8.6.3-foss-2015b.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-foss-2015b.eb diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-foss-2015b.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-foss-2015b.eb new file mode 100644 index 0000000000..ec3f168cb0 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-foss-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' -- GitLab From 7cf577650c3dcd1123711d9c309bffb0b7911724 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 2 Mar 2016 10:57:57 +0100 Subject: [PATCH 264/732] 2 --- .../g/glproto/glproto-1.4.17-intel-2016a.eb | 20 ++++++++++++++ .../libpciaccess-0.13.4-intel-2016a.eb | 26 ++++++++++++++++++ .../m/Mesa/Mesa-11.1.2-intel-2016a.eb | 7 ++--- .../easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz | Bin 0 -> 957783 bytes .../makedepend-1.0.5-intel-2016a.eb | 20 ++++++++++++++ 5 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz create mode 100644 easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb new file mode 100644 index 0000000000..c26a1ac08a --- /dev/null +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'glproto' +version = '1.4.17' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb new file mode 100644 index 0000000000..2ac72299c5 --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.13.4' + +homepage = 'http://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +source_urls = ['http://cgit.freedesktop.org/xorg/lib/libpciaccess/snapshot'] +sources = [SOURCE_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +builddependencies = [ + ('Autotools', '20150215'), + ('xorg-macros', '1.19.0'), +] + +preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb index c0e3c997a1..9f80ae7c43 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -16,17 +16,14 @@ source_urls = [ 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', ] -pythonver = '2.7.11' -pythonshortver = '.'.join(pythonver.split('.')[0:2]) -versionsuffix = '-%s-%s' % ('Python', pythonver) - builddependencies = [ - ('flex', '2.5.39'), + ('flex', '2.6.0'), ('Bison', '3.0.4'), ('Autotools', '20150215'), ('pkg-config', '0.29'), ('glproto', '1.4.17'), ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), ('xextproto', '7.3.0'), ('xproto', '7.0.28'), ('makedepend', '1.0.5'), diff --git a/easybuild/easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz b/easybuild/easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..220679b472741c37e8fbfb6655cbd0687f87b9fd GIT binary patch literal 957783 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 fglhD6bFAn&W|6 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 z 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

J9(QQMQ^@4eVM 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

?dRl&92P&6KFuGy#gC@(b+lC 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

3RGog@s~GtTqkjjx;x17q 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 literal 0 HcmV?d00001 diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb new file mode 100644 index 0000000000..1158bd68be --- /dev/null +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.5' + +homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 8d57ec45291dca774dba2830b599f50bed341ee8 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 2 Mar 2016 11:05:03 +0100 Subject: [PATCH 265/732] LLVM llvm-config needs ncurses --- .../easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a-Python-2.7.9.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015b.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015a.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015b.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2015b.eb | 4 ++++ easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb | 4 ++++ 8 files changed, 32 insertions(+) diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a-Python-2.7.9.eb index 3c0e36d72c..222230619c 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a-Python-2.7.9.eb @@ -26,6 +26,10 @@ builddependencies = [ (python, pyver), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON ' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a.eb index bb160486fd..7c0771c083 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015a.eb @@ -23,6 +23,10 @@ builddependencies = [ ('Python', '2.7.10'), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON ' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015b.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015b.eb index 435d7783c6..ab41e5094e 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015b.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2015b.eb @@ -23,6 +23,10 @@ builddependencies = [ ('Python', '2.7.11'), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON ' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015a.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015a.eb index 88dcd90478..40c74c411b 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015a.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015a.eb @@ -23,6 +23,10 @@ builddependencies = [ ('Python', '2.7.10'), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON ' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015b.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015b.eb index 28f4906cec..b307f91c10 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015b.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.0-intel-2015b.eb @@ -23,6 +23,10 @@ builddependencies = [ ('Python', '2.7.10'), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb index eca1371a7b..1594ed4eb1 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb @@ -22,6 +22,10 @@ builddependencies = [ ('Python', '2.7.11'), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2015b.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2015b.eb index 4bf8e3225f..79c6af9120 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2015b.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2015b.eb @@ -23,6 +23,10 @@ builddependencies = [ ('Python', '2.7.11'), ] +dependencies = [ + ('ncurses', '5.9'), +] + configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb index 2605ca36ca..24445c47fb 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-intel-2016a.eb @@ -23,6 +23,10 @@ builddependencies = [ ('Python', '2.7.11'), ] +dependencies = [ + ('ncurses', '6.0'), +] + configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' sanity_check_paths = { -- GitLab From b76dfdf632cdb87cc12faff269a944e24263ad75 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 11:18:06 +0100 Subject: [PATCH 266/732] add patch to build bigmemory w/ icc --- easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index 46ed150b7a..8e876a2b37 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -277,7 +277,7 @@ exts_list = [ ('adephylo', '1.1-6', ext_options), ('animation', '2.4', ext_options), ('bigmemory.sri', '0.1.3', ext_options), - ('bigmemory', '4.5.8', ext_options), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-0.3-4-icc.patch'])])), ('calibrate', '1.7.2', ext_options), ('clusterGeneration', '1.3.4', ext_options), ('raster', '2.5-2', ext_options), -- GitLab From 1d39971546133b43cacb60b26d6b12ea6c248aba Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 11:33:45 +0100 Subject: [PATCH 267/732] add missing patch --- .../r/R/bigmemory-4.5.8_icpc-wd308.patch | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch diff --git a/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch b/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch new file mode 100644 index 0000000000..36618acdb7 --- /dev/null +++ b/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch @@ -0,0 +1,17 @@ +diff -ruN bigmemory.orig/MD5 bigmemory/MD5 +--- bigmemory.orig/MD5 2015-10-20 08:17:15.000000000 +0200 ++++ bigmemory/MD5 2016-03-02 11:15:44.341327000 +0100 +@@ -45,6 +45,7 @@ + ab68983ecd8292d8986b54fd4cbcac25 *man/typeof-big.matrix-method.Rd + 1bdc8e05fa99285561a41b8cb46287a2 *man/write.big.matrix.Rd + dc93a6dce890660533e7fd18dc1ce2d2 *src/BigMatrix.cpp ++b1d3a4d02405fe08c7983c479bc27f13 *src/Makevars + a55f990cdca7b9de45640aa60febaecd *src/RcppExports.cpp + 81e6f49c7f623fb97376bd4b7132b176 *src/SharedCounter.cpp + 33e9321c8b0fc07df926fcc2f80a41d6 *src/bigmemory.cpp +diff -ruN bigmemory.orig/src/Makevars bigmemory/src/Makevars +--- bigmemory.orig/src/Makevars 1970-01-01 01:00:00.000000000 +0100 ++++ bigmemory/src/Makevars 2016-03-02 11:15:00.997797000 +0100 +@@ -0,0 +1,2 @@ ++# disable Intel C++ compiler (icpc) warning/error #308, to avoid 'member "std::complex::_M_value" is inaccessible' ++PKG_CXXFLAGS = -wd308 -- GitLab From af2655aae036d77c0aded05120bcdee447f70a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Hajgat=C3=B3?= Date: Wed, 2 Mar 2016 11:35:27 +0100 Subject: [PATCH 268/732] Update LLVM-3.7.1-foss-2016a.eb --- easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb index 1594ed4eb1..4228c8e824 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-foss-2016a.eb @@ -23,7 +23,7 @@ builddependencies = [ ] dependencies = [ - ('ncurses', '5.9'), + ('ncurses', '6.0'), ] configopts = '-DBUILD_SHARED_LIBS=ON' -- GitLab From f5900df6c659bc407fd34d1babf69a7589b85b48 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 11:48:30 +0100 Subject: [PATCH 269/732] fix name for bigmemory patch file --- easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index 8e876a2b37..1ca3e7f554 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -277,7 +277,7 @@ exts_list = [ ('adephylo', '1.1-6', ext_options), ('animation', '2.4', ext_options), ('bigmemory.sri', '0.1.3', ext_options), - ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-0.3-4-icc.patch'])])), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8-icc.patch'])])), ('calibrate', '1.7.2', ext_options), ('clusterGeneration', '1.3.4', ext_options), ('raster', '2.5-2', ext_options), -- GitLab From 4bbe0fdd78daab5df64565e4995954774d21987c Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 2 Mar 2016 11:49:01 +0100 Subject: [PATCH 270/732] not needed file deleted --- .../easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz | Bin 957783 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 easybuild/easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz diff --git a/easybuild/easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz b/easybuild/easyconfigs/m/Mesa/libdrm-2.4.67.tar.gz deleted file mode 100644 index 220679b472741c37e8fbfb6655cbd0687f87b9fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 957783 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 fglhD6bFAn&W|6 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 z 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

J9(QQMQ^@4eVM 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

?dRl&92P&6KFuGy#gC@(b+lC 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

3RGog@s~GtTqkjjx;x17q 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 -- GitLab From e5189e93371e21b791605baaa60992fb30cc61b2 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 11:55:06 +0100 Subject: [PATCH 271/732] really fix name for bigmemory patch file --- easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index 1ca3e7f554..a34a11bc6c 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -277,7 +277,7 @@ exts_list = [ ('adephylo', '1.1-6', ext_options), ('animation', '2.4', ext_options), ('bigmemory.sri', '0.1.3', ext_options), - ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8-icc.patch'])])), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8_icpc-wd308.patch'])])), ('calibrate', '1.7.2', ext_options), ('clusterGeneration', '1.3.4', ext_options), ('raster', '2.5-2', ext_options), -- GitLab From 919686dd4342204f7de48059ab0542448d1fe3b3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 12:06:59 +0100 Subject: [PATCH 272/732] fix patch for bigmemory --- .../r/R/bigmemory-4.5.8_icpc-wd308.patch | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch b/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch index 36618acdb7..965affb5c9 100644 --- a/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch +++ b/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch @@ -1,17 +1,21 @@ -diff -ruN bigmemory.orig/MD5 bigmemory/MD5 +diff -ru bigmemory.orig/configure bigmemory/configure +--- bigmemory.orig/configure 2015-10-16 18:44:28.000000000 +0200 ++++ bigmemory/configure 2016-03-02 12:05:54.465799000 +0100 +@@ -37,3 +37,5 @@ + + echo "${FLAGS}" > src/Makevars + echo "${LIBS}" >> src/Makevars ++echo "# disable Intel C++ compiler (icpc) warning/error #308, to avoid 'member \"std::complex::_M_value\" is inaccessible'" >> src/Makevars ++echo "PKG_CXXFLAGS = -wd308" >> src/Makevars +diff -ru bigmemory.orig/MD5 bigmemory/MD5 --- bigmemory.orig/MD5 2015-10-20 08:17:15.000000000 +0200 -+++ bigmemory/MD5 2016-03-02 11:15:44.341327000 +0100 -@@ -45,6 +45,7 @@ - ab68983ecd8292d8986b54fd4cbcac25 *man/typeof-big.matrix-method.Rd - 1bdc8e05fa99285561a41b8cb46287a2 *man/write.big.matrix.Rd - dc93a6dce890660533e7fd18dc1ce2d2 *src/BigMatrix.cpp -+b1d3a4d02405fe08c7983c479bc27f13 *src/Makevars - a55f990cdca7b9de45640aa60febaecd *src/RcppExports.cpp - 81e6f49c7f623fb97376bd4b7132b176 *src/SharedCounter.cpp - 33e9321c8b0fc07df926fcc2f80a41d6 *src/bigmemory.cpp -diff -ruN bigmemory.orig/src/Makevars bigmemory/src/Makevars ---- bigmemory.orig/src/Makevars 1970-01-01 01:00:00.000000000 +0100 -+++ bigmemory/src/Makevars 2016-03-02 11:15:00.997797000 +0100 -@@ -0,0 +1,2 @@ -+# disable Intel C++ compiler (icpc) warning/error #308, to avoid 'member "std::complex::_M_value" is inaccessible' -+PKG_CXXFLAGS = -wd308 ++++ bigmemory/MD5 2016-03-02 12:06:21.181928000 +0100 +@@ -7,7 +7,7 @@ + 08d8ac748bb99e6cd73cbc851ba24e6f *R/zzz.R + ba12d9a9f21ff33b7f0e51d5645eeb67 *build/vignette.rds + da4cdd259fd09ece34aad718a9a11207 *cleanup +-3c21afb0f744e005b69e519259d85021 *configure ++f7c1fffb1d14974537e82237574eb11e *configure + fc5c8f75e424213609b3e3cd9b57f5bf *configure.win + 0cd9765e8adee62083d32a17a6b9aa07 *inst/CITATION + f883e7fbbec7e35f5142805cd80548cf *inst/doc/Overview.R -- GitLab From 632135c92ddbb7aa60981c3261db3f0dcaf9cfbf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 12:16:59 +0100 Subject: [PATCH 273/732] add diveRsity + deps to R 3.2.3 easyconfig --- .../easyconfigs/r/R/R-3.2.3-foss-2015b.eb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb index aae3ac82f6..ed1d008211 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb @@ -420,6 +420,24 @@ exts_list = [ ('clusterRepro', '0.5-1.1', ext_options), ('randomForestSRC', '2.0.7', ext_options), ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), ] moduleclass = 'lang' -- GitLab From 3f20edc2d26a5ba156a57c62e964fe2d190f174b Mon Sep 17 00:00:00 2001 From: Alan Date: Wed, 2 Mar 2016 12:38:46 +0100 Subject: [PATCH 274/732] Update files that have dummy as toolchain, are not a toolchain themselves and have dependencies. Without an empty version the dependencies do not get loaded at build time --- easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb | 2 +- easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb | 2 +- easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb | 2 +- easybuild/easyconfigs/a/ADF/ADF-2009.01a.pc64_linux.intelmpi.eb | 2 +- easybuild/easyconfigs/b/Beast/Beast-2.1.3.eb | 2 +- easybuild/easyconfigs/c/CMake/CMake-3.1.3.eb | 2 +- easybuild/easyconfigs/c/CMake/CMake-3.3.1.eb | 2 +- easybuild/easyconfigs/c/Chimera/Chimera-1.10-linux_x86_64.eb | 2 +- .../easyconfigs/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb | 2 +- easybuild/easyconfigs/f/FDS/FDS-6.0.1-no-OFED.eb | 2 +- easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb | 2 +- easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb | 2 +- easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-1.0.5083.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-2.5-2-Java-1.7.0_10.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-2.7-4.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-3.0-0-Java-1.7.0_10.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb | 2 +- easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_66.eb | 2 +- .../GenotypeHarmonizer-1.4.14-Java-1.7.0_80.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2013.5.192-GCC-4.8.3.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2015.0.090-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2015.1.133-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2015.2.164-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2015.3.187-GNU-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2015.5.223-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2016.0.109-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb | 2 +- easybuild/easyconfigs/i/ifort/ifort-2015.0.090-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/i/ifort/ifort-2015.1.133-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/i/ifort/ifort-2015.2.164-GCC-4.9.2.eb | 2 +- .../easyconfigs/i/ifort/ifort-2015.3.187-GNU-4.9.3-2.25.eb | 2 +- .../easyconfigs/i/ifort/ifort-2015.5.223-GCC-4.9.3-2.25.eb | 2 +- .../easyconfigs/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb | 2 +- .../easyconfigs/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.2.6.038.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.3.10.319.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.3.12.361.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-10.3.6.233.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.0.1.117.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.0.2.146.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.0.3.163.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.0.4.183.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.0.5.192.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.1.0.080.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.1.1.106.eb | 2 +- .../easyconfigs/i/imkl/imkl-11.1.2.144-2013.5.192-GCC-4.8.3.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-GCC-4.8.3.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-OpenMPI-1.6.5.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.1.2.144.eb | 2 +- easybuild/easyconfigs/i/imkl/imkl-11.1.3.174.eb | 2 +- easybuild/easyconfigs/m/MATLAB/MATLAB-2012b.eb | 2 +- easybuild/easyconfigs/m/MATLAB/MATLAB-2015a.eb | 2 +- easybuild/easyconfigs/m/MCR/MCR-R2014a.eb | 2 +- easybuild/easyconfigs/m/MCR/MCR-R2015a.eb | 2 +- easybuild/easyconfigs/o/ORCA/ORCA-2_9_1-linux_x86-64.eb | 2 +- .../easyconfigs/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb | 2 +- .../easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.6.5.eb | 2 +- .../easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.1.eb | 2 +- .../easyconfigs/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.6.5.eb | 2 +- easybuild/easyconfigs/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/p/pbs_python/pbs_python-4.6.0.eb | 2 +- easybuild/easyconfigs/p/picard/picard-1.100.eb | 2 +- easybuild/easyconfigs/p/picard/picard-1.109.eb | 2 +- easybuild/easyconfigs/p/picard/picard-1.119-Java-1.7.0_80.eb | 2 +- easybuild/easyconfigs/p/picard/picard-1.119.eb | 2 +- easybuild/easyconfigs/p/picard/picard-1.39.eb | 2 +- easybuild/easyconfigs/p/picard/picard-2.1.0.eb | 2 +- easybuild/easyconfigs/s/snpEff/snpEff-3.6-Java-1.7.0_80.eb | 2 +- easybuild/easyconfigs/s/snpEff/snpEff-4.1d-Java-1.7.0_80.eb | 2 +- easybuild/easyconfigs/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb | 2 +- 80 files changed, 80 insertions(+), 80 deletions(-) diff --git a/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb b/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb index b75c3fcda9..094f648512 100644 --- a/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb +++ b/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb @@ -5,7 +5,7 @@ versionsuffix = '-linux-x86_64' homepage = 'http://www.simulia.com/products/abaqus_fea.html' description = "Finite Element Analysis software for modeling, visualization and best-in-class implicit and explicit dynamics FEA." -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = [SOURCE_TGZ] diff --git a/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb b/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb index 5f10d53c00..f899ce8f01 100644 --- a/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb +++ b/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb @@ -5,7 +5,7 @@ versionsuffix = '-linux-x86_64' homepage = 'http://www.simulia.com/products/abaqus_fea.html' description = "Finite Element Analysis software for modeling, visualization and best-in-class implicit and explicit dynamics FEA." -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = [SOURCE_TGZ] diff --git a/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb b/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb index db92841b05..2063066a88 100644 --- a/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb +++ b/easybuild/easyconfigs/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb @@ -5,7 +5,7 @@ versionsuffix = '-linux-x86_64' homepage = 'http://www.simulia.com/products/abaqus_fea.html' description = "Finite Element Analysis software for modeling, visualization and best-in-class implicit and explicit dynamics FEA." -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = [SOURCE_TGZ] diff --git a/easybuild/easyconfigs/a/ADF/ADF-2009.01a.pc64_linux.intelmpi.eb b/easybuild/easyconfigs/a/ADF/ADF-2009.01a.pc64_linux.intelmpi.eb index 6395f17b38..107e9cc668 100755 --- a/easybuild/easyconfigs/a/ADF/ADF-2009.01a.pc64_linux.intelmpi.eb +++ b/easybuild/easyconfigs/a/ADF/ADF-2009.01a.pc64_linux.intelmpi.eb @@ -6,7 +6,7 @@ version = '2009.01a.pc64_linux.intelmpi' homepage = 'http://www.scm.com/' description = "ADF is a premium-quality quantum chemistry software package based on Density Functional Theory (DFT)." -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%(namelower)s%(version)s.bin.tgz'] diff --git a/easybuild/easyconfigs/b/Beast/Beast-2.1.3.eb b/easybuild/easyconfigs/b/Beast/Beast-2.1.3.eb index 16f5b548ac..f28387fbee 100644 --- a/easybuild/easyconfigs/b/Beast/Beast-2.1.3.eb +++ b/easybuild/easyconfigs/b/Beast/Beast-2.1.3.eb @@ -16,7 +16,7 @@ description = """ BEAST is a cross-platform program for Bayesian MCMC analysis o tree topology. BEAST uses MCMC to average over tree space, so that each tree is weighted proportional to its posterior probability. """ -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://github.com/CompEvol/beast2/releases/download/v%(version)s/'] sources = ['BEAST.v%(version)s.tgz'] diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.1.3.eb b/easybuild/easyconfigs/c/CMake/CMake-3.1.3.eb index d2b515088f..873f4f2f72 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-3.1.3.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-3.1.3.eb @@ -7,7 +7,7 @@ homepage = 'http://www.cmake.org' description = """CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.3.1.eb b/easybuild/easyconfigs/c/CMake/CMake-3.3.1.eb index 3107e6dbdf..fea9079c88 100644 --- a/easybuild/easyconfigs/c/CMake/CMake-3.3.1.eb +++ b/easybuild/easyconfigs/c/CMake/CMake-3.3.1.eb @@ -7,7 +7,7 @@ homepage = 'http://www.cmake.org' description = """CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/c/Chimera/Chimera-1.10-linux_x86_64.eb b/easybuild/easyconfigs/c/Chimera/Chimera-1.10-linux_x86_64.eb index 5e9ad2796e..d050aae52b 100644 --- a/easybuild/easyconfigs/c/Chimera/Chimera-1.10-linux_x86_64.eb +++ b/easybuild/easyconfigs/c/Chimera/Chimera-1.10-linux_x86_64.eb @@ -12,7 +12,7 @@ description = """ UCSF Chimera is a highly extensible program for interactive vi and analysis of molecular structures and related data, including density maps, supramolecular assemblies, sequence alignments, docking results, trajectories, and conformational ensembles. """ -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # no public download URL. Go to https://www.cgl.ucsf.edu/chimera/download.html sources = ['%(namelower)s-%(version)s%(versionsuffix)s.bin'] diff --git a/easybuild/easyconfigs/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb b/easybuild/easyconfigs/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb index 928b078aac..d2027312f5 100644 --- a/easybuild/easyconfigs/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb @@ -9,7 +9,7 @@ read data. Although this is intended as a stable version the code is released as early access. Parts of the CRAMTools are experimental and may not be supported in the future.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['v%(version)s.tar.gz'] source_urls = ['https://github.com/enasequence/%(name)s/archive/'] diff --git a/easybuild/easyconfigs/f/FDS/FDS-6.0.1-no-OFED.eb b/easybuild/easyconfigs/f/FDS/FDS-6.0.1-no-OFED.eb index a1ceee68c9..f79371e678 100644 --- a/easybuild/easyconfigs/f/FDS/FDS-6.0.1-no-OFED.eb +++ b/easybuild/easyconfigs/f/FDS/FDS-6.0.1-no-OFED.eb @@ -9,7 +9,7 @@ description = """ Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, with an emphasis on smoke and heat transport from fires. """ -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download .sh from https://bintray.com/nist-fire-research/releases/FDS-SMV/6.0.1/view/files to create tarball sources = ['FDS_6.0.1-SMV_6.1.5_linux64.tar.gz'] diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb index 9ff730ebed..e49f289165 100644 --- a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb +++ b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.2.eb @@ -6,7 +6,7 @@ version = '0.11.2' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] sources = ['%(name)s_v%(version)s.zip'] diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb index c5f20b9165..72e66f0b0c 100644 --- a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb +++ b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.3.eb @@ -6,7 +6,7 @@ version = '0.11.3' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] sources = ['%(name)s_v%(version)s.zip'] diff --git a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb index a4d75eb501..7665c9edda 100644 --- a/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb +++ b/easybuild/easyconfigs/f/fastqc/fastqc-0.11.4.eb @@ -6,7 +6,7 @@ version = '0.11.4' homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://www.bioinformatics.babraham.ac.uk/projects/fastqc/'] sources = ['%(name)s_v%(version)s.zip'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-1.0.5083.eb b/easybuild/easyconfigs/g/GATK/GATK-1.0.5083.eb index ddd5712d6f..dd2c25a627 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-1.0.5083.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-1.0.5083.eb @@ -9,7 +9,7 @@ description = """The GATK is a structured software library that makes writing ef medical resequencing projects such as 1000 Genomes and The Cancer Genome Atlas. These tools include things like a depth of coverage analyzers, a quality score recalibrator, a SNP/indel caller and a local realigner.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-2.5-2-Java-1.7.0_10.eb b/easybuild/easyconfigs/g/GATK/GATK-2.5-2-Java-1.7.0_10.eb index daf5220902..ee70681358 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-2.5-2-Java-1.7.0_10.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-2.5-2-Java-1.7.0_10.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb b/easybuild/easyconfigs/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb index 0c9ece0c95..dde93eb10a 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb b/easybuild/easyconfigs/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb index 12fe8dadb4..a45cb4ec3b 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-2.7-4.eb b/easybuild/easyconfigs/g/GATK/GATK-2.7-4.eb index 98e7df7db8..1bdef83c68 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-2.7-4.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-2.7-4.eb @@ -9,7 +9,7 @@ description = """The GATK is a structured software library that makes writing ef medical resequencing projects such as 1000 Genomes and The Cancer Genome Atlas. These tools include things like a depth of coverage analyzers, a quality score recalibrator, a SNP/indel caller and a local realigner.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb b/easybuild/easyconfigs/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb index aa6e7fe232..21448792b2 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-3.0-0-Java-1.7.0_10.eb b/easybuild/easyconfigs/g/GATK/GATK-3.0-0-Java-1.7.0_10.eb index 13de380c1b..a6fc22eedf 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-3.0-0-Java-1.7.0_10.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-3.0-0-Java-1.7.0_10.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['%s-%s.tar.bz2' % ("GenomeAnalysisTK", version)] diff --git a/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb b/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb index 065919e6f3..38e7ae6db1 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb b/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb index f53b54862b..689accfbd9 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb b/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb index 00459becfc..520cb6b37a 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_66.eb b/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_66.eb index 2dc9a277e2..adf96fa7cf 100644 --- a/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_66.eb @@ -22,7 +22,7 @@ description = """The Genome Analysis Toolkit or GATK is a software package devel data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} # download manually from http://www.broadinstitute.org/gatk/download sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] diff --git a/easybuild/easyconfigs/g/GenotypeHarmonizer/GenotypeHarmonizer-1.4.14-Java-1.7.0_80.eb b/easybuild/easyconfigs/g/GenotypeHarmonizer/GenotypeHarmonizer-1.4.14-Java-1.7.0_80.eb index df30b5f05b..935c3f665f 100644 --- a/easybuild/easyconfigs/g/GenotypeHarmonizer/GenotypeHarmonizer-1.4.14-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/g/GenotypeHarmonizer/GenotypeHarmonizer-1.4.14-Java-1.7.0_80.eb @@ -7,7 +7,7 @@ homepage = 'https://github.com/molgenis/systemsgenetics/wiki/Genotype-Harmonizer description = """The Genotype Harmonizer is an easy to use command-line tool that allows harmonization of genotype data stored using different file formats with different and potentially unknown strands.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} java = 'Java' javaver = '1.7.0_80' diff --git a/easybuild/easyconfigs/i/icc/icc-2013.5.192-GCC-4.8.3.eb b/easybuild/easyconfigs/i/icc/icc-2013.5.192-GCC-4.8.3.eb index 23b5d632b0..446396ee03 100644 --- a/easybuild/easyconfigs/i/icc/icc-2013.5.192-GCC-4.8.3.eb +++ b/easybuild/easyconfigs/i/icc/icc-2013.5.192-GCC-4.8.3.eb @@ -4,7 +4,7 @@ version = '2013.5.192' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_ccompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2015.0.090-GCC-4.9.2.eb b/easybuild/easyconfigs/i/icc/icc-2015.0.090-GCC-4.9.2.eb index 1c9509e4ed..d02dca7d22 100644 --- a/easybuild/easyconfigs/i/icc/icc-2015.0.090-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/i/icc/icc-2015.0.090-GCC-4.9.2.eb @@ -4,7 +4,7 @@ version = '2015.0.090' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_ccompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2015.1.133-GCC-4.9.2.eb b/easybuild/easyconfigs/i/icc/icc-2015.1.133-GCC-4.9.2.eb index b547268098..368b594177 100644 --- a/easybuild/easyconfigs/i/icc/icc-2015.1.133-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/i/icc/icc-2015.1.133-GCC-4.9.2.eb @@ -4,7 +4,7 @@ version = '2015.1.133' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_ccompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2015.2.164-GCC-4.9.2.eb b/easybuild/easyconfigs/i/icc/icc-2015.2.164-GCC-4.9.2.eb index 6ae91f49df..8439c044f4 100644 --- a/easybuild/easyconfigs/i/icc/icc-2015.2.164-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/i/icc/icc-2015.2.164-GCC-4.9.2.eb @@ -4,7 +4,7 @@ version = '2015.2.164' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_ccompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2015.3.187-GNU-4.9.3-2.25.eb b/easybuild/easyconfigs/i/icc/icc-2015.3.187-GNU-4.9.3-2.25.eb index 5d89d21731..37331a1488 100644 --- a/easybuild/easyconfigs/i/icc/icc-2015.3.187-GNU-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/icc/icc-2015.3.187-GNU-4.9.3-2.25.eb @@ -4,7 +4,7 @@ version = '2015.3.187' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_ccompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2015.5.223-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/icc/icc-2015.5.223-GCC-4.9.3-2.25.eb index 3a9d4088ae..1ca6568cb7 100644 --- a/easybuild/easyconfigs/i/icc/icc-2015.5.223-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/icc/icc-2015.5.223-GCC-4.9.3-2.25.eb @@ -4,7 +4,7 @@ version = '2015.5.223' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_ccompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2016.0.109-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/icc/icc-2016.0.109-GCC-4.9.3-2.25.eb index 7354472c7e..4ec5788f7f 100644 --- a/easybuild/easyconfigs/i/icc/icc-2016.0.109-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/icc/icc-2016.0.109-GCC-4.9.3-2.25.eb @@ -6,7 +6,7 @@ version = '2016.0.109' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp.tgz'] diff --git a/easybuild/easyconfigs/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb index 0748e2d400..2a840e4a5b 100644 --- a/easybuild/easyconfigs/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb @@ -6,7 +6,7 @@ version = '2016.1.150' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_update%(version_minor)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb b/easybuild/easyconfigs/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb index cba97b45a2..901fc019cc 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb @@ -4,7 +4,7 @@ version = '2013.5.192' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "Fortran compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_fcompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2015.0.090-GCC-4.9.2.eb b/easybuild/easyconfigs/i/ifort/ifort-2015.0.090-GCC-4.9.2.eb index 6f1139a94c..a94df9884b 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2015.0.090-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2015.0.090-GCC-4.9.2.eb @@ -4,7 +4,7 @@ version = '2015.0.090' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "Fortran compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_fcompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2015.1.133-GCC-4.9.2.eb b/easybuild/easyconfigs/i/ifort/ifort-2015.1.133-GCC-4.9.2.eb index b653c4f858..419e0257c0 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2015.1.133-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2015.1.133-GCC-4.9.2.eb @@ -4,7 +4,7 @@ version = '2015.1.133' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "Fortran compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_fcompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2015.2.164-GCC-4.9.2.eb b/easybuild/easyconfigs/i/ifort/ifort-2015.2.164-GCC-4.9.2.eb index 4f376249d8..5767d1400f 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2015.2.164-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2015.2.164-GCC-4.9.2.eb @@ -4,7 +4,7 @@ version = '2015.2.164' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "Fortran compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_fcompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2015.3.187-GNU-4.9.3-2.25.eb b/easybuild/easyconfigs/i/ifort/ifort-2015.3.187-GNU-4.9.3-2.25.eb index f944202e89..0f54df3a82 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2015.3.187-GNU-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2015.3.187-GNU-4.9.3-2.25.eb @@ -4,7 +4,7 @@ version = '2015.3.187' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "Fortran compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_fcompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2015.5.223-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/ifort/ifort-2015.5.223-GCC-4.9.3-2.25.eb index faee88adb1..2fd9b5a946 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2015.5.223-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2015.5.223-GCC-4.9.3-2.25.eb @@ -4,7 +4,7 @@ version = '2015.5.223' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "Fortran compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_fcompxe_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb index c188753ac5..930a3dc326 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb @@ -6,7 +6,7 @@ version = '2016.0.109' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran.tgz'] diff --git a/easybuild/easyconfigs/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb index f961cef224..dd3cee42fa 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb @@ -6,7 +6,7 @@ version = '2016.1.150' homepage = 'http://software.intel.com/en-us/intel-compilers/' description = "C and C++ compiler from Intel" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb index 4619863d5f..2312f4b388 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb @@ -8,7 +8,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_p_%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038.eb b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038.eb index a693a15b86..b1eb6ee6e3 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_p_%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.3.10.319.eb b/easybuild/easyconfigs/i/imkl/imkl-10.3.10.319.eb index b3d47b810d..91c64cfa0d 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.3.10.319.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.3.10.319.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s_intel64.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb b/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb index 078c8848d8..4d5ef42fcf 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb @@ -6,7 +6,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, ext for science, engineering, and financial applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb b/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb index 725bb2b396..2bd88ac625 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb @@ -6,7 +6,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, ext for science, engineering, and financial applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361.eb b/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361.eb index 0db4c8f64f..b8769ef805 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.3.12.361.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.3.6.233.eb b/easybuild/easyconfigs/i/imkl/imkl-10.3.6.233.eb index c3fb0d1e8e..b5b58cc188 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.3.6.233.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.3.6.233.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s_intel64.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.0.1.117.eb b/easybuild/easyconfigs/i/imkl/imkl-11.0.1.117.eb index 209f8143d8..8adf971a63 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.0.1.117.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.0.1.117.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.0.2.146.eb b/easybuild/easyconfigs/i/imkl/imkl-11.0.2.146.eb index 94a66c877f..ccd95b2a7a 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.0.2.146.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.0.2.146.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.0.3.163.eb b/easybuild/easyconfigs/i/imkl/imkl-11.0.3.163.eb index 14cee49479..8b97b3ff26 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.0.3.163.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.0.3.163.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.0.4.183.eb b/easybuild/easyconfigs/i/imkl/imkl-11.0.4.183.eb index 339abe07e2..98e5ffd25f 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.0.4.183.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.0.4.183.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.0.5.192.eb b/easybuild/easyconfigs/i/imkl/imkl-11.0.5.192.eb index 5b2f5de9a8..0fe1b14e46 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.0.5.192.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.0.5.192.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.0.080.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.0.080.eb index ca26f636cc..7b7f159547 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.0.080.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.0.080.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.1.106.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.1.106.eb index 6c2f677c6c..cc9f1d89b5 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.1.106.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.1.106.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-2013.5.192-GCC-4.8.3.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-2013.5.192-GCC-4.8.3.eb index 716cd4b3dd..3b9cb14613 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-2013.5.192-GCC-4.8.3.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-2013.5.192-GCC-4.8.3.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-GCC-4.8.3.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-GCC-4.8.3.eb index d1128e7799..4843fd2442 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-GCC-4.8.3.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-GCC-4.8.3.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-OpenMPI-1.6.5.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-OpenMPI-1.6.5.eb index 7c293cda0a..3ad520461a 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-OpenMPI-1.6.5.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144-OpenMPI-1.6.5.eb @@ -6,7 +6,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, ext for science, engineering, and financial applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144.eb index 03e70ed442..47e59ba9fc 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.2.144.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.1.3.174.eb b/easybuild/easyconfigs/i/imkl/imkl-11.1.3.174.eb index 3f03a3bd36..bd599cfe0d 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.1.3.174.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.1.3.174.eb @@ -7,7 +7,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2012b.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2012b.eb index ba3d36b9c7..b0b8036c47 100644 --- a/easybuild/easyconfigs/m/MATLAB/MATLAB-2012b.eb +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2012b.eb @@ -6,7 +6,7 @@ description = """MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2015a.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2015a.eb index acdae43db5..65e39e1872 100644 --- a/easybuild/easyconfigs/m/MATLAB/MATLAB-2015a.eb +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2015a.eb @@ -6,7 +6,7 @@ description = """MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = [SOURCELOWER_TAR_GZ] diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2014a.eb b/easybuild/easyconfigs/m/MCR/MCR-R2014a.eb index 1c593f7430..67a1f39096 100644 --- a/easybuild/easyconfigs/m/MCR/MCR-R2014a.eb +++ b/easybuild/easyconfigs/m/MCR/MCR-R2014a.eb @@ -6,7 +6,7 @@ description = """The MATLAB Runtime is a standalone set of shared libraries that enables the execution of compiled MATLAB applications or components on computers that do not have MATLAB installed.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [ 'http://www.mathworks.com/supportfiles/downloads/%(version)s/deployment_files/%(version)s/installers/glnxa64/', diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2015a.eb b/easybuild/easyconfigs/m/MCR/MCR-R2015a.eb index f459048eeb..ccbd003e89 100644 --- a/easybuild/easyconfigs/m/MCR/MCR-R2015a.eb +++ b/easybuild/easyconfigs/m/MCR/MCR-R2015a.eb @@ -6,7 +6,7 @@ description = """The MATLAB Runtime is a standalone set of shared libraries that enables the execution of compiled MATLAB applications or components on computers that do not have MATLAB installed.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [ 'http://www.mathworks.com/supportfiles/downloads/%(version)s/deployment_files/%(version)s/installers/glnxa64/', diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-2_9_1-linux_x86-64.eb b/easybuild/easyconfigs/o/ORCA/ORCA-2_9_1-linux_x86-64.eb index ae7ad64f4d..d28d21b593 100644 --- a/easybuild/easyconfigs/o/ORCA/ORCA-2_9_1-linux_x86-64.eb +++ b/easybuild/easyconfigs/o/ORCA/ORCA-2_9_1-linux_x86-64.eb @@ -10,7 +10,7 @@ description = """ORCA is a flexible, efficient and easy-to-use general purpose t and multireference correlated ab initio methods. It can also treat environmental and relativistic effects.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb index 1944afede8..81bfa462d1 100644 --- a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb +++ b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb @@ -11,7 +11,7 @@ description = """ORCA is a flexible, efficient and easy-to-use general purpose t and multireference correlated ab initio methods. It can also treat environmental and relativistic effects.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.6.5.eb b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.6.5.eb index 7c21787b12..3d3c83269c 100644 --- a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.6.5.eb +++ b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.6.5.eb @@ -13,7 +13,7 @@ description = """ORCA is a flexible, efficient and easy-to-use general purpose t and multireference correlated ab initio methods. It can also treat environmental and relativistic effects.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.1.eb b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.1.eb index 4c7272b6aa..b51b51028c 100644 --- a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.1.eb +++ b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.1.eb @@ -13,7 +13,7 @@ description = """ORCA is a flexible, efficient and easy-to-use general purpose t and multireference correlated ab initio methods. It can also treat environmental and relativistic effects.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.6.5.eb b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.6.5.eb index 30c44ae3d4..1c8c6b0daf 100644 --- a/easybuild/easyconfigs/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.6.5.eb +++ b/easybuild/easyconfigs/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.6.5.eb @@ -13,7 +13,7 @@ description = """ORCA is a flexible, efficient and easy-to-use general purpose t and multireference correlated ab initio methods. It can also treat environmental and relativistic effects.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] diff --git a/easybuild/easyconfigs/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb index e722b3a3d5..49864adcd3 100644 --- a/easybuild/easyconfigs/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb @@ -4,7 +4,7 @@ version = '15.10' homepage = 'http://www.pgroup.com/' description = "C, C++ and Fortran compilers from The Portland Group - PGI" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['pgilinux-20%(version_major)s-%(version_major)s%(version_minor)s-x86_64.tar.gz'] checksums = ['cae307f7ad467a1811a5d5da758048ab'] diff --git a/easybuild/easyconfigs/p/pbs_python/pbs_python-4.6.0.eb b/easybuild/easyconfigs/p/pbs_python/pbs_python-4.6.0.eb index f7408c2984..e0b6cd1a17 100644 --- a/easybuild/easyconfigs/p/pbs_python/pbs_python-4.6.0.eb +++ b/easybuild/easyconfigs/p/pbs_python/pbs_python-4.6.0.eb @@ -9,7 +9,7 @@ description = """The pbs_python package is a wrapper class for the Torque C libr an ascii version named pbsmon. PBSQuery is also included in this package. This is a python module build on top of the pbs python module to simplify querying the batch server, eg: how many jobs, how many nodes, ...""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['http://ftp.sara.nl/pub/outgoing/'] sources = [SOURCE_TAR_GZ] diff --git a/easybuild/easyconfigs/p/picard/picard-1.100.eb b/easybuild/easyconfigs/p/picard/picard-1.100.eb index d852bf4290..aa4b9cb85c 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.100.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.100.eb @@ -4,7 +4,7 @@ version = '1.100' homepage = 'http://sourceforge.net/projects/picard' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-1.109.eb b/easybuild/easyconfigs/p/picard/picard-1.109.eb index b02c4dfde3..054ac53148 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.109.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.109.eb @@ -4,7 +4,7 @@ version = '1.109' homepage = 'http://sourceforge.net/projects/picard' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-1.119-Java-1.7.0_80.eb b/easybuild/easyconfigs/p/picard/picard-1.119-Java-1.7.0_80.eb index a097dca76d..0d8e511c3f 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.119-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.119-Java-1.7.0_80.eb @@ -4,7 +4,7 @@ version = '1.119' homepage = 'http://sourceforge.net/projects/picard' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-1.119.eb b/easybuild/easyconfigs/p/picard/picard-1.119.eb index b6b8db08ef..b8822ebb22 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.119.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.119.eb @@ -4,7 +4,7 @@ version = '1.119' homepage = 'http://sourceforge.net/projects/picard' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-1.39.eb b/easybuild/easyconfigs/p/picard/picard-1.39.eb index 47c911c385..3f179ac9b7 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.39.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.39.eb @@ -4,7 +4,7 @@ version = '1.39' homepage = 'http://sourceforge.net/projects/picard' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-2.1.0.eb b/easybuild/easyconfigs/p/picard/picard-2.1.0.eb index d68d511ad0..702287f8f6 100644 --- a/easybuild/easyconfigs/p/picard/picard-2.1.0.eb +++ b/easybuild/easyconfigs/p/picard/picard-2.1.0.eb @@ -10,7 +10,7 @@ description = """ A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['https://github.com/broadinstitute/%(name)s/releases/download/%(version)s'] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/s/snpEff/snpEff-3.6-Java-1.7.0_80.eb b/easybuild/easyconfigs/s/snpEff/snpEff-3.6-Java-1.7.0_80.eb index eb194cd37c..429f565ab3 100644 --- a/easybuild/easyconfigs/s/snpEff/snpEff-3.6-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/s/snpEff/snpEff-3.6-Java-1.7.0_80.eb @@ -7,7 +7,7 @@ homepage = 'http://sourceforge.net/projects/snpeff/' description = """SnpEff is a variant annotation and effect prediction tool. It annotates and predicts the effects of genetic variants (such as amino acid changes).""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} java = 'Java' javaver = '1.7.0_80' diff --git a/easybuild/easyconfigs/s/snpEff/snpEff-4.1d-Java-1.7.0_80.eb b/easybuild/easyconfigs/s/snpEff/snpEff-4.1d-Java-1.7.0_80.eb index 8b1570a181..ba982d8d09 100644 --- a/easybuild/easyconfigs/s/snpEff/snpEff-4.1d-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/s/snpEff/snpEff-4.1d-Java-1.7.0_80.eb @@ -7,7 +7,7 @@ homepage = 'http://sourceforge.net/projects/snpeff/' description = """SnpEff is a variant annotation and effect prediction tool. It annotates and predicts the effects of genetic variants (such as amino acid changes).""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} java = 'Java' javaver = '1.7.0_80' diff --git a/easybuild/easyconfigs/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb b/easybuild/easyconfigs/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb index 5f66c5f283..36d97df090 100644 --- a/easybuild/easyconfigs/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb @@ -10,7 +10,7 @@ version = '2.4.1' homepage = 'https://github.com/dkoboldt/varscan' description = """Variant calling and somatic mutation/CNV detection for next-generation sequencing data""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} sources = ['%(name)s.v%(version)s.jar'] source_urls = ['https://github.com/dkoboldt/varscan/releases/download/v%(version)s'] -- GitLab From e906c927130051e6a538f19f81f6589adc685602 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 13:11:46 +0100 Subject: [PATCH 275/732] use patch for multicool in R 3.2.3 easyconfig w/ intel/2016a --- easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index a34a11bc6c..13de8b1f35 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -410,7 +410,7 @@ exts_list = [ ('pixmap', '0.4-11', ext_options), ('tkrplot', '0.0-23', ext_options), ('misc3d', '0.8-4', ext_options), - ('multicool', '0.1-9', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), ('ks', '1.10.1', ext_options), ('logcondens', '2.1.4', ext_options), ('Iso', '0.0-17', ext_options), -- GitLab From 0c844364bc8a006a58e600a5a6528f88dbcfa363 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 13:30:21 +0100 Subject: [PATCH 276/732] add diveRsity + deps to R 3.2.3 intel/2016a easyconfig --- .../easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index 13de8b1f35..9d75c8323c 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -419,6 +419,24 @@ exts_list = [ ('clusterRepro', '0.5-1.1', ext_options), ('randomForestSRC', '2.0.7', ext_options), ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), ] moduleclass = 'lang' -- GitLab From 11da7eb4ab05c2ed1fbf262aa75131b8cd5adc21 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 13:56:39 +0100 Subject: [PATCH 277/732] add patch file to build glasso with recent ifort --- .../easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 2 +- .../r/R/glasso-1.8-ifort-no-fixed.patch | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index 9d75c8323c..eb2673295f 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -431,7 +431,7 @@ exts_list = [ ('sem', '3.1-6', ext_options), ('jpeg', '0.1-8', ext_options), ('sna', '2.3-2', ext_options), - ('glasso', '1.8', ext_options), + ('glasso', '1.8', dict(ext_options.items() + [('patches', [('glasso-1.8-ifort-no-fixed.patch', 1)])])), ('huge', '1.2.7', ext_options), ('d3Network', '0.5.2.1', ext_options), ('ggm', '2.3', ext_options), diff --git a/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch b/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch new file mode 100644 index 0000000000..aaa1fda26e --- /dev/null +++ b/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch @@ -0,0 +1,24 @@ +diff -ru glasso.orig/configure glasso/configure +--- glasso.orig/configure 2014-07-22 00:12:05.000000000 +0200 ++++ glasso/configure 2016-03-02 14:01:48.276280000 +0100 +@@ -2194,7 +2194,7 @@ + ;; + ifort) + echo " R configured for Intel fortran..." +- OUR_FCFLAGS="-O3 -axsse4.2 -r8 -fpp -fixed" ++ OUR_FCFLAGS="-O3 -axsse4.2 -r8 -fpp" + + ;; + *) +diff -ru glasso.orig/MD5 glasso/MD5 +--- glasso.orig/MD5 2014-07-22 10:29:36.000000000 +0200 ++++ glasso/MD5 2016-03-02 14:02:05.854342000 +0100 +@@ -3,7 +3,7 @@ + 9b2f2da42cd1d66c4e3cd38427a0bf7a *R/glasso.R + c1a3c7a42d3c130ba02f4827f056ac9a *R/glassopath.R + d5b44b59f23b953d6c2f8835e3fb180d *cleanup +-07f1fbe29f410cac4048f7dd0f838efb *configure ++cefcd7f95dc125a297700cb21bab535d *configure + 57edafaaa2abcf7a51526b81c0bae33f *configure.in + a92a091ed68d9cf0d5ee056b4ead20fb *man/glasso.Rd + e624eb3357a4d5c9dd0f2c5c734c7116 *man/glassopath.Rd -- GitLab From 59b581d6a86960e43ca10b7c796d7fe5fad76d16 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 14:12:37 +0100 Subject: [PATCH 278/732] add comments in patch files for R extensions --- easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch | 2 ++ easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch | 2 ++ 2 files changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch b/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch index 965affb5c9..11064f05f7 100644 --- a/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch +++ b/easybuild/easyconfigs/r/R/bigmemory-4.5.8_icpc-wd308.patch @@ -1,3 +1,5 @@ +add -wd308 compiler option to dance around harmless compiler warning being treated as en error +author: Kenneth Hoste (HPC-UGent) diff -ru bigmemory.orig/configure bigmemory/configure --- bigmemory.orig/configure 2015-10-16 18:44:28.000000000 +0200 +++ bigmemory/configure 2016-03-02 12:05:54.465799000 +0100 diff --git a/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch b/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch index aaa1fda26e..aed6efc0bf 100644 --- a/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch +++ b/easybuild/easyconfigs/r/R/glasso-1.8-ifort-no-fixed.patch @@ -1,3 +1,5 @@ +add -wd308 compiler option to dance around harmless compiler warning being treated as en error +author: Kenneth Hoste (HPC-UGent) diff -ru glasso.orig/configure glasso/configure --- glasso.orig/configure 2014-07-22 00:12:05.000000000 +0200 +++ glasso/configure 2016-03-02 14:01:48.276280000 +0100 -- GitLab From c0af084db1f46d524f026189fccd86c852a2b54e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 14:30:18 +0100 Subject: [PATCH 279/732] fix remarks, add OpenSSL 1.0.1s easyconfig --- .../c/cURL/cURL-7.47.0-intel-2016a.eb | 2 +- .../d/Doxygen/Doxygen-1.8.11-intel-2016a.eb | 2 +- .../o/OpenSSL/OpenSSL-1.0.1s-intel-2016a.eb | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1s-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb index d47702643f..f21ebdf8a9 100644 --- a/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb +++ b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-intel-2016a.eb @@ -18,7 +18,7 @@ source_urls = ['http://curl.haxx.se/download/'] osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] -# dependencies = [('OpenSSL', '1.0.1r')] +# dependencies = [('OpenSSL', '1.0.1s')] # configopts = "--with-ssl=$EBROOTOPENSSL" modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb index dd1ad80d3a..2d5dc8597f 100644 --- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb +++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-intel-2016a.eb @@ -11,7 +11,7 @@ sources = ['%(namelower)s-%(version)s.src.tar.gz'] source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] builddependencies = [ - ('CMake', '3.4.1'), + ('CMake', '3.4.3'), ('flex', '2.6.0'), ('Bison', '3.0.4'), ] diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1s-intel-2016a.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1s-intel-2016a.eb new file mode 100644 index 0000000000..976aa24ab2 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1s-intel-2016a.eb @@ -0,0 +1,21 @@ +name = 'OpenSSL' +version = '1.0.1s' + +homepage = 'http://www.openssl.org/' +description = """The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, + and Open Source toolchain implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) + protocols as well as a full-strength general purpose cryptography library. """ + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.openssl.org/source/'] + +patches = ['OpenSSL-1.0.1q_icc-fixes.patch'] + +dependencies = [('zlib', '1.2.8')] + +runtest = 'test' + +moduleclass = 'system' -- GitLab From 66966aef18254219342fce2186e7f6e35a6d401d Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 2 Mar 2016 15:04:53 +0100 Subject: [PATCH 280/732] {vis}[intel-2016a] Tk 8.6.4 witg libX11 1.6.3 (REVIEW) --- .../l/libICE/libICE-1.0.9-intel-2016a.eb | 27 ++++++++++++ .../l/libSM/libSM-1.2.2-intel-2016a.eb | 28 +++++++++++++ .../l/libXft/libXft-2.3.2-intel-2016a.eb | 32 ++++++++++++++ .../libXrender-0.9.9-intel-2016a.eb | 28 +++++++++++++ .../l/libXt/libXt-1.1.5-intel-2016a.eb | 39 +++++++++++++++++ .../renderproto-0.11-intel-2016a.eb | 20 +++++++++ .../t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb | 42 +++++++++++++++++++ 7 files changed, 216 insertions(+) create mode 100644 easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXt/libXt-1.1.5-intel-2016a.eb create mode 100644 easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb create mode 100644 easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb new file mode 100644 index 0000000000..0038b41047 --- /dev/null +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libICE' +version = '1.0.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Inter-Client Exchange library for freedesktop.org""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('xtrans', '1.3.5'), +] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/ICE/ICE%s.h' % x for x in ['', 'conn', 'lib', 'msg', 'proto', 'util']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb new file mode 100644 index 0000000000..b34ef0db33 --- /dev/null +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libSM' +version = '1.2.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 Session Management library, which allows for applications to both manage sessions, + and make use of session managers to save and restore their state for later use.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('libICE', '1.0.9'), +] +builddependencies = [ + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/SM/%s' % x for x in ['SM.h', 'SMlib.h', 'SMproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb new file mode 100644 index 0000000000..98289122be --- /dev/null +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + + +dependencies = [ + ('libX11', '1.6.3'), + ('libXrender', '0.9.9'), + ('freetype', '2.6.2'), + ('fontconfig', '2.11.94'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb new file mode 100644 index 0000000000..fefc99f4eb --- /dev/null +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXt/libXt-1.1.5-intel-2016a.eb b/easybuild/easyconfigs/l/libXt/libXt-1.1.5-intel-2016a.eb new file mode 100644 index 0000000000..66391ee4ad --- /dev/null +++ b/easybuild/easyconfigs/l/libXt/libXt-1.1.5-intel-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('kbproto', '1.0.7'), +] + +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb new file mode 100644 index 0000000000..37b516e535 --- /dev/null +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'renderproto' +version = '0.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrender protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..b69472a7b1 --- /dev/null +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +libx11 = 'libX11' +libxver = '1.6.3' +versionsuffix = '-%s-%s' % (libx11, libxver) + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +builddependencies = [ + ('xextproto', '7.3.0'), +# ('xcb-proto', '1.11', '', True), +# ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), +# ('libpthread-stubs', '0.3'), +# ('kbproto', '1.0.7'), +# ('xtrans', '1.3.5'), +] + +dependencies = [ + ('Tcl', version), + (libx11, libxver), + ('libXt', '1.1.5'), + ('libXext', '1.3.3'), + ('libXft', '2.3.2'), +] + +configopts = '--disable-xss --enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' -- GitLab From f669a4e28dba8416dcbf49b2d6bdc421a65c1a67 Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 2 Mar 2016 15:29:32 +0100 Subject: [PATCH 281/732] cp2k 3.0 cray support --- .../c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..f495713dbd --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb @@ -0,0 +1,47 @@ +# contributed by Luca Marsella (CSCS) +name = 'CP2K' +version = "3.0" + +easyblock = 'cp2kcray' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.2'), +] + +builddependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test +runtest = False +# regression test reports failures +#ignore_regtest_fails = True + +# build type +type = 'psmp' + +moduleclass = 'chem' -- GitLab From 4e983088251031f5355c41109844cee106825b6e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 15:35:53 +0100 Subject: [PATCH 282/732] {bio}[intel/2016a] BCFtools 1.3 + HTSlib 1.3 --- .../b/BCFtools/BCFtools-1.3-intel-2016a.eb | 41 +++++++++++++++++++ .../BCFtools-1.3_extHTSlib_Makefile.patch | 38 +++++++++++++++++ .../h/HTSlib/HTSlib-1.3-intel-2016a.eb | 27 ++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/b/BCFtools/BCFtools-1.3_extHTSlib_Makefile.patch create mode 100644 easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb new file mode 100644 index 0000000000..7bccf00035 --- /dev/null +++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'BCFtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """Samtools is a suite of programs for interacting with high-throughput sequencing data. + BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] + +patches = ['BCFtools-%(version)s_extHTSlib_Makefile.patch'] + +dependencies = [ + ('zlib', '1.2.8'), + ('HTSlib', '1.3'), + ('GSL', '2.1'), +] + +parallel = 1 + +skipsteps = ['configure'] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS" USE_GSL=1' +installopts = ' prefix=%(installdir)s' + +postinstallcmds = [ + 'mkdir -p %(installdir)s/lib/plugins', + 'cp plugins/*.so %(installdir)s/lib/plugins/.', +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bcftools', 'plot-vcfstats', 'vcfutils.pl']], + 'dirs': ['lib/plugins'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3_extHTSlib_Makefile.patch b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3_extHTSlib_Makefile.patch new file mode 100644 index 0000000000..e8a56d6411 --- /dev/null +++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3_extHTSlib_Makefile.patch @@ -0,0 +1,38 @@ +patch Makefile to pick up HTSlib, GSL and zlib provided thorugh EasyBuild +author: Kenneth Hoste (HPC-UGent) +--- bcftools-1.3/Makefile.orig 2015-12-15 22:58:35.000000000 +0100 ++++ bcftools-1.3/Makefile 2016-03-02 15:22:03.656821071 +0100 +@@ -29,11 +29,10 @@ + all: $(PROG) $(TEST_PROG) + + # Adjust $(HTSDIR) to point to your top-level htslib directory +-HTSDIR = htslib-1.3 +-include $(HTSDIR)/htslib.mk +-HTSLIB = $(HTSDIR)/libhts.a +-BGZIP = $(HTSDIR)/bgzip +-TABIX = $(HTSDIR)/tabix ++HTSDIR = $(EBROOTHTSLIB)/include ++HTSLIB = $(EBROOTHTSLIB)/lib/libhts.a ++BGZIP = $(EBROOTHTSLIB)/bin/bgzip ++TABIX = $(EBROOTHTSLIB)/bin/tabix + + CC = gcc + CPPFLAGS = +@@ -57,7 +56,7 @@ + ifdef USE_GPL + EXTRA_CPPFLAGS += -DUSE_GPL + OBJS += polysomy.o peakfit.o +- GSL_LIBS = -lgsl -lcblas ++ GSL_LIBS = -L${EBROOTGSL}/lib -lgsl -lcblas + endif + + prefix = /usr/local +@@ -181,7 +180,7 @@ + $(CC) $(LDFLAGS) -o $@ $^ -lm $(LIBS) + + bcftools: $(HTSLIB) $(OBJS) +- $(CC) -rdynamic $(LDFLAGS) -o $@ $(OBJS) $(HTSLIB) -lpthread -lz -lm -ldl $(GSL_LIBS) $(LIBS) ++ $(CC) -rdynamic $(LDFLAGS) -o $@ $(OBJS) $(HTSLIB) -lpthread -L${EBROOTZLIB}/lib -lz -lm -ldl $(GSL_LIBS) $(LIBS) + + doc/bcftools.1: doc/bcftools.txt + cd doc && a2x -adate="$(DOC_DATE)" -aversion=$(DOC_VERSION) --doctype manpage --format manpage bcftools.txt diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb new file mode 100644 index 0000000000..19f0d7bea8 --- /dev/null +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'HTSlib' +version = '1.3' + +homepage = "http://www.htslib.org/" +description = """ A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix """ + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': ["bin/bgzip", "bin/tabix", "lib/libhts.%s" % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 9b308d6910033d8142b7f089f7308cef33a0e759 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 15:40:14 +0100 Subject: [PATCH 283/732] fix remark --- easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-foss-2015a.eb | 2 +- easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-intel-2015a.eb | 2 +- easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-foss-2015a.eb b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-foss-2015a.eb index 1e64be716a..2ee4f62216 100644 --- a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-foss-2015a.eb +++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-foss-2015a.eb @@ -28,7 +28,7 @@ installopts = ' prefix=%(installdir)s' postinstallcmds = [ 'mkdir -p %(installdir)s/lib/plugins', - 'cp plugins/*.so %(installdir)s/lib/plugins/.', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-intel-2015a.eb b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-intel-2015a.eb index 2143e1fd78..f9319eca14 100644 --- a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-intel-2015a.eb +++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.2-intel-2015a.eb @@ -28,7 +28,7 @@ installopts = ' prefix=%(installdir)s' postinstallcmds = [ 'mkdir -p %(installdir)s/lib/plugins', - 'cp plugins/*.so %(installdir)s/lib/plugins/.', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb index 7bccf00035..bd1b04228a 100644 --- a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb +++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.3-intel-2016a.eb @@ -30,7 +30,7 @@ installopts = ' prefix=%(installdir)s' postinstallcmds = [ 'mkdir -p %(installdir)s/lib/plugins', - 'cp plugins/*.so %(installdir)s/lib/plugins/.', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', ] sanity_check_paths = { -- GitLab From 2de552a1a8ab1e33afa8970a301623c577cdc669 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 15:43:23 +0100 Subject: [PATCH 284/732] fix spacing remark in description --- easybuild/easyconfigs/h/HTSlib/HTSlib-1.1-goolf-1.4.10.eb | 4 ++-- easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-foss-2015a.eb | 4 ++-- easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-goolf-1.7.20.eb | 4 ++-- easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015a.eb | 4 ++-- easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015b.eb | 4 ++-- easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.1-goolf-1.4.10.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.1-goolf-1.4.10.eb index d99049bc6c..2f2abef4e6 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.1-goolf-1.4.10.eb @@ -9,8 +9,8 @@ name = 'HTSlib' version = '1.1' homepage = 'http://www.htslib.org/' -description = """ A C library for reading/writing high-throughput sequencing data. - This package includes the utilities bgzip and tabix """ +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" toolchain = {'name': 'goolf', 'version': '1.4.10'} diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-foss-2015a.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-foss-2015a.eb index b9abe470f0..36facf37a3 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-foss-2015a.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-foss-2015a.eb @@ -9,8 +9,8 @@ name = 'HTSlib' version = '1.2.1' homepage = "http://www.htslib.org/" -description = """ A C library for reading/writing high-throughput sequencing data. - This package includes the utilities bgzip and tabix """ +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" toolchain = {'name': 'foss', 'version': '2015a'} diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-goolf-1.7.20.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-goolf-1.7.20.eb index 742be3ddc0..7f25a2acfb 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-goolf-1.7.20.eb @@ -11,8 +11,8 @@ name = 'HTSlib' version = '1.2.1' homepage = "http://www.htslib.org/" -description = """ A C library for reading/writing high-throughput sequencing data. - This package includes the utilities bgzip and tabix """ +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" toolchain = {'name': 'goolf', 'version': '1.7.20'} diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015a.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015a.eb index a5f315ea84..258f48d92e 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015a.eb @@ -9,8 +9,8 @@ name = 'HTSlib' version = '1.2.1' homepage = "http://www.htslib.org/" -description = """ A C library for reading/writing high-throughput sequencing data. - This package includes the utilities bgzip and tabix """ +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" toolchain = {'name': 'intel', 'version': '2015a'} diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015b.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015b.eb index ced9e05617..8c0f7d5ac6 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015b.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.2.1-intel-2015b.eb @@ -9,8 +9,8 @@ name = 'HTSlib' version = '1.2.1' homepage = "http://www.htslib.org/" -description = """ A C library for reading/writing high-throughput sequencing data. - This package includes the utilities bgzip and tabix """ +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" toolchain = {'name': 'intel', 'version': '2015b'} diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb index 19f0d7bea8..7b22333e99 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-intel-2016a.eb @@ -9,8 +9,8 @@ name = 'HTSlib' version = '1.3' homepage = "http://www.htslib.org/" -description = """ A C library for reading/writing high-throughput sequencing data. - This package includes the utilities bgzip and tabix """ +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" toolchain = {'name': 'intel', 'version': '2016a'} -- GitLab From 4fbfd47001198b9fca3ca6598613a318ad758925 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 16:45:27 +0200 Subject: [PATCH 285/732] add easyconfig Platypus-0.8.1-intel-2016a-Python-2.7.11.eb --- ...latypus-0.8.1-intel-2016a-Python-2.7.11.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..c28a1d2040 --- /dev/null +++ b/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonPackage' + +name = 'Platypus' +version = '0.8.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.well.ox.ac.uk/platypus' +description = """Platypus is a tool designed for efficient and accurate variant-detection + in high-throughput sequencing data.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# download requires registration, see http://www.well.ox.ac.uk/software-download-registration +sources = ['%(name)s_%(version)s.tgz'] + +dependencies = [ + ('Python', '2.7.11'), + ('HTSlib', '1.3'), +] + +unpack_options = '--strip-components=1' +buildininstalldir = True + +options = {'modulename': 'platypusutils'} + +sanity_check_paths = { + 'files': ['Platypus.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'bio' -- GitLab From 901b2a16159c00487b53cedb78da279cd319935e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 17:10:25 +0200 Subject: [PATCH 286/732] modify easyconfig Platypus-0.8.1-intel-2016a-Python-2.7.11.eb --- .../p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb index c28a1d2040..bb40e835e4 100644 --- a/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb @@ -23,6 +23,8 @@ buildininstalldir = True options = {'modulename': 'platypusutils'} +postinstallcmds = ["mkdir %(installdir)s/bin && cd %(installdir)s/bin && ln ../Platypus.py"] + sanity_check_paths = { 'files': ['Platypus.py'], 'dirs': ['lib/python%(pyshortver)s/site-packages'], -- GitLab From d50e69f69c5727371e52d564c8abd92a0e7f12a4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 17:13:40 +0200 Subject: [PATCH 287/732] SYMlink --- .../p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb index bb40e835e4..b661d0c21a 100644 --- a/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/Platypus/Platypus-0.8.1-intel-2016a-Python-2.7.11.eb @@ -23,7 +23,7 @@ buildininstalldir = True options = {'modulename': 'platypusutils'} -postinstallcmds = ["mkdir %(installdir)s/bin && cd %(installdir)s/bin && ln ../Platypus.py"] +postinstallcmds = ["mkdir %(installdir)s/bin && cd %(installdir)s/bin && ln -s ../Platypus.py"] sanity_check_paths = { 'files': ['Platypus.py'], -- GitLab From 9529f5c2bc18861f28ffd1f00b5cc1126155b9cc Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 2 Mar 2016 16:49:59 +0100 Subject: [PATCH 288/732] Comments removed --- .../easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb index b69472a7b1..8ada7cd405 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb @@ -19,12 +19,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] builddependencies = [ ('xextproto', '7.3.0'), -# ('xcb-proto', '1.11', '', True), -# ('inputproto', '2.3.1'), ('xproto', '7.0.28'), -# ('libpthread-stubs', '0.3'), -# ('kbproto', '1.0.7'), -# ('xtrans', '1.3.5'), ] dependencies = [ -- GitLab From 114d3585825bdfa4918ad6d6e95be8374c45b964 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 16:50:30 +0100 Subject: [PATCH 289/732] use CMake 3.4.3 --- .../c/CMake/CMake-2.8.4-intel-2016a.eb | 22 ------------- .../c/CMake/CMake-3.1.3-intel-2016a.eb | 22 ------------- .../c/CMake/CMake-3.2.3-intel-2016a.eb | 31 ------------------- .../g/GATE/GATE-6.2-intel-2016a.eb | 2 +- .../g/GATE/GATE-7.0-intel-2016a.eb | 7 ++--- .../g/Geant4/Geant4-9.5.p01-intel-2016a.eb | 2 +- .../g/Geant4/Geant4-9.6.p04-intel-2016a.eb | 5 +-- .../LLVM-3.6.2-intel-2016a-Python-2.7.9.eb | 2 +- 8 files changed, 9 insertions(+), 84 deletions(-) delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb deleted file mode 100644 index 6e790f2a9a..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-2.8.4-intel-2016a.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '2.8.4' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '6.0')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb deleted file mode 100644 index afe0d69bd0..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.1.3-intel-2016a.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.1.3' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '6.0')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb deleted file mode 100644 index bf57c1d381..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.3-intel-2016a.eb +++ /dev/null @@ -1,31 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.3' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = '-- -DCMAKE_USE_OPENSSL=1' - -dependencies = [ - ('ncurses', '6.0'), - # OS dependency should be preferred if the os version is more recent then this version, - # it's nice to have an up to date openssl for security reasons - #('OpenSSL', '1.0.1k'), -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb index 502c8f56f7..389d60bab7 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb @@ -21,6 +21,6 @@ dependencies = [ ('CLHEP', '2.1.1.0'), ('ROOT', 'v5.34.01'), ] -builddependencies = [('CMake', '2.8.4')] +builddependencies = [('CMake', '3.4.3')] moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb b/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb index a0a092ac93..7d392aa8b1 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb @@ -16,14 +16,13 @@ patches = [ 'GATE-%(version)s_unistdh.patch', ] -builddependencies = [ - ('CMake', '3.1.3'), -] - dependencies = [ ('Geant4', '9.6.p04'), ('CLHEP', '2.1.3.1'), ('ROOT', 'v5.34.26'), ] +builddependencies = [ + ('CMake', '3.4.3'), +] moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb index 5b065cc9f0..a4c1b85fa8 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb @@ -16,7 +16,7 @@ dependencies = [ ('CLHEP', '2.1.1.0'), ] -builddependencies = [('CMake', '2.8.4')] +builddependencies = [('CMake', '3.4.3')] configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" configopts += "-DGEANT4_INSTALL_DATA=OFF" diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb index 0496cd5322..8fa06aa9f5 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb @@ -15,8 +15,9 @@ dependencies = [ ('expat', '2.1.0'), ('CLHEP', '2.1.3.1'), ] - -builddependencies = [('CMake', '3.1.3')] +builddependencies = [ + ('CMake', '3.4.3'), +] configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" configopts += "-DGEANT4_INSTALL_DATA=OFF" diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb index 6139d93743..e4b5b40821 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb @@ -22,7 +22,7 @@ source_urls = ["http://llvm.org/releases/%(version)s"] sources = ["llvm-%(version)s.src.tar.xz"] builddependencies = [ - ('CMake', '3.2.3'), + ('CMake', '3.4.3'), (python, pyver), ] -- GitLab From 24ecfa75bf35dcddcd0e895ff0ce3a029d4ade3f Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 2 Mar 2016 16:53:20 +0100 Subject: [PATCH 290/732] Extra ampty line removed --- easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb index 98289122be..17ddfd09d9 100644 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a.eb @@ -16,7 +16,6 @@ builddependencies = [ ('renderproto', '0.11'), ] - dependencies = [ ('libX11', '1.6.3'), ('libXrender', '0.9.9'), -- GitLab From 7fd15a76581d533a36e0320a545bd267fb9a6eac Mon Sep 17 00:00:00 2001 From: Damian Alvarez Date: Wed, 2 Mar 2016 18:23:21 +0100 Subject: [PATCH 291/732] Updated psmpi easyconfig files to use the new psmpi easyblock --- .../easyconfigs/p/pscom/pscom-5.0.48-1.eb | 23 ++++++++++++ .../p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb | 37 +++++++------------ .../psmpi-5.1.0-1-iccifort-2015.1.133.eb | 28 +++----------- .../p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb | 27 ++++++++++++++ .../psmpi-5.1.5-1-iccifort-2015.1.133.eb | 27 ++++++++++++++ 5 files changed, 95 insertions(+), 47 deletions(-) create mode 100644 easybuild/easyconfigs/p/pscom/pscom-5.0.48-1.eb create mode 100644 easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb create mode 100644 easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb diff --git a/easybuild/easyconfigs/p/pscom/pscom-5.0.48-1.eb b/easybuild/easyconfigs/p/pscom/pscom-5.0.48-1.eb new file mode 100644 index 0000000000..13b9a47c54 --- /dev/null +++ b/easybuild/easyconfigs/p/pscom/pscom-5.0.48-1.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'pscom' +version = '5.0.48-1' + +homepage = 'http://www.par-tec.com' +description = "ParaStation is a robust and efficient cluster middleware, consisting of a high-performance communication layer (MPI) and a sophisticated management layer." + +toolchain = {'version': '', 'name': 'dummy'} + +sources = ['%(version)s.zip'] +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] + +builddependencies = [ + ('popt', '1.16'), +] + +sanity_check_paths = { + 'files': ['include/%(name)s.h', ('lib/libpscom.so', 'lib64/libpscom.so'), ('lib/libpscom4mxm.so', 'lib64/libpscom4mxm.so')], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb index 3e04c7775f..87539a2e7d 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb @@ -1,13 +1,15 @@ -easyblock = 'ConfigureMake' - name = 'psmpi' version = '5.1.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI as part of the ParaStationV5 cluster suite provides robust, flexible and scalable communication and management functions for Linux-based compute clusters. Beside parallel applications based on the Message Passing Interface specification, version 2 (MPI2), also serial applications are supported.""" - +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" toolchain = {'name': 'GCC', 'version': '4.9.2'} +toolchainopts = {'defaultopt': True} + sources = [ '%(version)s.tar.gz', 'openpa-1.0.4.tar.gz', @@ -17,26 +19,13 @@ source_urls = [ 'https://trac.mpich.org/projects/openpa/raw-attachment/wiki/Downloads/', ] -# MPICH configure wants F90/F90FLAGS to be renamed to FC/FCFLAGS. -preconfigopts = 'export FC="$F90"; export FCFLAGS="$F90FLAGS"; unset F90; unset F90FLAGS; ' - -# Build shared libraries -configopts = '--with-confset=gcc --enable-shared --enable-static' - -dependencies = [('pscom', '5.0.44-1')] +dependencies = [ + ('pscom', '5.0.44-1', '', True), +] -sanity_check_paths = { - 'files': ['bin/mpicc', 'bin/mpicxx', 'bin/mpic++', 'bin/mpif77', 'bin/mpif90', - 'include/mpi.h', 'include/mpi.mod', 'include/mpif.h', - ('lib/libfmpich.a', 'lib64/libfmpich.a'), - ('lib/libfmpich.%s' % SHLIB_EXT, 'lib64/libfmpich.%s' % SHLIB_EXT), - ('lib/libmpich.a', 'lib64/libmpich.a'), - ('lib/libmpich.%s' % SHLIB_EXT, 'lib64/libmpich.%s' % SHLIB_EXT), - ('lib/libmpichcxx.a', 'lib64/libmpichcxx.a'), - ('lib/libmpichcxx.%s' % SHLIB_EXT, 'lib64/libmpichcxx.%s' % SHLIB_EXT), - ('lib/libmpichf90.a', 'lib64/libmpichf90.a'), - ('lib/libmpichf90.%s' % SHLIB_EXT, 'lib64/libmpichf90.%s' % SHLIB_EXT)], - 'dirs': [], -} +hiddendependencies = [ + ('pscom', '5.0.44-1', '', True), +] +configopts = '--with-confset=gcc PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb index 4bb1ff6f7a..a57afdf688 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb @@ -1,11 +1,11 @@ -easyblock = 'ConfigureMake' - name = 'psmpi' version = '5.1.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI as part of the ParaStationV5 cluster suite provides robust, flexible and scalable communication and management functions for Linux-based compute clusters. Beside parallel applications based on the Message Passing Interface specification, version 2 (MPI2), also serial applications are supported.""" - +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" toolchain = {'name': 'iccifort', 'version': '2015.1.133'} sources = [ @@ -17,26 +17,8 @@ source_urls = [ 'https://trac.mpich.org/projects/openpa/attachment/wiki/Downloads', ] -# MPICH configure wants F90/F90FLAGS to be renamed to FC/FCFLAGS. -preconfigopts = 'export FC="$F90"; export FCFLAGS="$F90FLAGS"; unset F90; unset F90FLAGS; ' - -# Build shared libraries -configopts = '--with-confset=intel --enable-shared --enable-static --enable-romio --enable-mpe' +configopts = '--with-confset=intel' dependencies = [('pscom', '5.0.44-1')] -sanity_check_paths = { - 'files': ['bin/mpicc', 'bin/mpicxx', 'bin/mpic++', 'bin/mpif77', 'bin/mpif90', - 'include/mpi.h', 'include/mpi.mod', 'include/mpif.h', - ('lib/libfmpich.a', 'lib64/libfmpich.a'), - ('lib/libfmpich.%s' % SHLIB_EXT, 'lib64/libfmpich.%s' % SHLIB_EXT), - ('lib/libmpich.a', 'lib64/libmpich.a'), - ('lib/libmpich.%s' % SHLIB_EXT, 'lib64/libmpich.%s' % SHLIB_EXT), - ('lib/libmpichcxx.a', 'lib64/libmpichcxx.a'), - ('lib/libmpichcxx.%s' % SHLIB_EXT, 'lib64/libmpichcxx.%s' % SHLIB_EXT), - ('lib/libmpichf90.a', 'lib64/libmpichf90.a'), - ('lib/libmpichf90.%s' % SHLIB_EXT, 'lib64/libmpichf90.%s' % SHLIB_EXT)], - 'dirs': [], -} - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb new file mode 100644 index 0000000000..b7c5d500a2 --- /dev/null +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb @@ -0,0 +1,27 @@ +name = 'psmpi' +version = '5.1.5-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'version': '4.9.3', 'name': 'GCC'} + +toolchainopts = {'defaultopt': True} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/ParaStation/psmpi2/archive/'] + +dependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +hiddendependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +configopts = ' --with-confset=gcc PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb new file mode 100644 index 0000000000..92f6033fa8 --- /dev/null +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb @@ -0,0 +1,27 @@ +name = 'psmpi' +version = '5.1.5-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'version': '2015.1.133', 'name': 'iccifort'} + +toolchainopts = {'defaultopt': True} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/ParaStation/psmpi2/archive/'] + +dependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +hiddendependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +configopts = ' --with-confset=intel PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' + +moduleclass = 'mpi' -- GitLab From 861f5a1e81be0a986ff0f31a27762ca148c61852 Mon Sep 17 00:00:00 2001 From: Damian Alvarez Date: Wed, 2 Mar 2016 18:29:44 +0100 Subject: [PATCH 292/732] Small fixes --- .../easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb | 3 +-- .../p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb | 10 ++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb index 87539a2e7d..34f4d57dd7 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb @@ -8,8 +8,6 @@ various batch systems for tighter process control. """ toolchain = {'name': 'GCC', 'version': '4.9.2'} -toolchainopts = {'defaultopt': True} - sources = [ '%(version)s.tar.gz', 'openpa-1.0.4.tar.gz', @@ -26,6 +24,7 @@ dependencies = [ hiddendependencies = [ ('pscom', '5.0.44-1', '', True), ] + configopts = '--with-confset=gcc PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb index a57afdf688..ac08d5c585 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb @@ -17,8 +17,14 @@ source_urls = [ 'https://trac.mpich.org/projects/openpa/attachment/wiki/Downloads', ] -configopts = '--with-confset=intel' +dependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +hiddendependencies = [ + ('pscom', '5.0.48-1', '', True), +] -dependencies = [('pscom', '5.0.44-1')] +configopts = '--with-confset=intel PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' moduleclass = 'mpi' -- GitLab From 0886e5027a7736285c13f867627a2a8673d9a4cc Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 2 Mar 2016 19:57:33 +0200 Subject: [PATCH 293/732] add easyconfig HPL-2.1-intel-2016.02-GCC-4.9.eb, add easyconfig binutils-2.26-GCCcore-4.9.3.eb, add easyconfig flex-2.6.0-GCCcore-4.9.3.eb, add easyconfig icc-2016.2.181-GCC-4.9.3-2.26.eb, add easyconfig iccifort-2016.2.181-GCC-4.9.3-2.26.eb, add easyconfig ifort-2016.2.181-GCC-4.9.3-2.26.eb, add easyconfig iimpi-2016.02-GCC-4.9.3-2.26.eb, add easyconfig imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb, add easyconfig impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb, add easyconfig intel-2016.02-GCC-4.9.eb --- .../b/binutils/binutils-2.26-GCCcore-4.9.3.eb | 41 +++++++++++++++++++ .../f/flex/flex-2.6.0-GCCcore-4.9.3.eb | 21 ++++++++++ .../h/HPL/HPL-2.1-intel-2016.02-GCC-4.9.eb | 18 ++++++++ .../i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb | 35 ++++++++++++++++ .../iccifort-2016.2.181-GCC-4.9.3-2.26.eb | 18 ++++++++ .../ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb | 35 ++++++++++++++++ .../i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb | 22 ++++++++++ ...11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb | 38 +++++++++++++++++ ....181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb | 34 +++++++++++++++ .../i/intel/intel-2016.02-GCC-4.9.eb | 26 ++++++++++++ 10 files changed, 288 insertions(+) create mode 100644 easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb create mode 100644 easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-intel-2016.02-GCC-4.9.eb create mode 100644 easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb create mode 100644 easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb create mode 100644 easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb create mode 100644 easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb create mode 100644 easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb create mode 100644 easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb create mode 100644 easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb new file mode 100644 index 0000000000..0d3fdd2d17 --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'binutils' +version = '2.26' + +homepage = 'http://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + # zlib required, but being linked instatically, so not a runtime dep + ('zlib', '1.2.8'), + # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils + ('binutils', version, '', True) +] + +# statically link with zlib, to avoid runtime dependency on zlib +preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' + +# make sure that system libraries are also considered by ld and ld.gold is also built +# --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html +configopts = '--with-sysroot=/ --enable-gold --enable-ld=default --enable-plugins --enable-shared --enable-static' + +binlist = ['addr2line', 'ar', 'as', 'c++filt', 'elfedit', 'gprof', 'ld', 'ld.bfd', 'ld.gold', 'nm', + 'objcopy', 'objdump', 'ranlib', 'readelf', 'size', 'strings', 'strip'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in binlist] + + ['lib/lib%s.%s' % (l, x) for l in ['bfd', 'opcodes'] for x in ['a', SHLIB_EXT]] + + ['include/%s' % x for x in ['ansidecl.h', 'bfd.h', 'bfdlink.h', 'dis-asm.h', 'symcat.h']], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb b/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb new file mode 100644 index 0000000000..5a3de111fc --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb @@ -0,0 +1,21 @@ +name = 'flex' +version = '2.6.0' + +homepage = 'http://flex.sourceforge.net/' +description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +dependencies = [('Bison', '3.0.4')] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.26', '', True)] + +parallel = 1 + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-intel-2016.02-GCC-4.9.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-intel-2016.02-GCC-4.9.eb new file mode 100644 index 0000000000..977c7d487d --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb new file mode 100644 index 0000000000..ec73b70b03 --- /dev/null +++ b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb @@ -0,0 +1,35 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.2.181' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_update%(version_minor)s.tgz'] + +checksums = ['d6f8529a44231e427219c8e025dec3b2'] + +gccver = '4.9.3' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb new file mode 100644 index 0000000000..93577bed54 --- /dev/null +++ b/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb @@ -0,0 +1,18 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iccifort' +version = '2016.2.181' +versionsuffix = '-GCC-4.9.3-2.26' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb new file mode 100644 index 0000000000..c55e928942 --- /dev/null +++ b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb @@ -0,0 +1,35 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.2.181' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] + +checksums = ['70e88db11efc59b1d8ff8b5aadf50f7f'] + +gccver = '4.9.3' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb new file mode 100644 index 0000000000..0be81ea753 --- /dev/null +++ b/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb @@ -0,0 +1,22 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iimpi' +version = '2016.02' +versionsuffix = '-GCC-4.9.3-2.26' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '2.181' +compver = '2016.%s' % suff + +dependencies = [ + ('icc', compver, versionsuffix), + ('ifort', compver, versionsuffix), + ('impi', '5.1.3.181', '', ('iccifort', '%s%s' % (compver, versionsuffix))), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb new file mode 100644 index 0000000000..78baf11191 --- /dev/null +++ b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb @@ -0,0 +1,38 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '11.3.2.181' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2016.02-GCC-4.9.3-2.26'} + +sources = ['l_mkl_%(version)s.tgz'] +checksums = ['536dbd82896d6facc16de8f961d17d65'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb new file mode 100644 index 0000000000..147e9c1ec1 --- /dev/null +++ b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb @@ -0,0 +1,34 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'impi' +version = '5.1.3.181' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2016.2.181-GCC-4.9.3-2.26'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +checksums = ['1c14656859d48bf8b90c71dace2a977b'] + +dontcreateinstalldir = 'True' + +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +# set up all the mpi commands to default to intel compilers +# set_mpi_wrappers_all = 'True' + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb b/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb new file mode 100644 index 0000000000..955db91710 --- /dev/null +++ b/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb @@ -0,0 +1,26 @@ +easyblock = 'Toolchain' + +name = 'intel' +version = '2016.02' +gcc_maj_min = '4.9' +versionsuffix = '-GCC-%s' % gcc_maj_min + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compver = '2016.2.181' +gccver = '%s.3' % gcc_maj_min +binutilsver = '2.26' +gccsuff = '-GCC-%s-%s' % (gccver, binutilsver) +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '-GCCcore-%s' % gccver), + ('icc', compver, gccsuff), + ('ifort', compver, gccsuff), + ('impi', '5.1.3.181', '', ('iccifort', '%s%s' % (compver, gccsuff))), + ('imkl', '11.3.2.181', '', ('iimpi', '%s%s' % (version, gccsuff))), +] + +moduleclass = 'toolchain' -- GitLab From 6cc138ca5ec6cd4aaea6917159a494a892746d8a Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Wed, 2 Mar 2016 17:59:17 +0000 Subject: [PATCH 294/732] Use existing non-bare Perl 5.20.3 --- ...erl-5.22.0.eb => PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename easybuild/easyconfigs/p/PRINSEQ/{PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb => PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb} (98%) diff --git a/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb b/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb similarity index 98% rename from easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb rename to easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb index 9d69ec6346..1d36878e90 100644 --- a/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.22.0.eb +++ b/easybuild/easyconfigs/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb @@ -19,11 +19,11 @@ source_urls = ['http://sourceforge.net/projects/prinseq/files/standalone/'] sources = ['%(namelower)s-lite-%(version)s.tar.gz'] perl = 'Perl' -perlver = '5.22.0' +perlver = '5.20.3' versionsuffix = '-%s-%s' % (perl, perlver) dependencies = [ - (perl, perlver, '-bare'), + (perl, perlver), ] # these are the perl libraries dependencies -- GitLab From b8e4a25cec60fe50c037e9614ac6d497a916b47e Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Wed, 2 Mar 2016 18:09:15 +0000 Subject: [PATCH 295/732] First version of Subread --- .../s/Subread/Subread-1.5.0p1-foss-2015b.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb new file mode 100644 index 0000000000..245a7b2f5a --- /dev/null +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb @@ -0,0 +1,30 @@ +# Note: +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# It was auto-generated based on a template easyconfig, so it should be used with care. +easyblock = 'MakeCp' + +name = 'Subread' +version = '1.5.0p1' + +homepage = 'http://subread.sourceforge.net/' +description = """TEMPLATE DESCRIPTION""" + +# toolchain name should be 'TEMPLATE' if this is a template, so EasyBuild knows and is willing to use it as a template +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {} # toolchain options, e.g. opt, pic, usempi, optarch, ... + +# For sources line to work correctly with --try-software-version, you MUST employ %s OR use a construct like SOURCE_TAR_GZ +sources = ['%(namelower)s-%version)s-source.tar.gz'] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [] + +dependencies = [] + +# The sanity test MUST be tuned before going production and submitting your contribution to upstream git repositories +sanity_check_paths = { + 'files': [], + 'dirs': ["."] +} + +moduleclass = 'bio' -- GitLab From ee51c965aac480debb113fe46bd326cca373dbac Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 2 Mar 2016 19:10:53 +0100 Subject: [PATCH 296/732] modified to use stock easyblock for cp2k --- easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb index f495713dbd..55e00d968f 100644 --- a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb @@ -2,8 +2,6 @@ name = 'CP2K' version = "3.0" -easyblock = 'cp2kcray' - homepage = 'http://www.cp2k.org/' description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different -- GitLab From 5c42a24484a4db4563a78da1ed3c4d4ebc444adb Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 2 Mar 2016 19:43:23 +0100 Subject: [PATCH 297/732] adding cuda enable version of cp2k --- .../CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb new file mode 100644 index 0000000000..aeb506b2a1 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb @@ -0,0 +1,48 @@ +# contributed by Luca Marsella (CSCS) +name = 'CP2K' +version = "3.0" +cudaversion = '7.0' +versionsuffix = '-cuda-%s' % cudaversion + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.2'), +] + +builddependencies = [ + ('cudatoolkit/7.0.28-1.0502.10742.5.1', EXTERNAL_MODULE), + ('fftw/3.3.4.3', EXTERNAL_MODULE), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test +runtest = False +# regression test reports failures +#ignore_regtest_fails = True + +# build type +type = 'psmp' + +moduleclass = 'chem' -- GitLab From 2bfcc9dfe12d917a4a60532d2fbc9df1066e6cf9 Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 2 Mar 2016 20:01:42 +0100 Subject: [PATCH 298/732] add missing dep --- .../l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb new file mode 100644 index 0000000000..99ad1db263 --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb @@ -0,0 +1,33 @@ +# contributed by Luca Marsella (CSCS) +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.so'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' -- GitLab From 997c2da874253518cdb275ee70bfb3232257af8c Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Thu, 3 Mar 2016 06:11:16 +1030 Subject: [PATCH 299/732] Set toolchain version to '' so the Java dep is actually loaded --- easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb | 2 +- easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb | 2 +- easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb | 2 +- easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb b/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb index 0d15ad9204..6e8d731733 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.120-Java-1.8.0_66.eb @@ -5,7 +5,7 @@ homepage = 'http://broadinstitute.github.io/picard/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM (http://samtools.github.io/hts-specs) format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb b/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb index 3c1e54038f..a7d48bf6b0 100644 --- a/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/p/picard/picard-1.141-Java-1.8.0_74.eb @@ -5,7 +5,7 @@ homepage = 'http://broadinstitute.github.io/picard/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM (http://samtools.github.io/hts-specs) format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb index 2d067163eb..742c2507d1 100644 --- a/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/p/picard/picard-2.0.1-Java-1.8.0_66.eb @@ -5,7 +5,7 @@ homepage = 'http://broadinstitute.github.io/picard/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM (http://samtools.github.io/hts-specs) format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] sources = ['%(name)s-tools-%(version)s.zip'] diff --git a/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb b/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb index 2c1613a976..88bda5b21f 100644 --- a/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/p/picard/picard-2.1.0-Java-1.8.0_74.eb @@ -5,7 +5,7 @@ homepage = 'http://broadinstitute.github.io/picard/' description = """A set of tools (in Java) for working with next generation sequencing data in the BAM (http://samtools.github.io/hts-specs) format.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchain = {'name': 'dummy', 'version': ''} source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] sources = ['%(name)s-tools-%(version)s.zip'] -- GitLab From f038794ebafd3137021e07532136e6b116b631ce Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Wed, 2 Mar 2016 21:43:15 +0000 Subject: [PATCH 300/732] Add first draft of RSeQC including numpy dep --- .../numpy-1.9.2-foss-2015b-Python-2.7.10.eb | 27 ++++++++++++++ .../r/RSeQC/RSeQC-2.6.3-foss-2015b.eb | 35 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb create mode 100644 easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..f55df325cf --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb @@ -0,0 +1,27 @@ +name = 'numpy' +version = '1.9.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +python = 'Python' +pyver = '2.7.10' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('SuiteSparse', '4.4.5', '-METIS-5.1.0'), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb new file mode 100644 index 0000000000..c0f1f917f6 --- /dev/null +++ b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'RSeQC' +version = '2.6.3' + +homepage = 'http://rseqc.sourceforge.net/' +description = """RSeQC provides a number of useful modules that can + comprehensively evaluate high throughput sequence data especially RNA-seq + data. Some basic modules quickly inspect sequence quality, nucleotide + composition bias, PCR bias and GC bias, while RNA-seq specific modules + evaluate sequencing saturation, mapped reads distribution, coverage + uniformity, strand specificity, transcript level RNA integrity etc.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [] + +Python = 'Python' +pyver = '2.7.10' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + ('R', '3.2.3'), + ('numpy', '1.9.2'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ["."] +} + +moduleclass = 'bio' -- GitLab From 56deacea6672aab9c732fee0e9246bdc39b0b932 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 3 Mar 2016 09:34:25 +0100 Subject: [PATCH 301/732] SHLIB_EXT --- .../l/libdrm/libdrm-2.4.67-intel-2016a.eb | 4 +-- .../l/libxml2/libxml2-2.9.3-intel-2016a.eb | 29 ------------------- .../m/Mesa/Mesa-11.1.2-intel-2016a.eb | 17 +++++------ 3 files changed, 9 insertions(+), 41 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb index 5a91110f77..f4e9adac9a 100644 --- a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-intel-2016a.eb @@ -20,8 +20,8 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.so', - 'lib/libdrm_radeon.so', 'lib/libdrm.so', 'lib/libkms.so'], + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, + 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], } diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb deleted file mode 100644 index b762d96901..0000000000 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a.eb +++ /dev/null @@ -1,29 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxml2' -version = '2.9.3' - -homepage = 'http://xmlsoft.org/' -description = """Libxml2 is the XML C parser and -toolchain developed for the Gnome project - (but usable outside of the Gnome platform).""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -source_urls = [ - 'http://xmlsoft.org/sources/', - 'http://xmlsoft.org/sources/old/' -] -sources = [SOURCELOWER_TAR_GZ] - -configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' - -dependencies = [('zlib', '1.2.8')] - -sanity_check_paths = { - 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], - 'dirs': ['bin', 'include/libxml2/libxml'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb index 9f80ae7c43..7d84452191 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -45,8 +45,9 @@ dependencies = [ #osdependencies = ['libudev'] # GLU is not part anymore of Mesa package! -configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" -configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl --with-osmesa-bits=32 --enable-texture-float " +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " # package-config files for os dependencies are in an os specific place #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' @@ -55,14 +56,10 @@ preconfigopts = ' libtoolize && ' prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { - 'files': ['lib/libGL.so', 'lib/libOSMesa.so', - 'lib/libGLESv1_CM.so', 'lib/libGLESv2.so', - 'include/GL/glext.h', 'include/GL/gl_mangle.h', - 'include/GL/glx.h', 'include/GL/osmesa.h', - 'include/GL/wglext.h', 'include/GL/gl.h', - 'include/GL/glxext.h', 'include/GL/glx_mangle.h', - 'include/GLES/gl.h', 'include/GLES2/gl2.h', - 'include/GLES3/gl3.h'], + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], 'dirs': [] } -- GitLab From 2c44567470e8aef1bb2abfe26c78758d2fb2951c Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 3 Mar 2016 09:57:28 +0100 Subject: [PATCH 302/732] {lang}[intel-2016a] Python 2.7.11 with libX11 1.6.3 (REVIEW) --- .../Python-2.7.11-intel-2016a-libX11-1.6.3.eb | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..00997213ad --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,139 @@ +name = 'Python' +version = '2.7.11' + +libx11 = 'libX11' +libxver = '1.6.3' +versionsuffix = '-%s-%s' % (libx11, libxver) + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + (libx11, libxver), + ('Tk', '8.6.4', versionsuffix), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), +] + +moduleclass = 'lang' -- GitLab From ec0b5b1c54f6a5f9605d3560f78932c745b24002 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 3 Mar 2016 09:59:58 +0100 Subject: [PATCH 303/732] " corrected --- easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb index 7d84452191..3ee16e73ea 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -45,7 +45,7 @@ dependencies = [ #osdependencies = ['libudev'] # GLU is not part anymore of Mesa package! -configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" configopts += " --with-osmesa-bits=32 --enable-texture-float " -- GitLab From 3f371ecc086c53fec4de195d9aa8e8bf79a5ea9f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 11:51:56 +0100 Subject: [PATCH 304/732] bump deps: ROOT v5.34.34, Mesa 11.1.2 (cfr. #2610), Python 2.7.11, CLHEP 2.3.1.1, Geant 9.6.p04 --- .../Autotools-20150119-intel-2016a.eb | 17 --- .../b/Bison/Bison-3.0.2-intel-2016a.eb | 22 ---- .../c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb | 20 --- ...-2016a.eb => CLHEP-2.3.1.1-intel-2016a.eb} | 7 +- .../e/eudev/eudev-3.0-intel-2016a.eb | 33 ----- ... => GATE-6.2-intel-2016a-Python-2.7.11.eb} | 7 +- ... => GATE-7.1-intel-2016a-Python-2.7.11.eb} | 7 +- .../easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb | 18 --- .../g/Geant4/Geant4-9.5.p01-intel-2016a.eb | 24 ---- .../g/Geant4/Geant4-9.6.p04-intel-2016a.eb | 2 +- .../LLVM-3.6.2-intel-2016a-Python-2.7.9.eb | 38 ------ .../libX11-1.6.3-intel-2016a-Python-2.7.9.eb | 37 ------ .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 2 +- .../libXrender-0.9.9-intel-2016a.eb | 2 +- .../l/libdrm/libdrm-2.4.59-intel-2016a.eb | 25 ---- .../libpciaccess-0.13.1-intel-2016a.eb | 26 ---- .../libreadline-6.2-intel-2016a.eb | 30 ----- .../l/libtool/libtool-2.4.5-intel-2016a.eb | 17 --- .../libxml2-2.8.0-intel-2016a-Python-2.7.3.eb | 33 ----- .../libxml2-2.9.2-intel-2016a-Python-2.7.9.eb | 28 ----- .../Mesa-10.4.5-intel-2016a-Python-2.7.9.eb | 75 ----------- .../n/ncurses/ncurses-5.9-intel-2016a.eb | 36 ------ .../p/PCRE/PCRE-8.36-intel-2016a.eb | 18 --- .../p/Python/Python-2.7.3-intel-2016a.eb | 89 ------------- .../p/Python/Python-2.7.9-intel-2016a.eb | 117 ------------------ .../pkg-config/pkg-config-0.28-intel-2016a.eb | 27 ---- .../r/ROOT/ROOT-v5.34.01-intel-2016a.eb | 39 ------ ...OOT-v5.34.34-intel-2016a-Python-2.7.11.eb} | 14 +-- .../s/SQLite/SQLite-3.8.8.1-intel-2016a.eb | 38 ------ .../t/Tcl/Tcl-8.6.3-intel-2016a.eb | 25 ---- .../t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb | 24 ---- ...xcb-proto-1.11-intel-2016a-Python-2.7.9.eb | 27 ---- .../xorg-macros-1.17-intel-2016a.eb | 22 ---- .../x/xproto/xproto-7.0.27-intel-2016a.eb | 24 ---- 34 files changed, 19 insertions(+), 951 deletions(-) delete mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb rename easybuild/easyconfigs/c/CLHEP/{CLHEP-2.1.3.1-intel-2016a.eb => CLHEP-2.3.1.1-intel-2016a.eb} (85%) delete mode 100644 easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb rename easybuild/easyconfigs/g/GATE/{GATE-6.2-intel-2016a.eb => GATE-6.2-intel-2016a-Python-2.7.11.eb} (87%) rename easybuild/easyconfigs/g/GATE/{GATE-7.0-intel-2016a.eb => GATE-7.1-intel-2016a-Python-2.7.11.eb} (87%) delete mode 100644 easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb delete mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb rename easybuild/easyconfigs/r/ROOT/{ROOT-v5.34.26-intel-2016a.eb => ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb} (90%) delete mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb delete mode 100644 easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb deleted file mode 100644 index 8d512386b5..0000000000 --- a/easybuild/easyconfigs/a/Autotools/Autotools-20150119-intel-2016a.eb +++ /dev/null @@ -1,17 +0,0 @@ -easyblock = 'Bundle' - -name = 'Autotools' -version = '20150119' # date of the most recent change - -homepage = 'http://autotools.io' -description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -dependencies = [ - ('Autoconf', '2.69'), # 20120424 - ('Automake', '1.15'), # 20150105 - ('libtool', '2.4.5'), # 20150119 -] - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb deleted file mode 100644 index 4fdbf98d8f..0000000000 --- a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-intel-2016a.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Bison' -version = '3.0.2' - -homepage = 'http://www.gnu.org/software/bison' -description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar - into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [('M4', '1.4.17')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], - 'dirs': [], -} - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb deleted file mode 100644 index ceed3e9cd3..0000000000 --- a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb +++ /dev/null @@ -1,20 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CLHEP' -version = '2.1.1.0' - -homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' -description = """The CLHEP project is intended to be a set of HEP-specific foundation and - utility classes such as random generators, physics vectors, geometry and linear algebra. - CLHEP is structured in a set of packages independent of any external package.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TGZ] -source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] - -# CLHEP compiles with icc instead of icpc -configopts = 'CXX="$CC" CXXFLAGS="$CXXFLAGS -gcc"' - -moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb similarity index 85% rename from easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb rename to easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb index 42f08bd8d9..cf3607f24f 100644 --- a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb @@ -1,24 +1,21 @@ easyblock = 'CMakeMake' name = 'CLHEP' -version = '2.1.3.1' +version = '2.3.1.1' homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' description = """The CLHEP project is intended to be a set of HEP-specific foundation and utility classes such as random generators, physics vectors, geometry and linear algebra. CLHEP is structured in a set of packages independent of any external package.""" - toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'pic': True} sources = [SOURCELOWER_TGZ] source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] -builddependencies = [('CMake', '3.1.3')] +builddependencies = [('CMake', '3.4.3')] separate_build_dir = True -configopts = '-DCMAKE_BUILD_TYPE=Release' - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb b/easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb deleted file mode 100644 index 246e9d0730..0000000000 --- a/easybuild/easyconfigs/e/eudev/eudev-3.0-intel-2016a.eb +++ /dev/null @@ -1,33 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'eudev' -version = '3.0' - -homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' -description = """eudev is a fork of systemd-udev with the goal of obtaining - better compatibility with existing software such as - OpenRC and Upstart, older kernels, various toolchains - and anything else required by users and various distributions.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'cstd': 'c99'} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] -patches = ['%(name)s-%(version)s_pre-2.6.34_kernel.patch'] - -builddependencies = [ - ('gperf', '3.0.4'), -] - -osdependencies = [('kernel-headers', 'linux-libc-dev')] - -configopts = '--disable-blkid --disable-selinux --disable-gudev --disable-manpages ' -runtest = 'check' - -sanity_check_paths = { - 'files': ['bin/udevadm', 'include/libudev.h', 'include/udev.h', 'lib/libudev.so.1'], - 'dirs': [], -} - -moduleclass = 'system' diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb similarity index 87% rename from easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb rename to easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb index 389d60bab7..c48ea46984 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb @@ -1,5 +1,6 @@ name = 'GATE' version = '6.2' +versionsuffix = '-Python-2.7.11' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and @@ -17,9 +18,9 @@ patches = [ ] dependencies = [ - ('Geant4', '9.5.p01'), - ('CLHEP', '2.1.1.0'), - ('ROOT', 'v5.34.01'), + ('Geant4', '9.6.p04'), + ('CLHEP', '2.3.1.1'), + ('ROOT', 'v5.34.34', versionsuffix), ] builddependencies = [('CMake', '3.4.3')] diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb similarity index 87% rename from easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb rename to easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb index 7d392aa8b1..6e9809e000 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb @@ -1,5 +1,6 @@ name = 'GATE' -version = '7.0' +version = '7.1' +versionsuffix = '-Python-2.7.11' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and @@ -18,8 +19,8 @@ patches = [ dependencies = [ ('Geant4', '9.6.p04'), - ('CLHEP', '2.1.3.1'), - ('ROOT', 'v5.34.26'), + ('CLHEP', '2.3.1.1'), + ('ROOT', 'v5.34.34', versionsuffix), ] builddependencies = [ ('CMake', '3.4.3'), diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb deleted file mode 100644 index 714d2f9de8..0000000000 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2016a.eb +++ /dev/null @@ -1,18 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'GSL' -version = '1.15' - -homepage = 'http://www.gnu.org/software/gsl/' -description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb deleted file mode 100644 index a4c1b85fa8..0000000000 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2016a.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'Geant4' -version = '9.5.p01' - -homepage = 'http://geant4.cern.ch/' -description = """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.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://geant4.cern.ch/support/source'] -sources = ['%(namelower)s.%(version)s.tar.gz'] - -dependencies = [ - ('expat', '2.1.0'), - ('CLHEP', '2.1.1.0'), -] - -builddependencies = [('CMake', '3.4.3')] - -configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" -configopts += "-DGEANT4_INSTALL_DATA=OFF" - -moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb index 8fa06aa9f5..356c780edf 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb @@ -13,7 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), - ('CLHEP', '2.1.3.1'), + ('CLHEP', '2.3.1.1'), ] builddependencies = [ ('CMake', '3.4.3'), diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb deleted file mode 100644 index e4b5b40821..0000000000 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.6.2-intel-2016a-Python-2.7.9.eb +++ /dev/null @@ -1,38 +0,0 @@ -easyblock = 'CMakeMake' - -name = 'LLVM' -version = '3.6.2' -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -homepage = "http://llvm.org/" -description = """The LLVM Core libraries provide a modern source- and target-independent - optimizer, along with code generation support for many popular CPUs - (as well as some less common ones!) These libraries are built around a well - specified code representation known as the LLVM intermediate representation - ("LLVM IR"). The LLVM Core libraries are well documented, and it is - particularly easy to invent your own language (or port an existing compiler) - to use LLVM as an optimizer and code generator.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'cstd': 'gnu++11'} - -source_urls = ["http://llvm.org/releases/%(version)s"] -sources = ["llvm-%(version)s.src.tar.xz"] - -builddependencies = [ - ('CMake', '3.4.3'), - (python, pyver), -] - -configopts = '-DBUILD_SHARED_LIBS=ON ' - -sanity_check_paths = { - 'files': ['bin/llvm-ar'], - 'dirs': ['include/llvm', 'include/llvm-c'], -} - -separate_build_dir = True - -moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb deleted file mode 100644 index 060a6e35d0..0000000000 --- a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a-Python-2.7.9.eb +++ /dev/null @@ -1,37 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libX11' -version = '1.6.3' -versionsuffix = '-Python-2.7.9' - -homepage = "http://www.freedesktop.org/wiki/Software/xlibs" -description = """X11 client-side library""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCE_TAR_GZ] -source_urls = [XORG_LIB_SOURCE] - -builddependencies = [ - ('xextproto', '7.3.0'), - ('xcb-proto', '1.11', versionsuffix), - ('inputproto', '2.3.1'), - ('xproto', '7.0.27'), - ('kbproto', '1.0.6'), -] - -dependencies = [ - ('libxcb', '1.11', versionsuffix), - ('xtrans', '1.3.5'), -] - -sanity_check_paths = { - 'files': ['include/X11/%s' % x for x in [ - 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', - 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', - ] - ], - 'dirs': [], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb index ab04e0520c..95e636b60d 100644 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb @@ -20,7 +20,7 @@ libx11ver = '1.6.3' versionsuffix = '-libX11-%s' % libx11ver dependencies = [ - ('libX11', libx11ver, '-Python-2.7.9'), + ('libX11', libx11ver), ('libXrender', '0.9.9'), ('freetype', '2.5.5'), ('fontconfig', '2.11.93'), diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb index 06b460f5f2..fefc99f4eb 100644 --- a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -17,7 +17,7 @@ builddependencies = [ ] dependencies = [ - ('libX11', '1.6.3', '-Python-2.7.9'), + ('libX11', '1.6.3'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb deleted file mode 100644 index 8d7f8591ba..0000000000 --- a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.59-intel-2016a.eb +++ /dev/null @@ -1,25 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libdrm' -version = '2.4.59' - -homepage = 'http://dri.freedesktop.org' -description = """Direct Rendering Manager runtime library.""" - -source_urls = ['http://dri.freedesktop.org/libdrm/'] -sources = [SOURCELOWER_TAR_GZ] - -toolchain = {'name': 'intel', 'version': '2016a'} - -dependencies = [ - ('libpthread-stubs', '0.3'), - ('libpciaccess', '0.13.1'), -] - -sanity_check_paths = { - 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, - 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], - 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb deleted file mode 100644 index eeafddf420..0000000000 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2016a.eb +++ /dev/null @@ -1,26 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libpciaccess' -version = '0.13.1' - -homepage = 'http://cgit.freedesktop.org/xorg/lib/libpciaccess/' -description = """Generic PCI access library.""" - -source_urls = ['http://cgit.freedesktop.org/xorg/lib/libpciaccess/snapshot'] -sources = [SOURCE_TAR_GZ] - -toolchain = {'name': 'intel', 'version': '2016a'} - -builddependencies = [ - ('Autotools', '20150119', '', ('GCC', '4.9.2')), - ('xorg-macros', '1.17'), -] - -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " - -sanity_check_paths = { - 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], - 'dirs': ['lib/pkgconfig'], -} - -moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb deleted file mode 100644 index 3c775612ac..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2016a.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.2' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """The GNU Readline library provides a set of functions for use by applications that - allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. - The Readline library includes additional functions to maintain a list of previously-entered command lines, - to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '6.0')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs': [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb deleted file mode 100644 index 4219e58cfd..0000000000 --- a/easybuild/easyconfigs/l/libtool/libtool-2.4.5-intel-2016a.eb +++ /dev/null @@ -1,17 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libtool' -version = '2.4.5' - -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': 'intel', 'version': '2016a'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -dependencies = [('M4', '1.4.17')] - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb deleted file mode 100644 index d4cc4b5eb1..0000000000 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.8.0-intel-2016a-Python-2.7.3.eb +++ /dev/null @@ -1,33 +0,0 @@ -name = 'libxml2' -version = '2.8.0' - -homepage = 'http://xmlsoft.org/' -description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable - outside of the Gnome platform).""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -source_urls = [ - 'http://xmlsoft.org/sources/', - 'http://xmlsoft.org/sources/old/' -] -sources = [SOURCELOWER_TAR_GZ] - -configopts = 'CC="$CC" CXX="$CXX" --with-pic' - -pythonver = '2.7.3' -pythonshortver = '.'.join(pythonver.split('.')[0:2]) -versionsuffix = '-%s-%s' % ('Python', pythonver) - -dependencies = [ - ('zlib', '1.2.8'), - ('Python', pythonver), -] - -sanity_check_paths = { - 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], - 'dirs': ['bin', 'include/libxml2/libxml'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb deleted file mode 100644 index e000b25261..0000000000 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-intel-2016a-Python-2.7.9.eb +++ /dev/null @@ -1,28 +0,0 @@ -name = 'libxml2' -version = '2.9.2' - -homepage = 'http://xmlsoft.org/' -description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable - outside of the Gnome platform).""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -source_urls = [ - 'http://xmlsoft.org/sources/', - 'http://xmlsoft.org/sources/old/' -] -sources = [SOURCELOWER_TAR_GZ] - -configopts = 'CC="$CC" CXX="$CXX" --with-pic' - -pythonver = '2.7.9' -pythonshortver = '.'.join(pythonver.split('.')[0:2]) -versionsuffix = '-%s-%s' % ('Python', pythonver) - -dependencies = [ - ('zlib', '1.2.8'), - ('Python', pythonver), -] - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb deleted file mode 100644 index 712aaf2f8b..0000000000 --- a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2016a-Python-2.7.9.eb +++ /dev/null @@ -1,75 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Mesa' -version = '10.4.5' - -homepage = 'http://www.mesa3d.org/' -description = """Mesa is an open-source implementation of the OpenGL specification - - a system for rendering interactive 3D graphics.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True} - -sources = ['%(name)sLib-%(version)s.tar.gz'] -source_urls = [ - 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', - 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', -] - -patches = ['Mesa-%(version)s_sse4_1.patch'] - -pythonver = '2.7.9' -pythonshortver = '.'.join(pythonver.split('.')[0:2]) -versionsuffix = '-%s-%s' % ('Python', pythonver) - -builddependencies = [ - ('flex', '2.5.39'), - ('Bison', '3.0.2'), - ('Automake', '1.15'), - ('makedepend', '1.0.5'), - ('kbproto', '1.0.6'), - ('xextproto', '7.3.0'), - ('xproto', '7.0.27'), - ('libtool', '2.4.5'), - ('pkg-config', '0.28'), - ('glproto', '1.4.17'), - ('M4', '1.4.17') -] - -dependencies = [ - ('Python', pythonver), - ('libxml2', '2.9.2', versionsuffix), - ('libdrm', '2.4.59'), - ('libX11', '1.6.3', versionsuffix), - ('libXext', '1.3.3'), - ('libXfixes', '5.0.1'), - ('libXdamage', '1.1.4'), - ('libXfont', '1.5.1'), - ('LLVM', '3.6.2', versionsuffix), - ('eudev', '3.0'), -] - -# Use the os provided libudev or the EB provided eudev -#osdependencies = ['libudev'] - -# GLU is not part anymore of Mesa package! -configopts = " --disable-osmesa --disable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" -configopts += " --disable-driglx-direct --with-gallium-drivers='' --disable-egl""" - -# package-config files for os dependencies are in an os specific place -#preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' - -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' - -sanity_check_paths = { - 'files': ['lib/libGL.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', - 'include/GL/glx.h', 'include/GL/osmesa.h', - 'include/GL/wglext.h', 'include/GL/gl.h', - 'include/GL/glxext.h', 'include/GL/glx_mangle.h', - 'include/GL/wmesa.h'], - 'dirs': [] -} - -maxparallel = 1 - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb deleted file mode 100644 index f16049293d..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-intel-2016a.eb +++ /dev/null @@ -1,36 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True, 'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['ncurses-%(version)s_configure_darwin.patch'] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb deleted file mode 100644 index dabda6ed92..0000000000 --- a/easybuild/easyconfigs/p/PCRE/PCRE-8.36-intel-2016a.eb +++ /dev/null @@ -1,18 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'PCRE' -version = '8.36' - -homepage = 'http://www.pcre.org/' -description = """The PCRE library is a set of functions that implement regular expression pattern matching using - the same syntax and semantics as Perl 5.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True, 'pic': True} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic --disable-cpp" - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb deleted file mode 100644 index 2d8bea6dd7..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.3-intel-2016a.eb +++ /dev/null @@ -1,89 +0,0 @@ -name = 'Python' -version = '2.7.3' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.6.1' -scipyversion = '0.10.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.2'), - ('ncurses', '6.0'), - # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] - -# order is important! -exts_list = [ - ('setuptools', '0.6c11', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '1.1', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.1.2', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('mpi4py', '1.3', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('lockfile', '0.9.1', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.17.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.1.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.1', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '0.9.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '1.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.8', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.12.0', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb deleted file mode 100644 index 37aa3417d0..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-intel-2016a.eb +++ /dev/null @@ -1,117 +0,0 @@ -name = 'Python' -version = '2.7.9' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.9.1' -scipyversion = '0.14.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '6.0'), - ('SQLite', '3.8.8.1'), - ('Tk', '8.6.3', '-no-X11'), - # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's - # nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] - -# order is important! -# package versions updated Jan 19th 2015 -exts_list = [ - ('setuptools', '11.3.1', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '6.0.6', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': ['numpy-1.8.0-mkl.patch'], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('blist', '1.3.6', { - 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], - }), - ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('pbr', '0.10.8', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], - }), - ('lockfile', '0.10.2', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.21.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.9.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.4.0', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '2.0.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.11', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.15.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), - ('pyparsing', '2.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], - }), - ('netifaces', '0.10.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], - }), - ('netaddr', '0.7.13', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], - }), - ('mock', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], - }), - ('pytz', '2014.10', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], - }), - ('pandas', '0.16.0', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], - }), -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb deleted file mode 100644 index 9a712cb3b4..0000000000 --- a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.28-intel-2016a.eb +++ /dev/null @@ -1,27 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'pkg-config' -version = '0.28' - -homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' -description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the - correct compiler options on the command line so an application can use - gcc -o test test.c `pkg-config --libs --cflags glib-2.0` - for instance, rather than hard-coding values on where to find glib (or other libraries).""" - -# don't use PAX, it might break. -tar_config_opts = True - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://pkgconfig.freedesktop.org/releases/'] - -configopts = " --with-internal-glib" - -sanity_check_paths = { - 'files': ['bin/pkg-config'], - 'dirs': [] -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb deleted file mode 100644 index a76d8e6f3c..0000000000 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.01-intel-2016a.eb +++ /dev/null @@ -1,39 +0,0 @@ -name = 'ROOT' -version = 'v5.34.01' - -homepage = 'http://root.cern.ch/drupal/' -description = """The ROOT system provides a set of OO frameworks with all the functionality - needed to handle and analyze large amounts of data in a very efficient way.""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -sources = ['%s_%s.source.tar.gz' % (name.lower(), version)] -source_urls = ['ftp://root.cern.ch/root/'] -patches = [ - 'configure_FftwFromMkl_28.patch', - 'ROOT-%(version)s_recent-ifort.patch', -] - -python = 'Python' -pyver = '2.7.3' - -dependencies = [ - ('GSL', '1.15'), - ('libxml2', '2.8.0', '-%s-%s' % (python, pyver)), - (python, pyver), -] - -# architecture -arch = 'linuxx8664icc' - -# disable features -configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' -# enable features -configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' -configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' -configopts += ' --with-fftw3-incdir=$EBROOTIMKL/mkl/include/fftw --with-fftw3-libdir=$EBROOTIMKL/mkl/lib/intel64' -configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' -configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' - -moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb similarity index 90% rename from easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb rename to easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb index face3c9641..01dbe6c33b 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2016a.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -1,5 +1,6 @@ name = 'ROOT' -version = 'v5.34.26' +version = 'v5.34.34' +versionsuffix = '-Python-2.7.11' homepage = 'http://root.cern.ch/drupal/' description = """The ROOT system provides a set of OO frameworks with all the functionality @@ -16,17 +17,14 @@ patches = [ 'ROOT-v5.34.26_libX.patch', ] -python = 'Python' -pyver = '2.7.9' - dependencies = [ ('GSL', '1.16'), - ('Mesa', '10.4.5', '-%s-%s' % (python, pyver)), - ('libxml2', '2.9.2', '-%s-%s' % (python, pyver)), - ('PCRE', '8.36'), + ('Mesa', '11.1.2'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), ('CFITSIO', '3.37'), ('freetype', '2.5.5'), - (python, pyver), + ('Python', '2.7.11'), ('zlib', '1.2.8'), ('libXft', '2.3.2', '-libX11-1.6.3'), ('libXpm', '3.5.11'), diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb deleted file mode 100644 index 4421de3277..0000000000 --- a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-intel-2016a.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA -# Authors:: Fotis Georgatos -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/ -## - -easyblock = 'ConfigureMake' - -name = 'SQLite' -version = '3.8.8.1' - -homepage = 'http://www.sqlite.org/' -description = 'SQLite: SQL Database Engine in a C Library' - -toolchain = {'name': 'intel', 'version': '2016a'} - -# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz -source_urls = ['http://www.sqlite.org/2015/'] -version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) -sources = ['sqlite-autoconf-%s.tar.gz' % version_str] - -dependencies = [ - ('libreadline', '6.3'), - ('Tcl', '8.6.3'), -] - -sanity_check_paths = { - 'files': ['bin/sqlite3'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb deleted file mode 100644 index e368b2b5ef..0000000000 --- a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-intel-2016a.eb +++ /dev/null @@ -1,25 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Tcl' -version = '8.6.3' - -homepage = 'http://www.tcl.tk/' -description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, -suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -dependencies = [ - ('zlib', '1.2.8'), -] - -configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' - -runtest = 'test' - -start_dir = 'unix' - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb deleted file mode 100644 index c673514d37..0000000000 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2016a-no-X11.eb +++ /dev/null @@ -1,24 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Tk' -version = '8.6.3' -versionsuffix = '-no-X11' - -homepage = 'http://www.tcl.tk/' -description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building - a graphical user interface (GUI) in many different programming languages.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ["http://prdownloads.sourceforge.net/tcl"] -sources = ['%(namelower)s%(version)s-src.tar.gz'] - -dependencies = [ - ('Tcl', version), -] - -configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' - -start_dir = 'unix' - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb deleted file mode 100644 index 7cbfd9e916..0000000000 --- a/easybuild/easyconfigs/x/xcb-proto/xcb-proto-1.11-intel-2016a-Python-2.7.9.eb +++ /dev/null @@ -1,27 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'xcb-proto' -version = '1.11' - -homepage = 'http://xcb.freedesktop.org/' -description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, -latency hiding, direct access to the protocol, improved threading support, and extensibility.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://xcb.freedesktop.org/dist/'] -sources = [SOURCELOWER_TAR_GZ] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) -dependencies = [(python, pyver)] - -pyshortver = '.'.join(pyver.split('.')[0:2]) - -sanity_check_paths = { - 'files': ['lib/pkgconfig/xcb-proto.pc'], - 'dirs': ['lib/python%s/site-packages/xcbgen' % pyshortver] -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb deleted file mode 100644 index f26da7ae49..0000000000 --- a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.17-intel-2016a.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'xorg-macros' -version = '1.17' - -homepage = 'http://cgit.freedesktop.org/xorg/util/macros' -description = """X.org macros utilities.""" -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! -sources = ['util-macros-%(version)s.tar.gz'] - -dependencies = [('Autotools', '20150119', '', ('GCC', '4.9.2'))] - -preconfigopts = './autogen.sh && ' - -sanity_check_paths = { - 'files': ['share/pkgconfig/xorg-macros.pc'], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb deleted file mode 100644 index 2f1b41c474..0000000000 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2016a.eb +++ /dev/null @@ -1,24 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'xproto' -version = '7.0.27' - -homepage = "http://www.freedesktop.org/wiki/Software/xlibs" -description = "X protocol and ancillary headers" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] - -sanity_check_paths = { - 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', - 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', - 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', - 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', - 'XWDFile.h', 'Xwinsock.h']], - 'dirs': [] -} - -moduleclass = 'devel' -- GitLab From 6cefbee52b4720471811de4119587e039c1b11b1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 11:58:29 +0100 Subject: [PATCH 305/732] remove unused easyconfigs --- .../g/glproto/glproto-1.4.17-intel-2016a.eb | 20 ----------- .../k/kbproto/kbproto-1.0.6-intel-2016a.eb | 19 ----------- .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 2 +- .../libxcb-1.11-intel-2016a-Python-2.7.9.eb | 34 ------------------- .../makedepend-1.0.5-intel-2016a.eb | 20 ----------- 5 files changed, 1 insertion(+), 94 deletions(-) delete mode 100644 easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb deleted file mode 100644 index c26a1ac08a..0000000000 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb +++ /dev/null @@ -1,20 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'glproto' -version = '1.4.17' - -homepage = "http://www.freedesktop.org/wiki/Software/xlibs" -description = "X protocol and ancillary headers" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] - -sanity_check_paths = { - 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb deleted file mode 100644 index 3a33382528..0000000000 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2016a.eb +++ /dev/null @@ -1,19 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'kbproto' -version = '1.0.6' - -homepage = "http://www.freedesktop.org/wiki/Software/xlibs" -description = """X.org KBProto protocol headers.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] - -sanity_check_paths = { - 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], - 'dirs': [], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb index 95e636b60d..5072a7bef7 100644 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb @@ -12,7 +12,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] builddependencies = [ - ('kbproto', '1.0.6'), + ('kbproto', '1.0.7'), ('renderproto', '0.11'), ] diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb deleted file mode 100644 index 4279354d1f..0000000000 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11-intel-2016a-Python-2.7.9.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxcb' -version = '1.11' - -homepage = 'http://xcb.freedesktop.org/' -description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, -latency hiding, direct access to the protocol, improved threading support, and extensibility.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://xcb.freedesktop.org/dist/'] -sources = [SOURCELOWER_TAR_GZ] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), - ('xcb-proto', '1.11', versionsuffix), - ('libXau', '1.0.8'), - ('libpthread-stubs', '0.3'), -] - -sanity_check_paths = { - 'files': ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", - "-randr", "-record", "-render", "-res", "-screensaver", - "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", - "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], - 'dirs': ['include/xcb', 'lib/pkgconfig'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb deleted file mode 100644 index 1158bd68be..0000000000 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb +++ /dev/null @@ -1,20 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'makedepend' -version = '1.0.5' - -homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" -description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] - -sanity_check_paths = { - 'files': ['bin/makedepend'], - 'dirs': [], -} - -moduleclass = 'devel' -- GitLab From 2d9daae084f24546174edd296d33a348427d0e5b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 12:07:34 +0100 Subject: [PATCH 306/732] bump fontconfig/freetype/gettext dep versions --- .../fontconfig-2.11.93-intel-2016a.eb | 22 ------------------- .../f/freetype/freetype-2.5.5-intel-2016a.eb | 21 ------------------ .../g/gettext/gettext-0.19.4-intel-2016a.eb | 18 --------------- .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 4 ++-- .../l/libXpm/libXpm-3.5.11-intel-2016a.eb | 2 +- .../l/libpng/libpng-1.6.16-intel-2016a.eb | 19 ---------------- ...ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb | 2 +- 7 files changed, 4 insertions(+), 84 deletions(-) delete mode 100644 easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb delete mode 100644 easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb deleted file mode 100644 index f906761e9b..0000000000 --- a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.93-intel-2016a.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = "fontconfig" -version = '2.11.93' - -homepage = 'http://www.freedesktop.org/software/fontconfig' -description = """Fontconfig is a library designed to provide system-wide font configuration, customization and -application access.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://www.freedesktop.org/software/fontconfig/release/'] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('expat', '2.1.0'), - ('freetype', '2.5.5'), -] - -configopts = '--disable-docs ' - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb b/easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb deleted file mode 100644 index 35f4da2da2..0000000000 --- a/easybuild/easyconfigs/f/freetype/freetype-2.5.5-intel-2016a.eb +++ /dev/null @@ -1,21 +0,0 @@ -name = 'freetype' -version = '2.5.5' - -homepage = 'http://freetype.org' -description = """FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and - portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display - servers, font conversion tools, text image generation tools, and many other products as well.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = [GNU_SAVANNAH_SOURCE] -sources = [SOURCE_TAR_GZ] - -dependencies = [('libpng', '1.6.16')] - -sanity_check_paths = { - 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], - 'dirs': ['include/freetype2'], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb deleted file mode 100644 index 069f899a71..0000000000 --- a/easybuild/easyconfigs/g/gettext/gettext-0.19.4-intel-2016a.eb +++ /dev/null @@ -1,18 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'gettext' -version = '0.19.4' - -homepage = 'http://www.gnu.org/software/gettext/' -description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may -build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools -and documentation""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCE_TAR_GZ] -source_urls = [GNU_SOURCE] - -configopts = '--without-emacs' - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb index 5072a7bef7..d4214779d1 100644 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb @@ -22,8 +22,8 @@ versionsuffix = '-libX11-%s' % libx11ver dependencies = [ ('libX11', libx11ver), ('libXrender', '0.9.9'), - ('freetype', '2.5.5'), - ('fontconfig', '2.11.93'), + ('freetype', '2.6.2'), + ('fontconfig', '2.11.94'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb index 39b2ff6653..80b08e7922 100644 --- a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb @@ -12,7 +12,7 @@ toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] -builddependencies = [('gettext', '0.19.4', '', ('GCC', '4.9.2'))] +builddependencies = [('gettext', '0.19.6')] sanity_check_paths = { 'files': ['lib/%s' % x for x in ['libXpm.a', 'libXpm.%s' % SHLIB_EXT]], diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb deleted file mode 100644 index d9a7ed9527..0000000000 --- a/easybuild/easyconfigs/l/libpng/libpng-1.6.16-intel-2016a.eb +++ /dev/null @@ -1,19 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libpng' -version = '1.6.16' - -homepage = 'http://www.libpng.org/pub/png/libpng.html' -description = "libpng is the official PNG reference library" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('zlib', '1.2.8')] - -configopts = "--with-pic" - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb index 01dbe6c33b..f600e1e7a8 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -23,7 +23,7 @@ dependencies = [ ('libxml2', '2.9.3'), ('PCRE', '8.38'), ('CFITSIO', '3.37'), - ('freetype', '2.5.5'), + ('freetype', '2.6.2'), ('Python', '2.7.11'), ('zlib', '1.2.8'), ('libXft', '2.3.2', '-libX11-1.6.3'), -- GitLab From 3c8e1178fa4b5b96293742cef97702bb71b63fac Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 13:11:03 +0200 Subject: [PATCH 307/732] add easyconfig libXft-2.3.2-intel-2016a-libX11-1.6.3.eb, add easyconfig libXpm-3.5.11-intel-2016a.eb, add easyconfig libXrender-0.9.9-intel-2016a.eb, add easyconfig renderproto-0.11-intel-2016a.eb --- .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 34 +++++++++++++++++++ .../l/libXpm/libXpm-3.5.11-intel-2016a.eb | 22 ++++++++++++ .../libXrender-0.9.9-intel-2016a.eb | 28 +++++++++++++++ .../renderproto-0.11-intel-2016a.eb | 20 +++++++++++ 4 files changed, 104 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..95e636b60d --- /dev/null +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.6'), + ('renderproto', '0.11'), +] + +libx11ver = '1.6.3' +versionsuffix = '-libX11-%s' % libx11ver + +dependencies = [ + ('libX11', libx11ver), + ('libXrender', '0.9.9'), + ('freetype', '2.5.5'), + ('fontconfig', '2.11.93'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb new file mode 100644 index 0000000000..39b2ff6653 --- /dev/null +++ b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libXpm' +version = '3.5.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXp provides the X print library.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [('gettext', '0.19.4', '', ('GCC', '4.9.2'))] + +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['libXpm.a', 'libXpm.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb new file mode 100644 index 0000000000..fefc99f4eb --- /dev/null +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb new file mode 100644 index 0000000000..37b516e535 --- /dev/null +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'renderproto' +version = '0.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrender protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 2bff6a516cf9fc7130c0bdc2b37bf9647d67d494 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 13:16:16 +0200 Subject: [PATCH 308/732] fix dep versions --- .../l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 6 +++--- easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb index 95e636b60d..d4214779d1 100644 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb @@ -12,7 +12,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] builddependencies = [ - ('kbproto', '1.0.6'), + ('kbproto', '1.0.7'), ('renderproto', '0.11'), ] @@ -22,8 +22,8 @@ versionsuffix = '-libX11-%s' % libx11ver dependencies = [ ('libX11', libx11ver), ('libXrender', '0.9.9'), - ('freetype', '2.5.5'), - ('fontconfig', '2.11.93'), + ('freetype', '2.6.2'), + ('fontconfig', '2.11.94'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb index 39b2ff6653..80b08e7922 100644 --- a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb @@ -12,7 +12,7 @@ toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = [XORG_LIB_SOURCE] -builddependencies = [('gettext', '0.19.4', '', ('GCC', '4.9.2'))] +builddependencies = [('gettext', '0.19.6')] sanity_check_paths = { 'files': ['lib/%s' % x for x in ['libXpm.a', 'libXpm.%s' % SHLIB_EXT]], -- GitLab From 6a6a05bbb3e3c49da360c9e3ddde31093092e6cf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 12:43:25 +0100 Subject: [PATCH 309/732] drop versionsuffix for libXft as ROOT dep --- .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 34 ------------------- ...ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb | 2 +- 2 files changed, 1 insertion(+), 35 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb deleted file mode 100644 index d4214779d1..0000000000 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libXft' -version = '2.3.2' - -homepage = "http://www.freedesktop.org/wiki/Software/xlibs" -description = """X11 client-side library""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCE_TAR_GZ] -source_urls = [XORG_LIB_SOURCE] - -builddependencies = [ - ('kbproto', '1.0.7'), - ('renderproto', '0.11'), -] - -libx11ver = '1.6.3' -versionsuffix = '-libX11-%s' % libx11ver - -dependencies = [ - ('libX11', libx11ver), - ('libXrender', '0.9.9'), - ('freetype', '2.6.2'), - ('fontconfig', '2.11.94'), -] - -sanity_check_paths = { - 'files': ['lib/libXft.a'], - 'dirs': [], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb index f600e1e7a8..d82a30d946 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -26,7 +26,7 @@ dependencies = [ ('freetype', '2.6.2'), ('Python', '2.7.11'), ('zlib', '1.2.8'), - ('libXft', '2.3.2', '-libX11-1.6.3'), + ('libXft', '2.3.2'), ('libXpm', '3.5.11'), ('libXext', '1.3.3'), ] -- GitLab From 7e83e512599ebcacbce927c0f32a9994c6b5c50d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 12:50:37 +0100 Subject: [PATCH 310/732] drop libXft easyconfig with versionsuffix --- .../libXft-2.3.2-intel-2016a-libX11-1.6.3.eb | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb deleted file mode 100644 index d4214779d1..0000000000 --- a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-intel-2016a-libX11-1.6.3.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libXft' -version = '2.3.2' - -homepage = "http://www.freedesktop.org/wiki/Software/xlibs" -description = """X11 client-side library""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -sources = [SOURCE_TAR_GZ] -source_urls = [XORG_LIB_SOURCE] - -builddependencies = [ - ('kbproto', '1.0.7'), - ('renderproto', '0.11'), -] - -libx11ver = '1.6.3' -versionsuffix = '-libX11-%s' % libx11ver - -dependencies = [ - ('libX11', libx11ver), - ('libXrender', '0.9.9'), - ('freetype', '2.6.2'), - ('fontconfig', '2.11.94'), -] - -sanity_check_paths = { - 'files': ['lib/libXft.a'], - 'dirs': [], -} - -moduleclass = 'vis' -- GitLab From 3aa50aba64564f13fe8b44feaa7997cfaf646e17 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 13:49:57 +0100 Subject: [PATCH 311/732] bump to latest CFITSIO version --- ...{CFITSIO-3.37-intel-2016a.eb => CFITSIO-3.38-intel-2016a.eb} | 2 +- .../r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename easybuild/easyconfigs/c/CFITSIO/{CFITSIO-3.37-intel-2016a.eb => CFITSIO-3.38-intel-2016a.eb} (97%) diff --git a/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.38-intel-2016a.eb similarity index 97% rename from easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb rename to easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.38-intel-2016a.eb index 7af022d137..6291c97147 100644 --- a/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.37-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-3.38-intel-2016a.eb @@ -1,7 +1,7 @@ easyblock = 'ConfigureMake' name = 'CFITSIO' -version = '3.37' +version = '3.38' homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb index d82a30d946..fa81ad980b 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -22,7 +22,7 @@ dependencies = [ ('Mesa', '11.1.2'), ('libxml2', '2.9.3'), ('PCRE', '8.38'), - ('CFITSIO', '3.37'), + ('CFITSIO', '3.38'), ('freetype', '2.6.2'), ('Python', '2.7.11'), ('zlib', '1.2.8'), -- GitLab From cadbf9619dacee2b0df04dc31a4712631e483c00 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Thu, 3 Mar 2016 13:57:19 +0100 Subject: [PATCH 312/732] Use directly '--with-mpe' configopt for MVAPICH2 1.7 instead of to-be-removed 'withmpe' from MVAPICH2 EB --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 2 +- easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index cee59253ac..8208f0a521 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -15,7 +15,7 @@ source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] rdma_type = "gen2" # 'gen2' or 'udapl' # enable building of MPE routines -withmpe = True +configopts = '--with-mpe ' # enable hwloc support withhwloc = True diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb index 22a7f9f02e..429ab72ae0 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb @@ -16,7 +16,7 @@ builddependencies = [('Bison', '2.5')] rdma_type = "gen2" # 'gen2' or 'udapl' # enable building of MPE routines -withmpe = True +configopts = '--with-mpe ' # parallel build tends to fail parallel = 1 -- GitLab From 6db12d99703e23e76336abbe58be66dee5b71902 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Thu, 3 Mar 2016 13:57:41 +0100 Subject: [PATCH 313/732] Use directly '--with-hwloc' configopt for MVAPICH2 1.7 instead of to-be-removed 'withhwloc' from MVAPICH2 EB --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index 8208f0a521..7f3c50d87a 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -18,7 +18,7 @@ rdma_type = "gen2" # 'gen2' or 'udapl' configopts = '--with-mpe ' # enable hwloc support -withhwloc = True +configopts += '--with-hwloc ' dependencies = [('hwloc', '1.5.1')] # enable checkpointing support -- GitLab From 0f56d11a401e34e1a91890dee825e1da94a1c984 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Thu, 3 Mar 2016 14:08:23 +0100 Subject: [PATCH 314/732] Remove option rdma_type = "gen2" because it is actually the default This makes this EasyConfig files more uniform with the recent ones --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 2 -- easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb | 2 -- 2 files changed, 4 deletions(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index 7f3c50d87a..137b9059fe 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -12,8 +12,6 @@ sources = [SOURCELOWER_TGZ] # note: this URL will only work for the most recent version (previous versions no longer available?) source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] -rdma_type = "gen2" # 'gen2' or 'udapl' - # enable building of MPE routines configopts = '--with-mpe ' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb index 429ab72ae0..4c2eead91f 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb @@ -13,8 +13,6 @@ source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] builddependencies = [('Bison', '2.5')] -rdma_type = "gen2" # 'gen2' or 'udapl' - # enable building of MPE routines configopts = '--with-mpe ' -- GitLab From d2e3b5810c31a9d9e155587647dc3459588f9df4 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Thu, 3 Mar 2016 14:11:07 +0100 Subject: [PATCH 315/732] Add checksum if known --- easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb | 3 +++ .../easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb | 3 +++ .../easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb | 3 +++ easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb | 3 +++ .../m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb | 3 +++ 5 files changed, 15 insertions(+) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb index 9be4dedbf3..dbf130a107 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb @@ -9,6 +9,9 @@ toolchain = {'name': 'GCC', 'version': '4.7.2'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['ef4ae05e3b5ad485326505db7381246c'] + builddependencies = [('Bison', '2.7')] # parallel build doesn't work diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb index 6d98d3a032..f8ed601fa4 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb @@ -9,6 +9,9 @@ toolchain = {'name': 'ClangGCC', 'version': '1.1.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['5dc58ed08fd3142c260b70fe297e127c'] + dependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb index e1fdfb364f..ec3097f101 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb @@ -9,6 +9,9 @@ toolchain = {'name': 'ClangGCC', 'version': '1.2.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['5dc58ed08fd3142c260b70fe297e127c'] + dependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb index 602d1c4c80..fc82223d21 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb @@ -9,6 +9,9 @@ toolchain = {'name': 'GCC', 'version': '4.7.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['5dc58ed08fd3142c260b70fe297e127c'] + builddependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb index f87ce5fafe..2ff528acce 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb @@ -10,6 +10,9 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['5dc58ed08fd3142c260b70fe297e127c'] + builddependencies = [('Bison', '2.7')] # the hydra launcher start's before LD_LIBRARY_PATH is forwarded, so we provide this hint on where to find some libs -- GitLab From b925fbf66d62634be351293cb92ed5b4283979af Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 3 Mar 2016 14:50:49 +0100 Subject: [PATCH 316/732] {lang}[intel-2016a] R 3.2.3 with libX11 1.6.3 (WIP) --- .../cairo-1.14.6-intel-2016a-libX11-1.6.3.eb | 56 +++ .../GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb | 30 ++ .../GLib-2.47.5-intel-2016a-libX11-1.6.3.eb | 39 ++ ...-intel-2016a-Python-2.7.11-libX11-1.6.3.eb | 29 ++ .../r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb | 453 ++++++++++++++++++ 5 files changed, 607 insertions(+) create mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..6db4212fb3 --- /dev/null +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,56 @@ +easyblock = 'ConfigureMake' + +name = 'cairo' +version = '1.14.6' + +libx11 = 'libX11' +libxver = '1.6.3' +versionsuffix = '-%s-%s' % (libx11, libxver) + +homepage = 'http://cairographics.org' +description = """Cairo is a 2D graphics library with support for multiple output devices. + Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, + PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_XZ] + +glibver = '2.47.5' + +builddependencies = [ + ('renderproto', '0.11'), +] + +dependencies = [ + (libx11, libxver), + ('libXrender', '0.9.9'), + ('libdrm', '2.4.67'), + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libpng', '1.6.21'), + ('freetype', '2.6.2'), + ('pixman', '0.34.0'), + ('fontconfig', '2.11.94'), + ('expat', '2.1.0'), + ('GLib', glibver, versionsuffix), +] + +# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC +configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes " + +# workaround for "hidden symbol .* in .* is referenced by DSO" and "ld: final link failed: Bad value" +buildopts = 'LD="$CC" LDFLAGS="$LDFLAGS -shared-intel"' + +sanity_check_paths = { + 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', + 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', + 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + + ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', + '-script', '-script-interpreter', '-svg', '-version', '-xcb', + '-xlib', '-xlib-xrender']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..78e94ccbb6 --- /dev/null +++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = '2.0.2' +versionsuffix = '-libX11-1.6.3' + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://download.osgeo.org/gdal/%(version)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('netCDF', '4.3.3.1'), + ('expat', '2.1.0'), + ('libxml2', '2.9.3', '-Python-2.7.11%s' % versionsuffix), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['lib/libgdal.%s' % SHLIB_EXT, 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..a93ed50f9f --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.47.5' + +versionsuffix = '-libX11-1.6.3' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +pyver = '2.7.11' +pyshortver = '.'.join(pyver.split('.')[:2]) +pysuffix = '-Python-%s%s' % (pyver, versionsuffix) + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.6'), + ('libxml2', '2.9.3', pysuffix), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', pyver)] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb new file mode 100644 index 0000000000..230d903622 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb @@ -0,0 +1,29 @@ +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pyver = '2.7.11' +pyshortver = '.'.join(pyver.split('.')[:2]) +libx11suffix = '-libX11-1.6.3' +versionsuffix = '-Python-%s%s' % (pyver, libx11suffix) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pyver, libx11suffix), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..e0608b0939 --- /dev/null +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,453 @@ +name = 'R' +version = '3.2.3' + +libx11 = 'libX11' +libxver = '1.6.3' +versionsuffix = '-%s-%s' % (libx11, libxver) + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=yes --enable-R-shlib" +#Actually use Tcl/Tk +configopts += ' --with-tcl-config=$EBROOTTCL/lib/tclConfig.sh --with-tk-config=$EBROOTTK/lib/tkConfig.sh ' +# Enable graphics capabilities for plotting. +configopts += " --with-cairo --with-libpng --with-jpeglib --with-libtiff" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + (libx11, libxver), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('LibTIFF', '4.0.6'), # for plotting in R + ('cairo', '1.14.6', versionsuffix), # for plotting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', versionsuffix), # for tcltk + ('cURL', '7.47.0'), # for RCurl + ('libxml2', '2.9.3', '-Python-2.7.11%s' % versionsuffix), # for XML + ('GDAL', '2.0.2', versionsuffix), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8_icpc-wd308.patch'])])), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', dict(ext_options.items() + [('patches', ['forecast-6.1_icpc-wd308.patch'])])), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', dict(ext_options.items() + [('patches', [('glasso-1.8-ifort-no-fixed.patch', 1)])])), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), +] + +moduleclass = 'lang' -- GitLab From 2fdcbaedb5a5cfb03e132fc95142378761a1a91f Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 3 Mar 2016 14:54:43 +0100 Subject: [PATCH 317/732] vesrionsuffix and libX11 fixes --- .../p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb index 00997213ad..87032c0ef5 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb @@ -1,9 +1,7 @@ name = 'Python' version = '2.7.11' -libx11 = 'libX11' -libxver = '1.6.3' -versionsuffix = '-%s-%s' % (libx11, libxver) +versionsuffix = '-libX11-1.6.3' homepage = 'http://python.org/' description = """Python is a programming language that lets you work more quickly and integrate your systems @@ -25,7 +23,6 @@ dependencies = [ ('libreadline', '6.3'), ('ncurses', '6.0'), ('SQLite', '3.9.2'), - (libx11, libxver), ('Tk', '8.6.4', versionsuffix), ('GMP', '6.1.0'), # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's -- GitLab From c0b90b90ff6dc24a40e0d5f148dced00cd393875 Mon Sep 17 00:00:00 2001 From: Damian Alvarez Date: Thu, 3 Mar 2016 14:58:16 +0100 Subject: [PATCH 318/732] Enhanced easyconfigs that need the new psmpi.py easyblock --- .../p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb | 4 +-- .../psmpi-5.1.0-1-iccifort-2015.1.133.eb | 4 +-- .../p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb | 30 +++++++++++++++++++ .../p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb | 4 +-- .../psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb | 30 +++++++++++++++++++ .../psmpi-5.1.5-1-iccifort-2015.1.133.eb | 4 +-- 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb create mode 100644 easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb index 34f4d57dd7..3b8d70635f 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb @@ -17,6 +17,8 @@ source_urls = [ 'https://trac.mpich.org/projects/openpa/raw-attachment/wiki/Downloads/', ] +mpich_opts = '--enable-static' + dependencies = [ ('pscom', '5.0.44-1', '', True), ] @@ -25,6 +27,4 @@ hiddendependencies = [ ('pscom', '5.0.44-1', '', True), ] -configopts = '--with-confset=gcc PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb index ac08d5c585..a5c1e058f0 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb @@ -17,6 +17,8 @@ source_urls = [ 'https://trac.mpich.org/projects/openpa/attachment/wiki/Downloads', ] +mpich_opts = '--enable-static' + dependencies = [ ('pscom', '5.0.48-1', '', True), ] @@ -25,6 +27,4 @@ hiddendependencies = [ ('pscom', '5.0.48-1', '', True), ] -configopts = '--with-confset=intel PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb new file mode 100644 index 0000000000..c783f37b64 --- /dev/null +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb @@ -0,0 +1,30 @@ +name = 'psmpi' +version = '5.1.5-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'version': '4.9.3', 'name': 'GCC'} + +toolchainopts = {'defaultopt': True} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/ParaStation/psmpi2/archive/'] + +mpich_opts = '--enable-static' + +threaded = True + +dependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +hiddendependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb index b7c5d500a2..aac098925c 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb @@ -14,6 +14,8 @@ toolchainopts = {'defaultopt': True} sources = ['%(version)s.tar.gz'] source_urls = ['https://github.com/ParaStation/psmpi2/archive/'] +mpich_opts = '--enable-static' + dependencies = [ ('pscom', '5.0.48-1', '', True), ] @@ -22,6 +24,4 @@ hiddendependencies = [ ('pscom', '5.0.48-1', '', True), ] -configopts = ' --with-confset=gcc PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb new file mode 100644 index 0000000000..c33effaedb --- /dev/null +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb @@ -0,0 +1,30 @@ +name = 'psmpi' +version = '5.1.5-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'version': '2015.1.133', 'name': 'iccifort'} + +toolchainopts = {'defaultopt': True} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/ParaStation/psmpi2/archive/'] + +mpich_opts = '--enable-static' + +threaded = True + +dependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +hiddendependencies = [ + ('pscom', '5.0.48-1', '', True), +] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb index 92f6033fa8..22468a4f7f 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb @@ -14,6 +14,8 @@ toolchainopts = {'defaultopt': True} sources = ['%(version)s.tar.gz'] source_urls = ['https://github.com/ParaStation/psmpi2/archive/'] +mpich_opts = '--enable-static' + dependencies = [ ('pscom', '5.0.48-1', '', True), ] @@ -22,6 +24,4 @@ hiddendependencies = [ ('pscom', '5.0.48-1', '', True), ] -configopts = ' --with-confset=intel PSCOM_LDFLAGS=-L$EBROOTPSCOM/lib PSCOM_CPPFLAGS=-I$EBROOTPSCOM/include --with-mpichconf="--enable-static" ' - moduleclass = 'mpi' -- GitLab From 2b3091bb02481b40409f90235487ac60ad611bf9 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 14:58:53 +0100 Subject: [PATCH 319/732] use recommended Geant4/CLHEP versions --- .../c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb | 23 +++++++++++++++++ .../GATE-7.1-intel-2016a-Python-2.7.11.eb | 8 +++--- .../g/Geant4/Geant4-10.02.p01-intel-2016a.eb | 25 +++++++++++++++++++ .../g/Geant4/Geant4-9.6.p04-intel-2016a.eb | 3 ++- 4 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/Geant4/Geant4-10.02.p01-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb new file mode 100644 index 0000000000..0e16a66612 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.3.1-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'CMakeMake' + +name = 'CLHEP' +version = '2.1.3.1' + +homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' +description = """The CLHEP project is intended to be a set of HEP-specific foundation and + utility classes such as random generators, physics vectors, geometry and linear algebra. + CLHEP is structured in a set of packages independent of any external package.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TGZ] +source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] + +builddependencies = [('CMake', '3.4.3')] + +separate_build_dir = True + +configopts = '-DCMAKE_BUILD_TYPE=Release' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb index 6e9809e000..42cc40aaaf 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb @@ -9,16 +9,16 @@ description = """GATE is an advanced opensource software developed by the intern toolchain = {'name': 'intel', 'version': '2016a'} -sources = [('%(namelower)s_v%(version)s.tar_.gz', "tar xfvz %s")] +sources = [('%(namelower)s_v%(version)s.tar.gz', "tar xfvz %s")] source_urls = ['http://www.opengatecollaboration.org/sites/opengatecollaboration.org/files/'] patches = [ - 'GATE-%(version)s_Makefile-prefix.patch', - 'GATE-%(version)s_unistdh.patch', + 'GATE-7.0_Makefile-prefix.patch', + 'GATE-7.0_unistdh.patch', ] dependencies = [ - ('Geant4', '9.6.p04'), + ('Geant4', '10.02.p01'), ('CLHEP', '2.3.1.1'), ('ROOT', 'v5.34.34', versionsuffix), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-10.02.p01-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-10.02.p01-intel-2016a.eb new file mode 100644 index 0000000000..300557f7e0 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-10.02.p01-intel-2016a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '10.02.p01' + +homepage = 'http://geant4.cern.ch/' +description = """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.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.10.2.html#2. + ('CLHEP', '2.3.1.1'), +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb index 356c780edf..554b9825d7 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2016a.eb @@ -13,7 +13,8 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), - ('CLHEP', '2.3.1.1'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.6.html#2. + ('CLHEP', '2.1.3.1'), ] builddependencies = [ ('CMake', '3.4.3'), -- GitLab From 486a02d0e4540eeb24860025ee710312218582db Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 15:00:36 +0100 Subject: [PATCH 320/732] add comment on recommended CLHEP version in Geant4 easyconfigs --- easybuild/easyconfigs/g/Geant4/Geant4-10.01.p01-intel-2015a.eb | 1 + easybuild/easyconfigs/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb | 1 + .../easyconfigs/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb | 1 + easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb | 1 + easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb | 1 + easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb | 1 + easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2015a.eb | 1 + easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2015a.eb | 1 + 8 files changed, 8 insertions(+) diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p01-intel-2015a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p01-intel-2015a.eb index 412c19225c..468e4e32f4 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p01-intel-2015a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p01-intel-2015a.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.10.1.html#2. ('CLHEP', '2.2.0.5'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb index dd53f85088..1e0d6874fa 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.4.html#2. ('CLHEP', '2.1.1.0'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb index fbf3b03c0b..b7af10a848 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. ('CLHEP', '2.1.1.0'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb index 7db2e910b2..59a0ae794e 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. ('CLHEP', '2.1.1.0'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb index 8eb3941ded..3f34b45154 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. ('CLHEP', '2.1.1.0'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb index cbe91d153a..ec55937829 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. ('CLHEP', '2.1.1.0'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2015a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2015a.eb index bfe0be4aaf..5a4e622db8 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2015a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p01-intel-2015a.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. ('CLHEP', '2.1.1.0'), ] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2015a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2015a.eb index 791ce6652f..e8b5782036 100644 --- a/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2015a.eb +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.6.p04-intel-2015a.eb @@ -13,6 +13,7 @@ sources = ['%(namelower)s.%(version)s.tar.gz'] dependencies = [ ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.6.html#2. ('CLHEP', '2.1.3.1'), ] -- GitLab From 8e40fa6502203e3856da598dd906e031f06cb0db Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 15:06:45 +0100 Subject: [PATCH 321/732] stick to recommended Geant4/CLHEP versions for GATE 6.2 --- .../c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb | 20 +++++++++++++++ .../GATE-6.2-intel-2016a-Python-2.7.11.eb | 4 +-- .../g/Geant4/Geant4-9.5.p02-intel-2016a.eb | 25 +++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/Geant4/Geant4-9.5.p02-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb new file mode 100644 index 0000000000..ceed3e9cd3 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.1.1.0-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'CLHEP' +version = '2.1.1.0' + +homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' +description = """The CLHEP project is intended to be a set of HEP-specific foundation and + utility classes such as random generators, physics vectors, geometry and linear algebra. + CLHEP is structured in a set of packages independent of any external package.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TGZ] +source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] + +# CLHEP compiles with icc instead of icpc +configopts = 'CXX="$CC" CXXFLAGS="$CXXFLAGS -gcc"' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb index c48ea46984..c8044cb0a3 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb @@ -18,8 +18,8 @@ patches = [ ] dependencies = [ - ('Geant4', '9.6.p04'), - ('CLHEP', '2.3.1.1'), + ('Geant4', '9.5.p02'), + ('CLHEP', '2.1.1.0'), ('ROOT', 'v5.34.34', versionsuffix), ] builddependencies = [('CMake', '3.4.3')] diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p02-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p02-intel-2016a.eb new file mode 100644 index 0000000000..b790b2a3f8 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-9.5.p02-intel-2016a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p02' + +homepage = 'http://geant4.cern.ch/' +description = """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.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' -- GitLab From 1d8ec9a842b80101489f7b669885afbd540d5e39 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 3 Mar 2016 20:55:57 +0100 Subject: [PATCH 322/732] fix Geant4/CHLEP dep versions for GATE 7.1, add easyconfig for GATE 7.2 --- .../c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb | 21 +++++++++++++ .../GATE-7.1-intel-2016a-Python-2.7.11.eb | 7 +++-- .../g/GATE/GATE-7.1_std-isnan.patch | 11 +++++++ .../GATE-7.2-intel-2016a-Python-2.7.11.eb | 31 +++++++++++++++++++ .../g/Geant4/Geant4-10.01.p03-intel-2016a.eb | 25 +++++++++++++++ 5 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch create mode 100644 easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/g/Geant4/Geant4-10.01.p03-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb new file mode 100644 index 0000000000..c7863dcbd1 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb @@ -0,0 +1,21 @@ +easyblock = 'CMakeMake' + +name = 'CLHEP' +version = '2.2.0.8' + +homepage = 'http://proj-clhep.web.cern.ch/proj-clhep/' +description = """The CLHEP project is intended to be a set of HEP-specific foundation and + utility classes such as random generators, physics vectors, geometry and linear algebra. + CLHEP is structured in a set of packages independent of any external package.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TGZ] +source_urls = ['http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/'] + +builddependencies = [('CMake', '3.4.3')] + +separate_build_dir = True + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb index 42cc40aaaf..a0b0cfc7ac 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb @@ -15,15 +15,18 @@ source_urls = ['http://www.opengatecollaboration.org/sites/opengatecollaboration patches = [ 'GATE-7.0_Makefile-prefix.patch', 'GATE-7.0_unistdh.patch', + 'GATE-7.1_std-isnan.patch', ] dependencies = [ - ('Geant4', '10.02.p01'), - ('CLHEP', '2.3.1.1'), + ('Geant4', '10.01.p03'), + ('CLHEP', '2.2.0.8'), ('ROOT', 'v5.34.34', versionsuffix), ] builddependencies = [ ('CMake', '3.4.3'), ] +buildopts = 'LD="$CXX"' + moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch b/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch new file mode 100644 index 0000000000..58dbb69bb2 --- /dev/null +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch @@ -0,0 +1,11 @@ +--- gate_v7.1/source/digits_hits/src/GateToRoot.cc.orig 2016-03-03 19:41:50.569854028 +0100 ++++ gate_v7.1/source/digits_hits/src/GateToRoot.cc 2016-03-03 19:43:09.370590639 +0100 +@@ -765,7 +765,7 @@ + if (dzg1 > dzg2) {dev = acos(-dev)*180/Pi;} + else {dev = acos(dev)*180/Pi - 180;} + +- if (isnan(dev) ) dev = 0.; ++ if (std::isnan(dev) ) dev = 0.; + + // G4cout<< " dev = " << dev << G4endl; + diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..f372f2e488 --- /dev/null +++ b/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,31 @@ +name = 'GATE' +version = '7.2' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://www.opengatecollaboration.org/' +description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and + dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [('%(namelower)s_v%(version)s.tar.gz', "tar xfvz %s")] +source_urls = ['http://www.opengatecollaboration.org/sites/opengatecollaboration.org/files/'] + +patches = [ + 'GATE-7.0_Makefile-prefix.patch', + 'GATE-7.0_unistdh.patch', +] + +dependencies = [ + ('Geant4', '10.02.p01'), + ('CLHEP', '2.3.1.1'), + ('ROOT', 'v5.34.34', versionsuffix), +] +builddependencies = [ + ('CMake', '3.4.3'), +] + +buildopts = 'LD="$CXX"' + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p03-intel-2016a.eb b/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p03-intel-2016a.eb new file mode 100644 index 0000000000..f30dcb1a76 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-10.01.p03-intel-2016a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '10.01.p03' + +homepage = 'http://geant4.cern.ch/' +description = """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.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.10.1.html#2. + ('CLHEP', '2.2.0.8'), +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' -- GitLab From a3d04d9a93681559f65a7f2cb9dbc51e9cf481d6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 09:31:09 +0100 Subject: [PATCH 323/732] add comment in patch file for GATE --- easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch b/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch index 58dbb69bb2..b8d39150f4 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1_std-isnan.patch @@ -1,3 +1,5 @@ +fix for compiler error ""error: more than one instance of overloaded function isnan matches the argument list" +author: Kenneth Hoste (HPC-UGent) --- gate_v7.1/source/digits_hits/src/GateToRoot.cc.orig 2016-03-03 19:41:50.569854028 +0100 +++ gate_v7.1/source/digits_hits/src/GateToRoot.cc 2016-03-03 19:43:09.370590639 +0100 @@ -765,7 +765,7 @@ -- GitLab From 2dd40478d824d178be19b517743b30ac62118a57 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 09:31:35 +0100 Subject: [PATCH 324/732] add -DCMAKE_BUILD_TYPE=Release config option in all recent CLHEP easyconfigs --- easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.5-intel-2015a.eb | 2 ++ easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb | 2 ++ easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb | 2 ++ 3 files changed, 6 insertions(+) diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.5-intel-2015a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.5-intel-2015a.eb index 9408c50361..cf96d8d47a 100644 --- a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.5-intel-2015a.eb +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.5-intel-2015a.eb @@ -18,4 +18,6 @@ builddependencies = [('CMake', '3.2.2')] separate_build_dir = True +configopts = '-DCMAKE_BUILD_TYPE=Release' + moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb index c7863dcbd1..fb7adb464b 100644 --- a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.2.0.8-intel-2016a.eb @@ -18,4 +18,6 @@ builddependencies = [('CMake', '3.4.3')] separate_build_dir = True +configopts = '-DCMAKE_BUILD_TYPE=Release' + moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb index cf3607f24f..0c5534a737 100644 --- a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.3.1.1-intel-2016a.eb @@ -18,4 +18,6 @@ builddependencies = [('CMake', '3.4.3')] separate_build_dir = True +configopts = '-DCMAKE_BUILD_TYPE=Release' + moduleclass = 'numlib' -- GitLab From cf470891e60fc625b3d01976d11699a94769bc1f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 09:47:57 +0100 Subject: [PATCH 325/732] fix long line in GATE descriptions --- easybuild/easyconfigs/g/GATE/GATE-6.1-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/g/GATE/GATE-6.2-goalf-1.1.0-no-OFED.eb | 2 +- easybuild/easyconfigs/g/GATE/GATE-6.2-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/g/GATE/GATE-6.2-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2015a.eb | 2 +- .../easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb | 2 +- easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2015a.eb | 2 +- .../easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb | 2 +- .../easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.1-ictce-4.0.6.eb b/easybuild/easyconfigs/g/GATE/GATE-6.1-ictce-4.0.6.eb index f6983e6ed6..24800cedc7 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.1-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.1-ictce-4.0.6.eb @@ -4,7 +4,7 @@ version = '6.1' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'ictce', 'version': '4.0.6'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-goalf-1.1.0-no-OFED.eb index 8cd12c59aa..b344b3f548 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-goalf-1.1.0-no-OFED.eb @@ -4,7 +4,7 @@ version = '6.2' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-goolf-1.4.10.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-goolf-1.4.10.eb index 3bac12bc2c..89a8046f2f 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-goolf-1.4.10.eb @@ -4,7 +4,7 @@ version = '6.2' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'goolf', 'version': '1.4.10'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-ictce-4.0.6.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-ictce-4.0.6.eb index cf9f93f198..2c2c954a1c 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-ictce-4.0.6.eb @@ -4,7 +4,7 @@ version = '6.2' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'ictce', 'version': '4.0.6'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2015a.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2015a.eb index b6ef9ed9c1..1a6ef28db9 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2015a.eb @@ -4,7 +4,7 @@ version = '6.2' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'intel', 'version': '2015a'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb index c8044cb0a3..d237afef62 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-6.2-intel-2016a-Python-2.7.11.eb @@ -5,7 +5,7 @@ versionsuffix = '-Python-2.7.11' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'intel', 'version': '2016a'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2015a.eb b/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2015a.eb index e93ce79175..85541021f4 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.0-intel-2015a.eb @@ -4,7 +4,7 @@ version = '7.0' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'intel', 'version': '2015a'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb index a0b0cfc7ac..b1e10c6404 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb @@ -5,7 +5,7 @@ versionsuffix = '-Python-2.7.11' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'intel', 'version': '2016a'} diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb index f372f2e488..80a5207676 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb @@ -5,7 +5,7 @@ versionsuffix = '-Python-2.7.11' homepage = 'http://www.opengatecollaboration.org/' description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography - (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" toolchain = {'name': 'intel', 'version': '2016a'} -- GitLab From 8dd88a2c7e9fd4d59fc3d4f405561b1725357bbd Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 09:53:30 +0100 Subject: [PATCH 326/732] fix long line in GSL descr --- easybuild/easyconfigs/g/GSL/GSL-1.15-goalf-1.1.0-no-OFED.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.4.10.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.5.14.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-4.0.6.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-5.3.0.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2014b.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2015a.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015a.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015b.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.4.10.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.5.14.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-1.3.12.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-2.6.10.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.3.0.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.4.0.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.5.0.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-6.2.5.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2014b.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015a.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015b.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-2.1-foss-2015b.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2015b.eb | 3 ++- easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2016a.eb | 4 ++-- 24 files changed, 48 insertions(+), 25 deletions(-) diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-goalf-1.1.0-no-OFED.eb index 85ec8681aa..f4197820e5 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-goalf-1.1.0-no-OFED.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.4.10.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.4.10.eb index 2bc7e232eb..d9295adc89 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.4.10.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" +The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.5.14.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.5.14.eb index d19efed940..3230d895d1 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-goolf-1.5.14.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-4.0.6.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-4.0.6.eb index 3ee18f98a2..93b875b8e7 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-4.0.6.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'ictce', 'version': '4.0.6'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-5.3.0.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-5.3.0.eb index a0f7045209..3e17c8b5d6 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-ictce-5.3.0.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2014b.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2014b.eb index 3d34fbf06f..9ef4e74b99 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2014b.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2014b.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2015a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2015a.eb index 9cfba7ecd1..2c856c0c22 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.15-intel-2015a.eb @@ -5,7 +5,8 @@ version = '1.15' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015a.eb index b20d7731f8..426a5fa702 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015a.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015a.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'foss', 'version': '2015a'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015b.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015b.eb index ed67148304..681aa2648b 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2015b.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'foss', 'version': '2015b'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.4.10.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.4.10.eb index 108a2f3dc5..7481f95582 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.4.10.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.5.14.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.5.14.eb index ffcd9e4804..493418d259 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolf-1.5.14.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-1.3.12.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-1.3.12.eb index 875d7306f5..0336ef456f 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-1.3.12.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-1.3.12.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goolfc', 'version': '1.3.12'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-2.6.10.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-2.6.10.eb index 9d9ca82812..0e558d5644 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-2.6.10.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-goolfc-2.6.10.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. -The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'goolfc', 'version': '2.6.10'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.3.0.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.3.0.eb index 7005ed5e6a..e3cf37d1e5 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.3.0.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.4.0.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.4.0.eb index 9d1699e64d..1ee8967b14 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.4.0.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.4.0.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'ictce', 'version': '5.4.0'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.5.0.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.5.0.eb index 1291647435..cc561c1cbf 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-5.5.0.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'ictce', 'version': '5.5.0'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-6.2.5.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-6.2.5.eb index 958500b4dd..e1a049a993 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-6.2.5.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-ictce-6.2.5.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'ictce', 'version': '6.2.5'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2014b.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2014b.eb index 3587bf11b9..f93fbb1090 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2014b.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2014b.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015a.eb index 79f876ac1d..207992d0eb 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015a.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015b.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015b.eb index f9f59f712b..33c068c25d 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2015b.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb index 75f289b550..aaffd974f5 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-intel-2016a.eb @@ -5,7 +5,8 @@ version = '1.16' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-2.1-foss-2015b.eb b/easybuild/easyconfigs/g/GSL/GSL-2.1-foss-2015b.eb index 812faf4e0f..64966f0023 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-2.1-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-2.1-foss-2015b.eb @@ -5,7 +5,8 @@ version = "2.1" homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'version': '2015b', 'name': 'foss'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2015b.eb b/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2015b.eb index cae4fccd47..d363055a95 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2015b.eb @@ -5,7 +5,8 @@ version = '2.1' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} diff --git a/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2016a.eb b/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2016a.eb index 4184830813..6ff19555c3 100644 --- a/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GSL/GSL-2.1-intel-2016a.eb @@ -5,8 +5,8 @@ version = '2.1' homepage = 'http://www.gnu.org/software/gsl/' description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. - The library provides a wide range of mathematical routines such as random number generators, - special functions and least-squares fitting.""" + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} -- GitLab From 3fb1e69deb7b7ba5f8e980ed0c46e41a85c9b4a2 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 10:04:10 +0100 Subject: [PATCH 327/732] use %(pyver)s --- .../r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb index fa81ad980b..59556c19fd 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -1,6 +1,6 @@ name = 'ROOT' version = 'v5.34.34' -versionsuffix = '-Python-2.7.11' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://root.cern.ch/drupal/' description = """The ROOT system provides a set of OO frameworks with all the functionality -- GitLab From cd3f12ae6a78b0d3f0b5f4c9facec4fb1509d424 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 10:05:46 +0100 Subject: [PATCH 328/732] $LD is set correctly in GATE easyblock, so remove from easyconfig (cfr. https://github.com/hpcugent/easybuild-easyblocks/pull/855) --- .../easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb | 2 -- .../easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb | 2 -- 2 files changed, 4 deletions(-) diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb index b1e10c6404..ddcd9aaa7c 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.1-intel-2016a-Python-2.7.11.eb @@ -27,6 +27,4 @@ builddependencies = [ ('CMake', '3.4.3'), ] -buildopts = 'LD="$CXX"' - moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb index 80a5207676..91e8c30f8c 100644 --- a/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/GATE/GATE-7.2-intel-2016a-Python-2.7.11.eb @@ -26,6 +26,4 @@ builddependencies = [ ('CMake', '3.4.3'), ] -buildopts = 'LD="$CXX"' - moduleclass = 'cae' -- GitLab From 9a96199c4192b0b8fee1479c25a43b14b630a5fd Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 4 Mar 2016 10:18:25 +0100 Subject: [PATCH 329/732] X libs are fixed --- .../l/libXmu/libXmu-1.1.2-intel-2016a.eb | 25 +++++++++++++++++++ .../l/libXpm/libXpm-3.5.11-intel-2016a.eb | 22 ++++++++++++++++ .../r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb | 2 ++ 3 files changed, 49 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-intel-2016a.eb new file mode 100644 index 0000000000..5611aadb4b --- /dev/null +++ b/easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXmu' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXmu provides a set of miscellaneous utility convenience functions for X libraries to use. + libXmuu is a lighter-weight version that does not depend on libXt or libXext""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libXt', '1.1.5'), + ('libXpm', '3.5.11'), +] +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['%(name)s.a', '%%(name)s.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb new file mode 100644 index 0000000000..80b08e7922 --- /dev/null +++ b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libXpm' +version = '3.5.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXp provides the X print library.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [('gettext', '0.19.6')] + +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['libXpm.a', 'libXpm.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb index e0608b0939..61bf28051c 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -24,6 +24,8 @@ configopts += " --with-recommended-packages=no" dependencies = [ (libx11, libxver), + ('libXt', '1.1.5'), + ('libXmu', '1.1.2'), ('libreadline', '6.3'), ('ncurses', '6.0'), ('libpng', '1.6.21'), # for plotting in R -- GitLab From 8aa7badee4c785afcbf70c2cf8351efb7a0826fc Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 4 Mar 2016 10:41:31 +0100 Subject: [PATCH 330/732] GLib builddependency fixed (to use Python with X) --- .../easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb index a93ed50f9f..3ae73ffc00 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb @@ -15,7 +15,6 @@ source_urls = [FTPGNOME_SOURCE] sources = [SOURCELOWER_TAR_XZ] pyver = '2.7.11' -pyshortver = '.'.join(pyver.split('.')[:2]) pysuffix = '-Python-%s%s' % (pyver, versionsuffix) dependencies = [ @@ -25,7 +24,7 @@ dependencies = [ ('PCRE', '8.38'), ] -builddependencies = [('Python', pyver)] +builddependencies = [('Python', pyver, versionsuffix)] configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" -- GitLab From f95c1cd2d0e1c9758bcb8b3a8a525e06cd1056fc Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 12:25:25 +0200 Subject: [PATCH 331/732] add easyconfig PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb --- ...penGL-3.1.1a1-intel-2016a-Python-2.7.11.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..c284cf8453 --- /dev/null +++ b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'PyOpenGL' +version = '3.1.1a1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://pyopengl.sourceforge.net' +description = """PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': True} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('Mesa', '11.1.2'), +] + +options = {'modulename': 'OpenGL'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} + +moduleclass = 'vis' -- GitLab From 9d202a7e73953c2e17fb64e6476bd3b75edfe3fd Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Fri, 4 Mar 2016 11:45:49 +0100 Subject: [PATCH 332/732] Revert "Use directly '--with-hwloc' configopt for MVAPICH2 1.7 instead of to-be-removed 'withhwloc' from MVAPICH2 EB" This reverts commit 6db12d99703e23e76336abbe58be66dee5b71902. --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index 137b9059fe..95bd5200b6 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -16,7 +16,7 @@ source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] configopts = '--with-mpe ' # enable hwloc support -configopts += '--with-hwloc ' +withhwloc = True dependencies = [('hwloc', '1.5.1')] # enable checkpointing support -- GitLab From 43112ab3f8c4fe9e7c9cf9dce36fb392ac6fd1c3 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Fri, 4 Mar 2016 11:45:55 +0100 Subject: [PATCH 333/732] Revert "Use directly '--with-mpe' configopt for MVAPICH2 1.7 instead of to-be-removed 'withmpe' from MVAPICH2 EB" This reverts commit cadbf9619dacee2b0df04dc31a4712631e483c00. --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 2 +- easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index 95bd5200b6..a20b1e03f0 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -13,7 +13,7 @@ sources = [SOURCELOWER_TGZ] source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] # enable building of MPE routines -configopts = '--with-mpe ' +withmpe = True # enable hwloc support withhwloc = True diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb index 4c2eead91f..76de06e6fd 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb @@ -14,7 +14,7 @@ source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] builddependencies = [('Bison', '2.5')] # enable building of MPE routines -configopts = '--with-mpe ' +withmpe = True # parallel build tends to fail parallel = 1 -- GitLab From e6490b9b37771398ad0362f479803e695d7ffef7 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 11:51:56 +0100 Subject: [PATCH 334/732] Move to intel 2016a --- .../{bbFTP-3.2.1-foss-2015b.eb => bbFTP-3.2.1-intel-2016a.eb} | 2 +- .../{Perl-5.22.0-foss-2015b.eb => Perl-5.22.1-intel-2016a.eb} | 4 ++-- .../{shift-4.0-foss-2015b.eb => shift-4.0-intel-2016a.eb} | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) rename easybuild/easyconfigs/b/bbFTP/{bbFTP-3.2.1-foss-2015b.eb => bbFTP-3.2.1-intel-2016a.eb} (96%) rename easybuild/easyconfigs/p/Perl/{Perl-5.22.0-foss-2015b.eb => Perl-5.22.1-intel-2016a.eb} (99%) rename easybuild/easyconfigs/s/shift/{shift-4.0-foss-2015b.eb => shift-4.0-intel-2016a.eb} (90%) diff --git a/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb b/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-intel-2016a.eb similarity index 96% rename from easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb rename to easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-intel-2016a.eb index ec80570d1a..3c955962eb 100644 --- a/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-foss-2015b.eb +++ b/easybuild/easyconfigs/b/bbFTP/bbFTP-3.2.1-intel-2016a.eb @@ -21,7 +21,7 @@ description = """bbFTP is a file transfer software. It implements its own transf * Automatic retry * Customizable time-outs * Transfer simulation * AFS authentication integration * RFIO interface""" -toolchain = {'name': 'foss', 'version': '2015b'} +toolchain = {'name': 'intel', 'version': '2016a'} # fi. http://doc.in2p3.fr/bbftp/dist/bbftp-client-3.2.0.tar.gz sources = ['%s-client-%s.tar.gz' % (name.lower(), version)] diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb similarity index 99% rename from easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb rename to easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb index 37c67413c1..b46dec87b6 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.0-foss-2015b.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb @@ -1,10 +1,10 @@ name = 'Perl' -version = '5.22.0' +version = '5.22.1' homepage = 'http://www.perl.org/' description = """Larry Wall's Practical Extraction and Report Language""" -toolchain = {'name': 'foss', 'version': '2015b'} +toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://www.cpan.org/src/5.0'] diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb similarity index 90% rename from easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb rename to easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb index 7adef50aac..24ac3912b7 100644 --- a/easybuild/easyconfigs/s/shift/shift-4.0-foss-2015b.eb +++ b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb @@ -9,13 +9,13 @@ Shift is a framework for Self-Healing Independent File Transfer that provides hi performance and resilience for local and remote transfers through a variety of techniques. """ -toolchain = {'name': 'foss', 'version': '2015b'} +toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TGZ] source_urls = [('http://sourceforge.net/projects/shiftc/files', 'download')] dependencies = [ - ('Perl', '5.22.0'), + ('Perl', '5.22.1'), ('bbFTP', '3.2.1'), ] -- GitLab From 7ab9d464e410a7361524941d15fdc07645908474 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 12:32:27 +0100 Subject: [PATCH 335/732] Update gnutls to intel/2016a --- .../g/gnutls/gnutls-3.3.21-intel-2016a.eb | 40 +++++++++++++++++++ .../g/guile/guile-1.8.8-intel-2016a.eb | 32 +++++++++++++++ .../l/libidn/libidn-1.32-intel-2016a.eb | 19 +++++++++ .../l/libtasn1/libtasn1-4.7-intel-2016a.eb | 22 ++++++++++ .../libunistring-0.9.3-intel-2016a.eb | 24 +++++++++++ .../n/nettle/nettle-3.1.1-intel-2016a.eb | 28 +++++++++++++ .../p/p11-kit/p11-kit-0.23.2-intel-2016a.eb | 29 ++++++++++++++ 7 files changed, 194 insertions(+) create mode 100644 easybuild/easyconfigs/g/gnutls/gnutls-3.3.21-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/guile/guile-1.8.8-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libidn/libidn-1.32-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libunistring/libunistring-0.9.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/n/nettle/nettle-3.1.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/gnutls/gnutls-3.3.21-intel-2016a.eb b/easybuild/easyconfigs/g/gnutls/gnutls-3.3.21-intel-2016a.eb new file mode 100644 index 0000000000..62fd6a4ca6 --- /dev/null +++ b/easybuild/easyconfigs/g/gnutls/gnutls-3.3.21-intel-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'gnutls' +version = '3.3.21' + +homepage = 'http://www.gnutls.org/' +description = """GnuTLS is a secure communications library implementing the SSL, TLS + and DTLS protocols and technologies around them. It provides a simple + C language application programming interface (API) to access the secure + communications protocols as well as APIs to parse and write X.509, PKCS #12, + OpenPGP and other required structures. It is aimed to be portable + and efficient with focus on security and interoperability.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['ftp://ftp.gnutls.org/gcrypt/gnutls/v%(version_major_minor)s'] +sources = [SOURCE_TAR_XZ] + +guilever = '1.8.8' +guileshortver = '.'.join(guilever.split('.')[:2]) +dependencies = [ + ('GMP', '6.1.0'), + ('nettle', '3.1.1'), + ('guile', guilever), + ('libtasn1', '4.7'), + ('libidn', '1.32'), + ('p11-kit', '0.23.2'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE --enable-openssl-compatibility " + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'crywrap', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.%s' % SHLIB_EXT, 'xx.%s' % SHLIB_EXT, '-openssl.%s' % SHLIB_EXT]] + + ['lib/guile/%s/guile-gnutls-v-2.so' % guileshortver], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/g/guile/guile-1.8.8-intel-2016a.eb b/easybuild/easyconfigs/g/guile/guile-1.8.8-intel-2016a.eb new file mode 100644 index 0000000000..a7e7520df8 --- /dev/null +++ b/easybuild/easyconfigs/g/guile/guile-1.8.8-intel-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'guile' +version = '1.8.8' + +homepage = 'http://www.gnu.org/software/guile' +description = """Guile is the GNU Ubiquitous Intelligent Language for Extensions, + the official extension language for the GNU operating system.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libtool', '2.4.6'), + ('GMP', '6.1.0'), + ('libunistring', '0.9.3'), + ('pkg-config', '0.29'), + ('libffi', '3.2.1'), + ('libreadline', '6.3'), +] + +configopts = " --enable-error-on-warning=no" + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["guile", 'guile-config', 'guile-snarf', 'guile-tools']] + + ["lib/libguile.a", "include/libguile.h"], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libidn/libidn-1.32-intel-2016a.eb b/easybuild/easyconfigs/l/libidn/libidn-1.32-intel-2016a.eb new file mode 100644 index 0000000000..92af944d43 --- /dev/null +++ b/easybuild/easyconfigs/l/libidn/libidn-1.32-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libidn' +version = '1.32' + +homepage = 'http://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/idn', 'lib/libidn.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb new file mode 100644 index 0000000000..f8867d1ca7 --- /dev/null +++ b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libtasn1' +version = '4.7' + +homepage = 'https://www.gnu.org/software/libtasn1/' +description = """Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some other packages. + It was written by Fabio Fiorina, and has been shipped as part of GnuTLS + for some time but is now a proper GNU package.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/asn1%s' % x for x in ['Coding', 'Decoding', 'Parser']] + + ['lib/libtasn1.%s' % x for x in ['a', 'so', 'so.6']], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libunistring/libunistring-0.9.3-intel-2016a.eb b/easybuild/easyconfigs/l/libunistring/libunistring-0.9.3-intel-2016a.eb new file mode 100644 index 0000000000..8b6d4e58c5 --- /dev/null +++ b/easybuild/easyconfigs/l/libunistring/libunistring-0.9.3-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libunistring' +version = '0.9.3' + +homepage = 'http://www.gnu.org/software/libunistring/' +description = """This library provides functions for manipulating Unicode strings and for manipulating C strings + according to the Unicode standard.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +parallel = 1 + +sanity_check_paths = { + 'files': ['lib/libunistring.a', 'lib/libunistring.%s' % SHLIB_EXT] + + ['include/uni%s.h' % x for x in ['case', 'conv', 'ctype', 'lbrk', 'name', 'norm', + 'stdio', 'str', 'types', 'wbrk', 'width']], + 'dirs': ['include/unistring'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/nettle/nettle-3.1.1-intel-2016a.eb b/easybuild/easyconfigs/n/nettle/nettle-3.1.1-intel-2016a.eb new file mode 100644 index 0000000000..c725853009 --- /dev/null +++ b/easybuild/easyconfigs/n/nettle/nettle-3.1.1-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'nettle' +version = '3.1.1' + +homepage = 'http://www.lysator.liu.se/~nisse/nettle/' +description = """Nettle is a cryptographic library that is designed to fit easily + in more or less any context: In crypto toolkits for object-oriented + languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, + or even in kernel space.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('GMP', '6.1.0'), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['nettle-hash', 'nettle-lfib-stream', 'pkcs1-conv', 'sexp-conv']] + + ['lib64/libhogweed.a', 'lib64/libhogweed.%s' % SHLIB_EXT, + 'lib64/libnettle.a', 'lib64/libnettle.%s' % SHLIB_EXT], + 'dirs': ['include/nettle'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb b/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb new file mode 100644 index 0000000000..671c3febaa --- /dev/null +++ b/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'p11-kit' +version = '0.23.2' + +homepage = 'http://p11-glue.freedesktop.org/p11-kit.html' +description = """Provides a way to load and enumerate PKCS#11 modules. + Provides a standard configuration setup for installing + PKCS#11 modules in such a way that they're discoverable. + Also solves problems with coordinating the use of PKCS#11 + by different components or libraries living in the same process.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://p11-glue.freedesktop.org/releases/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('libtasn1', '4.7'), + ('libffi', '3.2.1'), +] + +sanity_check_paths = { + 'files': ['bin/p11-kit', 'bin/trust'] + + ['lib/libp11-kit.%s' % x for x in ['so', 'so.0']], + 'dirs': ['include/p11-kit-1/p11-kit'], +} + +moduleclass = 'lib' -- GitLab From 326e6c8c0d65c30d79250a00556c5b51df9475ec Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 13:00:20 +0100 Subject: [PATCH 336/732] Add libgcrypt and libgpg-error --- .../libgcrypt/libgcrypt-1.6.5-intel-2016a.eb | 21 +++++++++++++++++++ .../libgpg-error-1.21-intel-2016a.eb | 19 +++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.21-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb new file mode 100644 index 0000000000..9c3e1eaa05 --- /dev/null +++ b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'libgcrypt' +version = '1.6.5' + +homepage = 'https://gnupg.org/related_software/libgpg-error/index.html' +description = """Libgpg-error is a small library that defines common error values for all GnuPG components.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_BZ2] +source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/'] + +dependencies = [('libgpg-error', '1.21')] + +sanity_check_paths = { + 'files': ['bin/libgcrypt-config', 'include/gcrypt.h', 'lib/libgcrypt.%s' % SHLIB_EXT], + 'dirs': ['share'] +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.21-intel-2016a.eb b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.21-intel-2016a.eb new file mode 100644 index 0000000000..a3d7d6c682 --- /dev/null +++ b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.21-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libgpg-error' +version = '1.21' + +homepage = 'https://gnupg.org/related_software/libgpg-error/index.html' +description = """Libgpg-error is a small library that defines common error values for all GnuPG components.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_BZ2] +source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/'] + +sanity_check_paths = { + 'files': ['bin/gpg-error-config', 'include/gpg-error.h', 'lib/libgpg-error.%s' % SHLIB_EXT], + 'dirs': ['share'] +} + +moduleclass = 'system' -- GitLab From 3fef96ccf2febe599e601a0a131bbeeecb84b267 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 13:13:27 +0100 Subject: [PATCH 337/732] Fix remarks --- easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb | 2 +- easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb index f8867d1ca7..273a3cb53b 100644 --- a/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb @@ -15,7 +15,7 @@ sources = [SOURCE_TAR_GZ] sanity_check_paths = { 'files': ['bin/asn1%s' % x for x in ['Coding', 'Decoding', 'Parser']] + - ['lib/libtasn1.%s' % x for x in ['a', 'so', 'so.6']], + ['lib/libtasn1.%s' % x for x in ['a', SHLIB_EXT], 'dirs': ['include'], } diff --git a/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb b/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb index 671c3febaa..d945ad10e0 100644 --- a/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb +++ b/easybuild/easyconfigs/p/p11-kit/p11-kit-0.23.2-intel-2016a.eb @@ -22,7 +22,7 @@ dependencies = [ sanity_check_paths = { 'files': ['bin/p11-kit', 'bin/trust'] + - ['lib/libp11-kit.%s' % x for x in ['so', 'so.0']], + ['lib/libp11-kit.%s' % SHLIB_EXT], 'dirs': ['include/p11-kit-1/p11-kit'], } -- GitLab From 1970b762c7f3291281d22cbd47bbf53259c4fed3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 13:27:53 +0100 Subject: [PATCH 338/732] add missing dependencies for cairo, fix build vs runtime deps in X11 libs --- easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb | 3 +++ easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb | 2 +- .../easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb index 0a62de36aa..3b52cb336a 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb @@ -24,6 +24,9 @@ dependencies = [ ('fontconfig', '2.11.94'), ('expat', '2.1.0'), ('GLib', glibver), + ('libxcb', '1.11.1'), + ('libXrender', '0.9.9'), + ('libXext', '1.3.3'), ] # disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb index 5df5e13e43..e4f9296663 100644 --- a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb @@ -17,12 +17,12 @@ builddependencies = [ ('inputproto', '2.3.1'), ('xproto', '7.0.28'), ('libpthread-stubs', '0.3'), - ('kbproto', '1.0.7'), ('xtrans', '1.3.5'), ] dependencies = [ ('libxcb', '1.11.1'), + ('kbproto', '1.0.7'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb index 243dbd6f22..f18fd04337 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -13,7 +13,7 @@ toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] -builddependencies = [ +dependencies = [ ('xproto', '7.0.28'), ] diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb index 3e89327b58..44f12d56c2 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -14,11 +14,11 @@ source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] builddependencies = [ ('xproto', '7.0.28'), - ('xextproto', '7.3.0'), ] dependencies = [ ('libX11', '1.6.3'), + ('xextproto', '7.3.0'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb index fefc99f4eb..74f683ec01 100644 --- a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -13,11 +13,11 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('kbproto', '1.0.7'), - ('renderproto', '0.11'), ] dependencies = [ ('libX11', '1.6.3'), + ('renderproto', '0.11'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index 098e8569bb..db46240f22 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -15,11 +15,11 @@ sources = [SOURCELOWER_TAR_GZ] builddependencies = [ ('xcb-proto', '1.11', '', True), ('xproto', '7.0.28'), - ('libpthread-stubs', '0.3'), ] dependencies = [ ('libXau', '1.0.8'), ('libXdmcp', '1.1.2'), + ('libpthread-stubs', '0.3'), ] sanity_check_paths = { -- GitLab From f5c8261c454f335bdcd61395e780a4d33bfa3e76 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 13:30:42 +0100 Subject: [PATCH 339/732] Fix url for libgcrypt --- .../easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb index 9c3e1eaa05..437c5cc9a2 100644 --- a/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.6.5-intel-2016a.eb @@ -3,7 +3,7 @@ easyblock = 'ConfigureMake' name = 'libgcrypt' version = '1.6.5' -homepage = 'https://gnupg.org/related_software/libgpg-error/index.html' +homepage = 'https://gnupg.org/related_software/libgcrypt/index.html' description = """Libgpg-error is a small library that defines common error values for all GnuPG components.""" toolchain = {'name': 'intel', 'version': '2016a'} -- GitLab From 05d9c8be573e9dbb3c6d2bc59397c43d5dc25ac2 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 13:31:10 +0100 Subject: [PATCH 340/732] Fix typo --- easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb index 273a3cb53b..4bb22e3a8f 100644 --- a/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.7-intel-2016a.eb @@ -15,7 +15,7 @@ sources = [SOURCE_TAR_GZ] sanity_check_paths = { 'files': ['bin/asn1%s' % x for x in ['Coding', 'Decoding', 'Parser']] + - ['lib/libtasn1.%s' % x for x in ['a', SHLIB_EXT], + ['lib/libtasn1.%s' % x for x in ['a', SHLIB_EXT]], 'dirs': ['include'], } -- GitLab From 2f9e2de8866be0f3782c767e374db93191301d2c Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Fri, 4 Mar 2016 13:44:19 +0100 Subject: [PATCH 341/732] Add mutil --- .../m/mutil/mutil-1.822.3-intel-2016a.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb new file mode 100644 index 0000000000..a12dea39eb --- /dev/null +++ b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb @@ -0,0 +1,32 @@ +name = 'mutil' +version = '1.822.3' + +homepage = 'http://people.nas.nasa.gov/~kolano/projects/mutil.html' +description = """Mutil is a set of standard utilities that have been parallelized to maximize performance on +modern file systems. These currently include multi-threaded drop-in replacements for cp and md5sum from +GNU coreutils, which have achieved 10/30x rates on one/many nodes. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [ + "coreutils-8.22.tar.xz", + SOURCE_TGZ, +] +source_urls = [ + ('http://sourceforge.net/projects/mutil/files', 'download'), + GNU_SOURCE, +] + +dependencies = [ + ('gnutls', '3.3.21'), + ('libgpg-error', '1.21'), + ('libgcrypt', '1.6.5'), +] + +sanity_check_paths = { + 'files': ['bin/cp', 'bin/md5sum'], + 'dirs': ['man/man1'] +} + +moduleclass = 'tools' -- GitLab From a2eea3f20f47dcaad498d6bfb8b108880aac6499 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 14:13:16 +0100 Subject: [PATCH 342/732] don't include proto header libs as runtime deps --- easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb | 2 +- .../easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb index e4f9296663..5df5e13e43 100644 --- a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-intel-2016a.eb @@ -17,12 +17,12 @@ builddependencies = [ ('inputproto', '2.3.1'), ('xproto', '7.0.28'), ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), ('xtrans', '1.3.5'), ] dependencies = [ ('libxcb', '1.11.1'), - ('kbproto', '1.0.7'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb index f18fd04337..243dbd6f22 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -13,7 +13,7 @@ toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] -dependencies = [ +builddependencies = [ ('xproto', '7.0.28'), ] diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb index 44f12d56c2..3e89327b58 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -14,11 +14,11 @@ source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] builddependencies = [ ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), ] dependencies = [ ('libX11', '1.6.3'), - ('xextproto', '7.3.0'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb index 74f683ec01..fefc99f4eb 100644 --- a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -13,11 +13,11 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('kbproto', '1.0.7'), + ('renderproto', '0.11'), ] dependencies = [ ('libX11', '1.6.3'), - ('renderproto', '0.11'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb index db46240f22..098e8569bb 100644 --- a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -15,11 +15,11 @@ sources = [SOURCELOWER_TAR_GZ] builddependencies = [ ('xcb-proto', '1.11', '', True), ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), ] dependencies = [ ('libXau', '1.0.8'), ('libXdmcp', '1.1.2'), - ('libpthread-stubs', '0.3'), ] sanity_check_paths = { -- GitLab From b55cd2298377b5c8cb875d267f9b718a9aacd97c Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 14:20:17 +0100 Subject: [PATCH 343/732] add libX11 as explicit dep to cairo --- easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb index 3b52cb336a..ef5f023e09 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb @@ -24,6 +24,7 @@ dependencies = [ ('fontconfig', '2.11.94'), ('expat', '2.1.0'), ('GLib', glibver), + ('libX11', '1.6.3'), ('libxcb', '1.11.1'), ('libXrender', '0.9.9'), ('libXext', '1.3.3'), -- GitLab From 57fc835c13032f86b54d80a0cdb798ed175b88cb Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 14:26:22 +0100 Subject: [PATCH 344/732] add renderproto as build dep for cairo --- easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb index ef5f023e09..2966a85fa7 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb @@ -29,6 +29,9 @@ dependencies = [ ('libXrender', '0.9.9'), ('libXext', '1.3.3'), ] +builddependencies = [ + ('renderproto', '0.11'), +] # disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes " -- GitLab From beb89b7c4232ffbe815a690432620a1f0196fab4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 15:29:19 +0200 Subject: [PATCH 345/732] add easyconfig Glade-3.8.5-intel-2016a-Python-2.7.11.eb, add easyconfig intltool-0.51.0-intel-2016a.eb, add easyconfig XML-Parser-2.41-intel-2016a-Perl-5.20.3.eb --- .../Glade-3.8.5-intel-2016a-Python-2.7.11.eb | 40 +++++++++++++++++++ .../i/intltool/intltool-0.51.0-intel-2016a.eb | 24 +++++++++++ ...XML-Parser-2.41-intel-2016a-Perl-5.20.3.eb | 27 +++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.41-intel-2016a-Perl-5.20.3.eb diff --git a/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..a592f1d91d --- /dev/null +++ b/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'Glade' +version = '3.8.5' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://glade.gnome.org/' +description = """Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolkit + and the GNOME desktop environment.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/%(namelower)s%(version_major)s/%(version_major_minor)s/'] +sources = ['%(namelower)s%(version_major)s-%(version)s.tar.xz'] + +dependencies = [ + ('Python', '2.7.11'), + ('GTK+', '2.24.28'), + ('PyGTK', '2.24.0', versionsuffix), + ('gettext', '0.19.6'), + ('libxml2', '2.9.3', versionsuffix), +] +builddependencies = [ + ('intltool', '0.51.0'), + ('pkg-config', '0.29'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('renderproto', '0.11'), +] + +sanity_check_paths = { + 'files': ['bin/glade-%(version_major)s', 'lib/libgladeui-1.%s' % SHLIB_EXT, 'lib/pkgconfig/gladeui-1.0.pc', + 'lib/glade%%(version_major)s/modules/libgladegtk.%s' % SHLIB_EXT, + 'lib/glade%%(version_major)s/modules/libgladepython.%s' % SHLIB_EXT], + 'dirs': ['include/libgladeui-1.0/gladeui', 'share'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb new file mode 100644 index 0000000000..1b3568a509 --- /dev/null +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'intltool' +version = '0.51.0' + +homepage = 'http://freedesktop.org/wiki/Software/intltool/' +description = """intltool is a set of tools to centralize translation of + many different file formats using GNU gettext-compatible PO files.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('XML-Parser', '2.41', '-Perl-5.20.3'), +] + +sanity_check_paths = { + 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.41-intel-2016a-Perl-5.20.3.eb b/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.41-intel-2016a-Perl-5.20.3.eb new file mode 100644 index 0000000000..2ef054ad23 --- /dev/null +++ b/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.41-intel-2016a-Perl-5.20.3.eb @@ -0,0 +1,27 @@ +easyblock = 'PerlModule' + +name = 'XML-Parser' +version = '2.41' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://search.cpan.org/~toddr/XML-Parser-2.41/' +description = """This is a Perl extension interface to James Clark's XML parser, expat.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cpan.metacpan.org/authors/id/T/TO/TODDR/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Perl', '5.20.3'), + ('expat', '2.1.0') +] + +options = {'modulename': 'XML::Parser'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/XML'], +} + +moduleclass = 'data' -- GitLab From 7a43b7c24a4b2f3f87f7117241bf461282856f30 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 14:37:11 +0100 Subject: [PATCH 346/732] add PyOpenGL and Glade as deps for p4vasp --- .../p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb index 7903d62ba9..699eafed53 100644 --- a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb @@ -2,7 +2,7 @@ easyblock = 'ConfigureMake' name = 'p4vasp' version = '0.3.29' -versionsuffix = '-Python-2.7.11' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://www.p4vasp.at/' description = """Visualization suite for VASP""" @@ -13,7 +13,10 @@ toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TGZ] dependencies = [ + ('Python', '2.7.11'), ('PyGTK', '2.24.0', versionsuffix), + ('PyOpenGL', '3.1.1a1', versionsuffix), + ('Glade', '3.8.5', versionsuffix), ] skipsteps = ['configure', 'build'] -- GitLab From ae86fbb5e227b6c05b1baf7181a756d9086d19bf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 15:18:26 +0100 Subject: [PATCH 347/732] GLib doesn't require libxml2 with Python bindings --- easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a.eb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a.eb index 3dcfe3ad19..2b30216f8c 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a.eb @@ -12,18 +12,14 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = [FTPGNOME_SOURCE] sources = [SOURCELOWER_TAR_XZ] -pyver = '2.7.11' -pyshortver = '.'.join(pyver.split('.')[:2]) -pysuffix = '-Python-%s' % pyver - dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), - ('libxml2', '2.9.3', pysuffix), + ('libxml2', '2.9.3'), ('PCRE', '8.38'), ] -builddependencies = [('Python', pyver)] +builddependencies = [('Python', '2.7.11')] configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" -- GitLab From 0edfa0e1c01e00e4762a690993d689938c83b956 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 15:42:33 +0100 Subject: [PATCH 348/732] add patch file to imkl 10.2.6.038 32-bit easyconfig to fix installer not being able to deal with -- in build path] --- .../easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb | 2 ++ .../imkl-10.2.6.038_fix-install-double-dash.patch | 14 ++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 easybuild/easyconfigs/i/imkl/imkl-10.2.6.038_fix-install-double-dash.patch diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb index 2312f4b388..39b3d7cf7b 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038-32bit.eb @@ -12,6 +12,8 @@ toolchain = {'name': 'dummy', 'version': ''} sources = ['l_mkl_p_%(version)s.tar.gz'] +patches = ['imkl-%(version)s_fix-install-double-dash.patch'] + dontcreateinstalldir = 'True' # deps for interface build diff --git a/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038_fix-install-double-dash.patch b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038_fix-install-double-dash.patch new file mode 100644 index 0000000000..929b9c7069 --- /dev/null +++ b/easybuild/easyconfigs/i/imkl/imkl-10.2.6.038_fix-install-double-dash.patch @@ -0,0 +1,14 @@ +fix regex that doesn't handle directory names with a double dash (--) in them correctly +this fix is specific to using '-32bit' as versionsuffix +author: Kenneth Hoste (HPC-UGent) +--- l_mkl_p_10.2.6.038/pset/install.sh.orig 2016-03-04 15:28:03.092055076 +0100 ++++ l_mkl_p_10.2.6.038/pset/install.sh 2016-03-04 15:27:44.071603046 +0100 +@@ -1281,7 +1281,7 @@ + + [ $err -eq ${ERR_OK} ] || return 1 + +- RS=$(echo $CMD_STR | sed s/.*--$cmd[[:blank:]]*//g | sed 's/[[:blank:]]*--.*$//g') ++ RS=$(echo $CMD_STR | sed s/.*--$cmd[[:blank:]]*//g | sed 's/[[:blank:]]*--[^3].*$//g') + [[ -z "$RS" ]] && return 1 + echo $RS + -- GitLab From a2943853e4799c2fb32b8a40e17638533ca5fffe Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 16:49:04 +0200 Subject: [PATCH 349/732] use libxml2 without Python bindings as dep in Glade easyconfig --- .../g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb index a592f1d91d..a60c5a250c 100644 --- a/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb @@ -18,7 +18,7 @@ dependencies = [ ('GTK+', '2.24.28'), ('PyGTK', '2.24.0', versionsuffix), ('gettext', '0.19.6'), - ('libxml2', '2.9.3', versionsuffix), + ('libxml2', '2.9.3'), ] builddependencies = [ ('intltool', '0.51.0'), -- GitLab From 2b7f0e2f3e1875274240bd090d4c7c82ec66b532 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 15:55:58 +0100 Subject: [PATCH 350/732] add -Perl-5.20.3 to versionsuffix for intltool --- .../g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb | 2 +- ...el-2016a.eb => intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb} | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) rename easybuild/easyconfigs/i/intltool/{intltool-0.51.0-intel-2016a.eb => intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb} (89%) diff --git a/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb index a60c5a250c..7b4701d28d 100644 --- a/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/g/Glade/Glade-3.8.5-intel-2016a-Python-2.7.11.eb @@ -21,7 +21,7 @@ dependencies = [ ('libxml2', '2.9.3'), ] builddependencies = [ - ('intltool', '0.51.0'), + ('intltool', '0.51.0', '-Perl-5.20.3'), ('pkg-config', '0.29'), ('libpthread-stubs', '0.3'), ('kbproto', '1.0.7'), diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb similarity index 89% rename from easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb rename to easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb index 1b3568a509..8fd4cb48f8 100644 --- a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a.eb +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb @@ -2,6 +2,7 @@ easyblock = 'ConfigureMake' name = 'intltool' version = '0.51.0' +versionsuffix = '-Perl-5.20.3' homepage = 'http://freedesktop.org/wiki/Software/intltool/' description = """intltool is a set of tools to centralize translation of @@ -13,7 +14,7 @@ source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] sources = [SOURCE_TAR_GZ] dependencies = [ - ('XML-Parser', '2.41', '-Perl-5.20.3'), + ('XML-Parser', '2.41', versionsuffix), ] sanity_check_paths = { -- GitLab From 45f1afd8d292d62ec5d0951d53f19d75599cc881 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 16:35:34 +0100 Subject: [PATCH 351/732] add libglade as dependency for PyGTK --- .../l/libglade/libglade-2.6.4-intel-2016a.eb | 27 +++++++++++++++++++ .../PyGTK-2.24.0-intel-2016a-Python-2.7.11.eb | 6 ++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/l/libglade/libglade-2.6.4-intel-2016a.eb diff --git a/easybuild/easyconfigs/l/libglade/libglade-2.6.4-intel-2016a.eb b/easybuild/easyconfigs/l/libglade/libglade-2.6.4-intel-2016a.eb new file mode 100644 index 0000000000..479f939d5a --- /dev/null +++ b/easybuild/easyconfigs/l/libglade/libglade-2.6.4-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libglade' +version = '2.6.4' + +homepage = 'https://developer.gnome.org/libglade/' +description = """Libglade is a library for constructing user interfaces dynamically from XML descriptions.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/libglade/%(version_major_minor)s'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('ATK', '2.18.0'), + ('GTK+', '2.24.28'), + ('GLib', '2.47.5'), + ('libxml2', '2.9.3'), +] + +sanity_check_paths = { + 'files': ['bin/libglade-convert', 'lib/libglade-2.0.a', 'lib/libglade-2.0.%s' % SHLIB_EXT, + 'lib/pkgconfig/libglade-2.0.pc'], + 'dirs': ['include/libglade-2.0/glade', 'share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2016a-Python-2.7.11.eb index d470f598fa..3e012eb7c3 100644 --- a/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/PyGTK/PyGTK-2.24.0-intel-2016a-Python-2.7.11.eb @@ -24,6 +24,7 @@ dependencies = [ ('GTK+', '2.24.28'), ('ATK', '2.18.0'), ('PyCairo', '1.10.0', versionsuffix), + ('libglade', '2.6.4'), ] postinstallcmds = [ @@ -45,6 +46,9 @@ sanity_check_paths = { 'dirs': ['lib/pygtk'], } -sanity_check_commands = [('python', "-c 'import gtk'")] +sanity_check_commands = [ + ('python', "-c 'import gtk'"), + ('python', "-c 'import gtk.glade'"), +] moduleclass = 'vis' -- GitLab From c58caeb36055f219eb3e75840916513277fe7702 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 17:24:59 +0100 Subject: [PATCH 352/732] PyOpenGL doesn't need usempi... thx @ocaisa --- .../p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb index c284cf8453..cd4aac12db 100644 --- a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.1a1-intel-2016a-Python-2.7.11.eb @@ -8,7 +8,6 @@ homepage = 'http://pyopengl.sourceforge.net' description = """PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs.""" toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'usempi': True} source_urls = [PYPI_SOURCE] sources = [SOURCE_TAR_GZ] -- GitLab From c60e315399ea6e25ac118a06baaa654910b1721f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 17:25:28 +0100 Subject: [PATCH 353/732] fix $PYTHONPATH for PyGObject, make sure 'import gio' works --- ...Object-2.28.6-intel-2016a-Python-2.7.11.eb | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2016a-Python-2.7.11.eb index 3291d71bff..2098c7c9b3 100644 --- a/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/PyGObject/PyGObject-2.28.6-intel-2016a-Python-2.7.11.eb @@ -2,6 +2,7 @@ easyblock = 'ConfigureMake' name = 'PyGObject' version = '2.28.6' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://www.pygtk.org/' description = """Python Bindings for GLib/GObject/GIO/GTK+""" @@ -15,11 +16,10 @@ patches = ['PyGObject-%(version)s_enum-types.patch'] pyver = '2.7.11' pyshortver = '.'.join(pyver.split('.')[:2]) -versionsuffix = '-Python-%s' % pyver glibver = '2.47.5' dependencies = [ - ('Python', pyver), + ('Python', '2.7.11'), ('GLib', glibver), ('GObject-Introspection', '1.47.1'), ('PyCairo', '1.10.0', versionsuffix), @@ -28,13 +28,24 @@ dependencies = [ configopts = "--disable-introspection" modextrapaths = { - 'PYTHONPATH': ['lib/python%s/site-packages' % pyshortver, 'lib64/python%s/site-packages' % pyshortver], + 'PYTHONPATH': [ + 'lib/python%(pyshortver)s/site-packages', + 'lib/python%(pyshortver)s/site-packages/gtk-2.0', + 'lib64/python%(pyshortver)s/site-packages', + 'lib64/python%(pyshortver)s/site-packages/gtk-2.0', + ], } sanity_check_paths = { 'files': ['include/pygtk-%(version_major)s.0/pyglib.h', 'include/pygtk-%(version_major)s.0/pygobject.h', 'lib/libpyglib-%(version_major)s.0-python.so'], - 'dirs': ['bin', 'lib/python%s/site-packages/' % pyshortver], + 'dirs': ['bin', 'lib/python%(pyshortver)s/site-packages/'], } +sanity_check_commands = [ + ('python', "-c 'import gobject'"), + ('python', "-c 'import glib'"), + ('python', "-c 'import gio'"), +] + moduleclass = 'vis' -- GitLab From c0cfc0015d2ac1f35ed8d593fa2883dad927f97f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 17:30:26 +0100 Subject: [PATCH 354/732] fix filename for intltool easyconfig --- ...ntltool-0.51.0-intel-2016ab-Perl-5.20.3.eb | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb deleted file mode 100644 index 8fd4cb48f8..0000000000 --- a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016ab-Perl-5.20.3.eb +++ /dev/null @@ -1,25 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'intltool' -version = '0.51.0' -versionsuffix = '-Perl-5.20.3' - -homepage = 'http://freedesktop.org/wiki/Software/intltool/' -description = """intltool is a set of tools to centralize translation of - many different file formats using GNU gettext-compatible PO files.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('XML-Parser', '2.41', versionsuffix), -] - -sanity_check_paths = { - 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']], - 'dirs': [] -} - -moduleclass = 'devel' -- GitLab From ee82bbaf6b5c4ea6f4f1b64fb641f5ee62058e2f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 17:49:47 +0100 Subject: [PATCH 355/732] add back intltool easyconfig --- ...intltool-0.51.0-intel-2016a-Perl-5.20.3.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.20.3.eb diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.20.3.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.20.3.eb new file mode 100644 index 0000000000..8fd4cb48f8 --- /dev/null +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.20.3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'intltool' +version = '0.51.0' +versionsuffix = '-Perl-5.20.3' + +homepage = 'http://freedesktop.org/wiki/Software/intltool/' +description = """intltool is a set of tools to centralize translation of + many different file formats using GNU gettext-compatible PO files.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('XML-Parser', '2.41', versionsuffix), +] + +sanity_check_paths = { + 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']], + 'dirs': [] +} + +moduleclass = 'devel' -- GitLab From 1e71cfadbe1f76240557d31d81ba34b2d30ed971 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 4 Mar 2016 18:28:30 +0100 Subject: [PATCH 356/732] {geo}[intel/2016a] rgeos 0.3-17 w/ R 3.2.3 --- .../GEOS-3.5.0-intel-2016a-Python-2.7.11.eb | 28 +++++++++++++++++++ .../rgeos/rgeos-0.3-17-intel-2016a-R-3.2.3.eb | 26 +++++++++++++++++ .../SWIG-3.0.8-intel-2016a-Python-2.7.11.eb | 20 +++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 easybuild/easyconfigs/g/GEOS/GEOS-3.5.0-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/r/rgeos/rgeos-0.3-17-intel-2016a-R-3.2.3.eb create mode 100644 easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/g/GEOS/GEOS-3.5.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/GEOS/GEOS-3.5.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..b8bf09f57e --- /dev/null +++ b/easybuild/easyconfigs/g/GEOS/GEOS-3.5.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'GEOS' +version = '3.5.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://trac.osgeo.org/geos' +description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://download.osgeo.org/geos/'] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [('Python', '2.7.11')] + +builddependencies = [('SWIG', '3.0.8', versionsuffix)] + +configopts = '--enable-python' + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_paths = { + 'files': ['bin/geos-config', 'lib/libgeos.%s' % SHLIB_EXT, 'lib/libgeos.a', 'include/geos.h'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/geos'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/r/rgeos/rgeos-0.3-17-intel-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/rgeos/rgeos-0.3-17-intel-2016a-R-3.2.3.eb new file mode 100644 index 0000000000..de838e34c0 --- /dev/null +++ b/easybuild/easyconfigs/r/rgeos/rgeos-0.3-17-intel-2016a-R-3.2.3.eb @@ -0,0 +1,26 @@ +easyblock = 'RPackage' + +name = 'rgeos' +version = '0.3-17' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cran.r-project.org/web/packages/rgeos/' +description = """R interface to Geometry Engine - Open Source (GEOS) using the C API for topology operations + on geometries""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://cran.r-project.org/src/contrib/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +dependencies = [ + ('R', '3.2.3'), + ('GEOS', '3.5.0', '-Python-2.7.11'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(namelower)s'], +} + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..43296c33fb --- /dev/null +++ b/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,20 @@ +name = 'SWIG' +version = '3.0.8' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://www.swig.org/' +description = """SWIG is a software development tool that connects programs written in C and C++ with + a variety of high-level programming languages.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('PCRE', '8.38'), +] + +moduleclass = 'devel' -- GitLab From 16dfb07be9d450b2658fdee641b29c0657aeae2f Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 4 Mar 2016 19:50:01 +0100 Subject: [PATCH 357/732] Glib libxml2 dep without Python --- .../cairo-1.14.6-intel-2016a-libX11-1.6.3.eb | 56 ------------------- .../GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb | 30 ---------- .../GLib-2.47.5-intel-2016a-libX11-1.6.3.eb | 38 ------------- ...-intel-2016a-Python-2.7.11-libX11-1.6.3.eb | 29 ---------- .../r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb | 6 +- 5 files changed, 3 insertions(+), 156 deletions(-) delete mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb delete mode 100644 easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb delete mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb delete mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb deleted file mode 100644 index 6db4212fb3..0000000000 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a-libX11-1.6.3.eb +++ /dev/null @@ -1,56 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'cairo' -version = '1.14.6' - -libx11 = 'libX11' -libxver = '1.6.3' -versionsuffix = '-%s-%s' % (libx11, libxver) - -homepage = 'http://cairographics.org' -description = """Cairo is a 2D graphics library with support for multiple output devices. - Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, - PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://cairographics.org/releases/'] -sources = [SOURCE_TAR_XZ] - -glibver = '2.47.5' - -builddependencies = [ - ('renderproto', '0.11'), -] - -dependencies = [ - (libx11, libxver), - ('libXrender', '0.9.9'), - ('libdrm', '2.4.67'), - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libpng', '1.6.21'), - ('freetype', '2.6.2'), - ('pixman', '0.34.0'), - ('fontconfig', '2.11.94'), - ('expat', '2.1.0'), - ('GLib', glibver, versionsuffix), -] - -# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC -configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes " - -# workaround for "hidden symbol .* in .* is referenced by DSO" and "ld: final link failed: Bad value" -buildopts = 'LD="$CC" LDFLAGS="$LDFLAGS -shared-intel"' - -sanity_check_paths = { - 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', - 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', - 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + - ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', - '-script', '-script-interpreter', '-svg', '-version', '-xcb', - '-xlib', '-xlib-xrender']], - 'dirs': ['lib/pkgconfig'], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb deleted file mode 100644 index 78e94ccbb6..0000000000 --- a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-intel-2016a-libX11-1.6.3.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'GDAL' -version = '2.0.2' -versionsuffix = '-libX11-1.6.3' - -homepage = 'http://www.gdal.org/' -description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style - Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model - to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for - data translation and processing.""" - -toolchain = {'name': 'intel', 'version': '2016a'} - -source_urls = ['http://download.osgeo.org/gdal/%(version)s/'] -sources = [SOURCELOWER_TAR_XZ] - -dependencies = [ - ('netCDF', '4.3.3.1'), - ('expat', '2.1.0'), - ('libxml2', '2.9.3', '-Python-2.7.11%s' % versionsuffix), - ('zlib', '1.2.8'), -] - -sanity_check_paths = { - 'files': ['lib/libgdal.%s' % SHLIB_EXT, 'lib/libgdal.a'], - 'dirs': ['bin', 'include'] -} - -moduleclass = 'data' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb deleted file mode 100644 index 3ae73ffc00..0000000000 --- a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-intel-2016a-libX11-1.6.3.eb +++ /dev/null @@ -1,38 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'GLib' -version = '2.47.5' - -versionsuffix = '-libX11-1.6.3' - -homepage = 'http://www.gtk.org/' -description = """GLib is one of the base libraries of the GTK+ project""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'optarch': True, 'pic': True} - -source_urls = [FTPGNOME_SOURCE] -sources = [SOURCELOWER_TAR_XZ] - -pyver = '2.7.11' -pysuffix = '-Python-%s%s' % (pyver, versionsuffix) - -dependencies = [ - ('libffi', '3.2.1'), - ('gettext', '0.19.6'), - ('libxml2', '2.9.3', pysuffix), - ('PCRE', '8.38'), -] - -builddependencies = [('Python', pyver, versionsuffix)] - -configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" - -postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] - -sanity_check_paths = { - 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], - 'dirs': ['bin', 'include'], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb deleted file mode 100644 index 230d903622..0000000000 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11-libX11-1.6.3.eb +++ /dev/null @@ -1,29 +0,0 @@ -name = 'libxml2' -version = '2.9.3' - -homepage = 'http://xmlsoft.org/' -description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable - outside of the Gnome platform).""" - -toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'pic': True} - -source_urls = [ - 'http://xmlsoft.org/sources/', - 'http://xmlsoft.org/sources/old/' -] -sources = [SOURCELOWER_TAR_GZ] - -configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' - -pyver = '2.7.11' -pyshortver = '.'.join(pyver.split('.')[:2]) -libx11suffix = '-libX11-1.6.3' -versionsuffix = '-Python-%s%s' % (pyver, libx11suffix) - -dependencies = [ - ('zlib', '1.2.8'), - ('Python', pyver, libx11suffix), -] - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb index 61bf28051c..8df021253b 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -31,13 +31,13 @@ dependencies = [ ('libpng', '1.6.21'), # for plotting in R ('libjpeg-turbo', '1.4.2'), # for plottting in R ('LibTIFF', '4.0.6'), # for plotting in R - ('cairo', '1.14.6', versionsuffix), # for plotting in R + ('cairo', '1.14.6'), # for plotting in R ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it ('Tcl', '8.6.4'), # for tcltk ('Tk', '8.6.4', versionsuffix), # for tcltk ('cURL', '7.47.0'), # for RCurl - ('libxml2', '2.9.3', '-Python-2.7.11%s' % versionsuffix), # for XML - ('GDAL', '2.0.2', versionsuffix), # for rgdal + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal ('PROJ', '4.9.2'), # for rgdal ] -- GitLab From c1dbd131ac40d265ea7549d5973e94535fa2c4ad Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 4 Mar 2016 19:59:36 +0100 Subject: [PATCH 358/732] extra empty line deleted --- easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb index 8df021253b..60dfecc0d6 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -51,7 +51,6 @@ ext_options = { 'source_tmpl': name_tmpl, } - # !! order of packages is important !! # packages updated on January 21st 2016 exts_list = [ -- GitLab From e59867b60cf61ccdd5d696db15784e88d712b3fe Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Sat, 5 Mar 2016 06:30:52 +1030 Subject: [PATCH 359/732] Add missing libxml2 dep to Glib --- easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb index 55b64d46c2..0b0d4ce37c 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb @@ -15,6 +15,7 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.7'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9')] -- GitLab From cfb939cec91b83b385b7b303f5036172a2d9c4e8 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 4 Mar 2016 21:07:48 +0000 Subject: [PATCH 360/732] Remove unnecessary files_to_copy after easyblock change --- .../v/VCFtools/VCFtools-0.1.14-foss-2015b-Perl-5.20.3.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2015b-Perl-5.20.3.eb b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2015b-Perl-5.20.3.eb index 926d8c8707..9d1e642f25 100644 --- a/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2015b-Perl-5.20.3.eb +++ b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2015b-Perl-5.20.3.eb @@ -30,8 +30,6 @@ dependencies = [ (perl, perlver), ] -files_to_copy = ["bin", "lib", "examples", (["bin/man1"], 'man')] - modextrapaths = {'PERL5LIB': 'lib/perl5/site_perl'} sanity_check_paths = { -- GitLab From 8a638f2ff59bf591d224df458e7010e4bdb2004c Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Sun, 6 Mar 2016 07:29:02 +1030 Subject: [PATCH 361/732] Added missing libxml2 dependency --- easybuild/easyconfigs/g/GLib/GLib-2.40.0-goolf-1.7.20.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015a.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015b.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.44.0-GCC-4.9.2.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.44.0-foss-2015a.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.44.0-intel-2015a.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.44.1-goolf-1.7.20.eb | 1 + .../easyconfigs/g/GLib/GLib-2.44.1-intel-2015a-Python-2.7.10.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb | 1 + easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb | 1 + 11 files changed, 11 insertions(+) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.40.0-goolf-1.7.20.eb b/easybuild/easyconfigs/g/GLib/GLib-2.40.0-goolf-1.7.20.eb index 8949f8ac3a..d5179c2d3f 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.40.0-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.40.0-goolf-1.7.20.eb @@ -15,6 +15,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.1'), ('gettext', '0.19.2'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015a.eb index 30174bd67f..8a3283f98f 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015a.eb @@ -14,6 +14,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.1'), ('gettext', '0.19.2'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.8')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015b.eb index b79abecbd3..f78f797967 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.41.2-intel-2015b.eb @@ -14,6 +14,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.1'), ('gettext', '0.19.2'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.10')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.44.0-GCC-4.9.2.eb b/easybuild/easyconfigs/g/GLib/GLib-2.44.0-GCC-4.9.2.eb index 08bf6bb8cb..94d03a2c3d 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.44.0-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.44.0-GCC-4.9.2.eb @@ -15,6 +15,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.4'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9', '-bare')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.44.0-foss-2015a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.44.0-foss-2015a.eb index e2971ec78c..1320160d1a 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.44.0-foss-2015a.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.44.0-foss-2015a.eb @@ -15,6 +15,7 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.4'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.44.0-intel-2015a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.44.0-intel-2015a.eb index 224be43936..09e94d7c70 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.44.0-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.44.0-intel-2015a.eb @@ -15,6 +15,7 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.4'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.44.1-goolf-1.7.20.eb b/easybuild/easyconfigs/g/GLib/GLib-2.44.1-goolf-1.7.20.eb index c6424b3f53..9b0db5c7d4 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.44.1-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.44.1-goolf-1.7.20.eb @@ -15,6 +15,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.1'), ('gettext', '0.19.2'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a-Python-2.7.10.eb index 9f4e52261e..e1f3dc6096 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a-Python-2.7.10.eb @@ -15,6 +15,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.1'), ('gettext', '0.19.2'), + ('libxml2', '2.9.2'), ] python = 'Python' pyver = '2.7.10' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a.eb index ea740d47ca..6aacfaecc2 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.44.1-intel-2015a.eb @@ -15,6 +15,7 @@ sources = ['glib-%(version)s.tar.xz'] dependencies = [ ('libffi', '3.1'), ('gettext', '0.19.2'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.9')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb index 56025316ff..1a6974652c 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb @@ -15,6 +15,7 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.10')] diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb index d5db1754d1..90389b48f3 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.1-intel-2015b.eb @@ -15,6 +15,7 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.10')] -- GitLab From 8fd4030f443c7a32e6ce06aa539b10bebbcf33f8 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Mon, 7 Mar 2016 12:38:39 +1030 Subject: [PATCH 362/732] Bump Python version --- easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb index 0b0d4ce37c..2d418a45be 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.2-foss-2015b.eb @@ -17,6 +17,6 @@ dependencies = [ ('gettext', '0.19.7'), ('libxml2', '2.9.2'), ] -builddependencies = [('Python', '2.7.9')] +builddependencies = [('Python', '2.7.10')] moduleclass = 'vis' -- GitLab From 807d12e700fefe7a54aa9c5a85e7793ff3af13bc Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Mon, 7 Mar 2016 13:55:16 +1030 Subject: [PATCH 363/732] Added easyconfig for csvkit --- .../csvkit-0.9.1-foss-2015b-Python-2.7.10.eb | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..1b0f60b271 --- /dev/null +++ b/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb @@ -0,0 +1,36 @@ +easyblock = "PythonPackage" + +name = 'csvkit' +version = '0.9.1' + +homepage = 'https://github.com/wireservice/csvkit' +description = """csvkit is a suite of command-line tools for converting to and working with CSV, + the king of tabular file formats.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.10' +pyshortver = '.'.join(pyver.split('.')[:2]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), +] + +postinstallcmds = ["chmod -R +r %(installdir)s/lib/"] + +sanity_check_paths = { + 'files': ['bin/in2csv', 'bin/sql2csv', 'bin/csvclean', 'bin/csvcut', 'bin/csvgrep', 'bin/csvjoin', + 'bin/csvsort', 'bin/csvstack', 'bin/csvformat', 'bin/csvjson', 'bin/csvlook', 'bin/csvpy', + 'bin/csvsql', 'bin/csvstat'], + 'dirs': [], +} + +sanity_check_commands = [('csvlook','-h')] + +moduleclass = 'tools' -- GitLab From 2b459eebb7a7797b47b81f04ef6b056a31f8ac5b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 09:47:55 +0100 Subject: [PATCH 364/732] easyconfig renamed --- ...opus-5.0.0-intel-2015b.eb => Octopus-5.0.0-intel-2015b-mpi.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/o/Octopus/{Octopus-5.0.0-intel-2015b.eb => Octopus-5.0.0-intel-2015b-mpi.eb} (100%) diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb similarity index 100% rename from easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b.eb rename to easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb -- GitLab From 5278cc3e88ddc3d8a0215b6f4f414341247465c3 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 11:16:26 +0100 Subject: [PATCH 365/732] fixes --- easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch | 4 ++++ .../o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 11 ++++++----- .../p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch b/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch index 981d2feb46..a5895cfc2c 100644 --- a/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch +++ b/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch @@ -1,7 +1,11 @@ #https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en#scripts +#This patch is needed by PFFT +#https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en#pfft #Within these scripts we apply the following patches that have been submitted to FFTW but are not yet included in FFTW-3.3.4: #We add two more global transposition algorithms to the planner. #We patch file mpi/transpose-pairwise.c in order to fix a double free bug. +#The patch file is fleshed out from install_fftw-3.3.4_gcc.sh +#at https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software/install_fftw-3.3.4_gcc.sh diff -rupN fftw-3.3.4/mpi/conf.c fftw-3.3.4-patched/mpi/conf.c --- fftw-3.3.4/mpi/conf.c 2014-03-04 19:41:03.000000000 +0100 +++ fftw-3.3.4-patched/mpi/conf.c 2015-09-05 05:53:19.085516467 +0200 diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 932a21ffc2..31ad0d2de5 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -18,8 +18,8 @@ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=%(version)s/' ] builddependencies = [ - ('Bison', '3.0.4', '', ('GNU', '4.9.3-2.25')), - ('Perl', '5.20.3'), + ('Bison', '3.0.4'), + ('Perl', '5.20.3', '-bare'), ] dependencies = [ @@ -34,18 +34,19 @@ dependencies = [ configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' -configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lpthread" ' +configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential ' +iconfigure += '-lmkl_core -Wl,--end-group -lpthread" ' configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' configopts += '--with-pfft-prefix=$EBROOTPFFT --with-mpifftw-prefix=$EBROOTFFTW ' +runtest = 'MPIEXEC=`which mpirun` check' + sanity_check_paths = { 'files': ["bin/octopus_mpi"], 'dirs': [] } -runtest = 'MPIEXEC=`which mpirun` check' - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb b/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb index 4ee4858b6d..4e9dda8fed 100644 --- a/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb +++ b/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb @@ -16,11 +16,11 @@ source_urls = ['http://www.tu-chemnitz.de/~potts/workgroup/pippig/software/'] dependencies = [ ('FFTW', '3.3.4-p2'), - ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), + ('Autotools', '20150215'), ] sanity_check_paths = { - 'files': ['lib/libpfft.so.0.0.0', 'lib/libpfft.a'], + 'files': ['lib/libpfft.%s' % SHLIB_EXT, 'lib/libpfft.a'], 'dirs': [], } -- GitLab From eb98e79dda3d753f5747b718b15fbab9f0acc7fa Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 11:26:41 +0100 Subject: [PATCH 366/732] FFTW patch renamed --- easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb | 4 ++-- ...{FFTW_3.3.4-p2.patch => FFTW_3.3.4-p2_PFFT-20150905.patch} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename easybuild/easyconfigs/f/FFTW/{FFTW_3.3.4-p2.patch => FFTW_3.3.4-p2_PFFT-20150905.patch} (100%) diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb index 05f0826bb5..2c340edd6e 100644 --- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb @@ -13,10 +13,10 @@ toolchainopts = {'optarch': True, 'pic': True} sources = ['%s-%s.tar.gz' % (name.lower(), version.split("-")[0])] source_urls = [homepage] -patches = ['%(name)s_%(version)s.patch'] +patches = ['%(name)s_%(version)s_PFFT-20150905.patch'] builddependencies = [ - ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), + ('Autotools', '20150215'), ] # the patch changed a Makefile.am, so we need to call autoreconf diff --git a/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch b/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2_PFFT-20150905.patch similarity index 100% rename from easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2.patch rename to easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2_PFFT-20150905.patch -- GitLab From fb02e13bdc60e3ecc34a010a365f7e41e7ff85fb Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 12:02:21 +0100 Subject: [PATCH 367/732] typo corrected --- .../easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 31ad0d2de5..74a81115f6 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -35,7 +35,7 @@ dependencies = [ configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential ' -iconfigure += '-lmkl_core -Wl,--end-group -lpthread" ' +configopts += '-lmkl_core -Wl,--end-group -lpthread" ' configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' -- GitLab From 0d55e4c1a3c55122fe237ddb6969a58c46244515 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 12:23:52 +0100 Subject: [PATCH 368/732] only bare from perl 5.20.2 --- .../easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 74a81115f6..9d2c7d09fa 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -19,7 +19,7 @@ source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=%(version)s/ builddependencies = [ ('Bison', '3.0.4'), - ('Perl', '5.20.3', '-bare'), + ('Perl', '5.20.2', '-bare'), ] dependencies = [ -- GitLab From 829932dc3bf99d8b8e2d2ef618d2dbbee3c41773 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 7 Mar 2016 13:03:16 +0100 Subject: [PATCH 369/732] use %(pyver)s --- .../easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb index 43296c33fb..b441f92cef 100644 --- a/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/s/SWIG/SWIG-3.0.8-intel-2016a-Python-2.7.11.eb @@ -1,6 +1,6 @@ name = 'SWIG' version = '3.0.8' -versionsuffix = '-Python-2.7.11' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://www.swig.org/' description = """SWIG is a software development tool that connects programs written in C and C++ with -- GitLab From 2c5348e808184eb5e4450639d0857b083a54c4b6 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 13:07:22 +0100 Subject: [PATCH 370/732] Fix mutil to copy & rename --- .../m/mutil/mutil-1.822.3-intel-2016a.eb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb index a12dea39eb..545df3ad39 100644 --- a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb +++ b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb @@ -10,12 +10,12 @@ GNU coreutils, which have achieved 10/30x rates on one/many nodes. toolchain = {'name': 'intel', 'version': '2016a'} sources = [ - "coreutils-8.22.tar.xz", + "coreutils-8.22.tar.xz", # must be first SOURCE_TGZ, ] source_urls = [ ('http://sourceforge.net/projects/mutil/files', 'download'), - GNU_SOURCE, + 'http://ftpmirror.gnu.org/coreutils', ] dependencies = [ @@ -24,8 +24,15 @@ dependencies = [ ('libgcrypt', '1.6.5'), ] +builddependencies = [('Automake', '1.14')] + +files_to_copy = [ + (['src/cp', 'src/md5sum'], ['mcp', 'msum'], 'bin'), + (['man/cp.1', 'man/md5sum.1'], ['mcp.1', 'msum.1'], 'man/man1'), +] + sanity_check_paths = { - 'files': ['bin/cp', 'bin/md5sum'], + 'files': ['bin/mcp', 'bin/msum'], 'dirs': ['man/man1'] } -- GitLab From 5489904cf3802ea81f9c90e8c3e0f295c3534c35 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 13:17:17 +0100 Subject: [PATCH 371/732] Add mutil to shift --- easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb index 24ac3912b7..d1522854fe 100644 --- a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb +++ b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb @@ -17,6 +17,7 @@ source_urls = [('http://sourceforge.net/projects/shiftc/files', 'download')] dependencies = [ ('Perl', '5.22.1'), ('bbFTP', '3.2.1'), + ('mutil', '1.822.3'), ] files_to_copy = [(['perl/shiftc', 'perl/shift-mgr', 'perl/shift-aux'], 'bin'), 'etc', (['doc/shiftc.1'], 'man/man1')] -- GitLab From 64b722d1dc9a6fb778a33df127bbe5477c6d545b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 13:25:16 +0100 Subject: [PATCH 372/732] blas/blacs/scalapack fixes --- .../easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 9d2c7d09fa..932461139a 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -34,10 +34,9 @@ dependencies = [ configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' -configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential ' -configopts += '-lmkl_core -Wl,--end-group -lpthread" ' -configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' -configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' +configopts += '--with-blas="-L$BLAS_LIB_DIR $LIBBLAS" ' +configopts += ''--with-blacs="-L$BLACS_LIB_DIR $LIBBLACS" ' +configopts += '--with-scalapack="-L$SCALAPACK_LIB_DIR $LIBSCALAPACK" ' configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' configopts += '--with-pfft-prefix=$EBROOTPFFT --with-mpifftw-prefix=$EBROOTFFTW ' -- GitLab From 88f9c315deedec6896397bd14395e8a02fd4840c Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 13:55:04 +0100 Subject: [PATCH 373/732] typo corrected --- .../easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 932461139a..5501b66a20 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -35,7 +35,7 @@ dependencies = [ configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' configopts += '--with-blas="-L$BLAS_LIB_DIR $LIBBLAS" ' -configopts += ''--with-blacs="-L$BLACS_LIB_DIR $LIBBLACS" ' +configopts += '--with-blacs="-L$BLACS_LIB_DIR $LIBBLACS" ' configopts += '--with-scalapack="-L$SCALAPACK_LIB_DIR $LIBSCALAPACK" ' configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' -- GitLab From a5df502069bc1995e723c9782e7e7bbae8d1aa62 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 14:01:31 +0100 Subject: [PATCH 374/732] {vis}[intel-2016a] FLTK 1.3.3 with libX11 1.6.3 (REVIEW) --- .../FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb | 43 +++++++++++++++++++ .../l/libGLU/libGLU-9.0.0-intel-2016a.eb | 24 +++++++++++ .../libXcursor-1.1.14-intel-2016a.eb | 29 +++++++++++++ .../libXinerama-1.1.3-intel-2016a.eb | 31 +++++++++++++ .../xineramaproto-1.2.1-intel-2016a.eb | 19 ++++++++ .../x/xprop/xprop-1.2.2-intel-2016a.eb | 26 +++++++++++ 6 files changed, 172 insertions(+) create mode 100644 easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb create mode 100644 easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/xprop/xprop-1.2.2-intel-2016a.eb diff --git a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 0000000000..9929d550c8 --- /dev/null +++ b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,43 @@ +# +# author: Dina Mahmoud Ibrahim ( Cairo University ) +# +easyblock = 'ConfigureMake' + +name = 'FLTK' +version = '1.3.3' + +libx11 = 'libX11' +libxver = '1.6.3' +versionsuffix = '-%s-%s' % (libx11, libxver) + +homepage = 'http://www.fltk.org' +description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, + and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL + and its built-in GLUT emulation.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = ['%(namelower)s-%(version)s-source.tar.gz'] +source_urls = ['http://fltk.org/pub/%(namelower)s/%(version)s/'] + + +dependencies = [ + (libx11, libxver), + ('libXcursor', '1.1.14'), + ('libXinerama', '1.1.3'), + ('Tcl', '8.6.4'), + ('Tk', '8.6.4', versionsuffix), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libpng', '1.6.21'), + ('libjpeg-turbo', '1.4.2'), + ('xprop', '1.2.2'), +] + +sanity_check_paths = { + 'files': ['bin/fltk-config','bin/fluid'], + 'dirs': ['lib'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-intel-2016a.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-intel-2016a.eb new file mode 100644 index 0000000000..46c9710adc --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libGLU' +version = '9.0.0' + +homepage = 'ftp://ftp.freedesktop.org/pub/mesa/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = ['ftp://ftp.freedesktop.org/pub/mesa/glu/'] +sources = ['glu-%(version)s.tar.bz2'] + +dependencies = [ + ('Mesa', '11.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libGLU.so.1'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb b/easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb new file mode 100644 index 0000000000..e7e9608bd8 --- /dev/null +++ b/easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libXcursor' +version = '1.1.14' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Cursor management library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXfixes', '5.0.1'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['include/X11/Xcursor/Xcursor.h', 'lib/libXcursor.%s' % SHLIB_EXT, 'lib/libXcursor.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb new file mode 100644 index 0000000000..5963374589 --- /dev/null +++ b/easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXinerama' +version = '1.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Xinerama multiple monitor library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('xineramaproto', '1.2.1'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXinerama.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb new file mode 100644 index 0000000000..d198aa80e4 --- /dev/null +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'xineramaproto' +version = '1.2.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers for xinerama" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/panoramiXproto.h'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xprop/xprop-1.2.2-intel-2016a.eb b/easybuild/easyconfigs/x/xprop/xprop-1.2.2-intel-2016a.eb new file mode 100644 index 0000000000..2da94927e9 --- /dev/null +++ b/easybuild/easyconfigs/x/xprop/xprop-1.2.2-intel-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'xprop' +version = '1.2.2' + +homepage = "http://www.x.org/wiki/" +description = """The xprop utility is for displaying window and font properties in an X server. + One window or font is selected using the command line arguments or possibly + in the case of a window, by clicking on the desired window. A list of + properties is then given, possibly with formatting information.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://ftp.x.org/archive/individual/app/'] + +builddependencies = [ + ('xorg-macros', '1.19.0'), +] + +sanity_check_paths = { + 'files': ['bin/xprop'], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 23887fcc6a89ba97fc4b5c15dcd37615f5f3cffe Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 14:37:15 +0100 Subject: [PATCH 375/732] {devel}[intel-2016a] Qt 4.8.7 (REVIEW) --- .../easyconfigs/q/Qt/Qt-4.8.7-intel-2016a.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2016a.eb diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2016a.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2016a.eb new file mode 100644 index 0000000000..b51c2c0fac --- /dev/null +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2016a.eb @@ -0,0 +1,24 @@ +name = 'Qt' +version = '4.8.7' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +patches = ['Qt-%(version)s_phonon-export.patch'] + +dependencies = [ + ('GLib', '2.47.5'), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXrender', '0.9.9'), +] + +moduleclass = 'devel' -- GitLab From 99e3a7528420d32bb228d76261515f61f0a02766 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Mon, 7 Mar 2016 14:55:35 +0100 Subject: [PATCH 376/732] {math}[intel-2016a] Qhull 2015.2 (REVIEW) --- .../q/Qhull/Qhull-2015.2-intel-2016a.eb | 37 ++++++++++++++++++ .../q/Qhull/Qhull-2015.2-intel-fix.patch | 39 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-fix.patch diff --git a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb new file mode 100644 index 0000000000..67f36525e6 --- /dev/null +++ b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'Qhull' +version = '2015.2' + +homepage = 'http://www.qhull.org' +description = """ +Qhull computes the convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, +furthest-site Delaunay triangulation, and furthest-site Voronoi diagram. The source code runs in 2-d, 3-d, 4-d, +and higher dimensions. Qhull implements the Quickhull algorithm for computing the convex hull. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +#recently checkged the Unix version numbering see https://github.com/Homebrew/homebrew-science/issues/3353 +sources = ['%(namelower)s-2015-src-7.2.0.tgz'] +source_urls = ['http://www.qhull.org/download/'] + +patches = [ + 'Qhull-%(version)s-intel-fix.patch', + 'Qhull_pkgconfig.patch', +] + +builddependencies = [('CMake', '3.4.3')] + +sanity_check_paths = { + 'files': ['bin/qhull', 'lib/libqhull.%s' % SHLIB_EXT, 'lib/pkgconfig/qhull.pc'], + 'dirs': [], +} + +modextrapaths = { + 'CPATH': ['qhull/include'], +} + +parallel = 1 + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-fix.patch b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-fix.patch new file mode 100644 index 0000000000..d38ea52b0a --- /dev/null +++ b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-fix.patch @@ -0,0 +1,39 @@ +# they use some weird template thing in pure C code to avoid +# warnings, I think, but only for intel compilers +# We remove the special case for intel and use the general one +# Ward Poelmans +diff -ru qhull-2012.1.orig/src/libqhull/qhull_a.h qhull-2012.1/src/libqhull/qhull_a.h +--- qhull-2015.2/src/libqhull/qhull_a.h.orig 2016-01-18 14:32:14.000000000 +0100 ++++ qhull-2015.2/src/libqhull/qhull_a.h 2016-03-07 10:42:19.223952420 +0100 +@@ -101,13 +101,7 @@ + + */ + +-#if defined(__cplusplus) && defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN) +-template +-inline void qhullUnused(T &x) { (void)x; } +-# define QHULL_UNUSED(x) qhullUnused(x); +-#else +-# define QHULL_UNUSED(x) (void)x; +-#endif ++#define QHULL_UNUSED(x) (void)x; + + /***** -libqhull.c prototypes (alphabetical after qhull) ********************/ + +--- qhull-2015.2/src/libqhull_r/qhull_ra.h.orig 2016-01-17 17:06:10.000000000 +0100 ++++ qhull-2015.2/src/libqhull_r/qhull_ra.h 2016-03-07 14:46:03.846048341 +0100 +@@ -101,13 +101,7 @@ + + */ + +-#if defined(__cplusplus) && defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN) +-template +-inline void qhullUnused(T &x) { (void)x; } +-# define QHULL_UNUSED(x) qhullUnused(x); +-#else +-# define QHULL_UNUSED(x) (void)x; +-#endif ++#define QHULL_UNUSED(x) (void)x; + + /***** -libqhull_r.c prototypes (alphabetical after qhull) ********************/ + -- GitLab From d1128a5b76975bfa039380828881b96db206f7b5 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Mon, 7 Mar 2016 15:27:56 +0100 Subject: [PATCH 377/732] added firefox easyconfig --- .../easyconfigs/f/Firefox/Firefox-44.0.2.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/f/Firefox/Firefox-44.0.2.eb diff --git a/easybuild/easyconfigs/f/Firefox/Firefox-44.0.2.eb b/easybuild/easyconfigs/f/Firefox/Firefox-44.0.2.eb new file mode 100644 index 0000000000..21da1fddad --- /dev/null +++ b/easybuild/easyconfigs/f/Firefox/Firefox-44.0.2.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'Firefox' +version = '44.0.2' + +homepage = 'https://www.mozilla.org/en-US/firefox/new/' +description = """Firefox is a free, open source Web browser for Windows, Linux and Mac OS X. It is based on the Mozilla code + base and offers customization options and features such as its capability to block pop-up windows, tabbed browsing, privacy + and security measures, smart searching, and RSS live bookmarks.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://ftp.mozilla.org/pub/firefox/releases/%(version)s/linux-x86_64/en-US/'] +sources = [SOURCELOWER_TAR_BZ2] + +sanity_check_paths = { + 'files': ['firefox'], + 'dirs': [] +} + +# add the installation dir to PATH +modextrapaths = { + 'PATH': "", +} + +moduleclass = 'tools' -- GitLab From a925cd1cdc39f71047190aab6990b66862f7f12f Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 15:35:37 +0100 Subject: [PATCH 378/732] Adjust mutil for easyblock --- easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb index 545df3ad39..4b04365a5a 100644 --- a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb +++ b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb @@ -26,11 +26,6 @@ dependencies = [ builddependencies = [('Automake', '1.14')] -files_to_copy = [ - (['src/cp', 'src/md5sum'], ['mcp', 'msum'], 'bin'), - (['man/cp.1', 'man/md5sum.1'], ['mcp.1', 'msum.1'], 'man/man1'), -] - sanity_check_paths = { 'files': ['bin/mcp', 'bin/msum'], 'dirs': ['man/man1'] -- GitLab From 65a1af206a0010a69602cd53305a5c6278dab88d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 7 Mar 2016 15:39:28 +0100 Subject: [PATCH 379/732] add doSNOW package to R 3.2.3 easyconfigs --- easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb | 1 + easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 1 + 2 files changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb index c3a62add2c..dcabcfedb0 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb @@ -437,6 +437,7 @@ exts_list = [ ('ggm', '2.3', ext_options), ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index eb2673295f..ddf0479c12 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -437,6 +437,7 @@ exts_list = [ ('ggm', '2.3', ext_options), ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), ] moduleclass = 'lang' -- GitLab From f473964495a75dba4ccfc76d99a15a505e05d2c4 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 17:25:39 +0100 Subject: [PATCH 380/732] h5py for HDF5 serial --- ...-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb new file mode 100644 index 0000000000..1366ade8a4 --- /dev/null +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb @@ -0,0 +1,35 @@ +easyblock = "PythonPackage" + +name = 'h5py' +version = '2.5.0' + +homepage = 'http://www.h5py.org/' +description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, + version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous + amounts of data.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': True} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +hdf5ver = '1.8.16' +hdf5versuffix = '-serial' +versionsuffix = '-Python-%%(pyver)s-HDF5-%s%s' % (hdf5ver, hdf5versuffix) + +# to really use mpi enabled hdf5 we now seem to need a configure step +prebuildopts = ' python setup.py configure --mpi --hdf5=$EBROOTHDF5 && ' + +dependencies = [ + ('Python', '2.7.11'), + ('HDF5', hdf5ver, hdf5versuffix), + ('pkgconfig', '1.1.0', '-Python-%(pyver)s'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} + +moduleclass = 'data' -- GitLab From 0039fc555e126d50f029ba45b45656b25e4f9118 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 17:40:27 +0100 Subject: [PATCH 381/732] Don't use MPI in h5py-serial --- .../h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb index 1366ade8a4..68c3c3daaf 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb @@ -18,8 +18,7 @@ hdf5ver = '1.8.16' hdf5versuffix = '-serial' versionsuffix = '-Python-%%(pyver)s-HDF5-%s%s' % (hdf5ver, hdf5versuffix) -# to really use mpi enabled hdf5 we now seem to need a configure step -prebuildopts = ' python setup.py configure --mpi --hdf5=$EBROOTHDF5 && ' +prebuildopts = ' python setup.py configure --hdf5=$EBROOTHDF5 && ' dependencies = [ ('Python', '2.7.11'), -- GitLab From 62238b6b9d58baab900019598d624d8eeb2e70bd Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 17:43:01 +0100 Subject: [PATCH 382/732] Fix shift easyconfig --- easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb index d1522854fe..62fb0dbd9d 100644 --- a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb +++ b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb @@ -1,4 +1,4 @@ -easyblock = 'CmdCp' +easyblock = 'MakeCp' name = 'shift' version = '4.0' @@ -20,8 +20,8 @@ dependencies = [ ('mutil', '1.822.3'), ] +skipsteps = ['build'] files_to_copy = [(['perl/shiftc', 'perl/shift-mgr', 'perl/shift-aux'], 'bin'), 'etc', (['doc/shiftc.1'], 'man/man1')] -cmds_map = [] sanity_check_paths = { 'files': ['bin/shiftc'], -- GitLab From 6dc78e3a90bfe946af01cf276d8fd59116109277 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 17:58:43 +0100 Subject: [PATCH 383/732] Add missing dep --- .../a/Automake/Automake-1.14-intel-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/a/Automake/Automake-1.14-intel-2016a.eb diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.14-intel-2016a.eb b/easybuild/easyconfigs/a/Automake/Automake-1.14-intel-2016a.eb new file mode 100644 index 0000000000..a1f5954bb7 --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.14-intel-2016a.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'Automake' +version = "1.14" + +homepage = 'http://www.gnu.org/software/automake/automake.html' +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('Autoconf', '2.69')] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' -- GitLab From 9f5af1710bca9fc15f41ac3c8b66dacbb4e36501 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 18:01:12 +0100 Subject: [PATCH 384/732] Don't use MPI in -serial for h5py --- .../h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb index 68c3c3daaf..43d2050d00 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb @@ -9,7 +9,6 @@ description = """HDF5 for Python (h5py) is a general-purpose Python interface to amounts of data.""" toolchain = {'name': 'intel', 'version': '2016a'} -toolchainopts = {'usempi': True} source_urls = [PYPI_SOURCE] sources = [SOURCE_TAR_GZ] -- GitLab From e3dad942d607df08b50472e178a41da94693a8be Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 18:05:38 +0100 Subject: [PATCH 385/732] Make all h5py serial consistent --- .../h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb | 2 ++ ....5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 3 ++- .../h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb index c839cbc2dd..f2d854aad2 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb @@ -19,6 +19,8 @@ pythonver = '2.7.9' pythonshortver = '.'.join(pythonver.split('.')[0:2]) versionsuffix = '-%s-%s-serial' % (python, pythonver) +prebuildopts = ' python setup.py configure --hdf5=$EBROOTHDF5 && ' + dependencies = [ (python, pythonver), ('HDF5', '1.8.14', '-serial'), diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb index f070e8c226..6588f01027 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -19,10 +19,11 @@ pyver = '%s.10' % py_maj_min hdf5ver = '1.8.15-patch1' versionsuffix = '-Python-%s-HDF5-%s-serial' % (pyver, hdf5ver) +prebuildopts = ' python setup.py configure --hdf5=$EBROOTHDF5 && ' + dependencies = [ ('Python', pyver), ('HDF5', hdf5ver), - ('pkgconfig', '1.1.0', '-Python-%(pyver)s'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb index 43d2050d00..108d4c4bb8 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb @@ -9,6 +9,7 @@ description = """HDF5 for Python (h5py) is a general-purpose Python interface to amounts of data.""" toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': False} source_urls = [PYPI_SOURCE] sources = [SOURCE_TAR_GZ] @@ -22,7 +23,6 @@ prebuildopts = ' python setup.py configure --hdf5=$EBROOTHDF5 && ' dependencies = [ ('Python', '2.7.11'), ('HDF5', hdf5ver, hdf5versuffix), - ('pkgconfig', '1.1.0', '-Python-%(pyver)s'), ] sanity_check_paths = { -- GitLab From 89039cbf0e0e1562e43ac11459688675f38ff6ce Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Mon, 7 Mar 2016 18:54:14 +0100 Subject: [PATCH 386/732] Add pkg-config as build dep --- .../h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb | 2 ++ ...2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 2 ++ .../h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb | 2 ++ 3 files changed, 6 insertions(+) diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb index f2d854aad2..12d6705dfa 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.4.0-intel-2015a-Python-2.7.9-serial.eb @@ -26,6 +26,8 @@ dependencies = [ ('HDF5', '1.8.14', '-serial'), ] +builddependencies = [('pkgconfig', '1.1.0', '-Python-%(pyver)s')] + sanity_check_paths = { 'files': ['lib/python%s/site-packages/%%(name)s-%%(version)s-py%s-linux-x86_64.egg' % (pythonshortver, pythonshortver)], 'dirs': [], diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb index 6588f01027..7cd0e17232 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -26,6 +26,8 @@ dependencies = [ ('HDF5', hdf5ver), ] +builddependencies = [('pkgconfig', '1.1.0', '-Python-%(pyver)s')] + sanity_check_paths = { 'files': [], 'dirs': ['lib/python%s/site-packages/' % py_maj_min], diff --git a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb index 108d4c4bb8..2f905991c2 100644 --- a/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb +++ b/easybuild/easyconfigs/h/h5py/h5py-2.5.0-intel-2016a-Python-2.7.11-HDF5-1.8.16-serial.eb @@ -25,6 +25,8 @@ dependencies = [ ('HDF5', hdf5ver, hdf5versuffix), ] +builddependencies = [('pkgconfig', '1.1.0', '-Python-%(pyver)s')] + sanity_check_paths = { 'files': [], 'dirs': ['lib/python%(pyshortver)s/site-packages/'], -- GitLab From b6aeea2faca9c3b5b73ac8977472229edf0b445a Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 8 Mar 2016 06:25:37 +1030 Subject: [PATCH 387/732] Added missing libxm2 and ncurses dependencies to gettext --- easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb index 26649681d7..b35aee8501 100644 --- a/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2015b.eb @@ -13,6 +13,11 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = [SOURCE_TAR_GZ] source_urls = [GNU_SOURCE] +dependencies = [ + ('libxml2', '2.9.2'), + ('ncurses', '5.9'), +] + configopts = '--without-emacs' moduleclass = 'vis' -- GitLab From 799ddb504bc88f5ed4dab6bc1e0c02dc96f89786 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Tue, 8 Mar 2016 07:11:43 +1030 Subject: [PATCH 388/732] More consistent sanity checks --- .../easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb | 2 +- .../easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb | 5 +++-- .../easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb | 5 +++-- .../easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb | 5 +++-- .../easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb | 6 +++--- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb index 905088b61a..cff5f57f05 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb @@ -33,7 +33,7 @@ postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.32.jar", "cisd-jhdf5.jar"], + "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.32.jar"], 'dirs': ["Contaminants", "Help", "Templates", "uk"], } diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb index 045b3e4281..ca09cb6324 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb @@ -24,8 +24,9 @@ dependencies = [(java, javaver)] postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { - 'files': ['fastqc'], - 'dirs': [], + 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", + "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar"], + 'dirs': ["Contaminants", "Help", "Templates", "uk", 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb index 6b39ac8445..17029e5d5a 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb @@ -24,8 +24,9 @@ dependencies = [(java, javaver)] postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { - 'files': ['fastqc'], - 'dirs': [], + 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", "LICENSE_JHDF5.txt" + "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar", "cisd-jhdf5.jar"], + 'dirs': ['Configuration', "Contaminants", "Help", "Templates", "uk", 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb index 4b0d9817eb..677e8d7c74 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb @@ -24,8 +24,9 @@ dependencies = [(java, javaver)] postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { - 'files': ['fastqc'], - 'dirs': [], + 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", "LICENSE_JHDF5.txt" + "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar", "cisd-jhdf5.jar"], + 'dirs': ['Configuration', "Contaminants", "Help", "Templates", "uk", 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb index 64fb816e8d..ddfb27a3db 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb @@ -24,9 +24,9 @@ dependencies = [(java, javaver)] postinstallcmds = ['chmod +x %(installdir)s/fastqc'] sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.32.jar", "cisd-jhdf5.jar"], - 'dirs': ["Contaminants", "Help", "Templates", "uk"], + 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", "LICENSE_JHDF5.txt" + "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar", "cisd-jhdf5.jar"], + 'dirs': ['Configuration', "Contaminants", "Help", "Templates", "uk", 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] -- GitLab From 73d1c4958ce4a18957efa2887cc148724694cce6 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 7 Mar 2016 23:09:40 +0000 Subject: [PATCH 389/732] Initial version --- .../BamUtil-libStatGen-1.0.13-foss-2015b.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb diff --git a/easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb b/easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb new file mode 100644 index 0000000000..ceee101f27 --- /dev/null +++ b/easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Adam Huffman +# adam.huffman@crick.ac.uk +# The Francis Crick Institute +# +# This is the version bundled with the libStatGen library + +name = 'BamUtil' +version = '1.0.13' +versionsuffix = 'libStatGen' + +easyblock = 'MakeCp' + +homepage = 'http://genome.sph.umich.edu/wiki/BamUtil' +description = """BamUtil is a repository that contains several programs + that perform operations on SAM/BAM files. All of these programs + are built into a single executable, bam.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(name)sLibStatGen.%(version)s.tgz'] +source_urls = ['http://genome.sph.umich.edu/w/images/7/70/'] + +files_to_copy = ["bamUtil/bin", "libStatGen"] + +sanity_check_paths = { + 'files': ["bin/bam"], + 'dirs': ["libStatGen"], +} + +moduleclass = 'bio' -- GitLab From 4fe7c4af6ce486e86d3175e9572273b778518a9a Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 09:03:41 +0100 Subject: [PATCH 390/732] {vis}[intel-2016a] gnuplot 5.0.3 (REVIEW) --- .../g/gnuplot/gnuplot-5.0.3-intel-2016a.eb | 42 +++++++++++++++++++ .../l/libcerf/libcerf-1.4-intel-2016a.eb | 28 +++++++++++++ .../l/libgd/libgd-2.1.1-intel-2016a.eb | 26 ++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libgd/libgd-2.1.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-intel-2016a.eb b/easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-intel-2016a.eb new file mode 100644 index 0000000000..131131cfee --- /dev/null +++ b/easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-intel-2016a.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-97.html +## +easyblock = 'ConfigureMake' + +name = 'gnuplot' +version = '5.0.3' + +homepage = 'http://gnuplot.sourceforge.net/' +description = """Portable interactive, function plotting utility""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/gnuplot/files', 'download')] + +dependencies = [ + ('cairo', '1.14.6'), + ('libjpeg-turbo', '1.4.2'), + ('libpng', '1.6.21'), + ('libgd', '2.1.1'), + ('Pango', '1.39.0'), + ('libcerf', '1.4'), + ('Qt', '4.8.7'), +] + +configopts = '--with-qt=qt4 ' + +sanity_check_paths = { + 'files': ['bin/gnuplot'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb b/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb new file mode 100644 index 0000000000..0d21d9de2a --- /dev/null +++ b/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libcerf' +version = '1.4' + +homepage = 'http://gnuplot.sourceforge.net/' +description = """libcerf is a self-contained numeric library that provides an efficient and accurate + implementation of complex error functions, along with Dawson, Faddeeva, and Voigt functions.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TGZ] +source_urls = [ + 'http://apps.jcns.fz-juelich.de/src/libcerf/' + 'http://apps.jcns.fz-juelich.de/src/libcerf/old' +] + +builddependencies = [ + ('Autotools', '20150215'), + ('libtool', '2.4.6'), +] + +sanity_check_paths = { + 'files': ['lib/libcerf.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/libgd/libgd-2.1.1-intel-2016a.eb b/easybuild/easyconfigs/l/libgd/libgd-2.1.1-intel-2016a.eb new file mode 100644 index 0000000000..6e0e817251 --- /dev/null +++ b/easybuild/easyconfigs/l/libgd/libgd-2.1.1-intel-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libgd' +version = '2.1.1' + +homepage = 'http://libgd.bitbucket.org/' +description = "GD is an open source code library for the dynamic creation of images by programmers." + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://bitbucket.org/libgd/gd-libgd/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('fontconfig', '2.11.94'), + ('libjpeg-turbo', '1.4.2'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ["lib/libgd.a", "lib/libgd.%s" % SHLIB_EXT], + 'dirs': ["bin", "include"], +} + +moduleclass = 'lib' -- GitLab From 6a287dac3c85a3cca4211fbb0233bb4b6f4ae143 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 09:16:12 +0100 Subject: [PATCH 391/732] commas fixed in libcerf --- easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb b/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb index 0d21d9de2a..e0a93e776c 100644 --- a/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libcerf/libcerf-1.4-intel-2016a.eb @@ -11,8 +11,8 @@ toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TGZ] source_urls = [ - 'http://apps.jcns.fz-juelich.de/src/libcerf/' - 'http://apps.jcns.fz-juelich.de/src/libcerf/old' + 'http://apps.jcns.fz-juelich.de/src/libcerf/', + 'http://apps.jcns.fz-juelich.de/src/libcerf/old', ] builddependencies = [ -- GitLab From ff58f5a467379cd7ec1f7b319b30696b83a8e9ee Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 09:36:18 +0100 Subject: [PATCH 392/732] back to explicit blas/blacs/scalapack and fftw version fixes --- .../easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb | 4 ++-- ...-2015b.eb => FFTW-3.3.4-intel-2015b-PFFT-20150905.eb} | 7 ++++--- ...FFT-20150905.patch => FFTW_3.3.4-PFFT-20150905.patch} | 0 .../o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 9 +++++---- 4 files changed, 11 insertions(+), 9 deletions(-) rename easybuild/easyconfigs/f/FFTW/{FFTW-3.3.4-p2-intel-2015b.eb => FFTW-3.3.4-intel-2015b-PFFT-20150905.eb} (91%) rename easybuild/easyconfigs/f/FFTW/{FFTW_3.3.4-p2_PFFT-20150905.patch => FFTW_3.3.4-PFFT-20150905.patch} (100%) diff --git a/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb b/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb index 1e01d1ca9a..0e4a07c55e 100644 --- a/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb +++ b/easybuild/easyconfigs/e/ETSF_IO/ETSF_IO-1.0.4-intel-2015b.eb @@ -21,8 +21,8 @@ source_urls = ['http://www.etsf.eu/system/files'] sources = [SOURCELOWER_TAR_GZ] configopts = "--with-netcdf-prefix=$EBROOTNETCDF " -configopts += "--with-netcdf-libs='-L$EBROOTNETCDF/lib -lnetcdf -lnetcdff' " -configopts += " --with-netcdf-incs='-I$EBROOTNETCDF/include'" +configopts += "--with-netcdf-libs='-L$EBROOTNETCDF/lib -L$EBROOTNETCDFMINFORTRAN/lib -lnetcdf -lnetcdff' " +configopts += " --with-netcdf-incs='-I$EBROOTNETCDF/include -I$EBROOTNETCDFMINFORTRAN/include '" dependencies = [ ('netCDF', '4.3.3.1'), diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb similarity index 91% rename from easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb rename to easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb index 2c340edd6e..80bd65820f 100644 --- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-p2-intel-2015b.eb +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb @@ -1,7 +1,8 @@ easyblock = 'ConfigureMake' name = 'FFTW' -version = '3.3.4-p2' +version = '3.3.4' +versionsuffix = '-PFFT-20150905' homepage = 'http://www.fftw.org' description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) @@ -10,10 +11,10 @@ description = """FFTW is a C subroutine library for computing the discrete Fouri toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True, 'pic': True} -sources = ['%s-%s.tar.gz' % (name.lower(), version.split("-")[0])] +sources = [ source_urls = [homepage] -patches = ['%(name)s_%(version)s_PFFT-20150905.patch'] +patches = ['%(name)s_%(version)s%s.patch' % versionsuffix] builddependencies = [ ('Autotools', '20150215'), diff --git a/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2_PFFT-20150905.patch b/easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-PFFT-20150905.patch similarity index 100% rename from easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-p2_PFFT-20150905.patch rename to easybuild/easyconfigs/f/FFTW/FFTW_3.3.4-PFFT-20150905.patch diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 5501b66a20..5f7abe5f1f 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -26,7 +26,7 @@ dependencies = [ ('libxc', '2.2.2'), ('netCDF', '4.3.3.1'), ('netCDF-Fortran', '4.4.2'), - ('FFTW', '3.3.4-p2'), + ('FFTW', '3.3.4', '-PFFT-20150905'), ('PFFT', '1.0.8-alpha'), ('ETSF_IO', '1.0.4'), ('GSL', '1.16'), @@ -34,9 +34,10 @@ dependencies = [ configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' -configopts += '--with-blas="-L$BLAS_LIB_DIR $LIBBLAS" ' -configopts += '--with-blacs="-L$BLACS_LIB_DIR $LIBBLACS" ' -configopts += '--with-scalapack="-L$SCALAPACK_LIB_DIR $LIBSCALAPACK" ' +configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential' +configopts += ' -lmkl_core -Wl,--end-group -lpthread" ' +configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' +configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' configopts += '--with-pfft-prefix=$EBROOTPFFT --with-mpifftw-prefix=$EBROOTFFTW ' -- GitLab From 99f95e5050d0a504db3893198bcdcf068d4e4933 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 09:56:13 +0100 Subject: [PATCH 393/732] space corrected --- .../easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb index 9929d550c8..ff45e5cf97 100644 --- a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb @@ -36,7 +36,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['bin/fltk-config','bin/fluid'], + 'files': ['bin/fltk-config', 'bin/fluid'], 'dirs': ['lib'], } -- GitLab From fdfbe72fffe6f8fcd21250b3140b301796cf74f6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 09:56:42 +0100 Subject: [PATCH 394/732] fix style & sync issues in FastQC easyconfigs --- .../f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb | 12 +++++++----- .../f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb | 10 ++++++---- .../f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb | 10 ++++++---- .../f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb | 10 ++++++---- .../f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb | 10 ++++++---- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb index cff5f57f05..dd8206547e 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb @@ -6,7 +6,7 @@ # License:: MIT/GPL # ## -easyblock = "PackedBinary" +easyblock = 'PackedBinary' name = 'FastQC' version = '0.10.1' @@ -29,12 +29,14 @@ javaver = '1.7.0_80' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ['chmod +x %(installdir)s/fastqc'] +postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +modextrapaths = {'PATH': ['']} sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.32.jar"], - 'dirs': ["Contaminants", "Help", "Templates", "uk"], + 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', + 'README.txt', 'RELEASE_NOTES.txt', 'run_fastqc.bat', 'sam-1.32.jar'], + 'dirs': ['Contaminants', 'Help', 'Templates', 'uk'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb index ca09cb6324..bfe51bfeb2 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb @@ -21,12 +21,14 @@ javaver = '1.7.0_60' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ['chmod +x %(installdir)s/fastqc'] +postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +modextrapaths = {'PATH': ['']} sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar"], - 'dirs': ["Contaminants", "Help", "Templates", "uk", 'net', 'org'], + 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', + 'README.txt', 'RELEASE_NOTES.txt', 'run_fastqc.bat', 'sam-1.103.jar'], + 'dirs': ['Configuration', 'Help', 'Templates', 'uk', 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb index 17029e5d5a..6cc20e3f8a 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb @@ -21,12 +21,14 @@ javaver = '1.7.0_80' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ['chmod +x %(installdir)s/fastqc'] +postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +modextrapaths = {'PATH': ['']} sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", "LICENSE_JHDF5.txt" - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar", "cisd-jhdf5.jar"], - 'dirs': ['Configuration', "Contaminants", "Help", "Templates", "uk", 'net', 'org'], + 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', 'LICENSE_JHDF5.txt', + 'README.txt', 'RELEASE_NOTES.txt', 'run_fastqc.bat', 'sam-1.103.jar', 'cisd-jhdf5.jar'], + 'dirs': ['Configuration', 'Help', 'Templates', 'uk', 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb index 677e8d7c74..7046190a29 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb @@ -21,12 +21,14 @@ javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ['chmod +x %(installdir)s/fastqc'] +postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +modextrapaths = {'PATH': ['']} sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", "LICENSE_JHDF5.txt" - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar", "cisd-jhdf5.jar"], - 'dirs': ['Configuration', "Contaminants", "Help", "Templates", "uk", 'net', 'org'], + 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', 'LICENSE_JHDF5.txt', + 'README.txt', 'RELEASE_NOTES.txt', 'run_fastqc.bat', 'sam-1.103.jar', 'cisd-jhdf5.jar'], + 'dirs': ['Configuration', 'Help', 'Templates', 'uk', 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb index ddfb27a3db..231ac6979f 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb @@ -21,12 +21,14 @@ javaver = '1.8.0_74' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ['chmod +x %(installdir)s/fastqc'] +postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] + +modextrapaths = {'PATH': ['']} sanity_check_paths = { - 'files': ["fastqc", "fastqc_icon.ico", "INSTALL.txt", "jbzip2-0.9.jar", "LICENSE.txt", "LICENSE_JHDF5.txt" - "README.txt", "RELEASE_NOTES.txt", "run_fastqc.bat", "sam-1.103.jar", "cisd-jhdf5.jar"], - 'dirs': ['Configuration', "Contaminants", "Help", "Templates", "uk", 'net', 'org'], + 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', 'LICENSE_JHDF5.txt', + 'README.txt', 'RELEASE_NOTES.txt', 'run_fastqc.bat', 'sam-1.103.jar', 'cisd-jhdf5.jar'], + 'dirs': ['Configuration', 'Help', 'Templates', 'uk', 'net', 'org'], } sanity_check_commands = [('fastqc', '-v')] -- GitLab From 92820a52fbe08d5f5c6ed49ef55527faec620549 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 10:07:43 +0100 Subject: [PATCH 395/732] blas/blacs/scalapack issues part III --- .../easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb | 2 +- .../easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb index 80bd65820f..51541a8e59 100644 --- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb @@ -14,7 +14,7 @@ toolchainopts = {'optarch': True, 'pic': True} sources = [ source_urls = [homepage] -patches = ['%(name)s_%(version)s%s.patch' % versionsuffix] +patches = ['%(name)s_%(version)s%(versionsuffix)s.patch'] builddependencies = [ ('Autotools', '20150215'), diff --git a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb index 5f7abe5f1f..e3cd54d745 100644 --- a/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb +++ b/easybuild/easyconfigs/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -34,8 +34,7 @@ dependencies = [ configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' -configopts += '--with-blas="-L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential' -configopts += ' -lmkl_core -Wl,--end-group -lpthread" ' +configopts += '--with-blas="-L$BLAS_LIB_DIR $LIBBLAS" ' configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' -- GitLab From dcabe8e69077cee6c19e782143be8baeb779c389 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 10:13:50 +0100 Subject: [PATCH 396/732] Tck/Tk dep deleted --- ...el-2016a-libX11-1.6.3.eb => FLTK-1.3.3-intel-2016a.eb} | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) rename easybuild/easyconfigs/f/FLTK/{FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb => FLTK-1.3.3-intel-2016a.eb} (85%) diff --git a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a.eb similarity index 85% rename from easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb rename to easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a.eb index ff45e5cf97..97b3b63c16 100644 --- a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-intel-2016a.eb @@ -6,10 +6,6 @@ easyblock = 'ConfigureMake' name = 'FLTK' version = '1.3.3' -libx11 = 'libX11' -libxver = '1.6.3' -versionsuffix = '-%s-%s' % (libx11, libxver) - homepage = 'http://www.fltk.org' description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL @@ -23,11 +19,9 @@ source_urls = ['http://fltk.org/pub/%(namelower)s/%(version)s/'] dependencies = [ - (libx11, libxver), + ('libX11', '1.6.3'), ('libXcursor', '1.1.14'), ('libXinerama', '1.1.3'), - ('Tcl', '8.6.4'), - ('Tk', '8.6.4', versionsuffix), ('Mesa', '11.1.2'), ('libGLU', '9.0.0'), ('libpng', '1.6.21'), -- GitLab From 35e5db373f1eafd352cedca92094117eac01c409 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 10:19:06 +0100 Subject: [PATCH 397/732] fix libxml2 conflict --- easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb index 1a6974652c..d439d240eb 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb @@ -15,8 +15,8 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), - ('libxml2', '2.9.2'), + ('libxml2', '2.9.3', '-Python-2.7.11'), ] -builddependencies = [('Python', '2.7.10')] +builddependencies = [('Python', '2.7.11')] moduleclass = 'vis' -- GitLab From edaa152bd88b122534a0ea45f264dfe9793edb4f Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 10:29:23 +0100 Subject: [PATCH 398/732] comment corrected --- easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb index 67f36525e6..0261adb42f 100644 --- a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb +++ b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb @@ -12,7 +12,8 @@ and higher dimensions. Qhull implements the Quickhull algorithm for computing th toolchain = {'name': 'intel', 'version': '2016a'} -#recently checkged the Unix version numbering see https://github.com/Homebrew/homebrew-science/issues/3353 +# Recently changed the Unix version numbering see http://www.qhull.org/src/Changes.txt +# and https://github.com/Homebrew/homebrew-science/issues/3353 sources = ['%(namelower)s-2015-src-7.2.0.tgz'] source_urls = ['http://www.qhull.org/download/'] -- GitLab From 23e89aadc1658f84565030679b8730418ea924d5 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 10:52:19 +0100 Subject: [PATCH 399/732] version problems --- easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb index 0261adb42f..0fcce0e702 100644 --- a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb +++ b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} # Recently changed the Unix version numbering see http://www.qhull.org/src/Changes.txt # and https://github.com/Homebrew/homebrew-science/issues/3353 -sources = ['%(namelower)s-2015-src-7.2.0.tgz'] +sources = ['%(namelower)s-%(version_major)-src-7.%(version_minor).0.tgz'] source_urls = ['http://www.qhull.org/download/'] patches = [ -- GitLab From 9e66df1369e5d31eb98dac9882ef648659f760ac Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 10:55:44 +0100 Subject: [PATCH 400/732] fftw source corrected --- .../easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb index 51541a8e59..d127590485 100644 --- a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.4-intel-2015b-PFFT-20150905.eb @@ -11,7 +11,7 @@ description = """FFTW is a C subroutine library for computing the discrete Fouri toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True, 'pic': True} -sources = [ +sources = [SOURCELOWER_TAR_GZ] source_urls = [homepage] patches = ['%(name)s_%(version)s%(versionsuffix)s.patch'] -- GitLab From fd4a651e488f06b79db7c47991207fac6005faec Mon Sep 17 00:00:00 2001 From: perettig Date: Tue, 8 Mar 2016 10:57:54 +0100 Subject: [PATCH 401/732] add virtualenv for python 2.7.11 --- easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2015a.eb | 3 +++ easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2016a.eb | 3 +++ easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb | 3 +++ .../p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb | 3 +++ easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb | 3 +++ 5 files changed, 15 insertions(+) diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2015a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2015a.eb index 34c45f4ac7..b360b95e8c 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2015a.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2015a.eb @@ -126,6 +126,9 @@ exts_list = [ 'source_tmpl': '%(name)s-%(version)s.zip', 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2016a.eb index deaca9e5fd..2556554c13 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-foss-2016a.eb @@ -126,6 +126,9 @@ exts_list = [ 'source_tmpl': '%(name)s-%(version)s.zip', 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb index 74d0c82b50..3976e80bf2 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2015b.eb @@ -129,6 +129,9 @@ exts_list = [ 'source_tmpl': '%(name)s-%(version)s.zip', 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb index 87032c0ef5..62884700e2 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb @@ -131,6 +131,9 @@ exts_list = [ 'source_tmpl': '%(name)s-%(version)s.zip', 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb index 6819a492c9..1ecb34bdf1 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-intel-2016a.eb @@ -129,6 +129,9 @@ exts_list = [ 'source_tmpl': '%(name)s-%(version)s.zip', 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), ] moduleclass = 'lang' -- GitLab From 21dd43f705080266b128fc592da7e12870d4584c Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 11:02:13 +0100 Subject: [PATCH 402/732] {tools}[intel-2016a] GLPK 4.58 (REVIEW) --- .../g/GLPK/GLPK-4.58-intel-2016a.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLPK/GLPK-4.58-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/GLPK/GLPK-4.58-intel-2016a.eb b/easybuild/easyconfigs/g/GLPK/GLPK-4.58-intel-2016a.eb new file mode 100644 index 0000000000..07ed2e7997 --- /dev/null +++ b/easybuild/easyconfigs/g/GLPK/GLPK-4.58-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'GLPK' +version = '4.58' + +homepage = 'https://www.gnu.org/software/glpk/' +description = """The GLPK (GNU Linear Programming Kit) package is intended for + solving large-scale linear programming (LP), + mixed integer programming (MIP), and other related problems. + It is a set of routines written in ANSI C + and organized in the form of a callable library.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://ftp.gnu.org/gnu/%(namelower)s/'] + +dependencies = [('GMP', '6.1.0')] + +configopts = "--with-gmp" + +sanity_check_paths = { + 'files': ['bin/glpsol', 'include/glpk.h'] + + ['lib/libglpk.%s' % x for x in [SHLIB_EXT, 'a']], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From c316d78c2ab2c50039f5a85d1f4426fe4d0a0aba Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 11:34:17 +0100 Subject: [PATCH 403/732] intermezzo --- .../f/freeglut/freeglut-3.0.0-intel-2016a.eb | 26 ++++++++++++++++ .../g/GL2PS/GL2PS-1.3.9-intel-2016a.eb | 30 ++++++++++++++++++ .../l/libXi/libXi-1.7.6-intel-2016a.eb | 30 ++++++++++++++++++ .../libXrandr/libXrandr-1.5.0-intel-2016a.eb | 31 +++++++++++++++++++ .../randrproto-1.5.0-intel-2016a.eb | 19 ++++++++++++ 5 files changed, 136 insertions(+) create mode 100644 easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb new file mode 100644 index 0000000000..50285c0962 --- /dev/null +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'CMakeMake' + +name = 'freeglut' +version = '3.0.0' + +homepage = 'http://freeglut.sourceforge.net/' +description = "freeglut is a completely OpenSourced alternative to the OpenGL Utility Toolkit (GLUT) library." + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(name)s'] + +builddependencies = [('CMake', '3.4.3')] + +dependencies = [ + ('libXi', '1.7.6'), + ('libXrandr', '1.5.0'), +] + +sanity_check_paths = { + 'files': ['lib64/libglut.a', 'lib64/libglut.%s' % SHLIB_EXT], + 'dirs': ['include/GL'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb new file mode 100644 index 0000000000..640e02a1af --- /dev/null +++ b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'CMakeMake' + +name = 'GL2PS' +version = '1.3.9' + +homepage = 'http://www.geuz.org/gl2ps/' +description = """GL2PS: an OpenGL to PostScript printing library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geuz.org/gl2ps/src/'] +sources = [SOURCELOWER_TGZ] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXi', '1.7.6'), + ('libXmu', '1.1.2'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('freeglut', '3.0.0'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['include/gl2ps.h', 'lib/libgl2ps.so'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb new file mode 100644 index 0000000000..265985f5e5 --- /dev/null +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' +name = 'libXi' +version = '1.7.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """LibXi provides an X Window System client interface to the XINPUT extension to the X protocol.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('inputproto', '2.3.1'), + ('xorg-macros', '1.19.0'), +] + +dependencies = [ + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/XInput.h', 'include/X11/extensions/XInput2.h', 'lib/libXi.%s' % SHLIB_EXT, 'lib/libXi.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb b/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb new file mode 100644 index 0000000000..d7c99042a3 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXrandr' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Resize, Rotate and Reflection extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('randrproto', '1.5.0'), + ('renderproto', '0.11'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXrandr.%s' % SHLIB_EXT, 'lib/libXrandr.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb new file mode 100644 index 0000000000..278cc7bbbf --- /dev/null +++ b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'randrproto' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrandr protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From ed0d9428cc22e8503c90334a23b7fdce933f00ff Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 11:35:18 +0100 Subject: [PATCH 404/732] ssssss.... --- easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb index 0fcce0e702..4b32731c89 100644 --- a/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb +++ b/easybuild/easyconfigs/q/Qhull/Qhull-2015.2-intel-2016a.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} # Recently changed the Unix version numbering see http://www.qhull.org/src/Changes.txt # and https://github.com/Homebrew/homebrew-science/issues/3353 -sources = ['%(namelower)s-%(version_major)-src-7.%(version_minor).0.tgz'] +sources = ['%(namelower)s-%(version_major)s-src-7.%(version_minor)s.0.tgz'] source_urls = ['http://www.qhull.org/download/'] patches = [ -- GitLab From 165a9dcdce97de0b25aeb446876292c37e5d8e93 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 11:38:58 +0100 Subject: [PATCH 405/732] PFFT FFTW name corrected --- easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb b/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb index 4e9dda8fed..cbbba0ee73 100644 --- a/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb +++ b/easybuild/easyconfigs/p/PFFT/PFFT-1.0.8-alpha-intel-2015b.eb @@ -15,7 +15,7 @@ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.tu-chemnitz.de/~potts/workgroup/pippig/software/'] dependencies = [ - ('FFTW', '3.3.4-p2'), + ('FFTW', '3.3.4', '-PFFT-20150905'), ('Autotools', '20150215'), ] -- GitLab From 2f7107a4a43e5988e7f71ae6667ba42df3851c52 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 11:50:07 +0100 Subject: [PATCH 406/732] fix GLib/Python version conflict --- .../GLib-2.46.0-intel-2015b-Python-2.7.11.eb | 24 +++++++++++++++++++ .../g/GLib/GLib-2.46.0-intel-2015b.eb | 4 ++-- .../Qt/Qt-4.8.7-intel-2015b-Python-2.7.11.eb | 2 +- .../Qt5/Qt5-5.5.1-intel-2015b-Mesa-11.0.8.eb | 2 +- 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b-Python-2.7.11.eb new file mode 100644 index 0000000000..a273876d40 --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.46.0' +pyver = '2.7.11' +versionsuffix = '-Python-%s' % pyver + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.6'), + ('libxml2', '2.9.3', versionsuffix), +] +builddependencies = [('Python', pyver)] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb index d439d240eb..dfa82e6a76 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb @@ -15,8 +15,8 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), - ('libxml2', '2.9.3', '-Python-2.7.11'), + ('libxml2', '2.9.3', '-Python-2.7.10'), ] -builddependencies = [('Python', '2.7.11')] +builddependencies = [('Python', '2.7.10')] moduleclass = 'vis' diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2015b-Python-2.7.11.eb index 9f56d8e9fb..de2e107422 100644 --- a/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-intel-2015b-Python-2.7.11.eb @@ -16,7 +16,7 @@ sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] patches = ['Qt-%(version)s_phonon-export.patch'] dependencies = [ - ('GLib', '2.46.0'), + ('GLib', '2.46.0', versionsuffix), ('libX11', '1.6.3', versionsuffix), ('libXt', '1.1.5', versionsuffix), ('libXrender', '0.9.9', versionsuffix), diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.5.1-intel-2015b-Mesa-11.0.8.eb b/easybuild/easyconfigs/q/Qt5/Qt5-5.5.1-intel-2015b-Mesa-11.0.8.eb index 037b082375..f213e54acc 100644 --- a/easybuild/easyconfigs/q/Qt5/Qt5-5.5.1-intel-2015b-Mesa-11.0.8.eb +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.5.1-intel-2015b-Mesa-11.0.8.eb @@ -18,7 +18,7 @@ sources = ['qt-everywhere-opensource-src-%(version)s.tar.xz'] pysuff = '-Python-2.7.11' dependencies = [ - ('GLib', '2.46.0'), + ('GLib', '2.46.0', pysuff), ('libX11', '1.6.3', pysuff), ('libXt', '1.1.5', pysuff), ('libXi', '1.7.4', pysuff), -- GitLab From 642ff13b533609863f3432e8cfdb3f6317bf40ef Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 12:21:25 +0100 Subject: [PATCH 407/732] stick to libxml2 2.9.2 in GLib 2.46.0 easyconfig (w/ Python 2.7.10) --- easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb index dfa82e6a76..1a6974652c 100644 --- a/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GLib/GLib-2.46.0-intel-2015b.eb @@ -15,7 +15,7 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('libffi', '3.2.1'), ('gettext', '0.19.6'), - ('libxml2', '2.9.3', '-Python-2.7.10'), + ('libxml2', '2.9.2'), ] builddependencies = [('Python', '2.7.10')] -- GitLab From 6949836c17ad9cabc49b4c8b7617067e547f2a81 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 13:34:46 +0200 Subject: [PATCH 408/732] add easyconfig Autoconf-2.69-gimkl-2.11.5.eb, add easyconfig Automake-1.15-gimkl-2.11.5.eb, add easyconfig Autotools-20150215-gimkl-2.11.5.eb, add easyconfig GMP-6.1.0-gimkl-2.11.5.eb, add easyconfig Python-2.7.11-gimkl-2.11.5.eb, add easyconfig SQLite-3.9.2-gimkl-2.11.5.eb, add easyconfig libtool-2.4.6-gimkl-2.11.5.eb --- .../a/Autoconf/Autoconf-2.69-gimkl-2.11.5.eb | 26 ++++ .../a/Automake/Automake-1.15-gimkl-2.11.5.eb | 33 +++++ .../Autotools-20150215-gimkl-2.11.5.eb | 17 +++ .../g/GMP/GMP-6.1.0-gimkl-2.11.5.eb | 30 ++++ .../l/libtool/libtool-2.4.6-gimkl-2.11.5.eb | 17 +++ .../p/Python/Python-2.7.11-gimkl-2.11.5.eb | 134 ++++++++++++++++++ .../s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb | 40 ++++++ 7 files changed, 297 insertions(+) create mode 100644 easybuild/easyconfigs/a/Autoconf/Autoconf-2.69-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/a/Automake/Automake-1.15-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20150215-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/g/GMP/GMP-6.1.0-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.6-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.11-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.69-gimkl-2.11.5.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.69-gimkl-2.11.5.eb new file mode 100644 index 0000000000..2a267fa96b --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.69-gimkl-2.11.5.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.15-gimkl-2.11.5.eb b/easybuild/easyconfigs/a/Automake/Automake-1.15-gimkl-2.11.5.eb new file mode 100644 index 0000000000..d521a6ebe2 --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.15-gimkl-2.11.5.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'Automake' +version = "1.15" + +homepage = 'http://www.gnu.org/software/automake/automake.html' +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('Autoconf', '2.69')] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20150215-gimkl-2.11.5.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-gimkl-2.11.5.eb new file mode 100644 index 0000000000..3f48668b12 --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20150215-gimkl-2.11.5.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.1.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/g/GMP/GMP-6.1.0-gimkl-2.11.5.eb new file mode 100644 index 0000000000..3a93d0ea86 --- /dev/null +++ b/easybuild/easyconfigs/g/GMP/GMP-6.1.0-gimkl-2.11.5.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.1.0' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-gimkl-2.11.5.eb new file mode 100644 index 0000000000..03bf53f395 --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-gimkl-2.11.5.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': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.17')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.11-gimkl-2.11.5.eb b/easybuild/easyconfigs/p/Python/Python-2.7.11-gimkl-2.11.5.eb new file mode 100644 index 0000000000..9c41844d2f --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.11-gimkl-2.11.5.eb @@ -0,0 +1,134 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb new file mode 100644 index 0000000000..8d257ce664 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' -- GitLab From 9d19e68f0e6ccbbe6fcfd09dcad6202c4a8efd0f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 13:35:51 +0200 Subject: [PATCH 409/732] add easyconfig CMake-3.4.3-gimkl-2.11.5.eb --- .../c/CMake/CMake-3.4.3-gimkl-2.11.5.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..f5527c16d6 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From ca146e53fc09c370a5d2aa4f1d06bc8fb736bc51 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 13:42:00 +0200 Subject: [PATCH 410/732] add easyconfig fixesproto-5.0-gimkl-2.11.5.eb, add easyconfig fontsproto-2.1.3-gimkl-2.11.5.eb, add easyconfig freetype-2.6.2-gimkl-2.11.5.eb, add easyconfig inputproto-2.3.1-gimkl-2.11.5.eb, add easyconfig kbproto-1.0.7-gimkl-2.11.5.eb, add easyconfig libX11-1.6.3-gimkl-2.11.5.eb, add easyconfig libXau-1.0.8-gimkl-2.11.5.eb, add easyconfig libXdamage-1.1.4-gimkl-2.11.5.eb, add easyconfig libXdmcp-1.1.2-gimkl-2.11.5.eb, add easyconfig libXext-1.3.3-gimkl-2.11.5.eb, add easyconfig libXfixes-5.0.1-gimkl-2.11.5.eb, add easyconfig libXfont-1.5.1-gimkl-2.11.5.eb, add easyconfig libfontenc-1.1.3-gimkl-2.11.5.eb, add easyconfig libpng-1.6.21-gimkl-2.11.5.eb, add easyconfig libpthread-stubs-0.3-gimkl-2.11.5.eb, add easyconfig libxcb-1.11.1-gimkl-2.11.5.eb, add easyconfig xextproto-7.3.0-gimkl-2.11.5.eb, add easyconfig xorg-macros-1.19.0-gimkl-2.11.5.eb, add easyconfig xproto-7.0.28-gimkl-2.11.5.eb, add easyconfig xtrans-1.3.5-gimkl-2.11.5.eb --- .../fixesproto/fixesproto-5.0-gimkl-2.11.5.eb | 19 ++++++++++ .../fontsproto-2.1.3-gimkl-2.11.5.eb | 20 ++++++++++ .../f/freetype/freetype-2.6.2-gimkl-2.11.5.eb | 22 +++++++++++ .../inputproto-2.3.1-gimkl-2.11.5.eb | 19 ++++++++++ .../k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb | 19 ++++++++++ .../l/libX11/libX11-1.6.3-gimkl-2.11.5.eb | 37 +++++++++++++++++++ .../l/libXau/libXau-1.0.8-gimkl-2.11.5.eb | 25 +++++++++++++ .../libXdamage-1.1.4-gimkl-2.11.5.eb | 25 +++++++++++++ .../l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb | 25 +++++++++++++ .../l/libXext/libXext-1.3.3-gimkl-2.11.5.eb | 33 +++++++++++++++++ .../libXfixes/libXfixes-5.0.1-gimkl-2.11.5.eb | 24 ++++++++++++ .../l/libXfont/libXfont-1.5.1-gimkl-2.11.5.eb | 31 ++++++++++++++++ .../libfontenc-1.1.3-gimkl-2.11.5.eb | 23 ++++++++++++ .../l/libpng/libpng-1.6.21-gimkl-2.11.5.eb | 26 +++++++++++++ .../libpthread-stubs-0.3-gimkl-2.11.5.eb | 20 ++++++++++ .../l/libxcb/libxcb-1.11.1-gimkl-2.11.5.eb | 33 +++++++++++++++++ .../xextproto/xextproto-7.3.0-gimkl-2.11.5.eb | 24 ++++++++++++ .../xorg-macros-1.19.0-gimkl-2.11.5.eb | 22 +++++++++++ .../x/xproto/xproto-7.0.28-gimkl-2.11.5.eb | 23 ++++++++++++ .../x/xtrans/xtrans-1.3.5-gimkl-2.11.5.eb | 22 +++++++++++ 20 files changed, 492 insertions(+) create mode 100644 easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/f/freetype/freetype-2.6.2-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libX11/libX11-1.6.3-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libpng/libpng-1.6.21-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-gimkl-2.11.5.eb diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb new file mode 100644 index 0000000000..88fa55c14d --- /dev/null +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'fixesproto' +version = '5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org FixesProto protocol headers.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..0719ec51f4 --- /dev/null +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'fontsproto' +version = '2.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X11 font extension wire protocol" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.6.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-gimkl-2.11.5.eb new file mode 100644 index 0000000000..fec100e1f0 --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-gimkl-2.11.5.eb @@ -0,0 +1,22 @@ +name = 'freetype' +version = '2.6.2' + +homepage = 'http://freetype.org' +description = """FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and + portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display + servers, font conversion tools, text image generation tools, and many other products as well.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('libpng', '1.6.21')] + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, + 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb new file mode 100644 index 0000000000..1a5db1eefa --- /dev/null +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'inputproto' +version = '2.3.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org InputProto protocol headers.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb new file mode 100644 index 0000000000..050b2bda55 --- /dev/null +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..52b296562e --- /dev/null +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-gimkl-2.11.5.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', '', True), + ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xtrans', '1.3.5'), +] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb new file mode 100644 index 0000000000..2e88286d07 --- /dev/null +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-gimkl-2.11.5.eb new file mode 100644 index 0000000000..e140118bf0 --- /dev/null +++ b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-gimkl-2.11.5.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.%s' % SHLIB_EXT, 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb new file mode 100644 index 0000000000..9233da540e --- /dev/null +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] +sanity_check_paths = { + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..9ce9ef676f --- /dev/null +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-gimkl-2.11.5.eb new file mode 100644 index 0000000000..7f710e144e --- /dev/null +++ b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-gimkl-2.11.5.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-gimkl-2.11.5.eb new file mode 100644 index 0000000000..9695dfd53a --- /dev/null +++ b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-gimkl-2.11.5.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXfont' +version = '1.5.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X font libary""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fontsproto', '2.1.3'), + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), + ('xorg-macros', '1.19.0'), + ('libfontenc', '1.1.3'), +] +dependencies = [ + ('libX11', '1.6.3'), + ('freetype', '2.6.2'), +] + +sanity_check_paths = { + 'files': ['lib/libXfont.%s' % SHLIB_EXT, 'lib/libXfont.a'], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..7e68f16635 --- /dev/null +++ b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-gimkl-2.11.5.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.21-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-gimkl-2.11.5.eb new file mode 100644 index 0000000000..9b5b14067a --- /dev/null +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-gimkl-2.11.5.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.21' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +configopts = "--with-pic" + +majminver = ''.join(version.split('.')[:2]) +sanity_check_paths = { + 'files': ['include/pngconf.h', 'include/png.h', 'include/pnglibconf.h', 'lib/libpng.a', + 'lib/libpng.%s' % SHLIB_EXT, 'lib/libpng%s.a' % majminver, 'lib/libpng%s.%s' % (majminver, SHLIB_EXT)], + 'dirs': ['bin', 'include/libpng%s' % majminver, 'share/man'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..b29ddd6099 --- /dev/null +++ b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-gimkl-2.11.5.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpthread-stubs' +version = '0.3' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sanity_check_paths = { + 'files': ['lib/pkgconfig/pthread-stubs.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-gimkl-2.11.5.eb new file mode 100644 index 0000000000..ab5bcf6b38 --- /dev/null +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-gimkl-2.11.5.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('xcb-proto', '1.11', '', True), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), +] +dependencies = [ + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb new file mode 100644 index 0000000000..1800fbf094 --- /dev/null +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-gimkl-2.11.5.eb new file mode 100644 index 0000000000..536fa8c6ff --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-gimkl-2.11.5.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb new file mode 100644 index 0000000000..2591e436f9 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-gimkl-2.11.5.eb new file mode 100644 index 0000000000..4bfb1d13fb --- /dev/null +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-gimkl-2.11.5.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 4b32067d95dc828d21e9b1be3b959669c99164e4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 14:02:49 +0100 Subject: [PATCH 411/732] remove unneeded specs in FastQC easyconfigs --- easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb | 4 +--- easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb | 4 +--- easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb | 4 +--- easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb | 4 +--- easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb | 4 +--- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb index dd8206547e..5441477664 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.10.1-Java-1.7.0_80.eb @@ -29,9 +29,7 @@ javaver = '1.7.0_80' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ["chmod +x %(installdir)s/fastqc"] sanity_check_paths = { 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb index bfe51bfeb2..89f6650b3c 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.2-Java-1.7.0_60.eb @@ -21,9 +21,7 @@ javaver = '1.7.0_60' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ["chmod +x %(installdir)s/fastqc"] sanity_check_paths = { 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb index 6cc20e3f8a..fd7fff1b16 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.3-Java-1.7.0_80.eb @@ -21,9 +21,7 @@ javaver = '1.7.0_80' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ["chmod +x %(installdir)s/fastqc"] sanity_check_paths = { 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', 'LICENSE_JHDF5.txt', diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb index 7046190a29..7c531942b3 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_66.eb @@ -21,9 +21,7 @@ javaver = '1.8.0_66' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ["chmod +x %(installdir)s/fastqc"] sanity_check_paths = { 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', 'LICENSE_JHDF5.txt', diff --git a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb index 231ac6979f..5b6a4d51e9 100644 --- a/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb +++ b/easybuild/easyconfigs/f/FastQC/FastQC-0.11.4-Java-1.8.0_74.eb @@ -21,9 +21,7 @@ javaver = '1.8.0_74' versionsuffix = '-%s-%s' % (java, javaver) dependencies = [(java, javaver)] -postinstallcmds = ["chmod +x %(installdir)s/fastqc %(installdir)s/run_fastqc.bat"] - -modextrapaths = {'PATH': ['']} +postinstallcmds = ["chmod +x %(installdir)s/fastqc"] sanity_check_paths = { 'files': ['fastqc', 'fastqc_icon.ico', 'INSTALL.txt', 'jbzip2-0.9.jar', 'LICENSE.txt', 'LICENSE_JHDF5.txt', -- GitLab From 8f587972c5fb8c57eb837458469e82bbb9dd58c5 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Tue, 8 Mar 2016 15:04:10 +0100 Subject: [PATCH 412/732] Fix remarks --- .../m/mutil/mutil-1.822.3-intel-2016a.eb | 10 +- .../p/Perl/Perl-5.22.1-intel-2016a.eb | 110 +++++++++--------- .../s/shift/shift-4.0-intel-2016a.eb | 2 +- 3 files changed, 63 insertions(+), 59 deletions(-) diff --git a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb index 4b04365a5a..363a280e90 100644 --- a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb +++ b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb @@ -1,5 +1,4 @@ name = 'mutil' -version = '1.822.3' homepage = 'http://people.nas.nasa.gov/~kolano/projects/mutil.html' description = """Mutil is a set of standard utilities that have been parallelized to maximize performance on @@ -9,12 +8,16 @@ GNU coreutils, which have achieved 10/30x rates on one/many nodes. toolchain = {'name': 'intel', 'version': '2016a'} +coreutils_maj = '8' +coreutils_min = '22' +version = '1.%s%s.3' % (coreutils_maj, coreutils_min) + sources = [ - "coreutils-8.22.tar.xz", # must be first + "coreutils-%s.%s.tar.xz" % (coreutils_maj, coreutils_min), # must be first SOURCE_TGZ, ] source_urls = [ - ('http://sourceforge.net/projects/mutil/files', 'download'), + SOURCEFORGE_SOURCE, 'http://ftpmirror.gnu.org/coreutils', ] @@ -24,6 +27,7 @@ dependencies = [ ('libgcrypt', '1.6.5'), ] +# needs 1.14 to work builddependencies = [('Automake', '1.14')] sanity_check_paths = { diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb index b46dec87b6..2729eb6536 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb @@ -7,11 +7,11 @@ description = """Larry Wall's Practical Extraction and Report Language""" toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True, 'pic': True} -source_urls = ['http://www.cpan.org/src/5.0'] +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] sources = [SOURCELOWER_TAR_GZ] exts_list = [ - ('Config::General', '2.58', { + ('Config::General', '2.60', { 'source_tmpl': 'Config-General-2.58.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], }), @@ -27,7 +27,7 @@ exts_list = [ 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), - ('TAP::Harness::Env', '3.35', { + ('TAP::Harness::Env', '3.36', { 'source_tmpl': 'Test-Harness-3.35.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), @@ -47,7 +47,7 @@ exts_list = [ 'source_tmpl': 'Text-Glob-0.09.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], }), - ('Regexp::Common', '2013031301', { + ('Regexp::Common', '2016020301', { 'source_tmpl': 'Regexp-Common-2013031301.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], }), @@ -63,15 +63,15 @@ exts_list = [ 'source_tmpl': 'Test-Fatal-0.014.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('Test::Warnings', '0.021', { + ('Test::Warnings', '0.026', { 'source_tmpl': 'Test-Warnings-0.021.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('DateTime::Locale', '0.46', { + ('DateTime::Locale', '1.02', { 'source_tmpl': 'DateTime-Locale-0.46.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), - ('DateTime::TimeZone', '1.93', { + ('DateTime::TimeZone', '1.95', { 'source_tmpl': 'DateTime-TimeZone-1.93.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -87,11 +87,11 @@ exts_list = [ 'source_tmpl': 'Module-Runtime-0.014.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], }), - ('Try::Tiny', '0.22', { + ('Try::Tiny', '0.24', { 'source_tmpl': 'Try-Tiny-0.22.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], }), - ('Params::Validate', '1.21', { + ('Params::Validate', '1.22', { 'source_tmpl': 'Params-Validate-1.21.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -107,7 +107,7 @@ exts_list = [ 'source_tmpl': 'Class-Singleton-1.5.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], }), - ('DateTime', '1.20', { + ('DateTime', '1.25', { 'source_tmpl': 'DateTime-1.20.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -115,11 +115,11 @@ exts_list = [ 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('Module::Build', '0.4214', { + ('Module::Build', '0.4216', { 'source_tmpl': 'Module-Build-0.4214.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), - ('Readonly', '2.00', { + ('Readonly', '2.01', { 'source_tmpl': 'Readonly-2.00.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SA/SANKO'], }), @@ -127,7 +127,7 @@ exts_list = [ 'source_tmpl': 'Git-0.41.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], }), - ('Tree::DAG_Node', '1.27', { + ('Tree::DAG_Node', '1.29', { 'source_tmpl': 'Tree-DAG_Node-1.27.tgz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], }), @@ -143,7 +143,7 @@ exts_list = [ 'source_tmpl': 'DBI-1.634.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], }), - ('DBD::SQLite', '1.48', { + ('DBD::SQLite', '1.50', { 'source_tmpl': 'DBD-SQLite-1.48.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], }), @@ -159,11 +159,11 @@ exts_list = [ 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/J/JU/JUERD'], }), - ('Shell', '0.72', { + ('Shell', '0.73', { 'source_tmpl': 'Shell-0.72.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], }), - ('File::Spec', '3.47', { + ('File::Spec', '3.62', { 'source_tmpl': 'PathTools-3.47.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], }), @@ -203,7 +203,7 @@ exts_list = [ 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], }), - ('Test::Exception', '0.40', { + ('Test::Exception', '0.43', { 'source_tmpl': 'Test-Exception-0.40.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], }), @@ -211,7 +211,7 @@ exts_list = [ 'source_tmpl': 'Text-Table-1.130.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], }), - ('MIME::Types', '2.11', { + ('MIME::Types', '2.13', { 'source_tmpl': 'MIME-Types-2.11.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], }), @@ -227,7 +227,7 @@ exts_list = [ 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], }), - ('HTML::Parser', '3.71', { + ('HTML::Parser', '3.72', { 'source_tmpl': 'HTML-Parser-3.71.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), @@ -251,7 +251,7 @@ exts_list = [ 'source_tmpl': 'Class-ISA-0.36.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], }), - ('URI', '1.69', { + ('URI', '1.71', { 'source_tmpl': 'URI-1.69.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -271,7 +271,7 @@ exts_list = [ 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], }), - ('Pod::POM', '2.00', { + ('Pod::POM', '2.01', { 'source_tmpl': 'Pod-POM-2.00.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], }), @@ -279,7 +279,7 @@ exts_list = [ 'source_tmpl': 'Math-Round-0.07.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], }), - ('Text::Diff', '1.43', { + ('Text::Diff', '1.44', { 'source_tmpl': 'Text-Diff-1.43.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], }), @@ -287,7 +287,7 @@ exts_list = [ 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BI/BINGOS'], }), - ('IO::Socket::SSL', '2.020', { + ('IO::Socket::SSL', '2.024', { 'source_tmpl': 'IO-Socket-SSL-2.020.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], }), @@ -311,7 +311,7 @@ exts_list = [ 'source_tmpl': 'IO-stringy-2.111.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], }), - ('Getopt::Long', '2.47', { + ('Getopt::Long', '2.48', { 'source_tmpl': 'Getopt-Long-2.47.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], }), @@ -335,7 +335,7 @@ exts_list = [ 'source_tmpl': 'Net-HTTP-6.09.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('Test::Deep', '0.117', { + ('Test::Deep', '1.120', { 'source_tmpl': 'Test-Deep-0.117.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), @@ -347,7 +347,7 @@ exts_list = [ 'source_tmpl': 'MRO-Compat-0.12.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], }), - ('Moo', '2.000002', { + ('Moo', '2.001001', { 'source_tmpl': 'Moo-2.000002.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], }), @@ -375,7 +375,7 @@ exts_list = [ 'source_tmpl': 'IPC-Run-0.94.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], }), - ('HTML::Entities::Interpolate', '1.05', { + ('HTML::Entities::Interpolate', '1.09', { 'source_tmpl': 'HTML-Entities-Interpolate-1.05.tgz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], }), @@ -391,7 +391,7 @@ exts_list = [ 'source_tmpl': 'Class-Accessor-0.34.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], }), - ('Test::Differences', '0.63', { + ('Test::Differences', '0.64', { 'source_tmpl': 'Test-Differences-0.63.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], }), @@ -399,7 +399,7 @@ exts_list = [ 'source_tmpl': 'HTTP-Tiny-0.056.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), - ('Package::DeprecationManager', '0.14', { + ('Package::DeprecationManager', '0.15', { 'source_tmpl': 'Package-DeprecationManager-0.14.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -411,7 +411,7 @@ exts_list = [ 'source_tmpl': 'TimeDate-2.30.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GB/GBARR'], }), - ('version', '0.9912', { + ('version', '0.9915', { 'source_tmpl': 'version-0.9912.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], }), @@ -432,7 +432,7 @@ exts_list = [ 'source_tmpl': 'Sub-Name-0.14.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('Time::Piece', '1.30', { + ('Time::Piece', '1.31', { 'source_tmpl': 'Time-Piece-1.30.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), @@ -460,7 +460,7 @@ exts_list = [ 'source_tmpl': 'Canary-Stability-2006.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], }), - ('AnyEvent', '7.11', { + ('AnyEvent', '7.12', { 'source_tmpl': 'AnyEvent-7.11.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], }), @@ -520,7 +520,7 @@ exts_list = [ 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], }), - ('Statistics::Descriptive', '3.0609', { + ('Statistics::Descriptive', '3.0612', { 'source_tmpl': 'Statistics-Descriptive-3.0609.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], }), @@ -528,7 +528,7 @@ exts_list = [ 'source_tmpl': 'Class-Load-0.23.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('LWP::Simple', '6.13', { + ('LWP::Simple', '6.15', { 'source_tmpl': 'libwww-perl-6.13.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -540,7 +540,7 @@ exts_list = [ 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], }), - ('GD::Graph', '1.49', { + ('GD::Graph', '1.52', { 'source_tmpl': 'GDGraph-1.49.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], }), @@ -580,19 +580,19 @@ exts_list = [ 'source_tmpl': 'Class-Inspector-1.28.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], }), - ('Parse::RecDescent', '1.967012', { + ('Parse::RecDescent', '1.967013', { 'source_tmpl': 'Parse-RecDescent-1.967012.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], }), - ('Carp', '1.36', { + ('Carp', '1.38', { 'source_tmpl': 'Carp-1.36.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('XML::XPath', '1.13', { + ('XML::XPath', '1.33', { 'source_tmpl': 'XML-XPath-1.13.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MS/MSERGEANT'], }), - ('Capture::Tiny', '0.30', { + ('Capture::Tiny', '0.36', { 'source_tmpl': 'Capture-Tiny-0.30.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), @@ -616,7 +616,7 @@ exts_list = [ 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FR/FREW'], }), - ('LWP', '6.13', { + ('LWP', '6.15', { 'source_tmpl': 'libwww-perl-6.13.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -648,7 +648,7 @@ exts_list = [ 'source_tmpl': 'Text-Balanced-2.03.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], }), - ('strictures', '2.000001', { + ('strictures', '2.000002', { 'source_tmpl': 'strictures-2.000001.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], }), @@ -656,7 +656,7 @@ exts_list = [ 'source_tmpl': 'Switch-2.17.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY'], }), - ('File::Which', '1.19', { + ('File::Which', '1.21', { 'source_tmpl': 'File-Which-1.19.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], }), @@ -692,7 +692,7 @@ exts_list = [ 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], }), - ('Exception::Class', '1.39', { + ('Exception::Class', '1.40', { 'source_tmpl': 'Exception-Class-1.39.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -724,7 +724,7 @@ exts_list = [ 'source_tmpl': 'IO-String-1.08.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), - ('XML::Simple', '2.20', { + ('XML::Simple', '2.22', { 'source_tmpl': 'XML-Simple-2.20.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM'], }), @@ -748,7 +748,7 @@ exts_list = [ 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), - ('Scalar::Util', '1.42', { + ('Scalar::Util', '1.43', { 'source_tmpl': 'Scalar-List-Utils-1.42.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], }), @@ -808,7 +808,7 @@ exts_list = [ 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], }), - ('Log::Handler', '0.87', { + ('Log::Handler', '0.84', { 'source_tmpl': 'Log-Handler-0.87.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], }), @@ -816,11 +816,11 @@ exts_list = [ 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TM/TMTM'], }), - ('HTML::Entities', '3.71', { + ('HTML::Entities', '3.72', { 'source_tmpl': 'HTML-Parser-3.71.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), - ('Devel::StackTrace', '2.00', { + ('Devel::StackTrace', '2.01', { 'source_tmpl': 'Devel-StackTrace-2.00.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -832,7 +832,7 @@ exts_list = [ 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SW/SWMCD'], }), - ('Moose', '2.1603', { + ('Moose', '2.1605', { 'source_tmpl': 'Moose-2.1603.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -848,7 +848,7 @@ exts_list = [ 'source_tmpl': 'IPC-Run3-0.048.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('File::Find::Rule', '0.33', { + ('File::Find::Rule', '0.34', { 'source_tmpl': 'File-Find-Rule-0.33.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], }), @@ -868,11 +868,11 @@ exts_list = [ 'source_tmpl': 'Data-OptList-0.109.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('CPANPLUS', '0.9154', { + ('CPANPLUS', '0.9156', { 'source_tmpl': 'CPANPLUS-0.9154.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], }), - ('Test::Harness', '3.35', { + ('Test::Harness', '3.36', { 'source_tmpl': 'Test-Harness-3.35.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), @@ -880,15 +880,15 @@ exts_list = [ 'source_tmpl': 'IO-Tty-1.12.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], }), - ('Text::Soundex', '3.04', { + ('Text::Soundex', '3.05', { 'source_tmpl': 'Text-Soundex-3.04.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('Lingua::EN::PluralToSingular', '0.14', { + ('Lingua::EN::PluralToSingular', '0.18', { 'source_tmpl': 'Lingua-EN-PluralToSingular-0.14.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BK/BKB'], }), - ('Want', '0.26', { + ('Want', '0.29', { 'source_tmpl': 'Want-0.26.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], }), diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb index 62fb0dbd9d..14d911f6fc 100644 --- a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb +++ b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb @@ -12,7 +12,7 @@ performance and resilience for local and remote transfers through a variety of t toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TGZ] -source_urls = [('http://sourceforge.net/projects/shiftc/files', 'download')] +source_urls = [SOURCEFORGE_SOURCE] dependencies = [ ('Perl', '5.22.1'), -- GitLab From 753e200d5c6fac3ef8f3f243fed29ce9ec81b918 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 15:23:06 +0100 Subject: [PATCH 413/732] {vis}[intel-2016a] GL2PS 1.3.9 (REVIEW) --- .../f/freeglut/freeglut-3.0.0-intel-2016a.eb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb index 50285c0962..095b105fda 100644 --- a/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb @@ -14,10 +14,21 @@ source_urls = ['http://prdownloads.sourceforge.net/%(name)s'] builddependencies = [('CMake', '3.4.3')] dependencies = [ - ('libXi', '1.7.6'), + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), ('libXrandr', '1.5.0'), + ('libXi', '1.7.6'), + ('Mesa', '11.1.2'), ] +configopts = ' -DX11_X11_LIB="$EBROOTLIBX11/lib/libX11.so" ' +configopts += ' -DX11_X11_INCLUDE_PATH="$EBROOTLIBX11/include/X11" ' +configopts += ' -DX11_Xext_LIB="$EBROOTLIBXEXT/lib/libXext.so" ' +configopts += ' -DX11_Xrandr_LIB="$EBROOTLIBXRANDR/lib/libXrandr.so" ' +configopts += ' -DX11_Xrandr_INCLUDE_PATH="$EBROOTLIBXRANDR/include/X11/extensions/" ' +configopts += ' -DX11_Xi_LIB="$EBROOTLIBXIlib/libXrandr.so" ' +configopts += ' -DX11_Xi_INCLUDE_PATH="$EBROOTLIBXI/include/X11/extensions/" ' + sanity_check_paths = { 'files': ['lib64/libglut.a', 'lib64/libglut.%s' % SHLIB_EXT], 'dirs': ['include/GL'], -- GitLab From 8669cc78fb308a53a24225f9fbb9c6cb0862ff82 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Tue, 8 Mar 2016 15:36:52 +0100 Subject: [PATCH 414/732] Fix shift download url --- easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb index 14d911f6fc..62fb0dbd9d 100644 --- a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb +++ b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb @@ -12,7 +12,7 @@ performance and resilience for local and remote transfers through a variety of t toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TGZ] -source_urls = [SOURCEFORGE_SOURCE] +source_urls = [('http://sourceforge.net/projects/shiftc/files', 'download')] dependencies = [ ('Perl', '5.22.1'), -- GitLab From c4a331b38985bf7c412ad788b2e519ed8b3abf12 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 8 Mar 2016 14:50:41 +0000 Subject: [PATCH 415/732] Fix download location --- .../Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb | 2 +- .../Xerces-C++-3.1.1-intel-2015a.eb | 3 ++- .../Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb | 2 +- .../Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb | 25 +++++++++++++++++++ .../Xerces-C++-3.1.2-goolf-1.7.20.eb | 2 +- .../Xerces-C++-3.1.2-intel-2015a.eb | 2 +- 6 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb index 443076c83e..031a0f54b9 100644 --- a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2015a'} sources = ['xerces-c-%(version)s.tar.gz'] source_urls = [ - 'http://apache.belnet.be/xerces/c/3/sources/' + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' ] dependencies = [ diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb index 9437987e64..2dd8450711 100644 --- a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb @@ -10,9 +10,10 @@ toolchain = {'name': 'intel', 'version': '2015a'} sources = ['xerces-c-%(version)s.tar.gz'] source_urls = [ - 'http://apache.belnet.be/xerces/c/3/sources/' + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' ] + dependencies = [ ('cURL', '7.40.0'), ] diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb index e2bfd14b2a..b0abf7e5eb 100644 --- a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb @@ -15,7 +15,7 @@ toolchain = {'name': 'foss', 'version': '2015a'} sources = ['xerces-c-%(version)s.tar.gz'] source_urls = [ - 'http://apache.belnet.be/xerces/c/%(version_major)s/sources/' + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' ] dependencies = [ diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb new file mode 100644 index 0000000000..087db393ee --- /dev/null +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Xerces-C++' +version = '3.1.2' + +homepage = 'http://xerces.apache.org/xerces-c/' + +description = """Xerces-C++ is a validating XML parser written in a portable +subset of C++. Xerces-C++ makes it easy to give your application the ability to +read and write XML data. A shared library is provided for parsing, generating, +manipulating, and validating XML documents using the DOM, SAX, and SAX2 +APIs.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['xerces-c-%(version)s.tar.gz'] +source_urls = [ + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' +] + +dependencies = [ + ('cURL', '7.44.0'), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb index 258f78b64a..64c371a561 100644 --- a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb @@ -15,7 +15,7 @@ toolchain = {'name': 'goolf', 'version': '1.7.20'} sources = ['xerces-c-%(version)s.tar.gz'] source_urls = [ - 'http://apache.belnet.be/xerces/c/%(version_major)s/sources/' + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' ] dependencies = [ diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb index 78f997327e..1ddefd9f96 100644 --- a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb @@ -15,7 +15,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} sources = ['xerces-c-%(version)s.tar.gz'] source_urls = [ - 'http://apache.belnet.be/xerces/c/%(version_major)s/sources/' + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' ] dependencies = [ -- GitLab From 9563423f78b19d1f50b77580721e630b7ea83364 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 16:07:46 +0100 Subject: [PATCH 416/732] {numlib}[intel-2016a] SuiteSparse 4.5.1 with external METIS (REVIEW) --- .../m/METIS/METIS-5.1.0-intel-2016a.eb | 22 +++++++++++++++++ ...iteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb | 24 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 easybuild/easyconfigs/m/METIS/METIS-5.1.0-intel-2016a.eb create mode 100644 easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb diff --git a/easybuild/easyconfigs/m/METIS/METIS-5.1.0-intel-2016a.eb b/easybuild/easyconfigs/m/METIS/METIS-5.1.0-intel-2016a.eb new file mode 100644 index 0000000000..b79e95dce7 --- /dev/null +++ b/easybuild/easyconfigs/m/METIS/METIS-5.1.0-intel-2016a.eb @@ -0,0 +1,22 @@ +name = 'METIS' +version = '5.1.0' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/metis/overview' +description = """METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, + and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the + multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD', +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = ['', 'shared=1'] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb new file mode 100644 index 0000000000..f6beb0e31f --- /dev/null +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb @@ -0,0 +1,24 @@ +name = 'SuiteSparse' +version = '4.5.1' + +homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True} + +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] +sources = [SOURCE_TAR_GZ] + +metis = 'METIS' +metis_ver = '5.1.0' +versionsuffix = '-%s-%s' % (metis, metis_ver) +dependencies = [(metis, metis_ver)] + +preconfigopts = 'MY_METIS_LIB="$EBROOTMETIS/lib/libmetis.so" ' +prebuildopts = 'MY_METIS_LIB="$EBROOTMETIS/lib/libmetis.so" ' +preinstallopts = 'MY_METIS_LIB="$EBROOTMETIS/lib/libmetis.so" ' + +maxparallel = 1 + +moduleclass = 'numlib' -- GitLab From 7d7e21cc3c7cdeee99070768396013a48476d580 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Tue, 8 Mar 2016 16:18:14 +0100 Subject: [PATCH 417/732] Do extensions update in other PR --- .../p/Perl/Perl-5.22.1-intel-2016a.eb | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb index 2729eb6536..53fd47ad2d 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb @@ -11,7 +11,7 @@ source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] sources = [SOURCELOWER_TAR_GZ] exts_list = [ - ('Config::General', '2.60', { + ('Config::General', '2.58', { 'source_tmpl': 'Config-General-2.58.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], }), @@ -27,7 +27,7 @@ exts_list = [ 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), - ('TAP::Harness::Env', '3.36', { + ('TAP::Harness::Env', '3.35', { 'source_tmpl': 'Test-Harness-3.35.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), @@ -47,7 +47,7 @@ exts_list = [ 'source_tmpl': 'Text-Glob-0.09.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], }), - ('Regexp::Common', '2016020301', { + ('Regexp::Common', '2013031301', { 'source_tmpl': 'Regexp-Common-2013031301.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], }), @@ -63,15 +63,15 @@ exts_list = [ 'source_tmpl': 'Test-Fatal-0.014.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('Test::Warnings', '0.026', { + ('Test::Warnings', '0.021', { 'source_tmpl': 'Test-Warnings-0.021.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('DateTime::Locale', '1.02', { + ('DateTime::Locale', '0.46', { 'source_tmpl': 'DateTime-Locale-0.46.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), - ('DateTime::TimeZone', '1.95', { + ('DateTime::TimeZone', '1.93', { 'source_tmpl': 'DateTime-TimeZone-1.93.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -87,11 +87,11 @@ exts_list = [ 'source_tmpl': 'Module-Runtime-0.014.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], }), - ('Try::Tiny', '0.24', { + ('Try::Tiny', '0.22', { 'source_tmpl': 'Try-Tiny-0.22.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], }), - ('Params::Validate', '1.22', { + ('Params::Validate', '1.21', { 'source_tmpl': 'Params-Validate-1.21.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -107,7 +107,7 @@ exts_list = [ 'source_tmpl': 'Class-Singleton-1.5.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], }), - ('DateTime', '1.25', { + ('DateTime', '1.20', { 'source_tmpl': 'DateTime-1.20.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -115,11 +115,11 @@ exts_list = [ 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('Module::Build', '0.4216', { + ('Module::Build', '0.4214', { 'source_tmpl': 'Module-Build-0.4214.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), - ('Readonly', '2.01', { + ('Readonly', '2.00', { 'source_tmpl': 'Readonly-2.00.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SA/SANKO'], }), @@ -127,7 +127,7 @@ exts_list = [ 'source_tmpl': 'Git-0.41.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], }), - ('Tree::DAG_Node', '1.29', { + ('Tree::DAG_Node', '1.27', { 'source_tmpl': 'Tree-DAG_Node-1.27.tgz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], }), @@ -143,7 +143,7 @@ exts_list = [ 'source_tmpl': 'DBI-1.634.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], }), - ('DBD::SQLite', '1.50', { + ('DBD::SQLite', '1.48', { 'source_tmpl': 'DBD-SQLite-1.48.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], }), @@ -159,11 +159,11 @@ exts_list = [ 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/J/JU/JUERD'], }), - ('Shell', '0.73', { + ('Shell', '0.72', { 'source_tmpl': 'Shell-0.72.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], }), - ('File::Spec', '3.62', { + ('File::Spec', '3.47', { 'source_tmpl': 'PathTools-3.47.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], }), @@ -203,7 +203,7 @@ exts_list = [ 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], }), - ('Test::Exception', '0.43', { + ('Test::Exception', '0.40', { 'source_tmpl': 'Test-Exception-0.40.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], }), @@ -211,7 +211,7 @@ exts_list = [ 'source_tmpl': 'Text-Table-1.130.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], }), - ('MIME::Types', '2.13', { + ('MIME::Types', '2.11', { 'source_tmpl': 'MIME-Types-2.11.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], }), @@ -227,7 +227,7 @@ exts_list = [ 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], }), - ('HTML::Parser', '3.72', { + ('HTML::Parser', '3.71', { 'source_tmpl': 'HTML-Parser-3.71.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), @@ -251,7 +251,7 @@ exts_list = [ 'source_tmpl': 'Class-ISA-0.36.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], }), - ('URI', '1.71', { + ('URI', '1.69', { 'source_tmpl': 'URI-1.69.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -271,7 +271,7 @@ exts_list = [ 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], }), - ('Pod::POM', '2.01', { + ('Pod::POM', '2.00', { 'source_tmpl': 'Pod-POM-2.00.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], }), @@ -279,7 +279,7 @@ exts_list = [ 'source_tmpl': 'Math-Round-0.07.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], }), - ('Text::Diff', '1.44', { + ('Text::Diff', '1.43', { 'source_tmpl': 'Text-Diff-1.43.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], }), @@ -287,7 +287,7 @@ exts_list = [ 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BI/BINGOS'], }), - ('IO::Socket::SSL', '2.024', { + ('IO::Socket::SSL', '2.020', { 'source_tmpl': 'IO-Socket-SSL-2.020.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], }), @@ -311,7 +311,7 @@ exts_list = [ 'source_tmpl': 'IO-stringy-2.111.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], }), - ('Getopt::Long', '2.48', { + ('Getopt::Long', '2.47', { 'source_tmpl': 'Getopt-Long-2.47.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], }), @@ -335,7 +335,7 @@ exts_list = [ 'source_tmpl': 'Net-HTTP-6.09.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('Test::Deep', '1.120', { + ('Test::Deep', '0.117', { 'source_tmpl': 'Test-Deep-0.117.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), @@ -347,7 +347,7 @@ exts_list = [ 'source_tmpl': 'MRO-Compat-0.12.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], }), - ('Moo', '2.001001', { + ('Moo', '2.000002', { 'source_tmpl': 'Moo-2.000002.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], }), @@ -375,7 +375,7 @@ exts_list = [ 'source_tmpl': 'IPC-Run-0.94.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], }), - ('HTML::Entities::Interpolate', '1.09', { + ('HTML::Entities::Interpolate', '1.05', { 'source_tmpl': 'HTML-Entities-Interpolate-1.05.tgz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], }), @@ -391,7 +391,7 @@ exts_list = [ 'source_tmpl': 'Class-Accessor-0.34.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], }), - ('Test::Differences', '0.64', { + ('Test::Differences', '0.63', { 'source_tmpl': 'Test-Differences-0.63.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], }), @@ -399,7 +399,7 @@ exts_list = [ 'source_tmpl': 'HTTP-Tiny-0.056.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), - ('Package::DeprecationManager', '0.15', { + ('Package::DeprecationManager', '0.14', { 'source_tmpl': 'Package-DeprecationManager-0.14.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -411,7 +411,7 @@ exts_list = [ 'source_tmpl': 'TimeDate-2.30.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GB/GBARR'], }), - ('version', '0.9915', { + ('version', '0.9912', { 'source_tmpl': 'version-0.9912.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], }), @@ -432,7 +432,7 @@ exts_list = [ 'source_tmpl': 'Sub-Name-0.14.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('Time::Piece', '1.31', { + ('Time::Piece', '1.30', { 'source_tmpl': 'Time-Piece-1.30.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), @@ -460,7 +460,7 @@ exts_list = [ 'source_tmpl': 'Canary-Stability-2006.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], }), - ('AnyEvent', '7.12', { + ('AnyEvent', '7.11', { 'source_tmpl': 'AnyEvent-7.11.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], }), @@ -520,7 +520,7 @@ exts_list = [ 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], }), - ('Statistics::Descriptive', '3.0612', { + ('Statistics::Descriptive', '3.0609', { 'source_tmpl': 'Statistics-Descriptive-3.0609.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], }), @@ -528,7 +528,7 @@ exts_list = [ 'source_tmpl': 'Class-Load-0.23.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), - ('LWP::Simple', '6.15', { + ('LWP::Simple', '6.13', { 'source_tmpl': 'libwww-perl-6.13.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -540,7 +540,7 @@ exts_list = [ 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], }), - ('GD::Graph', '1.52', { + ('GD::Graph', '1.49', { 'source_tmpl': 'GDGraph-1.49.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], }), @@ -580,19 +580,19 @@ exts_list = [ 'source_tmpl': 'Class-Inspector-1.28.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK'], }), - ('Parse::RecDescent', '1.967013', { + ('Parse::RecDescent', '1.967012', { 'source_tmpl': 'Parse-RecDescent-1.967012.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], }), - ('Carp', '1.38', { + ('Carp', '1.36', { 'source_tmpl': 'Carp-1.36.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('XML::XPath', '1.33', { + ('XML::XPath', '1.13', { 'source_tmpl': 'XML-XPath-1.13.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MS/MSERGEANT'], }), - ('Capture::Tiny', '0.36', { + ('Capture::Tiny', '0.30', { 'source_tmpl': 'Capture-Tiny-0.30.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), @@ -616,7 +616,7 @@ exts_list = [ 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FR/FREW'], }), - ('LWP', '6.15', { + ('LWP', '6.13', { 'source_tmpl': 'libwww-perl-6.13.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -648,7 +648,7 @@ exts_list = [ 'source_tmpl': 'Text-Balanced-2.03.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], }), - ('strictures', '2.000002', { + ('strictures', '2.000001', { 'source_tmpl': 'strictures-2.000001.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], }), @@ -656,7 +656,7 @@ exts_list = [ 'source_tmpl': 'Switch-2.17.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY'], }), - ('File::Which', '1.21', { + ('File::Which', '1.19', { 'source_tmpl': 'File-Which-1.19.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], }), @@ -692,7 +692,7 @@ exts_list = [ 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/K/KA/KASEI'], }), - ('Exception::Class', '1.40', { + ('Exception::Class', '1.39', { 'source_tmpl': 'Exception-Class-1.39.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -724,7 +724,7 @@ exts_list = [ 'source_tmpl': 'IO-String-1.08.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), - ('XML::Simple', '2.22', { + ('XML::Simple', '2.20', { 'source_tmpl': 'XML-Simple-2.20.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM'], }), @@ -748,7 +748,7 @@ exts_list = [ 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), - ('Scalar::Util', '1.43', { + ('Scalar::Util', '1.42', { 'source_tmpl': 'Scalar-List-Utils-1.42.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], }), @@ -808,7 +808,7 @@ exts_list = [ 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], }), - ('Log::Handler', '0.84', { + ('Log::Handler', '0.87', { 'source_tmpl': 'Log-Handler-0.87.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], }), @@ -816,11 +816,11 @@ exts_list = [ 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TM/TMTM'], }), - ('HTML::Entities', '3.72', { + ('HTML::Entities', '3.71', { 'source_tmpl': 'HTML-Parser-3.71.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS'], }), - ('Devel::StackTrace', '2.01', { + ('Devel::StackTrace', '2.00', { 'source_tmpl': 'Devel-StackTrace-2.00.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], }), @@ -832,7 +832,7 @@ exts_list = [ 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/S/SW/SWMCD'], }), - ('Moose', '2.1605', { + ('Moose', '2.1603', { 'source_tmpl': 'Moose-2.1603.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], }), @@ -848,7 +848,7 @@ exts_list = [ 'source_tmpl': 'IPC-Run3-0.048.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('File::Find::Rule', '0.34', { + ('File::Find::Rule', '0.33', { 'source_tmpl': 'File-Find-Rule-0.33.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], }), @@ -868,11 +868,11 @@ exts_list = [ 'source_tmpl': 'Data-OptList-0.109.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('CPANPLUS', '0.9156', { + ('CPANPLUS', '0.9154', { 'source_tmpl': 'CPANPLUS-0.9154.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], }), - ('Test::Harness', '3.36', { + ('Test::Harness', '3.35', { 'source_tmpl': 'Test-Harness-3.35.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], }), @@ -880,15 +880,15 @@ exts_list = [ 'source_tmpl': 'IO-Tty-1.12.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], }), - ('Text::Soundex', '3.05', { + ('Text::Soundex', '3.04', { 'source_tmpl': 'Text-Soundex-3.04.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS'], }), - ('Lingua::EN::PluralToSingular', '0.18', { + ('Lingua::EN::PluralToSingular', '0.14', { 'source_tmpl': 'Lingua-EN-PluralToSingular-0.14.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BK/BKB'], }), - ('Want', '0.29', { + ('Want', '0.26', { 'source_tmpl': 'Want-0.26.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], }), -- GitLab From e04cfd11177a408dfa72ad11898829595a38bc57 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 16:46:53 +0100 Subject: [PATCH 418/732] {lang}[intel/2016a] Perl 5.22.1 --- .../p/Perl/Perl-5.22.1-intel-2016a.eb | 886 ++++++++++++++++++ 1 file changed, 886 insertions(+) create mode 100644 easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb new file mode 100644 index 0000000000..ae84220ef2 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb @@ -0,0 +1,886 @@ +name = 'Perl' +version = '5.22.1' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.60', { + 'source_tmpl': 'Config-General-2.60.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016020301', { + 'source_tmpl': 'Regexp-Common-2016020301.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.02', { + 'source_tmpl': 'DateTime-Locale-1.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '1.95', { + 'source_tmpl': 'DateTime-TimeZone-1.95.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4216', { + 'source_tmpl': 'Module-Build-0.4216.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.22', { + 'source_tmpl': 'Params-Validate-1.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.413', { + 'source_tmpl': 'List-MoreUtils-0.413.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.25', { + 'source_tmpl': 'DateTime-1.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.01', { + 'source_tmpl': 'Readonly-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ'], + }), + ('DBI', '1.634', { + 'source_tmpl': 'DBI-1.634.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "BINGOS"'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.10', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.001014', { + 'source_tmpl': 'Test-Simple-1.001014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.024', { + 'source_tmpl': 'IO-Socket-SSL-2.024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.03', { + 'source_tmpl': 'Test-Version-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.001001', { + 'source_tmpl': 'Moo-2.001001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.056', { + 'source_tmpl': 'HTTP-Tiny-0.056.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.15', { + 'source_tmpl': 'Package-DeprecationManager-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "GBARR"'], + }), + ('version', '0.9915', { + 'source_tmpl': 'version-0.9915.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + # fails: uses 'gcc' + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.14', { + 'source_tmpl': 'Sub-Name-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2006', { + 'source_tmpl': 'Canary-Stability-2006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.32', { + 'source_tmpl': 'Expect-1.32.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SZ/SZABGAB'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "INGY"'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.33', { + 'source_tmpl': 'XML-XPath-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.36', { + 'source_tmpl': 'Capture-Tiny-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000002', { + 'source_tmpl': 'strictures-2.000002.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.110', { + 'source_tmpl': 'Mock-Quick-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', 'v3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.09', { + 'source_tmpl': 'List-AllUtils-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.13', { + 'source_tmpl': 'Eval-Closure-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.006', { + 'source_tmpl': 'Test-Exception-LessClever-0.006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.43', { + 'source_tmpl': 'Scalar-List-Utils-1.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.04', { + 'source_tmpl': 'DateTime-Tiny-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1605', { + 'source_tmpl': 'Moose-2.1605.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.407', { + 'source_tmpl': 'SQL-Statement-1.407.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.109', { + 'source_tmpl': 'Data-OptList-0.109.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9156', { + 'source_tmpl': 'CPANPLUS-0.9156.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.04', { + 'source_tmpl': 'Cwd-Guard-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.14', { + 'source_tmpl': 'MailTools-2.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] + +moduleclass = 'lang' -- GitLab From bd08387aa585149739945ec279d4f81b23ce426f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 16:49:30 +0100 Subject: [PATCH 419/732] enable XML::Bare in all Perl easyconfigs --- easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2015b.eb | 9 ++++----- easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2016a.eb | 9 ++++----- .../easyconfigs/p/Perl/Perl-5.20.3-intel-2015b.eb | 10 +++++----- .../easyconfigs/p/Perl/Perl-5.20.3-intel-2016a.eb | 10 +++++----- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2015b.eb b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2015b.eb index 35f20adfa3..6c8f5e608f 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2015b.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2015b.eb @@ -419,11 +419,10 @@ exts_list = [ 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), - # fails: uses 'gcc' - #('XML::Bare', '0.53', { - # 'source_tmpl': 'XML-Bare-0.53.tar.gz', - # 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], - #}), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD/'], + }), ('Dist::CheckConflicts', '0.11', { 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2016a.eb index 0dbde8ec2c..c82d048099 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-foss-2016a.eb @@ -419,11 +419,10 @@ exts_list = [ 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), - # fails: uses 'gcc' - #('XML::Bare', '0.53', { - # 'source_tmpl': 'XML-Bare-0.53.tar.gz', - # 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], - #}), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD/'], + }), ('Dist::CheckConflicts', '0.11', { 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2015b.eb b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2015b.eb index ab7a8379bf..2447ac9616 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2015b.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2015b.eb @@ -419,11 +419,11 @@ exts_list = [ 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), - # fails: uses 'gcc' - #('XML::Bare', '0.53', { - # 'source_tmpl': 'XML-Bare-0.53.tar.gz', - # 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], - #}), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD/'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), ('Dist::CheckConflicts', '0.11', { 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2016a.eb index 146a854c21..e8b65cc525 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.20.3-intel-2016a.eb @@ -419,11 +419,11 @@ exts_list = [ 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], }), - # fails: uses 'gcc' - #('XML::Bare', '0.53', { - # 'source_tmpl': 'XML-Bare-0.53.tar.gz', - # 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], - #}), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CO/CODECHILD/'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), ('Dist::CheckConflicts', '0.11', { 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY'], -- GitLab From 41026ced1cf46f65783212b2baa731f6bffa1fd3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 18:27:17 +0200 Subject: [PATCH 420/732] add easyconfig LLVM-3.7.1-gimkl-2.11.5.eb, add easyconfig Mesa-11.1.2-gimkl-2.11.5.eb, add easyconfig eudev-3.1.5-gimkl-2.11.5.eb, add easyconfig flex-2.6.0-gimkl-2.11.5.eb, add easyconfig glproto-1.4.17-gimkl-2.11.5.eb, add easyconfig gperf-3.0.4-gimkl-2.11.5.eb, add easyconfig libdrm-2.4.67-gimkl-2.11.5.eb, add easyconfig libpciaccess-0.13.4-gimkl-2.11.5.eb, add easyconfig libxml2-2.9.3-gimkl-2.11.5.eb, add easyconfig makedepend-1.0.5-gimkl-2.11.5.eb, add easyconfig pkg-config-0.29-gimkl-2.11.5.eb --- .../e/eudev/eudev-3.1.5-gimkl-2.11.5.eb | 33 +++++++++ .../f/flex/flex-2.6.0-gimkl-2.11.5.eb | 16 +++++ .../g/glproto/glproto-1.4.17-gimkl-2.11.5.eb | 20 ++++++ .../g/gperf/gperf-3.0.4-gimkl-2.11.5.eb | 22 ++++++ .../l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb | 39 +++++++++++ .../l/libdrm/libdrm-2.4.67-gimkl-2.11.5.eb | 28 ++++++++ .../libpciaccess-0.13.4-gimkl-2.11.5.eb | 26 +++++++ .../l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb | 29 ++++++++ .../m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb | 68 +++++++++++++++++++ .../makedepend-1.0.5-gimkl-2.11.5.eb | 20 ++++++ .../pkg-config-0.29-gimkl-2.11.5.eb | 27 ++++++++ 11 files changed, 328 insertions(+) create mode 100644 easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/f/flex/flex-2.6.0-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/g/gperf/gperf-3.0.4-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb diff --git a/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb new file mode 100644 index 0000000000..217a49f901 --- /dev/null +++ b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'eudev' +version = '3.1.5' + +homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' +description = """eudev is a fork of systemd-udev with the goal of obtaining + better compatibility with existing software such as + OpenRC and Upstart, older kernels, various toolchains + and anything else required by users and various distributions.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'cstd': 'c99'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] +patches = ['%(name)s-3.1.2_pre-2.6.34_kernel.patch'] + +builddependencies = [ + ('gperf', '3.0.4'), +] + +osdependencies = [('kernel-headers', 'linux-libc-dev')] + +configopts = '--disable-blkid --disable-selinux --disable-gudev --disable-manpages ' +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/udevadm', 'include/libudev.h', 'include/udev.h', 'lib/libudev.so.1'], + 'dirs': [], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/f/flex/flex-2.6.0-gimkl-2.11.5.eb new file mode 100644 index 0000000000..c2677565b5 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.0-gimkl-2.11.5.eb @@ -0,0 +1,16 @@ +name = 'flex' +version = '2.6.0' + +homepage = 'http://flex.sourceforge.net/' +description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +dependencies = [('Bison', '3.0.4')] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb new file mode 100644 index 0000000000..46b9bdb324 --- /dev/null +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'glproto' +version = '1.4.17' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.0.4-gimkl-2.11.5.eb b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-gimkl-2.11.5.eb new file mode 100644 index 0000000000..53134ddab6 --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-gimkl-2.11.5.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'gperf' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/gperf/' +description = """GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash + function and hash table, in form of C or C++ code, for looking up a value depending on the input string. The hash + function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single + string comparison only.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/gperf'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb new file mode 100644 index 0000000000..edbbaa6b61 --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeMake' + +name = 'LLVM' +version = '3.7.1' + +homepage = "http://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'cstd': 'gnu++11'} + +source_urls = ["http://llvm.org/releases/%(version)s"] +sources = ["llvm-%(version)s.src.tar.xz"] + +builddependencies = [ + ('CMake', '3.4.3'), + ('Python', '2.7.11'), +] + +dependencies = [ + ('ncurses', '5.9'), +] + +configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' + +sanity_check_paths = { + 'files': ['bin/llvm-ar'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +separate_build_dir = True + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-gimkl-2.11.5.eb new file mode 100644 index 0000000000..caf76a0cf5 --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-gimkl-2.11.5.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libdrm' +version = '2.4.67' + +homepage = 'http://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +source_urls = ['http://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +builddependencies = [ + ('libpthread-stubs', '0.3'), +] + +dependencies = [ + ('libpciaccess', '0.13.4'), +] + +sanity_check_paths = { + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, + 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], + 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb new file mode 100644 index 0000000000..2a5e9c8d05 --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.13.4' + +homepage = 'http://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +source_urls = ['http://cgit.freedesktop.org/xorg/lib/libpciaccess/snapshot'] +sources = [SOURCE_TAR_GZ] + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +builddependencies = [ + ('Autotools', '20150215'), + ('xorg-macros', '1.19.0'), +] + +preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb new file mode 100644 index 0000000000..1f39ac3f7d --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb new file mode 100644 index 0000000000..72d772f450 --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.1.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb new file mode 100644 index 0000000000..c92d8634e2 --- /dev/null +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.5' + +homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb new file mode 100644 index 0000000000..c593a8d395 --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 5fb626f666ca2bf5f44367857f05d999ffac3f96 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 8 Mar 2016 17:03:32 +0000 Subject: [PATCH 421/732] Use latest available cURL for foss-2015b --- .../easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb index 087db393ee..ae3ef1e8c2 100644 --- a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015b.eb @@ -19,7 +19,7 @@ source_urls = [ ] dependencies = [ - ('cURL', '7.44.0'), + ('cURL', '7.45.0'), ] moduleclass = 'lib' -- GitLab From 15ad050da351d4224417d2882ec31477e9dc24b5 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 8 Mar 2016 17:29:35 +0000 Subject: [PATCH 422/732] Remove versionsuffix and rename file --- ...atGen-1.0.13-foss-2015b.eb => BamUtil-1.0.13-foss-2015b.eb} | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename easybuild/easyconfigs/b/BamUtil/{BamUtil-libStatGen-1.0.13-foss-2015b.eb => BamUtil-1.0.13-foss-2015b.eb} (89%) diff --git a/easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb b/easybuild/easyconfigs/b/BamUtil/BamUtil-1.0.13-foss-2015b.eb similarity index 89% rename from easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb rename to easybuild/easyconfigs/b/BamUtil/BamUtil-1.0.13-foss-2015b.eb index ceee101f27..66b054cceb 100644 --- a/easybuild/easyconfigs/b/BamUtil/BamUtil-libStatGen-1.0.13-foss-2015b.eb +++ b/easybuild/easyconfigs/b/BamUtil/BamUtil-1.0.13-foss-2015b.eb @@ -4,11 +4,10 @@ # adam.huffman@crick.ac.uk # The Francis Crick Institute # -# This is the version bundled with the libStatGen library +# This is the version with the bundled libStatGen library name = 'BamUtil' version = '1.0.13' -versionsuffix = 'libStatGen' easyblock = 'MakeCp' -- GitLab From 5cfd3869361d6cccf6c4ada8c54de1bd0d974f19 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 19:50:01 +0200 Subject: [PATCH 423/732] modify easyconfig eudev-3.1.5-gimkl-2.11.5.eb, modify easyconfig LLVM-3.7.1-gimkl-2.11.5.eb --- easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb | 1 - easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb index 217a49f901..2d6463fa7e 100644 --- a/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-gimkl-2.11.5.eb @@ -10,7 +10,6 @@ description = """eudev is a fork of systemd-udev with the goal of obtaining and anything else required by users and various distributions.""" toolchain = {'name': 'gimkl', 'version': '2.11.5'} -toolchainopts = {'cstd': 'c99'} sources = [SOURCE_TAR_GZ] source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb index edbbaa6b61..6ad7225296 100644 --- a/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/LLVM/LLVM-3.7.1-gimkl-2.11.5.eb @@ -27,7 +27,7 @@ dependencies = [ ('ncurses', '5.9'), ] -configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' +configopts = '-DBUILD_SHARED_LIBS=ON' sanity_check_paths = { 'files': ['bin/llvm-ar'], -- GitLab From 2233e6b571ca238397374a46799cdc4434718d19 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 20:02:35 +0100 Subject: [PATCH 424/732] {devel}[gimkl/2.11.5] Qt 4.8.7 --- .../g/GLib/GLib-2.47.5-gimkl-2.11.5.eb | 33 ++++++++++++++++ .../g/gettext/gettext-0.19.6-gimkl-2.11.5.eb | 18 +++++++++ .../l/libICE/libICE-1.0.9-gimkl-2.11.5.eb | 27 +++++++++++++ .../l/libSM/libSM-1.2.2-gimkl-2.11.5.eb | 28 +++++++++++++ .../libXrender-0.9.9-gimkl-2.11.5.eb | 28 +++++++++++++ .../l/libXt/libXt-1.1.5-gimkl-2.11.5.eb | 39 +++++++++++++++++++ .../l/libffi/libffi-3.2.1-gimkl-2.11.5.eb | 23 +++++++++++ .../p/PCRE/PCRE-8.38-gimkl-2.11.5.eb | 20 ++++++++++ .../easyconfigs/q/Qt/Qt-4.8.7-gimkl-2.11.5.eb | 24 ++++++++++++ .../renderproto-0.11-gimkl-2.11.5.eb | 20 ++++++++++ 10 files changed, 260 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.5-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libXt/libXt-1.1.5-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/l/libffi/libffi-3.2.1-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/p/PCRE/PCRE-8.38-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/q/Qt/Qt-4.8.7-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-gimkl-2.11.5.eb new file mode 100644 index 0000000000..8580a33ef1 --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-gimkl-2.11.5.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.47.5' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.6'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', '2.7.11')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb new file mode 100644 index 0000000000..4aed92d350 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb new file mode 100644 index 0000000000..407ce4845d --- /dev/null +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libICE' +version = '1.0.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Inter-Client Exchange library for freedesktop.org""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('xtrans', '1.3.5'), +] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/ICE/ICE%s.h' % x for x in ['', 'conn', 'lib', 'msg', 'proto', 'util']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb new file mode 100644 index 0000000000..580ce7f28a --- /dev/null +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libSM' +version = '1.2.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 Session Management library, which allows for applications to both manage sessions, + and make use of session managers to save and restore their state for later use.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('libICE', '1.0.9'), +] +builddependencies = [ + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/SM/%s' % x for x in ['SM.h', 'SMlib.h', 'SMproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-gimkl-2.11.5.eb new file mode 100644 index 0000000000..ba222c9ba7 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-gimkl-2.11.5.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXt/libXt-1.1.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXt/libXt-1.1.5-gimkl-2.11.5.eb new file mode 100644 index 0000000000..79ad76f252 --- /dev/null +++ b/easybuild/easyconfigs/l/libXt/libXt-1.1.5-gimkl-2.11.5.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('kbproto', '1.0.7'), +] + +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.2.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-gimkl-2.11.5.eb new file mode 100644 index 0000000000..7436f22a76 --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-gimkl-2.11.5.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.38-gimkl-2.11.5.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-gimkl-2.11.5.eb new file mode 100644 index 0000000000..98509a1b4e --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-gimkl-2.11.5.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.38' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.7-gimkl-2.11.5.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-gimkl-2.11.5.eb new file mode 100644 index 0000000000..607058cfe3 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-gimkl-2.11.5.eb @@ -0,0 +1,24 @@ +name = 'Qt' +version = '4.8.7' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +patches = ['Qt-%(version)s_phonon-export.patch'] + +dependencies = [ + ('GLib', '2.47.5'), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXrender', '0.9.9'), +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb new file mode 100644 index 0000000000..c363620cb6 --- /dev/null +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'renderproto' +version = '0.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrender protocol and ancillary headers" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 0a4d487219fb40608f605ebcdc55e342d2b7d8b9 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Wed, 9 Mar 2016 06:16:59 +1030 Subject: [PATCH 425/732] Whitespace fixes --- .../c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb index 1b0f60b271..87ecf8bccd 100644 --- a/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/c/csvkit/csvkit-0.9.1-foss-2015b-Python-2.7.10.eb @@ -26,11 +26,11 @@ postinstallcmds = ["chmod -R +r %(installdir)s/lib/"] sanity_check_paths = { 'files': ['bin/in2csv', 'bin/sql2csv', 'bin/csvclean', 'bin/csvcut', 'bin/csvgrep', 'bin/csvjoin', - 'bin/csvsort', 'bin/csvstack', 'bin/csvformat', 'bin/csvjson', 'bin/csvlook', 'bin/csvpy', - 'bin/csvsql', 'bin/csvstat'], + 'bin/csvsort', 'bin/csvstack', 'bin/csvformat', 'bin/csvjson', 'bin/csvlook', 'bin/csvpy', + 'bin/csvsql', 'bin/csvstat'], 'dirs': [], } -sanity_check_commands = [('csvlook','-h')] +sanity_check_commands = [('csvlook', '-h')] moduleclass = 'tools' -- GitLab From f053247b9a41764861442340aa52fee95462193b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 20:56:57 +0100 Subject: [PATCH 426/732] {numlib}[intel-2016a] qrupdate 1.1.2 (REVIEW) --- .../q/qrupdate/qrupdate-1.1.2-intel-2016a.eb | 28 +++++++++++++++++++ .../q/qrupdate/qrupdate-1.1.2_makeconf.patch | 17 +++++++++++ 2 files changed, 45 insertions(+) create mode 100644 easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb create mode 100644 easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2_makeconf.patch diff --git a/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb new file mode 100644 index 0000000000..2829bff70e --- /dev/null +++ b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'MakeCp' + +name = 'qrupdate' +version = '1.1.2' + +homepage = 'http://freeglut.sourceforge.net/' +description = """qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +patches = ['%(name)s-%(version)s_makeconf.patch'] + +buildopts = 'lib' + +files_to_copy = [(['libqrupdate.a'], 'lib')] + +sanity_check_paths = { + 'files': ['lib/libqrupdate.a'], + 'dirs': [], +} + +parallel = 1 + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2_makeconf.patch b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2_makeconf.patch new file mode 100644 index 0000000000..8e0f5c03c6 --- /dev/null +++ b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2_makeconf.patch @@ -0,0 +1,17 @@ +# Pick FC and FFLAGS from environmental variables +# March 8th 2016 B. Hajgato (Free Uviveristy Brussels - VUB) +--- qrupdate-1.1.2/Makeconf.old 2010-01-19 12:35:49.000000000 +0100 ++++ qrupdate-1.1.2/Makeconf 2016-03-08 20:51:11.662603099 +0100 +@@ -1,9 +1,9 @@ + # set this to your compiler's executable name (e.g. gfortran, g77) +-FC=gfortran ++FC?=gfortran + # requested flags +-FFLAGS=-fimplicit-none -O3 -funroll-loops ++FFLAGS?=-fimplicit-none -O3 -funroll-loops + # set if you need shared library +-FPICFLAGS=-fPIC ++FPICFLAGS= + + # BLAS library (only required for tests) + BLAS=-lblas -- GitLab From ffad529c31ea9063db8f1c77be441b4ff544589b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 21:04:16 +0100 Subject: [PATCH 427/732] diSNOW added --- easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb index 60dfecc0d6..49fadf4c1f 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -449,6 +449,7 @@ exts_list = [ ('ggm', '2.3', ext_options), ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), ] moduleclass = 'lang' -- GitLab From 511bdfee7d1f3956cc5a711acbafc71fc5d0ff31 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 21:18:56 +0100 Subject: [PATCH 428/732] homepage corrected --- easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb index 2829bff70e..eaa4c88212 100644 --- a/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-intel-2016a.eb @@ -3,7 +3,7 @@ easyblock = 'MakeCp' name = 'qrupdate' version = '1.1.2' -homepage = 'http://freeglut.sourceforge.net/' +homepage = 'https://sourceforge.net/projects/qrupdate/' description = """qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions.""" toolchain = {'name': 'intel', 'version': '2016a'} -- GitLab From 94471da2337738e879ded434c6a7abfa346bcc46 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 8 Mar 2016 22:20:43 +0200 Subject: [PATCH 429/732] add easyconfig ParaView-4.4.0-gimkl-2.11.5-mpi.eb, add easyconfig libGLU-9.0.0-gimkl-2.11.5.eb --- .../l/libGLU/libGLU-9.0.0-gimkl-2.11.5.eb | 24 +++++++++ .../ParaView-4.4.0-gimkl-2.11.5-mpi.eb | 52 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-gimkl-2.11.5.eb create mode 100644 easybuild/easyconfigs/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-gimkl-2.11.5.eb new file mode 100644 index 0000000000..2efc0a1d43 --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-gimkl-2.11.5.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libGLU' +version = '9.0.0' + +homepage = 'ftp://ftp.freedesktop.org/pub/mesa/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True} + +source_urls = ['ftp://ftp.freedesktop.org/pub/mesa/glu/'] +sources = ['glu-%(version)s.tar.bz2'] + +dependencies = [ + ('Mesa', '11.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libGLU.so.1'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb b/easybuild/easyconfigs/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb new file mode 100644 index 0000000000..a0d908d3d5 --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.4.0' +versionsuffix = '-mpi' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True, 'usempi': True} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +python = 'Python' +pyver = '2.7.10' +pysuff = '-%s-%s' % (python, pyver) +dependencies = [ + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libXt', '1.1.5'), + ('Qt', '4.8.7'), + ('libXext', '1.3.3'), + ('libX11', '1.6.3'), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.4.3')] + +separate_build_dir = True + +maxparallel = 4 + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON -DPARAVIEW_USE_MPI=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' -- GitLab From 3defaa7cb4280d0ea6fc193622fa93b4eadafe75 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 21:56:34 +0100 Subject: [PATCH 430/732] CMake builddep added --- easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb index 640e02a1af..9b004cefef 100644 --- a/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-intel-2016a.eb @@ -11,6 +11,10 @@ toolchain = {'name': 'intel', 'version': '2016a'} source_urls = ['http://geuz.org/gl2ps/src/'] sources = [SOURCELOWER_TGZ] +builddependencies = [ + ('CMake', '3.4.3'), +] + dependencies = [ ('libX11', '1.6.3'), ('libXi', '1.7.6'), -- GitLab From 609b7695965f5d75bb9aa0a357f134fbb3115049 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 8 Mar 2016 22:17:33 +0100 Subject: [PATCH 431/732] check both lib/lib64 for freeglut --- easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb index 095b105fda..fe4a731eff 100644 --- a/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-intel-2016a.eb @@ -30,7 +30,7 @@ configopts += ' -DX11_Xi_LIB="$EBROOTLIBXIlib/libXrandr.so" ' configopts += ' -DX11_Xi_INCLUDE_PATH="$EBROOTLIBXI/include/X11/extensions/" ' sanity_check_paths = { - 'files': ['lib64/libglut.a', 'lib64/libglut.%s' % SHLIB_EXT], + 'files': [('lib/libglut.a', 'lib64/libglut.a'), ('lib/libglut.%s' % SHLIB_EXT, 'lib64/libglut.%s' % SHLIB_EXT)], 'dirs': ['include/GL'], } -- GitLab From 3a76e163287326199ecf8991a89a77ed3713774a Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 9 Mar 2016 09:21:56 +0100 Subject: [PATCH 432/732] fix remarks --- .../easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb index c7ee77bd84..6caf9a9b85 100644 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb @@ -9,13 +9,11 @@ description = """The Ncurses (new curses) library is a free software emulation o function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} +toolchainopts = {'pic': True} source_urls = [GNU_SOURCE] sources = [SOURCE_TAR_GZ] -patches = ['ncurses-%(version)s_configure_darwin.patch'] - configopts = [ # default build '--with-shared --enable-overwrite', -- GitLab From 1cc16cf822933f32f1ed962b912e7cb6e8d02f11 Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 9 Mar 2016 09:23:28 +0100 Subject: [PATCH 433/732] clean up --- .../easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb | 4 +--- .../easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb index 39a02a2b9d..f11ad3873e 100644 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb @@ -9,13 +9,11 @@ description = """The Ncurses (new curses) library is a free software emulation o function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} +toolchainopts = {'pic': True} source_urls = [GNU_SOURCE] sources = [SOURCE_TAR_GZ] -patches = ['ncurses-%(version)s_configure_darwin.patch'] - configopts = [ # default build '--with-shared --enable-overwrite', diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb index a3d14a3a11..0c15e725f4 100644 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb @@ -9,13 +9,11 @@ description = """The Ncurses (new curses) library is a free software emulation o function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} +toolchainopts = {'pic': True} source_urls = [GNU_SOURCE] sources = [SOURCE_TAR_GZ] -patches = ['ncurses-%(version)s_configure_darwin.patch'] - configopts = [ # default build '--with-shared --enable-overwrite', -- GitLab From a7b15e1944e1d14979c38e30214b6fb8480283f6 Mon Sep 17 00:00:00 2001 From: perettig Date: Wed, 9 Mar 2016 09:33:07 +0100 Subject: [PATCH 434/732] removed ncurses (as it should come from PR#2606) --- .../ncurses-5.9-CrayIntel-2015.11-XC.eb | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb deleted file mode 100644 index c7ee77bd84..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb +++ /dev/null @@ -1,36 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'optarch': True, 'shared': True, 'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['ncurses-%(version)s_configure_darwin.patch'] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' -- GitLab From 383ff3305b9b3435edf0c8b6c36fdd66cac9cdcc Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 9 Mar 2016 09:36:24 +0100 Subject: [PATCH 435/732] {vis}[intel-2016a] GraphicsMagick 1.3.23 (REVIEW) --- .../GraphicsMagick-1.3.23-intel-2016a.eb | 34 +++++++++++++++++++ .../easyconfigs/x/XZ/XZ-5.2.2-intel-2016a.eb | 30 ++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb create mode 100644 easybuild/easyconfigs/x/XZ/XZ-5.2.2-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb new file mode 100644 index 0000000000..755ecbe16c --- /dev/null +++ b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'GraphicsMagick' +version = '1.3.23' + +homepage = 'http://www.graphicsmagick.org/' +description = """GraphicsMagick is the swiss army knife of image processing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [ + SOURCEFORGE_SOURCE, + 'ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/%(version_major_minor)s/', +] +sources = [SOURCE_TAR_GZ] + +builddependencies = [ + ('libtool', '2.4.6'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('bzip2', '1.0.6'), + ('freetype', '2.6.2'), + ('libpng', '1.6.21'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('libxml2', '2.9.3'), + ('XZ', '5.2.2'), + ('zlib', '1.2.8'), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.2-intel-2016a.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.2-intel-2016a.eb new file mode 100644 index 0000000000..b717af018a --- /dev/null +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.2-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.6'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' -- GitLab From c5a2f52c1c9e836dedc7649a8ddc2551bf6f4bb9 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Wed, 9 Mar 2016 10:57:15 +0100 Subject: [PATCH 436/732] Update dead link for SuiteSparse --- .../SuiteSparse-3.7.0-gmpolf-1.4.8-withparmetis.eb | 4 ++-- .../SuiteSparse-3.7.0-goalf-1.1.0-no-OFED-withparmetis.eb | 4 ++-- .../SuiteSparse-3.7.0-goolf-1.4.10-withparmetis.eb | 4 ++-- .../SuiteSparse/SuiteSparse-3.7.0-ictce-4.0.6-withparmetis.eb | 4 ++-- .../SuiteSparse/SuiteSparse-3.7.0-ictce-5.3.0-withparmetis.eb | 4 ++-- .../SuiteSparse-3.7.1-goolf-1.4.10-ParMETIS-4.0.3.eb | 4 ++-- .../SuiteSparse-3.7.1-ictce-5.5.0-ParMETIS-4.0.3.eb | 4 ++-- .../SuiteSparse-4.2.1-goolf-1.4.10-ParMETIS-4.0.3.eb | 4 ++-- .../SuiteSparse-4.2.1-ictce-5.5.0-ParMETIS-4.0.3.eb | 4 ++-- .../SuiteSparse-4.2.1-intel-2014b-ParMETIS-4.0.3.eb | 4 ++-- .../SuiteSparse-4.4.3-intel-2015a-ParMETIS-4.0.3.eb | 2 +- .../SuiteSparse/SuiteSparse-4.4.5-intel-2015b-METIS-5.1.0.eb | 2 +- .../SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb | 2 +- .../SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb | 2 +- 14 files changed, 24 insertions(+), 24 deletions(-) diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-gmpolf-1.4.8-withparmetis.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-gmpolf-1.4.8-withparmetis.eb index 2776109eda..d45fed3224 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-gmpolf-1.4.8-withparmetis.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-gmpolf-1.4.8-withparmetis.eb @@ -2,13 +2,13 @@ name = 'SuiteSparse' version = '3.7.0' versionsuffix = '-withparmetis' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'gmpolf', 'version': '1.4.8'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] dependencies = [('ParMETIS', '4.0.2')] diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goalf-1.1.0-no-OFED-withparmetis.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goalf-1.1.0-no-OFED-withparmetis.eb index 2af57df4b1..be453ea4e0 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goalf-1.1.0-no-OFED-withparmetis.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goalf-1.1.0-no-OFED-withparmetis.eb @@ -2,13 +2,13 @@ name = 'SuiteSparse' version = '3.7.0' versionsuffix = '-withparmetis' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] dependencies = [('ParMETIS', '4.0.2')] diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.4.10-withparmetis.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.4.10-withparmetis.eb index 4a43a48137..b237096229 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.4.10-withparmetis.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.4.10-withparmetis.eb @@ -2,13 +2,13 @@ name = 'SuiteSparse' version = '3.7.0' versionsuffix = '-withparmetis' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] dependencies = [('ParMETIS', '4.0.2')] diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-4.0.6-withparmetis.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-4.0.6-withparmetis.eb index 73e75a56ff..31eaab67de 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-4.0.6-withparmetis.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-4.0.6-withparmetis.eb @@ -2,13 +2,13 @@ name = 'SuiteSparse' version = '3.7.0' versionsuffix = '-withparmetis' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'ictce', 'version': '4.0.6'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] dependencies = [('ParMETIS', '4.0.2')] diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-5.3.0-withparmetis.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-5.3.0-withparmetis.eb index 6cd219c100..1f9476f389 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-5.3.0-withparmetis.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.0-ictce-5.3.0-withparmetis.eb @@ -2,14 +2,14 @@ name = 'SuiteSparse' version = '3.7.0' versionsuffix = '-withparmetis' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] dependencies = [('ParMETIS', '4.0.2')] diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-goolf-1.4.10-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-goolf-1.4.10-ParMETIS-4.0.3.eb index 62896760f1..7e5f7e0b83 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-goolf-1.4.10-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-goolf-1.4.10-ParMETIS-4.0.3.eb @@ -1,13 +1,13 @@ name = 'SuiteSparse' version = '3.7.1' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] parmetis = 'ParMETIS' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-ictce-5.5.0-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-ictce-5.5.0-ParMETIS-4.0.3.eb index 02396e3728..7977eac7fc 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-ictce-5.5.0-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-3.7.1-ictce-5.5.0-ParMETIS-4.0.3.eb @@ -1,13 +1,13 @@ name = 'SuiteSparse' version = '3.7.1' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'ictce', 'version': '5.5.0'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] parmetis = 'ParMETIS' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-goolf-1.4.10-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-goolf-1.4.10-ParMETIS-4.0.3.eb index 1193a31b09..e1b3ef8d57 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-goolf-1.4.10-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-goolf-1.4.10-ParMETIS-4.0.3.eb @@ -1,13 +1,13 @@ name = 'SuiteSparse' version = '4.2.1' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] parmetis = 'ParMETIS' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-ictce-5.5.0-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-ictce-5.5.0-ParMETIS-4.0.3.eb index c537c65755..a4f5ba5d15 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-ictce-5.5.0-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-ictce-5.5.0-ParMETIS-4.0.3.eb @@ -1,13 +1,13 @@ name = 'SuiteSparse' version = '4.2.1' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'ictce', 'version': '5.5.0'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] parmetis = 'ParMETIS' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-intel-2014b-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-intel-2014b-ParMETIS-4.0.3.eb index eb9d92e5d5..bb01d5bbb6 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-intel-2014b-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.2.1-intel-2014b-ParMETIS-4.0.3.eb @@ -1,13 +1,13 @@ name = 'SuiteSparse' version = '4.2.1' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} -source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] sources = [SOURCE_TAR_GZ] parmetis = 'ParMETIS' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015a-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015a-ParMETIS-4.0.3.eb index ace5e25985..3d9532a033 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015a-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015a-ParMETIS-4.0.3.eb @@ -1,7 +1,7 @@ name = 'SuiteSparse' version = '4.4.3' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'intel', 'version': '2015a'} diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.5-intel-2015b-METIS-5.1.0.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.5-intel-2015b-METIS-5.1.0.eb index 36dee081ed..cce45a4f26 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.5-intel-2015b-METIS-5.1.0.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.5-intel-2015b-METIS-5.1.0.eb @@ -1,7 +1,7 @@ name = 'SuiteSparse' version = '4.4.5' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'intel', 'version': '2015b'} diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb index f139f365f0..3136cae63d 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb @@ -1,7 +1,7 @@ name = 'SuiteSparse' version = '4.4.6' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'intel', 'version': '2015b'} diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb index f6beb0e31f..ac231b59ef 100644 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-4.5.1-intel-2016a-METIS-5.1.0.eb @@ -1,7 +1,7 @@ name = 'SuiteSparse' version = '4.5.1' -homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" toolchain = {'name': 'intel', 'version': '2016a'} -- GitLab From 004d3d32eab2707b3c8111d05e1601944a309008 Mon Sep 17 00:00:00 2001 From: Ward Poelmans Date: Wed, 9 Mar 2016 14:24:22 +0100 Subject: [PATCH 437/732] Fix remark --- easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb | 7 +++---- easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb index 363a280e90..d474edee9b 100644 --- a/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb +++ b/easybuild/easyconfigs/m/mutil/mutil-1.822.3-intel-2016a.eb @@ -1,4 +1,7 @@ name = 'mutil' +coreutils_maj = '8' +coreutils_min = '22' +version = '1.%s%s.3' % (coreutils_maj, coreutils_min) homepage = 'http://people.nas.nasa.gov/~kolano/projects/mutil.html' description = """Mutil is a set of standard utilities that have been parallelized to maximize performance on @@ -8,10 +11,6 @@ GNU coreutils, which have achieved 10/30x rates on one/many nodes. toolchain = {'name': 'intel', 'version': '2016a'} -coreutils_maj = '8' -coreutils_min = '22' -version = '1.%s%s.3' % (coreutils_maj, coreutils_min) - sources = [ "coreutils-%s.%s.tar.xz" % (coreutils_maj, coreutils_min), # must be first SOURCE_TGZ, diff --git a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb index 62fb0dbd9d..e47d185932 100644 --- a/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb +++ b/easybuild/easyconfigs/s/shift/shift-4.0-intel-2016a.eb @@ -24,8 +24,8 @@ skipsteps = ['build'] files_to_copy = [(['perl/shiftc', 'perl/shift-mgr', 'perl/shift-aux'], 'bin'), 'etc', (['doc/shiftc.1'], 'man/man1')] sanity_check_paths = { - 'files': ['bin/shiftc'], - 'dirs': ['etc'] + 'files': ['bin/%s' % x for x in ['shiftc', 'shift-mgr', 'shift-aux']], + 'dirs': ['etc', 'man/man1'] } moduleclass = 'tools' -- GitLab From d783767305fed790377296e4b1695ed98a5f308d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 9 Mar 2016 14:46:02 +0100 Subject: [PATCH 438/732] fix style issues: no tabs --- easybuild/easyconfigs/b/binutils/binutils-2.25.eb | 2 +- easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25.eb index 246106ec92..40e3ccc1a8 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25.eb @@ -12,7 +12,7 @@ sources = [SOURCE_TAR_GZ] source_urls = [GNU_SOURCE] builddependencies = [ - ('M4', '1.4.17'), + ('M4', '1.4.17'), ('flex', '2.5.39'), ('Bison', '3.0.4'), # zlib required, but being linked instatically, so not a runtime dep diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb index ce96075acd..32dffb057f 100644 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39-GCCcore-4.9.3.eb @@ -12,8 +12,8 @@ source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] # use same binutils version that was used when building GCCcore toolchain builddependencies = [ - ('M4', '1.4.17'), - ('binutils', '2.25', '', True) + ('M4', '1.4.17'), + ('binutils', '2.25', '', True) ] moduleclass = 'lang' -- GitLab From 7b57c9254a2b71bc6443b575a862831b6e0de888 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 9 Mar 2016 15:23:10 +0100 Subject: [PATCH 439/732] remove custom exts_filter in GC3Pie easyconfigs, since PythonPackage will use right filter by default --- easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.2.3.eb | 1 - easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.3.eb | 1 - easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.0.eb | 1 - easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.1.eb | 1 - easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.2.eb | 1 - 5 files changed, 5 deletions(-) diff --git a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.2.3.eb b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.2.3.eb index 3b725d6c3c..a6eca83b67 100644 --- a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.2.3.eb +++ b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.2.3.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c"import %(ext_name)s"', '') # allow use of system Python allow_system_deps = [('Python', SYS_PYTHON_VERSION)] diff --git a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.3.eb b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.3.eb index 662fb134c2..84677a5142 100644 --- a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.3.eb +++ b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.3.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c"import %(ext_name)s"', '') # allow use of system Python allow_system_deps = [('Python', SYS_PYTHON_VERSION)] diff --git a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.0.eb b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.0.eb index b08b112eb7..55217f87b7 100644 --- a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.0.eb +++ b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.0.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c"import %(ext_name)s"', '') # allow use of system Python allow_system_deps = [('Python', SYS_PYTHON_VERSION)] diff --git a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.1.eb b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.1.eb index 92f6d885db..dbc732d179 100644 --- a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.1.eb +++ b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.1.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c"import %(ext_name)s"', '') # allow use of system Python allow_system_deps = [('Python', SYS_PYTHON_VERSION)] diff --git a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.2.eb b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.2.eb index e5720c5610..0e7690c9c0 100644 --- a/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.2.eb +++ b/easybuild/easyconfigs/g/GC3Pie/GC3Pie-2.4.2.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c"import %(ext_name)s"', '') # allow use of system Python allow_system_deps = [('Python', SYS_PYTHON_VERSION)] -- GitLab From 08a1f1630b4a92d877a3bc279622d8cc3e7cf102 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 9 Mar 2016 15:56:32 +0100 Subject: [PATCH 440/732] remove custom exts_filter in various easyconfigs for (bundles of) Python packages --- .../i/IPython/IPython-3.2.1-intel-2015a-Python-2.7.10.eb | 1 - .../i/IPython/IPython-3.2.3-foss-2015a-Python-2.7.11.eb | 1 - .../i/IPython/IPython-3.2.3-intel-2015b-Python-2.7.10.eb | 1 - .../m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb | 1 - .../m/matplotlib/matplotlib-1.5.1-intel-2015b-Python-2.7.11.eb | 1 - .../m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-2.7.11.eb | 1 - .../n/numba/numba-0.22.1-intel-2015b-Python-2.7.11.eb | 1 - .../s/Sphinx/Sphinx-1.3.3-intel-2015b-Python-2.7.11.eb | 1 - 8 files changed, 8 deletions(-) diff --git a/easybuild/easyconfigs/i/IPython/IPython-3.2.1-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/i/IPython/IPython-3.2.1-intel-2015a-Python-2.7.10.eb index 4c966b0d8a..92dcaa700c 100644 --- a/easybuild/easyconfigs/i/IPython/IPython-3.2.1-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/i/IPython/IPython-3.2.1-intel-2015a-Python-2.7.10.eb @@ -25,7 +25,6 @@ dependencies = [ # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ("python -c 'import %(ext_name)s'", '') exts_list = [ ('pysqlite', '2.7.0', { diff --git a/easybuild/easyconfigs/i/IPython/IPython-3.2.3-foss-2015a-Python-2.7.11.eb b/easybuild/easyconfigs/i/IPython/IPython-3.2.3-foss-2015a-Python-2.7.11.eb index 6a2901ff52..693b2889a6 100644 --- a/easybuild/easyconfigs/i/IPython/IPython-3.2.3-foss-2015a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/i/IPython/IPython-3.2.3-foss-2015a-Python-2.7.11.eb @@ -25,7 +25,6 @@ dependencies = [ # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ("python -c 'import %(ext_name)s'", '') exts_list = [ ('pysqlite', '2.8.1', { diff --git a/easybuild/easyconfigs/i/IPython/IPython-3.2.3-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/i/IPython/IPython-3.2.3-intel-2015b-Python-2.7.10.eb index fd3e839da8..e3341fcf31 100644 --- a/easybuild/easyconfigs/i/IPython/IPython-3.2.3-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/i/IPython/IPython-3.2.3-intel-2015b-Python-2.7.10.eb @@ -25,7 +25,6 @@ dependencies = [ # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ("python -c 'import %(ext_name)s'", '') exts_list = [ ('pysqlite', '2.8.1', { diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb index 207a23ff90..712519a60c 100644 --- a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2015b-Python-2.7.10.eb @@ -13,7 +13,6 @@ toolchain = {'name': 'foss', 'version': '2015b'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c "import %(ext_name)s"', '') dependencies = [ ('Python', '2.7.10'), diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2015b-Python-2.7.11.eb index 1364208cee..8b047bb737 100644 --- a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2015b-Python-2.7.11.eb @@ -13,7 +13,6 @@ toolchain = {'name': 'intel', 'version': '2015b'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c "import %(ext_name)s"', '') dependencies = [ ('Python', '2.7.11'), diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-2.7.11.eb index c62d74a1eb..551c06ecef 100644 --- a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-2.7.11.eb @@ -13,7 +13,6 @@ toolchain = {'name': 'intel', 'version': '2016a'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c "import %(ext_name)s"', '') dependencies = [ ('Python', '2.7.11'), diff --git a/easybuild/easyconfigs/n/numba/numba-0.22.1-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/n/numba/numba-0.22.1-intel-2015b-Python-2.7.11.eb index 402bb7ef96..6456ccb4fb 100644 --- a/easybuild/easyconfigs/n/numba/numba-0.22.1-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/n/numba/numba-0.22.1-intel-2015b-Python-2.7.11.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'intel', 'version': '2015b'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c "import %(ext_name)s"', '') pyver = '2.7.11' versionsuffix = '-Python-%s' % pyver diff --git a/easybuild/easyconfigs/s/Sphinx/Sphinx-1.3.3-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/s/Sphinx/Sphinx-1.3.3-intel-2015b-Python-2.7.11.eb index 3813e03737..be559f9b42 100644 --- a/easybuild/easyconfigs/s/Sphinx/Sphinx-1.3.3-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/s/Sphinx/Sphinx-1.3.3-intel-2015b-Python-2.7.11.eb @@ -13,7 +13,6 @@ toolchain = {'name': 'intel', 'version': '2015b'} # this is a bundle of Python packages exts_defaultclass = 'PythonPackage' -exts_filter = ('python -c "import %(ext_name)s"', '') pyver = '2.7.11' pyshortver = '.'.join(pyver.split('.')[0:2]) -- GitLab From 63bb41c84a63bb99714ee6c70e633e6453074961 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 09:35:23 +0100 Subject: [PATCH 441/732] {bio}[intel/2016a] npstat 0.99 --- .../npstat-0.99_fix-hardcoding-Makefile.patch | 16 +++++++++ easybuild/easyconfigs/n/npstat/npstat.eb | 33 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch create mode 100644 easybuild/easyconfigs/n/npstat/npstat.eb diff --git a/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch b/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch new file mode 100644 index 0000000000..b9cdbe3811 --- /dev/null +++ b/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch @@ -0,0 +1,16 @@ +fix hardcoding of 'gcc' +author: Kenneth Hoste (HPC-UGent) +--- npstat/trunk/Makefile.orig 2016-02-15 01:16:51.000000000 +0100 ++++ npstat/trunk/Makefile 2016-03-10 09:25:46.000000000 +0100 +@@ -1,8 +1,7 @@ + all: npstat + +- + npstat: +- gcc -o npstat NPStat-v0.99.c -lgsl -lgslcblas -lm ++ ${CC} -o npstat NPStat-v0.99.c -lgsl -lgslcblas -lm + + clean: +- rm npstat +\ No newline at end of file ++ rm npstat diff --git a/easybuild/easyconfigs/n/npstat/npstat.eb b/easybuild/easyconfigs/n/npstat/npstat.eb new file mode 100644 index 0000000000..b8f9940b59 --- /dev/null +++ b/easybuild/easyconfigs/n/npstat/npstat.eb @@ -0,0 +1,33 @@ +easyblock = 'MakeCp' + +name = 'npstat' +version = '0.99' + +homepage = 'https://code.google.com/archive/p/npstat/' +description = """npstat implements some population genetics tests and estimators that can be applied + to pooled sequences from Next Generation Sequencing experiments.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/npstat/'] +sources = ['source-archive.zip'] + +patches = ['npstat-%(version)s_fix-hardcoding-Makefile.patch'] + +# commit 14, Oct 31st 2013 +checksums = ['a1595b7c46312d0f51b8b68987289337'] + +dependencies = [ + ('GSL', '1.16'), +] + +start_dir = 'trunk' + +files_to_copy = [(['npstat'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/npstat'], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From a9cd29fdaa6c1bc62c65738484548ab0dfad6d11 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 09:58:56 +0100 Subject: [PATCH 442/732] switch to foss/2016a (& fix easyconfig filename) + fix remarks w.r.t. $CFLAGS in patch --- .../n/npstat/{npstat.eb => npstat-0.99-foss-2016a.eb} | 2 +- .../n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename easybuild/easyconfigs/n/npstat/{npstat.eb => npstat-0.99-foss-2016a.eb} (93%) diff --git a/easybuild/easyconfigs/n/npstat/npstat.eb b/easybuild/easyconfigs/n/npstat/npstat-0.99-foss-2016a.eb similarity index 93% rename from easybuild/easyconfigs/n/npstat/npstat.eb rename to easybuild/easyconfigs/n/npstat/npstat-0.99-foss-2016a.eb index b8f9940b59..b72652fe93 100644 --- a/easybuild/easyconfigs/n/npstat/npstat.eb +++ b/easybuild/easyconfigs/n/npstat/npstat-0.99-foss-2016a.eb @@ -7,7 +7,7 @@ homepage = 'https://code.google.com/archive/p/npstat/' description = """npstat implements some population genetics tests and estimators that can be applied to pooled sequences from Next Generation Sequencing experiments.""" -toolchain = {'name': 'intel', 'version': '2016a'} +toolchain = {'name': 'foss', 'version': '2016a'} source_urls = ['https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/npstat/'] sources = ['source-archive.zip'] diff --git a/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch b/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch index b9cdbe3811..54420af1c1 100644 --- a/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch +++ b/easybuild/easyconfigs/n/npstat/npstat-0.99_fix-hardcoding-Makefile.patch @@ -1,4 +1,4 @@ -fix hardcoding of 'gcc' +fix hardcoding of 'gcc', add optimization flags defined in $CFLAGS author: Kenneth Hoste (HPC-UGent) --- npstat/trunk/Makefile.orig 2016-02-15 01:16:51.000000000 +0100 +++ npstat/trunk/Makefile 2016-03-10 09:25:46.000000000 +0100 @@ -8,7 +8,7 @@ author: Kenneth Hoste (HPC-UGent) - npstat: - gcc -o npstat NPStat-v0.99.c -lgsl -lgslcblas -lm -+ ${CC} -o npstat NPStat-v0.99.c -lgsl -lgslcblas -lm ++ ${CC} ${CFLAGS} -o npstat NPStat-v0.99.c -lgsl -lgslcblas -lm clean: - rm npstat -- GitLab From fe62c93d7d5080fcfa7782a71bd8399c207e47f1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 10:00:01 +0100 Subject: [PATCH 443/732] {lang,numlib}[foss/2016a] OCaml 4.02.3 + GSL 1.16 --- .../easyconfigs/g/GSL/GSL-1.16-foss-2016a.eb | 19 ++++++++ .../o/OCaml/OCaml-4.02.3-foss-2016a.eb | 48 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2016a.eb create mode 100644 easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2016a.eb diff --git a/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2016a.eb b/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2016a.eb new file mode 100644 index 0000000000..2cce073a65 --- /dev/null +++ b/easybuild/easyconfigs/g/GSL/GSL-1.16-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '1.16' + +homepage = 'http://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2016a.eb b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2016a.eb new file mode 100644 index 0000000000..ee452fb08e --- /dev/null +++ b/easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2016a.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +## +name = 'OCaml' +version = '4.02.3' + +homepage = 'http://ocaml.org/' +description = """OCaml is a general purpose industrial-strength programming language + with an emphasis on expressiveness and safety. Developed for more than 20 years at Inria + it benefits from one of the most advanced type systems and supports functional, + imperative and object-oriented styles of programming.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +opam_ver = '1.2.2' +source_urls = [ + 'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]), + 'https://github.com/ocaml/opam/releases/download/%s' % opam_ver, +] +sources = [ + SOURCELOWER_TAR_GZ, + 'opam-full-%s.tar.gz' % opam_ver, +] + +builddependencies = [('Autotools', '20150215')] +dependencies = [ + ('ncurses', '6.0'), + ('libreadline', '6.3'), + ('GSL', '1.16'), +] + +# parallel build tends to break +parallel = 1 + +# handled by OPAM, order matters! +exts_list = [ + ('ocamlfind', '1.5.5'), + ('batteries', '2.3.1'), + ('ocaml+twt', '0.94.0'), + ('gsl', '1.18.5'), +] + +moduleclass = 'lang' -- GitLab From 055acbe0dec9d4bc577a6d25cf4cb95601e7144f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 10:27:18 +0100 Subject: [PATCH 444/732] {bio}[foss/2016a] SNAPE-pooled r32 --- .../SNAPE-pooled-r32-foss-2016a.eb | 35 +++++++++++++++++++ ...E-pooled-r32_fix-hardcoding-Makefile.patch | 12 +++++++ 2 files changed, 47 insertions(+) create mode 100644 easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32-foss-2016a.eb create mode 100644 easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32_fix-hardcoding-Makefile.patch diff --git a/easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32-foss-2016a.eb b/easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32-foss-2016a.eb new file mode 100644 index 0000000000..ee4b4bad14 --- /dev/null +++ b/easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32-foss-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'MakeCp' + +name = 'SNAPE-pooled' +version = 'r32' + +homepage = 'https://code.google.com/archive/p/snape-pooled/' +description = """SNAPE-pooled computes the probability distribution for the frequency of the minor allele + in a certain population, at a certain position in the genome.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/snape-pooled/'] +sources = ['source-archive.zip'] + +patches = ['SNAPE-pooled-%(version)s_fix-hardcoding-Makefile.patch'] + +# commit 32, Aug 12th 2013 +checksums = ['0e9741a45731a2e92d84c129125db3f1'] + +dependencies = [ + ('OCaml', '4.02.3'), +] + +start_dir = 'trunk' + +buildopts = "snape-pooled snape-pooled-fast" + +files_to_copy = [(['snape-pooled', 'snape-pooled-fast'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/snape-pooled', 'bin/snape-pooled-fast'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32_fix-hardcoding-Makefile.patch b/easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32_fix-hardcoding-Makefile.patch new file mode 100644 index 0000000000..85d8d5a910 --- /dev/null +++ b/easybuild/easyconfigs/s/SNAPE-pooled/SNAPE-pooled-r32_fix-hardcoding-Makefile.patch @@ -0,0 +1,12 @@ +fix hardcoded 'gcc' + add optimization flags through $CFLAGS +author: Kenneth Hoste (HPC-UGent) +--- snape-pooled/trunk/Makefile.orig 2016-03-10 10:23:16.000000000 +0100 ++++ snape-pooled/trunk/Makefile 2016-03-10 10:23:32.000000000 +0100 +@@ -8,6 +8,6 @@ + latex $< + dvips -o snape-pooled-manual.ps snape-pooled-manual.dvi + snape-pooled-fast: snape-pooled.c +- gcc -g -o $@ $< -lm ++ ${CC} ${CFLAGS} -g -o $@ $< -lm + clean: + rm *.cmx *.cmi *.cmo pooled.o snape-pooled *.log *.ps *.dvi *.aux -- GitLab From 3c1a86c564c9ff99c8e7f1f6d755e98b695f2555 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 12:05:22 +0200 Subject: [PATCH 445/732] add easyconfig BWA-0.7.13-foss-2016a.eb, add easyconfig picard-2.1.1-Java-1.8.0_74.eb, add easyconfig GATK-3.5-Java-1.8.0_74.eb --- .../b/BWA/BWA-0.7.13-foss-2016a.eb | 32 +++++++++++++++ .../g/GATK/GATK-3.5-Java-1.8.0_74.eb | 40 +++++++++++++++++++ .../p/picard/picard-2.1.1-Java-1.8.0_74.eb | 18 +++++++++ 3 files changed, 90 insertions(+) create mode 100644 easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_74.eb create mode 100644 easybuild/easyconfigs/p/picard/picard-2.1.1-Java-1.8.0_74.eb diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2016a.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2016a.eb new file mode 100644 index 0000000000..419aba7bab --- /dev/null +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-foss-2016a.eb @@ -0,0 +1,32 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# +# Version >= 0.7.13 +# Author: Adam Huffman +# The Francis Crick Institute +# +# Note that upstream development is mainly at: https://github.com/lh3/bwa +## + +name = 'BWA' +version = '0.7.13' + +homepage = 'http://bio-bwa.sourceforge.net/' +description = """Burrows-Wheeler Aligner (BWA) is an efficient program that aligns + relatively short nucleotide sequences against a long reference sequence such as the human genome.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/lh3/%(name)s/archive/'] +sources = ['v%(version)s.tar.gz'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_74.eb b/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_74.eb new file mode 100644 index 0000000000..c52824dc92 --- /dev/null +++ b/easybuild/easyconfigs/g/GATK/GATK-3.5-Java-1.8.0_74.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.5' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +dependencies = [('Java', '1.8.0_74')] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/picard/picard-2.1.1-Java-1.8.0_74.eb b/easybuild/easyconfigs/p/picard/picard-2.1.1-Java-1.8.0_74.eb new file mode 100644 index 0000000000..b7bb2304d4 --- /dev/null +++ b/easybuild/easyconfigs/p/picard/picard-2.1.1-Java-1.8.0_74.eb @@ -0,0 +1,18 @@ +name = 'picard' +version = '2.1.1' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +dependencies = [('Java', '1.8.0_74')] + +modloadmsg = "To execute picard run: java -jar \\${EBROOTPICARD}/%(name)s.jar" + +moduleclass = 'bio' -- GitLab From 4b1b643f11d53d19d0c9665eac3a326eaa7d1a79 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 12:11:05 +0200 Subject: [PATCH 446/732] add easyconfig Python-3.5.1-foss-2016a.eb --- .../p/Python/Python-3.5.1-foss-2016a.eb | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb new file mode 100644 index 0000000000..38309ea23d --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb @@ -0,0 +1,109 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], + }), + ('scipy', scipyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +moduleclass = 'lang' -- GitLab From c012661d8159a3f76e32fe60a4e36aa035967117 Mon Sep 17 00:00:00 2001 From: Damian Alvarez Date: Thu, 10 Mar 2016 11:22:40 +0100 Subject: [PATCH 447/732] Removed hidden deps. Added missing popt easyconfig --- easybuild/easyconfigs/p/popt/popt-1.16.eb | 23 +++++++++++++++++++ .../p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb | 4 ---- .../psmpi-5.1.0-1-iccifort-2015.1.133.eb | 4 ---- .../p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb | 4 ---- .../p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb | 4 ---- .../psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb | 4 ---- .../psmpi-5.1.5-1-iccifort-2015.1.133.eb | 4 ---- 7 files changed, 23 insertions(+), 24 deletions(-) create mode 100644 easybuild/easyconfigs/p/popt/popt-1.16.eb diff --git a/easybuild/easyconfigs/p/popt/popt-1.16.eb b/easybuild/easyconfigs/p/popt/popt-1.16.eb new file mode 100644 index 0000000000..4b05ae3e4e --- /dev/null +++ b/easybuild/easyconfigs/p/popt/popt-1.16.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'popt' +version = "1.16" + +homepage = "http://freecode.com/projects/popt" +description = """Popt is a C library for parsing command line parameters.""" +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://rpm5.org/files/popt/'] +sources = [SOURCE_TAR_GZ] + +toolchainopts = {'optarch': False} +sanity_check_paths = { + 'files': ['include/popt.h', + ('lib/libpopt.a', 'lib64/libpopt.a'), + ('lib/libpopt.%s' % SHLIB_EXT, 'lib64/libpopt.%s' % SHLIB_EXT)], + 'dirs': [], +} + +maxparallel = 1 + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb index 3b8d70635f..89eb3c9f54 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb @@ -23,8 +23,4 @@ dependencies = [ ('pscom', '5.0.44-1', '', True), ] -hiddendependencies = [ - ('pscom', '5.0.44-1', '', True), -] - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb index a5c1e058f0..e8adea5cdd 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-iccifort-2015.1.133.eb @@ -23,8 +23,4 @@ dependencies = [ ('pscom', '5.0.48-1', '', True), ] -hiddendependencies = [ - ('pscom', '5.0.48-1', '', True), -] - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb index c783f37b64..1bfdad4fb7 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3-mt.eb @@ -23,8 +23,4 @@ dependencies = [ ('pscom', '5.0.48-1', '', True), ] -hiddendependencies = [ - ('pscom', '5.0.48-1', '', True), -] - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb index aac098925c..93f76f8af0 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-GCC-4.9.3.eb @@ -20,8 +20,4 @@ dependencies = [ ('pscom', '5.0.48-1', '', True), ] -hiddendependencies = [ - ('pscom', '5.0.48-1', '', True), -] - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb index c33effaedb..9bf66b5728 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133-mt.eb @@ -23,8 +23,4 @@ dependencies = [ ('pscom', '5.0.48-1', '', True), ] -hiddendependencies = [ - ('pscom', '5.0.48-1', '', True), -] - moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb index 22468a4f7f..8251dde430 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.5-1-iccifort-2015.1.133.eb @@ -20,8 +20,4 @@ dependencies = [ ('pscom', '5.0.48-1', '', True), ] -hiddendependencies = [ - ('pscom', '5.0.48-1', '', True), -] - moduleclass = 'mpi' -- GitLab From 9183d921acb0e78a46f4ba973e5ec3d4707ce945 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 12:23:12 +0200 Subject: [PATCH 448/732] add easyconfig Perl-5.22.1-foss-2016a.eb --- .../p/Perl/Perl-5.22.1-foss-2016a.eb | 886 ++++++++++++++++++ 1 file changed, 886 insertions(+) create mode 100644 easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb new file mode 100644 index 0000000000..652f0d5227 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb @@ -0,0 +1,886 @@ +name = 'Perl' +version = '5.22.1' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.60', { + 'source_tmpl': 'Config-General-2.60.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016020301', { + 'source_tmpl': 'Regexp-Common-2016020301.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.02', { + 'source_tmpl': 'DateTime-Locale-1.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '1.95', { + 'source_tmpl': 'DateTime-TimeZone-1.95.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4216', { + 'source_tmpl': 'Module-Build-0.4216.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.22', { + 'source_tmpl': 'Params-Validate-1.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.413', { + 'source_tmpl': 'List-MoreUtils-0.413.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.25', { + 'source_tmpl': 'DateTime-1.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.01', { + 'source_tmpl': 'Readonly-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ'], + }), + ('DBI', '1.634', { + 'source_tmpl': 'DBI-1.634.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "BINGOS"'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.10', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.001014', { + 'source_tmpl': 'Test-Simple-1.001014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.024', { + 'source_tmpl': 'IO-Socket-SSL-2.024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.03', { + 'source_tmpl': 'Test-Version-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.001001', { + 'source_tmpl': 'Moo-2.001001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.056', { + 'source_tmpl': 'HTTP-Tiny-0.056.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.15', { + 'source_tmpl': 'Package-DeprecationManager-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "GBARR"'], + }), + ('version', '0.9915', { + 'source_tmpl': 'version-0.9915.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + # fails: uses 'gcc' + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.14', { + 'source_tmpl': 'Sub-Name-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2006', { + 'source_tmpl': 'Canary-Stability-2006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.32', { + 'source_tmpl': 'Expect-1.32.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SZ/SZABGAB'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "INGY"'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.33', { + 'source_tmpl': 'XML-XPath-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.36', { + 'source_tmpl': 'Capture-Tiny-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000002', { + 'source_tmpl': 'strictures-2.000002.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.110', { + 'source_tmpl': 'Mock-Quick-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', 'v3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.09', { + 'source_tmpl': 'List-AllUtils-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.13', { + 'source_tmpl': 'Eval-Closure-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.006', { + 'source_tmpl': 'Test-Exception-LessClever-0.006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.43', { + 'source_tmpl': 'Scalar-List-Utils-1.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.04', { + 'source_tmpl': 'DateTime-Tiny-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1605', { + 'source_tmpl': 'Moose-2.1605.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.407', { + 'source_tmpl': 'SQL-Statement-1.407.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.109', { + 'source_tmpl': 'Data-OptList-0.109.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9156', { + 'source_tmpl': 'CPANPLUS-0.9156.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.04', { + 'source_tmpl': 'Cwd-Guard-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.14', { + 'source_tmpl': 'MailTools-2.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] + +moduleclass = 'lang' -- GitLab From 668864908a998ef90936acb70b3214e40a442f3f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 12:49:12 +0200 Subject: [PATCH 449/732] add easyconfig Doxygen-1.8.11-foss-2016a.eb, add easyconfig GDAL-2.0.2-foss-2016a.eb, add easyconfig HDF5-1.8.16-foss-2016a.eb, add easyconfig NASM-2.11.08-foss-2016a.eb, add easyconfig PROJ-4.9.2-foss-2016a.eb, add easyconfig R-3.2.3-foss-2016a.eb, add easyconfig Szip-2.1-foss-2016a.eb, add easyconfig cURL-7.47.0-foss-2016a.eb, add easyconfig expat-2.1.0-foss-2016a.eb, add easyconfig libjpeg-turbo-1.4.2-foss-2016a.eb, add easyconfig libpng-1.6.21-foss-2016a.eb, add easyconfig libxml2-2.9.3-foss-2016a.eb, add easyconfig netCDF-4.3.3.1-foss-2016a.eb --- .../c/cURL/cURL-7.47.0-foss-2016a.eb | 31 ++ .../d/Doxygen/Doxygen-1.8.11-foss-2016a.eb | 19 + .../e/expat/expat-2.1.0-foss-2016a.eb | 16 + .../g/GDAL/GDAL-2.0.2-foss-2016a.eb | 29 ++ .../h/HDF5/HDF5-1.8.16-foss-2016a.eb | 26 + .../libjpeg-turbo-1.4.2-foss-2016a.eb | 30 ++ .../l/libpng/libpng-1.6.21-foss-2016a.eb | 26 + .../l/libxml2/libxml2-2.9.3-foss-2016a.eb | 29 ++ .../n/NASM/NASM-2.11.08-foss-2016a.eb | 31 ++ .../n/netCDF/netCDF-4.3.3.1-foss-2016a.eb | 34 ++ .../p/PROJ/PROJ-4.9.2-foss-2016a.eb | 30 ++ .../easyconfigs/r/R/R-3.2.3-foss-2016a.eb | 443 ++++++++++++++++++ .../easyconfigs/s/Szip/Szip-2.1-foss-2016a.eb | 23 + 13 files changed, 767 insertions(+) create mode 100644 easybuild/easyconfigs/c/cURL/cURL-7.47.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-foss-2016a.eb create mode 100644 easybuild/easyconfigs/e/expat/expat-2.1.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/n/NASM/NASM-2.11.08-foss-2016a.eb create mode 100644 easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cURL/cURL-7.47.0-foss-2016a.eb b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-foss-2016a.eb new file mode 100644 index 0000000000..fa67e92bf9 --- /dev/null +++ b/easybuild/easyconfigs/c/cURL/cURL-7.47.0-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.47.0' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# dependencies = [('OpenSSL', '1.0.1s')] +# configopts = "--with-ssl=$EBROOTOPENSSL" + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-foss-2016a.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-foss-2016a.eb new file mode 100644 index 0000000000..fea350b755 --- /dev/null +++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.11-foss-2016a.eb @@ -0,0 +1,19 @@ +name = 'Doxygen' +version = '1.8.11' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.4.3'), + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/e/expat/expat-2.1.0-foss-2016a.eb b/easybuild/easyconfigs/e/expat/expat-2.1.0-foss-2016a.eb new file mode 100644 index 0000000000..c31495ccee --- /dev/null +++ b/easybuild/easyconfigs/e/expat/expat-2.1.0-foss-2016a.eb @@ -0,0 +1,16 @@ +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.1.0' + +homepage = 'http://expat.sourceforge.net/' +description = """Expat is an XML parser library written in C. It is a stream-oriented parser in which an application + registers handlers for things the parser might find in the XML document (like start tags)""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb new file mode 100644 index 0000000000..1d59b9bdac --- /dev/null +++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = '2.0.2' + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://download.osgeo.org/gdal/%(version)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('netCDF', '4.3.3.1'), + ('expat', '2.1.0'), + ('libxml2', '2.9.3'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['lib/libgdal.%s' % SHLIB_EXT, 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a.eb new file mode 100644 index 0000000000..84580d9ba8 --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a.eb @@ -0,0 +1,26 @@ +name = 'HDF5' +version = '1.8.16' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-1.8.15_configure_intel.patch', + 'configure_libtool.patch', +] + +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-foss-2016a.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-foss-2016a.eb new file mode 100644 index 0000000000..fe5eb900db --- /dev/null +++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-1.4.2-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libjpeg-turbo' +version = '1.4.2' + +homepage = 'http://sourceforge.net/projects/libjpeg-turbo/' +description = """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG +compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and transcoding. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('NASM', '2.11.08'), +] + +configopts = "--with-jpeg8" +runtest = "test" + +sanity_check_paths = { + 'files': ['bin/cjpeg', 'bin/djpeg', 'bin/jpegtran', 'bin/rdjpgcom', 'bin/tjbench', 'bin/wrjpgcom', + 'lib/libjpeg.a', 'lib/libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a', 'lib/libturbojpeg.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2016a.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2016a.eb new file mode 100644 index 0000000000..8cfac2c6e9 --- /dev/null +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.21-foss-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.21' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +configopts = "--with-pic" + +majminver = ''.join(version.split('.')[:2]) +sanity_check_paths = { + 'files': ['include/pngconf.h', 'include/png.h', 'include/pnglibconf.h', 'lib/libpng.a', + 'lib/libpng.%s' % SHLIB_EXT, 'lib/libpng%s.a' % majminver, 'lib/libpng%s.%s' % (majminver, SHLIB_EXT)], + 'dirs': ['bin', 'include/libpng%s' % majminver, 'share/man'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a.eb new file mode 100644 index 0000000000..9f21eb1b66 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NASM/NASM-2.11.08-foss-2016a.eb b/easybuild/easyconfigs/n/NASM/NASM-2.11.08-foss-2016a.eb new file mode 100644 index 0000000000..691495f52f --- /dev/null +++ b/easybuild/easyconfigs/n/NASM/NASM-2.11.08-foss-2016a.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-90.html +## + +easyblock = 'ConfigureMake' + +name = 'NASM' +version = '2.11.08' + +homepage = 'http://www.nasm.us/' +description = """NASM: General-purpose x86 assembler""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://www.nasm.us/pub/nasm/releasebuilds/%(version)s'] + +sanity_check_paths = { + 'files': ['bin/nasm'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-foss-2016a.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-foss-2016a.eb new file mode 100644 index 0000000000..921f90805c --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.3.3.1-foss-2016a.eb @@ -0,0 +1,34 @@ +name = 'netCDF' +version = '4.3.3.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/', + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/old', +] + +dependencies = [ + ('HDF5', '1.8.16'), + ('cURL', '7.47.0'), +] + +builddependencies = [ + ('CMake', '3.4.1'), + ('Doxygen', '1.8.11'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-foss-2016a.eb b/easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-foss-2016a.eb new file mode 100644 index 0000000000..8073931ffc --- /dev/null +++ b/easybuild/easyconfigs/p/PROJ/PROJ-4.9.2-foss-2016a.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2014-2015 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'PROJ' +version = '4.9.2' + +homepage = 'http://trac.osgeo.org/proj/' +description = """Program proj is a standard Unix filter function which converts +geographic longitude and latitude coordinates into cartesian coordinates""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['http://download.osgeo.org/proj/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/cs2cs', 'bin/geod', 'bin/invgeod', 'bin/invproj', + 'bin/nad2bin', 'bin/proj'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb new file mode 100644 index 0000000000..bc318c4a60 --- /dev/null +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb @@ -0,0 +1,443 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.47.0'), # for RCurl + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', ext_options), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', ext_options), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-foss-2016a.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-foss-2016a.eb new file mode 100644 index 0000000000..747addc8df --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From d2f2ef45168932839ef2d2582349600c6caf64c5 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 11:55:56 +0100 Subject: [PATCH 450/732] add Szip as dep in netCDF 4.4.0 easyconfig --- easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb index 2818683dd7..719c330b9d 100644 --- a/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb +++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.4.0-intel-2016a.eb @@ -17,6 +17,7 @@ source_urls = [ dependencies = [ ('HDF5', '1.8.16'), ('cURL', '7.47.0'), + ('Szip', '2.1'), ] builddependencies = [ -- GitLab From 37a39678dd32e9226a54a1ee46a26469c71b1c43 Mon Sep 17 00:00:00 2001 From: Damian Alvarez Date: Thu, 10 Mar 2016 12:12:56 +0100 Subject: [PATCH 451/732] Added missing pscom easyconfig --- .../easyconfigs/p/pscom/pscom-5.0.44-1.eb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb diff --git a/easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb b/easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb new file mode 100644 index 0000000000..9a9312254f --- /dev/null +++ b/easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'pscom' +version = '5.0.44-1' +homepage = 'http://www.par-tec.com' +description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance communication layer (MPI) and a sophisticated management layer.""" +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] +sources = ['%(version)s.zip'] + +dependencies = [('popt', '1.16')] + + +sanity_check_paths = { + 'files': ['include/pscom.h', ('lib/libpscom.%s' % SHLIB_EXT, 'lib64/libpscom.%s' % SHLIB_EXT)], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From ffb4b20b3c4d46fcf325dd4de71b3632c1c7bc20 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 13:20:31 +0200 Subject: [PATCH 452/732] enable usempi in GDAL easyconfig w/ foss toolchain --- easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb index 1d59b9bdac..80039ca350 100644 --- a/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb +++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.0.2-foss-2016a.eb @@ -10,6 +10,7 @@ description = """GDAL is a translator library for raster geospatial data formats data translation and processing.""" toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': True} source_urls = ['http://download.osgeo.org/gdal/%(version)s/'] sources = [SOURCELOWER_TAR_XZ] -- GitLab From 34a2545f7c7cbf88ccbf022a40e0927c70a9cabc Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 13:24:13 +0200 Subject: [PATCH 453/732] add easyconfig PHYLIP-3.696-foss-2016a.eb --- .../p/PHYLIP/PHYLIP-3.696-foss-2016a.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb diff --git a/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb new file mode 100644 index 0000000000..090561e4d6 --- /dev/null +++ b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'MakeCp' + +name = 'PHYLIP' +version = '3.696' + +homepage = 'http://evolution.genetics.washington.edu/phylip' +description = "PHYLIP is a free package of programs for inferring phylogenies." + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://evolution.gs.washington.edu/phylip/download/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +buildopts = '-Csrc -fMakefile.unx all && make -Csrc -fMakefile.unx install' + +files_to_copy = [(['exe/*'], 'bin'), (['src/libdrawgram.so', 'src/libdrawtree.so'], 'lib')] + +sanity_check_paths = { + 'files': ['lib/libdrawgram.so', 'lib/libdrawtree.so'], + 'dirs': ['bin'], +} + +moduleclass = 'bio' -- GitLab From 7d860929075a959ee22e62bc90940dc349531a6b Mon Sep 17 00:00:00 2001 From: Damian Alvarez Date: Thu, 10 Mar 2016 12:27:02 +0100 Subject: [PATCH 454/732] Minor fixed in versioning --- .../easyconfigs/p/pscom/pscom-5.0.44-1.eb | 20 ------------------- .../p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb | 2 +- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb diff --git a/easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb b/easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb deleted file mode 100644 index 9a9312254f..0000000000 --- a/easybuild/easyconfigs/p/pscom/pscom-5.0.44-1.eb +++ /dev/null @@ -1,20 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'pscom' -version = '5.0.44-1' -homepage = 'http://www.par-tec.com' -description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance communication layer (MPI) and a sophisticated management layer.""" -toolchain = {'name': 'dummy', 'version': 'dummy'} - -source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] -sources = ['%(version)s.zip'] - -dependencies = [('popt', '1.16')] - - -sanity_check_paths = { - 'files': ['include/pscom.h', ('lib/libpscom.%s' % SHLIB_EXT, 'lib64/libpscom.%s' % SHLIB_EXT)], - 'dirs': [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb index 89eb3c9f54..dfba4ffaa8 100644 --- a/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/p/psmpi/psmpi-5.1.0-1-GCC-4.9.2.eb @@ -20,7 +20,7 @@ source_urls = [ mpich_opts = '--enable-static' dependencies = [ - ('pscom', '5.0.44-1', '', True), + ('pscom', '5.0.48-1', '', True), ] moduleclass = 'mpi' -- GitLab From 0514fe5162f0f426085766ea037bc54463394c7a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 13:33:36 +0200 Subject: [PATCH 455/732] add easyconfig MUSCLE-3.8.31-intel-2016a.eb --- .../m/MUSCLE/MUSCLE-3.8.31-intel-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-intel-2016a.eb diff --git a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-intel-2016a.eb b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-intel-2016a.eb new file mode 100644 index 0000000000..467b83b6ce --- /dev/null +++ b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-intel-2016a.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'MUSCLE' +version = '3.8.31' + +homepage = 'http://drive5.com/muscle/' +description = """ MUSCLE is one of the best-performing multiple alignment programs + according to published benchmark tests, with accuracy and speed that are consistently + better than CLUSTALW. MUSCLE can align hundreds of sequences in seconds. Most users + learn everything they need to know about MUSCLE in a few minutes—only a handful of + command-line options are needed to perform common alignment tasks.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = ['%(namelower)s%(version)s_src.tar.gz'] +source_urls = ['http://www.drive5.com/muscle/downloads%(version)s/'] + +patches = ['MUSCLE-%(version)s_fix-mk-hardcoding.patch'] + +files_to_copy = [ + (["muscle"], 'bin')] + +sanity_check_paths = { + 'files': ["bin/muscle"], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 862ff1060c15af3f1a43b9cb638f217bd06679ec Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 14:00:19 +0200 Subject: [PATCH 456/732] add easyconfig MUSCLE-3.8.31-foss-2016a.eb --- .../m/MUSCLE/MUSCLE-3.8.31-foss-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-foss-2016a.eb diff --git a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-foss-2016a.eb b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-foss-2016a.eb new file mode 100644 index 0000000000..026425a12b --- /dev/null +++ b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-3.8.31-foss-2016a.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'MUSCLE' +version = '3.8.31' + +homepage = 'http://drive5.com/muscle/' +description = """ MUSCLE is one of the best-performing multiple alignment programs + according to published benchmark tests, with accuracy and speed that are consistently + better than CLUSTALW. MUSCLE can align hundreds of sequences in seconds. Most users + learn everything they need to know about MUSCLE in a few minutes—only a handful of + command-line options are needed to perform common alignment tasks.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s%(version)s_src.tar.gz'] +source_urls = ['http://www.drive5.com/muscle/downloads%(version)s/'] + +patches = ['MUSCLE-%(version)s_fix-mk-hardcoding.patch'] + +files_to_copy = [ + (["muscle"], 'bin')] + +sanity_check_paths = { + 'files': ["bin/muscle"], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 6ad2325b2de444cb179df604acb285eb6c980b12 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 14:22:48 +0200 Subject: [PATCH 457/732] add easyconfig R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb --- ...dle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb new file mode 100644 index 0000000000..d383fdf33e --- /dev/null +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb @@ -0,0 +1,152 @@ +easyblock = 'Bundle' + +name = 'R-bundle-Bioconductor' +version = '3.1' +versionsuffix = '-R-%(rver)s' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# these are extensions for R +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +dependencies = [('R', '3.2.3')] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.1/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.1/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.1/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends +# !! order of packages is important !! +exts_list = [ + ('BiocGenerics', '0.16.1', bioconductor_options), + ('Biobase', '2.30.0', bioconductor_options), + ('S4Vectors', '0.8.11', bioconductor_options), + ('IRanges', '2.4.8', bioconductor_options), + ('GenomeInfoDb', '1.6.3', bioconductor_options), + ('AnnotationDbi', '1.32.3', bioconductor_options), + ('XVector', '0.10.0', bioconductor_options), + ('zlibbioc', '1.16.0', bioconductor_options), + ('Biostrings', '2.38.4', bioconductor_options), + ('GenomicRanges', '1.22.4', bioconductor_options), + ('Rsamtools', '1.22.0', bioconductor_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('BiocParallel', '1.4.3', bioconductor_options), + ('GenomicAlignments', '1.6.3', bioconductor_options), + ('ShortRead', '1.28.0', bioconductor_options), + ('graph', '1.48.0', bioconductor_options), + ('affyio', '1.40.0', bioconductor_options), + ('BiocInstaller', '1.20.1', bioconductor_options), + ('preprocessCore', '1.32.0', bioconductor_options), + ('affy', '1.48.0', bioconductor_options), + ('GO.db', '', bioconductor_options), + ('limma', '3.26.8', bioconductor_options), + ('RBGL', '1.46.0', bioconductor_options), + ('org.Hs.eg.db', '', bioconductor_options), + ('AnnotationForge', '1.12.2', bioconductor_options), + ('KEGG.db', '', bioconductor_options), + ('annaffy', '1.42.0', bioconductor_options), + ('gcrma', '2.42.0', bioconductor_options), + ('oligoClasses', '1.32.0', bioconductor_options), + ('edgeR', '3.12.0', bioconductor_options), + ('PFAM.db', '', bioconductor_options), + ('perm', '1.0-0.0', ext_options), + ('baySeq', '2.4.1', bioconductor_options), + ('qvalue', '2.2.2', bioconductor_options), + ('impute', '1.44.0', bioconductor_options), + ('samr', '2.0', ext_options), + ('DEGseq', '1.24.0', bioconductor_options), + ('hgu133plus2.db', '', bioconductor_options), + ('illuminaio', '0.12.0', bioconductor_options), + ('rtracklayer', '1.30.2', bioconductor_options), + ('biomaRt', '2.26.1', bioconductor_options), + ('GenomicFeatures', '1.22.13', bioconductor_options), + ('bumphunter', '1.10.0', bioconductor_options), + ('multtest', '2.26.0', bioconductor_options), + ('siggenes', '1.44.0', bioconductor_options), + ('DynDoc', '1.48.0', bioconductor_options), + ('genoset', '1.24.0', bioconductor_options), + ('NOISeq', '2.14.1', bioconductor_options), + ('Rgraphviz', '2.14.0', bioconductor_options), + ('RNASeqPower', '1.10.0', bioconductor_options), + ('annotate', '1.48.0', bioconductor_options), + ('GSEABase', '1.32.0', bioconductor_options), + ('genefilter', '1.52.1', bioconductor_options), + ('Category', '2.36.0', bioconductor_options), + ('GOstats', '2.36.0', bioconductor_options), + ('BSgenome', '1.38.0', bioconductor_options), + ('VariantAnnotation', '1.16.4', bioconductor_options), + ('biovizBase', '1.18.0', bioconductor_options), + ('OrganismDbi', '1.12.1', bioconductor_options), + ('ggbio', '1.18.5', bioconductor_options), + ('geneplotter', '1.48.0', bioconductor_options), + ('DESeq2', '1.10.1', bioconductor_options), + ('ReportingTools', '2.10.0', bioconductor_options), + ('affycoretools', '1.42.0', bioconductor_options), + ('TxDb.Hsapiens.UCSC.hg19.knownGene', '', bioconductor_options), + ('Homo.sapiens', '', bioconductor_options), + ('BSgenome.Hsapiens.UCSC.hg19', '', bioconductor_options), + ('AgiMicroRna', '2.20.0', bioconductor_options), + ('GenomeGraphs', '1.30.0', bioconductor_options), + ('geneLenDataBase', '', bioconductor_options), + ('goseq', '1.22.0', bioconductor_options), + ('KEGGREST', '1.10.1', bioconductor_options), + ('KEGGgraph', '1.28.0', bioconductor_options), + ('KEGGprofile', '1.12.0', bioconductor_options), + ('GEOquery', '2.36.0', bioconductor_options), + ('minfi', '1.16.1', bioconductor_options), + ('FDb.InfiniumMethylation.hg19', '', bioconductor_options), + ('methylumi', '2.16.0', bioconductor_options), + ('lumi', '2.22.1', bioconductor_options), + ('widgetTools', '1.48.0', bioconductor_options), + ('tkWidgets', '1.48.0', bioconductor_options), + ('Mfuzz', '2.30.0', bioconductor_options), + ('maSigPro', '1.42.0', bioconductor_options), + ('SPIA', '2.22.0', bioconductor_options), + ('Gviz', '1.14.4', bioconductor_options), + ('cummeRbund', '2.12.1', bioconductor_options), + ('GenomicFiles', '1.6.2', bioconductor_options), + ('derfinderHelper', '1.4.1', bioconductor_options), + ('derfinder', '1.4.4', bioconductor_options), + ('polyester', '1.6.0', bioconductor_options), + ('Rsubread', '1.20.3', bioconductor_options), + ('pcaMethods', '1.60.0', bioconductor_options), + ('marray', '1.48.0', bioconductor_options), + ('CGHbase', '1.30.0', bioconductor_options), + ('sigaR', '1.14.0', bioconductor_options), + ('HCsnip', '1.10.0', bioconductor_options), + ('metagenomeSeq', '1.12.0', bioconductor_options), + ('gdsfmt', '1.6.2', bioconductor_options), + ('SNPRelate', '1.4.2', bioconductor_options), +] + +modextrapaths = {'R_LIBS': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['AnnotationDbi', 'BiocInstaller', 'GenomicFeatures'], +} + +moduleclass = 'bio' -- GitLab From 60ac2c471e4c75e930f78b85fc9315806f75072d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 14:25:56 +0200 Subject: [PATCH 458/732] add easyconfig R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb --- ...dle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb new file mode 100644 index 0000000000..43d2df9a2e --- /dev/null +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb @@ -0,0 +1,152 @@ +easyblock = 'Bundle' + +name = 'R-bundle-Bioconductor' +version = '3.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# these are extensions for R +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +dependencies = [('R', '3.2.3')] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.1/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.1/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.1/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends +# !! order of packages is important !! +exts_list = [ + ('BiocGenerics', '0.16.1', bioconductor_options), + ('Biobase', '2.30.0', bioconductor_options), + ('S4Vectors', '0.8.11', bioconductor_options), + ('IRanges', '2.4.8', bioconductor_options), + ('GenomeInfoDb', '1.6.3', bioconductor_options), + ('AnnotationDbi', '1.32.3', bioconductor_options), + ('XVector', '0.10.0', bioconductor_options), + ('zlibbioc', '1.16.0', bioconductor_options), + ('Biostrings', '2.38.4', bioconductor_options), + ('GenomicRanges', '1.22.4', bioconductor_options), + ('Rsamtools', '1.22.0', bioconductor_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('BiocParallel', '1.4.3', bioconductor_options), + ('GenomicAlignments', '1.6.3', bioconductor_options), + ('ShortRead', '1.28.0', bioconductor_options), + ('graph', '1.48.0', bioconductor_options), + ('affyio', '1.40.0', bioconductor_options), + ('BiocInstaller', '1.20.1', bioconductor_options), + ('preprocessCore', '1.32.0', bioconductor_options), + ('affy', '1.48.0', bioconductor_options), + ('GO.db', '', bioconductor_options), + ('limma', '3.26.8', bioconductor_options), + ('RBGL', '1.46.0', bioconductor_options), + ('org.Hs.eg.db', '', bioconductor_options), + ('AnnotationForge', '1.12.2', bioconductor_options), + ('KEGG.db', '', bioconductor_options), + ('annaffy', '1.42.0', bioconductor_options), + ('gcrma', '2.42.0', bioconductor_options), + ('oligoClasses', '1.32.0', bioconductor_options), + ('edgeR', '3.12.0', bioconductor_options), + ('PFAM.db', '', bioconductor_options), + ('perm', '1.0-0.0', ext_options), + ('baySeq', '2.4.1', bioconductor_options), + ('qvalue', '2.2.2', bioconductor_options), + ('impute', '1.44.0', bioconductor_options), + ('samr', '2.0', ext_options), + ('DEGseq', '1.24.0', bioconductor_options), + ('hgu133plus2.db', '', bioconductor_options), + ('illuminaio', '0.12.0', bioconductor_options), + ('rtracklayer', '1.30.2', bioconductor_options), + ('biomaRt', '2.26.1', bioconductor_options), + ('GenomicFeatures', '1.22.13', bioconductor_options), + ('bumphunter', '1.10.0', bioconductor_options), + ('multtest', '2.26.0', bioconductor_options), + ('siggenes', '1.44.0', bioconductor_options), + ('DynDoc', '1.48.0', bioconductor_options), + ('genoset', '1.24.0', bioconductor_options), + ('NOISeq', '2.14.1', bioconductor_options), + ('Rgraphviz', '2.14.0', bioconductor_options), + ('RNASeqPower', '1.10.0', bioconductor_options), + ('annotate', '1.48.0', bioconductor_options), + ('GSEABase', '1.32.0', bioconductor_options), + ('genefilter', '1.52.1', bioconductor_options), + ('Category', '2.36.0', bioconductor_options), + ('GOstats', '2.36.0', bioconductor_options), + ('BSgenome', '1.38.0', bioconductor_options), + ('VariantAnnotation', '1.16.4', bioconductor_options), + ('biovizBase', '1.18.0', bioconductor_options), + ('OrganismDbi', '1.12.1', bioconductor_options), + ('ggbio', '1.18.5', bioconductor_options), + ('geneplotter', '1.48.0', bioconductor_options), + ('DESeq2', '1.10.1', bioconductor_options), + ('ReportingTools', '2.10.0', bioconductor_options), + ('affycoretools', '1.42.0', bioconductor_options), + ('TxDb.Hsapiens.UCSC.hg19.knownGene', '', bioconductor_options), + ('Homo.sapiens', '', bioconductor_options), + ('BSgenome.Hsapiens.UCSC.hg19', '', bioconductor_options), + ('AgiMicroRna', '2.20.0', bioconductor_options), + ('GenomeGraphs', '1.30.0', bioconductor_options), + ('geneLenDataBase', '', bioconductor_options), + ('goseq', '1.22.0', bioconductor_options), + ('KEGGREST', '1.10.1', bioconductor_options), + ('KEGGgraph', '1.28.0', bioconductor_options), + ('KEGGprofile', '1.12.0', bioconductor_options), + ('GEOquery', '2.36.0', bioconductor_options), + ('minfi', '1.16.1', bioconductor_options), + ('FDb.InfiniumMethylation.hg19', '', bioconductor_options), + ('methylumi', '2.16.0', bioconductor_options), + ('lumi', '2.22.1', bioconductor_options), + ('widgetTools', '1.48.0', bioconductor_options), + ('tkWidgets', '1.48.0', bioconductor_options), + ('Mfuzz', '2.30.0', bioconductor_options), + ('maSigPro', '1.42.0', bioconductor_options), + ('SPIA', '2.22.0', bioconductor_options), + ('Gviz', '1.14.4', bioconductor_options), + ('cummeRbund', '2.12.1', bioconductor_options), + ('GenomicFiles', '1.6.2', bioconductor_options), + ('derfinderHelper', '1.4.1', bioconductor_options), + ('derfinder', '1.4.4', bioconductor_options), + ('polyester', '1.6.0', bioconductor_options), + ('Rsubread', '1.20.3', bioconductor_options), + ('pcaMethods', '1.60.0', bioconductor_options), + ('marray', '1.48.0', bioconductor_options), + ('CGHbase', '1.30.0', bioconductor_options), + ('sigaR', '1.14.0', bioconductor_options), + ('HCsnip', '1.10.0', bioconductor_options), + ('metagenomeSeq', '1.12.0', bioconductor_options), + ('gdsfmt', '1.6.2', bioconductor_options), + ('SNPRelate', '1.4.2', bioconductor_options), +] + +modextrapaths = {'R_LIBS': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['AnnotationDbi', 'BiocInstaller', 'GenomicFeatures'], +} + +moduleclass = 'bio' -- GitLab From b66998ce4164d27da3f9e01567ec7e5dabffb228 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 14:40:58 +0200 Subject: [PATCH 459/732] modify easyconfig R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb --- ...dle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb index 43d2df9a2e..47a6df9dac 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb @@ -29,9 +29,9 @@ bioconductor_options = { 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', - 'http://www.bioconductor.org/packages/3.1/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/3.1/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/3.1/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/%(version)s/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/%(version)s/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/%(version)s/data/experiment/src/contrib/', ], 'source_tmpl': name_tmpl, } @@ -61,24 +61,24 @@ exts_list = [ ('BiocInstaller', '1.20.1', bioconductor_options), ('preprocessCore', '1.32.0', bioconductor_options), ('affy', '1.48.0', bioconductor_options), - ('GO.db', '', bioconductor_options), + ('GO.db', '3.2.2', bioconductor_options), ('limma', '3.26.8', bioconductor_options), ('RBGL', '1.46.0', bioconductor_options), - ('org.Hs.eg.db', '', bioconductor_options), + ('org.Hs.eg.db', '3.2.3', bioconductor_options), ('AnnotationForge', '1.12.2', bioconductor_options), - ('KEGG.db', '', bioconductor_options), + ('KEGG.db', '3.2.2', bioconductor_options), ('annaffy', '1.42.0', bioconductor_options), ('gcrma', '2.42.0', bioconductor_options), ('oligoClasses', '1.32.0', bioconductor_options), ('edgeR', '3.12.0', bioconductor_options), - ('PFAM.db', '', bioconductor_options), + ('PFAM.db', '3.2.2', bioconductor_options), ('perm', '1.0-0.0', ext_options), ('baySeq', '2.4.1', bioconductor_options), ('qvalue', '2.2.2', bioconductor_options), ('impute', '1.44.0', bioconductor_options), ('samr', '2.0', ext_options), ('DEGseq', '1.24.0', bioconductor_options), - ('hgu133plus2.db', '', bioconductor_options), + ('hgu133plus2.db', '3.2.2', bioconductor_options), ('illuminaio', '0.12.0', bioconductor_options), ('rtracklayer', '1.30.2', bioconductor_options), ('biomaRt', '2.26.1', bioconductor_options), @@ -105,19 +105,19 @@ exts_list = [ ('DESeq2', '1.10.1', bioconductor_options), ('ReportingTools', '2.10.0', bioconductor_options), ('affycoretools', '1.42.0', bioconductor_options), - ('TxDb.Hsapiens.UCSC.hg19.knownGene', '', bioconductor_options), - ('Homo.sapiens', '', bioconductor_options), - ('BSgenome.Hsapiens.UCSC.hg19', '', bioconductor_options), + ('TxDb.Hsapiens.UCSC.hg19.knownGene', '3.2.2', bioconductor_options), + ('Homo.sapiens', '1.3.1', bioconductor_options), + ('BSgenome.Hsapiens.UCSC.hg19', '1.4.0', bioconductor_options), ('AgiMicroRna', '2.20.0', bioconductor_options), ('GenomeGraphs', '1.30.0', bioconductor_options), - ('geneLenDataBase', '', bioconductor_options), + ('geneLenDataBase', '1.6.0', bioconductor_options), ('goseq', '1.22.0', bioconductor_options), ('KEGGREST', '1.10.1', bioconductor_options), ('KEGGgraph', '1.28.0', bioconductor_options), ('KEGGprofile', '1.12.0', bioconductor_options), ('GEOquery', '2.36.0', bioconductor_options), ('minfi', '1.16.1', bioconductor_options), - ('FDb.InfiniumMethylation.hg19', '', bioconductor_options), + ('FDb.InfiniumMethylation.hg19', '2.2.0', bioconductor_options), ('methylumi', '2.16.0', bioconductor_options), ('lumi', '2.22.1', bioconductor_options), ('widgetTools', '1.48.0', bioconductor_options), -- GitLab From 3240a23cad4ea79d6fcc1695fb8db8f4489a07ed Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 13:48:50 +0100 Subject: [PATCH 460/732] add phangorn extension in R 3.2.3 easyconfigs --- easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb | 1 + easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb | 1 + easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb | 1 + easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb | 1 + 4 files changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb index dcabcfedb0..966d48e3c9 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2015b.eb @@ -438,6 +438,7 @@ exts_list = [ ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb index bc318c4a60..323a1f2507 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-foss-2016a.eb @@ -438,6 +438,7 @@ exts_list = [ ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb index 49fadf4c1f..2fead5c720 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -450,6 +450,7 @@ exts_list = [ ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb index ddf0479c12..91dc12b964 100644 --- a/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb +++ b/easybuild/easyconfigs/r/R/R-3.2.3-intel-2016a.eb @@ -438,6 +438,7 @@ exts_list = [ ('qgraph', '1.3.2', ext_options), ('diveRsity', '1.9.89', ext_options), ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), ] moduleclass = 'lang' -- GitLab From 18427a87b82e5d144a995851376c100da8b2389f Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Thu, 10 Mar 2016 15:22:31 +0100 Subject: [PATCH 461/732] Fix OS dependencies for MVAPICH2 with BLCR checkpoint/restart support --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index cee59253ac..6cd874bb9a 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -23,7 +23,10 @@ dependencies = [('hwloc', '1.5.1')] # enable checkpointing support withchkpt = True -osdependencies = ['blcr-libs', 'blcr-devel'] +osdependencies = [ + ('libcr-dev', 'blcr-devel'), + ('libattr1-dev', 'libattr-devel'), +] builddependencies = [('Bison', '2.5')] -- GitLab From cd6eed7dbf4cde9809f8c0dadfa96317fc62934c Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 17:01:20 +0200 Subject: [PATCH 462/732] modify easyconfig R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb, add easyconfig R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb --- ...dle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb | 6 +- ...le-Bioconductor-3.2-intel-2016a-R-3.2.3.eb | 154 ++++++++++++++++++ 2 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb index 47a6df9dac..747435a5bf 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb @@ -45,15 +45,16 @@ exts_list = [ ('IRanges', '2.4.8', bioconductor_options), ('GenomeInfoDb', '1.6.3', bioconductor_options), ('AnnotationDbi', '1.32.3', bioconductor_options), - ('XVector', '0.10.0', bioconductor_options), ('zlibbioc', '1.16.0', bioconductor_options), + ('XVector', '0.10.0', bioconductor_options), ('Biostrings', '2.38.4', bioconductor_options), ('GenomicRanges', '1.22.4', bioconductor_options), + ('BiocParallel', '1.4.3', bioconductor_options), ('Rsamtools', '1.22.0', bioconductor_options), ('lambda.r', '1.1.7', ext_options), ('futile.options', '1.0.0', ext_options), ('futile.logger', '1.4.1', ext_options), - ('BiocParallel', '1.4.3', bioconductor_options), + ('SummarizedExperiment', '1.0.2', bioconductor_options), ('GenomicAlignments', '1.6.3', bioconductor_options), ('ShortRead', '1.28.0', bioconductor_options), ('graph', '1.48.0', bioconductor_options), @@ -116,6 +117,7 @@ exts_list = [ ('KEGGgraph', '1.28.0', bioconductor_options), ('KEGGprofile', '1.12.0', bioconductor_options), ('GEOquery', '2.36.0', bioconductor_options), + ('mixOmics', '5.2.0', ext_options), ('minfi', '1.16.1', bioconductor_options), ('FDb.InfiniumMethylation.hg19', '2.2.0', bioconductor_options), ('methylumi', '2.16.0', bioconductor_options), diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb new file mode 100644 index 0000000000..f4c9219e9d --- /dev/null +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb @@ -0,0 +1,154 @@ +easyblock = 'Bundle' + +name = 'R-bundle-Bioconductor' +version = '3.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# these are extensions for R +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +dependencies = [('R', '3.2.3')] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/%(version)s/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/%(version)s/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/%(version)s/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends +# !! order of packages is important !! +exts_list = [ + ('BiocGenerics', '0.16.1', bioconductor_options), + ('Biobase', '2.30.0', bioconductor_options), + ('S4Vectors', '0.8.11', bioconductor_options), + ('IRanges', '2.4.8', bioconductor_options), + ('GenomeInfoDb', '1.6.3', bioconductor_options), + ('AnnotationDbi', '1.32.3', bioconductor_options), + ('zlibbioc', '1.16.0', bioconductor_options), + ('XVector', '0.10.0', bioconductor_options), + ('Biostrings', '2.38.4', bioconductor_options), + ('GenomicRanges', '1.22.4', bioconductor_options), + ('BiocParallel', '1.4.3', bioconductor_options), + ('Rsamtools', '1.22.0', bioconductor_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('SummarizedExperiment', '1.0.2', bioconductor_options), + ('GenomicAlignments', '1.6.3', bioconductor_options), + ('ShortRead', '1.28.0', bioconductor_options), + ('graph', '1.48.0', bioconductor_options), + ('affyio', '1.40.0', bioconductor_options), + ('BiocInstaller', '1.20.1', bioconductor_options), + ('preprocessCore', '1.32.0', bioconductor_options), + ('affy', '1.48.0', bioconductor_options), + ('GO.db', '3.2.2', bioconductor_options), + ('limma', '3.26.8', bioconductor_options), + ('RBGL', '1.46.0', bioconductor_options), + ('org.Hs.eg.db', '3.2.3', bioconductor_options), + ('AnnotationForge', '1.12.2', bioconductor_options), + ('KEGG.db', '3.2.2', bioconductor_options), + ('annaffy', '1.42.0', bioconductor_options), + ('gcrma', '2.42.0', bioconductor_options), + ('oligoClasses', '1.32.0', bioconductor_options), + ('edgeR', '3.12.0', bioconductor_options), + ('PFAM.db', '3.2.2', bioconductor_options), + ('perm', '1.0-0.0', ext_options), + ('baySeq', '2.4.1', bioconductor_options), + ('qvalue', '2.2.2', bioconductor_options), + ('impute', '1.44.0', bioconductor_options), + ('samr', '2.0', ext_options), + ('DEGseq', '1.24.0', bioconductor_options), + ('hgu133plus2.db', '3.2.2', bioconductor_options), + ('illuminaio', '0.12.0', bioconductor_options), + ('rtracklayer', '1.30.2', bioconductor_options), + ('biomaRt', '2.26.1', bioconductor_options), + ('GenomicFeatures', '1.22.13', bioconductor_options), + ('bumphunter', '1.10.0', bioconductor_options), + ('multtest', '2.26.0', bioconductor_options), + ('siggenes', '1.44.0', bioconductor_options), + ('DynDoc', '1.48.0', bioconductor_options), + ('genoset', '1.24.0', bioconductor_options), + ('NOISeq', '2.14.1', bioconductor_options), + ('Rgraphviz', '2.14.0', bioconductor_options), + ('RNASeqPower', '1.10.0', bioconductor_options), + ('annotate', '1.48.0', bioconductor_options), + ('GSEABase', '1.32.0', bioconductor_options), + ('genefilter', '1.52.1', bioconductor_options), + ('Category', '2.36.0', bioconductor_options), + ('GOstats', '2.36.0', bioconductor_options), + ('BSgenome', '1.38.0', bioconductor_options), + ('VariantAnnotation', '1.16.4', bioconductor_options), + ('biovizBase', '1.18.0', bioconductor_options), + ('OrganismDbi', '1.12.1', bioconductor_options), + ('ggbio', '1.18.5', bioconductor_options), + ('geneplotter', '1.48.0', bioconductor_options), + ('DESeq2', '1.10.1', bioconductor_options), + ('ReportingTools', '2.10.0', bioconductor_options), + ('affycoretools', '1.42.0', bioconductor_options), + ('TxDb.Hsapiens.UCSC.hg19.knownGene', '3.2.2', bioconductor_options), + ('Homo.sapiens', '1.3.1', bioconductor_options), + ('BSgenome.Hsapiens.UCSC.hg19', '1.4.0', bioconductor_options), + ('AgiMicroRna', '2.20.0', bioconductor_options), + ('GenomeGraphs', '1.30.0', bioconductor_options), + ('geneLenDataBase', '1.6.0', bioconductor_options), + ('goseq', '1.22.0', bioconductor_options), + ('KEGGREST', '1.10.1', bioconductor_options), + ('KEGGgraph', '1.28.0', bioconductor_options), + ('KEGGprofile', '1.12.0', bioconductor_options), + ('GEOquery', '2.36.0', bioconductor_options), + ('mixOmics', '5.2.0', ext_options), + ('minfi', '1.16.1', bioconductor_options), + ('FDb.InfiniumMethylation.hg19', '2.2.0', bioconductor_options), + ('methylumi', '2.16.0', bioconductor_options), + ('lumi', '2.22.1', bioconductor_options), + ('widgetTools', '1.48.0', bioconductor_options), + ('tkWidgets', '1.48.0', bioconductor_options), + ('Mfuzz', '2.30.0', bioconductor_options), + ('maSigPro', '1.42.0', bioconductor_options), + ('SPIA', '2.22.0', bioconductor_options), + ('Gviz', '1.14.4', bioconductor_options), + ('cummeRbund', '2.12.1', bioconductor_options), + ('GenomicFiles', '1.6.2', bioconductor_options), + ('derfinderHelper', '1.4.1', bioconductor_options), + ('derfinder', '1.4.4', bioconductor_options), + ('polyester', '1.6.0', bioconductor_options), + ('Rsubread', '1.20.3', bioconductor_options), + ('pcaMethods', '1.60.0', bioconductor_options), + ('marray', '1.48.0', bioconductor_options), + ('CGHbase', '1.30.0', bioconductor_options), + ('sigaR', '1.14.0', bioconductor_options), + ('HCsnip', '1.10.0', bioconductor_options), + ('metagenomeSeq', '1.12.0', bioconductor_options), + ('gdsfmt', '1.6.2', bioconductor_options), + ('SNPRelate', '1.4.2', bioconductor_options), +] + +modextrapaths = {'R_LIBS': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['AnnotationDbi', 'BiocInstaller', 'GenomicFeatures'], +} + +moduleclass = 'bio' -- GitLab From baf9329fdbc191d90ae2a5f392a6ef9b6c12df9f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 10 Mar 2016 16:52:26 +0100 Subject: [PATCH 463/732] remove wrong easyconfig --- ...dle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb | 152 ------------------ 1 file changed, 152 deletions(-) delete mode 100644 easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb deleted file mode 100644 index d383fdf33e..0000000000 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.1-foss-2016a-R-3.2.3.eb +++ /dev/null @@ -1,152 +0,0 @@ -easyblock = 'Bundle' - -name = 'R-bundle-Bioconductor' -version = '3.1' -versionsuffix = '-R-%(rver)s' - -homepage = 'http://www.r-project.org/' -description = """R is a free software environment for statistical computing and graphics.""" - -toolchain = {'name': 'foss', 'version': '2016a'} - -# these are extensions for R -exts_defaultclass = 'RPackage' -exts_filter = ("R -q --no-save", "library(%(ext_name)s)") - -dependencies = [('R', '3.2.3')] - -name_tmpl = '%(name)s_%(version)s.tar.gz' -ext_options = { - 'source_urls': [ - 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive - 'http://cran.r-project.org/src/contrib/', # current version of packages - 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages - ], - 'source_tmpl': name_tmpl, -} -bioconductor_options = { - 'source_urls': [ - 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', - 'http://www.bioconductor.org/packages/3.1/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/3.1/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/3.1/data/experiment/src/contrib/', - ], - 'source_tmpl': name_tmpl, -} - -# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends -# !! order of packages is important !! -exts_list = [ - ('BiocGenerics', '0.16.1', bioconductor_options), - ('Biobase', '2.30.0', bioconductor_options), - ('S4Vectors', '0.8.11', bioconductor_options), - ('IRanges', '2.4.8', bioconductor_options), - ('GenomeInfoDb', '1.6.3', bioconductor_options), - ('AnnotationDbi', '1.32.3', bioconductor_options), - ('XVector', '0.10.0', bioconductor_options), - ('zlibbioc', '1.16.0', bioconductor_options), - ('Biostrings', '2.38.4', bioconductor_options), - ('GenomicRanges', '1.22.4', bioconductor_options), - ('Rsamtools', '1.22.0', bioconductor_options), - ('lambda.r', '1.1.7', ext_options), - ('futile.options', '1.0.0', ext_options), - ('futile.logger', '1.4.1', ext_options), - ('BiocParallel', '1.4.3', bioconductor_options), - ('GenomicAlignments', '1.6.3', bioconductor_options), - ('ShortRead', '1.28.0', bioconductor_options), - ('graph', '1.48.0', bioconductor_options), - ('affyio', '1.40.0', bioconductor_options), - ('BiocInstaller', '1.20.1', bioconductor_options), - ('preprocessCore', '1.32.0', bioconductor_options), - ('affy', '1.48.0', bioconductor_options), - ('GO.db', '', bioconductor_options), - ('limma', '3.26.8', bioconductor_options), - ('RBGL', '1.46.0', bioconductor_options), - ('org.Hs.eg.db', '', bioconductor_options), - ('AnnotationForge', '1.12.2', bioconductor_options), - ('KEGG.db', '', bioconductor_options), - ('annaffy', '1.42.0', bioconductor_options), - ('gcrma', '2.42.0', bioconductor_options), - ('oligoClasses', '1.32.0', bioconductor_options), - ('edgeR', '3.12.0', bioconductor_options), - ('PFAM.db', '', bioconductor_options), - ('perm', '1.0-0.0', ext_options), - ('baySeq', '2.4.1', bioconductor_options), - ('qvalue', '2.2.2', bioconductor_options), - ('impute', '1.44.0', bioconductor_options), - ('samr', '2.0', ext_options), - ('DEGseq', '1.24.0', bioconductor_options), - ('hgu133plus2.db', '', bioconductor_options), - ('illuminaio', '0.12.0', bioconductor_options), - ('rtracklayer', '1.30.2', bioconductor_options), - ('biomaRt', '2.26.1', bioconductor_options), - ('GenomicFeatures', '1.22.13', bioconductor_options), - ('bumphunter', '1.10.0', bioconductor_options), - ('multtest', '2.26.0', bioconductor_options), - ('siggenes', '1.44.0', bioconductor_options), - ('DynDoc', '1.48.0', bioconductor_options), - ('genoset', '1.24.0', bioconductor_options), - ('NOISeq', '2.14.1', bioconductor_options), - ('Rgraphviz', '2.14.0', bioconductor_options), - ('RNASeqPower', '1.10.0', bioconductor_options), - ('annotate', '1.48.0', bioconductor_options), - ('GSEABase', '1.32.0', bioconductor_options), - ('genefilter', '1.52.1', bioconductor_options), - ('Category', '2.36.0', bioconductor_options), - ('GOstats', '2.36.0', bioconductor_options), - ('BSgenome', '1.38.0', bioconductor_options), - ('VariantAnnotation', '1.16.4', bioconductor_options), - ('biovizBase', '1.18.0', bioconductor_options), - ('OrganismDbi', '1.12.1', bioconductor_options), - ('ggbio', '1.18.5', bioconductor_options), - ('geneplotter', '1.48.0', bioconductor_options), - ('DESeq2', '1.10.1', bioconductor_options), - ('ReportingTools', '2.10.0', bioconductor_options), - ('affycoretools', '1.42.0', bioconductor_options), - ('TxDb.Hsapiens.UCSC.hg19.knownGene', '', bioconductor_options), - ('Homo.sapiens', '', bioconductor_options), - ('BSgenome.Hsapiens.UCSC.hg19', '', bioconductor_options), - ('AgiMicroRna', '2.20.0', bioconductor_options), - ('GenomeGraphs', '1.30.0', bioconductor_options), - ('geneLenDataBase', '', bioconductor_options), - ('goseq', '1.22.0', bioconductor_options), - ('KEGGREST', '1.10.1', bioconductor_options), - ('KEGGgraph', '1.28.0', bioconductor_options), - ('KEGGprofile', '1.12.0', bioconductor_options), - ('GEOquery', '2.36.0', bioconductor_options), - ('minfi', '1.16.1', bioconductor_options), - ('FDb.InfiniumMethylation.hg19', '', bioconductor_options), - ('methylumi', '2.16.0', bioconductor_options), - ('lumi', '2.22.1', bioconductor_options), - ('widgetTools', '1.48.0', bioconductor_options), - ('tkWidgets', '1.48.0', bioconductor_options), - ('Mfuzz', '2.30.0', bioconductor_options), - ('maSigPro', '1.42.0', bioconductor_options), - ('SPIA', '2.22.0', bioconductor_options), - ('Gviz', '1.14.4', bioconductor_options), - ('cummeRbund', '2.12.1', bioconductor_options), - ('GenomicFiles', '1.6.2', bioconductor_options), - ('derfinderHelper', '1.4.1', bioconductor_options), - ('derfinder', '1.4.4', bioconductor_options), - ('polyester', '1.6.0', bioconductor_options), - ('Rsubread', '1.20.3', bioconductor_options), - ('pcaMethods', '1.60.0', bioconductor_options), - ('marray', '1.48.0', bioconductor_options), - ('CGHbase', '1.30.0', bioconductor_options), - ('sigaR', '1.14.0', bioconductor_options), - ('HCsnip', '1.10.0', bioconductor_options), - ('metagenomeSeq', '1.12.0', bioconductor_options), - ('gdsfmt', '1.6.2', bioconductor_options), - ('SNPRelate', '1.4.2', bioconductor_options), -] - -modextrapaths = {'R_LIBS': ''} - -sanity_check_paths = { - 'files': [], - 'dirs': ['AnnotationDbi', 'BiocInstaller', 'GenomicFeatures'], -} - -moduleclass = 'bio' -- GitLab From 3b61720f9d6aba21e540624b2805dff29f21ad84 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 10:44:27 +0100 Subject: [PATCH 464/732] drop 'release' URLs, don't use %(rver)s yet --- .../R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb | 7 +++---- .../R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb | 8 +++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb index 747435a5bf..d5dcde11e2 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb @@ -13,7 +13,9 @@ toolchain = {'name': 'foss', 'version': '2016a'} exts_defaultclass = 'RPackage' exts_filter = ("R -q --no-save", "library(%(ext_name)s)") -dependencies = [('R', '3.2.3')] +rver = '3.2.3' +versionsuffix = '-R-%s' % rver +dependencies = [('R', rver)] name_tmpl = '%(name)s_%(version)s.tar.gz' ext_options = { @@ -26,9 +28,6 @@ ext_options = { } bioconductor_options = { 'source_urls': [ - 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', 'http://www.bioconductor.org/packages/%(version)s/bioc/src/contrib/', 'http://www.bioconductor.org/packages/%(version)s/data/annotation/src/contrib/', 'http://www.bioconductor.org/packages/%(version)s/data/experiment/src/contrib/', diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb index f4c9219e9d..dce3357e77 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb @@ -2,7 +2,6 @@ easyblock = 'Bundle' name = 'R-bundle-Bioconductor' version = '3.2' -versionsuffix = '-R-%(rver)s' homepage = 'http://www.r-project.org/' description = """R is a free software environment for statistical computing and graphics.""" @@ -13,7 +12,9 @@ toolchain = {'name': 'intel', 'version': '2016a'} exts_defaultclass = 'RPackage' exts_filter = ("R -q --no-save", "library(%(ext_name)s)") -dependencies = [('R', '3.2.3')] +rver = '3.2.3' +versionsuffix = '-R-%s' % rver +dependencies = [('R', rver)] name_tmpl = '%(name)s_%(version)s.tar.gz' ext_options = { @@ -26,9 +27,6 @@ ext_options = { } bioconductor_options = { 'source_urls': [ - 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', 'http://www.bioconductor.org/packages/%(version)s/bioc/src/contrib/', 'http://www.bioconductor.org/packages/%(version)s/data/annotation/src/contrib/', 'http://www.bioconductor.org/packages/%(version)s/data/experiment/src/contrib/', -- GitLab From 90276c29d80a68782f1eb9b092ac8265f4c2baf1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 13:04:48 +0200 Subject: [PATCH 465/732] add easyconfig PHYLIP-3.696-intel-2016a.eb --- .../p/PHYLIP/PHYLIP-3.696-intel-2016a.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb diff --git a/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb new file mode 100644 index 0000000000..337f4f3b90 --- /dev/null +++ b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'MakeCp' + +name = 'PHYLIP' +version = '3.696' + +homepage = 'http://evolution.genetics.washington.edu/phylip' +description = "PHYLIP is a free package of programs for inferring phylogenies." + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://evolution.gs.washington.edu/phylip/download/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +buildopts = '-Csrc -fMakefile.unx all && make -Csrc -fMakefile.unx install' + +files_to_copy = [(['exe/*'], 'bin'), (['src/libdrawgram.so', 'src/libdrawtree.so'], 'lib')] + +sanity_check_paths = { + 'files': ['lib/libdrawgram.so', 'lib/libdrawtree.so'], + 'dirs': ['bin'], +} + +moduleclass = 'bio' -- GitLab From 0b7c8c0733734518db9d852ba8a112126cbe20bd Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 13:06:50 +0200 Subject: [PATCH 466/732] add easyconfig BWA-0.7.13-intel-2016a.eb --- .../b/BWA/BWA-0.7.13-intel-2016a.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/b/BWA/BWA-0.7.13-intel-2016a.eb diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-intel-2016a.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-intel-2016a.eb new file mode 100644 index 0000000000..f4774cbbbe --- /dev/null +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-intel-2016a.eb @@ -0,0 +1,32 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# +# Version >= 0.7.13 +# Author: Adam Huffman +# The Francis Crick Institute +# +# Note that upstream development is mainly at: https://github.com/lh3/bwa +## + +name = 'BWA' +version = '0.7.13' + +homepage = 'http://bio-bwa.sourceforge.net/' +description = """Burrows-Wheeler Aligner (BWA) is an efficient program that aligns + relatively short nucleotide sequences against a long reference sequence such as the human genome.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/lh3/%(name)s/archive/'] +sources = ['v%(version)s.tar.gz'] + +moduleclass = 'bio' -- GitLab From d264046fac6218f20a0610d5c0b069e3a1324253 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 13:17:08 +0200 Subject: [PATCH 467/732] add easyconfig SNPhylo-20140701-intel-2016a.eb, add easyconfig SNPhylo-20140701-foss-2016a.eb --- .../s/SNPhylo/SNPhylo-20140701-foss-2016a.eb | 22 +++++++++++++++++++ .../s/SNPhylo/SNPhylo-20140701-intel-2016a.eb | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb create mode 100644 easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb new file mode 100644 index 0000000000..e61334d314 --- /dev/null +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb @@ -0,0 +1,22 @@ +name = 'SNPhylo' +version = '20140701' + +homepage = 'http://chibba.pgml.uga.edu/snphylo/' +description = """SNPhylo: a pipeline to generate a phylogenetic tree from huge SNP data""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# download from http://chibba.pgml.uga.edu/snphylo/snphylo.tar.gz and rename +# see http://chibba.pgml.uga.edu/snphylo/ for version +sources = ['%(namelower)s-%(version)s.tar.gz'] + +checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] + +dependencies = [ + ('R', '3.2.3'), + ('Python', '2.7.11'), + ('MUSCLE', '3.8.31'), + ('PHYLIP', '3.696'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb new file mode 100644 index 0000000000..cea99bc814 --- /dev/null +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb @@ -0,0 +1,22 @@ +name = 'SNPhylo' +version = '20140701' + +homepage = 'http://chibba.pgml.uga.edu/snphylo/' +description = """SNPhylo: a pipeline to generate a phylogenetic tree from huge SNP data""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# download from http://chibba.pgml.uga.edu/snphylo/snphylo.tar.gz and rename +# see http://chibba.pgml.uga.edu/snphylo/ for version +sources = ['%(namelower)s-%(version)s.tar.gz'] + +checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] + +dependencies = [ + ('R', '3.2.3'), + ('Python', '2.7.11'), + ('MUSCLE', '3.8.31'), + ('PHYLIP', '3.696'), +] + +moduleclass = 'bio' -- GitLab From 5649cc342580e1a881db0e6a949b4a118bf45f9b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 14:47:59 +0200 Subject: [PATCH 468/732] add easyconfig npstat-0.99-intel-2016a.eb --- .../n/npstat/npstat-0.99-intel-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/n/npstat/npstat-0.99-intel-2016a.eb diff --git a/easybuild/easyconfigs/n/npstat/npstat-0.99-intel-2016a.eb b/easybuild/easyconfigs/n/npstat/npstat-0.99-intel-2016a.eb new file mode 100644 index 0000000000..b8f9940b59 --- /dev/null +++ b/easybuild/easyconfigs/n/npstat/npstat-0.99-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'MakeCp' + +name = 'npstat' +version = '0.99' + +homepage = 'https://code.google.com/archive/p/npstat/' +description = """npstat implements some population genetics tests and estimators that can be applied + to pooled sequences from Next Generation Sequencing experiments.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/npstat/'] +sources = ['source-archive.zip'] + +patches = ['npstat-%(version)s_fix-hardcoding-Makefile.patch'] + +# commit 14, Oct 31st 2013 +checksums = ['a1595b7c46312d0f51b8b68987289337'] + +dependencies = [ + ('GSL', '1.16'), +] + +start_dir = 'trunk' + +files_to_copy = [(['npstat'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/npstat'], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 69480c1a1e0803e198c1d9a449bcb849fde15c03 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 14:53:38 +0200 Subject: [PATCH 469/732] modify easyconfig SNPhylo-20140701-intel-2016a.eb, modify easyconfig SNPhylo-20140701-foss-2016a.eb --- easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb | 1 + easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb | 1 + 2 files changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb index e61334d314..6fb5d3516e 100644 --- a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb @@ -14,6 +14,7 @@ checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] dependencies = [ ('R', '3.2.3'), + ('R-bundle-Bioconductor', '3.2', 'R-%(rver)s'), ('Python', '2.7.11'), ('MUSCLE', '3.8.31'), ('PHYLIP', '3.696'), diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb index cea99bc814..45955d802a 100644 --- a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb @@ -14,6 +14,7 @@ checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] dependencies = [ ('R', '3.2.3'), + ('R-bundle-Bioconductor', '3.2', 'R-%(rver)s'), ('Python', '2.7.11'), ('MUSCLE', '3.8.31'), ('PHYLIP', '3.696'), -- GitLab From 1cc3e64db7e1faa91730799ae3c9c25281139c4a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 14:55:28 +0200 Subject: [PATCH 470/732] modify easyconfig SNPhylo-20140701-intel-2016a.eb, modify easyconfig SNPhylo-20140701-foss-2016a.eb --- easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb | 2 +- easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb index 6fb5d3516e..701dafb78c 100644 --- a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb @@ -14,7 +14,7 @@ checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] dependencies = [ ('R', '3.2.3'), - ('R-bundle-Bioconductor', '3.2', 'R-%(rver)s'), + ('R-bundle-Bioconductor', '3.2', '-R-%(rver)s'), ('Python', '2.7.11'), ('MUSCLE', '3.8.31'), ('PHYLIP', '3.696'), diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb index 45955d802a..71e1b6e3e1 100644 --- a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb @@ -14,7 +14,7 @@ checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] dependencies = [ ('R', '3.2.3'), - ('R-bundle-Bioconductor', '3.2', 'R-%(rver)s'), + ('R-bundle-Bioconductor', '3.2', '-R-%(rver)s'), ('Python', '2.7.11'), ('MUSCLE', '3.8.31'), ('PHYLIP', '3.696'), -- GitLab From 9538cef30f7081f37b819bb5edf8b5542f397432 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 14:02:37 +0100 Subject: [PATCH 471/732] fix remark --- easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb | 2 +- easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb index 090561e4d6..90aea78df7 100644 --- a/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb +++ b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb @@ -9,7 +9,7 @@ description = "PHYLIP is a free package of programs for inferring phylogenies." toolchain = {'name': 'foss', 'version': '2016a'} source_urls = ['http://evolution.gs.washington.edu/phylip/download/'] -sources = ['%(namelower)s-%(version)s.tar.gz'] +sources = [SOURCELOWER_TAR_GZ] buildopts = '-Csrc -fMakefile.unx all && make -Csrc -fMakefile.unx install' diff --git a/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb index 337f4f3b90..312062d04f 100644 --- a/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb +++ b/easybuild/easyconfigs/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb @@ -9,7 +9,7 @@ description = "PHYLIP is a free package of programs for inferring phylogenies." toolchain = {'name': 'intel', 'version': '2016a'} source_urls = ['http://evolution.gs.washington.edu/phylip/download/'] -sources = ['%(namelower)s-%(version)s.tar.gz'] +sources = [SOURCELOWER_TAR_GZ] buildopts = '-Csrc -fMakefile.unx all && make -Csrc -fMakefile.unx install' -- GitLab From 10e9af18743b647aedec72e30e300e9d8cf249f7 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 15:15:16 +0200 Subject: [PATCH 472/732] modify easyconfig SNPhylo-20140701-intel-2016a.eb, modify easyconfig SNPhylo-20140701-foss-2016a.eb --- easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb | 2 +- easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb index 701dafb78c..f27160e9e4 100644 --- a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-foss-2016a.eb @@ -8,7 +8,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} # download from http://chibba.pgml.uga.edu/snphylo/snphylo.tar.gz and rename # see http://chibba.pgml.uga.edu/snphylo/ for version -sources = ['%(namelower)s-%(version)s.tar.gz'] +sources = [SOURCELOWER_TAR_GZ] checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] diff --git a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb index 71e1b6e3e1..d54fcc2b47 100644 --- a/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb +++ b/easybuild/easyconfigs/s/SNPhylo/SNPhylo-20140701-intel-2016a.eb @@ -8,7 +8,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} # download from http://chibba.pgml.uga.edu/snphylo/snphylo.tar.gz and rename # see http://chibba.pgml.uga.edu/snphylo/ for version -sources = ['%(namelower)s-%(version)s.tar.gz'] +sources = [SOURCELOWER_TAR_GZ] checksums = ['80f31c46f1fa9c0c459f18d3acf9fa25'] -- GitLab From 994c84656ccbe2f1b81547066f44e9cf6d531008 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 14:49:25 +0100 Subject: [PATCH 473/732] add missing dependencines in Python 3.5.x easyconfigs --- easybuild/easyconfigs/p/Python/Python-3.5.0-intel-2015b.eb | 3 +++ easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb | 3 +++ easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb | 3 +++ 3 files changed, 9 insertions(+) diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.0-intel-2015b.eb b/easybuild/easyconfigs/p/Python/Python-3.5.0-intel-2015b.eb index ae86e7bce7..6b562baa0c 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.0-intel-2015b.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.0-intel-2015b.eb @@ -19,6 +19,9 @@ dependencies = [ ('zlib', '1.2.8'), ('libreadline', '6.3'), ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), # ('OpenSSL', '1.0.1p'), # OS dependency should be preferred if the os version is more recent then this version, it's # nice to have an up to date openssl for security reasons ] diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb index 38309ea23d..ec80435d9b 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb @@ -19,6 +19,9 @@ dependencies = [ ('zlib', '1.2.8'), ('libreadline', '6.3'), ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's # nice to have an up to date openssl for security reasons ] diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb index e610aff618..aa7a7d9034 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb @@ -19,6 +19,9 @@ dependencies = [ ('zlib', '1.2.8'), ('libreadline', '6.3'), ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's # nice to have an up to date openssl for security reasons ] -- GitLab From dc3792dcd107de914d6f2c690f76e425570727bd Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 17:22:01 +0200 Subject: [PATCH 474/732] add easyconfig attr-2.4.47-GCC-4.6.3.eb --- .../a/attr/attr-2.4.47-GCC-4.6.3.eb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb diff --git a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb new file mode 100644 index 0000000000..7d040cf36d --- /dev/null +++ b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'attr' +version = '2.4.47' + +homepage = 'http://savannah.nongnu.org/projects/attr' +description = """Commands for Manipulating Filesystem Extended Attributes""" + +toolchain = {'name': 'GCC', 'version': '4.6.3'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = ['attr-%(version)s.src.tar.gz'] + +installopts = 'install-lib' + +sanity_check_paths = { + 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', 'lib/libattr.so.1', 'lib/libattr.so.1.1.0'], + 'dirs': ['share'], +} + +moduleclass = 'tools' -- GitLab From de64fa3397823e88d287c726e03037d5950b5733 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 16:36:40 +0100 Subject: [PATCH 475/732] add 'attr' as dep in MVAPICH2 easyconfig w/ checkpointing support enabled --- .../MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index 6cd874bb9a..04c6dccfe0 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -11,24 +11,26 @@ toolchain = {'name': 'GCC', 'version': '4.6.3'} sources = [SOURCELOWER_TGZ] # note: this URL will only work for the most recent version (previous versions no longer available?) source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] +dependencies = [ + ('hwloc', '1.5.1'), + ('attr', '2.4.47'), +] + +builddependencies = [('Bison', '2.5')] + +osdependencies = [('libcr-dev', 'blcr-devel'),] -rdma_type = "gen2" # 'gen2' or 'udapl' +# 'gen2' or 'udapl' +rdma_type = 'gen2' # enable building of MPE routines withmpe = True # enable hwloc support withhwloc = True -dependencies = [('hwloc', '1.5.1')] # enable checkpointing support withchkpt = True -osdependencies = [ - ('libcr-dev', 'blcr-devel'), - ('libattr1-dev', 'libattr-devel'), -] - -builddependencies = [('Bison', '2.5')] # parallel build tends to fail parallel = 1 -- GitLab From 0ca0ceb1e538326be9741280b130b54e399a4a77 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 18:09:52 +0200 Subject: [PATCH 476/732] modify easyconfig attr-2.4.47-GCC-4.6.3.eb --- easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb index 7d040cf36d..5c73e6a27b 100644 --- a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb @@ -11,11 +11,11 @@ toolchain = {'name': 'GCC', 'version': '4.6.3'} source_urls = [GNU_SAVANNAH_SOURCE] sources = ['attr-%(version)s.src.tar.gz'] -installopts = 'install-lib' +installopts = 'install-dev install-lib' sanity_check_paths = { 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', 'lib/libattr.so.1', 'lib/libattr.so.1.1.0'], - 'dirs': ['share'], + 'dirs': ['include/attr', 'share'], } moduleclass = 'tools' -- GitLab From a3451e115fa85fef0f3ccaeeb6bec8be8a6070ee Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 18:22:53 +0200 Subject: [PATCH 477/732] modify easyconfig attr-2.4.47-GCC-4.6.3.eb --- easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb index 5c73e6a27b..3f29b7d6d3 100644 --- a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb @@ -14,7 +14,7 @@ sources = ['attr-%(version)s.src.tar.gz'] installopts = 'install-dev install-lib' sanity_check_paths = { - 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', 'lib/libattr.so.1', 'lib/libattr.so.1.1.0'], + 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', 'lib/libattr.a', 'lib/libattr.%s' % SHLIB_EXT], 'dirs': ['include/attr', 'share'], } -- GitLab From d51a1b8e4a249e60c7872f858a1207e59138e134 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 18:58:56 +0200 Subject: [PATCH 478/732] modify easyconfig attr-2.4.47-GCC-4.6.3.eb --- easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb index 3f29b7d6d3..8a4e822bba 100644 --- a/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/a/attr/attr-2.4.47-GCC-4.6.3.eb @@ -14,8 +14,9 @@ sources = ['attr-%(version)s.src.tar.gz'] installopts = 'install-dev install-lib' sanity_check_paths = { - 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', 'lib/libattr.a', 'lib/libattr.%s' % SHLIB_EXT], - 'dirs': ['include/attr', 'share'], + 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', 'include/attr/attributes.h', 'include/attr/error_context.h', + 'include/attr/libattr.h', 'include/attr/xattr.h', 'lib/libattr.a', 'lib/libattr.%s' % SHLIB_EXT], + 'dirs': ['share'], } moduleclass = 'tools' -- GitLab From 4754be502808e9896a96f2dc2acd816aa62e40ce Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 18:46:05 +0100 Subject: [PATCH 479/732] consistently add checksums --- .../m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb | 3 +++ easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb | 2 ++ easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb | 1 - .../easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb | 1 - .../easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb | 1 - easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb | 1 - .../m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb | 1 - easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9a2-GCC-4.7.2.eb | 2 ++ easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9b-GCC-4.7.2.eb | 2 ++ .../easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-ClangGCC-1.1.3.eb | 2 ++ easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-GCC-4.7.3.eb | 2 ++ easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.0.1-GCC-4.8.4.eb | 1 - 12 files changed, 13 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb index a2fae1e4c8..0d8dbcbf47 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -11,6 +11,9 @@ toolchain = {'name': 'GCC', 'version': '4.6.3'} sources = [SOURCELOWER_TGZ] # note: this URL will only work for the most recent version (previous versions no longer available?) source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] + +checksums = ['b05c3cde3d181b2499500b4bd8962e3f'] + dependencies = [ ('hwloc', '1.5.1'), ('attr', '2.4.47'), diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb index 76de06e6fd..8f93aad7e1 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3.eb @@ -11,6 +11,8 @@ sources = [SOURCELOWER_TGZ] # note: this URL will only work for the most recent version (previous versions no longer available?) source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] +checksums = ['b05c3cde3d181b2499500b4bd8962e3f'] + builddependencies = [('Bison', '2.5')] # enable building of MPE routines diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb index dbf130a107..f289c8d654 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.8.1-GCC-4.7.2.eb @@ -9,7 +9,6 @@ toolchain = {'name': 'GCC', 'version': '4.7.2'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] -# Let's store the checksum in order to be sure it doesn't suddenly change checksums = ['ef4ae05e3b5ad485326505db7381246c'] builddependencies = [('Bison', '2.7')] diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb index f8ed601fa4..09e0392913 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.1.3.eb @@ -9,7 +9,6 @@ toolchain = {'name': 'ClangGCC', 'version': '1.1.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] -# Let's store the checksum in order to be sure it doesn't suddenly change checksums = ['5dc58ed08fd3142c260b70fe297e127c'] dependencies = [('Bison', '2.7')] diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb index ec3097f101..8c81cfba65 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-ClangGCC-1.2.3.eb @@ -9,7 +9,6 @@ toolchain = {'name': 'ClangGCC', 'version': '1.2.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] -# Let's store the checksum in order to be sure it doesn't suddenly change checksums = ['5dc58ed08fd3142c260b70fe297e127c'] dependencies = [('Bison', '2.7')] diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb index fc82223d21..87eee23607 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-GCC-4.7.3.eb @@ -9,7 +9,6 @@ toolchain = {'name': 'GCC', 'version': '4.7.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] -# Let's store the checksum in order to be sure it doesn't suddenly change checksums = ['5dc58ed08fd3142c260b70fe297e127c'] builddependencies = [('Bison', '2.7')] diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb index 2ff528acce..5bcb7de6da 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb @@ -10,7 +10,6 @@ toolchainopts = {'optarch': True, 'pic': True} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] -# Let's store the checksum in order to be sure it doesn't suddenly change checksums = ['5dc58ed08fd3142c260b70fe297e127c'] builddependencies = [('Bison', '2.7')] diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9a2-GCC-4.7.2.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9a2-GCC-4.7.2.eb index 86fdc73adc..372dd0b722 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9a2-GCC-4.7.2.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9a2-GCC-4.7.2.eb @@ -9,6 +9,8 @@ toolchain = {'name': 'GCC', 'version': '4.7.2'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +checksums = ['9d517d6fe483ad339ea01fa234f0c4c9'] + builddependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9b-GCC-4.7.2.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9b-GCC-4.7.2.eb index 1c45f04807..657cf1ea16 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9b-GCC-4.7.2.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9b-GCC-4.7.2.eb @@ -9,6 +9,8 @@ toolchain = {'name': 'GCC', 'version': '4.7.2'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +checksums = ['dfc86a014666776c8a76bb8e78356c8b'] + builddependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-ClangGCC-1.1.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-ClangGCC-1.1.3.eb index 892dac4687..efbb18826b 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-ClangGCC-1.1.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-ClangGCC-1.1.3.eb @@ -9,6 +9,8 @@ toolchain = {'name': 'ClangGCC', 'version': '1.1.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +checksums = ['0a236f526e368e12a1b3de90716a12d7'] + builddependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-GCC-4.7.3.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-GCC-4.7.3.eb index 9e7d8d7641..46ea0c6676 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-GCC-4.7.3.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9rc1-GCC-4.7.3.eb @@ -9,6 +9,8 @@ toolchain = {'name': 'GCC', 'version': '4.7.3'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] sources = [SOURCELOWER_TGZ] +checksums = ['0a236f526e368e12a1b3de90716a12d7'] + builddependencies = [('Bison', '2.7')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.0.1-GCC-4.8.4.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.0.1-GCC-4.8.4.eb index bf2762a1a1..b07b0a30f4 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.0.1-GCC-4.8.4.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-2.0.1-GCC-4.8.4.eb @@ -9,7 +9,6 @@ toolchain = {'name': 'GCC', 'version': '4.8.4'} source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] sources = [SOURCELOWER_TAR_GZ] -# Let's store the checksum in order to be sure it doesn't suddenly change checksums = ['77bba29442f81e196155e87869cdceda'] builddependencies = [('Bison', '2.7')] -- GitLab From 5def8be0d16d4175188ecd8eb939b2ba7bb14829 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 20:01:23 +0200 Subject: [PATCH 480/732] add easyconfig SAMtools-1.3-foss-2016a.eb, add easyconfig SAMtools-1.3-intel-2016a.eb --- .../s/SAMtools/SAMtools-1.3-foss-2016a.eb | 31 +++++++++++++++++++ .../s/SAMtools/SAMtools-1.3-intel-2016a.eb | 31 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-foss-2016a.eb b/easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-foss-2016a.eb new file mode 100644 index 0000000000..96d3b95f0f --- /dev/null +++ b/easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-foss-2016a.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Robert Schmidt , Cedric Laczny , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +## +name = 'SAMtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """SAM Tools provide various utilities for manipulating alignments in the SAM format, + including sorting, merging, indexing and generating alignments in a per-position format.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] + +# Patch Makefile to link against zlib provided by EB +patches = ['SAMtools-1.3_Makefile.patch'] + +dependencies = [ + ('ncurses', '6.0'), + ('zlib', '1.2.8'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-intel-2016a.eb b/easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-intel-2016a.eb new file mode 100644 index 0000000000..d869d21007 --- /dev/null +++ b/easybuild/easyconfigs/s/SAMtools/SAMtools-1.3-intel-2016a.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Robert Schmidt , Cedric Laczny , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +## +name = 'SAMtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """SAM Tools provide various utilities for manipulating alignments in the SAM format, + including sorting, merging, indexing and generating alignments in a per-position format.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] + +# Patch Makefile to link against zlib provided by EB +patches = ['SAMtools-1.3_Makefile.patch'] + +dependencies = [ + ('ncurses', '6.0'), + ('zlib', '1.2.8'), +] + +moduleclass = 'bio' -- GitLab From 2067db8a1de479e20c7faee94ee6e93ec9704021 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 20:02:26 +0200 Subject: [PATCH 481/732] add easyconfig VCFtools-0.1.14-foss-2016a-Perl-5.22.1.eb, add easyconfig VCFtools-0.1.14-intel-2016a-Perl-5.22.1.eb --- .../VCFtools-0.1.14-foss-2016a-Perl-5.22.1.eb | 37 +++++++++++++++++++ ...VCFtools-0.1.14-intel-2016a-Perl-5.22.1.eb | 37 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2016a-Perl-5.22.1.eb create mode 100644 easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-intel-2016a-Perl-5.22.1.eb diff --git a/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2016a-Perl-5.22.1.eb b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2016a-Perl-5.22.1.eb new file mode 100644 index 0000000000..c7db740277 --- /dev/null +++ b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-foss-2016a-Perl-5.22.1.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Author: Adam Huffman +# adam.huffman@crick.ac.uk +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'VCFtools' +version = '0.1.14' +versionsuffix = '-Perl-%(perlver)s' + +homepage = "https://vcftools.github.io" +description = """The aim of VCFtools is to provide + easily accessible methods for working with complex + genetic variation data in the form of VCF files.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +dependencies = [ + ('Perl', '5.22.1'), +] + +modextrapaths = {'PERL5LIB': 'lib/perl5/site_perl'} + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['vcftools', 'vcf-sort', 'vcf-stats']], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-intel-2016a-Perl-5.22.1.eb b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-intel-2016a-Perl-5.22.1.eb new file mode 100644 index 0000000000..9f1d001bfa --- /dev/null +++ b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.14-intel-2016a-Perl-5.22.1.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Author: Adam Huffman +# adam.huffman@crick.ac.uk +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'VCFtools' +version = '0.1.14' +versionsuffix = '-Perl-%(perlver)s' + +homepage = "https://vcftools.github.io" +description = """The aim of VCFtools is to provide + easily accessible methods for working with complex + genetic variation data in the form of VCF files.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +dependencies = [ + ('Perl', '5.22.1'), +] + +modextrapaths = {'PERL5LIB': 'lib/perl5/site_perl'} + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['vcftools', 'vcf-sort', 'vcf-stats']], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 84ad66c690b657863777d5b1f16621ffc995a0d7 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 19:05:58 +0100 Subject: [PATCH 482/732] fix source URLs for Bioconductor 3.2 --- .../R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb | 6 +++--- .../R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb index d5dcde11e2..d1392d23cc 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb @@ -28,9 +28,9 @@ ext_options = { } bioconductor_options = { 'source_urls': [ - 'http://www.bioconductor.org/packages/%(version)s/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/%(version)s/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/%(version)s/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/experiment/src/contrib/', ], 'source_tmpl': name_tmpl, } diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb index dce3357e77..60d39797ec 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb @@ -27,9 +27,9 @@ ext_options = { } bioconductor_options = { 'source_urls': [ - 'http://www.bioconductor.org/packages/%(version)s/bioc/src/contrib/', - 'http://www.bioconductor.org/packages/%(version)s/data/annotation/src/contrib/', - 'http://www.bioconductor.org/packages/%(version)s/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/experiment/src/contrib/', ], 'source_tmpl': name_tmpl, } -- GitLab From 4606a7f6ce37e1ca5222629d13d1842c4ede1411 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Mar 2016 23:00:30 +0100 Subject: [PATCH 483/732] drop patch for XML-Bare that's specific to icc --- easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb index 652f0d5227..2ecf3ea45f 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb @@ -419,7 +419,6 @@ exts_list = [ ('XML::Bare', '0.53', { 'source_tmpl': 'XML-Bare-0.53.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], - 'patches': ['XML-Bare-0.53_icc.patch'], }), ('Dist::CheckConflicts', '0.11', { 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', -- GitLab From 1de3ad9229b8db13719eb839de0939eca5ac260d Mon Sep 17 00:00:00 2001 From: perettig Date: Sat, 12 Mar 2016 12:29:15 +0100 Subject: [PATCH 484/732] dropping -XC suffix for Cray toolchains --- .../b/Bison/Bison-3.0.2-CrayGNU-2015.06.eb | 22 ++++ .../b/Bison/Bison-3.0.2-CrayGNU-2015.11.eb | 22 ++++ .../b/bzip2/bzip2-1.0.6-CrayGNU-2015.06.eb | 15 +++ .../b/bzip2/bzip2-1.0.6-CrayGNU-2015.11.eb | 15 +++ .../c/CMake/CMake-3.2.2-CrayGNU-2015.06.eb | 22 ++++ .../c/CMake/CMake-3.2.2-CrayGNU-2015.11.eb | 22 ++++ .../c/CMake/CMake-3.2.2-CrayIntel-2015.11.eb | 22 ++++ .../c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb | 38 ++++++ .../c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb | 38 ++++++ .../CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb | 48 ++++++++ .../c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb | 45 +++++++ ...ayCCE-2015.06-XC.eb => CrayCCE-2015.06.eb} | 2 +- ...ayCCE-2015.11-XC.eb => CrayCCE-2015.11.eb} | 2 +- ...ayGNU-2015.06-XC.eb => CrayGNU-2015.06.eb} | 2 +- ...ayGNU-2015.11-XC.eb => CrayGNU-2015.11.eb} | 2 +- ...tel-2015.06-XC.eb => CrayIntel-2015.06.eb} | 2 +- ...tel-2015.11-XC.eb => CrayIntel-2015.11.eb} | 2 +- .../f/flex/flex-2.5.39-CrayGNU-2015.06.eb | 14 +++ .../f/flex/flex-2.5.39-CrayGNU-2015.11.eb | 14 +++ .../GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb | 45 +++++++ .../GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb | 45 +++++++ .../GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb | 45 +++++++ .../h/HPL/HPL-2.1-CrayCCE-2015.06.eb | 22 ++++ .../h/HPL/HPL-2.1-CrayCCE-2015.11.eb | 22 ++++ .../h/HPL/HPL-2.1-CrayGNU-2015.06.eb | 18 +++ .../h/HPL/HPL-2.1-CrayGNU-2015.11.eb | 18 +++ .../h/HPL/HPL-2.1-CrayIntel-2015.06.eb | 18 +++ .../h/HPL/HPL-2.1-CrayIntel-2015.11.eb | 18 +++ .../JasPer/JasPer-1.900.1-CrayGNU-2015.06.eb | 21 ++++ .../JasPer/JasPer-1.900.1-CrayGNU-2015.11.eb | 21 ++++ .../JasPer-1.900.1-CrayIntel-2015.11.eb | 21 ++++ .../l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb | 24 ++++ .../l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb | 24 ++++ .../libreadline-6.3-CrayGNU-2015.06.eb | 30 +++++ .../libreadline-6.3-CrayGNU-2015.11.eb | 30 +++++ .../l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb | 32 +++++ .../l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb | 32 +++++ .../l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb | 33 +++++ .../m/M4/M4-1.4.17-CrayGNU-2015.06.eb | 23 ++++ .../m/M4/M4-1.4.17-CrayGNU-2015.11.eb | 23 ++++ .../n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb | 25 ++++ .../n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb | 25 ++++ .../n/ncurses/ncurses-5.9-CrayGNU-2015.06.eb | 34 ++++++ .../n/ncurses/ncurses-5.9-CrayGNU-2015.11.eb | 34 ++++++ .../ncurses/ncurses-5.9-CrayIntel-2015.11.eb | 34 ++++++ ...umpy-1.9.2-CrayGNU-2015.06-Python-2.7.9.eb | 26 ++++ ...umpy-1.9.2-CrayGNU-2015.11-Python-2.7.9.eb | 26 ++++ .../Python-2.7.9-CrayGNU-2015.06-bare.eb | 39 ++++++ .../p/Python/Python-2.7.9-CrayGNU-2015.06.eb | 115 ++++++++++++++++++ .../Python-2.7.9-CrayGNU-2015.11-bare.eb | 39 ++++++ .../p/Python/Python-2.7.9-CrayGNU-2015.11.eb | 115 ++++++++++++++++++ .../s/Szip/Szip-2.1-CrayGNU-2015.06.eb | 23 ++++ .../s/Szip/Szip-2.1-CrayGNU-2015.11.eb | 23 ++++ ...ipy-0.15.1-CrayGNU-2015.06-Python-2.7.9.eb | 19 +++ ...ipy-0.15.1-CrayGNU-2015.11-Python-2.7.9.eb | 19 +++ .../s/spglib/spglib-1.7.3-CrayGNU-2015.06.eb | 21 ++++ .../s/spglib/spglib-1.7.3-CrayGNU-2015.11.eb | 21 ++++ .../t/tcsh/tcsh-6.18.01-CrayGNU-2015.06.eb | 38 ++++++ .../t/tcsh/tcsh-6.18.01-CrayGNU-2015.11.eb | 38 ++++++ .../t/tcsh/tcsh-6.18.01-CrayIntel-2015.11.eb | 38 ++++++ .../w/WRF/WRF-3.6.1-CrayGNU-2015.06-dmpar.eb | 41 +++++++ .../w/WRF/WRF-3.6.1-CrayGNU-2015.11-dmpar.eb | 41 +++++++ .../WRF/WRF-3.6.1-CrayIntel-2015.11-dmpar.eb | 41 +++++++ .../z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb | 22 ++++ .../z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb | 22 ++++ 65 files changed, 1827 insertions(+), 6 deletions(-) create mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb create mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb rename easybuild/easyconfigs/c/CrayCCE/{CrayCCE-2015.06-XC.eb => CrayCCE-2015.06.eb} (96%) rename easybuild/easyconfigs/c/CrayCCE/{CrayCCE-2015.11-XC.eb => CrayCCE-2015.11.eb} (96%) rename easybuild/easyconfigs/c/CrayGNU/{CrayGNU-2015.06-XC.eb => CrayGNU-2015.06.eb} (96%) rename easybuild/easyconfigs/c/CrayGNU/{CrayGNU-2015.11-XC.eb => CrayGNU-2015.11.eb} (96%) rename easybuild/easyconfigs/c/CrayIntel/{CrayIntel-2015.06-XC.eb => CrayIntel-2015.06.eb} (96%) rename easybuild/easyconfigs/c/CrayIntel/{CrayIntel-2015.11-XC.eb => CrayIntel-2015.11.eb} (96%) create mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11.eb create mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11.eb create mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11.eb create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11.eb create mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11.eb create mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-dmpar.eb create mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-dmpar.eb create mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-dmpar.eb create mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb create mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..1e373e5c59 --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..fbde1c1bed --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..afe1e361bf --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +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.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..4907113147 --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +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.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..3de7ff42c3 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..1f3739c57e --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11.eb new file mode 100644 index 0000000000..7c87dffeab --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..428626aef1 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.6.0' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.1'), +] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..1b2b44d855 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.6.0' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.1'), +] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb new file mode 100644 index 0000000000..d34361f252 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb @@ -0,0 +1,48 @@ +# contributed by Luca Marsella (CSCS) +name = 'CP2K' +version = "3.0" +cudaversion = '7.0' +versionsuffix = '-cuda-%s' % cudaversion + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.2'), +] + +builddependencies = [ + ('cudatoolkit/7.0.28-1.0502.10742.5.1', EXTERNAL_MODULE), + ('fftw/3.3.4.3', EXTERNAL_MODULE), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test +runtest = False +# regression test reports failures +#ignore_regtest_fails = True + +# build type +type = 'psmp' + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..e7bf9550c7 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb @@ -0,0 +1,45 @@ +# contributed by Luca Marsella (CSCS) +name = 'CP2K' +version = "3.0" + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.2'), +] + +builddependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test +runtest = False +# regression test reports failures +#ignore_regtest_fails = True + +# build type +type = 'psmp' + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06.eb similarity index 96% rename from easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb rename to easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06.eb index bf91772267..da34dc3b82 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.06.eb @@ -1,7 +1,7 @@ easyblock = 'CrayToolchain' name = 'CrayCCE' -version = '2015.06-XC' +version = '2015.06' homepage = 'http://docs.cray.com/books/S-9407-1511' description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module (PE release: November 2015).\n""" diff --git a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11.eb similarity index 96% rename from easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb rename to easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11.eb index dbf091ccf3..f6426373dd 100644 --- a/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayCCE/CrayCCE-2015.11.eb @@ -1,7 +1,7 @@ easyblock = 'CrayToolchain' name = 'CrayCCE' -version = '2015.11-XC' +version = '2015.11' homepage = 'http://docs.cray.com/books/S-9407-1511' description = """Toolchain using Cray compiler wrapper, using PrgEnv-cray module (PE release: November 2015).\n""" diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06.eb similarity index 96% rename from easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb rename to easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06.eb index 0612076d5a..af4314daa9 100644 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.06.eb @@ -1,7 +1,7 @@ easyblock = 'CrayToolchain' name = 'CrayGNU' -version = '2015.06-XC' +version = '2015.06' homepage = 'http://docs.cray.com/books/S-9407-1506' description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module (PE release: June 2015).\n""" diff --git a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11.eb similarity index 96% rename from easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb rename to easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11.eb index 370978db76..fdcd8836c8 100644 --- a/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayGNU/CrayGNU-2015.11.eb @@ -1,7 +1,7 @@ easyblock = 'CrayToolchain' name = 'CrayGNU' -version = '2015.11-XC' +version = '2015.11' homepage = 'http://docs.cray.com/books/S-9407-1511' description = """Toolchain using Cray compiler wrapper, using PrgEnv-gnu module (PE release: November 2015).\n""" diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06.eb similarity index 96% rename from easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb rename to easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06.eb index c80854490a..5d9b4c1609 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.06.eb @@ -1,7 +1,7 @@ easyblock = 'CrayToolchain' name = 'CrayIntel' -version = '2015.06-XC' +version = '2015.06' homepage = 'http://docs.cray.com/books/S-9407-1511' description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module (PE release: November 2015).\n""" diff --git a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11.eb similarity index 96% rename from easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb rename to easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11.eb index cc105734db..8632b007b7 100644 --- a/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11-XC.eb +++ b/easybuild/easyconfigs/c/CrayIntel/CrayIntel-2015.11.eb @@ -1,7 +1,7 @@ easyblock = 'CrayToolchain' name = 'CrayIntel' -version = '2015.11-XC' +version = '2015.11' homepage = 'http://docs.cray.com/books/S-9407-1511' description = """Toolchain using Cray compiler wrapper, using PrgEnv-intel module (PE release: November 2015).\n""" diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..24e3dfb5dc --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06.eb @@ -0,0 +1,14 @@ +name = 'flex' +version = '2.5.39' + +homepage = 'http://flex.sourceforge.net/' +description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..8c57faa309 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11.eb @@ -0,0 +1,14 @@ +name = 'flex' +version = '2.5.39' + +homepage = 'http://flex.sourceforge.net/' +description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb new file mode 100644 index 0000000000..7fae7e2b3f --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW}/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/include && " + +dependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb new file mode 100644 index 0000000000..83b2732fb5 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb new file mode 100644 index 0000000000..350a3d6cfa --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06.eb new file mode 100644 index 0000000000..934cc8d3eb --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06.eb @@ -0,0 +1,22 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'CrayCCE', 'version': '2015.06'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +patches = [ + # fix Make dependencies, so parallel build also works + 'HPL_parallel-make.patch', + 'HPL-2.1_LINKER-ld.patch', +] + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11.eb new file mode 100644 index 0000000000..7a8e5a0800 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11.eb @@ -0,0 +1,22 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'CrayCCE', 'version': '2015.11'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +patches = [ + # fix Make dependencies, so parallel build also works + 'HPL_parallel-make.patch', + 'HPL-2.1_LINKER-ld.patch', +] + +parallel = 1 + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..4f4dbfc813 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..455f495e6e --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06.eb new file mode 100644 index 0000000000..00ee4facc9 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.06'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11.eb new file mode 100644 index 0000000000..651ae824ba --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..274dc46093 --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'JasPer' +version = '1.900.1' + +homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' +description = """The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_ZIP] +source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] + +sanity_check_paths = { + 'files': ["bin/jasper", "lib/libjasper.a"], + 'dirs': ["include"], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..1a379efce9 --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'JasPer' +version = '1.900.1' + +homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' +description = """The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_ZIP] +source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] + +sanity_check_paths = { + 'files': ["bin/jasper", "lib/libjasper.a"], + 'dirs': ["include"], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11.eb new file mode 100644 index 0000000000..3cd71b46bf --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'JasPer' +version = '1.900.1' + +homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' +description = """The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_ZIP] +source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] + +sanity_check_paths = { + 'files': ["bin/jasper", "lib/libjasper.a"], + 'dirs': ["include"], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..173c7dbd1e --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb @@ -0,0 +1,24 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..ef47d32bbf --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb @@ -0,0 +1,24 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..883868add2 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..d828f262a5 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..d9d2ff8c6b --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..254367cee7 --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..ae74d150b0 --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb @@ -0,0 +1,33 @@ +# contributed by Luca Marsella (CSCS) +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.so'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..31c851b3d9 --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..3010711346 --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..a33090c4b6 --- /dev/null +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'NFFT' +version = '3.3.0' + +homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' +description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine + library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more + dimensions, of arbitrary input size, and of complex data.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), +] + +sanity_check_paths = { + 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..c9ebfcb9f5 --- /dev/null +++ b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'NFFT' +version = '3.3.0' + +homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' +description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine + library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more + dimensions, of arbitrary input size, and of complex data.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +sanity_check_paths = { + 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..16fc4ff0ea --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..cb88b8202d --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11.eb new file mode 100644 index 0000000000..c1260d9ce2 --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-Python-2.7.9.eb new file mode 100644 index 0000000000..aa3c00b163 --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-Python-2.7.9.eb @@ -0,0 +1,26 @@ +name = 'numpy' +version = '1.9.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-Python-2.7.9.eb new file mode 100644 index 0000000000..5c8368180f --- /dev/null +++ b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-Python-2.7.9.eb @@ -0,0 +1,26 @@ +name = 'numpy' +version = '1.9.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb new file mode 100644 index 0000000000..92748077e8 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb @@ -0,0 +1,39 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, 'opt': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +# bare installation: no extensions included +exts_list = [] + +buildopts = 'LINKCC="$CC -dynamic"' + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..21613bcfb7 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +buildopts = 'LINKCC="$CC -dynamic"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb new file mode 100644 index 0000000000..f7679002a1 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb @@ -0,0 +1,39 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, 'opt': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +# bare installation: no extensions included +exts_list = [] + +buildopts = 'LINKCC="$CC -dynamic"' + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..9958308892 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +buildopts = 'LINKCC="$CC -dynamic"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..de900f73b2 --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, } + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..58f5db7a33 --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, } + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-Python-2.7.9.eb new file mode 100644 index 0000000000..bec11c9016 --- /dev/null +++ b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-Python-2.7.9.eb @@ -0,0 +1,19 @@ +name = 'scipy' +version = '0.15.1' +versionsuffix = '-Python-2.7.9' + +homepage = 'http://www.scipy.org' +description = """SciPy is a collection of mathematical algorithms and convenience + functions built on the Numpy extension for Python.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('numpy', '1.9.2', versionsuffix), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-Python-2.7.9.eb new file mode 100644 index 0000000000..35ad3eac24 --- /dev/null +++ b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-Python-2.7.9.eb @@ -0,0 +1,19 @@ +name = 'scipy' +version = '0.15.1' +versionsuffix = '-Python-2.7.9' + +homepage = 'http://www.scipy.org' +description = """SciPy is a collection of mathematical algorithms and convenience + functions built on the Numpy extension for Python.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('numpy', '1.9.2', versionsuffix), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..7601dde601 --- /dev/null +++ b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'spglib' +version = '1.7.3' + +homepage = 'http://spglib.sourceforge.net/' +description = """Spglib is a C library for finding and handling crystal symmetries.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +start_dir = '%(name)s-%(version)s' + +sanity_check_paths = { + 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], + 'dirs': ['include/spglib'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..0395e331ec --- /dev/null +++ b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'spglib' +version = '1.7.3' + +homepage = 'http://spglib.sourceforge.net/' +description = """Spglib is a C library for finding and handling crystal symmetries.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +start_dir = '%(name)s-%(version)s' + +sanity_check_paths = { + 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], + 'dirs': ['include/spglib'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..bf01430fff --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..57a30b1d87 --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11.eb new file mode 100644 index 0000000000..558feb7579 --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-dmpar.eb new file mode 100644 index 0000000000..c88ec72408 --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-dmpar.eb @@ -0,0 +1,41 @@ +name = 'WRF' +version = '3.6.1' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.18.01')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('cray-netcdf/4.3.2', EXTERNAL_MODULE), + ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-3.6.1_known_problems.patch', + 'WRF_tests_limit-runtimes.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +runtest = False + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-dmpar.eb new file mode 100644 index 0000000000..ab4cacf6da --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-dmpar.eb @@ -0,0 +1,41 @@ +name = 'WRF' +version = '3.6.1' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.18.01')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('cray-netcdf/4.3.2', EXTERNAL_MODULE), + ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-3.6.1_known_problems.patch', + 'WRF_tests_limit-runtimes.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +runtest = False + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-dmpar.eb new file mode 100644 index 0000000000..ac5084ad2d --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-dmpar.eb @@ -0,0 +1,41 @@ +name = 'WRF' +version = '3.6.1' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.18.01')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('cray-netcdf/4.3.2', EXTERNAL_MODULE), + ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-3.6.1_known_problems.patch', + 'WRF_tests_limit-runtimes.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +runtest = False + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb new file mode 100644 index 0000000000..9daa7bba81 --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, } + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb new file mode 100644 index 0000000000..ec75812a65 --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, } + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From bbb4bf36f5f8bcd852aade02c94232fdaa899bbf Mon Sep 17 00:00:00 2001 From: perettig Date: Sat, 12 Mar 2016 12:32:09 +0100 Subject: [PATCH 485/732] delete old -XC files --- .../b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb | 22 ---- .../b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb | 22 ---- .../b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb | 15 --- .../b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb | 15 --- .../c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb | 22 ---- .../c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb | 22 ---- .../CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb | 22 ---- .../c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb | 38 ------ .../c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb | 38 ------ .../CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb | 48 -------- .../c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb | 45 ------- .../f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb | 14 --- .../f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb | 14 --- .../GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb | 45 ------- .../GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb | 45 ------- .../GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb | 45 ------- .../h/HPL/HPL-2.1-CrayCCE-2015.06-XC.eb | 22 ---- .../h/HPL/HPL-2.1-CrayCCE-2015.11-XC.eb | 22 ---- .../h/HPL/HPL-2.1-CrayGNU-2015.06-XC.eb | 18 --- .../h/HPL/HPL-2.1-CrayGNU-2015.11-XC.eb | 18 --- .../h/HPL/HPL-2.1-CrayIntel-2015.06-XC.eb | 18 --- .../h/HPL/HPL-2.1-CrayIntel-2015.11-XC.eb | 18 --- .../JasPer-1.900.1-CrayGNU-2015.06-XC.eb | 21 ---- .../JasPer-1.900.1-CrayGNU-2015.11-XC.eb | 21 ---- .../JasPer-1.900.1-CrayIntel-2015.11-XC.eb | 21 ---- .../Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb | 24 ---- .../Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb | 24 ---- .../libreadline-6.3-CrayGNU-2015.06-XC.eb | 30 ----- .../libreadline-6.3-CrayGNU-2015.11-XC.eb | 30 ----- .../l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb | 32 ----- .../l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb | 32 ----- .../l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb | 33 ----- .../m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb | 23 ---- .../m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb | 23 ---- .../n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb | 25 ---- .../n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb | 25 ---- .../ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb | 34 ------ .../ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb | 34 ------ .../ncurses-5.9-CrayIntel-2015.11-XC.eb | 34 ------ ...y-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb | 26 ---- ...y-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb | 26 ---- .../Python-2.7.9-CrayGNU-2015.06-XC-bare.eb | 39 ------ .../Python/Python-2.7.9-CrayGNU-2015.06-XC.eb | 115 ------------------ .../Python-2.7.9-CrayGNU-2015.11-XC-bare.eb | 39 ------ .../Python/Python-2.7.9-CrayGNU-2015.11-XC.eb | 115 ------------------ .../s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb | 23 ---- .../s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb | 23 ---- ...-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb | 19 --- ...-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb | 19 --- .../spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb | 21 ---- .../spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb | 21 ---- .../t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb | 38 ------ .../t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb | 38 ------ .../tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb | 38 ------ .../WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb | 41 ------- .../WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb | 41 ------- .../WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb | 41 ------- .../z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb | 22 ---- .../z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb | 22 ---- 59 files changed, 1821 deletions(-) delete mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb delete mode 100644 easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb delete mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb delete mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb delete mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb delete mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb delete mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb delete mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb delete mode 100644 easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb delete mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb delete mode 100644 easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 77bb4a043c..0000000000 --- a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Bison' -version = '3.0.2' - -homepage = 'http://www.gnu.org/software/bison' -description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar - into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [('M4', '1.4.17')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], - 'dirs': [], -} - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb deleted file mode 100644 index cfb18be138..0000000000 --- a/easybuild/easyconfigs/b/Bison/Bison-3.0.2-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Bison' -version = '3.0.2' - -homepage = 'http://www.gnu.org/software/bison' -description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar - into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [('M4', '1.4.17')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], - 'dirs': [], -} - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 5b74aeb4ae..0000000000 --- a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,15 +0,0 @@ -name = 'bzip2' -version = '1.0.6' - -homepage = 'http://www.bzip.org/' -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.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.bzip.org/%(version)s'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 5666a2e9f5..0000000000 --- a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,15 +0,0 @@ -name = 'bzip2' -version = '1.0.6' - -homepage = 'http://www.bzip.org/' -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.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.bzip.org/%(version)s'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb deleted file mode 100644 index d4b9c66352..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.2' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 1a73916b52..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.2' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb deleted file mode 100644 index 8fe0d6e4d8..0000000000 --- a/easybuild/easyconfigs/c/CMake/CMake-3.2.2-CrayIntel-2015.11-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CMake' -version = '3.2.2' - -homepage = 'http://www.cmake.org' -description = """CMake, the cross-platform, open-source build system. - CMake is a family of tools designed to build, test and package software.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} - -source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb deleted file mode 100644 index c1c02c3bcf..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,38 +0,0 @@ -name = 'CP2K' -version = '2.6.0' - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.1'), -] - -builddependencies = [ - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test reports failures -ignore_regtest_fails = True - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 18250df781..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,38 +0,0 @@ -name = 'CP2K' -version = '2.6.0' - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.1'), -] - -builddependencies = [ - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test reports failures -ignore_regtest_fails = True - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb deleted file mode 100644 index aeb506b2a1..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC-cuda-7.0.eb +++ /dev/null @@ -1,48 +0,0 @@ -# contributed by Luca Marsella (CSCS) -name = 'CP2K' -version = "3.0" -cudaversion = '7.0' -versionsuffix = '-cuda-%s' % cudaversion - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.2'), -] - -builddependencies = [ - ('cudatoolkit/7.0.28-1.0502.10742.5.1', EXTERNAL_MODULE), - ('fftw/3.3.4.3', EXTERNAL_MODULE), - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test -runtest = False -# regression test reports failures -#ignore_regtest_fails = True - -# build type -type = 'psmp' - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 55e00d968f..0000000000 --- a/easybuild/easyconfigs/c/CP2K/CP2K-3.0-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,45 +0,0 @@ -# contributed by Luca Marsella (CSCS) -name = 'CP2K' -version = "3.0" - -homepage = 'http://www.cp2k.org/' -description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular - simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different - methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and - classical pair and many-body potentials. """ - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_BZ2] -source_urls = [SOURCEFORGE_SOURCE] - -patches = [ - 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', - 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', -] - -dependencies = [ - ('Libint', '1.1.4'), - ('libxc', '2.2.2'), -] - -builddependencies = [ - ('fftw/3.3.4.3', EXTERNAL_MODULE), - ('flex', '2.5.39'), - ('Bison', '3.0.2'), -] - -# don't use parallel make, results in compilation failure -# because Fortran module files aren't created before they are needed -parallel = 1 - -# regression test -runtest = False -# regression test reports failures -#ignore_regtest_fails = True - -# build type -type = 'psmp' - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb deleted file mode 100644 index d9b2e6f439..0000000000 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,14 +0,0 @@ -name = 'flex' -version = '2.5.39' - -homepage = 'http://flex.sourceforge.net/' -description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, - sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 7fbee438c5..0000000000 --- a/easybuild/easyconfigs/f/flex/flex-2.5.39-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,14 +0,0 @@ -name = 'flex' -version = '2.5.39' - -homepage = 'http://flex.sourceforge.net/' -description = """Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, - sometimes called a tokenizer, is a program which recognizes lexical patterns in text.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb deleted file mode 100644 index eb693a5ca3..0000000000 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-XC-mpi.eb +++ /dev/null @@ -1,45 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University -# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ -# George Tsouloupas , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html -## -name = 'GROMACS' -version = '4.6.7' -versionsuffix = '-mpi' - -homepage = 'http://www.gromacs.org' -description = """GROMACS is a versatile package to perform molecular dynamics, - i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'usempi': True} - -# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz -source_urls = [ - 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources - 'http://gerrit.gromacs.org/download/', # regression tests sources -] -sources = [ - SOURCELOWER_TAR_GZ, - 'regressiontests-%(version)s.tar.gz', -] - -preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW}/lib && " -preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/include && " - -dependencies = [ - ('fftw/3.3.4.3', EXTERNAL_MODULE), -] - -builddependencies = [('CMake', '3.2.2')] - -runtest = False - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb deleted file mode 100644 index 7d022ac778..0000000000 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-XC-mpi.eb +++ /dev/null @@ -1,45 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University -# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ -# George Tsouloupas , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html -## -name = 'GROMACS' -version = '4.6.7' -versionsuffix = '-mpi' - -homepage = 'http://www.gromacs.org' -description = """GROMACS is a versatile package to perform molecular dynamics, - i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'usempi': True} - -# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz -source_urls = [ - 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources - 'http://gerrit.gromacs.org/download/', # regression tests sources -] -sources = [ - SOURCELOWER_TAR_GZ, - 'regressiontests-%(version)s.tar.gz', -] - -preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " -preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " - -dependencies = [ - ('fftw/3.3.4.5', EXTERNAL_MODULE), -] - -builddependencies = [('CMake', '3.2.2')] - -runtest = False - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb deleted file mode 100644 index 492e226263..0000000000 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-XC-mpi.eb +++ /dev/null @@ -1,45 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University -# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ -# George Tsouloupas , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html -## -name = 'GROMACS' -version = '4.6.7' -versionsuffix = '-mpi' - -homepage = 'http://www.gromacs.org' -description = """GROMACS is a versatile package to perform molecular dynamics, - i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'usempi': True} - -# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz -source_urls = [ - 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources - 'http://gerrit.gromacs.org/download/', # regression tests sources -] -sources = [ - SOURCELOWER_TAR_GZ, - 'regressiontests-%(version)s.tar.gz', -] - -preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " -preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " - -dependencies = [ - ('fftw/3.3.4.5', EXTERNAL_MODULE), -] - -builddependencies = [('CMake', '3.2.2')] - -runtest = False - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06-XC.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06-XC.eb deleted file mode 100644 index 845802b504..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.06-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayCCE', 'version': '2015.06-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -patches = [ - # fix Make dependencies, so parallel build also works - 'HPL_parallel-make.patch', - 'HPL-2.1_LINKER-ld.patch', -] - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11-XC.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11-XC.eb deleted file mode 100644 index f4a0256f79..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayCCE-2015.11-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayCCE', 'version': '2015.11-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -patches = [ - # fix Make dependencies, so parallel build also works - 'HPL_parallel-make.patch', - 'HPL-2.1_LINKER-ld.patch', -] - -parallel = 1 - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06-XC.eb deleted file mode 100644 index fe0de8812c..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11-XC.eb deleted file mode 100644 index ecd5998b8d..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06-XC.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06-XC.eb deleted file mode 100644 index 32e943a8d6..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.06-XC.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.06-XC'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11-XC.eb deleted file mode 100644 index 370ce49b4c..0000000000 --- a/easybuild/easyconfigs/h/HPL/HPL-2.1-CrayIntel-2015.11-XC.eb +++ /dev/null @@ -1,18 +0,0 @@ -name = 'HPL' -version = '2.1' - -homepage = 'http://www.netlib.org/benchmark/hpl/' -description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic - on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the - High Performance Computing Linpack Benchmark.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'optarch': True, 'usempi': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] - -# fix Make dependencies, so parallel build also works -patches = ['HPL_parallel-make.patch'] - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 057b6423c3..0000000000 --- a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'JasPer' -version = '1.900.1' - -homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' -description = """The JasPer Project is an open-source initiative to provide a free - software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_ZIP] -source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] - -sanity_check_paths = { - 'files': ["bin/jasper", "lib/libjasper.a"], - 'dirs': ["include"], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb deleted file mode 100644 index b3d235faba..0000000000 --- a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'JasPer' -version = '1.900.1' - -homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' -description = """The JasPer Project is an open-source initiative to provide a free - software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_ZIP] -source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] - -sanity_check_paths = { - 'files': ["bin/jasper", "lib/libjasper.a"], - 'dirs': ["include"], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb deleted file mode 100644 index 45bc1007dd..0000000000 --- a/easybuild/easyconfigs/j/JasPer/JasPer-1.900.1-CrayIntel-2015.11-XC.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'JasPer' -version = '1.900.1' - -homepage = 'http://www.ece.uvic.ca/~frodo/jasper/' -description = """The JasPer Project is an open-source initiative to provide a free - software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = [SOURCELOWER_ZIP] -source_urls = ['http://www.ece.uvic.ca/~frodo/jasper/software/'] - -sanity_check_paths = { - 'files': ["bin/jasper", "lib/libjasper.a"], - 'dirs': ["include"], -} - -moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 8c50a3c766..0000000000 --- a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'Libint' -version = '1.1.4' - -homepage = 'https://sourceforge.net/p/libint/' -description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body - matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'opt': True, 'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') - -configopts = "--enable-deriv --enable-r12" - -sanity_check_paths = { - 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + - ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + - ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + - ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], - 'dirs':[], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb deleted file mode 100644 index ba7eabefb4..0000000000 --- a/easybuild/easyconfigs/l/Libint/Libint-1.1.4-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,24 +0,0 @@ -name = 'Libint' -version = '1.1.4' - -homepage = 'https://sourceforge.net/p/libint/' -description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body - matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'opt': True, 'pic': True} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') - -configopts = "--enable-deriv --enable-r12" - -sanity_check_paths = { - 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + - ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + - ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + - ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], - 'dirs':[], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 86d9535460..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.3' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """The GNU Readline library provides a set of functions for use by applications that - allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. - The Readline library includes additional functions to maintain a list of previously-entered command lines, - to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '5.9')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs' : [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 9f6f591568..0000000000 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libreadline' -version = '6.3' - -homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' -description = """The GNU Readline library provides a set of functions for use by applications that - allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. - The Readline library includes additional functions to maintain a list of previously-entered command lines, - to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -sources = ['readline-%(version)s.tar.gz'] -source_urls = ['http://ftp.gnu.org/gnu/readline'] - -dependencies = [('ncurses', '5.9')] - -# for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" - -sanity_check_paths = { - 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + - ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', - 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], - 'dirs' : [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 3ef89d660d..0000000000 --- a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxc' -version = '2.2.1' - -homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' -description = """Libxc is a library of exchange-correlation functionals for density-functional theory. - The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'opt': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] - -configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' - -# From the libxc mailing list -# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect -# a fully working testsuite soon (unless someone wants to volunteer to do -# it, of course ) In the meantime, unless the majority of the tests -# fail, your build should be fine. -#runtest = 'check' - -sanity_check_paths = { - 'files': ['lib/libxc.a'], - 'dirs': ['include'], -} - -parallel = 1 - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb deleted file mode 100644 index bfd88b3c4b..0000000000 --- a/easybuild/easyconfigs/l/libxc/libxc-2.2.1-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'libxc' -version = '2.2.1' - -homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' -description = """Libxc is a library of exchange-correlation functionals for density-functional theory. - The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'opt': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] - -configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' - -# From the libxc mailing list -# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect -# a fully working testsuite soon (unless someone wants to volunteer to do -# it, of course ) In the meantime, unless the majority of the tests -# fail, your build should be fine. -#runtest = 'check' - -sanity_check_paths = { - 'files': ['lib/libxc.a'], - 'dirs': ['include'], -} - -parallel = 1 - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 99ad1db263..0000000000 --- a/easybuild/easyconfigs/l/libxc/libxc-2.2.2-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,33 +0,0 @@ -# contributed by Luca Marsella (CSCS) -easyblock = 'ConfigureMake' - -name = 'libxc' -version = '2.2.2' - -homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' -description = """Libxc is a library of exchange-correlation functionals for density-functional theory. - The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'opt': True} - -sources = [SOURCE_TAR_GZ] -source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] - -configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' - -# From the libxc mailing list -# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect -# a fully working testsuite soon (unless someone wants to volunteer to do -# it, of course ) In the meantime, unless the majority of the tests -# fail, your build should be fine. -#runtest = 'check' - -sanity_check_paths = { - 'files': ['lib/libxc.a', 'lib/libxc.so'], - 'dirs': ['include'], -} - -parallel = 1 - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 68ee7aa23b..0000000000 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'M4' -version = '1.4.17' - -homepage = 'http://www.gnu.org/software/m4/m4.html' -description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible - although it has some extensions (for example, handling more than 9 positional parameters to macros). - GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -configopts = "--enable-cxx" - -sanity_check_paths = { - 'files': ["bin/m4"], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb deleted file mode 100644 index fd7cafa798..0000000000 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'M4' -version = '1.4.17' - -homepage = 'http://www.gnu.org/software/m4/m4.html' -description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible - although it has some extensions (for example, handling more than 9 positional parameters to macros). - GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [GNU_SOURCE] - -configopts = "--enable-cxx" - -sanity_check_paths = { - 'files': ["bin/m4"], - 'dirs': [], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb deleted file mode 100644 index f016964748..0000000000 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,25 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'NFFT' -version = '3.3.0' - -homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' -description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine - library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more - dimensions, of arbitrary input size, and of complex data.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [ - ('fftw/3.3.4.3', EXTERNAL_MODULE), -] - -sanity_check_paths = { - 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], - 'dirs': ['lib/pkgconfig'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 10957199be..0000000000 --- a/easybuild/easyconfigs/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,25 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'NFFT' -version = '3.3.0' - -homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' -description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine - library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more - dimensions, of arbitrary input size, and of complex data.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] -sources = [SOURCELOWER_TAR_GZ] - -dependencies = [ - ('fftw/3.3.4.5', EXTERNAL_MODULE), -] - -sanity_check_paths = { - 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], - 'dirs': ['lib/pkgconfig'], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb deleted file mode 100644 index f11ad3873e..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 0c15e725f4..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb deleted file mode 100644 index 6caf9a9b85..0000000000 --- a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-CrayIntel-2015.11-XC.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'ncurses' -version = '5.9' - -homepage = 'http://www.gnu.org/software/ncurses/' -description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, - and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] - -configopts = [ - # default build - '--with-shared --enable-overwrite', - # the UTF-8 enabled version (ncursesw) - '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' -] - -libs = ["form", "menu", "ncurses", "panel"] -sanity_check_paths = { - 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", - "reset", "tabs", "tic", "toe", "tput", "tset"]] + - ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + - ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + - ['lib/libncurses++%s.a' % x for x in ['', 'w']], - 'dirs': ['include', 'include/ncursesw'], -} - -moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb deleted file mode 100644 index 09f3884a76..0000000000 --- a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.06-XC-Python-2.7.9.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'numpy' -version = '1.9.2' - -homepage = 'http://www.numpy.org' -description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: - a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran - code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, - NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be - defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['numpy-1.8.0-mkl.patch'] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb deleted file mode 100644 index 91375139ee..0000000000 --- a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-CrayGNU-2015.11-XC-Python-2.7.9.eb +++ /dev/null @@ -1,26 +0,0 @@ -name = 'numpy' -version = '1.9.2' - -homepage = 'http://www.numpy.org' -description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: - a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran - code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, - NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be - defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['numpy-1.8.0-mkl.patch'] - -python = 'Python' -pyver = '2.7.9' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb deleted file mode 100644 index ae58dbb498..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC-bare.eb +++ /dev/null @@ -1,39 +0,0 @@ -name = 'Python' -version = '2.7.9' -versionsuffix = '-bare' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True, 'opt': True} - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -# bare installation: no extensions included -exts_list = [] - -buildopts = 'LINKCC="$CC -dynamic"' - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb deleted file mode 100644 index d2018b8970..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,115 +0,0 @@ -name = 'Python' -version = '2.7.9' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.9.1' -scipyversion = '0.14.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -buildopts = 'LINKCC="$CC -dynamic"' - -# order is important! -# package versions updated Jan 19th 2015 -exts_list = [ - ('setuptools', '11.3.1', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '6.0.6', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': [ - 'numpy-1.8.0-mkl.patch', # % numpyversion, - ], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('blist', '1.3.6', { - 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], - }), - ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('lockfile', '0.10.2', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.21.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.9.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.4.0', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '2.0.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.11', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.15.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), - ('pyparsing', '2.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], - }), - ('netifaces', '0.10.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], - }), - ('netaddr', '0.7.13', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], - }), -] - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb deleted file mode 100644 index f91af70f07..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC-bare.eb +++ /dev/null @@ -1,39 +0,0 @@ -name = 'Python' -version = '2.7.9' -versionsuffix = '-bare' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True, 'opt': True} - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -# bare installation: no extensions included -exts_list = [] - -buildopts = 'LINKCC="$CC -dynamic"' - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb deleted file mode 100644 index da85447313..0000000000 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,115 +0,0 @@ -name = 'Python' -version = '2.7.9' - -homepage = 'http://python.org/' -description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True, 'opt': True, 'optarch': True} - -numpyversion = '1.9.1' -scipyversion = '0.14.1' - -source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] -sources = [SOURCE_TGZ] - -# python needs bzip2 to build the bz2 package -dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.8'), - ('libreadline', '6.3'), - ('ncurses', '5.9'), -# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's -# nice to have an up to date openssl for security reasons -] - -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] - -buildopts = 'LINKCC="$CC -dynamic"' - -# order is important! -# package versions updated Jan 19th 2015 -exts_list = [ - ('setuptools', '11.3.1', { - 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], - }), - ('pip', '6.0.6', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], - }), - ('nose', '1.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], - }), - ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], - 'patches': [ - 'numpy-1.8.0-mkl.patch', # % numpyversion, - ], - }), - ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], - }), - ('blist', '1.3.6', { - 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], - }), - ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], - }), - ('paycheck', '1.0.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], - }), - ('argparse', '1.2.1', { - 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], - }), - ('lockfile', '0.10.2', { - 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], - }), - ('Cython', '0.21.2', { - 'source_urls': ['http://www.cython.org/release/'], - }), - ('six', '1.9.0', { - 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], - }), - ('dateutil', '2.4.0', { - 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', - 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], - }), - ('deap', '1.0.1', { - 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], - }), - ('decorator', '3.4.0', { - 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], - }), - ('arff', '2.0.1', { - 'source_tmpl': 'liac-%(name)s-%(version)s.zip', - 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], - }), - ('pycrypto', '2.6.1', { - 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], - }), - ('ecdsa', '0.11', { - 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], - }), - ('paramiko', '1.15.2', { - 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], - }), - ('pyparsing', '2.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], - }), - ('netifaces', '0.10.4', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], - }), - ('netaddr', '0.7.13', { - 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], - }), -] - -sanity_check_commands = [ - ('python', '--version'), - ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works - ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another - ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) - ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) -] - -moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb deleted file mode 100644 index a075d53839..0000000000 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Szip' -version = '2.1' - -homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' -description = "Szip compression software, providing lossless compression of scientific data" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True, } - -source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -sanity_check_paths = { - 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + - ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 6340c63211..0000000000 --- a/easybuild/easyconfigs/s/Szip/Szip-2.1-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,23 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Szip' -version = '2.1' - -homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' -description = "Szip compression software, providing lossless compression of scientific data" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True, } - -source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] -sources = [SOURCELOWER_TAR_GZ] - -configopts = "--with-pic" - -sanity_check_paths = { - 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + - ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb deleted file mode 100644 index b47cc99c57..0000000000 --- a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.06-XC-Python-2.7.9.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'scipy' -version = '0.15.1' -versionsuffix = '-Python-2.7.9' - -homepage = 'http://www.scipy.org' -description = """SciPy is a collection of mathematical algorithms and convenience - functions built on the Numpy extension for Python.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True} - -source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('numpy', '1.9.2', versionsuffix), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb b/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb deleted file mode 100644 index b69de1aa3b..0000000000 --- a/easybuild/easyconfigs/s/scipy/scipy-0.15.1-CrayGNU-2015.11-XC-Python-2.7.9.eb +++ /dev/null @@ -1,19 +0,0 @@ -name = 'scipy' -version = '0.15.1' -versionsuffix = '-Python-2.7.9' - -homepage = 'http://www.scipy.org' -description = """SciPy is a collection of mathematical algorithms and convenience - functions built on the Numpy extension for Python.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True} - -source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] -sources = [SOURCE_TAR_GZ] - -dependencies = [ - ('numpy', '1.9.2', versionsuffix), -] - -moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb deleted file mode 100644 index 68086c7c98..0000000000 --- a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'spglib' -version = '1.7.3' - -homepage = 'http://spglib.sourceforge.net/' -description = """Spglib is a C library for finding and handling crystal symmetries.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -start_dir = '%(name)s-%(version)s' - -sanity_check_paths = { - 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], - 'dirs': ['include/spglib'], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb deleted file mode 100644 index bdb5c45a5a..0000000000 --- a/easybuild/easyconfigs/s/spglib/spglib-1.7.3-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,21 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'spglib' -version = '1.7.3' - -homepage = 'http://spglib.sourceforge.net/' -description = """Spglib is a C library for finding and handling crystal symmetries.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -start_dir = '%(name)s-%(version)s' - -sanity_check_paths = { - 'files': ['lib/libsymspg.a', 'lib/libsymspg.%s' % SHLIB_EXT], - 'dirs': ['include/spglib'], -} - -moduleclass = 'chem' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb deleted file mode 100644 index c5db50a961..0000000000 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit -# Authors:: Valentin Plugaru -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html -## -easyblock = 'ConfigureMake' - -name = 'tcsh' -version = '6.18.01' - -homepage = 'http://www.tcsh.org' -description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). - It is a command language interpreter usable both as an interactive login shell and a shell script command - processor. It includes a command-line editor, programmable word completion, spelling correction, a history - mechanism, job control and a C-like syntax.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [ - 'ftp://ftp.astron.com/pub/%(namelower)s', - 'ftp://ftp.astron.com/pub/%(namelower)s/old', -] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/tcsh"], - 'dirs': [] -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 3b456bd5d5..0000000000 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit -# Authors:: Valentin Plugaru -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html -## -easyblock = 'ConfigureMake' - -name = 'tcsh' -version = '6.18.01' - -homepage = 'http://www.tcsh.org' -description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). - It is a command language interpreter usable both as an interactive login shell and a shell script command - processor. It includes a command-line editor, programmable word completion, spelling correction, a history - mechanism, job control and a C-like syntax.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [ - 'ftp://ftp.astron.com/pub/%(namelower)s', - 'ftp://ftp.astron.com/pub/%(namelower)s/old', -] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/tcsh"], - 'dirs': [] -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb deleted file mode 100644 index df83e70f3b..0000000000 --- a/easybuild/easyconfigs/t/tcsh/tcsh-6.18.01-CrayIntel-2015.11-XC.eb +++ /dev/null @@ -1,38 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# -# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit -# Authors:: Valentin Plugaru -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_05-06.html -## -easyblock = 'ConfigureMake' - -name = 'tcsh' -version = '6.18.01' - -homepage = 'http://www.tcsh.org' -description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). - It is a command language interpreter usable both as an interactive login shell and a shell script command - processor. It includes a command-line editor, programmable word completion, spelling correction, a history - mechanism, job control and a C-like syntax.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [ - 'ftp://ftp.astron.com/pub/%(namelower)s', - 'ftp://ftp.astron.com/pub/%(namelower)s/old', -] - -dependencies = [('ncurses', '5.9')] - -sanity_check_paths = { - 'files': ["bin/tcsh"], - 'dirs': [] -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb deleted file mode 100644 index 0b7fd5cfb3..0000000000 --- a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.06-XC-dmpar.eb +++ /dev/null @@ -1,41 +0,0 @@ -name = 'WRF' -version = '3.6.1' - -homepage = 'http://www.wrf-model.org' -description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale - numerical weather prediction system designed to serve both operational forecasting and atmospheric - research needs.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 - -sources = ['%(name)sV%(version)s.TAR.gz'] -source_urls = [ - 'http://www2.mmm.ucar.edu/wrf/src/', - 'http://www.mmm.ucar.edu/wrf/src/', -] - -# csh is used by WRF install scripts -builddependencies = [('tcsh', '6.18.01')] - -dependencies = [ - ('JasPer', '1.900.1'), - ('cray-netcdf/4.3.2', EXTERNAL_MODULE), - ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), -] - -patches = [ - 'WRF_parallel_build_fix.patch', - 'WRF-3.6.1_known_problems.patch', - 'WRF_tests_limit-runtimes.patch', -] - -# limit parallel build to 20 -maxparallel = 20 - -buildtype = "dmpar" -versionsuffix = '-%s' % buildtype - -runtest = False - -moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb deleted file mode 100644 index d353e6742c..0000000000 --- a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayGNU-2015.11-XC-dmpar.eb +++ /dev/null @@ -1,41 +0,0 @@ -name = 'WRF' -version = '3.6.1' - -homepage = 'http://www.wrf-model.org' -description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale - numerical weather prediction system designed to serve both operational forecasting and atmospheric - research needs.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 - -sources = ['%(name)sV%(version)s.TAR.gz'] -source_urls = [ - 'http://www2.mmm.ucar.edu/wrf/src/', - 'http://www.mmm.ucar.edu/wrf/src/', -] - -# csh is used by WRF install scripts -builddependencies = [('tcsh', '6.18.01')] - -dependencies = [ - ('JasPer', '1.900.1'), - ('cray-netcdf/4.3.2', EXTERNAL_MODULE), - ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), -] - -patches = [ - 'WRF_parallel_build_fix.patch', - 'WRF-3.6.1_known_problems.patch', - 'WRF_tests_limit-runtimes.patch', -] - -# limit parallel build to 20 -maxparallel = 20 - -buildtype = "dmpar" -versionsuffix = '-%s' % buildtype - -runtest = False - -moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb deleted file mode 100644 index dc552a3235..0000000000 --- a/easybuild/easyconfigs/w/WRF/WRF-3.6.1-CrayIntel-2015.11-XC-dmpar.eb +++ /dev/null @@ -1,41 +0,0 @@ -name = 'WRF' -version = '3.6.1' - -homepage = 'http://www.wrf-model.org' -description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale - numerical weather prediction system designed to serve both operational forecasting and atmospheric - research needs.""" - -toolchain = {'name': 'CrayIntel', 'version': '2015.11-XC'} -toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 - -sources = ['%(name)sV%(version)s.TAR.gz'] -source_urls = [ - 'http://www2.mmm.ucar.edu/wrf/src/', - 'http://www.mmm.ucar.edu/wrf/src/', -] - -# csh is used by WRF install scripts -builddependencies = [('tcsh', '6.18.01')] - -dependencies = [ - ('JasPer', '1.900.1'), - ('cray-netcdf/4.3.2', EXTERNAL_MODULE), - ('cray-hdf5-parallel/1.8.13', EXTERNAL_MODULE), -] - -patches = [ - 'WRF_parallel_build_fix.patch', - 'WRF-3.6.1_known_problems.patch', - 'WRF_tests_limit-runtimes.patch', -] - -# limit parallel build to 20 -maxparallel = 20 - -buildtype = "dmpar" -versionsuffix = '-%s' % buildtype - -runtest = False - -moduleclass = 'geo' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb deleted file mode 100644 index fbc74998eb..0000000000 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.06-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'zlib' -version = '1.2.8' - -homepage = 'http://www.zlib.net/' -description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, - not covered by any patents -- lossless data-compression library for use on virtually any - computer hardware and operating system.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.06-XC'} -toolchainopts = {'pic': True, } - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] - -sanity_check_paths = { - 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb deleted file mode 100644 index 0c6915d7cd..0000000000 --- a/easybuild/easyconfigs/z/zlib/zlib-1.2.8-CrayGNU-2015.11-XC.eb +++ /dev/null @@ -1,22 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'zlib' -version = '1.2.8' - -homepage = 'http://www.zlib.net/' -description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, - not covered by any patents -- lossless data-compression library for use on virtually any - computer hardware and operating system.""" - -toolchain = {'name': 'CrayGNU', 'version': '2015.11-XC'} -toolchainopts = {'pic': True, } - -sources = [SOURCELOWER_TAR_GZ] -source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] - -sanity_check_paths = { - 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], - 'dirs': [], -} - -moduleclass = 'lib' -- GitLab From 1a04d6640a63dcb22c3ca78d7ce4c477867f8572 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 13 Mar 2016 20:50:25 +0000 Subject: [PATCH 486/732] Add packed binary version of sratoolkit 2.5.7 --- .../s/sratoolkit/sratoolkit-2.5.7.eb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb diff --git a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb new file mode 100644 index 0000000000..e8e5e37a6b --- /dev/null +++ b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb @@ -0,0 +1,34 @@ +easyblock = 'PackedBinary' + +name = 'sratoolkit' +version = '2.5.7' + +homepage = 'http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software' +description = """The SRA Toolkit, and the source-code SRA System Development + Kit (SDK), will allow you to programmatically access data housed within SRA + and convert it from the SRA format""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/%(version)s/'] +sources = ['sratoolkit.%(version)s-centos_linux64.tar.gz'] + +executables = [ +'abi-dump*', 'abi-load*', 'align-info*', 'bam-load*', 'blastn_vdb*', 'cache-mgr*', +'cg-load*', 'fastq-dump*', 'fastq-load*', 'helicos-load*', 'illumina-dump*', +'illumina-load*', 'kar*', 'kdbmeta*', 'latf-load*', 'ncbi', 'pacbio-load*', +'prefetch*', 'rcexplain*', 'remote-fuser*', 'sam-dump*', 'sff-dump*', +'sff-load*', 'sra-kar*', 'sra-pileup*', 'sra-sort*', 'sra-stat*', 'srapath*', +'srf-load*', 'tblastn_vdb*', 'test-sra*', 'vdb-config*', 'vdb-copy*', +'vdb-decrypt*', 'vdb-dump*', 'vdb-encrypt*', 'vdb-lock*', 'vdb-passwd*', +'vdb-unlock*', 'vdb-validate*', +] + +files_to_copy = [('*', 'bin')] + +sanity_check_paths = { + 'files': ['bin/abi-dump', 'bin/illumina-load', 'bin/srf-load', ], + 'dirs': [] +} + +moduleclass = 'bio' -- GitLab From c09c304722a69796d45d2678918508534f225b37 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 13 Mar 2016 20:53:24 +0000 Subject: [PATCH 487/732] Add proper header with attribution --- easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb index e8e5e37a6b..fc210435ee 100644 --- a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb +++ b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb @@ -1,3 +1,10 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Adam Huffman +# adam.huffman@crick.ac.uk +# The Francis Crick Institute +# Based on work by npklein + easyblock = 'PackedBinary' name = 'sratoolkit' -- GitLab From 9750d399b67a70e27e331d3ed0227bf30d373ea5 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Mar 2016 13:55:10 +0100 Subject: [PATCH 488/732] include pandas as extension in Python 3.5.1 easyconfigs --- easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb | 3 +++ easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb | 3 +++ 2 files changed, 6 insertions(+) diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb index ec80435d9b..782d02fe62 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-foss-2016a.eb @@ -107,6 +107,9 @@ exts_list = [ ('netaddr', '0.7.18', { 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb index aa7a7d9034..5dcd8c848b 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.5.1-intel-2016a.eb @@ -111,6 +111,9 @@ exts_list = [ ('netaddr', '0.7.18', { 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), ] moduleclass = 'lang' -- GitLab From dc22f84516afbdee12bbc87d59077c30d83704a1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Mar 2016 15:10:34 +0200 Subject: [PATCH 489/732] modify easyconfig scikit-learn-0.17.1-intel-2016a-Python-3.5.1.eb, modify easyconfig matplotlib-1.5.1-intel-2016a-Python-3.5.1.eb --- ...tplotlib-1.5.1-intel-2016a-Python-3.5.1.eb | 45 +++++++++++++++++++ ...t-learn-0.17.1-intel-2016a-Python-3.5.1.eb | 30 +++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-3.5.1.eb create mode 100644 easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-3.5.1.eb diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..2c2c674d2c --- /dev/null +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,45 @@ +easyblock = 'Bundle' + +name = 'matplotlib' +version = '1.5.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://matplotlib.org' +description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of + hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python + and ipython shell, web application servers, and six graphical user interface toolkits.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_filter = ('python -c "import %(ext_name)s"', '') + +dependencies = [ + ('Python', '3.5.1'), + ('freetype', '2.6.2'), + ('libpng', '1.6.21'), +] + +exts_list = [ + ('Cycler', '0.9.0', { + 'modulename': 'cycler', + 'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'], + 'source_tmpl': 'cycler-%(version)s.tar.gz', + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/m/matplotlib'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..f49a608d87 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'scikit-learn' +version = '0.17.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://scikit-learn.org/stable/index.html' +description = """Scikit-learn integrates machine learning algorithms in the tightly-knit scientific Python world, +building upon numpy, scipy, and matplotlib. As a machine-learning module, +it provides versatile tools for data mining and analysis in any field of science and engineering. +It strives to be simple and efficient, accessible to everybody, and reusable in various contexts.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '3.5.1'), + ('matplotlib', '1.5.1', versionsuffix), +] + +options = {'modulename': 'sklearn'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/sklearn'], +} + +moduleclass = 'data' -- GitLab From a22ef3361ebc08e4296092d559b97071e024068d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Mar 2016 17:57:47 +0200 Subject: [PATCH 490/732] add easyconfig ADF-2016.101.eb --- easybuild/easyconfigs/a/ADF/ADF-2016.101.eb | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/a/ADF/ADF-2016.101.eb diff --git a/easybuild/easyconfigs/a/ADF/ADF-2016.101.eb b/easybuild/easyconfigs/a/ADF/ADF-2016.101.eb new file mode 100644 index 0000000000..5fe5e14c14 --- /dev/null +++ b/easybuild/easyconfigs/a/ADF/ADF-2016.101.eb @@ -0,0 +1,31 @@ +easyblock = 'Tarball' + +name = 'ADF' +version = '2016.101' + +homepage = 'http://www.scm.com/ADF/' +description = """ADF is an accurate, parallelized, powerful computational chemistry program to understand and + predict chemical structure and reactivity with density functional theory (DFT).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['adf%(version)s.pc64_linux.intelmpi.tgz'] + +keepsymlinks = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['atomicdata', 'bin', 'examples'], +} + +modextravars = { + 'ADFHOME': '%(installdir)s', + 'ADFBIN': '%(installdir)s/bin', + 'ADFRESOURCES': '%(installdir)s/atomicdata', +} + +modloadmsg = "These environment variables need to be defined before using ADF:\n" +modloadmsg += " * $SCMLICENSE: path to ADF license file\n" +modloadmsg += " * $SCM_TMPDIR: path to user scratch directory" + +moduleclass = 'chem' -- GitLab From 600a222f07887960db797217fe7d058dfeb7a046 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Mar 2016 18:13:18 +0200 Subject: [PATCH 491/732] add easyconfig statsmodels-0.6.1-intel-2016a-Python-3.5.1.eb --- ...tsmodels-0.6.1-intel-2016a-Python-3.5.1.eb | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 easybuild/easyconfigs/s/statsmodels/statsmodels-0.6.1-intel-2016a-Python-3.5.1.eb diff --git a/easybuild/easyconfigs/s/statsmodels/statsmodels-0.6.1-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/s/statsmodels/statsmodels-0.6.1-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..a2ab69cdf5 --- /dev/null +++ b/easybuild/easyconfigs/s/statsmodels/statsmodels-0.6.1-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,40 @@ +easyblock = 'Bundle' + +name = 'statsmodels' +version = '0.6.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/statsmodels' +description = """Statsmodels is a Python package that provides a complement to scipy for statistical computations + including descriptive statistics and estimation and inference for statistical models.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '3.5.1'), +] + +exts_list = [ + ('patsy', '0.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/patsy'], + 'source_tmpl': 'patsy-%(version)s.zip', + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/s/statsmodels'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'math' -- GitLab From 7c545ed144d07424dff4f16fffbb9dc94b1f950d Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 14 Mar 2016 17:14:09 +0000 Subject: [PATCH 492/732] Fix indent and sanity check --- .../s/sratoolkit/sratoolkit-2.5.7.eb | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb index fc210435ee..da9654c11e 100644 --- a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb +++ b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb @@ -21,21 +21,21 @@ source_urls = ['http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/%(version)s/'] sources = ['sratoolkit.%(version)s-centos_linux64.tar.gz'] executables = [ -'abi-dump*', 'abi-load*', 'align-info*', 'bam-load*', 'blastn_vdb*', 'cache-mgr*', -'cg-load*', 'fastq-dump*', 'fastq-load*', 'helicos-load*', 'illumina-dump*', -'illumina-load*', 'kar*', 'kdbmeta*', 'latf-load*', 'ncbi', 'pacbio-load*', -'prefetch*', 'rcexplain*', 'remote-fuser*', 'sam-dump*', 'sff-dump*', -'sff-load*', 'sra-kar*', 'sra-pileup*', 'sra-sort*', 'sra-stat*', 'srapath*', -'srf-load*', 'tblastn_vdb*', 'test-sra*', 'vdb-config*', 'vdb-copy*', -'vdb-decrypt*', 'vdb-dump*', 'vdb-encrypt*', 'vdb-lock*', 'vdb-passwd*', -'vdb-unlock*', 'vdb-validate*', + 'abi-dump*', 'abi-load*', 'align-info*', 'bam-load*', 'blastn_vdb*', 'cache-mgr*', + 'cg-load*', 'fastq-dump*', 'fastq-load*', 'helicos-load*', 'illumina-dump*', + 'illumina-load*', 'kar*', 'kdbmeta*', 'latf-load*', 'ncbi', 'pacbio-load*', + 'prefetch*', 'rcexplain*', 'remote-fuser*', 'sam-dump*', 'sff-dump*', + 'sff-load*', 'sra-kar*', 'sra-pileup*', 'sra-sort*', 'sra-stat*', 'srapath*', + 'srf-load*', 'tblastn_vdb*', 'test-sra*', 'vdb-config*', 'vdb-copy*', + 'vdb-decrypt*', 'vdb-dump*', 'vdb-encrypt*', 'vdb-lock*', 'vdb-passwd*', + 'vdb-unlock*', 'vdb-validate*', ] files_to_copy = [('*', 'bin')] sanity_check_paths = { - 'files': ['bin/abi-dump', 'bin/illumina-load', 'bin/srf-load', ], - 'dirs': [] + 'files': [], + 'dirs': ['bin'] } moduleclass = 'bio' -- GitLab From 24f917cdef4c9a335c64052ea227ee67623450fc Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 14 Mar 2016 17:37:12 +0000 Subject: [PATCH 493/732] Remove executables and add detail to sanity check --- .../s/sratoolkit/sratoolkit-2.5.7.eb | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb index da9654c11e..b3d358e4a3 100644 --- a/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb +++ b/easybuild/easyconfigs/s/sratoolkit/sratoolkit-2.5.7.eb @@ -20,22 +20,9 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/%(version)s/'] sources = ['sratoolkit.%(version)s-centos_linux64.tar.gz'] -executables = [ - 'abi-dump*', 'abi-load*', 'align-info*', 'bam-load*', 'blastn_vdb*', 'cache-mgr*', - 'cg-load*', 'fastq-dump*', 'fastq-load*', 'helicos-load*', 'illumina-dump*', - 'illumina-load*', 'kar*', 'kdbmeta*', 'latf-load*', 'ncbi', 'pacbio-load*', - 'prefetch*', 'rcexplain*', 'remote-fuser*', 'sam-dump*', 'sff-dump*', - 'sff-load*', 'sra-kar*', 'sra-pileup*', 'sra-sort*', 'sra-stat*', 'srapath*', - 'srf-load*', 'tblastn_vdb*', 'test-sra*', 'vdb-config*', 'vdb-copy*', - 'vdb-decrypt*', 'vdb-dump*', 'vdb-encrypt*', 'vdb-lock*', 'vdb-passwd*', - 'vdb-unlock*', 'vdb-validate*', -] - -files_to_copy = [('*', 'bin')] - sanity_check_paths = { - 'files': [], - 'dirs': ['bin'] + 'files': ['bin/abi-load', 'bin/fastq-dump', 'bin/sff-load', 'bin/vdb-dump'], + 'dirs': [] } moduleclass = 'bio' -- GitLab From 594901c38692154ba44bae343882354bc7c0af7d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Mar 2016 19:34:41 +0100 Subject: [PATCH 494/732] stick to binutils 2.25 for now --- .../b/binutils/binutils-2.26-GCCcore-4.9.3.eb | 41 ------------------- ...26.eb => icc-2016.2.181-GCC-4.9.3-2.25.eb} | 2 +- ... => iccifort-2016.2.181-GCC-4.9.3-2.25.eb} | 2 +- ....eb => ifort-2016.2.181-GCC-4.9.3-2.25.eb} | 2 +- ....26.eb => iimpi-2016.02-GCC-4.9.3-2.25.eb} | 2 +- ...1.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb} | 2 +- ...181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb} | 2 +- .../i/intel/intel-2016.02-GCC-4.9.eb | 2 +- 8 files changed, 7 insertions(+), 48 deletions(-) delete mode 100644 easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb rename easybuild/easyconfigs/i/icc/{icc-2016.2.181-GCC-4.9.3-2.26.eb => icc-2016.2.181-GCC-4.9.3-2.25.eb} (98%) rename easybuild/easyconfigs/i/iccifort/{iccifort-2016.2.181-GCC-4.9.3-2.26.eb => iccifort-2016.2.181-GCC-4.9.3-2.25.eb} (93%) rename easybuild/easyconfigs/i/ifort/{ifort-2016.2.181-GCC-4.9.3-2.26.eb => ifort-2016.2.181-GCC-4.9.3-2.25.eb} (98%) rename easybuild/easyconfigs/i/iimpi/{iimpi-2016.02-GCC-4.9.3-2.26.eb => iimpi-2016.02-GCC-4.9.3-2.25.eb} (94%) rename easybuild/easyconfigs/i/imkl/{imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb => imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb} (95%) rename easybuild/easyconfigs/i/impi/{impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb => impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb} (99%) diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb deleted file mode 100644 index 0d3fdd2d17..0000000000 --- a/easybuild/easyconfigs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb +++ /dev/null @@ -1,41 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'binutils' -version = '2.26' - -homepage = 'http://directory.fsf.org/project/binutils/' -description = "binutils: GNU binary utilities" - -toolchain = {'name': 'GCCcore', 'version': '4.9.3'} - -sources = [SOURCE_TAR_GZ] -source_urls = [GNU_SOURCE] - -builddependencies = [ - ('flex', '2.6.0'), - ('Bison', '3.0.4'), - # zlib required, but being linked instatically, so not a runtime dep - ('zlib', '1.2.8'), - # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils - ('binutils', version, '', True) -] - -# statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' - -# make sure that system libraries are also considered by ld and ld.gold is also built -# --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html -configopts = '--with-sysroot=/ --enable-gold --enable-ld=default --enable-plugins --enable-shared --enable-static' - -binlist = ['addr2line', 'ar', 'as', 'c++filt', 'elfedit', 'gprof', 'ld', 'ld.bfd', 'ld.gold', 'nm', - 'objcopy', 'objdump', 'ranlib', 'readelf', 'size', 'strings', 'strip'] - -sanity_check_paths = { - 'files': ['bin/%s' % x for x in binlist] + - ['lib/lib%s.%s' % (l, x) for l in ['bfd', 'opcodes'] for x in ['a', SHLIB_EXT]] + - ['include/%s' % x for x in ['ansidecl.h', 'bfd.h', 'bfdlink.h', 'dis-asm.h', 'symcat.h']], - 'dirs': [], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb similarity index 98% rename from easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb rename to easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb index ec73b70b03..569030c764 100644 --- a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.26.eb +++ b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb @@ -13,7 +13,7 @@ sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_update checksums = ['d6f8529a44231e427219c8e025dec3b2'] gccver = '4.9.3' -binutilsver = '2.26' +binutilsver = '2.25' versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) dependencies = [ diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.25.eb similarity index 93% rename from easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb rename to easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.25.eb index 93577bed54..871fae395a 100644 --- a/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.26.eb +++ b/easybuild/easyconfigs/i/iccifort/iccifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -3,7 +3,7 @@ easyblock = "Toolchain" name = 'iccifort' version = '2016.2.181' -versionsuffix = '-GCC-4.9.3-2.26' +versionsuffix = '-GCC-4.9.3-2.25' homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" diff --git a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb similarity index 98% rename from easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb rename to easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb index c55e928942..01be1aa191 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.26.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -13,7 +13,7 @@ sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_up checksums = ['70e88db11efc59b1d8ff8b5aadf50f7f'] gccver = '4.9.3' -binutilsver = '2.26' +binutilsver = '2.25' versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) dependencies = [ diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.25.eb similarity index 94% rename from easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb rename to easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.25.eb index 0be81ea753..3d1b981714 100644 --- a/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.26.eb +++ b/easybuild/easyconfigs/i/iimpi/iimpi-2016.02-GCC-4.9.3-2.25.eb @@ -3,7 +3,7 @@ easyblock = "Toolchain" name = 'iimpi' version = '2016.02' -versionsuffix = '-GCC-4.9.3-2.26' +versionsuffix = '-GCC-4.9.3-2.25' homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb similarity index 95% rename from easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb rename to easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb index 78baf11191..34b7b8bb07 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.26.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb @@ -9,7 +9,7 @@ description = """Intel Math Kernel Library is a library of highly optimized, applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" -toolchain = {'name': 'iimpi', 'version': '2016.02-GCC-4.9.3-2.26'} +toolchain = {'name': 'iimpi', 'version': '2016.02-GCC-4.9.3-2.25'} sources = ['l_mkl_%(version)s.tgz'] checksums = ['536dbd82896d6facc16de8f961d17d65'] diff --git a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb similarity index 99% rename from easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb rename to easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb index 147e9c1ec1..d3526d68e5 100644 --- a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.26.eb +++ b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -8,7 +8,7 @@ description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric messag passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" -toolchain = {'name': 'iccifort', 'version': '2016.2.181-GCC-4.9.3-2.26'} +toolchain = {'name': 'iccifort', 'version': '2016.2.181-GCC-4.9.3-2.25'} sources = ['l_mpi_p_%(version)s.tgz'] diff --git a/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb b/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb index 955db91710..41552f25a9 100644 --- a/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb +++ b/easybuild/easyconfigs/i/intel/intel-2016.02-GCC-4.9.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} compver = '2016.2.181' gccver = '%s.3' % gcc_maj_min -binutilsver = '2.26' +binutilsver = '2.25' gccsuff = '-GCC-%s-%s' % (gccver, binutilsver) dependencies = [ ('GCCcore', gccver), -- GitLab From a1164904bfbae01fbb12a988aaef505d6dc5bf0b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Mar 2016 20:39:31 +0100 Subject: [PATCH 495/732] fix binutils version in flex easyconfig --- easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb b/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb index 5a3de111fc..4015f41291 100644 --- a/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/f/flex/flex-2.6.0-GCCcore-4.9.3.eb @@ -14,7 +14,7 @@ source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] dependencies = [('Bison', '3.0.4')] # use same binutils version that was used when building GCC toolchain -builddependencies = [('binutils', '2.26', '', True)] +builddependencies = [('binutils', '2.25', '', True)] parallel = 1 -- GitLab From 83cfd2deaf27fe0045109af043a5552e36fe47de Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 15 Mar 2016 10:33:31 +0100 Subject: [PATCH 496/732] use HOME constant in new icc/ifort/imkl/impi easyconfigs --- easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb | 4 +--- .../easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb | 4 +--- .../i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb | 4 +--- .../impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb | 3 +-- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb index 569030c764..9338983477 100644 --- a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb @@ -28,8 +28,6 @@ components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-i dontcreateinstalldir = 'True' -# license file -import os -license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") +license_file = HOME + 'licenses/intel/license.lic' moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb index 01be1aa191..5db05e1948 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -28,8 +28,6 @@ components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel dontcreateinstalldir = 'True' -# license file -import os -license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") +license_file = HOME + 'licenses/intel/license.lic' moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb index 34b7b8bb07..53630f7111 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb @@ -16,9 +16,7 @@ checksums = ['536dbd82896d6facc16de8f961d17d65'] dontcreateinstalldir = 'True' -# license file -import os -license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") +license_file = HOME + 'licenses/intel/license.lic' interfaces = True diff --git a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb index d3526d68e5..d059a83720 100644 --- a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -16,8 +16,7 @@ checksums = ['1c14656859d48bf8b90c71dace2a977b'] dontcreateinstalldir = 'True' -import os -license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") +license_file = HOME + 'licenses/intel/license.lic' # set up all the mpi commands to default to intel compilers # set_mpi_wrappers_all = 'True' -- GitLab From 1f16832a0cfc461c45b7c35a796f53db2ab4b4c6 Mon Sep 17 00:00:00 2001 From: Louis Vanduyfhuys Date: Tue, 15 Mar 2016 11:44:31 +0100 Subject: [PATCH 497/732] QuickFF and Yaff for DEFNET --- ...QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb | 34 ++++++++++++++++++ ....develop.2.13-intel-2015b-Python-2.7.10.eb | 35 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb create mode 100644 easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..e48df83b5c --- /dev/null +++ b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,34 @@ +easyblock = "PythonPackage" + +name = 'QuickFF' +version = '2.0.1' + +homepage = 'http://molmod.github.io/QuickFF/' +description = """QuickFF is a Python package developed at the Center for +Molecular Modeling (CMM) to quickly derive accurate force fields from ab initio +calculations.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/molmod/QuickFF/releases/download/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = '2.7.10' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('matplotlib', '1.5.0', versionsuffix), + ('molmod', '1.1', versionsuffix), + ('yaff', 'thesissven2.13', '%s-HDF5-1.8.15-patch1-serial' %(versionsuffix)) +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/%%(namelower)s' % pythonshortversion], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..36a2dc281d --- /dev/null +++ b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,35 @@ +easyblock = "PythonPackage" + +name = 'yaff' +version = '1.0.develop.2.13' + +homepage = 'http://molmod.github.io/yaff/' +description = """Yaff stands for 'Yet another force field'. It is a pythonic force-field code.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/molmod/yaff/releases/download/%(version)s'] +sources = [SOURCE_TAR_GZ] + +pyver = '2.7.10' + +hdf5ver = '1.8.15-patch1' +versionsuffix = '-Python-%s-HDF5-%s-serial' %(pyver, hdf5ver) + +dependencies = [ + ('Python', pyver), + ('h5py', '2.5.0', versionsuffix), + ('molmod', '1.1', '-Python-%s' %(pyver)), +] + +options = {'modulename': name} +#runtest = 'python setup.py build_ext -i; nosetests -v' + + +pyshortver = ".".join(pyver.split(".")[:-1]) +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/%s' % (pyshortver, name)] +} + +moduleclass = 'chem' -- GitLab From 4143001890fac7735da939e011118aed9d4c120b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 15 Mar 2016 13:07:31 +0100 Subject: [PATCH 498/732] add missing '/' --- easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb | 2 +- .../easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb | 2 +- .../i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb | 2 +- .../i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb index 9338983477..4d0d75afae 100644 --- a/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/icc/icc-2016.2.181-GCC-4.9.3-2.25.eb @@ -28,6 +28,6 @@ components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-i dontcreateinstalldir = 'True' -license_file = HOME + 'licenses/intel/license.lic' +license_file = HOME + '/licenses/intel/license.lic' moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb index 5db05e1948..ffe995c4ac 100644 --- a/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -28,6 +28,6 @@ components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel dontcreateinstalldir = 'True' -license_file = HOME + 'licenses/intel/license.lic' +license_file = HOME + '/licenses/intel/license.lic' moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb index 53630f7111..91dcce3df9 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-11.3.2.181-iimpi-2016.02-GCC-4.9.3-2.25.eb @@ -16,7 +16,7 @@ checksums = ['536dbd82896d6facc16de8f961d17d65'] dontcreateinstalldir = 'True' -license_file = HOME + 'licenses/intel/license.lic' +license_file = HOME + '/licenses/intel/license.lic' interfaces = True diff --git a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb index d059a83720..845f7631f8 100644 --- a/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/i/impi/impi-5.1.3.181-iccifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -16,7 +16,7 @@ checksums = ['1c14656859d48bf8b90c71dace2a977b'] dontcreateinstalldir = 'True' -license_file = HOME + 'licenses/intel/license.lic' +license_file = HOME + '/licenses/intel/license.lic' # set up all the mpi commands to default to intel compilers # set_mpi_wrappers_all = 'True' -- GitLab From 4e9120dea53da6a178d82c6c2c61f56300116ace Mon Sep 17 00:00:00 2001 From: Louis Vanduyfhuys Date: Tue, 15 Mar 2016 13:50:41 +0100 Subject: [PATCH 499/732] Fix yaff version in quickff eb, fix yaff eb filename and fix yaff nosetests --- ...QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb | 2 +- ....develop.2.13-intel-2015b-Python-2.7.10.eb | 35 ------------------- 2 files changed, 1 insertion(+), 36 deletions(-) delete mode 100644 easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb index e48df83b5c..5d737222c9 100644 --- a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb @@ -23,7 +23,7 @@ dependencies = [ (python, pythonversion), ('matplotlib', '1.5.0', versionsuffix), ('molmod', '1.1', versionsuffix), - ('yaff', 'thesissven2.13', '%s-HDF5-1.8.15-patch1-serial' %(versionsuffix)) + ('yaff', '1.0.develop.2.13', '%s-HDF5-1.8.15-patch1-serial' %(versionsuffix)) ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb deleted file mode 100644 index 36a2dc281d..0000000000 --- a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.13-intel-2015b-Python-2.7.10.eb +++ /dev/null @@ -1,35 +0,0 @@ -easyblock = "PythonPackage" - -name = 'yaff' -version = '1.0.develop.2.13' - -homepage = 'http://molmod.github.io/yaff/' -description = """Yaff stands for 'Yet another force field'. It is a pythonic force-field code.""" - -toolchain = {'name': 'intel', 'version': '2015b'} - -source_urls = ['https://github.com/molmod/yaff/releases/download/%(version)s'] -sources = [SOURCE_TAR_GZ] - -pyver = '2.7.10' - -hdf5ver = '1.8.15-patch1' -versionsuffix = '-Python-%s-HDF5-%s-serial' %(pyver, hdf5ver) - -dependencies = [ - ('Python', pyver), - ('h5py', '2.5.0', versionsuffix), - ('molmod', '1.1', '-Python-%s' %(pyver)), -] - -options = {'modulename': name} -#runtest = 'python setup.py build_ext -i; nosetests -v' - - -pyshortver = ".".join(pyver.split(".")[:-1]) -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages/%s' % (pyshortver, name)] -} - -moduleclass = 'chem' -- GitLab From 64f041f458140135cc968ab38b501f064d5b48ab Mon Sep 17 00:00:00 2001 From: Louis Vanduyfhuys Date: Tue, 15 Mar 2016 14:06:57 +0100 Subject: [PATCH 500/732] Update eb file to new yaff version with fixed nose tests --- ...Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb diff --git a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb new file mode 100644 index 0000000000..235257521b --- /dev/null +++ b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -0,0 +1,35 @@ +easyblock = "PythonPackage" + +name = 'yaff' +version = '1.0.develop.2.14' + +homepage = 'http://molmod.github.io/yaff/' +description = """Yaff stands for 'Yet another force field'. It is a pythonic force-field code.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/molmod/yaff/releases/download/%(version)s'] +sources = [SOURCE_TAR_GZ] + +pyver = '2.7.10' + +hdf5ver = '1.8.15-patch1' +versionsuffix = '-Python-%s-HDF5-%s-serial' %(pyver, hdf5ver) + +dependencies = [ + ('Python', pyver), + ('h5py', '2.5.0', versionsuffix), + ('molmod', '1.1', '-Python-%s' %(pyver)), +] + +options = {'modulename': name} +runtest = 'python setup.py build_ext -i; nosetests -v' + + +pyshortver = ".".join(pyver.split(".")[:-1]) +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/%s' % (pyshortver, name)] +} + +moduleclass = 'chem' -- GitLab From 91129f8059eb0c9f1fa4fa0dc74b8ea1d0fb46c8 Mon Sep 17 00:00:00 2001 From: Louis Vanduyfhuys Date: Tue, 15 Mar 2016 14:10:49 +0100 Subject: [PATCH 501/732] Update QuickFF eb file to new yaff version --- .../q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb index 5d737222c9..8eea2d3e11 100644 --- a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb @@ -23,7 +23,7 @@ dependencies = [ (python, pythonversion), ('matplotlib', '1.5.0', versionsuffix), ('molmod', '1.1', versionsuffix), - ('yaff', '1.0.develop.2.13', '%s-HDF5-1.8.15-patch1-serial' %(versionsuffix)) + ('yaff', '1.0.develop.2.14', '%s-HDF5-1.8.15-patch1-serial' %(versionsuffix)) ] sanity_check_paths = { -- GitLab From ac747bc3fc479757aa6d8eee896e4afab6afbb07 Mon Sep 17 00:00:00 2001 From: Louis Vanduyfhuys Date: Tue, 15 Mar 2016 16:28:10 +0100 Subject: [PATCH 502/732] Add eb file to build the molmod dependency of yaff and QuickFF --- .../molmod-1.1-intel-2015b-Python-2.7.10.eb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..c36da2b123 --- /dev/null +++ b/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,34 @@ +# Built with EasyBuild version 2.2.0 on 2015-10-01_15-35-44 +easyblock = "PythonPackage" + +name = 'molmod' +version = '1.1' + +homepage = 'http://molmod.github.io/molmod/' +description = """MolMod is a Python library with many compoments that are useful to write molecular modeling programs.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/molmod/molmod/releases/download/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = '2.7.10' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('matplotlib', '1.5.0', versionsuffix), +] + +options = {'modulename': 'molmod'} +runtest = 'export MATPLOTLIBRC=$PWD; echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc; python setup.py build_ext -i; nosetests -v' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/molmod' % pythonshortversion] +} + +moduleclass = 'math' -- GitLab From 9cb1e88ea4838c9df0b08239be240363570cdbce Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Tue, 15 Mar 2016 16:47:53 +0100 Subject: [PATCH 503/732] added segemehl-0.2.0-goolf-1.4.10.eb --- .../s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 easybuild/easyconfigs/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb new file mode 100644 index 0000000000..39c950b357 --- /dev/null +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = "segemehl" +version = "0.2.0" + +homepage = 'http://www.bioinf.uni-leipzig.de/Software/segemehl/' +description = """ segemehl is a software to map short sequencer reads to reference genomes. + Unlike other methods, segemehl is able to detect not only mismatches but also insertions + and deletions. Furthermore, segemehl is not limited to a specific read length and is able + to mapprimer- or polyadenylation contaminated reads correctly. segemehl implements a matching + strategy based on enhanced suffix arrays (ESA). Segemehl now supports the SAM format, reads + gziped queries to save both disk and memory space and allows bisulfite sequencing mapping + and split read mapping. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://www.bioinf.uni-leipzig.de/Software/segemehl/'] +sources = ['%s_%s.tar.gz' % (name, version.replace('.','_'))] + +parallel = 1 + +dependencies = [ + ('ncurses', '5.9'), + ('zlib', '1.2.8'), +] + +files_to_copy = [(["lack.x", "segemehl.x", "testrealign.x"], "bin")] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["lack.x" , "segemehl.x", "testrealign.x"]], + 'dirs': ["."] +} + +moduleclass = 'bio' -- GitLab From c6064624c6bb7e484e21937dab0998fe75398bd4 Mon Sep 17 00:00:00 2001 From: Louis Vanduyfhuys Date: Tue, 15 Mar 2016 19:05:38 +0100 Subject: [PATCH 504/732] Fix matplotlib bug in yaff eb --- ....2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb index 235257521b..29a3cca013 100644 --- a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb +++ b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -23,7 +23,7 @@ dependencies = [ ] options = {'modulename': name} -runtest = 'python setup.py build_ext -i; nosetests -v' +runtest = 'export MATPLOTLIBRC=$PWD; echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc; python setup.py build_ext -i; nosetests -v' pyshortver = ".".join(pyver.split(".")[:-1]) -- GitLab From 914b6e8207bd07567fb6c7b86c037e9ed21862fd Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 15 Mar 2016 22:45:23 +0100 Subject: [PATCH 505/732] style fixes --- .../molmod-1.1-intel-2015b-Python-2.7.10.eb | 18 ++++++----------- ...QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb | 15 +++++--------- ...Python-2.7.10-HDF5-1.8.15-patch1-serial.eb | 20 ++++++++----------- 3 files changed, 19 insertions(+), 34 deletions(-) diff --git a/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb index c36da2b123..4fd3ed9a53 100644 --- a/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb @@ -1,8 +1,8 @@ -# Built with EasyBuild version 2.2.0 on 2015-10-01_15-35-44 -easyblock = "PythonPackage" +easyblock = 'PythonPackage' name = 'molmod' version = '1.1' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://molmod.github.io/molmod/' description = """MolMod is a Python library with many compoments that are useful to write molecular modeling programs.""" @@ -12,23 +12,17 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = ['https://github.com/molmod/molmod/releases/download/v%(version)s'] sources = [SOURCE_TAR_GZ] -python = "Python" -pythonversion = '2.7.10' -pythonshortversion = ".".join(pythonversion.split(".")[:-1]) - -versionsuffix = "-%s-%s" % (python, pythonversion) - dependencies = [ - (python, pythonversion), + ('Python', '2.7.10'), ('matplotlib', '1.5.0', versionsuffix), ] -options = {'modulename': 'molmod'} -runtest = 'export MATPLOTLIBRC=$PWD; echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc; python setup.py build_ext -i; nosetests -v' +runtest = "export MATPLOTLIBRC=$PWD; echo 'backend: agg' > $MATPLOTLIBRC/matplotlibrc;" +runtest += "python setup.py build_ext -i; nosetests -v" sanity_check_paths = { 'files': [], - 'dirs': ['lib/python%s/site-packages/molmod' % pythonshortversion] + 'dirs': ['lib/python%(pyshortver)s/site-packages/molmod'], } moduleclass = 'math' diff --git a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb index 8eea2d3e11..1920995e1b 100644 --- a/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/q/QuickFF/QuickFF-2.0.1-intel-2015b-Python-2.7.10.eb @@ -1,7 +1,8 @@ -easyblock = "PythonPackage" +easyblock = 'PythonPackage' name = 'QuickFF' version = '2.0.1' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://molmod.github.io/QuickFF/' description = """QuickFF is a Python package developed at the Center for @@ -13,22 +14,16 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = ['https://github.com/molmod/QuickFF/releases/download/v%(version)s'] sources = [SOURCE_TAR_GZ] -python = "Python" -pythonversion = '2.7.10' -pythonshortversion = ".".join(pythonversion.split(".")[:-1]) - -versionsuffix = "-%s-%s" % (python, pythonversion) - dependencies = [ - (python, pythonversion), + ('Python', '2.7.10'), ('matplotlib', '1.5.0', versionsuffix), ('molmod', '1.1', versionsuffix), - ('yaff', '1.0.develop.2.14', '%s-HDF5-1.8.15-patch1-serial' %(versionsuffix)) + ('yaff', '1.0.develop.2.14', '%s-HDF5-1.8.15-patch1-serial' % versionsuffix), ] sanity_check_paths = { 'files': [], - 'dirs': ['lib/python%s/site-packages/%%(namelower)s' % pythonshortversion], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'], } moduleclass = 'chem' diff --git a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb index 29a3cca013..8d4f8961ee 100644 --- a/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb +++ b/easybuild/easyconfigs/y/yaff/yaff-1.0.develop.2.14-intel-2015b-Python-2.7.10-HDF5-1.8.15-patch1-serial.eb @@ -1,7 +1,9 @@ -easyblock = "PythonPackage" +easyblock = 'PythonPackage' name = 'yaff' version = '1.0.develop.2.14' +hdf5ver = '1.8.15-patch1' +versionsuffix = '-Python-%%(pyver)s-HDF5-%s-serial' % hdf5ver homepage = 'http://molmod.github.io/yaff/' description = """Yaff stands for 'Yet another force field'. It is a pythonic force-field code.""" @@ -11,25 +13,19 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = ['https://github.com/molmod/yaff/releases/download/%(version)s'] sources = [SOURCE_TAR_GZ] -pyver = '2.7.10' - -hdf5ver = '1.8.15-patch1' -versionsuffix = '-Python-%s-HDF5-%s-serial' %(pyver, hdf5ver) - dependencies = [ - ('Python', pyver), + ('Python', '2.7.10'), ('h5py', '2.5.0', versionsuffix), - ('molmod', '1.1', '-Python-%s' %(pyver)), + ('molmod', '1.1', '-Python-%(pyver)s'), ] options = {'modulename': name} -runtest = 'export MATPLOTLIBRC=$PWD; echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc; python setup.py build_ext -i; nosetests -v' - +runtest = "export MATPLOTLIBRC=$PWD; echo 'backend: agg' > $MATPLOTLIBRC/matplotlibrc; " +runtest += "python setup.py build_ext -i; nosetests -v" -pyshortver = ".".join(pyver.split(".")[:-1]) sanity_check_paths = { 'files': [], - 'dirs': ['lib/python%s/site-packages/%s' % (pyshortver, name)] + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], } moduleclass = 'chem' -- GitLab From e67988bafa0f2ee3059dc1d3611aabf40343ff48 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Mar 2016 10:00:06 +0200 Subject: [PATCH 506/732] Contributing Python package CosmoloPy --- ...oloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb diff --git a/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 0000000000..61bd20053b --- /dev/null +++ b/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,31 @@ +easyblock = "PythonPackage" + +name = 'CosmoloPy' +version = '0.1.104' + +homepage = 'https://github.com/roban/CosmoloPy' +description = """A cosmology package for Python. CosmoloPy is +built on and designed for use with NumPy and SciPy.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.3' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('numpy', '1.7.1', versionsuffix), +] + +pyshortver = '.'.join(pyver.split('.')[:2]) + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % pyshortver], +} + +moduleclass = 'tools' -- GitLab From 73c4c8939f69bd0fbb50a0a028c6205dd963ec1f Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Mar 2016 10:34:47 +0200 Subject: [PATCH 507/732] Contributing Python package astropy --- ...astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb diff --git a/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 0000000000..bab7a31bcf --- /dev/null +++ b/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,33 @@ +easyblock = "PythonPackage" + +name = 'astropy' +version = '1.0.6' + +homepage = 'http://www.astropy.org/' +description = """The Astropy Project is a community effort to develop +a single core package for Astronomy in Python and foster interoperability +between Python astronomy packages.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.3' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('setuptools', '18.4', versionsuffix), + ('numpy', '1.7.1', versionsuffix), +] + +pyshortver = '.'.join(pyver.split('.')[:2]) + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % pyshortver], +} + +moduleclass = 'tools' -- GitLab From 58f33889facc9683c075bd35e88b4001ca178c81 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Mar 2016 10:36:10 +0200 Subject: [PATCH 508/732] Contriburing Python package Whoosh --- .../Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb diff --git a/easybuild/easyconfigs/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 0000000000..db2dcb5741 --- /dev/null +++ b/easybuild/easyconfigs/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = 'Whoosh' +version = '2.7.0' + +homepage = 'https://pypi.python.org/pypi/Whoosh/' +description = """Fast, pure-Python full text indexing, +search, and spell checking library.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pyver = '2.7.3' +pyshortver = ".".join(pyver.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), + ('numpy','1.6.2', versionsuffix), + ('scipy', '0.11.0', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % pyshortver], +} + +moduleclass = 'lib' -- GitLab From ff336d5b553615453f6611f73f2be8e247eba528 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Mar 2016 12:29:49 +0200 Subject: [PATCH 509/732] Adding setuptools config --- ...oloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb | 31 ------------------- ...tuptools-18.4-goolf-1.4.10-Python-2.7.3.eb | 29 +++++++++++++++++ 2 files changed, 29 insertions(+), 31 deletions(-) delete mode 100644 easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb create mode 100644 easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb diff --git a/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb deleted file mode 100644 index 61bd20053b..0000000000 --- a/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb +++ /dev/null @@ -1,31 +0,0 @@ -easyblock = "PythonPackage" - -name = 'CosmoloPy' -version = '0.1.104' - -homepage = 'https://github.com/roban/CosmoloPy' -description = """A cosmology package for Python. CosmoloPy is -built on and designed for use with NumPy and SciPy.""" - -toolchain = {'name': 'goolf', 'version': '1.4.10'} - -source_urls = [PYPI_SOURCE] -sources = [SOURCE_TAR_GZ] - -python = 'Python' -pyver = '2.7.3' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), - ('numpy', '1.7.1', versionsuffix), -] - -pyshortver = '.'.join(pyver.split('.')[:2]) - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages' % pyshortver], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 0000000000..e4b06a51e1 --- /dev/null +++ b/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,29 @@ +easyblock = "PythonPackage" + +name = "setuptools" +version = "18.4" + +homepage = "http://pypi.python.org/pypi/setuptools/" +description = """Download, build, install, upgrade, and uninstall Python packages -- easily!""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://pypi.python.org/packages/source/s/%s/' % name] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = "2.7.3" + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +py_short_ver = ".".join(pythonversion.split(".")[0:2]) +pylibdir = "lib/python%s/site-packages/%s" % (py_short_ver, name) + +sanity_check_paths = { + 'files': ["bin/easy_install", "%s-%s-py%s.egg" % (pylibdir, version, py_short_ver)], + 'dirs': [] + } + +moduleclass = 'devel' -- GitLab From 06e9ae546aa45bcdec0db8857ed5e251dfbd9e2a Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Mar 2016 12:34:27 +0200 Subject: [PATCH 510/732] Updated PR, deleted unwanted files --- ...astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb | 33 ------------------- ...oloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb | 31 ----------------- 2 files changed, 64 deletions(-) delete mode 100644 easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb delete mode 100644 easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb diff --git a/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb deleted file mode 100644 index bab7a31bcf..0000000000 --- a/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb +++ /dev/null @@ -1,33 +0,0 @@ -easyblock = "PythonPackage" - -name = 'astropy' -version = '1.0.6' - -homepage = 'http://www.astropy.org/' -description = """The Astropy Project is a community effort to develop -a single core package for Astronomy in Python and foster interoperability -between Python astronomy packages.""" - -toolchain = {'name': 'goolf', 'version': '1.4.10'} - -source_urls = [PYPI_SOURCE] -sources = [SOURCE_TAR_GZ] - -python = 'Python' -pyver = '2.7.3' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), - ('setuptools', '18.4', versionsuffix), - ('numpy', '1.7.1', versionsuffix), -] - -pyshortver = '.'.join(pyver.split('.')[:2]) - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages' % pyshortver], -} - -moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb deleted file mode 100644 index 61bd20053b..0000000000 --- a/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb +++ /dev/null @@ -1,31 +0,0 @@ -easyblock = "PythonPackage" - -name = 'CosmoloPy' -version = '0.1.104' - -homepage = 'https://github.com/roban/CosmoloPy' -description = """A cosmology package for Python. CosmoloPy is -built on and designed for use with NumPy and SciPy.""" - -toolchain = {'name': 'goolf', 'version': '1.4.10'} - -source_urls = [PYPI_SOURCE] -sources = [SOURCE_TAR_GZ] - -python = 'Python' -pyver = '2.7.3' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), - ('numpy', '1.7.1', versionsuffix), -] - -pyshortver = '.'.join(pyver.split('.')[:2]) - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%s/site-packages' % pyshortver], -} - -moduleclass = 'tools' -- GitLab From 43d5d37b7ce6fea2f8c9ef312f9543b99a245175 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Wed, 16 Mar 2016 12:40:08 +0100 Subject: [PATCH 511/732] Fix typo --- easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb b/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb index 391d1f7f0c..d81b50276d 100644 --- a/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb +++ b/easybuild/easyconfigs/g/gmpolf/gmpolf-2016a.eb @@ -26,7 +26,7 @@ comp_mpi_tc = (comp_mpi_tc_name, version) # For binutils, stick to http://wiki.osdev.org/Cross-Compiler_Successful_Builds dependencies = [ ('GCC', gccver), - ('MVAPICH2', '2.2b', '', ('GCC', gccver)), + ('MPICH', '3.2', '', ('GCC', gccver)), (blaslib, blasver, blassuff, ('GCC', gccver)), ('FFTW', '3.3.4', '', comp_mpi_tc), ('ScaLAPACK', '2.0.2', '-%s%s' % (blas, blassuff), comp_mpi_tc), -- GitLab From 82a53a3c9515ca386991a88206c2d6f51549e672 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Wed, 16 Mar 2016 12:40:22 +0100 Subject: [PATCH 512/732] Cleanup --- easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb | 5 +---- easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb b/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb index d495830401..45cf27aa8b 100644 --- a/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb +++ b/easybuild/easyconfigs/g/gmpich/gmpich-2016a.eb @@ -13,13 +13,10 @@ compname = 'GCC' compver = '4.9.3-2.25' comp = (compname, compver) -mpilib = 'MPICH' -mpiver = '3.2' - # compiler toolchain dependencies dependencies = [ comp, - (mpilib, mpiver, '', comp), + ('MPICH', '3.2', '', comp), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb b/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb index efd6351300..80a9588d01 100644 --- a/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb +++ b/easybuild/easyconfigs/g/gmvapich2/gmvapich2-2016a.eb @@ -13,13 +13,10 @@ compname = 'GCC' compver = '4.9.3-2.25' comp = (compname, compver) -mpilib = 'MVAPICH2' -mpiver = '2.2b' - # compiler toolchain dependencies dependencies = [ comp, - (mpilib, mpiver, '', comp), + ('MVAPICH2', '2.2b', '', comp), ] moduleclass = 'toolchain' -- GitLab From dff5ae0ec1e64be935bb7cb8270f1fa2b67eeeb3 Mon Sep 17 00:00:00 2001 From: Xavier Besseron Date: Wed, 16 Mar 2016 12:43:53 +0100 Subject: [PATCH 513/732] Add easyconfig for HPL with the two new toolchain gmpolf/2016a and gmvpolf/2016a --- .../easyconfigs/h/HPL/HPL-2.1-gmpolf-2016a.eb | 18 ++++++++++++++++++ .../easyconfigs/h/HPL/HPL-2.1-gmvolf-2016a.eb | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-gmpolf-2016a.eb create mode 100644 easybuild/easyconfigs/h/HPL/HPL-2.1-gmvolf-2016a.eb diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-gmpolf-2016a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-gmpolf-2016a.eb new file mode 100644 index 0000000000..ae8a971cbf --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-gmpolf-2016a.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'gmpolf', 'version': '2016a'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.1-gmvolf-2016a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.1-gmvolf-2016a.eb new file mode 100644 index 0000000000..d581afc6f7 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.1-gmvolf-2016a.eb @@ -0,0 +1,18 @@ +name = 'HPL' +version = '2.1' + +homepage = 'http://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic + on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the + High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'gmvolf', 'version': '2016a'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.netlib.org/benchmark/%(namelower)s'] + +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] + +moduleclass = 'tools' -- GitLab From a8ab9324ac69573f4d59b9a6242c17dbe2a39137 Mon Sep 17 00:00:00 2001 From: Thekla Loizou Date: Wed, 16 Mar 2016 14:15:18 +0200 Subject: [PATCH 514/732] Fixing indent --- .../setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb index e4b06a51e1..0b0cd4ff22 100644 --- a/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/setuptools/setuptools-18.4-goolf-1.4.10-Python-2.7.3.eb @@ -22,8 +22,8 @@ py_short_ver = ".".join(pythonversion.split(".")[0:2]) pylibdir = "lib/python%s/site-packages/%s" % (py_short_ver, name) sanity_check_paths = { - 'files': ["bin/easy_install", "%s-%s-py%s.egg" % (pylibdir, version, py_short_ver)], - 'dirs': [] - } + 'files': ["bin/easy_install", "%s-%s-py%s.egg" % (pylibdir, version, py_short_ver)], + 'dirs': [] +} moduleclass = 'devel' -- GitLab From 4f13a60ee4d93dc68fb5a87bd68698ec5c406b6b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 16 Mar 2016 15:03:14 +0100 Subject: [PATCH 515/732] add postinstall command to fix permission issues in molmod easyconfig file --- .../m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb index 4fd3ed9a53..ee1c589750 100644 --- a/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/molmod/molmod-1.1-intel-2015b-Python-2.7.10.eb @@ -20,6 +20,9 @@ dependencies = [ runtest = "export MATPLOTLIBRC=$PWD; echo 'backend: agg' > $MATPLOTLIBRC/matplotlibrc;" runtest += "python setup.py build_ext -i; nosetests -v" +# fix permissions issue on files in share/molmod subdir +postinstallcmds = ['chmod -R o+r %(installdir)s/share/molmod'] + sanity_check_paths = { 'files': [], 'dirs': ['lib/python%(pyshortver)s/site-packages/molmod'], -- GitLab From 38320cfa41dcfd4886d5f64b5c19244705106374 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 16 Mar 2016 16:14:22 +0100 Subject: [PATCH 516/732] Revert "Updated PR, deleted unwanted files" This reverts commit 06e9ae546aa45bcdec0db8857ed5e251dfbd9e2a. --- ...astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb | 33 +++++++++++++++++++ ...oloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb | 31 +++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb create mode 100644 easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb diff --git a/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 0000000000..bab7a31bcf --- /dev/null +++ b/easybuild/easyconfigs/a/astropy/astropy-1.0.6-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,33 @@ +easyblock = "PythonPackage" + +name = 'astropy' +version = '1.0.6' + +homepage = 'http://www.astropy.org/' +description = """The Astropy Project is a community effort to develop +a single core package for Astronomy in Python and foster interoperability +between Python astronomy packages.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.3' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('setuptools', '18.4', versionsuffix), + ('numpy', '1.7.1', versionsuffix), +] + +pyshortver = '.'.join(pyver.split('.')[:2]) + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % pyshortver], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 0000000000..61bd20053b --- /dev/null +++ b/easybuild/easyconfigs/c/CosmoloPy/CosmoloPy-0.1.104-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,31 @@ +easyblock = "PythonPackage" + +name = 'CosmoloPy' +version = '0.1.104' + +homepage = 'https://github.com/roban/CosmoloPy' +description = """A cosmology package for Python. CosmoloPy is +built on and designed for use with NumPy and SciPy.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.3' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('numpy', '1.7.1', versionsuffix), +] + +pyshortver = '.'.join(pyver.split('.')[:2]) + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % pyshortver], +} + +moduleclass = 'tools' -- GitLab From 1a564ebd3f7b674fc01c16277f53d0ba79399ff2 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 16 Mar 2016 17:45:23 +0200 Subject: [PATCH 517/732] add easyconfig PyAMG-3.0.1-intel-2016a-Python-2.7.11.eb --- .../PyAMG-3.0.1-intel-2016a-Python-2.7.11.eb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/p/PyAMG/PyAMG-3.0.1-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/p/PyAMG/PyAMG-3.0.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/PyAMG/PyAMG-3.0.1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..25956cf16e --- /dev/null +++ b/easybuild/easyconfigs/p/PyAMG/PyAMG-3.0.1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,26 @@ +easyblock = "PythonPackage" + +name = 'PyAMG' +version = '3.0.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://pyamg.org' +description = """PyAMG is a library of Algebraic Multigrid (AMG) solvers with a convenient Python interface.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), +] + +options = {'modulename': 'pyamg'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/pyamg'], +} + +moduleclass = 'math' -- GitLab From df381842df1ab423a230a44afd0921ec33e2f3d6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 16 Mar 2016 18:39:27 +0100 Subject: [PATCH 518/732] reinstate Velvet easyconfigs that were removed in #2495 --- .../Velvet-1.2.10-intel-2015b-mt-kmer_100.eb | 29 ++++++++++++++++++ .../Velvet-1.2.10-intel-2015b-mt-kmer_31.eb | 30 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb create mode 100644 easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb new file mode 100644 index 0000000000..70b05647b0 --- /dev/null +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb @@ -0,0 +1,29 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA, 2012-2013 The Cyprus Institute +# Authors:: Cedric Laczny , Fotis Georgatos , +# Thekla Loizou , Andreas Panteli +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +name = 'Velvet' +version = '1.2.10' +versionsuffix = '-mt-kmer_100' + +homepage = 'http://www.ebi.ac.uk/~zerbino/velvet/' +description = """Sequence assembler for very short reads""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True, 'openmp': True} + +sources = ['%(namelower)s_%(version)s.tgz'] +source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] + +buildopts = "OPENMP=1 MAXKMERLENGTH=%s" % versionsuffix.split('_')[1] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb new file mode 100644 index 0000000000..fff6a988ab --- /dev/null +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA, 2012-2013 The Cyprus Institute +# Authors:: Cedric Laczny , Fotis Georgatos , +# Thekla Loizou , Andreas Panteli +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +name = 'Velvet' +version = '1.2.10' +versionsuffix = '-mt-kmer_31' + +homepage = 'http://www.ebi.ac.uk/~zerbino/velvet/' +description = """Sequence assembler for very short reads""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True, 'openmp': True} + +sources = ['%(namelower)s_%(version)s.tgz'] +source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] + +# by default MAXKMERLENGTH=31 but defined here to keep all the easyconfigs homogeneous +buildopts = "OPENMP=1 MAXKMERLENGTH=%s" % versionsuffix.split('_')[1] + +moduleclass = 'bio' -- GitLab From 90fa22472b6cfc099996ca3b9335d92339d1041e Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Wed, 16 Mar 2016 18:45:42 +0100 Subject: [PATCH 519/732] rainbow-2.0.4-goolf-1.4.10.eb --- .../r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb b/easybuild/easyconfigs/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb new file mode 100644 index 0000000000..c431cc2a4f --- /dev/null +++ b/easybuild/easyconfigs/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'rainbow' +version = '2.0.4' + +homepage = 'https://sourceforge.net/projects/bio-rainbow/' +description = """Efficient tool for clustering and assembling short reads, especially for RAD.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://downloads.sourceforge.net/project/bio-rainbow/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +buildopts = ' CC=$CC' + +files_to_copy = [(['rainbow', 'ezmsim', 'rbasm', 'select_sec_rbcontig.pl', + 'select_best_rbcontig_plus_read1.pl', 'select_sec_rbcontig.pl', 'select_all_rbcontig.pl'], 'bin')] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/rainbow', 'bin/ezmsim', 'bin/rbasm'], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 7e1d2ba87aabccafdc34a72438f79de067394201 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Wed, 16 Mar 2016 18:47:49 +0100 Subject: [PATCH 520/732] PEAR-0.9.6-goolf-1.4.10.eb --- .../p/PEAR/PEAR-0.9.6-goolf-1.4.10.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/p/PEAR/PEAR-0.9.6-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/p/PEAR/PEAR-0.9.6-goolf-1.4.10.eb b/easybuild/easyconfigs/p/PEAR/PEAR-0.9.6-goolf-1.4.10.eb new file mode 100644 index 0000000000..5ee2eb89d1 --- /dev/null +++ b/easybuild/easyconfigs/p/PEAR/PEAR-0.9.6-goolf-1.4.10.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'PEAR' +version = '0.9.6' + +homepage = 'http://sco.h-its.org/exelixis/web/software/pear/' +description = """PEAR is an ultrafast, memory-efficient and highly accurate pair-end read merger. + It is fully parallelized and can run with as low as just a few kilobytes of memory.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sco.h-its.org/exelixis/web/software/pear/files/'] +sources = ['%(namelower)s-%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), + ('bzip2', '1.0.6'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/pear'], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 0e5d1dc188f3920467c8ddd6ff17c9fd7ac64b5c Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Wed, 16 Mar 2016 18:50:52 +0100 Subject: [PATCH 521/732] Mawk-1.3.4-goolf-1.4.10-20150503.eb --- .../Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb diff --git a/easybuild/easyconfigs/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb b/easybuild/easyconfigs/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb new file mode 100644 index 0000000000..7235621e5d --- /dev/null +++ b/easybuild/easyconfigs/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'Mawk' +version = '1.3.4' +versionsuffix = '-20150503' + +homepage = 'http://invisible-island.net/mawk/' +description = """mawk is an interpreter for the AWK Programming Language.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['ftp://invisible-island.net/mawk/'] +sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tgz'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/mawk'], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From 8ac95fa17358dc9aa92a48df101ea2a2074e3dae Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 16 Mar 2016 20:30:58 +0100 Subject: [PATCH 522/732] reinstate building MetaVelvet and copying contrib in Velvet easyconfigs --- .../v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb | 2 ++ .../v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb index 70b05647b0..52c0ab85db 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_100.eb @@ -26,4 +26,6 @@ source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] buildopts = "OPENMP=1 MAXKMERLENGTH=%s" % versionsuffix.split('_')[1] +postinstallcmds = ["cd contrib/MetaVelvet-1.* && make && cd ../../ && cp -a contrib %(installdir)s/"] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb index fff6a988ab..c23584dddd 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2015b-mt-kmer_31.eb @@ -27,4 +27,6 @@ source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] # by default MAXKMERLENGTH=31 but defined here to keep all the easyconfigs homogeneous buildopts = "OPENMP=1 MAXKMERLENGTH=%s" % versionsuffix.split('_')[1] +postinstallcmds = ["cd contrib/MetaVelvet-1.* && make && cd ../../ && cp -a contrib %(installdir)s/"] + moduleclass = 'bio' -- GitLab From 97559c46c82ca98f9214ed35f1ba78d4349a81ec Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 16 Mar 2016 20:55:24 +0100 Subject: [PATCH 523/732] bump version to 2.7.0 and update release notes --- RELEASE_NOTES | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++- setup.py | 2 +- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index a3e8287af7..b2548fe550 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -3,9 +3,80 @@ For more detailed information, please see the git log. These release notes can also be consulted at http://easybuild.readthedocs.org/en/latest/Release_notes.html. -The latest version of easybuild-easyconfig provides 5,093 easyconfig files, for 799 different software packages, +The latest version of easybuild-easyconfig provides 5,580 easyconfig files, for 862 different software packages, 34 different (compiler) toolchains, 12 software bundles and 1 meta-package. +v2.7.0 (March 18th 2016) +------------------------ + +feature + bugfix release +- added example easyconfig files for 63 new software packages: + ATSAS (#616, #2587), astropy (#2724, #2727), attr (#2706), BamUtil (#2654), BBMap (#2322), BH (#2508), + CheMPS2 (#2445), CosmoloPy (#2723, #2727), csvkit (#2639), Firefox (#2648), FreeXL (#2422), GL2PS (#2667), + Glade (#2631), htop (#2538), IGV (#2019), IGVTools (#2019), ImageMagick (#2438), jModelTest (#2529), + KEALib (#2420), libcerf (#2656), libgcrypt (#2201), libglade (#2631), libgpg-error (#2201), libspatialite (#2431), + LittleCMS (#2438), MAST (#2542), MLC (#2577), MPJ-Express (#2529), mutil (#2201), neon (#758), NextClip (#2544), + npstat (#2686, #2703), Octopus (#2643), QuickFF (#2721), p4vasp (#2328), PCMSolver (#2445), PFFT (#2643), + PHYLIP (#2694), pkgconfig (#2475, #2476), Platypus (#2618), pplacer (#1056), PRINSEQ (#2437, #2444, #2585), + PyFFmpeg (#2501, #2519), PyGObject (#2443), PyGTK (#2443), PyOpenGL (#2628), pyringe (#2533), qrupdate (#2675), + rgeos (#2635), rpmrebuild (#2402), shift (#2201), SNAPE-pooled (#2688), SNPhylo (#2701), sratoolkit (#2715), + STAR-Fusion (#2463), statsmodels (#2719), StringTie (#2527), synchronicity (#2508), testpath (#2461), + USEARCH (#2537), VarScan (#2464), vsc-install (#2165), Whoosh (#2725), xprop (#2645) +- added new easyconfigs for existing toolchains: + intel/2016.02-GCC-4.9 (#2620), gmpolf/2016a & gmvolf/2016a (#2589) +- stable Cray-specific easyconfigs + - delete deprecated Cray toolchains and easyconfig files (#2400) + - don't hardcode PrgEnv version, remove craype and fftw components in Cray toolchains (#2554) + - remove -XC versionsuffix for stable definitions for Cray* toolchains (#2714) + - support for various software packages with CrayGNU and CrayIntel toolchains: CP2K, GROMACS, WRF +- added additional easyconfigs for various supported software packages: version updates, different toolchains, ... + including BWA 0.7.13, CMake 3.4.3, GATE 7.2, GROMACS 5.1.2, Mesa 11.1.2, netCDF 4.4.0, Perl 5.22.1, Python 3.5.1, + R 3.2.3, R-bundle-Bioconductor 3.2, scipy 0.17.0, SuiteSparse 4.5.1 +- various other enhancements, including: + - copy contrib dir in Velvet easyconfigs so scripts are also available (#2456) + - redefine matplotlib 1.5.1 easyconfig as a bundle, also include cycler extension (dep for matplotlib) (#2470) + - add bitstring extension to Python 2.7.11 easyconfigs (#2471) + - enable building of MetaVelvet in Velvet 1.2.10 easyconfigs (#2473) + - add custom sanity check for libjpeg-turbo (#2480) + - add Velvet easyconfigs that include BioPerl dependency, so VelvetOptimizer can use it (#2495, #2729, #2733) + - add source URL in RAxML 7.2.6 easyconfigs (#2536) + - update MPICH easyconfigs to use new MPICH easyblock (#2589) + - free libX11 & co from unneeded Python dependency/versionsuffix (#2549, #2563, #2605, #2664) + - add '--enable-utf --enable-unicode-properties' configure options in PCRE easyconfigs (#2561) + - required for latest R versions + - add HCsnip, metagenomeSeq in Bioconductor 3.1 bundles (#2553, #2578) + - add additional extensions in R 3.2.x easyconfigs that are required for extra Bioconductor extensions (#2547, #2556) + - update psmpi easyconfig files to use the new psmpi easyblock (#2619) + - add easyconfig for Python 2.7.11 on top of X11-enabled Tk (#2614, #2621) + - add virtualenv as extension in Python 2.7.11 easyconfigs (#2660) +- various bug fixes, including: + - fix software name for GTK+ (was 'gtk+'), PyCairo (was 'pycairo') and Gdk-Pixbuf (was 'gdk-pixbuf') (#2468) + - don't hardcode CC/CXX in OpenMPI easyconfigs (#2472) + - remove Google Code source URL for mpi4py (#2474) + - rename ffmpeg to FFmpeg (#2425, #2481) + - use available easyblock for flex (#2486) + - fix determining list of easyconfigs in unit test suite, don't assume locations are correct (#2530) + - fix specifying DB dependency in DB_File easyconfigs (#2539) + - remove hard-coded -xSSE4.2 for numpy/scipy with Intel compilers (#2546) + - fix license headers: Hercules foundation is now FWO (#2550) + - add --with-zlib configure argument in libxml easyconfigs (#2555) + - don't hardcode optarch=True in xextproto/xtrans easyconfigs (#2601) + - change toolchain version to '' in easyconfigs that use dummy toolchain and include dependencies (#2612) + - GLib doesn't require libxml2 with Python bindings (#2632) + - add patch file to imkl 10.2.6.038 32-bit easyconfig to fix installer not being able to deal with '--' in build path (#2634) + - add missing 'pkgconfig' dependency for h5py (#2476, #2650) + - correct software name in FastQC easyconfigs (was 'fastqc'), use 'dummy' toolchain for all FastQC version (#2657, #2666) + - add missing libxml2 dependencies in GLib easyconfigs (#2658) + - fix Xerces-C++ download location (#2668) + - enable XML::Bare extension in all Perl easyconfigs (#2672) + - update dead link for SuiteSparse (#2679) + - remove custom exts_filter in easyconfigs used PythonPackage easyblock (#2683, #2685) + - add M4 as build dep for binutils & flex (#2681) + - add missing dependencies in Python 3.5.x easyconfigs: SQLite, Tk, GMP (#2704) + - fix (OS) deps, add checksums, remove parameter definition with default values in MVAPICH2 easyconfigs (#2707) +- style cleanup in various easyconfigs (#2378, #2387, #2395, #2396, #2488-#2493, #2496-#2500, #2502-#2504, #2602) + - working towards automated style review of pull requests + v2.6.0 (January 26th 2016) -------------------------- diff --git a/setup.py b/setup.py index e1abe096bf..bbfef2ebfa 100644 --- a/setup.py +++ b/setup.py @@ -47,7 +47,7 @@ from distutils import log # recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like # UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0' # This causes problems further up the dependency chain... -VERSION = '2.7.0.dev0' +VERSION = '2.7.0' API_VERSION = VERSION.split('.')[0] EB_VERSION = '.'.join(VERSION.split('.')[0:2]) -- GitLab From 887023130eadcc6a55f01d695d6cec31ef56a599 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Thu, 17 Mar 2016 14:17:05 -0500 Subject: [PATCH 524/732] Adding an Easyconfig file for gtool-v0.7.5 --- .../g/gtool/gtool-0.7.5_linux_x86_64.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb new file mode 100644 index 0000000000..276283587b --- /dev/null +++ b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: + +easyblock = "Binary" + +name = 'gtool' +version = '0.7.5' +versionsuffix = '_linux_x86_64' + +homepage = 'http://www.well.ox.ac.uk/~cfreeman/software/gwas/gtool.html' +description = """ GTOOL is a program for transforming sets of genotype data for use with the programs SNPTEST and IMPUTE. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.well.ox.ac.uk/~cfreeman/software/gwas/'] +sources = ['gtool_v%(version)s_x86_64.tgz'] + +# Following commands are used to untar the file and copy the content to install directory +install_cmd = "tar xvf gtool_v%(version)s_x86_64.tgz && HOME=%(builddir)s && " +install_cmd += "cp -a %(builddir)s/* %(installdir)s" + +sanity_check_paths = { + 'files': ["gtool", "LICENCE"], + 'dirs': ["example"] +} + +moduleclass = 'bio' -- GitLab From 02c80db3e5edf4c515e7c2e84cba772f41ed4867 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Thu, 17 Mar 2016 16:55:18 -0500 Subject: [PATCH 525/732] Adding Easyconfig file for shapeit_v2.r837_GLIBCv2.12 --- ...shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/s/shapeit/shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb diff --git a/easybuild/easyconfigs/s/shapeit/shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb new file mode 100644 index 0000000000..a71ba8d96d --- /dev/null +++ b/easybuild/easyconfigs/s/shapeit/shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi + +easyblock = "Binary" + +name = 'shapeit' +version = '2.r837.GLIBCv2.12' +versionsuffix = '_linux_x86_64' + +homepage = 'https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/shapeit.html' +description = """ SHAPEIT is a fast and accurate method for estimation of haplotypes (aka phasing) from genotype or sequencing data. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/'] +sources = ['shapeit.v%(version)s.Linux.static.tgz'] + +# Following commands are used to untar the file and copy the content to install directory +install_cmd = "tar xzvf shapeit.v%(version)s.Linux.static.tgz && HOME=%(builddir)s && " +install_cmd += "cp -a %(builddir)s/* %(installdir)s" + +sanity_check_paths = { + 'files': ["bin/shapeit", "LICENCE"], + 'dirs': ["example"] +} + +moduleclass = 'bio' -- GitLab From 4ac34ac670957972ae454538b960cf7b2b57bd5e Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Thu, 17 Mar 2016 17:08:51 -0500 Subject: [PATCH 526/732] Adding author to the Easyconfig file for gtool --- easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb index 276283587b..aa280fb576 100644 --- a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb +++ b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb @@ -1,5 +1,5 @@ # This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# Author: +# Author: Ravi Tripathi easyblock = "Binary" -- GitLab From b42b09ef2b1fdebe5b1d98891eed75169834e0f9 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Fri, 18 Mar 2016 02:12:56 -0500 Subject: [PATCH 527/732] Changing the name of Easyconfig file for gtool v0.7.5 --- .../g/gtool/gtool-0.7.5-linux_x86_64.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb new file mode 100644 index 0000000000..aa280fb576 --- /dev/null +++ b/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi + +easyblock = "Binary" + +name = 'gtool' +version = '0.7.5' +versionsuffix = '_linux_x86_64' + +homepage = 'http://www.well.ox.ac.uk/~cfreeman/software/gwas/gtool.html' +description = """ GTOOL is a program for transforming sets of genotype data for use with the programs SNPTEST and IMPUTE. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.well.ox.ac.uk/~cfreeman/software/gwas/'] +sources = ['gtool_v%(version)s_x86_64.tgz'] + +# Following commands are used to untar the file and copy the content to install directory +install_cmd = "tar xvf gtool_v%(version)s_x86_64.tgz && HOME=%(builddir)s && " +install_cmd += "cp -a %(builddir)s/* %(installdir)s" + +sanity_check_paths = { + 'files': ["gtool", "LICENCE"], + 'dirs': ["example"] +} + +moduleclass = 'bio' -- GitLab From 38474722b49c807cdbe36716e92088c8f989803d Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Fri, 18 Mar 2016 02:15:47 -0500 Subject: [PATCH 528/732] Changing the name of Easyconfig file for gtool v0.7.5 --- .../g/gtool/gtool-0.7.5_linux_x86_64.eb | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb deleted file mode 100644 index aa280fb576..0000000000 --- a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb +++ /dev/null @@ -1,27 +0,0 @@ -# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild -# Author: Ravi Tripathi - -easyblock = "Binary" - -name = 'gtool' -version = '0.7.5' -versionsuffix = '_linux_x86_64' - -homepage = 'http://www.well.ox.ac.uk/~cfreeman/software/gwas/gtool.html' -description = """ GTOOL is a program for transforming sets of genotype data for use with the programs SNPTEST and IMPUTE. """ - -toolchain = {'name': 'dummy', 'version': 'dummy'} - -source_urls = ['http://www.well.ox.ac.uk/~cfreeman/software/gwas/'] -sources = ['gtool_v%(version)s_x86_64.tgz'] - -# Following commands are used to untar the file and copy the content to install directory -install_cmd = "tar xvf gtool_v%(version)s_x86_64.tgz && HOME=%(builddir)s && " -install_cmd += "cp -a %(builddir)s/* %(installdir)s" - -sanity_check_paths = { - 'files': ["gtool", "LICENCE"], - 'dirs': ["example"] -} - -moduleclass = 'bio' -- GitLab From 9f51538585027769015932d76f80f27967b610f7 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Fri, 18 Mar 2016 02:19:51 -0500 Subject: [PATCH 529/732] Change the name of easyconfig file for shapeit-v2.r837_GLIBCv2.12 --- ...linux_x86_64.eb => shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/s/shapeit/{shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb => shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb} (100%) diff --git a/easybuild/easyconfigs/s/shapeit/shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb similarity index 100% rename from easybuild/easyconfigs/s/shapeit/shapeit_v2.r837_GLIBCv2.12_linux_x86_64.eb rename to easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb -- GitLab From 73c1f0a92e6ba69c9a6e6b0aaee1edc1ec9a395a Mon Sep 17 00:00:00 2001 From: Daniel Navarro-Gomez Date: Fri, 18 Mar 2016 10:39:18 -0400 Subject: [PATCH 530/732] Add easyconfig BWA-0.7.13-goolf-1.4.10 --- .../b/BWA/BWA-0.7.13-goolf-1.4.10.eb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb new file mode 100644 index 0000000000..403c2a7c2e --- /dev/null +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb @@ -0,0 +1,26 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos , Daniel Navarro +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +name = 'BWA' +version = '0.7.13' + +homepage = 'http://bio-bwa.sourceforge.net/' +description = """Burrows-Wheeler Aligner (BWA) is an efficient program that aligns + relatively short nucleotide sequences against a long reference sequence such as the human genome.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [('http://sourceforge.net/projects/bio-bwa/files/', 'download')] + +moduleclass = 'bio' -- GitLab From 808d1eb56e319ed017b07fb3b2e748acb67f7686 Mon Sep 17 00:00:00 2001 From: Daniel Navarro-Gomez Date: Fri, 18 Mar 2016 11:03:07 -0400 Subject: [PATCH 531/732] Including zlib as dependency for BWA-0.7.13-goolf-1.4.10.eb --- easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb index 403c2a7c2e..439ab3ce81 100644 --- a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb @@ -19,6 +19,7 @@ description = """Burrows-Wheeler Aligner (BWA) is an efficient program that alig toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'optarch': True, 'pic': True} +dependencies = [('zlib', '1.2.8')] sources = [SOURCELOWER_TAR_BZ2] source_urls = [('http://sourceforge.net/projects/bio-bwa/files/', 'download')] -- GitLab From 4e25132c4035aabb3f79d24934f93419d26090b7 Mon Sep 17 00:00:00 2001 From: Daniel Navarro-Gomez Date: Fri, 18 Mar 2016 11:07:02 -0400 Subject: [PATCH 532/732] Style fix --- easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb index 439ab3ce81..9cbb01f191 100644 --- a/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.13-goolf-1.4.10.eb @@ -19,9 +19,10 @@ description = """Burrows-Wheeler Aligner (BWA) is an efficient program that alig toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'optarch': True, 'pic': True} -dependencies = [('zlib', '1.2.8')] sources = [SOURCELOWER_TAR_BZ2] source_urls = [('http://sourceforge.net/projects/bio-bwa/files/', 'download')] +dependencies = [('zlib', '1.2.8')] + moduleclass = 'bio' -- GitLab From 9f856123b6f4837cfafad3e129861c9e1fb14293 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Sat, 19 Mar 2016 10:54:21 +0100 Subject: [PATCH 533/732] fixed foss easyconfig --- easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb index 2ecf3ea45f..67cfd94871 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb @@ -153,7 +153,7 @@ exts_list = [ }), ('Archive::Extract', '0.76', { 'source_tmpl': 'Archive-Extract-0.76.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "BINGOS"'], + 'source_urls': ['http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS'], }), ('DBIx::Simple', '1.35', { 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', @@ -405,7 +405,7 @@ exts_list = [ }), ('Date::Language', '2.30', { 'source_tmpl': 'TimeDate-2.30.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "GBARR"'], + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], }), ('version', '0.9915', { 'source_tmpl': 'version-0.9915.tar.gz', @@ -546,7 +546,7 @@ exts_list = [ }), ('boolean', '0.45', { 'source_tmpl': 'boolean-0.45.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "INGY"'], + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], }), ('Number::Format', '1.75', { 'source_tmpl': 'Number-Format-1.75.tar.gz', -- GitLab From 3fad4beecd206cdad60adebf2b8719dc3051d37c Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Sat, 19 Mar 2016 10:56:24 +0100 Subject: [PATCH 534/732] fixed intel easyconfig --- easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb index ae84220ef2..fd9ccde670 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb @@ -153,7 +153,7 @@ exts_list = [ }), ('Archive::Extract', '0.76', { 'source_tmpl': 'Archive-Extract-0.76.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "BINGOS"'], + 'source_urls': ['http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS'], }), ('DBIx::Simple', '1.35', { 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', @@ -405,7 +405,7 @@ exts_list = [ }), ('Date::Language', '2.30', { 'source_tmpl': 'TimeDate-2.30.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "GBARR"'], + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], }), ('version', '0.9915', { 'source_tmpl': 'version-0.9915.tar.gz', @@ -547,7 +547,7 @@ exts_list = [ }), ('boolean', '0.45', { 'source_tmpl': 'boolean-0.45.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/ / "/ "INGY"'], + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], }), ('Number::Format', '1.75', { 'source_tmpl': 'Number-Format-1.75.tar.gz', -- GitLab From 8e71210d0960333d22b625b7fac297dd84f5a7a0 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Sat, 19 Mar 2016 12:12:16 +0100 Subject: [PATCH 535/732] updated url --- easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb | 2 +- easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb index 67cfd94871..404b98df7e 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a.eb @@ -153,7 +153,7 @@ exts_list = [ }), ('Archive::Extract', '0.76', { 'source_tmpl': 'Archive-Extract-0.76.tar.gz', - 'source_urls': ['http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS'], + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], }), ('DBIx::Simple', '1.35', { 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb index fd9ccde670..aed8a467d0 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-intel-2016a.eb @@ -153,7 +153,7 @@ exts_list = [ }), ('Archive::Extract', '0.76', { 'source_tmpl': 'Archive-Extract-0.76.tar.gz', - 'source_urls': ['http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS'], + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], }), ('DBIx::Simple', '1.35', { 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', -- GitLab From df78df46c817032519ddcb787df100b0c846983d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 20 Mar 2016 08:50:34 +0100 Subject: [PATCH 536/732] fix release date for EasyBuild v2.7.0 --- RELEASE_NOTES | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index b2548fe550..b5c225454e 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -6,7 +6,7 @@ These release notes can also be consulted at http://easybuild.readthedocs.org/en The latest version of easybuild-easyconfig provides 5,580 easyconfig files, for 862 different software packages, 34 different (compiler) toolchains, 12 software bundles and 1 meta-package. -v2.7.0 (March 18th 2016) +v2.7.0 (March 20th 2016) ------------------------ feature + bugfix release -- GitLab From 972a0974247a5f3641728f8fcdce30c47e4b4835 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 20 Mar 2016 10:45:38 +0100 Subject: [PATCH 537/732] bump version to 2.8.0.dev0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index bbfef2ebfa..72cf85df21 100644 --- a/setup.py +++ b/setup.py @@ -47,7 +47,7 @@ from distutils import log # recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like # UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0' # This causes problems further up the dependency chain... -VERSION = '2.7.0' +VERSION = '2.8.0dev0' API_VERSION = VERSION.split('.')[0] EB_VERSION = '.'.join(VERSION.split('.')[0:2]) -- GitLab From f2ecb8a398d2a16aecb24c378131202077b6f485 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 20 Mar 2016 11:45:55 +0200 Subject: [PATCH 538/732] add easyconfig EasyBuild-2.7.0.eb --- .../e/EasyBuild/EasyBuild-2.7.0.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/e/EasyBuild/EasyBuild-2.7.0.eb diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-2.7.0.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-2.7.0.eb new file mode 100644 index 0000000000..1ca29896e8 --- /dev/null +++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-2.7.0.eb @@ -0,0 +1,31 @@ +easyblock = 'EB_EasyBuildMeta' + +name = 'EasyBuild' +version = '2.7.0' + +homepage = 'http://hpcugent.github.com/easybuild/' +description = """EasyBuild is a software build and installation framework + written in Python that allows you to install software in a structured, + repeatable and robust way.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'https://pypi.python.org/packages/source/v/vsc-base/', + 'https://pypi.python.org/packages/source/e/easybuild-framework/', + 'https://pypi.python.org/packages/source/e/easybuild-easyblocks/', + 'https://pypi.python.org/packages/source/e/easybuild-easyconfigs/', +] +# order matters a lot, to avoid having dependencies auto-resolved (--no-deps easy_install option doesn't work?) +sources = [ + 'vsc-base-2.4.18.tar.gz', + 'easybuild-framework-%(version)s.tar.gz', + 'easybuild-easyblocks-%(version)s.tar.gz', + 'easybuild-easyconfigs-%(version)s.tar.gz', +] + +# EasyBuild is a (set of) Python packages, so it depends on Python +# usually, we want to use the system Python, so no actual Python dependency is listed +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +moduleclass = 'tools' -- GitLab From 4dcdd9aa5726c945a7301332f00b431d1db3da86 Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 08:30:39 +0100 Subject: [PATCH 539/732] add easyconfig inputproto-2.3.1-foss-2016a.eb, add easyconfig kbproto-1.0.7-foss-2016a.eb, add easyconfig libpthread-stubs-0.3-foss-2016a.eb, add easyconfig libX11-1.6.3-foss-2016a.eb, add easyconfig libXau-1.0.8-foss-2016a.eb, add easyconfig libxcb-1.11.1-foss-2016a.eb, add easyconfig libXdmcp-1.1.2-foss-2016a.eb, add easyconfig xextproto-7.3.0-foss-2016a.eb, add easyconfig xproto-7.0.28-foss-2016a.eb, add easyconfig xtrans-1.3.5-foss-2016a.eb --- .../inputproto/inputproto-2.3.1-foss-2016a.eb | 19 ++++++++++ .../k/kbproto/kbproto-1.0.7-foss-2016a.eb | 19 ++++++++++ .../l/libX11/libX11-1.6.3-foss-2016a.eb | 37 +++++++++++++++++++ .../l/libXau/libXau-1.0.8-foss-2016a.eb | 25 +++++++++++++ .../l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb | 25 +++++++++++++ .../libpthread-stubs-0.3-foss-2016a.eb | 20 ++++++++++ .../l/libxcb/libxcb-1.11.1-foss-2016a.eb | 33 +++++++++++++++++ .../x/xextproto/xextproto-7.3.0-foss-2016a.eb | 24 ++++++++++++ .../x/xproto/xproto-7.0.28-foss-2016a.eb | 23 ++++++++++++ .../x/xtrans/xtrans-1.3.5-foss-2016a.eb | 22 +++++++++++ 10 files changed, 247 insertions(+) create mode 100644 easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb new file mode 100644 index 0000000000..be4171cde7 --- /dev/null +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'inputproto' +version = '2.3.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org InputProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb new file mode 100644 index 0000000000..bca5ddd7ca --- /dev/null +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb new file mode 100644 index 0000000000..7bbdcf2dc4 --- /dev/null +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', '', True), + ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xtrans', '1.3.5'), +] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb new file mode 100644 index 0000000000..8694ab5ad2 --- /dev/null +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb new file mode 100644 index 0000000000..c12e65e6e8 --- /dev/null +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] +sanity_check_paths = { + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb new file mode 100644 index 0000000000..fcb767cfdb --- /dev/null +++ b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpthread-stubs' +version = '0.3' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'foss', 'version': '2016a'} + +sanity_check_paths = { + 'files': ['lib/pkgconfig/pthread-stubs.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb new file mode 100644 index 0000000000..d818b47843 --- /dev/null +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('xcb-proto', '1.11', '', True), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), +] +dependencies = [ + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb new file mode 100644 index 0000000000..9bc6335cdf --- /dev/null +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb new file mode 100644 index 0000000000..3e787177f0 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb new file mode 100644 index 0000000000..1d32cb1ae6 --- /dev/null +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From a07b7c3608e80cb5bbbcd8ad159231b462582047 Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 08:39:44 +0100 Subject: [PATCH 540/732] add easyconfig libXext-1.3.3-foss-2016a.eb --- .../l/libXext/libXext-1.3.3-foss-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb new file mode 100644 index 0000000000..fc57003279 --- /dev/null +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From ada59b306cff8427daa61380d50f9e4419e1f6dc Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 08:56:07 +0100 Subject: [PATCH 541/732] add easyconfig libXft-2.3.2-foss-2016a.eb, add easyconfig fontconfig-2.11.94-foss-2016a.eb, add easyconfig freetype-2.6.2-foss-2016a.eb, add easyconfig libXrender-0.9.9-foss-2016a.eb, add easyconfig renderproto-0.11-foss-2016a.eb --- .../fontconfig-2.11.94-foss-2016a.eb | 22 +++++++++++++ .../f/freetype/freetype-2.6.2-foss-2016a.eb | 22 +++++++++++++ .../l/libXft/libXft-2.3.2-foss-2016a.eb | 31 +++++++++++++++++++ .../libXrender/libXrender-0.9.9-foss-2016a.eb | 28 +++++++++++++++++ .../renderproto-0.11-foss-2016a.eb | 20 ++++++++++++ 5 files changed, 123 insertions(+) create mode 100644 easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb create mode 100644 easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXft/libXft-2.3.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb create mode 100644 easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb new file mode 100644 index 0000000000..d955835431 --- /dev/null +++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'fontconfig' +version = '2.11.94' + +homepage = 'http://www.freedesktop.org/software/fontconfig' +description = """Fontconfig is a library designed to provide system-wide font configuration, customization and +application access.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.freedesktop.org/software/fontconfig/release/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('expat', '2.1.0'), + ('freetype', '2.6.2'), +] + +configopts = '--disable-docs ' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb new file mode 100644 index 0000000000..41c2f0204e --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb @@ -0,0 +1,22 @@ +name = 'freetype' +version = '2.6.2' + +homepage = 'http://freetype.org' +description = """FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and + portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display + servers, font conversion tools, text image generation tools, and many other products as well.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('libpng', '1.6.21')] + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, + 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXft/libXft-2.3.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-foss-2016a.eb new file mode 100644 index 0000000000..1a968a5ada --- /dev/null +++ b/easybuild/easyconfigs/l/libXft/libXft-2.3.2-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXrender', '0.9.9'), + ('freetype', '2.6.2'), + ('fontconfig', '2.11.94'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb new file mode 100644 index 0000000000..eee347a314 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb new file mode 100644 index 0000000000..48199d0511 --- /dev/null +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'renderproto' +version = '0.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrender protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 61e73501ae42f1a56e50031555bd20d3cf4aeb0d Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 09:00:48 +0100 Subject: [PATCH 542/732] add easyconfig PCRE-8.38-foss-2016a.eb --- .../p/PCRE/PCRE-8.38-foss-2016a.eb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb new file mode 100644 index 0000000000..1fe2fcb26c --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.38' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" + +moduleclass = 'devel' -- GitLab From d84ea63b7582b3cf1d54b1bc07bdc32a2da5222c Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Mon, 21 Mar 2016 17:30:01 +0100 Subject: [PATCH 543/732] New TAMkin easyconfig --- .../TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb new file mode 100644 index 0000000000..9f28a619eb --- /dev/null +++ b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,37 @@ +easyblock = "PythonPackage" + +name = 'TAMkin' +version = '1.0.8' + +homepage = 'http://molmod.github.io/tamkin/' +description = """TAMkin is a post-processing toolkit for normal mode analysis, + thermochemistry and reaction kinetics. It uses a Hessian computation from a + standard computational chemistry program as its input.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/molmod/tamkin/releases/download/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = '2.7.10' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('matplotlib', '1.5.0', versionsuffix), + ('molmod', '1.1', versionsuffix), +] + +# disable tests that require X11 by specifying "backend: agg" in matplotlibrc +runtest = 'export MATPLOTLIBRC=$PWD; echo "backend: agg" > $MATPLOTLIBRC/matplotlibrc; ' +runtest += 'export OMP_NUM_THREADS=1; nosetests -v test' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/%%(namelower)s' % pythonshortversion], +} + +moduleclass = 'chem' -- GitLab From 85471cb0716f38691dff6baf1aa00a73ba0845b8 Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 17:49:48 +0100 Subject: [PATCH 544/732] add easyconfig gperf-3.0.4-foss-2016a.eb --- .../g/gperf/gperf-3.0.4-foss-2016a.eb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 easybuild/easyconfigs/g/gperf/gperf-3.0.4-foss-2016a.eb diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.0.4-foss-2016a.eb b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-foss-2016a.eb new file mode 100644 index 0000000000..0547875020 --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.0.4-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'gperf' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/gperf/' +description = """GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash + function and hash table, in form of C or C++ code, for looking up a value depending on the input string. The hash + function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single + string comparison only.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/gperf'], + 'dirs': [] +} + +moduleclass = 'devel' -- GitLab From 1017f5824cdac5303667b828d4b0c54a1b5d73eb Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 18:10:54 +0100 Subject: [PATCH 545/732] modify easyconfig bzip2-1.0.6-foss-2016a.eb, add easyconfig gettext-0.19.6-foss-2016a.eb, add easyconfig GraphicsMagick-1.3.23-foss-2016a.eb, modify easyconfig libjpeg-turbo-1.4.2-foss-2016a.eb, add easyconfig LibTIFF-4.0.6-foss-2016a.eb, modify easyconfig libtool-2.4.6-foss-2016a.eb, modify easyconfig libxml2-2.9.3-foss-2016a.eb, add easyconfig XZ-5.2.2-foss-2016a.eb --- .../GraphicsMagick-1.3.23-foss-2016a.eb | 34 +++++++++++++++++++ .../g/gettext/gettext-0.19.6-foss-2016a.eb | 18 ++++++++++ .../l/LibTIFF/LibTIFF-4.0.6-foss-2016a.eb | 33 ++++++++++++++++++ .../easyconfigs/x/XZ/XZ-5.2.2-foss-2016a.eb | 30 ++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.6-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.0.6-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/XZ/XZ-5.2.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb new file mode 100644 index 0000000000..e3433e3f0b --- /dev/null +++ b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'GraphicsMagick' +version = '1.3.23' + +homepage = 'http://www.graphicsmagick.org/' +description = """GraphicsMagick is the swiss army knife of image processing.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + SOURCEFORGE_SOURCE, + 'ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/%(version_major_minor)s/', +] +sources = [SOURCE_TAR_GZ] + +builddependencies = [ + ('libtool', '2.4.6'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('bzip2', '1.0.6'), + ('freetype', '2.6.2'), + ('libpng', '1.6.21'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('libxml2', '2.9.3'), + ('XZ', '5.2.2'), + ('zlib', '1.2.8'), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.6-foss-2016a.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.6-foss-2016a.eb new file mode 100644 index 0000000000..1fdb744032 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.6-foss-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.0.6-foss-2016a.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.0.6-foss-2016a.eb new file mode 100644 index 0000000000..d7aa3b2df4 --- /dev/null +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.0.6-foss-2016a.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos , Alan O'Cais (JSC) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## +easyblock = 'ConfigureMake' + +name = 'LibTIFF' +version = '4.0.6' + +homepage = 'http://www.remotesensing.org/libtiff/' +description = "tiff: Library and tools for reading and writing TIFF data files" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'http://download.osgeo.org/libtiff/', + 'ftp://ftp.remotesensing.org/pub/libtiff/', +] +sources = ['tiff-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['bin/tiffinfo'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.2-foss-2016a.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.2-foss-2016a.eb new file mode 100644 index 0000000000..2a89ca6af6 --- /dev/null +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.2-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.6'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' -- GitLab From e5236a98d2ea36fb4c3a4aa8ed4eb98f0f43f076 Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 18:29:11 +0100 Subject: [PATCH 546/732] add easyconfig qrupdate-1.1.2-foss-2016a.eb --- .../q/qrupdate/qrupdate-1.1.2-foss-2016a.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-foss-2016a.eb new file mode 100644 index 0000000000..27976f981b --- /dev/null +++ b/easybuild/easyconfigs/q/qrupdate/qrupdate-1.1.2-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'MakeCp' + +name = 'qrupdate' +version = '1.1.2' + +homepage = 'https://sourceforge.net/projects/qrupdate/' +description = """qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +patches = ['%(name)s-%(version)s_makeconf.patch'] + +buildopts = 'lib' + +files_to_copy = [(['libqrupdate.a'], 'lib')] + +sanity_check_paths = { + 'files': ['lib/libqrupdate.a'], + 'dirs': [], +} + +parallel = 1 + +moduleclass = 'numlib' -- GitLab From 994d6f447d81fb081150ce1a1aec518a4bd2d45b Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 18:40:00 +0100 Subject: [PATCH 547/732] add easyconfig HDF5-1.8.16-foss-2016a-serial.eb --- .../h/HDF5/HDF5-1.8.16-foss-2016a-serial.eb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a-serial.eb diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a-serial.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a-serial.eb new file mode 100644 index 0000000000..2936e9795e --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.16-foss-2016a-serial.eb @@ -0,0 +1,22 @@ +name = 'HDF5' +version = '1.8.16' +versionsuffix = '-serial' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': False} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['configure_libtool.patch'] + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' -- GitLab From 7a94c71bd384f3f1dc82777fc7abd5c24f5fcfab Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 20:51:41 +0100 Subject: [PATCH 548/732] add easyconfig GLib-2.47.5-foss-2016a.eb, add easyconfig libffi-3.2.1-foss-2016a.eb, add easyconfig libICE-1.0.9-foss-2016a.eb, add easyconfig libSM-1.2.2-foss-2016a.eb, add easyconfig libXt-1.1.5-foss-2016a.eb, add easyconfig Qt-4.8.7-foss-2016a.eb --- .../g/GLib/GLib-2.47.5-foss-2016a.eb | 33 ++++++++++++++++ .../l/libICE/libICE-1.0.9-foss-2016a.eb | 27 +++++++++++++ .../l/libSM/libSM-1.2.2-foss-2016a.eb | 28 +++++++++++++ .../l/libXt/libXt-1.1.5-foss-2016a.eb | 39 +++++++++++++++++++ .../l/libffi/libffi-3.2.1-foss-2016a.eb | 23 +++++++++++ .../easyconfigs/q/Qt/Qt-4.8.7-foss-2016a.eb | 24 ++++++++++++ 6 files changed, 174 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXt/libXt-1.1.5-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/q/Qt/Qt-4.8.7-foss-2016a.eb diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb new file mode 100644 index 0000000000..06841954c4 --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.47.5' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.6'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', '2.7.11')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb new file mode 100644 index 0000000000..fa49f6c97c --- /dev/null +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libICE' +version = '1.0.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Inter-Client Exchange library for freedesktop.org""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('xtrans', '1.3.5'), +] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/ICE/ICE%s.h' % x for x in ['', 'conn', 'lib', 'msg', 'proto', 'util']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb new file mode 100644 index 0000000000..fe3df1bbcf --- /dev/null +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libSM' +version = '1.2.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 Session Management library, which allows for applications to both manage sessions, + and make use of session managers to save and restore their state for later use.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +dependencies = [ + ('libICE', '1.0.9'), +] +builddependencies = [ + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/SM/%s' % x for x in ['SM.h', 'SMlib.h', 'SMproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libXt/libXt-1.1.5-foss-2016a.eb b/easybuild/easyconfigs/l/libXt/libXt-1.1.5-foss-2016a.eb new file mode 100644 index 0000000000..e37e36b1f5 --- /dev/null +++ b/easybuild/easyconfigs/l/libXt/libXt-1.1.5-foss-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('kbproto', '1.0.7'), +] + +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb new file mode 100644 index 0000000000..c7c638b6fa --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.7-foss-2016a.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-foss-2016a.eb new file mode 100644 index 0000000000..fd0d5932c9 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.7-foss-2016a.eb @@ -0,0 +1,24 @@ +name = 'Qt' +version = '4.8.7' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +patches = ['Qt-%(version)s_phonon-export.patch'] + +dependencies = [ + ('GLib', '2.47.5'), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXrender', '0.9.9'), +] + +moduleclass = 'devel' -- GitLab From 27b9000a75e68f57f624ad38be815faa1baeb57f Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Mon, 21 Mar 2016 21:45:37 +0100 Subject: [PATCH 549/732] Simplify python dependency info in TAMkin easyconfig --- .../t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb index 9f28a619eb..808f61dc12 100644 --- a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb @@ -13,14 +13,10 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = ['https://github.com/molmod/tamkin/releases/download/v%(version)s'] sources = [SOURCE_TAR_GZ] -python = "Python" -pythonversion = '2.7.10' -pythonshortversion = ".".join(pythonversion.split(".")[:-1]) - -versionsuffix = "-%s-%s" % (python, pythonversion) +versionsuffix = "-Python-%(pyver)s" dependencies = [ - (python, pythonversion), + ('Python', '2.7.10'), ('matplotlib', '1.5.0', versionsuffix), ('molmod', '1.1', versionsuffix), ] -- GitLab From 27c1ecfe7002a2e31f8b1719dfd7ee9f8cfa0a41 Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Mon, 21 Mar 2016 21:47:46 +0100 Subject: [PATCH 550/732] Move line in TAMkin easyconfig --- .../t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb index 808f61dc12..b5bff455c0 100644 --- a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb @@ -2,6 +2,7 @@ easyblock = "PythonPackage" name = 'TAMkin' version = '1.0.8' +versionsuffix = "-Python-%(pyver)s" homepage = 'http://molmod.github.io/tamkin/' description = """TAMkin is a post-processing toolkit for normal mode analysis, @@ -13,8 +14,6 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = ['https://github.com/molmod/tamkin/releases/download/v%(version)s'] sources = [SOURCE_TAR_GZ] -versionsuffix = "-Python-%(pyver)s" - dependencies = [ ('Python', '2.7.10'), ('matplotlib', '1.5.0', versionsuffix), -- GitLab From 916e9d74d7e679b04d4ac0e44f1f3df12ca03d13 Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 22:23:46 +0100 Subject: [PATCH 551/732] add easyconfig eudev-3.1.5-foss-2016a.eb, add easyconfig fixesproto-5.0-foss-2016a.eb, add easyconfig fontsproto-2.1.3-foss-2016a.eb, add easyconfig glproto-1.4.17-foss-2016a.eb, add easyconfig libdrm-2.4.67-foss-2016a.eb, add easyconfig libfontenc-1.1.3-foss-2016a.eb, add easyconfig libpciaccess-0.13.4-foss-2016a.eb, add easyconfig libXdamage-1.1.4-foss-2016a.eb, add easyconfig libXfixes-5.0.1-foss-2016a.eb, add easyconfig libXfont-1.5.1-foss-2016a.eb, add easyconfig makedepend-1.0.5-foss-2016a.eb, add easyconfig Mesa-11.1.2-foss-2016a.eb, add easyconfig pkg-config-0.29-foss-2016a.eb, add easyconfig xorg-macros-1.19.0-foss-2016a.eb --- .../e/eudev/eudev-3.1.5-foss-2016a.eb | 32 +++++++++ .../f/fixesproto/fixesproto-5.0-foss-2016a.eb | 19 ++++++ .../fontsproto/fontsproto-2.1.3-foss-2016a.eb | 20 ++++++ .../g/glproto/glproto-1.4.17-foss-2016a.eb | 20 ++++++ .../libXdamage/libXdamage-1.1.4-foss-2016a.eb | 25 +++++++ .../l/libXfixes/libXfixes-5.0.1-foss-2016a.eb | 24 +++++++ .../l/libXfont/libXfont-1.5.1-foss-2016a.eb | 31 +++++++++ .../l/libdrm/libdrm-2.4.67-foss-2016a.eb | 28 ++++++++ .../libfontenc/libfontenc-1.1.3-foss-2016a.eb | 23 +++++++ .../libpciaccess-0.13.4-foss-2016a.eb | 26 +++++++ .../m/Mesa/Mesa-11.1.2-foss-2016a.eb | 68 +++++++++++++++++++ .../makedepend/makedepend-1.0.5-foss-2016a.eb | 20 ++++++ .../pkg-config/pkg-config-0.29-foss-2016a.eb | 27 ++++++++ .../xorg-macros-1.19.0-foss-2016a.eb | 22 ++++++ 14 files changed, 385 insertions(+) create mode 100644 easybuild/easyconfigs/e/eudev/eudev-3.1.5-foss-2016a.eb create mode 100644 easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb create mode 100644 easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/e/eudev/eudev-3.1.5-foss-2016a.eb b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-foss-2016a.eb new file mode 100644 index 0000000000..3265e4fdb4 --- /dev/null +++ b/easybuild/easyconfigs/e/eudev/eudev-3.1.5-foss-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'eudev' +version = '3.1.5' + +homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' +description = """eudev is a fork of systemd-udev with the goal of obtaining + better compatibility with existing software such as + OpenRC and Upstart, older kernels, various toolchains + and anything else required by users and various distributions.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] +patches = ['%(name)s-3.1.2_pre-2.6.34_kernel.patch'] + +builddependencies = [ + ('gperf', '3.0.4'), +] + +osdependencies = [('kernel-headers', 'linux-libc-dev')] + +configopts = '--disable-blkid --disable-selinux --disable-gudev --disable-manpages ' +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/udevadm', 'include/libudev.h', 'include/udev.h', 'lib/libudev.so.1'], + 'dirs': [], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb new file mode 100644 index 0000000000..4fe8f2b4dc --- /dev/null +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'fixesproto' +version = '5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org FixesProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb new file mode 100644 index 0000000000..0d7fd4a4a2 --- /dev/null +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'fontsproto' +version = '2.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X11 font extension wire protocol" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb new file mode 100644 index 0000000000..d26077ac1e --- /dev/null +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'glproto' +version = '1.4.17' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb new file mode 100644 index 0000000000..19c75463d3 --- /dev/null +++ b/easybuild/easyconfigs/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.%s' % SHLIB_EXT, 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb new file mode 100644 index 0000000000..aa11951f76 --- /dev/null +++ b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-foss-2016a.eb b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-foss-2016a.eb new file mode 100644 index 0000000000..b62ce08a63 --- /dev/null +++ b/easybuild/easyconfigs/l/libXfont/libXfont-1.5.1-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXfont' +version = '1.5.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X font libary""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fontsproto', '2.1.3'), + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), + ('xorg-macros', '1.19.0'), + ('libfontenc', '1.1.3'), +] +dependencies = [ + ('libX11', '1.6.3'), + ('freetype', '2.6.2'), +] + +sanity_check_paths = { + 'files': ['lib/libXfont.%s' % SHLIB_EXT, 'lib/libXfont.a'], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-foss-2016a.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-foss-2016a.eb new file mode 100644 index 0000000000..93d87d9533 --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.67-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libdrm' +version = '2.4.67' + +homepage = 'http://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +source_urls = ['http://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'foss', 'version': '2016a'} + +builddependencies = [ + ('libpthread-stubs', '0.3'), +] + +dependencies = [ + ('libpciaccess', '0.13.4'), +] + +sanity_check_paths = { + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, + 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], + 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb new file mode 100644 index 0000000000..b21fd6654e --- /dev/null +++ b/easybuild/easyconfigs/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb new file mode 100644 index 0000000000..75924f159f --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.13.4' + +homepage = 'http://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +source_urls = ['http://cgit.freedesktop.org/xorg/lib/libpciaccess/snapshot'] +sources = [SOURCE_TAR_GZ] + +toolchain = {'name': 'foss', 'version': '2016a'} + +builddependencies = [ + ('Autotools', '20150215'), + ('xorg-macros', '1.19.0'), +] + +preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb new file mode 100644 index 0000000000..c9dd66c1c1 --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.1.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb new file mode 100644 index 0000000000..8bd95eee91 --- /dev/null +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.5' + +homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb new file mode 100644 index 0000000000..2796515752 --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb new file mode 100644 index 0000000000..3965c12078 --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 441307a0cbfd668e39a248b8a868d3edfa9e331c Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 22:28:31 +0100 Subject: [PATCH 552/732] add easyconfig GLPK-4.58-foss-2016a.eb --- .../g/GLPK/GLPK-4.58-foss-2016a.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/g/GLPK/GLPK-4.58-foss-2016a.eb diff --git a/easybuild/easyconfigs/g/GLPK/GLPK-4.58-foss-2016a.eb b/easybuild/easyconfigs/g/GLPK/GLPK-4.58-foss-2016a.eb new file mode 100644 index 0000000000..d5751eec2a --- /dev/null +++ b/easybuild/easyconfigs/g/GLPK/GLPK-4.58-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'GLPK' +version = '4.58' + +homepage = 'https://www.gnu.org/software/glpk/' +description = """The GLPK (GNU Linear Programming Kit) package is intended for + solving large-scale linear programming (LP), + mixed integer programming (MIP), and other related problems. + It is a set of routines written in ANSI C + and organized in the form of a callable library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://ftp.gnu.org/gnu/%(namelower)s/'] + +dependencies = [('GMP', '6.1.0')] + +configopts = "--with-gmp" + +sanity_check_paths = { + 'files': ['bin/glpsol', 'include/glpk.h'] + + ['lib/libglpk.%s' % x for x in [SHLIB_EXT, 'a']], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From 20a9dff4b702a113c5e9375b03ff2aeb68147707 Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 22:38:33 +0100 Subject: [PATCH 553/732] add easyconfig freeglut-3.0.0-foss-2016a.eb, add easyconfig GL2PS-1.3.9-foss-2016a.eb, add easyconfig libGLU-9.0.0-foss-2016a.eb, add easyconfig libXi-1.7.6-foss-2016a.eb, add easyconfig libXmu-1.1.2-foss-2016a.eb, add easyconfig libXpm-3.5.11-foss-2016a.eb, add easyconfig libXrandr-1.5.0-foss-2016a.eb, add easyconfig randrproto-1.5.0-foss-2016a.eb --- .../f/freeglut/freeglut-3.0.0-foss-2016a.eb | 37 +++++++++++++++++++ .../g/GL2PS/GL2PS-1.3.9-foss-2016a.eb | 34 +++++++++++++++++ .../l/libGLU/libGLU-9.0.0-foss-2016a.eb | 24 ++++++++++++ .../l/libXi/libXi-1.7.6-foss-2016a.eb | 30 +++++++++++++++ .../l/libXmu/libXmu-1.1.2-foss-2016a.eb | 25 +++++++++++++ .../l/libXpm/libXpm-3.5.11-foss-2016a.eb | 22 +++++++++++ .../l/libXrandr/libXrandr-1.5.0-foss-2016a.eb | 31 ++++++++++++++++ .../randrproto/randrproto-1.5.0-foss-2016a.eb | 19 ++++++++++ 8 files changed, 222 insertions(+) create mode 100644 easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-foss-2016a.eb b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-foss-2016a.eb new file mode 100644 index 0000000000..aa4fa34ea2 --- /dev/null +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.0.0-foss-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'freeglut' +version = '3.0.0' + +homepage = 'http://freeglut.sourceforge.net/' +description = "freeglut is a completely OpenSourced alternative to the OpenGL Utility Toolkit (GLUT) library." + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(name)s'] + +builddependencies = [('CMake', '3.4.3')] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXrandr', '1.5.0'), + ('libXi', '1.7.6'), + ('Mesa', '11.1.2'), +] + +configopts = ' -DX11_X11_LIB="$EBROOTLIBX11/lib/libX11.so" ' +configopts += ' -DX11_X11_INCLUDE_PATH="$EBROOTLIBX11/include/X11" ' +configopts += ' -DX11_Xext_LIB="$EBROOTLIBXEXT/lib/libXext.so" ' +configopts += ' -DX11_Xrandr_LIB="$EBROOTLIBXRANDR/lib/libXrandr.so" ' +configopts += ' -DX11_Xrandr_INCLUDE_PATH="$EBROOTLIBXRANDR/include/X11/extensions/" ' +configopts += ' -DX11_Xi_LIB="$EBROOTLIBXIlib/libXrandr.so" ' +configopts += ' -DX11_Xi_INCLUDE_PATH="$EBROOTLIBXI/include/X11/extensions/" ' + +sanity_check_paths = { + 'files': [('lib/libglut.a', 'lib64/libglut.a'), ('lib/libglut.%s' % SHLIB_EXT, 'lib64/libglut.%s' % SHLIB_EXT)], + 'dirs': ['include/GL'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-foss-2016a.eb b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-foss-2016a.eb new file mode 100644 index 0000000000..f83060a449 --- /dev/null +++ b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.3.9-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'GL2PS' +version = '1.3.9' + +homepage = 'http://www.geuz.org/gl2ps/' +description = """GL2PS: an OpenGL to PostScript printing library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://geuz.org/gl2ps/src/'] +sources = [SOURCELOWER_TGZ] + +builddependencies = [ + ('CMake', '3.4.3'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXi', '1.7.6'), + ('libXmu', '1.1.2'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('freeglut', '3.0.0'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['include/gl2ps.h', 'lib/libgl2ps.so'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb new file mode 100644 index 0000000000..087bd589cb --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libGLU' +version = '9.0.0' + +homepage = 'ftp://ftp.freedesktop.org/pub/mesa/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = ['ftp://ftp.freedesktop.org/pub/mesa/glu/'] +sources = ['glu-%(version)s.tar.bz2'] + +dependencies = [ + ('Mesa', '11.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libGLU.so.1'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb new file mode 100644 index 0000000000..bd92d68db6 --- /dev/null +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' +name = 'libXi' +version = '1.7.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """LibXi provides an X Window System client interface to the XINPUT extension to the X protocol.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('inputproto', '2.3.1'), + ('xorg-macros', '1.19.0'), +] + +dependencies = [ + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/XInput.h', 'include/X11/extensions/XInput2.h', 'lib/libXi.%s' % SHLIB_EXT, 'lib/libXi.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-foss-2016a.eb new file mode 100644 index 0000000000..c219eeb168 --- /dev/null +++ b/easybuild/easyconfigs/l/libXmu/libXmu-1.1.2-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXmu' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXmu provides a set of miscellaneous utility convenience functions for X libraries to use. + libXmuu is a lighter-weight version that does not depend on libXt or libXext""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libXt', '1.1.5'), + ('libXpm', '3.5.11'), +] +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['%(name)s.a', '%%(name)s.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-foss-2016a.eb b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-foss-2016a.eb new file mode 100644 index 0000000000..1cc567cb36 --- /dev/null +++ b/easybuild/easyconfigs/l/libXpm/libXpm-3.5.11-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libXpm' +version = '3.5.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXp provides the X print library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [('gettext', '0.19.6')] + +sanity_check_paths = { + 'files': ['lib/%s' % x for x in ['libXpm.a', 'libXpm.%s' % SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb b/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb new file mode 100644 index 0000000000..b6614e79e7 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXrandr' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Resize, Rotate and Reflection extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('randrproto', '1.5.0'), + ('renderproto', '0.11'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXrandr.%s' % SHLIB_EXT, 'lib/libXrandr.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb new file mode 100644 index 0000000000..eab697bf89 --- /dev/null +++ b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'randrproto' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrandr protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 40ee838e51bc76352a13168ef86058d8d4dfa8dc Mon Sep 17 00:00:00 2001 From: hajgato Date: Mon, 21 Mar 2016 22:53:41 +0100 Subject: [PATCH 554/732] add easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig gnuplot-5.0.3-foss-2016a.eb, add easyconfig GObject-Introspection-1.47.1-foss-2016a.eb, add easyconfig HarfBuzz-1.1.3-foss-2016a.eb, add easyconfig libcerf-1.4-foss-2016a.eb, add easyconfig libgd-2.1.1-foss-2016a.eb, add easyconfig Pango-1.39.0-foss-2016a.eb, add easyconfig pixman-0.34.0-foss-2016a.eb --- .../c/cairo/cairo-1.14.6-foss-2016a.eb | 49 +++++++++++++++++++ ...GObject-Introspection-1.47.1-foss-2016a.eb | 47 ++++++++++++++++++ .../g/gnuplot/gnuplot-5.0.3-foss-2016a.eb | 42 ++++++++++++++++ .../h/HarfBuzz/HarfBuzz-1.1.3-foss-2016a.eb | 34 +++++++++++++ .../l/libcerf/libcerf-1.4-foss-2016a.eb | 28 +++++++++++ .../l/libgd/libgd-2.1.1-foss-2016a.eb | 26 ++++++++++ .../p/Pango/Pango-1.39.0-foss-2016a.eb | 31 ++++++++++++ .../p/pixman/pixman-0.34.0-foss-2016a.eb | 20 ++++++++ 8 files changed, 277 insertions(+) create mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-1.1.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libcerf/libcerf-1.4-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libgd/libgd-2.1.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/Pango/Pango-1.39.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb new file mode 100644 index 0000000000..3684c31e54 --- /dev/null +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -0,0 +1,49 @@ +easyblock = 'ConfigureMake' + +name = 'cairo' +version = '1.14.6' + +homepage = 'http://cairographics.org' +description = """Cairo is a 2D graphics library with support for multiple output devices. + Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, + PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_XZ] + +glibver = '2.47.5' + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libpng', '1.6.21'), + ('freetype', '2.6.2'), + ('pixman', '0.34.0'), + ('fontconfig', '2.11.94'), + ('expat', '2.1.0'), + ('GLib', glibver), + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXrender', '0.9.9'), + ('libXext', '1.3.3'), +] +builddependencies = [ + ('renderproto', '0.11'), +] + +# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC +configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes " + +sanity_check_paths = { + 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', + 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', + 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + + ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', + '-script', '-script-interpreter', '-svg', '-version', '-xcb', + '-xlib', '-xlib-xrender']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb new file mode 100644 index 0000000000..3c83530c29 --- /dev/null +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb @@ -0,0 +1,47 @@ +easyblock = 'ConfigureMake' + +name = 'GObject-Introspection' +version = '1.47.1' + +homepage = 'https://wiki.gnome.org/GObjectIntrospection/' +description = """GObject introspection is a middleware layer between C libraries + (using GObject) and language bindings. The C library can be scanned at + compile time and generate a metadata file, in addition to the actual + native C library. Then at runtime, language bindings can read this + metadata and automatically provide bindings to call into the C library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +pyver = '2.7.11' + +dependencies = [ + ('Python', pyver), + ('GLib', '2.47.5'), + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('cairo', '1.14.6'), + ('libffi', '3.2.1'), +] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = "GI_SCANNER_DISABLE_CACHE=true " + +# avoid using hard-coded path to 'python' in shebang of scripts +buildopts = "PYTHON=python" + +modextrapaths = { + 'GI_TYPELIB_PATH': 'share', + 'XDG_DATA_DIRS': 'share', +} + +sanity_check_paths = { + 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + + ['lib/libgirepository-1.0.%s' % x for x in ['so', 'a']], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-foss-2016a.eb b/easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-foss-2016a.eb new file mode 100644 index 0000000000..7e42e00e67 --- /dev/null +++ b/easybuild/easyconfigs/g/gnuplot/gnuplot-5.0.3-foss-2016a.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-97.html +## +easyblock = 'ConfigureMake' + +name = 'gnuplot' +version = '5.0.3' + +homepage = 'http://gnuplot.sourceforge.net/' +description = """Portable interactive, function plotting utility""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/gnuplot/files', 'download')] + +dependencies = [ + ('cairo', '1.14.6'), + ('libjpeg-turbo', '1.4.2'), + ('libpng', '1.6.21'), + ('libgd', '2.1.1'), + ('Pango', '1.39.0'), + ('libcerf', '1.4'), + ('Qt', '4.8.7'), +] + +configopts = '--with-qt=qt4 ' + +sanity_check_paths = { + 'files': ['bin/gnuplot'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-1.1.3-foss-2016a.eb b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-1.1.3-foss-2016a.eb new file mode 100644 index 0000000000..91db4cfacd --- /dev/null +++ b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-1.1.3-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'HarfBuzz' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/HarfBuzz' +description = """HarfBuzz is an OpenType text shaping engine.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.freedesktop.org/software/harfbuzz/release/'] +sources = [SOURCELOWER_TAR_BZ2] + +glibver = '2.47.5' +dependencies = [ + ('GLib', glibver), + ('cairo', '1.14.6'), + ('freetype', '2.6.2'), + ('GObject-Introspection', '1.47.1') +] + +configopts = "--enable-introspection=yes --with-gobject=yes --enable-static --enable-shared --with-cairo " + +modextrapaths = { + 'GI_TYPELIB_PATH': 'share', + 'XDG_DATA_DIRS': 'share', +} + +sanity_check_paths = { + 'files': ['lib/libharfbuzz.%s' % SHLIB_EXT, 'bin/hb-view'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libcerf/libcerf-1.4-foss-2016a.eb b/easybuild/easyconfigs/l/libcerf/libcerf-1.4-foss-2016a.eb new file mode 100644 index 0000000000..4f3471b4f6 --- /dev/null +++ b/easybuild/easyconfigs/l/libcerf/libcerf-1.4-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libcerf' +version = '1.4' + +homepage = 'http://gnuplot.sourceforge.net/' +description = """libcerf is a self-contained numeric library that provides an efficient and accurate + implementation of complex error functions, along with Dawson, Faddeeva, and Voigt functions.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TGZ] +source_urls = [ + 'http://apps.jcns.fz-juelich.de/src/libcerf/', + 'http://apps.jcns.fz-juelich.de/src/libcerf/old', +] + +builddependencies = [ + ('Autotools', '20150215'), + ('libtool', '2.4.6'), +] + +sanity_check_paths = { + 'files': ['lib/libcerf.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/libgd/libgd-2.1.1-foss-2016a.eb b/easybuild/easyconfigs/l/libgd/libgd-2.1.1-foss-2016a.eb new file mode 100644 index 0000000000..b645a00595 --- /dev/null +++ b/easybuild/easyconfigs/l/libgd/libgd-2.1.1-foss-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libgd' +version = '2.1.1' + +homepage = 'http://libgd.bitbucket.org/' +description = "GD is an open source code library for the dynamic creation of images by programmers." + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://bitbucket.org/libgd/gd-libgd/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('fontconfig', '2.11.94'), + ('libjpeg-turbo', '1.4.2'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ["lib/libgd.a", "lib/libgd.%s" % SHLIB_EXT], + 'dirs': ["bin", "include"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Pango/Pango-1.39.0-foss-2016a.eb b/easybuild/easyconfigs/p/Pango/Pango-1.39.0-foss-2016a.eb new file mode 100644 index 0000000000..80529d5bda --- /dev/null +++ b/easybuild/easyconfigs/p/Pango/Pango-1.39.0-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Pango' +version = '1.39.0' + +homepage = 'http://www.pango.org/' +description = """Pango is a library for laying out and rendering of text, with an emphasis on internationalization. +Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the +context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +glibver = '2.47.5' +dependencies = [ + ('GLib', glibver), + ('cairo', '1.14.6'), + ('HarfBuzz', '1.1.3'), + ('GObject-Introspection', '1.47.1'), + ('fontconfig', '2.11.94') +] + +configopts = "--disable-silent-rules --enable-introspection=yes --enable-static --enable-shared " + +modextrapaths = { + 'XDG_DATA_DIRS': 'share', +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb b/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb new file mode 100644 index 0000000000..896aab1550 --- /dev/null +++ b/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = "pixman" +version = '0.34.0' + +homepage = 'http://www.pixman.org/' +description = """Pixman is a low-level software library for pixel manipulation, providing features such as image +compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and the X server.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['lib/libpixman-1.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'vis' -- GitLab From 1aa7665c7c05b88a165667d0c2b727827d2b2f70 Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Tue, 22 Mar 2016 09:42:54 +0100 Subject: [PATCH 555/732] Fix string substitution issues in TAMkin easyconfig --- .../t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb index b5bff455c0..baf9ff6145 100644 --- a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb @@ -26,7 +26,7 @@ runtest += 'export OMP_NUM_THREADS=1; nosetests -v test' sanity_check_paths = { 'files': [], - 'dirs': ['lib/python%s/site-packages/%%(namelower)s' % pythonshortversion], + 'dirs': ['lib/python-%(pyshortver)s/site-packages/%(namelower)s'], } moduleclass = 'chem' -- GitLab From 3cf1a6a9ba4ea24407a165db18bb20e91aa8e5da Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Tue, 22 Mar 2016 09:50:39 +0100 Subject: [PATCH 556/732] Fix typo in TAMkin easyconfig --- .../t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb index baf9ff6145..c4a906b243 100644 --- a/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/t/TAMkin/TAMkin-1.0.8-intel-2015b-Python-2.7.10.eb @@ -26,7 +26,7 @@ runtest += 'export OMP_NUM_THREADS=1; nosetests -v test' sanity_check_paths = { 'files': [], - 'dirs': ['lib/python-%(pyshortver)s/site-packages/%(namelower)s'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'], } moduleclass = 'chem' -- GitLab From 09f2c97bc278a4a2ea87de7137f1a2234a539801 Mon Sep 17 00:00:00 2001 From: hajgato Date: Tue, 22 Mar 2016 10:26:15 +0100 Subject: [PATCH 557/732] add easyconfig FLTK-1.3.3-foss-2016a.eb, add easyconfig libXcursor-1.1.14-foss-2016a.eb, add easyconfig libXinerama-1.1.3-foss-2016a.eb, add easyconfig xineramaproto-1.2.1-foss-2016a.eb, add easyconfig xprop-1.2.2-foss-2016a.eb --- .../f/FLTK/FLTK-1.3.3-foss-2016a.eb | 37 +++++++++++++++++++ .../libXcursor-1.1.14-foss-2016a.eb | 29 +++++++++++++++ .../libXinerama-1.1.3-foss-2016a.eb | 31 ++++++++++++++++ .../xineramaproto-1.2.1-foss-2016a.eb | 19 ++++++++++ .../x/xprop/xprop-1.2.2-foss-2016a.eb | 26 +++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xprop/xprop-1.2.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-foss-2016a.eb b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-foss-2016a.eb new file mode 100644 index 0000000000..650bf33743 --- /dev/null +++ b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.3-foss-2016a.eb @@ -0,0 +1,37 @@ +# +# author: Dina Mahmoud Ibrahim ( Cairo University ) +# +easyblock = 'ConfigureMake' + +name = 'FLTK' +version = '1.3.3' + +homepage = 'http://www.fltk.org' +description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, + and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL + and its built-in GLUT emulation.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = ['%(namelower)s-%(version)s-source.tar.gz'] +source_urls = ['http://fltk.org/pub/%(namelower)s/%(version)s/'] + + +dependencies = [ + ('libX11', '1.6.3'), + ('libXcursor', '1.1.14'), + ('libXinerama', '1.1.3'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libpng', '1.6.21'), + ('libjpeg-turbo', '1.4.2'), + ('xprop', '1.2.2'), +] + +sanity_check_paths = { + 'files': ['bin/fltk-config', 'bin/fluid'], + 'dirs': ['lib'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb b/easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb new file mode 100644 index 0000000000..1fc949ad4e --- /dev/null +++ b/easybuild/easyconfigs/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libXcursor' +version = '1.1.14' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Cursor management library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXfixes', '5.0.1'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['include/X11/Xcursor/Xcursor.h', 'lib/libXcursor.%s' % SHLIB_EXT, 'lib/libXcursor.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb b/easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb new file mode 100644 index 0000000000..e0a2e3d206 --- /dev/null +++ b/easybuild/easyconfigs/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXinerama' +version = '1.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Xinerama multiple monitor library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('xineramaproto', '1.2.1'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXinerama.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb new file mode 100644 index 0000000000..a40280e419 --- /dev/null +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'xineramaproto' +version = '1.2.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers for xinerama" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/panoramiXproto.h'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xprop/xprop-1.2.2-foss-2016a.eb b/easybuild/easyconfigs/x/xprop/xprop-1.2.2-foss-2016a.eb new file mode 100644 index 0000000000..bd60b7c873 --- /dev/null +++ b/easybuild/easyconfigs/x/xprop/xprop-1.2.2-foss-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'xprop' +version = '1.2.2' + +homepage = "http://www.x.org/wiki/" +description = """The xprop utility is for displaying window and font properties in an X server. + One window or font is selected using the command line arguments or possibly + in the case of a window, by clicking on the desired window. A list of + properties is then given, possibly with formatting information.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://ftp.x.org/archive/individual/app/'] + +builddependencies = [ + ('xorg-macros', '1.19.0'), +] + +sanity_check_paths = { + 'files': ['bin/xprop'], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 6ccd02bdb1d7397de31d2b3f8060e559b373798e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Hajgat=C3=B3?= Date: Tue, 22 Mar 2016 11:29:53 +0100 Subject: [PATCH 558/732] Update GraphicsMagick-1.3.23-foss-2016a.eb -fpic needed by Octacve --- .../g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb index e3433e3f0b..6fa3747197 100644 --- a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb +++ b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-foss-2016a.eb @@ -7,6 +7,7 @@ homepage = 'http://www.graphicsmagick.org/' description = """GraphicsMagick is the swiss army knife of image processing.""" toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} source_urls = [ SOURCEFORGE_SOURCE, -- GitLab From 803e8384f663f340a66fa4ea79d36fc448b63b3b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 22 Mar 2016 11:32:09 +0100 Subject: [PATCH 559/732] Octave needs pic --- .../g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb index 755ecbe16c..ea37c3e81c 100644 --- a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.23-intel-2016a.eb @@ -7,6 +7,7 @@ homepage = 'http://www.graphicsmagick.org/' description = """GraphicsMagick is the swiss army knife of image processing.""" toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} source_urls = [ SOURCEFORGE_SOURCE, -- GitLab From e8b93739a75d8c20e97ab89028bb9b58fb7cf0cf Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Tue, 22 Mar 2016 11:53:27 +0100 Subject: [PATCH 560/732] BayeScEnv-1.1-goolf-1.4.10.eb --- .../b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb diff --git a/easybuild/easyconfigs/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb b/easybuild/easyconfigs/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb new file mode 100644 index 0000000000..7a976185d2 --- /dev/null +++ b/easybuild/easyconfigs/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BayeScEnv' +version = '1.1' + +homepage = 'https://github.com/devillemereuil/bayescenv' +description = """BayeScEnv is a Fst-based, genome-scan method that uses environmental variables to detect local adaptation.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/devillemereuil/bayescenv/archive/'] +sources = ['v%(version)s.tar.gz'] + +start_dir = 'source' + +files_to_copy = [(['source/bayescenv'], 'bin'), 'test', 'COPYING', 'README.md', 'ChangeLog'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/bayescenv'], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From d2f49d06ce3607de57e4bb93705bde9247dfdd3e Mon Sep 17 00:00:00 2001 From: fenoyc Date: Thu, 24 Mar 2016 14:25:31 +0100 Subject: [PATCH 561/732] add easyconfig OSU-Micro-Benchmarks-5.2-goolf-1.7.20.eb --- .../OSU-Micro-Benchmarks-5.2-goolf-1.7.20.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.2-goolf-1.7.20.eb diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.2-goolf-1.7.20.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.2-goolf-1.7.20.eb new file mode 100644 index 0000000000..456a180ae7 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.2-goolf-1.7.20.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '5.2' + +homepage = 'http://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$MPICC" CXX="$MPICC"' + +benchmark_dirs = ['libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt']] +modextrapaths = {'PATH': benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': benchmark_dirs, +} + +moduleclass = 'perf' -- GitLab From 95827494b4f314243b046063bd45bbc3eafc50f2 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 24 Mar 2016 16:32:58 +0200 Subject: [PATCH 562/732] modify easyconfig GCCcore-4.9.3.eb --- easybuild/easyconfigs/g/GCCcore/GCCcore-4.9.3.eb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-4.9.3.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-4.9.3.eb index 268b052687..78428e12c5 100644 --- a/easybuild/easyconfigs/g/GCCcore/GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-4.9.3.eb @@ -25,7 +25,10 @@ sources = [ 'mpc-1.0.2.tar.gz', ] -builddependencies = [('binutils', '2.25')] +builddependencies = [ + ('Autotools', '20150215'), + ('binutils', '2.25'), +] patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] -- GitLab From af28806336f567e64466ba8f29d19006bfd9612a Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 24 Mar 2016 17:58:21 +0200 Subject: [PATCH 563/732] add easyconfig Saxon-HE-9.7.0.4-Java-1.7.0_79.eb --- .../Saxon-HE-9.7.0.4-Java-1.7.0_79.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb diff --git a/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb b/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb new file mode 100644 index 0000000000..eed56a9078 --- /dev/null +++ b/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb @@ -0,0 +1,28 @@ +easyblock = 'Tarball' + +name = 'Saxon-HE' +version = '9.7.0.4' + +homepage = 'http://saxon.sourceforge.net' +description = """Open Source SAXON XSLT processor developed by Saxonica Limited.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['SaxonHE%sJ.zip' % version.replace(".","-")] + +source_urls = ['https://sourceforge.net/projects/saxon/files/Saxon-HE/%(version_major_minor)s' , 'download'] + +versionsuffix = '-Java-%(javaver)s' + +dependencies = [('Java', '1.7.0_79')] + +jarfiles = ['saxon%(version_major)she.jar', 'saxon%(version_major)s-test.jar', 'saxon%(version_major)s-xqj.jar'] + +sanity_check_paths = { + 'files': jarfiles, + 'dirs': [], +} + +modextrapaths = {'CLASSPATH': jarfiles} + +moduleclass = 'devel' -- GitLab From cca33c128a3ac475714f4c99fea45fb369affbb2 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 24 Mar 2016 18:18:48 +0200 Subject: [PATCH 564/732] modify easyconfig M4-1.4.17-GCCcore-4.9.3.eb --- easybuild/easyconfigs/m/M4/M4-1.4.17-GCCcore-4.9.3.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCCcore-4.9.3.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCCcore-4.9.3.eb index c1c8a52948..02f06d5cfe 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCCcore-4.9.3.eb @@ -16,7 +16,7 @@ source_urls = [GNU_SOURCE] # use same binutils version that was used when building GCC toolchain builddependencies = [('binutils', '2.25', '', True)] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS='-fgnu89-inline'" sanity_check_paths = { 'files': ["bin/m4"], -- GitLab From 4f63d5fd457e914b17b505a79ab9b948dac38ef5 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 08:42:15 +0200 Subject: [PATCH 565/732] modify easyconfig Tk-8.6.4-foss-2016a-no-X11.eb --- easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb index 6f98f7076c..449ce63a29 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8') ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' -- GitLab From 7d31e07e4d50572096fe299846f23480ab5f8264 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 08:50:57 +0200 Subject: [PATCH 566/732] modify easyconfig M4-1.4.17-foss-2016a.eb --- easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2016a.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2016a.eb index 0d030e3264..ce563e7def 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2016a.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2016a.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS='-fgnu89-inline'" sanity_check_paths = { 'files': ["bin/m4"], -- GitLab From 123ca05e26b955947108f4f3a2bb414138e46df9 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 10:40:25 +0200 Subject: [PATCH 567/732] add easyconfig ant-1.9.6-Java-1.7.0_79.eb --- .../a/ant/ant-1.9.6-Java-1.7.0_79.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/a/ant/ant-1.9.6-Java-1.7.0_79.eb diff --git a/easybuild/easyconfigs/a/ant/ant-1.9.6-Java-1.7.0_79.eb b/easybuild/easyconfigs/a/ant/ant-1.9.6-Java-1.7.0_79.eb new file mode 100644 index 0000000000..3ee7c5b406 --- /dev/null +++ b/easybuild/easyconfigs/a/ant/ant-1.9.6-Java-1.7.0_79.eb @@ -0,0 +1,23 @@ +name = 'ant' +version = '1.9.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.7.0_79')] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 9bcdda139d149aac176a17a5aa9f38b137e55d83 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 25 Mar 2016 13:48:00 +0000 Subject: [PATCH 568/732] Update Bowtie2 to 2.2.8 for recent foss --- .../b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb | 40 +++++++++++++++++++ .../b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb | 40 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb create mode 100644 easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb new file mode 100644 index 0000000000..29bf068b6a --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.8' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb new file mode 100644 index 0000000000..e48888855e --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.8' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' -- GitLab From 9f4fb4098262af3f3388b25be24f4eeb890274b2 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 17:17:01 +0200 Subject: [PATCH 569/732] add easyconfig Blitz++-0.10-foss-2016a.eb --- .../b/Blitz++/Blitz++-0.10-foss-2016a.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb b/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb new file mode 100644 index 0000000000..03886c8db9 --- /dev/null +++ b/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Blitz++' +version = '0.10' + +homepage = 'http://blitz.sourceforge.net/' +description = """Blitz++ is a (LGPLv3+) licensed meta-template library for array manipulation in C++ + with a speed comparable to Fortran implementations, while preserving an object-oriented interface""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['blitz-%(version)s.tar.gz'] +source_urls = ['https://sourceforge.net/projects/blitz/files/blitz/%(name)s %(version)s', + 'download'] + +sanity_check_paths = { + 'files': ['lib/libblitz.a'], + 'dirs': ['include/blitz/array', + 'include/blitz/gnu', + 'include/blitz/meta', + 'include/random', + 'lib/pkgconfig'], +} + +moduleclass = 'lib' -- GitLab From 020f92e1035043d6dbfcc9e9e7bfe2a80e9f9aa0 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 17:19:45 +0200 Subject: [PATCH 570/732] add easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig freetype-2.6.2-foss-2016a.eb, add easyconfig fontconfig-2.11.94-foss-2016a.eb, add easyconfig pixman-0.34.0-foss-2016a.eb --- .../c/cairo/cairo-1.14.6-foss-2016a.eb | 29 +++++++++++++++++++ .../fontconfig-2.11.94-foss-2016a.eb | 22 ++++++++++++++ .../f/freetype/freetype-2.6.2-foss-2016a.eb | 21 ++++++++++++++ .../p/pixman/pixman-0.34.0-foss-2016a.eb | 20 +++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb create mode 100644 easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb create mode 100644 easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb new file mode 100644 index 0000000000..4afe79dcce --- /dev/null +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = "cairo" +version = '1.14.6' + +homepage = 'http://cairographics.org' +description = """Cairo is a 2D graphics library with support for multiple output devices. + Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, + PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_XZ] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libpng', '1.6.21'), + ('freetype', '2.6.2'), + ('pixman', '0.34.0'), + ('fontconfig', '2.11.94'), + ('expat', '2.1.0'), +] + +# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC +configopts = "--enable-symbol-lookup=no" + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb new file mode 100644 index 0000000000..d955835431 --- /dev/null +++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.11.94-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'fontconfig' +version = '2.11.94' + +homepage = 'http://www.freedesktop.org/software/fontconfig' +description = """Fontconfig is a library designed to provide system-wide font configuration, customization and +application access.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.freedesktop.org/software/fontconfig/release/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('expat', '2.1.0'), + ('freetype', '2.6.2'), +] + +configopts = '--disable-docs ' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb new file mode 100644 index 0000000000..3111a314be --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb @@ -0,0 +1,21 @@ +name = 'freetype' +version = '2.6.2' + +homepage = 'http://freetype.org' +description = """FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and + portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display + servers, font conversion tools, text image generation tools, and many other products as well.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('libpng', '1.6.21')] + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb b/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb new file mode 100644 index 0000000000..896aab1550 --- /dev/null +++ b/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = "pixman" +version = '0.34.0' + +homepage = 'http://www.pixman.org/' +description = """Pixman is a low-level software library for pixel manipulation, providing features such as image +compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and the X server.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['lib/libpixman-1.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'vis' -- GitLab From 1d95e0d44afa8bd2a6d3dd12f779f03f377eab75 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 17:22:11 +0200 Subject: [PATCH 571/732] add easyconfig libxml2-2.9.3-foss-2016a-Python-2.7.11.eb --- .../libxml2-2.9.3-foss-2016a-Python-2.7.11.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..0237c8f83b --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' -- GitLab From a429536dc79733a15a2ecdbf335fcbed1f2990df Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 17:24:03 +0200 Subject: [PATCH 572/732] add easyconfig MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb --- ...-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb new file mode 100644 index 0000000000..a11de24d4f --- /dev/null +++ b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'MDSplus' +version = '7.0.67' +versionsuffix = '-Java-%(javaver)s-Python-%(pyver)s' + +homepage = 'http://mdsplus.org/' +description = """MDSplus is a set of software tools for data acquisition and storage and a methodology for management of complex scientific data.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/%(name)s/%(namelower)s/archive'] +sources = ['stable_release-%s.zip' % version.replace('.','-')] + +dependencies = [ + ('Java', '1.7.0_79', '', True), + ('Python', '2.7.11'), + ('HDF5', '1.8.16'), + ('libxml2', '2.9.3', '-Python-%(pyver)s') +] + +configopts = '--with-jdk=$JAVA_HOME' + +preconfigopts = 'export CFLAGS="$CFLAGS -I$EBROOTLIBXML2/include/libxml2 " && ' + +buildopts = '-j 1' + +moduleclass = 'data' -- GitLab From 0f7f918444396849cefb3ddd10ec622ceb292c8a Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 28 Mar 2016 13:42:38 -0500 Subject: [PATCH 573/732] Adding Email to the easyconfig --- easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb index aa280fb576..6d1dad133e 100644 --- a/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb +++ b/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb @@ -1,5 +1,6 @@ # This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild # Author: Ravi Tripathi +# Email: ravi89@uab.edu easyblock = "Binary" -- GitLab From 7665efa01e6c846d6fcc6299b62552125d23d5de Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 28 Mar 2016 13:45:45 -0500 Subject: [PATCH 574/732] Adding email to shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb Easyconfig file --- .../s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb index a71ba8d96d..7441bd58af 100644 --- a/easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb +++ b/easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb @@ -1,5 +1,6 @@ # This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild # Author: Ravi Tripathi +# Email: ravi89@uab.edu easyblock = "Binary" -- GitLab From 4bc1fe85404268c258d800beb130fe6597928b40 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 28 Mar 2016 14:07:21 -0500 Subject: [PATCH 575/732] Adding an Easyconfig file for MRICron built on 06/22/2015 --- .../m/mricron/mricron-062215-linux_x86_64.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb diff --git a/easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb b/easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb new file mode 100644 index 0000000000..a7fb738545 --- /dev/null +++ b/easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb @@ -0,0 +1,28 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = "Binary" + +name = 'mricron' +version = '062215' +versionsuffix = '_linux_x86_64' + +homepage = 'http://www.mccauslandcenter.sc.edu/mricro/mricron/' +description = """ MRIcron allows viewing of medical images. It includes tools to complement SPM and FSL. Native format is NIFTI but includes a conversion program (see dcm2nii) for converting DICOM images. Features layers, ROIs, and volume rendering. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://www.nitrc.org/frs/download.php/7765/'] +sources = ['lx.zip'] + +# Following commands are used to untar the file and copy the content to install directory +install_cmd = "unzip lx.zip && HOME=%(builddir)s && " +install_cmd += "cp -a %(builddir)s/* %(installdir)s" + +sanity_check_paths = { + 'files': ["dcm2nii", "dcm2niigui", "mricron", "npm"], + 'dirs': ["example", "lut", "templates"] +} + +moduleclass = 'bio' -- GitLab From cff82a7a7cce953ae7c746a6227a1e01777bf81f Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 28 Mar 2016 23:40:39 +0100 Subject: [PATCH 576/732] Use latest numpy and fix tests --- .../r/RSeQC/RSeQC-2.6.3-foss-2015b.eb | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb index c0f1f917f6..c33eb72992 100644 --- a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb @@ -1,3 +1,7 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman +# The Francis Crick Institute + easyblock = 'PythonPackage' name = 'RSeQC' @@ -16,20 +20,22 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = [SOURCE_TAR_GZ] source_urls = [SOURCEFORGE_SOURCE] -patches = [] - -Python = 'Python' +python = 'Python' pyver = '2.7.10' versionsuffix = '-%s-%s' % (python, pyver) dependencies = [ ('R', '3.2.3'), - ('numpy', '1.9.2'), + ('numpy', '1.10.1', versionsuffix), ] +runtest = "python setup.py test" + sanity_check_paths = { 'files': [], - 'dirs': ["."] + 'dirs': ["bin", "lib"] } +options = {'modulename': 'qcmodule'} + moduleclass = 'bio' -- GitLab From 9403a1c1ed2e243ded00fd181b7c3e74f6f8061c Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 28 Mar 2016 23:48:28 +0100 Subject: [PATCH 577/732] Remove obsolete numpy dep for RSeQC --- .../numpy-1.9.2-foss-2015b-Python-2.7.10.eb | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb deleted file mode 100644 index f55df325cf..0000000000 --- a/easybuild/easyconfigs/n/numpy/numpy-1.9.2-foss-2015b-Python-2.7.10.eb +++ /dev/null @@ -1,27 +0,0 @@ -name = 'numpy' -version = '1.9.2' - -homepage = 'http://www.numpy.org' -description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: - a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran - code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, - NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be - defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" - -toolchain = {'name': 'foss', 'version': '2015b'} - -source_urls = [SOURCEFORGE_SOURCE] -sources = [SOURCE_TAR_GZ] - -patches = ['numpy-1.8.0-mkl.patch'] - -python = 'Python' -pyver = '2.7.10' -versionsuffix = '-%s-%s' % (python, pyver) - -dependencies = [ - (python, pyver), - ('SuiteSparse', '4.4.5', '-METIS-5.1.0'), -] - -moduleclass = 'math' -- GitLab From bda5cb872c43f93c6f7207cdf42e96364661b7a0 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 29 Mar 2016 07:45:09 +0100 Subject: [PATCH 578/732] Add BEDTools 2.25.0 to foss-2015b and foss-2016a --- .../b/BEDTools/BEDTools-2.25.0-foss-2015b.eb | 33 +++++++++++++++++++ .../b/BEDTools/BEDTools-2.25.0-foss-2016a.eb | 33 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2015b.eb create mode 100644 easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2015b.eb b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2015b.eb new file mode 100644 index 0000000000..50f76cdae7 --- /dev/null +++ b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2015b.eb @@ -0,0 +1,33 @@ +# Author: Maxime Schmitt, University of Luxembourg +# Author: Adam Huffman, The Francis Crick Institute +# +# Based on the work of: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'BEDTools' +version = '2.25.0' + +homepage = "https://github.com/arq5x/bedtools2" +description = """The BEDTools utilities allow one to address common genomics tasks such as finding feature overlaps + and computing coverage. The utilities are largely based on four widely-used file formats: BED, GFF/GTF, VCF, + and SAM/BAM.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +# https://github.com/arq5x/bedtools2/releases/download/v2.25.0/bedtools-2.25.0.tar.gz +source_urls = ['https://github.com/arq5x/bedtools2/releases/download/v%(version)s/'] +sources = ['bedtools-%(version)s.tar.gz'] + +buildopts = 'CXX="$CXX"' + +files_to_copy = ["bin", "docs", "data", "genomes", "scripts", "test"] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bedtools', 'pairToBed', 'mergeBed', 'bedToBam', 'fastaFromBed']], + 'dirs': files_to_copy, +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2016a.eb b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2016a.eb new file mode 100644 index 0000000000..89147e0b20 --- /dev/null +++ b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.25.0-foss-2016a.eb @@ -0,0 +1,33 @@ +# Author: Maxime Schmitt, University of Luxembourg +# Author: Adam Huffman, The Francis Crick Institute +# +# Based on the work of: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'BEDTools' +version = '2.25.0' + +homepage = "https://github.com/arq5x/bedtools2" +description = """The BEDTools utilities allow one to address common genomics tasks such as finding feature overlaps + and computing coverage. The utilities are largely based on four widely-used file formats: BED, GFF/GTF, VCF, + and SAM/BAM.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# https://github.com/arq5x/bedtools2/releases/download/v2.25.0/bedtools-2.25.0.tar.gz +source_urls = ['https://github.com/arq5x/bedtools2/releases/download/v%(version)s/'] +sources = ['bedtools-%(version)s.tar.gz'] + +buildopts = 'CXX="$CXX"' + +files_to_copy = ["bin", "docs", "data", "genomes", "scripts", "test"] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bedtools', 'pairToBed', 'mergeBed', 'bedToBam', 'fastaFromBed']], + 'dirs': files_to_copy, +} + +moduleclass = 'bio' -- GitLab From 9e31cc2f81179ae76942ac50899220609c8d5438 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 29 Mar 2016 07:59:12 +0100 Subject: [PATCH 579/732] Fix version, description, sanity check and build options --- .../s/Subread/Subread-1.5.0p1-foss-2015b.eb | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb index 245a7b2f5a..4fd69f051e 100644 --- a/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb @@ -1,30 +1,28 @@ -# Note: -# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild -# It was auto-generated based on a template easyconfig, so it should be used with care. +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman +# The Francis Crick Institute easyblock = 'MakeCp' name = 'Subread' -version = '1.5.0p1' +version = '1.5.0-p1' homepage = 'http://subread.sourceforge.net/' -description = """TEMPLATE DESCRIPTION""" +description = """High performance read alignment, quantification and mutation discovery""" -# toolchain name should be 'TEMPLATE' if this is a template, so EasyBuild knows and is willing to use it as a template toolchain = {'name': 'foss', 'version': '2015b'} -toolchainopts = {} # toolchain options, e.g. opt, pic, usempi, optarch, ... -# For sources line to work correctly with --try-software-version, you MUST employ %s OR use a construct like SOURCE_TAR_GZ -sources = ['%(namelower)s-%version)s-source.tar.gz'] -source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(namelower)s-%(version)s-source.tar.gz'] +source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] -patches = [] +prebuildopts = 'cd src;' +buildopts = '-f Makefile.Linux' + +files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] -dependencies = [] -# The sanity test MUST be tuned before going production and submitting your contribution to upstream git repositories sanity_check_paths = { - 'files': [], - 'dirs': ["."] + 'files': ['LICENSE', 'README.txt'], + 'dirs': ['bin', 'annotation', 'doc', 'src', 'test'] } moduleclass = 'bio' -- GitLab From 4b1b8e1b10c5d5378efc01381b9deb998f20c8f5 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Tue, 29 Mar 2016 08:02:18 +0100 Subject: [PATCH 580/732] Add foss-2016a port of Subread --- .../s/Subread/Subread-1.5.0p1-foss-2016a.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2016a.eb diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2016a.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2016a.eb new file mode 100644 index 0000000000..1312eb0648 --- /dev/null +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2016a.eb @@ -0,0 +1,28 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman +# The Francis Crick Institute +easyblock = 'MakeCp' + +name = 'Subread' +version = '1.5.0-p1' + +homepage = 'http://subread.sourceforge.net/' +description = """High performance read alignment, quantification and mutation discovery""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s-source.tar.gz'] +source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] + +prebuildopts = 'cd src;' +buildopts = '-f Makefile.Linux' + +files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] + + +sanity_check_paths = { + 'files': ['LICENSE', 'README.txt'], + 'dirs': ['bin', 'annotation', 'doc', 'src', 'test'] +} + +moduleclass = 'bio' -- GitLab From 8466e1b77b8a8c23b3a659045371f9db70b304f4 Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Tue, 29 Mar 2016 22:02:06 +0200 Subject: [PATCH 581/732] New `.eb` files for LinBox 1.4.0, FFLAS-FFPACK 2.2.0, and Givaro 4.0.1 --- .../FFLAS-FFPACK-2.2.0-foss-2016a.eb | 70 +++++++++++++++++++ .../g/Givaro/Givaro-4.0.1-foss-2016a.eb | 45 ++++++++++++ .../l/LinBox/LinBox-1.4.0-foss-2016a.eb | 70 +++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb new file mode 100644 index 0000000000..382acef001 --- /dev/null +++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb @@ -0,0 +1,70 @@ +## +# This file is an EasyBuild recipe; see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright (c) 2016 Riccardo Murri +# Authors:: Riccardo Murri +# License:: GPL +# +## + +easyblock = 'ConfigureMake' + +name = 'FFLAS-FFPACK' +version = '2.2.0' + +homepage = 'https://linbox-team.github.io/fflas-ffpack/' +description = "Finite Field Linear Algebra Subroutines / Package" + +toolchain = {'version': '2016a', 'name': 'foss'} + +sources = ['v2.2.0.zip'] +source_urls = ['https://github.com/linbox-team/%(namelower)s/archive'] + +builddependencies = [ + ('Autoconf', '2.69', '', True), + ('Automake', '1.15', '', True), + ('libtool', '2.4.6', '', True), +] +dependencies = [ + ('GMP', '6.1.0', '', ('GCC', '4.9.3-2.25')), + ('Givaro', '4.0.1'), +] + +preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " +configopts = '--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO --with-blas-cflags="-I$BLAS_INC_DIR" --with-blas-libs="-L$BLAS_LIB_DIR $LIBBLAS" --enable-openmp' + +parallel = 4 + +unwanted_env_vars = {} +start_dir = '%(builddir)s/%(namelower)s-%(version)s/' + +sanity_check_paths = { + 'files': ['bin/%(namelower)s-config', 'include/%(namelower)s/%(namelower)s.h'], + 'dirs': ['bin', 'include', 'lib'], +} + +moduleclass = 'math' +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.8.0dev0", + "easybuild-easyblocks_version": "2.8.0dev0", + "timestamp": 1459270041, + "build_time": 30.84, + "install_size": 1762928, + "command_line": ['--add-dummy-to-minimal-toolchains', '--buildpath=/tmp', '--experimental', '--github-user=riccardomurri', '--installpath=/home/rmurri/w/easybuild', '--minimal-toolchains', '--module-syntax=Lua', '--modules-tool=Lmod', '--packagepath=/home/rmurri/w/easybuild/packages', '--prefix=/home/rmurri/w/easybuild', '--repositorypath=ebfiles', '--robot=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--robot-paths=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--skip-test-cases', '--sourcepath=/home/rmurri/w/easybuild/sources', '--try-toolchain="[\'foss\', \'2016a\']"', 'FFLAS-FFPACK-2.2.0-foss-2015a.eb'], + "modules_tool": ('Lmod', '/usr/share/lmod/lmod/libexec/lmod', '5.8'), + "core_count": 4, + "cpu_model": "Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz", + "cpu_speed": 2400.0, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/home/rmurri/w/easybuild/software/GCCcore/4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --enable-bootstrap --prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3 --with-local-prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3; Thread model: posix; gcc version 4.9.3 (GCC) ; ", + "glibc_version": "2.21", + "hostname": "xenia", + "os_name": "ubuntu", + "os_type": "Linux", + "os_version": "15.10", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.7.10 (default, Oct 14 2015, 16:09:02) ; [GCC 5.2.1 20151010]", + "system_gcc_path": "/home/rmurri/w/easybuild/software/GCCcore/4.9.3/bin/gcc", + "system_python_path": "/home/rmurri/.virtualenvs/easybuild/bin/python", +}] diff --git a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb new file mode 100644 index 0000000000..56ed27ad72 --- /dev/null +++ b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild recipe; see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright (c) 2016 Riccardo Murri +# Authors:: Riccardo Murri +# License:: GPL +# +## + +easyblock = 'ConfigureMake' + +name = 'Givaro' +version = '4.0.1' + +homepage = 'http://givaro.forge.imag.fr/' +description = "C++ library for arithmetic and algebraic computations" + +toolchain = {'version': '2016a', 'name': 'foss'} + +sources = ['v4.0.1.zip'] +source_urls = ['https://github.com/linbox-team/%(namelower)s/archive'] + +builddependencies = [ + ('Autoconf', '2.69', '', True), + ('Automake', '1.15', '', True), + ('libtool', '2.4.6', '', True), +] +dependencies = [ + ('GMP', '6.1.0', '', ('GCC', '4.9.3-2.25')), +] + +preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " +configopts = "--with-gmp=$EBROOTGMP --enable-inline" + +parallel = 4 + +unwanted_env_vars = {} +start_dir = '%(builddir)s/%(namelower)s-%(version)s/' + +sanity_check_paths = { + 'files': ['bin/%(namelower)s-config', 'include/%(namelower)s-config.h'], + 'dirs': ['bin', 'include', 'lib'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb new file mode 100644 index 0000000000..042673b61a --- /dev/null +++ b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb @@ -0,0 +1,70 @@ +## +# This file is an EasyBuild recipe; see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright (c) 2016 Riccardo Murri +# Authors:: Riccardo Murri +# License:: GPL +# +## + +easyblock = 'ConfigureMake' + +name = 'LinBox' +version = '1.4.0' + +homepage = 'http://linalg.org/' +description = "C++ library for exact, high-performance linear algebra" + +toolchain = {'version': '2016a', 'name': 'foss'} + +sources = ['v1.4.0.zip'] +source_urls = ['https://github.com/%(namelower)s-team/%(namelower)s/archive'] + +builddependencies = [ + ('Autoconf', '2.69', '', True), + ('Automake', '1.15', '', True), + ('libtool', '2.4.6', '', True), +] +dependencies = [ + ('FFLAS-FFPACK', '2.2.0'), + ('Givaro', '4.0.1'), +] + +preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " +configopts = "--with-givaro=$EBROOTGIVARO --with-fflas-ffpack=$EBROOTFFLASMINFFPACK --enable-openmp" + +parallel = 4 + +unwanted_env_vars = {} +start_dir = '%(builddir)s/%(namelower)s-%(version)s/' + +sanity_check_paths = { + 'files': ['bin/%(namelower)s-config', 'include/%(namelower)s/%(namelower)s-config.h', 'lib/liblinbox.a'], + 'dirs': ['bin', 'include', 'lib'], +} + +moduleclass = 'math' +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.8.0dev0", + "easybuild-easyblocks_version": "2.8.0dev0", + "timestamp": 1459270157, + "build_time": 64.4, + "install_size": 8769443, + "command_line": ['--add-dummy-to-minimal-toolchains', '--buildpath=/tmp', '--experimental', '--github-user=riccardomurri', '--installpath=/home/rmurri/w/easybuild', '--minimal-toolchains', '--module-syntax=Lua', '--modules-tool=Lmod', '--packagepath=/home/rmurri/w/easybuild/packages', '--prefix=/home/rmurri/w/easybuild', '--repositorypath=ebfiles', '--robot=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--robot-paths=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--skip-test-cases', '--sourcepath=/home/rmurri/w/easybuild/sources', '--try-toolchain="[\'foss\', \'2016a\']"', 'LinBox-1.4.0-foss-2015a.eb'], + "modules_tool": ('Lmod', '/usr/share/lmod/lmod/libexec/lmod', '5.8'), + "core_count": 4, + "cpu_model": "Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz", + "cpu_speed": 2400.0, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/home/rmurri/w/easybuild/software/GCCcore/4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --enable-bootstrap --prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3 --with-local-prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3; Thread model: posix; gcc version 4.9.3 (GCC) ; ", + "glibc_version": "2.21", + "hostname": "xenia", + "os_name": "ubuntu", + "os_type": "Linux", + "os_version": "15.10", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.7.10 (default, Oct 14 2015, 16:09:02) ; [GCC 5.2.1 20151010]", + "system_gcc_path": "/home/rmurri/w/easybuild/software/GCCcore/4.9.3/bin/gcc", + "system_python_path": "/home/rmurri/.virtualenvs/easybuild/bin/python", +}] -- GitLab From 842135094fa8af11889df5460b3aa58906661c11 Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Tue, 29 Mar 2016 22:33:16 +0200 Subject: [PATCH 582/732] Remove "buildstatistics" section that sneaked in --- .../FFLAS-FFPACK-2.2.0-foss-2016a.eb | 24 ------------------- .../l/LinBox/LinBox-1.4.0-foss-2016a.eb | 24 ------------------- 2 files changed, 48 deletions(-) diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb index 382acef001..153536ed7b 100644 --- a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb +++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb @@ -44,27 +44,3 @@ sanity_check_paths = { } moduleclass = 'math' -# Build statistics -buildstats = [{ - "easybuild-framework_version": "2.8.0dev0", - "easybuild-easyblocks_version": "2.8.0dev0", - "timestamp": 1459270041, - "build_time": 30.84, - "install_size": 1762928, - "command_line": ['--add-dummy-to-minimal-toolchains', '--buildpath=/tmp', '--experimental', '--github-user=riccardomurri', '--installpath=/home/rmurri/w/easybuild', '--minimal-toolchains', '--module-syntax=Lua', '--modules-tool=Lmod', '--packagepath=/home/rmurri/w/easybuild/packages', '--prefix=/home/rmurri/w/easybuild', '--repositorypath=ebfiles', '--robot=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--robot-paths=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--skip-test-cases', '--sourcepath=/home/rmurri/w/easybuild/sources', '--try-toolchain="[\'foss\', \'2016a\']"', 'FFLAS-FFPACK-2.2.0-foss-2015a.eb'], - "modules_tool": ('Lmod', '/usr/share/lmod/lmod/libexec/lmod', '5.8'), - "core_count": 4, - "cpu_model": "Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz", - "cpu_speed": 2400.0, - "cpu_vendor": "Intel", - "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/home/rmurri/w/easybuild/software/GCCcore/4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --enable-bootstrap --prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3 --with-local-prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3; Thread model: posix; gcc version 4.9.3 (GCC) ; ", - "glibc_version": "2.21", - "hostname": "xenia", - "os_name": "ubuntu", - "os_type": "Linux", - "os_version": "15.10", - "platform_name": "x86_64-unknown-linux", - "python_version": "2.7.10 (default, Oct 14 2015, 16:09:02) ; [GCC 5.2.1 20151010]", - "system_gcc_path": "/home/rmurri/w/easybuild/software/GCCcore/4.9.3/bin/gcc", - "system_python_path": "/home/rmurri/.virtualenvs/easybuild/bin/python", -}] diff --git a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb index 042673b61a..df00b437d1 100644 --- a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb +++ b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb @@ -44,27 +44,3 @@ sanity_check_paths = { } moduleclass = 'math' -# Build statistics -buildstats = [{ - "easybuild-framework_version": "2.8.0dev0", - "easybuild-easyblocks_version": "2.8.0dev0", - "timestamp": 1459270157, - "build_time": 64.4, - "install_size": 8769443, - "command_line": ['--add-dummy-to-minimal-toolchains', '--buildpath=/tmp', '--experimental', '--github-user=riccardomurri', '--installpath=/home/rmurri/w/easybuild', '--minimal-toolchains', '--module-syntax=Lua', '--modules-tool=Lmod', '--packagepath=/home/rmurri/w/easybuild/packages', '--prefix=/home/rmurri/w/easybuild', '--repositorypath=ebfiles', '--robot=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--robot-paths=/home/rmurri/w/easybuild/ebfiles:/home/rmurri/w/easybuild/easyconfigs/easybuild/easyconfigs/', '--skip-test-cases', '--sourcepath=/home/rmurri/w/easybuild/sources', '--try-toolchain="[\'foss\', \'2016a\']"', 'LinBox-1.4.0-foss-2015a.eb'], - "modules_tool": ('Lmod', '/usr/share/lmod/lmod/libexec/lmod', '5.8'), - "core_count": 4, - "cpu_model": "Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz", - "cpu_speed": 2400.0, - "cpu_vendor": "Intel", - "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/home/rmurri/w/easybuild/software/GCCcore/4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --enable-bootstrap --prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3 --with-local-prefix=/home/rmurri/w/easybuild/software/GCCcore/4.9.3; Thread model: posix; gcc version 4.9.3 (GCC) ; ", - "glibc_version": "2.21", - "hostname": "xenia", - "os_name": "ubuntu", - "os_type": "Linux", - "os_version": "15.10", - "platform_name": "x86_64-unknown-linux", - "python_version": "2.7.10 (default, Oct 14 2015, 16:09:02) ; [GCC 5.2.1 20151010]", - "system_gcc_path": "/home/rmurri/w/easybuild/software/GCCcore/4.9.3/bin/gcc", - "system_python_path": "/home/rmurri/.virtualenvs/easybuild/bin/python", -}] -- GitLab From a192c8e8addf0c4d566a728cca056b438cc1e3fb Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Wed, 30 Mar 2016 10:41:23 +0200 Subject: [PATCH 583/732] Edits suggested by @boegel and general cleanup. Some cruft was added by EB as a result of saving back the file, and it gets dutifully removed now. (Well, hopefully!) --- .../FFLAS-FFPACK-2.2.0-foss-2016a.eb | 24 ++++++++----------- .../g/Givaro/Givaro-4.0.1-foss-2016a.eb | 21 +++++++--------- .../l/LinBox/LinBox-1.4.0-foss-2016a.eb | 21 +++++++--------- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb index 153536ed7b..282843bbc7 100644 --- a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb +++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb @@ -17,30 +17,26 @@ description = "Finite Field Linear Algebra Subroutines / Package" toolchain = {'version': '2016a', 'name': 'foss'} -sources = ['v2.2.0.zip'] -source_urls = ['https://github.com/linbox-team/%(namelower)s/archive'] +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/linbox-team/fflas-ffpack/archive'] builddependencies = [ - ('Autoconf', '2.69', '', True), - ('Automake', '1.15', '', True), - ('libtool', '2.4.6', '', True), + ('Autoconf', '2.69'), + ('Automake', '1.15'), + ('libtool', '2.4.6'), ] dependencies = [ - ('GMP', '6.1.0', '', ('GCC', '4.9.3-2.25')), + ('GMP', '6.1.0'), ('Givaro', '4.0.1'), ] preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " -configopts = '--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO --with-blas-cflags="-I$BLAS_INC_DIR" --with-blas-libs="-L$BLAS_LIB_DIR $LIBBLAS" --enable-openmp' - -parallel = 4 - -unwanted_env_vars = {} -start_dir = '%(builddir)s/%(namelower)s-%(version)s/' +configopts = ('--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO' + ' --with-blas-cflags="-I$BLAS_INC_DIR" --with-blas-libs="-L$BLAS_LIB_DIR $LIBBLAS" --enable-openmp') sanity_check_paths = { - 'files': ['bin/%(namelower)s-config', 'include/%(namelower)s/%(namelower)s.h'], - 'dirs': ['bin', 'include', 'lib'], + 'files': ['bin/fflas-ffpack-config', 'include/fflas-ffpack/fflas-ffpack.h'], + 'dirs': ['bin', 'include', 'lib'], } moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb index 56ed27ad72..fe391b51b5 100644 --- a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb +++ b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb @@ -17,29 +17,24 @@ description = "C++ library for arithmetic and algebraic computations" toolchain = {'version': '2016a', 'name': 'foss'} -sources = ['v4.0.1.zip'] -source_urls = ['https://github.com/linbox-team/%(namelower)s/archive'] +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/linbox-team/givaro/archive'] builddependencies = [ - ('Autoconf', '2.69', '', True), - ('Automake', '1.15', '', True), - ('libtool', '2.4.6', '', True), + ('Autoconf', '2.69'), + ('Automake', '1.15'), + ('libtool', '2.4.6'), ] dependencies = [ - ('GMP', '6.1.0', '', ('GCC', '4.9.3-2.25')), + ('GMP', '6.1.0'), ] preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " configopts = "--with-gmp=$EBROOTGMP --enable-inline" -parallel = 4 - -unwanted_env_vars = {} -start_dir = '%(builddir)s/%(namelower)s-%(version)s/' - sanity_check_paths = { - 'files': ['bin/%(namelower)s-config', 'include/%(namelower)s-config.h'], - 'dirs': ['bin', 'include', 'lib'], + 'files': ['bin/givaro-config', 'include/givaro-config.h'], + 'dirs': ['bin', 'include', 'lib'], } moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb index df00b437d1..4d00ba2bf0 100644 --- a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb +++ b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb @@ -17,30 +17,25 @@ description = "C++ library for exact, high-performance linear algebra" toolchain = {'version': '2016a', 'name': 'foss'} -sources = ['v1.4.0.zip'] -source_urls = ['https://github.com/%(namelower)s-team/%(namelower)s/archive'] +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/linbox-team/linbox/archive'] builddependencies = [ - ('Autoconf', '2.69', '', True), - ('Automake', '1.15', '', True), - ('libtool', '2.4.6', '', True), + ('Autoconf', '2.69'), + ('Automake', '1.15'), + ('libtool', '2.4.6'), ] dependencies = [ ('FFLAS-FFPACK', '2.2.0'), - ('Givaro', '4.0.1'), + ('Givaro', '4.0.1'), ] preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " configopts = "--with-givaro=$EBROOTGIVARO --with-fflas-ffpack=$EBROOTFFLASMINFFPACK --enable-openmp" -parallel = 4 - -unwanted_env_vars = {} -start_dir = '%(builddir)s/%(namelower)s-%(version)s/' - sanity_check_paths = { - 'files': ['bin/%(namelower)s-config', 'include/%(namelower)s/%(namelower)s-config.h', 'lib/liblinbox.a'], - 'dirs': ['bin', 'include', 'lib'], + 'files': ['bin/linbox-config', 'include/linbox/linbox-config.h', 'lib/liblinbox.a'], + 'dirs': ['bin', 'include', 'lib'], } moduleclass = 'math' -- GitLab From e0e12f2bcce4f121fbc00a1d3787a62d35c8766e Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Wed, 30 Mar 2016 11:00:47 +0200 Subject: [PATCH 584/732] Use `Autotools` bundle instead of depending on each tool separately. --- .../f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb | 4 +--- easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb | 4 +--- easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb index 282843bbc7..94cd13bd81 100644 --- a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb +++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb @@ -21,9 +21,7 @@ sources = ['v%(version)s.zip'] source_urls = ['https://github.com/linbox-team/fflas-ffpack/archive'] builddependencies = [ - ('Autoconf', '2.69'), - ('Automake', '1.15'), - ('libtool', '2.4.6'), + ('Autotools', '20150215'), ] dependencies = [ ('GMP', '6.1.0'), diff --git a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb index fe391b51b5..4f0fbad866 100644 --- a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb +++ b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb @@ -21,9 +21,7 @@ sources = ['v%(version)s.zip'] source_urls = ['https://github.com/linbox-team/givaro/archive'] builddependencies = [ - ('Autoconf', '2.69'), - ('Automake', '1.15'), - ('libtool', '2.4.6'), + ('Autotools', '20150215'), ] dependencies = [ ('GMP', '6.1.0'), diff --git a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb index 4d00ba2bf0..640a495db8 100644 --- a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb +++ b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb @@ -21,9 +21,7 @@ sources = ['v%(version)s.zip'] source_urls = ['https://github.com/linbox-team/linbox/archive'] builddependencies = [ - ('Autoconf', '2.69'), - ('Automake', '1.15'), - ('libtool', '2.4.6'), + ('Autotools', '20150215'), ] dependencies = [ ('FFLAS-FFPACK', '2.2.0'), -- GitLab From 236a8879552482ac855d3c1fbbf69c0089fb53d7 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Mar 2016 12:47:31 +0200 Subject: [PATCH 585/732] {lang}[intel/2016a] numba 0.24.0 w/ Python 2.7.11 & 3.5.1 --- .../llvmlite-0.9.0_fix-ffi-Makefile.patch | 29 +++++++++++++ .../numba-0.24.0-intel-2016a-Python-2.7.11.eb | 41 +++++++++++++++++++ .../numba-0.24.0-intel-2016a-Python-3.5.1.eb | 41 +++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 easybuild/easyconfigs/n/numba/llvmlite-0.9.0_fix-ffi-Makefile.patch create mode 100644 easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb diff --git a/easybuild/easyconfigs/n/numba/llvmlite-0.9.0_fix-ffi-Makefile.patch b/easybuild/easyconfigs/n/numba/llvmlite-0.9.0_fix-ffi-Makefile.patch new file mode 100644 index 0000000000..7a74cc0623 --- /dev/null +++ b/easybuild/easyconfigs/n/numba/llvmlite-0.9.0_fix-ffi-Makefile.patch @@ -0,0 +1,29 @@ +don't use -static-libstdc++, causing problems like "glibc detected *** python: free(): invalid pointer" +cfr. https://github.com/numba/llvmlite/issues/93; +don't hardcode -lLLVMOProfileJIT, not required anymore +cfr. https://github.com/numba/llvmlite/issues/121 +author: Kenneth Hoste (HPC-UGent) +--- llvmlite-0.9.0/ffi/Makefile.linux.orig 2016-01-26 15:11:43.000000000 +0100 ++++ llvmlite-0.9.0/ffi/Makefile.linux 2016-03-30 12:41:34.102307156 +0200 +@@ -4,9 +4,7 @@ + # -flto and --exclude-libs allow us to remove those parts of LLVM we don't use + CXXFLAGS = $(LLVM_CXXFLAGS) -flto + LDFLAGS = $(LLVM_LDFLAGS) -flto -Wl,--exclude-libs=ALL +-# Need to add LLVMOProfileJIT by hand +-# see https://llvm.org/bugs/show_bug.cgi?id=25091 +-LIBS = $(LLVM_LIBS) -lLLVMOProfileJIT ++LIBS = $(LLVM_LIBS) + SRC = assembly.cpp bitcode.cpp core.cpp initfini.cpp module.cpp value.cpp \ + executionengine.cpp transforms.cpp passmanagers.cpp targets.cpp dylib.cpp \ + linker.cpp +@@ -15,9 +13,7 @@ + all: $(OUTPUT) + + $(OUTPUT): $(SRC) +- # static-libstdc++ avoids runtime dependencies on a +- # particular libstdc++ version. +- $(CXX) -static-libstdc++ -shared $(CXXFLAGS) $(SRC) -o $(OUTPUT) $(LDFLAGS) $(LIBS) ++ $(CXX) -shared $(CXXFLAGS) $(SRC) -o $(OUTPUT) $(LDFLAGS) $(LIBS) + + clean: + rm -rf test diff --git a/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..0ddf57da7d --- /dev/null +++ b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,41 @@ +easyblock = 'Bundle' + +name = 'numba' +version = '0.24.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://numba.pydata.org/' +description = """Numba is an Open Source NumPy-aware optimizing compiler for Python sponsored by Continuum Analytics, + Inc. It uses the remarkable LLVM compiler infrastructure to compile Python syntax to machine code.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '2.7.11'), + ('LLVM', '3.7.1'), +] + +exts_list = [ + ('llvmlite', '0.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/l/llvmlite/'], + 'patches': ['llvmlite-0.8.0_no-static-libstc++.patch'], + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numba/'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['bin/numba', 'bin/pycc'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..e0e36eeb79 --- /dev/null +++ b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,41 @@ +easyblock = 'Bundle' + +name = 'numba' +version = '0.24.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://numba.pydata.org/' +description = """Numba is an Open Source NumPy-aware optimizing compiler for Python sponsored by Continuum Analytics, + Inc. It uses the remarkable LLVM compiler infrastructure to compile Python syntax to machine code.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '3.5.1'), + ('LLVM', '3.7.1'), +] + +exts_list = [ + ('llvmlite', '0.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/l/llvmlite/'], + 'patches': ['llvmlite-0.8.0_no-static-libstc++.patch'], + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numba/'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['bin/numba', 'bin/pycc'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'lang' -- GitLab From a45e7509603391b8a42eb3f1d333cfd902bfefc9 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Mar 2016 12:53:43 +0200 Subject: [PATCH 586/732] use right patch file for llvmlite --- .../n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb | 2 +- .../n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb index 0ddf57da7d..1ed8278597 100644 --- a/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-2.7.11.eb @@ -21,7 +21,7 @@ dependencies = [ exts_list = [ ('llvmlite', '0.9.0', { 'source_urls': ['https://pypi.python.org/packages/source/l/llvmlite/'], - 'patches': ['llvmlite-0.8.0_no-static-libstc++.patch'], + 'patches': ['llvmlite-0.9.0_fix-ffi-Makefile.patch'], }), (name, version, { 'source_urls': ['https://pypi.python.org/packages/source/n/numba/'], diff --git a/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb index e0e36eeb79..c11e1bdb17 100644 --- a/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb +++ b/easybuild/easyconfigs/n/numba/numba-0.24.0-intel-2016a-Python-3.5.1.eb @@ -21,7 +21,7 @@ dependencies = [ exts_list = [ ('llvmlite', '0.9.0', { 'source_urls': ['https://pypi.python.org/packages/source/l/llvmlite/'], - 'patches': ['llvmlite-0.8.0_no-static-libstc++.patch'], + 'patches': ['llvmlite-0.9.0_fix-ffi-Makefile.patch'], }), (name, version, { 'source_urls': ['https://pypi.python.org/packages/source/n/numba/'], -- GitLab From ed68b28d57a933a0570d61aa9a8a7c8d40ebffb0 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Mar 2016 15:09:50 +0200 Subject: [PATCH 587/732] {system}[intel/2016a] file 5.25 + enhance sanity check --- .../easyconfigs/f/file/file-5.17-GCC-4.8.2.eb | 8 +++--- .../f/file/file-5.25-intel-2016a.eb | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 easybuild/easyconfigs/f/file/file-5.25-intel-2016a.eb diff --git a/easybuild/easyconfigs/f/file/file-5.17-GCC-4.8.2.eb b/easybuild/easyconfigs/f/file/file-5.17-GCC-4.8.2.eb index 63db8305d5..bca5d69508 100644 --- a/easybuild/easyconfigs/f/file/file-5.17-GCC-4.8.2.eb +++ b/easybuild/easyconfigs/f/file/file-5.17-GCC-4.8.2.eb @@ -12,14 +12,14 @@ homepage = 'http://www.darwinsys.com/file/' description = """The file command is 'a file type guesser', that is, a command-line tool that tells you in words what kind of data a file contains.""" +toolchain = {'name': 'GCC', 'version': '4.8.2'} + source_urls = ['ftp://ftp.astron.com/pub/file/'] sources = [SOURCE_TAR_GZ] -toolchain = {'name': 'GCC', 'version': '4.8.2'} - sanity_check_paths = { - 'files': ['bin/file'], - 'dirs': [] + 'files': ['bin/file', 'include/magic.h', 'lib/libmagic.%s' % SHLIB_EXT], + 'dirs': ['share'] } moduleclass = 'system' diff --git a/easybuild/easyconfigs/f/file/file-5.25-intel-2016a.eb b/easybuild/easyconfigs/f/file/file-5.25-intel-2016a.eb new file mode 100644 index 0000000000..61f8e29397 --- /dev/null +++ b/easybuild/easyconfigs/f/file/file-5.25-intel-2016a.eb @@ -0,0 +1,25 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +## + +easyblock = 'ConfigureMake' + +name = 'file' +version = '5.25' + +homepage = 'http://www.darwinsys.com/file/' +description = """The file command is 'a file type guesser', that is, a command-line tool + that tells you in words what kind of data a file contains.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['ftp://ftp.astron.com/pub/file/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/file', 'include/magic.h', 'lib/libmagic.%s' % SHLIB_EXT], + 'dirs': ['share'] +} + +moduleclass = 'system' -- GitLab From b92eaf3eac50f53ac2b688a53b821a92f797371a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Mar 2016 16:02:50 +0200 Subject: [PATCH 588/732] add easyconfig Java-1.8.0_77.eb --- easybuild/easyconfigs/j/Java/Java-1.8.0_77.eb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 easybuild/easyconfigs/j/Java/Java-1.8.0_77.eb diff --git a/easybuild/easyconfigs/j/Java/Java-1.8.0_77.eb b/easybuild/easyconfigs/j/Java/Java-1.8.0_77.eb new file mode 100644 index 0000000000..fa48d66cd4 --- /dev/null +++ b/easybuild/easyconfigs/j/Java/Java-1.8.0_77.eb @@ -0,0 +1,15 @@ +name = 'Java' +version = '1.8.0_77' + +homepage = 'http://java.com/' +description = """Java Platform, Standard Edition (Java SE) lets you develop and deploy + Java applications on desktops and servers.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download the tar.gz directly from http://www.oracle.com/technetwork/java/javase/downloads/index.html +(vp, vs) = version.split('_') +altver = '%su%s' % (vp.split('.')[1], vs) +sources = ['jdk-%s-linux-x64.tar.gz' % altver] + +moduleclass = 'lang' -- GitLab From 3df8b5b4e3a15448caa4ef4b023b13d4ee1f31a8 Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Wed, 30 Mar 2016 16:42:55 +0200 Subject: [PATCH 589/732] More style edits suggested by @boegel --- .../f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb | 8 ++++---- easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb | 2 +- easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb index 94cd13bd81..da99f9d5b8 100644 --- a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb +++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb @@ -24,17 +24,17 @@ builddependencies = [ ('Autotools', '20150215'), ] dependencies = [ - ('GMP', '6.1.0'), + ('GMP', '6.1.0'), ('Givaro', '4.0.1'), ] preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " -configopts = ('--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO' - ' --with-blas-cflags="-I$BLAS_INC_DIR" --with-blas-libs="-L$BLAS_LIB_DIR $LIBBLAS" --enable-openmp') +configopts = '--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO' +configopts += ' --with-blas-cflags="-I$BLAS_INC_DIR" --with-blas-libs="-L$BLAS_LIB_DIR $LIBBLAS" --enable-openmp' sanity_check_paths = { 'files': ['bin/fflas-ffpack-config', 'include/fflas-ffpack/fflas-ffpack.h'], - 'dirs': ['bin', 'include', 'lib'], + 'dirs': ['bin', 'include', 'lib'], } moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb index 4f0fbad866..22ad6d392a 100644 --- a/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb +++ b/easybuild/easyconfigs/g/Givaro/Givaro-4.0.1-foss-2016a.eb @@ -32,7 +32,7 @@ configopts = "--with-gmp=$EBROOTGMP --enable-inline" sanity_check_paths = { 'files': ['bin/givaro-config', 'include/givaro-config.h'], - 'dirs': ['bin', 'include', 'lib'], + 'dirs': ['bin', 'include', 'lib'], } moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb index 640a495db8..f0951b2b35 100644 --- a/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb +++ b/easybuild/easyconfigs/l/LinBox/LinBox-1.4.0-foss-2016a.eb @@ -25,7 +25,7 @@ builddependencies = [ ] dependencies = [ ('FFLAS-FFPACK', '2.2.0'), - ('Givaro', '4.0.1'), + ('Givaro', '4.0.1'), ] preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && " @@ -33,7 +33,7 @@ configopts = "--with-givaro=$EBROOTGIVARO --with-fflas-ffpack=$EBROOTFFLASMINFFP sanity_check_paths = { 'files': ['bin/linbox-config', 'include/linbox/linbox-config.h', 'lib/liblinbox.a'], - 'dirs': ['bin', 'include', 'lib'], + 'dirs': ['bin', 'include', 'lib'], } moduleclass = 'math' -- GitLab From 29197e7d989d93758bf1fb0ee678de15f6d0f592 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Mar 2016 16:47:02 +0200 Subject: [PATCH 590/732] add easyconfig NGS-1.2.3-intel-2016a.eb --- .../n/NGS/NGS-1.2.3-intel-2016a.eb | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 easybuild/easyconfigs/n/NGS/NGS-1.2.3-intel-2016a.eb diff --git a/easybuild/easyconfigs/n/NGS/NGS-1.2.3-intel-2016a.eb b/easybuild/easyconfigs/n/NGS/NGS-1.2.3-intel-2016a.eb new file mode 100644 index 0000000000..ed0e37836c --- /dev/null +++ b/easybuild/easyconfigs/n/NGS/NGS-1.2.3-intel-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'NGS' +version = '1.2.3' + +homepage = 'https://github.com/ncbi/ngs' +description = """NGS is a new, domain-specific API for accessing reads, alignments and pileups produced from + Next Generation Sequencing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://github.com/ncbi/ngs/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [('Java', '1.8.0_77', '', True)] + +# override default of using $HOME/ncbi-outdir +configopts = "--build-prefix=%(builddir)s/ncbi-outdir" + +buildopts = 'CC="$CC -c" CPP="$CXX" CP="$CXX -c" -C ngs-sdk && ' +buildopts += 'make CC="$CC -c" CPP="$CXX" CP="$CXX -c" -C ngs-java' + +installopts = "-C ngs-sdk && make install -C ngs-java" + +parallel = 1 + +sanity_check_paths = { + 'files': ['jar/ngs-java.jar', ('lib/libngs-sdk.%s' % SHLIB_EXT, 'lib64/libngs-sdk.%s' % SHLIB_EXT), + ('lib/libngs-adapt-c++.a', 'lib64/libngs-adapt-c++.a'), ('lib/libngs-c++.a', 'lib64/libngs-c++.a')], + 'dirs': ['include/ngs', 'share'], +} + +modextrapaths = {'CLASSPATH': 'jar/ngs-java.jar'} + +moduleclass = 'bio' -- GitLab From 96afcdd6c2a927d1aaf5e9364af131a34c1e0162 Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Wed, 30 Mar 2016 22:22:41 +0200 Subject: [PATCH 591/732] Use `env` wherever `preconfigopts is used to set environmental variables. Without `env`, we are relying on a syntactical feature of Bourne-type shells; the `env` utility guarantees that the command-line will continue to work even with other shells (e.g., `tcsh`). --- .../easyconfigs/a/ABySS/ABySS-1.3.7-intel-2015a-Python-2.7.9.eb | 2 +- easybuild/easyconfigs/a/a2ps/a2ps-4.14-goalf-1.1.0-no-OFED.eb | 2 +- easybuild/easyconfigs/a/a2ps/a2ps-4.14-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-5.3.0.eb | 2 +- .../b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb | 2 +- .../b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb | 2 +- .../b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25.1.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-1.3.0-goolf-1.4.10.eb | 2 +- .../c/Cufflinks/Cufflinks-2.0.2-goalf-1.1.0-no-OFED.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goolf-1.4.10.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-2.0.2-ictce-5.3.0.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-2.1.1-ictce-5.5.0.eb | 2 +- easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-foss-2015a.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.4.10.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.7.20.eb | 2 +- .../easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015a.eb | 2 +- .../Cufflinks-2.2.1-intel-2015b-Python-2.7.10-Boost-1.59.0.eb | 2 +- .../easyconfigs/g/grib_api/grib_api-1.10.0-goolf-1.4.10.eb | 2 +- .../easyconfigs/g/grib_api/grib_api-1.10.0-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-5.3.0.eb | 2 +- .../g/grib_api/grib_api-1.9.18-goalf-1.1.0-no-OFED.eb | 2 +- .../easyconfigs/g/grib_api/grib_api-1.9.18-goolf-1.4.10.eb | 2 +- .../easyconfigs/g/grib_api/grib_api-1.9.18-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/l/libdwarf/libdwarf-20140805-GCC-4.9.2.eb | 2 +- .../easyconfigs/l/libpciaccess/libpciaccess-0.13.1-GCC-4.7.2.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-goalf-1.1.0-no-OFED.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-goolf-1.4.10.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-ictce-4.0.6.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-ictce-4.1.13.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-ictce-5.3.0.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-ictce-5.5.0.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.1-intel-2015a.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.3-intel-2015a.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.4-intel-2015b.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-cgmpolf-1.1.6.eb | 2 +- .../l/libreadline/libreadline-6.2-cgmvolf-1.1.12rc1.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.2.7.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-cgoolf-1.1.7.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-gmpolf-1.4.8.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12.eb | 2 +- .../l/libreadline/libreadline-6.2-gmvolf-1.7.12rc1.eb | 2 +- .../l/libreadline/libreadline-6.2-goalf-1.1.0-no-OFED.eb | 2 +- .../l/libreadline/libreadline-6.2-goalf-1.5.12-no-OFED.eb | 2 +- .../l/libreadline/libreadline-6.2-gompi-1.4.12-no-OFED.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-goolf-1.4.10.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-goolf-1.5.14.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.10.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.6.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-4.1.13.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-5.2.0.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-5.3.0.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-5.4.0.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-ictce-5.5.0.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-intel-2015a.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-iomkl-4.6.13.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-iqacml-3.7.3.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.2-iqacml-4.4.13.eb | 2 +- .../l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb | 2 +- .../l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-GCC-4.8.2.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-GCC-4.9.2.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-GCCcore-4.9.3.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-GNU-4.9.3-2.25.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-foss-2014b.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-foss-2015.05.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-foss-2015a.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-foss-2015b.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-foss-2016a.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-gimkl-2.11.5.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-gompi-1.5.16.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-goolf-1.4.10.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.14.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-goolf-1.7.20.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-ictce-6.2.5.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-ictce-6.3.5.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-ictce-7.1.2.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-ictce-7.3.5.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-intel-2014.06.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-intel-2014b.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-intel-2015a.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-intel-2015b.eb | 2 +- .../easyconfigs/l/libreadline/libreadline-6.3-intel-2016a.eb | 2 +- .../easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb | 2 +- easybuild/easyconfigs/p/PLUMED/PLUMED-2.1.4-foss-2015b.eb | 2 +- easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.0-intel-2015b.eb | 2 +- easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-foss-2015b.eb | 2 +- easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-intel-2015b.eb | 2 +- easybuild/easyconfigs/p/Python/Python-2.7.8-ictce-7.1.2.eb | 2 +- easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2015a.eb | 2 +- .../r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb | 2 +- .../v/ViennaRNA/ViennaRNA-2.0.7-goalf-1.1.0-no-OFED.eb | 2 +- .../easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb | 2 +- .../easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-4.0.6.eb | 2 +- .../easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb | 2 +- .../easyconfigs/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb | 2 +- 105 files changed, 105 insertions(+), 105 deletions(-) diff --git a/easybuild/easyconfigs/a/ABySS/ABySS-1.3.7-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/a/ABySS/ABySS-1.3.7-intel-2015a-Python-2.7.9.eb index 20c30c8e62..6b5c1c6d52 100644 --- a/easybuild/easyconfigs/a/ABySS/ABySS-1.3.7-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/a/ABySS/ABySS-1.3.7-intel-2015a-Python-2.7.9.eb @@ -31,7 +31,7 @@ dependencies = [ ('Boost', '1.58.0', versionsuffix), ] -preconfigopts = 'CPPFLAGS=-I$EBROOTSPARSEHASH/include' +preconfigopts = 'env CPPFLAGS=-I$EBROOTSPARSEHASH/include' sanity_check_paths = { 'files': ["bin/ABYSS", "bin/ABYSS-P"], diff --git a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goalf-1.1.0-no-OFED.eb index 13ae69456f..916fcd7e48 100644 --- a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goalf-1.1.0-no-OFED.eb @@ -25,7 +25,7 @@ dependencies = [ ('gperf', '3.0.4'), ] -preconfigopts = 'EMACS=no' +preconfigopts = 'env EMACS=no' configopts = '--with-gnu-gettext' sanity_check_paths = { diff --git a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goolf-1.4.10.eb b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goolf-1.4.10.eb index 5144a9afc9..97e5c8330b 100644 --- a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-goolf-1.4.10.eb @@ -25,7 +25,7 @@ dependencies = [ ('gperf', '3.0.4'), ] -preconfigopts = 'EMACS=no' +preconfigopts = 'env EMACS=no' configopts = '--with-gnu-gettext' sanity_check_paths = { diff --git a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-4.0.6.eb b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-4.0.6.eb index 3b963e0d7e..74f9dffca6 100644 --- a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-4.0.6.eb @@ -25,7 +25,7 @@ dependencies = [ ('gperf', '3.0.4'), ] -preconfigopts = 'EMACS=no' +preconfigopts = 'env EMACS=no' configopts = '--with-gnu-gettext' sanity_check_paths = { diff --git a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-5.3.0.eb b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-5.3.0.eb index f6a35a3dc0..efd5845e70 100644 --- a/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/a/a2ps/a2ps-4.14-ictce-5.3.0.eb @@ -26,7 +26,7 @@ dependencies = [ ('gperf', '3.0.4'), ] -preconfigopts = 'EMACS=no' +preconfigopts = 'env EMACS=no' configopts = '--with-gnu-gettext' sanity_check_paths = { diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb index 608c44a155..35e328daad 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb @@ -21,7 +21,7 @@ builddependencies = [ ] # statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb index 17ecd5c190..6c55f76694 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb @@ -20,7 +20,7 @@ builddependencies = [ ] # statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb index 61254037e0..6f9a318360 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb @@ -21,7 +21,7 @@ builddependencies = [ ] # statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb index 0007322f1f..ef80ad6bb5 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb @@ -20,7 +20,7 @@ builddependencies = [ ] # statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb index e6f5a84c78..b8fa0b77ca 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb @@ -21,7 +21,7 @@ builddependencies = [ ] # statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb index 8efdae380a..9ec199023d 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb @@ -22,7 +22,7 @@ builddependencies = [ ] # statically link with zlib, to avoid runtime dependency on zlib -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25.1.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25.1.eb index b6d188a41b..63837a712c 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25.1.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25.1.eb @@ -21,7 +21,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib # further, add the system library path in the rpath: this should 'harden' the # resulting binutils to bootstrap GCC (no trouble when other libstdc++ is build etc) -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a -Wl,-rpath=/lib64 -Wl,-rpath=/usr/lib64 -Wl,-rpath=/lib -Wl,-rpath=/usr/lib"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a -Wl,-rpath=/lib64 -Wl,-rpath=/usr/lib64 -Wl,-rpath=/lib -Wl,-rpath=/usr/lib"' prebuildopts = preconfigopts # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25.eb index 40e3ccc1a8..cfcfe38d3d 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25.eb @@ -22,7 +22,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib # further, add the system library path in the rpath: this should 'harden' the # resulting binutils to bootstrap GCC (no trouble when other libstdc++ is build etc) -preconfigopts = 'LIBS="$EBROOTZLIB/lib/libz.a -Wl,-rpath=/lib64 -Wl,-rpath=/usr/lib64 -Wl,-rpath=/lib -Wl,-rpath=/usr/lib"' +preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a -Wl,-rpath=/lib64 -Wl,-rpath=/usr/lib64 -Wl,-rpath=/lib -Wl,-rpath=/usr/lib"' prebuildopts = preconfigopts # make sure that system libraries are also considered by ld and ld.gold is also built diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-1.3.0-goolf-1.4.10.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-1.3.0-goolf-1.4.10.eb index 501824903b..7b8dca8554 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-1.3.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-1.3.0-goolf-1.4.10.eb @@ -34,7 +34,7 @@ patches = [ 'cufflinks-1.x-ldflags.patch' ] -preconfigopts = 'CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' +preconfigopts = 'env CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' sanity_check_paths = { diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goalf-1.1.0-no-OFED.eb index d258537699..2ef873d2da 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goalf-1.1.0-no-OFED.eb @@ -30,7 +30,7 @@ dependencies = [ ] configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' +preconfigopts = 'env CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goolf-1.4.10.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goolf-1.4.10.eb index 645f94a833..25b9208f0e 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-goolf-1.4.10.eb @@ -32,7 +32,7 @@ dependencies = [ patches = ['Cufflinks_GCC-4.7.patch'] configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' +preconfigopts = 'env CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-ictce-5.3.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-ictce-5.3.0.eb index 799e9172ba..9c37cd717b 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.0.2-ictce-5.3.0.eb @@ -34,7 +34,7 @@ dependencies = [ configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' configopts += ' --enable-intel64 ' -preconfigopts = 'CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' +preconfigopts = 'env CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.1.1-ictce-5.5.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.1.1-ictce-5.5.0.eb index 991b5a4c8b..6751cec530 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.1.1-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.1.1-ictce-5.5.0.eb @@ -33,7 +33,7 @@ dependencies = [ ] configopts = '--enable-intel64 --with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS=-I$EBROOTEIGEN/include' +preconfigopts = 'env CPPFLAGS=-I$EBROOTEIGEN/include' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-foss-2015a.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-foss-2015a.eb index d0372e6f70..6ac33d77d4 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-foss-2015a.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-foss-2015a.eb @@ -18,7 +18,7 @@ dependencies = [ ('zlib', '1.2.8'), ] -preconfigopts = 'CPPFLAGS=-I$EBROOTEIGEN/include' +preconfigopts = 'env CPPFLAGS=-I$EBROOTEIGEN/include' configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' sanity_check_paths = { diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.4.10.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.4.10.eb index 2741497a4d..e368245a6c 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.4.10.eb @@ -18,7 +18,7 @@ dependencies = [ ] configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' +preconfigopts = 'env CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.7.20.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.7.20.eb index 0a4b6fa7ab..fe15c228e1 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-goolf-1.7.20.eb @@ -18,7 +18,7 @@ dependencies = [ ] configopts = '--with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' +preconfigopts = 'env CPPFLAGS="-I$EBROOTEIGEN/include $CPPFLAGS" LDFLAGS="-lboost_system $LDFLAGS" ' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015a.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015a.eb index 43da714323..50fce481a6 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015a.eb @@ -19,7 +19,7 @@ dependencies = [ ] configopts = '--enable-intel64 --with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS=-I$EBROOTEIGEN/include' +preconfigopts = 'env CPPFLAGS=-I$EBROOTEIGEN/include' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015b-Python-2.7.10-Boost-1.59.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015b-Python-2.7.10-Boost-1.59.0.eb index 38e9d1ce03..8360322002 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015b-Python-2.7.10-Boost-1.59.0.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-2.2.1-intel-2015b-Python-2.7.10-Boost-1.59.0.eb @@ -21,7 +21,7 @@ dependencies = [ ] configopts = '--enable-intel64 --with-boost=$EBROOTBOOST --with-bam-libdir=${EBROOTSAMTOOLS}/lib' -preconfigopts = 'CPPFLAGS=-I${EBROOTEIGEN}/include' +preconfigopts = 'env CPPFLAGS=-I${EBROOTEIGEN}/include' sanity_check_paths = { 'files': ['bin/cufflinks'], diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-goolf-1.4.10.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-goolf-1.4.10.eb index ffd2e3a7a6..4bcdb9773b 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-goolf-1.4.10.eb @@ -17,7 +17,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-4.1.13.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-4.1.13.eb index 8f6396f5b8..7a4d21e078 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-4.1.13.eb @@ -17,7 +17,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-5.3.0.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-5.3.0.eb index ee472aa372..4e298ad677 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.10.0-ictce-5.3.0.eb @@ -17,7 +17,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goalf-1.1.0-no-OFED.eb index ef2423ee53..4b6a000d12 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goalf-1.1.0-no-OFED.eb @@ -17,7 +17,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goolf-1.4.10.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goolf-1.4.10.eb index c0f9f1c6d8..9445690c85 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-goolf-1.4.10.eb @@ -16,7 +16,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-4.1.13.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-4.1.13.eb index 384aa93ebf..1f66eb79d7 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-4.1.13.eb @@ -17,7 +17,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-5.3.0.eb b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-5.3.0.eb index 048ac9570d..8bc580fd82 100644 --- a/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/g/grib_api/grib_api-1.9.18-ictce-5.3.0.eb @@ -18,7 +18,7 @@ dependencies = [ ('JasPer', '1.900.1'), ] -preconfigopts = 'FC=$F90' +preconfigopts = 'env FC=$F90' configopts = '--with-jasper=$EBROOTJASPER' parallel = 1 diff --git a/easybuild/easyconfigs/l/libdwarf/libdwarf-20140805-GCC-4.9.2.eb b/easybuild/easyconfigs/l/libdwarf/libdwarf-20140805-GCC-4.9.2.eb index cc9e86a7d0..8c554c3e24 100644 --- a/easybuild/easyconfigs/l/libdwarf/libdwarf-20140805-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/l/libdwarf/libdwarf-20140805-GCC-4.9.2.eb @@ -15,7 +15,7 @@ source_urls = ['http://www.prevanders.net'] dependencies = [('libelf', '0.8.13')] with_configure = True -preconfigopts = 'CFLAGS="-fPIC $CFLAGS" ' +preconfigopts = 'env CFLAGS="-fPIC $CFLAGS" ' configopts = "--enable-shared " # This is dirty but libdwarf cannot find it's own library in the build process... diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-GCC-4.7.2.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-GCC-4.7.2.eb index 6ac9b7d5c3..01c9c7b5d7 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-GCC-4.7.2.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-GCC-4.7.2.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goalf-1.1.0-no-OFED.eb index a021127537..3c63b87470 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goalf-1.1.0-no-OFED.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goolf-1.4.10.eb index 11090d4b7a..437954d342 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-goolf-1.4.10.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.0.6.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.0.6.eb index f66aff6454..f0291301fc 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.0.6.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.1.13.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.1.13.eb index f03e2b9b60..e43c36e89c 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-4.1.13.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.3.0.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.3.0.eb index 33c34a406a..834a292992 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.3.0.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.5.0.eb index 7e3d115240..c3e51b6854 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-ictce-5.5.0.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2015a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2015a.eb index ce77f3502c..8f259d339a 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.1-intel-2015a.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.17'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.3-intel-2015a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.3-intel-2015a.eb index e28f16cff6..5f22d77a36 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.3-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.3-intel-2015a.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.19.0'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb index 2a5e9c8d05..ea05edcced 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-gimkl-2.11.5.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.19.0'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2015b.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2015b.eb index 4281029487..1af83efe66 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2015b.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.19.0'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb index 2ac72299c5..c0a23d9702 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-intel-2016a.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.19.0'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmpolf-1.1.6.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmpolf-1.1.6.eb index 17ca0fce10..084f645370 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmpolf-1.1.6.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmpolf-1.1.6.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9-20130406')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.1.12rc1.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.1.12rc1.eb index 8d2ea29b4c..f0751a5aa2 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.1.12rc1.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.1.12rc1.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9-20130406')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.2.7.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.2.7.eb index aea7099ee4..0ae01c0783 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.2.7.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgmvolf-1.2.7.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9-20130406')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgoolf-1.1.7.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgoolf-1.1.7.eb index 7216c9ca1c..39cc896311 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgoolf-1.1.7.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-cgoolf-1.1.7.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9-20130406')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb index 6589e3ba7c..9a9c4dd1a0 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-foss-2015b.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmpolf-1.4.8.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmpolf-1.4.8.eb index a36ac06d74..245f1b2b64 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmpolf-1.4.8.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmpolf-1.4.8.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12.eb index 4425696364..8e8d97c9af 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9-20130406')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12rc1.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12rc1.eb index 8892dfc907..0e2ab07ab0 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12rc1.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gmvolf-1.7.12rc1.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9-20130406')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.1.0-no-OFED.eb index 7778abffff..c6a66c33d9 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.1.0-no-OFED.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.5.12-no-OFED.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.5.12-no-OFED.eb index 157a15b6bb..f765c40888 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.5.12-no-OFED.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goalf-1.5.12-no-OFED.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gompi-1.4.12-no-OFED.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gompi-1.4.12-no-OFED.eb index 6a9bcf9cdd..f13cdef958 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gompi-1.4.12-no-OFED.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-gompi-1.4.12-no-OFED.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.4.10.eb index c5324cbad1..f5f1c5bd47 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.4.10.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.5.14.eb index b07b7634b9..5c9d193cce 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-goolf-1.5.14.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.10.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.10.eb index 853816b19b..596222a189 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.10.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.10.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.6.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.6.eb index 26cadb84b9..2ed024170c 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.0.6.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.1.13.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.1.13.eb index 055d457da0..fd8d7fabf0 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-4.1.13.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.2.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.2.0.eb index 6f9a153abf..35b967c78d 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.2.0.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.2.0.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.3.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.3.0.eb index a4bce470a5..54fd902c42 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.3.0.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.4.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.4.0.eb index 8003f03676..12e011a8ed 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.4.0.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.4.0.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.5.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.5.0.eb index 15a227218e..18ebd1a1e7 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-ictce-5.5.0.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2015a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2015a.eb index 9236fd84d0..cdb4bf6f5a 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-intel-2015a.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iomkl-4.6.13.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iomkl-4.6.13.eb index 7435fb5029..0f7e912805 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iomkl-4.6.13.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iomkl-4.6.13.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-3.7.3.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-3.7.3.eb index a669b4f5be..27560c2cd2 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-3.7.3.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-3.7.3.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-4.4.13.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-4.4.13.eb index a120dd4307..7ca975dc76 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-4.4.13.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.2-iqacml-4.4.13.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb index 883868add2..b30099a775 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.06.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb index d828f262a5..712eabaeda 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-CrayGNU-2015.11.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.8.2.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.8.2.eb index 252a86c527..667201ed1a 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.8.2.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.8.2.eb @@ -17,7 +17,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.9.2.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.9.2.eb index afd0f9f313..55974b6b67 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCC-4.9.2.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCCcore-4.9.3.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCCcore-4.9.3.eb index 46e89b5a96..68d5cccacb 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GCCcore-4.9.3.eb @@ -19,7 +19,7 @@ builddependencies = [('binutils', '2.25')] dependencies = [('ncurses', '6.0')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GNU-4.9.3-2.25.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GNU-4.9.3-2.25.eb index 05d8476935..d726fb4329 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GNU-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-GNU-4.9.3-2.25.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2014b.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2014b.eb index 362df4f9bd..2745ab8557 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2014b.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2014b.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015.05.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015.05.eb index 763ccd9488..c856b61000 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015.05.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015.05.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015a.eb index d3b76459b6..b5740c5333 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015a.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015a.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015b.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015b.eb index 66ecad79ff..4bbd90baa7 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015b.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2015b.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2016a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2016a.eb index 037141ab77..e33a1ae239 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-foss-2016a.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '6.0')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gimkl-2.11.5.eb index fb2145ca85..675e8c38cd 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gimkl-2.11.5.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gompi-1.5.16.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gompi-1.5.16.eb index 8845b7c009..dbc0087596 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gompi-1.5.16.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-gompi-1.5.16.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.4.10.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.4.10.eb index 793dcaf0af..cbb20595ce 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.4.10.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.14.eb index e594babc96..7ecfe2dc0a 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.14.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.7.20.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.7.20.eb index ec5413615c..3c009a2b02 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.7.20.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.7.20.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.2.5.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.2.5.eb index 35af50be83..84703a1b03 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.2.5.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.2.5.eb @@ -20,7 +20,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.3.5.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.3.5.eb index 2db2e85326..fdf5247663 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.3.5.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-6.3.5.eb @@ -20,7 +20,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.1.2.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.1.2.eb index c9c675d484..fb685e3854 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.1.2.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.1.2.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.3.5.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.3.5.eb index 46eef59b19..68d21572c3 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.3.5.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-ictce-7.3.5.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014.06.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014.06.eb index 583b41298f..76b828f76d 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014.06.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014.06.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014b.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014b.eb index 3e67c20449..9539bb724f 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2014b.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015a.eb index 2c8752c400..051672a6f2 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015a.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015b.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015b.eb index de76493eec..fa9c58b0b8 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2015b.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2016a.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2016a.eb index 0762f90f29..5b1cb39b0a 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-intel-2016a.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '6.0')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + diff --git a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb index 5bcb7de6da..b08de1e59f 100644 --- a/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb +++ b/easybuild/easyconfigs/m/MVAPICH2/MVAPICH2-1.9-iccifort-2011.13.367.eb @@ -15,6 +15,6 @@ checksums = ['5dc58ed08fd3142c260b70fe297e127c'] builddependencies = [('Bison', '2.7')] # the hydra launcher start's before LD_LIBRARY_PATH is forwarded, so we provide this hint on where to find some libs -preconfigopts = 'LDFLAGS="-Wl,-rpath,$EBROOTICC/compiler/lib/intel64 $LDFLAGS"' +preconfigopts = 'env LDFLAGS="-Wl,-rpath,$EBROOTICC/compiler/lib/intel64 $LDFLAGS"' moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.1.4-foss-2015b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.1.4-foss-2015b.eb index 9cac08c076..3b2363cdf9 100644 --- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.1.4-foss-2015b.eb +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.1.4-foss-2015b.eb @@ -25,7 +25,7 @@ dependencies = [ ('libmatheval', '1.1.11'), ] -preconfigopts = 'FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' configopts = ' --exec-prefix=%(installdir)s --enable-gsl' prebuildopts = 'source sourceme.sh && ' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.0-intel-2015b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.0-intel-2015b.eb index c6b4f4fabd..b547dd35fb 100644 --- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.0-intel-2015b.eb +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.0-intel-2015b.eb @@ -25,7 +25,7 @@ dependencies = [ ('libmatheval', '1.1.11'), ] -preconfigopts = 'FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' configopts = ' --exec-prefix=%(installdir)s --enable-gsl' prebuildopts = 'source sourceme.sh && ' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-foss-2015b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-foss-2015b.eb index f3480b9f42..2be6013ea4 100644 --- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-foss-2015b.eb +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-foss-2015b.eb @@ -25,7 +25,7 @@ dependencies = [ ('libmatheval', '1.1.11'), ] -preconfigopts = 'FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' configopts = ' --exec-prefix=%(installdir)s --enable-gsl' prebuildopts = 'source sourceme.sh && ' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-intel-2015b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-intel-2015b.eb index a8664f7399..c2a88ca7fa 100644 --- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-intel-2015b.eb +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.2.1-intel-2015b.eb @@ -25,7 +25,7 @@ dependencies = [ ('libmatheval', '1.1.11'), ] -preconfigopts = 'FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' configopts = ' --exec-prefix=%(installdir)s --enable-gsl' prebuildopts = 'source sourceme.sh && ' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.8-ictce-7.1.2.eb b/easybuild/easyconfigs/p/Python/Python-2.7.8-ictce-7.1.2.eb index bcf88e98c9..a7caba4fae 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.8-ictce-7.1.2.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.8-ictce-7.1.2.eb @@ -14,7 +14,7 @@ source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] sources = [SOURCE_TGZ] configopts = ' --enable-unicode=ucs4 ' -preconfigopts = ' LDFLAGS="-lstdc++" ' +preconfigopts = 'env LDFLAGS="-lstdc++" ' # libffi build in python is still broken, see http://bugs.python.org/issue4130 patches = ['python-2.7_libffi-include-xmmintrin.patch'] diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2015a.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2015a.eb index 4f0b4fda48..05baffbd16 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2015a.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.26-intel-2015a.eb @@ -34,7 +34,7 @@ dependencies = [ ] # use external ZLIB -preconfigopts = 'ZLIB=$EBROOTZLIB ' +preconfigopts = 'env ZLIB=$EBROOTZLIB ' # architecture arch = 'linuxx8664icc' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb index 59556c19fd..fc6f18713c 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -32,7 +32,7 @@ dependencies = [ ] # use external ZLIB -preconfigopts = 'ZLIB=$EBROOTZLIB ' +preconfigopts = 'env ZLIB=$EBROOTZLIB ' # architecture arch = 'linuxx8664icc' diff --git a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goalf-1.1.0-no-OFED.eb index 740784c812..795671412f 100644 --- a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goalf-1.1.0-no-OFED.eb @@ -29,7 +29,7 @@ source_urls = ['http://www.tbi.univie.ac.at/~ronny/RNA'] configopts = '--without-perl' # Alternatively, you may want to use the following to copy the perl-module to a "local" directory # Code NOT yet tested, therefor left here for future recycling -#preconfigopts = 'PERLPREFIX="/path/where/the/perl/module/shoud/go"' +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' sanity_check_paths = { 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', diff --git a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb index 327bd773eb..1e20cf23ec 100644 --- a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb @@ -29,7 +29,7 @@ source_urls = ['http://www.tbi.univie.ac.at/~ronny/RNA'] configopts = '--without-perl' # Alternatively, you may want to use the following to copy the perl-module to a "local" directory # Code NOT yet tested, therefor left here for future recycling -#preconfigopts = 'PERLPREFIX="/path/where/the/perl/module/shoud/go"' +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' sanity_check_paths = { 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', diff --git a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-4.0.6.eb b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-4.0.6.eb index 375b58016f..b7723d7af3 100644 --- a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-4.0.6.eb @@ -31,7 +31,7 @@ patches = ['ViennaRNA_ictce-pragma.patch'] configopts = '--without-perl' # Alternatively, you may want to use the following to copy the perl-module to a "local" directory # Code NOT yet tested, therefor left here for future recycling -#preconfigopts = 'PERLPREFIX="/path/where/the/perl/module/shoud/go"' +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' sanity_check_paths = { 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', diff --git a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb index 316c43df98..a66be3332b 100644 --- a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb @@ -32,7 +32,7 @@ patches = ['ViennaRNA_ictce-pragma.patch'] configopts = '--without-perl' # Alternatively, you may want to use the following to copy the perl-module to a "local" directory # Code NOT yet tested, therefor left here for future recycling -#preconfigopts = 'PERLPREFIX="/path/where/the/perl/module/shoud/go"' +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' sanity_check_paths = { 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', diff --git a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb index d9a8ebec92..664ec56172 100644 --- a/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb @@ -31,7 +31,7 @@ patches = ['ViennaRNA-2.1.6_ictce.patch'] configopts = '--without-perl' # Alternatively, you may want to use the following to copy the perl-module to a "local" directory # Code NOT yet tested, therefor left here for future recycling -#preconfigopts = 'PERLPREFIX="/path/where/the/perl/module/shoud/go"' +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' sanity_check_paths = { 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', -- GitLab From 53eadadc575930bd0d5729d2239c3df8d70316fc Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 10:16:47 +0200 Subject: [PATCH 592/732] add easyconfig ncbi-vdb-2.5.8-1-intel-2016a.eb --- .../ncbi-vdb/ncbi-vdb-2.5.8-1-intel-2016a.eb | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.5.8-1-intel-2016a.eb diff --git a/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.5.8-1-intel-2016a.eb b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.5.8-1-intel-2016a.eb new file mode 100644 index 0000000000..4197805f9e --- /dev/null +++ b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.5.8-1-intel-2016a.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'ncbi-vdb' +version = '2.5.8-1' + +homepage = 'https://github.com/ncbi/ncbi-vdb' +description = """The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for + using data in the INSDC Sequence Read Archives.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://github.com/ncbi/ncbi-vdb/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('libxml2', '2.9.3'), + ('file', '5.25'), # provides libmagic + ('HDF5', '1.8.16'), + ('NGS', '1.2.3'), +] + +# override default of using $HOME/ncbi-outdir +configopts = "--build-prefix=%(builddir)s/ncbi-outdir " + +configopts += "--with-ngs-sdk-prefix=$EBROOTNGS --with-ngs-java-prefix=$EBROOTNGS " +configopts += "--with-hdf5-prefix=$EBROOTHDF5 --with-xml2-prefix=$EBROOTLIBXML2" + +parallel = 1 + +sanity_check_paths = { + 'files': ['include/ncbi-vdb/NGS.hpp', ('lib/libncbi-vdb.%s' % SHLIB_EXT, 'lib64/libncbi-vdb.%s' % SHLIB_EXT), + ('lib/libncbi-wvdb.%s' % SHLIB_EXT, 'lib64/libncbi-wvdb.%s' % SHLIB_EXT), + ('lib/libncbi-ngs-c++.a', 'lib64/libncbi-ngs-c++.a'), ('lib/libncbi-vdb.a', 'lib64/libncbi-vdb.a'), + ('lib/libncbi-wvdb.a', 'lib64/libncbi-wvdb.a')], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 0af7e722e8f3aa0b28b12b62424772425ad587bf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 11:57:16 +0200 Subject: [PATCH 593/732] add easyconfig HISAT2-2.0.3-beta-intel-2016a.eb --- .../h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb diff --git a/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb new file mode 100644 index 0000000000..c08c2f92a9 --- /dev/null +++ b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'MakeCp' + +name = 'HISAT2' +version = '2.0.3-beta' + +homepage = 'https://ccb.jhu.edu/software/hisat2/index.shtml' +description = """HISAT2 is a fast and sensitive alignment program for mapping next-generation sequencing reads + (both DNA and RNA) against the general human population (as well as against a single reference genome).""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = ['ftp://ftp.ccb.jhu.edu/pub/infphilo/%(namelower)s/downloads/'] + +checksums = ['deb29e32e48045b2f970fb999946b411'] + +dependencies = [ + ('NGS', '1.2.3'), + ('ncbi-vdb', '2.5.8-1'), +] + +buildopts = "USE_SRA=1 NCBI_NGS_DIR=$EBROOTNGS NCBI_VDB_DIR=$EBROOTNCBIMINUSVDB" + +executables = ['hisat2', 'hisat2-align-l', 'hisat2-align-s', 'hisat2-build', 'hisat2-build-l', 'hisat2-build-s', + 'hisat2-inspect', 'hisat2-inspect-s', 'hisat2-inspect-l'] +files_to_copy = [(executables, 'bin')] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in executables], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From e0707b966ea23e736726488c4039e47960fc9bbb Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 12:22:31 +0200 Subject: [PATCH 594/732] modify easyconfig HISAT2-2.0.3-beta-intel-2016a.eb --- easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb index c08c2f92a9..ab9ee05adb 100644 --- a/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb +++ b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.0.3-beta-intel-2016a.eb @@ -19,7 +19,7 @@ dependencies = [ ('ncbi-vdb', '2.5.8-1'), ] -buildopts = "USE_SRA=1 NCBI_NGS_DIR=$EBROOTNGS NCBI_VDB_DIR=$EBROOTNCBIMINUSVDB" +buildopts = "USE_SRA=1 NCBI_NGS_DIR=$EBROOTNGS NCBI_VDB_DIR=$EBROOTNCBIMINVDB" executables = ['hisat2', 'hisat2-align-l', 'hisat2-align-s', 'hisat2-build', 'hisat2-build-l', 'hisat2-build-s', 'hisat2-inspect', 'hisat2-inspect-s', 'hisat2-inspect-l'] -- GitLab From 3120311ff75bf2561aa7b6cfee5f6f3456966d47 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 12:47:43 +0200 Subject: [PATCH 595/732] {bio}[intel/2016a] NGS-Python 1.2.3 --- ...-Python-1.2.3-intel-2016a-Python-2.7.11.eb | 46 +++++++++++++++++++ .../NGS-Python-1.2.3_fix-prefix.patch | 13 ++++++ 2 files changed, 59 insertions(+) create mode 100644 easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3_fix-prefix.patch diff --git a/easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..94dc61a1a7 --- /dev/null +++ b/easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,46 @@ +easyblock = 'ConfigureMake' + +name = 'NGS-Python' +version = '1.2.3' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/ncbi/ngs' +description = """NGS is a new, domain-specific API for accessing reads, alignments and pileups produced from + Next Generation Sequencing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://github.com/ncbi/ngs/archive/'] +sources = ['%(version)s.tar.gz'] + +patches = ['NGS-Python-%(version)s_fix-prefix.patch'] + +dependencies = [ + ('Python', '2.7.11'), + ('NGS', version), + ('ncbi-vdb', '2.5.8-1'), +] + +preconfigopts = "cd ngs-python && " + +# override default of using $HOME/ncbi-outdir +configopts = "--build-prefix=%(builddir)s/ncbi-outdir " + +configopts += "--with-ngs-sdk-prefix=$EBROOTNGS " +configopts += "--with-ncbi-vdb-prefix=$EBROOTNCBIMINVDB" + +buildopts = 'CC="$CC -c" CPP="$CXX" CP="$CXX -c" -C ngs-python' +installopts = "-C ngs-python" + +parallel = 1 + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python2.7/site-packages', 'share/examples-python'], +} + +sanity_check_commands = [('python', "-c 'import ngs'")] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3_fix-prefix.patch b/easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3_fix-prefix.patch new file mode 100644 index 0000000000..60411ef541 --- /dev/null +++ b/easybuild/easyconfigs/n/NGS-Python/NGS-Python-1.2.3_fix-prefix.patch @@ -0,0 +1,13 @@ +correctly specify prefix to install NGS-Python package to +author: Kenneth Hoste (HPC-UGent) +--- ngs-1.2.3/ngs-python/Makefile.python.orig 2016-03-31 12:34:54.124551782 +0200 ++++ ngs-1.2.3/ngs-python/Makefile.python 2016-03-31 12:37:01.515699327 +0200 +@@ -82,7 +82,7 @@ + + else + @ echo "Installing ngs package..." +- @ python setup.py -q install --user ++ @ python setup.py -q install --prefix $(INST_PYTHONDIR) + endif + + ifneq (, $(NGS_LIBDIR)) -- GitLab From af36210e03039665d0ac97e321a93585e12c0f2a Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 12:11:56 +0100 Subject: [PATCH 596/732] Add explicit Python dep and rename to reflect that --- ...6.3-foss-2015b.eb => RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb} | 1 + 1 file changed, 1 insertion(+) rename easybuild/easyconfigs/r/RSeQC/{RSeQC-2.6.3-foss-2015b.eb => RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb} (98%) diff --git a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb similarity index 98% rename from easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb rename to easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb index c33eb72992..4fc2b27c34 100644 --- a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b.eb +++ b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb @@ -26,6 +26,7 @@ versionsuffix = '-%s-%s' % (python, pyver) dependencies = [ ('R', '3.2.3'), + (python, pyver), ('numpy', '1.10.1', versionsuffix), ] -- GitLab From 311923d8aa7e6717ee43fa4414580f5e4cf9f605 Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Thu, 31 Mar 2016 13:11:59 +0200 Subject: [PATCH 597/732] Use `env` wherever `preinstallopts is used to set environmental variables. --- .../p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb index 699eafed53..ab6efabad7 100644 --- a/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/p4vasp/p4vasp-0.3.29-intel-2016a-Python-2.7.11.eb @@ -22,7 +22,7 @@ dependencies = [ skipsteps = ['configure', 'build'] # redefine $HOME to specify installation prefix O_o -preinstallopts = "HOME=%(installdir)s make local &&" +preinstallopts = "env HOME=%(installdir)s make local &&" sanity_check_paths = { 'files': ['p4vasp/bin/p4v', 'p4vasp/lib/libODP.a', 'p4vasp/lib/libp4vasp.a'], -- GitLab From 2fb5725bfc6410ec511fdfa3183ba32d6161dd14 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 12:47:26 +0100 Subject: [PATCH 598/732] Fix Subread filename to match version --- ...bread-1.5.0p1-foss-2015b.eb => Subread-1.5.0-p1-foss-2015b.eb} | 0 ...bread-1.5.0p1-foss-2016a.eb => Subread-1.5.0-p1-foss-2016a.eb} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/s/Subread/{Subread-1.5.0p1-foss-2015b.eb => Subread-1.5.0-p1-foss-2015b.eb} (100%) rename easybuild/easyconfigs/s/Subread/{Subread-1.5.0p1-foss-2016a.eb => Subread-1.5.0-p1-foss-2016a.eb} (100%) diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb similarity index 100% rename from easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2015b.eb rename to easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2016a.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb similarity index 100% rename from easybuild/easyconfigs/s/Subread/Subread-1.5.0p1-foss-2016a.eb rename to easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb -- GitLab From 476581ab23b45a00bb8d8a5bd7e94fad980ed7be Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 14:42:24 +0200 Subject: [PATCH 599/732] {tools}[intel/2016a] SCOOP 0.7.1.1 w/ Python 2.7.11 --- ...reenlet-0.4.9-intel-2016a-Python-2.7.11.eb | 30 ++++++++++++++++ .../libsodium/libsodium-1.0.6-intel-2016a.eb | 20 +++++++++++ .../o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb | 28 +++++++++++++++ ...Q-15.2.0-intel-2016a-Python-2.7.11-zmq4.eb | 28 +++++++++++++++ ...SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb | 27 ++++++++++++++ .../util-linux-2.27.1-intel-2016a.eb | 33 +++++++++++++++++ .../z/ZeroMQ/ZeroMQ-4.1.4-intel-2016a.eb | 35 +++++++++++++++++++ 7 files changed, 201 insertions(+) create mode 100644 easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/l/libsodium/libsodium-1.0.6-intel-2016a.eb create mode 100644 easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb create mode 100644 easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-2.7.11-zmq4.eb create mode 100644 easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/u/util-linux/util-linux-2.27.1-intel-2016a.eb create mode 100644 easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.1.4-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..c8fb9489f2 --- /dev/null +++ b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = "PythonPackage" + +name = 'Greenlet' +version = '0.4.9' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/python-greenlet/greenlet' +description = """The greenlet package is a spin-off of Stackless, a version of CPython that +supports micro-threads called "tasklets". Tasklets run pseudo-concurrently (typically in a single +or a few OS-level threads) and are synchronized with data exchanges on "channels". +A "greenlet", on the other hand, is a still more primitive notion of micro-thread with no implicit +scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_ZIP] + +patches = ['Greenlet-0.4.2_icc_no_amd64_predefined_in_prepocessor.patch'] + +dependencies = [('Python', '2.7.11')] + +sanity_check_paths = { + 'files': ['include/python%(pyshortver)s/greenlet/greenlet.h', + 'lib/python%(pyshortver)s/site-packages/greenlet.so'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libsodium/libsodium-1.0.6-intel-2016a.eb b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.6-intel-2016a.eb new file mode 100644 index 0000000000..8cd02bafe0 --- /dev/null +++ b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.6-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libsodium' +version = '1.0.6' + +homepage = 'http://doc.libsodium.org/' +description = """Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, + password hashing and more.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://download.libsodium.org/libsodium/releases/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['include/sodium.h', 'lib/libsodium.so', 'lib/libsodium.a'], + 'dirs': ['include/sodium', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb new file mode 100644 index 0000000000..7d687c23fb --- /dev/null +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.so', 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-2.7.11-zmq4.eb b/easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-2.7.11-zmq4.eb new file mode 100644 index 0000000000..3b84d83e0c --- /dev/null +++ b/easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-2.7.11-zmq4.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'PyZMQ' +version = '15.2.0' +zmqversion = '4.1.4' +versionsuffix = '-Python-%%(pyver)s-zmq%s' % zmqversion.split('.')[0] + +homepage = 'http://www.zeromq.org/bindings:python' +description = """Python bindings for ZeroMQ""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('ZeroMQ', zmqversion), +] + +options = {'modulename': 'zmq'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/zmq'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..159567d24d --- /dev/null +++ b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'SCOOP' +version = '0.7.1.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://code.google.com/p/scoop/' +description = """SCOOP (Scalable COncurrent Operations in Python) is a distributed task module + allowing concurrent parallel programming on various environments, from heterogeneous grids to supercomputers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('Greenlet', '0.4.9', versionsuffix), + ('PyZMQ', '15.2.0', versionsuffix + '-zmq4'), +] + +sanity_check_paths = { + 'files': ['lib/python%(pyshortver)s/site-packages/scoop-%(version)s.release-py%(pyshortver)s.egg'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.27.1-intel-2016a.eb b/easybuild/easyconfigs/u/util-linux/util-linux-2.27.1-intel-2016a.eb new file mode 100644 index 0000000000..fa18d8bb1d --- /dev/null +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.27.1-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.27.1' + +homepage = 'http://www.kernel.org/pub/linux/utils/util-linux' +description = """Set of Linux utilities""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] + +# disable account related utilities (they need OS dependant pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = "--disable-chfn-chsh --disable-login --disable-su " +configopts += "--disable-wall --disable-use-tty-group " +configopts += "--disable-makeinstall-chown --disable-makeinstall-setuid " +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +dependencies = [('ncurses', '6.0')] + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid', 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.1.4-intel-2016a.eb b/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.1.4-intel-2016a.eb new file mode 100644 index 0000000000..5eeb602737 --- /dev/null +++ b/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.1.4-intel-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'ZeroMQ' +version = '4.1.4' + +homepage = 'http://www.zeromq.org/' +description = """ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. + It gives you sockets that carry atomic messages across various transports like in-process, + inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, + pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered + products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous + message-processing tasks. It has a score of language APIs and runs on most operating systems.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://download.zeromq.org/'] +sources = [SOURCELOWER_TAR_GZ] + +# --with-pgm will use shipped OpenPGM (in foreign subdir) +configopts = '--with-pic --with-system-pgm ' +configopts += 'OpenPGM_CFLAGS="-I$EBROOTOPENPGM/include/pgm-${EBVERSIONOPENPGM%.*}" ' +configopts += 'OpenPGM_LIBS="-L$EBROOTOPENPGM/lib -lpgm -lrt -lpthread -lm" ' + +dependencies = [ + ('OpenPGM', '5.2.122'), + ('util-linux', '2.27.1'), + ('libsodium', '1.0.6'), +] + +sanity_check_paths = { + 'files': ['lib/libzmq.so', 'lib/libzmq.a'], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'devel' -- GitLab From 227f6059951a467bb27eecc6f54afda8284eef69 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 14:48:42 +0200 Subject: [PATCH 600/732] {tools}[intel/2016a] SCOOP 0.7.1.1 w/ Python 3.5.1 --- ...Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb | 30 +++++++++++++++++++ ...MQ-15.2.0-intel-2016a-Python-3.5.1-zmq4.eb | 28 +++++++++++++++++ .../SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb | 27 +++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb create mode 100644 easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-3.5.1-zmq4.eb create mode 100644 easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb diff --git a/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..26ba01fae4 --- /dev/null +++ b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,30 @@ +easyblock = "PythonPackage" + +name = 'Greenlet' +version = '0.4.9' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/python-greenlet/greenlet' +description = """The greenlet package is a spin-off of Stackless, a version of CPython that +supports micro-threads called "tasklets". Tasklets run pseudo-concurrently (typically in a single +or a few OS-level threads) and are synchronized with data exchanges on "channels". +A "greenlet", on the other hand, is a still more primitive notion of micro-thread with no implicit +scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_ZIP] + +patches = ['Greenlet-0.4.2_icc_no_amd64_predefined_in_prepocessor.patch'] + +dependencies = [('Python', '3.5.1')] + +sanity_check_paths = { + 'files': ['include/python%(pyshortver)s/greenlet/greenlet.h', + 'lib/python%(pyshortver)s/site-packages/greenlet.so'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-3.5.1-zmq4.eb b/easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-3.5.1-zmq4.eb new file mode 100644 index 0000000000..40389161f7 --- /dev/null +++ b/easybuild/easyconfigs/p/PyZMQ/PyZMQ-15.2.0-intel-2016a-Python-3.5.1-zmq4.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'PyZMQ' +version = '15.2.0' +zmqversion = '4.1.4' +versionsuffix = '-Python-%%(pyver)s-zmq%s' % zmqversion.split('.')[0] + +homepage = 'http://www.zeromq.org/bindings:python' +description = """Python bindings for ZeroMQ""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '3.5.1'), + ('ZeroMQ', zmqversion), +] + +options = {'modulename': 'zmq'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/zmq'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..8eac309517 --- /dev/null +++ b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'SCOOP' +version = '0.7.1.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://code.google.com/p/scoop/' +description = """SCOOP (Scalable COncurrent Operations in Python) is a distributed task module + allowing concurrent parallel programming on various environments, from heterogeneous grids to supercomputers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '3.5.1'), + ('Greenlet', '0.4.9', versionsuffix), + ('PyZMQ', '15.2.0', versionsuffix + '-zmq4'), +] + +sanity_check_paths = { + 'files': ['lib/python%(pyshortver)s/site-packages/scoop-%(version)s.release-py%(pyshortver)s.egg'], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From 31497fc893cc738df14f49f87e60e92868d78313 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 15:27:31 +0200 Subject: [PATCH 601/732] fix sanity check for SCOOP --- .../s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb index 8eac309517..21ced6bf47 100644 --- a/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb +++ b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-3.5.1.eb @@ -20,7 +20,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/python%(pyshortver)s/site-packages/scoop-%(version)s.release-py%(pyshortver)s.egg'], + 'files': ['lib/python%(pyshortver)s/site-packages/scoop-%(version)s-py%(pyshortver)s.egg'], 'dirs': [], } -- GitLab From 43ac5b3c6c64f1f65f61be34acdb65097e0a2ba1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 15:27:48 +0200 Subject: [PATCH 602/732] fix sanity check for SCOOP --- .../s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb index 159567d24d..eb5338d376 100644 --- a/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/s/SCOOP/SCOOP-0.7.1.1-intel-2016a-Python-2.7.11.eb @@ -20,7 +20,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['lib/python%(pyshortver)s/site-packages/scoop-%(version)s.release-py%(pyshortver)s.egg'], + 'files': ['lib/python%(pyshortver)s/site-packages/scoop-%(version)s-py%(pyshortver)s.egg'], 'dirs': [], } -- GitLab From 7f64fcc96a1ceb19d3f513d26b534cf3e9b36897 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 15:29:01 +0200 Subject: [PATCH 603/732] fix sanity check for Greenlet --- .../g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb index 26ba01fae4..0d6aba002e 100644 --- a/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb +++ b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb @@ -22,7 +22,7 @@ patches = ['Greenlet-0.4.2_icc_no_amd64_predefined_in_prepocessor.patch'] dependencies = [('Python', '3.5.1')] sanity_check_paths = { - 'files': ['include/python%(pyshortver)s/greenlet/greenlet.h', + 'files': ['include/python%(pyshortver)sm/greenlet/greenlet.h', 'lib/python%(pyshortver)s/site-packages/greenlet.so'], 'dirs': [], } -- GitLab From eb191c8e53282e75113408cb024eb7063c4df418 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 15:32:28 +0200 Subject: [PATCH 604/732] really fix sanity check for Greenlet --- .../g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb index 0d6aba002e..26eafeafb1 100644 --- a/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb +++ b/easybuild/easyconfigs/g/Greenlet/Greenlet-0.4.9-intel-2016a-Python-3.5.1.eb @@ -22,9 +22,8 @@ patches = ['Greenlet-0.4.2_icc_no_amd64_predefined_in_prepocessor.patch'] dependencies = [('Python', '3.5.1')] sanity_check_paths = { - 'files': ['include/python%(pyshortver)sm/greenlet/greenlet.h', - 'lib/python%(pyshortver)s/site-packages/greenlet.so'], - 'dirs': [], + 'files': ['include/python%(pyshortver)sm/greenlet/greenlet.h'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], } moduleclass = 'devel' -- GitLab From a671d34e8d9ffcacff21ea8076804301a2e037cd Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 16:24:05 +0200 Subject: [PATCH 605/732] don't hardcode .so in OpenPGM easyconfig --- easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb index 7d687c23fb..d391dfe9fd 100644 --- a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb @@ -21,7 +21,7 @@ configopts = '--with-pic' start_dir = 'pgm' sanity_check_paths = { - 'files': ['lib/libpgm.so', 'lib/libpgm.a'], + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], 'dirs': ['include'], } -- GitLab From 9771b3cbc1b41f77c6bc468f521a821c3b7c2b1c Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 18:00:48 +0200 Subject: [PATCH 606/732] add zlib as explicit dep in Tk easyconfigs --- easybuild/easyconfigs/t/Tk/Tk-8.5.12-foss-2014b.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.5.12-goalf-1.1.0-no-OFED.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.5.12-goolf-1.4.10.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.10.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.6.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-5.3.0.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.5.12-intel-2014b.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.5.15-ictce-5.3.0.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.6.1-ictce-5.3.0.eb | 5 ++++- easybuild/easyconfigs/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb | 1 + .../easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb | 1 + easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb | 1 + 29 files changed, 50 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-foss-2014b.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-foss-2014b.eb index 9ebfd37f5f..ff05f0890c 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-foss-2014b.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-foss-2014b.eb @@ -14,6 +14,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ('libX11', '1.6.2', '-Python-2.7.8'), ] diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goalf-1.1.0-no-OFED.eb index 5f035ccbf2..e28fd7a2dc 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goalf-1.1.0-no-OFED.eb @@ -12,7 +12,10 @@ toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.7'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goolf-1.4.10.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goolf-1.4.10.eb index 16d5293528..cbf7bcb4b2 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-goolf-1.4.10.eb @@ -12,7 +12,10 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.7'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.10.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.10.eb index 1415c70f4e..06a1978ba4 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.10.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.10.eb @@ -12,7 +12,10 @@ toolchain = {'name': 'ictce', 'version': '4.0.10'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.7'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.6.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.6.eb index 5c0a6ccd92..4798d6cf81 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-4.0.6.eb @@ -12,7 +12,10 @@ toolchain = {'name': 'ictce', 'version': '4.0.6'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.7'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-5.3.0.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-5.3.0.eb index f65e1a0e09..71f6f47992 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-ictce-5.3.0.eb @@ -12,7 +12,10 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.7'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-intel-2014b.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-intel-2014b.eb index 25372ffd8f..11e23b0c07 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.12-intel-2014b.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.12-intel-2014b.eb @@ -14,6 +14,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ('libX11', '1.6.2', '-Python-2.7.8'), ] diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.5.15-ictce-5.3.0.eb b/easybuild/easyconfigs/t/Tk/Tk-8.5.15-ictce-5.3.0.eb index 3231de70b9..8b45a8770e 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.5.15-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.5.15-ictce-5.3.0.eb @@ -12,7 +12,10 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.5'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.1-ictce-5.3.0.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.1-ictce-5.3.0.eb index a79397a5f8..60130e9216 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.1-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.1-ictce-5.3.0.eb @@ -13,7 +13,10 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} source_urls = ["http://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] -dependencies = [('Tcl', version)] +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.7'), +] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb index 602101704a..878cfecf53 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb index 8ff29d34a2..ac0d5ff0bc 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb index c34f24fd99..0cf00324c8 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb index 31e024fb43..aaa247a658 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb index a292e06eb8..0a860475e3 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb index cd4da6afb6..890bfc8cfe 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb index 025f5e6476..6550c8a427 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb index d841e7bd84..4762abfa09 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb @@ -15,6 +15,7 @@ sources = ['%(namelower)s%(version)s-src.tar.gz'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb index a8245c8580..684f3bddb6 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb index 05eafdb2e8..f077e32cc2 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb index da82b39576..9e3efc89f0 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb index c10f179e0c..89ecb3248a 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb index 7aa028f61c..5066a5847c 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb index b3fd0e9714..9419fc66d6 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb index 7feeb34477..60f899a584 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb index 4630a6a0f4..53f70e54d2 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb index 6e8ab4a8ff..85504f8688 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb index 6b8350fb20..b7e6c77202 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb index 8ada7cd405..c0f2464a6d 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-libX11-1.6.3.eb @@ -24,6 +24,7 @@ builddependencies = [ dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), (libx11, libxver), ('libXt', '1.1.5'), ('libXext', '1.3.3'), diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb index 9f46cbbff7..9eede49210 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb @@ -17,6 +17,7 @@ patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] dependencies = [ ('Tcl', version), + ('zlib', '1.2.8'), ] configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' -- GitLab From ac6e72b23b9ffd5642a04710023df6f515bcfd9a Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Thu, 31 Mar 2016 13:05:24 +0200 Subject: [PATCH 607/732] Use `env` wherever `prebuildopts is used to set environmental variables. --- .../b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb | 2 +- .../b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb | 2 +- .../b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb | 2 +- easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb | 2 +- easybuild/easyconfigs/f/FDS/FDS-6.3.0-intel-2015b.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb | 2 +- easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb | 2 +- .../m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb | 2 +- easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-foss-2015a.eb | 2 +- easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-intel-2015a.eb | 2 +- easybuild/easyconfigs/m/motif/motif-2.2.4-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/m/motif/motif-2.2.4-ictce-4.1.13.eb | 2 +- .../easyconfigs/m/multitail/multitail-6.2.1-intel-2015a.eb | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb index 35e328daad..c3ffc6e24a 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2-binutils-2.25.eb @@ -22,7 +22,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built # --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb index 6c55f76694..418f81f5f1 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.2.eb @@ -21,7 +21,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built # --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb index 6f9a318360..2e680c9ce3 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3-binutils-2.25.eb @@ -22,7 +22,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built # --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb index ef80ad6bb5..b6d6a68fc6 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-4.9.3.eb @@ -21,7 +21,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built # --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb index b8fa0b77ca..6858b124b1 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCC-5.1.0-binutils-2.25.eb @@ -22,7 +22,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built # --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb index 9ec199023d..5378940837 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb @@ -23,7 +23,7 @@ builddependencies = [ # statically link with zlib, to avoid runtime dependency on zlib preconfigopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' -prebuildopts = 'LIBS="$EBROOTZLIB/lib/libz.a"' +prebuildopts = 'env LIBS="$EBROOTZLIB/lib/libz.a"' # make sure that system libraries are also considered by ld and ld.gold is also built # --enable-plugins should be used whenever --enable-gold is used, see http://llvm.org/docs/GoldPlugin.html diff --git a/easybuild/easyconfigs/f/FDS/FDS-6.3.0-intel-2015b.eb b/easybuild/easyconfigs/f/FDS/FDS-6.3.0-intel-2015b.eb index 24f4ba27ec..7278d23d80 100644 --- a/easybuild/easyconfigs/f/FDS/FDS-6.3.0-intel-2015b.eb +++ b/easybuild/easyconfigs/f/FDS/FDS-6.3.0-intel-2015b.eb @@ -23,7 +23,7 @@ start_dir = 'FDS_Compilation' skipsteps = ['configure', 'install'] buildininstalldir = True -prebuildopts = 'FFLAGS="$FFLAGS -fpp"' +prebuildopts = 'env FFLAGS="$FFLAGS -fpp"' modextrapaths = {'PATH': 'FDS_Compilation'} diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb index 2c72b2e6f5..17513817cb 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb @@ -59,7 +59,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --disable-egl" # package-config files for os dependencies are in an os specific place #preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb index 1a69d47441..1e7fe202e8 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb @@ -57,7 +57,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disabl #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb index 9d960059a5..43f9b4f3d2 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb @@ -56,7 +56,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disabl #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb index 73b355c719..7fe4602968 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb @@ -56,7 +56,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disabl #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.so', 'lib/libOSMesa.so', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb index 72d772f450..3ddc492ea7 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb @@ -53,7 +53,7 @@ configopts += " --with-osmesa-bits=32 --enable-texture-float " #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb index 3ee16e73ea..3fe5e0bc06 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -53,7 +53,7 @@ configopts += " --with-osmesa-bits=32 --enable-texture-float " #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb index 0cd27019ac..442c4168fe 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -44,7 +44,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb index a724cb0c52..82b8af7b4f 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb @@ -43,7 +43,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb index 70a2816d6b..7c42ab711a 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb @@ -44,7 +44,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb index 0371483898..ed80bbbf2f 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb @@ -44,7 +44,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb index 7e87cc2bd4..663c38a45e 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb @@ -45,7 +45,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb index 9c7388d824..3df094cda8 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb @@ -45,7 +45,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-foss-2015a.eb b/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-foss-2015a.eb index 3f8c039cdb..0df4d93ef0 100644 --- a/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-foss-2015a.eb +++ b/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-foss-2015a.eb @@ -15,7 +15,7 @@ sources = ['%(name)s.v%(version)s.tar.gz'] dependencies = [('zlib', '1.2.8')] -prebuildopts = 'CFLAGS="$CFLAGS -L$EBROOTZLIB/lib"' +prebuildopts = 'env CFLAGS="$CFLAGS -L$EBROOTZLIB/lib"' buildopts = 'CC="$CC" CXX="$CXX" F77="$F77" OPTFLAG_OPT="$CFLAGS"' files_to_copy = [(['bin/Minimac3'], 'bin')] diff --git a/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-intel-2015a.eb b/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-intel-2015a.eb index e493e1ad48..5bb00f47ad 100644 --- a/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-intel-2015a.eb +++ b/easybuild/easyconfigs/m/Minimac3/Minimac3-1.0.10-intel-2015a.eb @@ -15,7 +15,7 @@ sources = ['%(name)s.v%(version)s.tar.gz'] dependencies = [('zlib', '1.2.8')] -prebuildopts = 'CFLAGS="$CFLAGS -wd751 -L$EBROOTZLIB/lib"' +prebuildopts = 'env CFLAGS="$CFLAGS -wd751 -L$EBROOTZLIB/lib"' buildopts = 'CC="$CC" CXX="$CXX" F77="$F77" OPTFLAG_OPT="$CFLAGS"' files_to_copy = [(['bin/Minimac3'], 'bin')] diff --git a/easybuild/easyconfigs/m/motif/motif-2.2.4-goolf-1.4.10.eb b/easybuild/easyconfigs/m/motif/motif-2.2.4-goolf-1.4.10.eb index 6d97e3c57a..ea8c9d49ac 100644 --- a/easybuild/easyconfigs/m/motif/motif-2.2.4-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/m/motif/motif-2.2.4-goolf-1.4.10.eb @@ -38,7 +38,7 @@ builddependencies = [ ] # make has problems with utf8 -prebuildopts = "LANG=C " +prebuildopts = "env LANG=C " # motif ships a broken automake and libtool preconfigopts = "rm -f libtool install-sh missing depcomp config.guess config.sub && " diff --git a/easybuild/easyconfigs/m/motif/motif-2.2.4-ictce-4.1.13.eb b/easybuild/easyconfigs/m/motif/motif-2.2.4-ictce-4.1.13.eb index 36d9829a6d..4476f0d922 100644 --- a/easybuild/easyconfigs/m/motif/motif-2.2.4-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/m/motif/motif-2.2.4-ictce-4.1.13.eb @@ -38,7 +38,7 @@ dependencies = [ ] # make has problems with utf8 -prebuildopts = "LANG=C " +prebuildopts = "env LANG=C " # motif ships a broken automake and libtool preconfigopts = "rm -f libtool install-sh missing depcomp config.guess config.sub && " diff --git a/easybuild/easyconfigs/m/multitail/multitail-6.2.1-intel-2015a.eb b/easybuild/easyconfigs/m/multitail/multitail-6.2.1-intel-2015a.eb index e8dddb718d..eb272b1b70 100644 --- a/easybuild/easyconfigs/m/multitail/multitail-6.2.1-intel-2015a.eb +++ b/easybuild/easyconfigs/m/multitail/multitail-6.2.1-intel-2015a.eb @@ -21,7 +21,7 @@ files_to_copy = [ dependencies = [("ncurses", "5.9")] -prebuildopts = 'DESTDIR=%(installdir)s ' +prebuildopts = 'env DESTDIR=%(installdir)s ' sanity_check_paths = { 'files': ['bin/multitail'], -- GitLab From 27192c656261f1cfaea193869f34d7afdd7a4d81 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 18:28:35 +0200 Subject: [PATCH 608/732] don't hard overwrite $CPATH in prebuildopts in Mesa easyconfig files --- .../easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb | 2 +- easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb | 2 +- .../m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb | 2 +- .../easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb index 17513817cb..3f895315b2 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb @@ -59,7 +59,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --disable-egl" # package-config files for os dependencies are in an os specific place #preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb index 1e7fe202e8..592c4a1182 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb @@ -57,7 +57,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disabl #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb index 43f9b4f3d2..2bd0ff0f94 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb @@ -56,7 +56,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disabl #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb index 7fe4602968..a22cf02d69 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb @@ -56,7 +56,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disabl #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.so', 'lib/libOSMesa.so', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb index 3ddc492ea7..171b47710c 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb @@ -53,7 +53,7 @@ configopts += " --with-osmesa-bits=32 --enable-texture-float " #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb index 3fe5e0bc06..3282ad740c 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -53,7 +53,7 @@ configopts += " --with-osmesa-bits=32 --enable-texture-float " #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb index 442c4168fe..c47447d239 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -44,7 +44,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb index 82b8af7b4f..57483e1d4f 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-goolf-1.4.10-Python-2.7.3.eb @@ -43,7 +43,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb index 7c42ab711a..fa63661948 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.0.6-Python-2.7.3.eb @@ -44,7 +44,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb index ed80bbbf2f..3d2d9d7e93 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-4.1.13-Python-2.7.3.eb @@ -44,7 +44,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb index 663c38a45e..ac83c1243a 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.3.0-Python-2.7.3.eb @@ -45,7 +45,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb index 3df094cda8..810e10d3bb 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-7.11.2-ictce-5.5.0-Python-2.7.6.eb @@ -45,7 +45,7 @@ configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demo # package-config files for os dependencies are in an os specific place preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' -prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libGLU.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', -- GitLab From 15c44bd734ed1e058bd228a60cd39beab076ee84 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 17:36:49 +0100 Subject: [PATCH 609/732] Style fixes for Subread --- easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb | 3 +-- easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb index 4fd69f051e..4df6c05b5e 100644 --- a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb @@ -14,12 +14,11 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = ['%(namelower)s-%(version)s-source.tar.gz'] source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] -prebuildopts = 'cd src;' +startdir = 'src &&' buildopts = '-f Makefile.Linux' files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] - sanity_check_paths = { 'files': ['LICENSE', 'README.txt'], 'dirs': ['bin', 'annotation', 'doc', 'src', 'test'] diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb index 1312eb0648..f0d2074639 100644 --- a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb @@ -14,12 +14,11 @@ toolchain = {'name': 'foss', 'version': '2016a'} sources = ['%(namelower)s-%(version)s-source.tar.gz'] source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] -prebuildopts = 'cd src;' +start_dir = 'src &&' buildopts = '-f Makefile.Linux' files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] - sanity_check_paths = { 'files': ['LICENSE', 'README.txt'], 'dirs': ['bin', 'annotation', 'doc', 'src', 'test'] -- GitLab From 7fc04b6a034430ccc672bcc4fd954b7efd947704 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 18:53:50 +0200 Subject: [PATCH 610/732] use existing libxml2 easyblock, use %(pyver)s --- .../l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb index 0237c8f83b..0df5cbd957 100644 --- a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb @@ -1,7 +1,6 @@ -easyblock = 'ConfigureMake' - name = 'libxml2' version = '2.9.3' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://xmlsoft.org/' description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable @@ -18,13 +17,9 @@ sources = [SOURCELOWER_TAR_GZ] configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' -pythonver = '2.7.11' -pythonshortver = '.'.join(pythonver.split('.')[:2]) -versionsuffix = '-%s-%s' % ('Python', pythonver) - dependencies = [ ('zlib', '1.2.8'), - ('Python', pythonver), + ('Python', '2.7.11'), ] moduleclass = 'lib' -- GitLab From 0d6511bd1d3ba7dcafa852dc033de9aff737a052 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 18:05:34 +0100 Subject: [PATCH 611/732] Use new-style pyver and make sanity_check paths more specific --- .../r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb index 4fc2b27c34..a177369637 100644 --- a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb @@ -6,6 +6,7 @@ easyblock = 'PythonPackage' name = 'RSeQC' version = '2.6.3' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://rseqc.sourceforge.net/' description = """RSeQC provides a number of useful modules that can @@ -20,21 +21,17 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = [SOURCE_TAR_GZ] source_urls = [SOURCEFORGE_SOURCE] -python = 'Python' -pyver = '2.7.10' -versionsuffix = '-%s-%s' % (python, pyver) - dependencies = [ ('R', '3.2.3'), - (python, pyver), - ('numpy', '1.10.1', versionsuffix), + ('Python', '2.7.10'), ] runtest = "python setup.py test" sanity_check_paths = { - 'files': [], - 'dirs': ["bin", "lib"] + 'files': ['bin/bam_stat.py', 'bin/overlay_bigwig.py', + 'bin/split_paired_bam.py'], + 'dirs': ['lib'] } options = {'modulename': 'qcmodule'} -- GitLab From e991040ec94fd7b22bab054ff840999434975cd3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 31 Mar 2016 19:06:51 +0200 Subject: [PATCH 612/732] consistently specify to use -fgnu89-inline flag in M4 1.4.17 easyconfigs --- easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.7.2.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.2.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.4.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2014b.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015a.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015b.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.4.0.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.5.0.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-7.1.2.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2014b.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015a.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015b.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2016a.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17-intel-para-2014.12.eb | 2 +- easybuild/easyconfigs/m/M4/M4-1.4.17.eb | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb index 31c851b3d9..8398e40d06 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.06.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'CrayGNU', 'version': '2015.06'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb index 3010711346..b84761b602 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-CrayGNU-2015.11.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'CrayGNU', 'version': '2015.11'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.7.2.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.7.2.eb index b62284872a..b4bb4c955d 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.7.2.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.7.2.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GCC', 'version': '4.7.2'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.2.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.2.eb index c2e9e52426..5df1dda5a3 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.2.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.2.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GCC', 'version': '4.8.2'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.4.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.4.eb index 90c7eb9017..f406268a87 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.4.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.8.4.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GCC', 'version': '4.8.4'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb index a79d153988..560606e07a 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb @@ -16,7 +16,7 @@ source_urls = [GNU_SOURCE] # use same binutils version that was used when building GCC toolchain builddependencies = [('binutils', '2.25', '', True)] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2.eb index 372d1c346d..00b1eb05a8 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.2.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GCC', 'version': '4.9.2'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb index 0fa72c61c9..a939e01023 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb index 89984f9baf..64c98aad33 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb @@ -16,7 +16,7 @@ source_urls = [GNU_SOURCE] # use same binutils version that was used when building GCC toolchain builddependencies = [('binutils', '2.25', '', True)] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3.eb index 52fc84e052..745063ebad 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-4.9.3.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GCC', 'version': '4.9.3'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb index e856a3fd43..a95ac9f601 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb @@ -16,7 +16,7 @@ source_urls = [GNU_SOURCE] # use same binutils version that was used when building GCC toolchain builddependencies = [('binutils', '2.25', '', True)] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb index e2764250bf..134d181212 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GNU', 'version': '4.9.2-2.25'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb index ad83091b2b..25f9aacace 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb index e83b261924..5ca90d16a7 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2014b.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2014b.eb index 94ec58056b..4abe05a74f 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2014b.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2014b.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'foss', 'version': '2014b'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015a.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015a.eb index 411820a76b..f58173164e 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015a.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015a.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'foss', 'version': '2015a'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015b.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015b.eb index b66775c7a6..6a7048dcf1 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015b.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-foss-2015b.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-gimkl-2.11.5.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-gimkl-2.11.5.eb index 42808d7b77..aa806c1087 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-gimkl-2.11.5.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.4.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.4.0.eb index 3b4187acd1..304b160de5 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.4.0.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.4.0.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'ictce', 'version': '5.4.0'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.5.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.5.0.eb index e8d95f1f54..46c1b375cb 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-5.5.0.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'ictce', 'version': '5.5.0'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-7.1.2.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-7.1.2.eb index 68b3d851f6..0289e6c40e 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-7.1.2.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-ictce-7.1.2.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'ictce', 'version': '7.1.2'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2014b.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2014b.eb index d6a8a6e705..857e1b9ffc 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2014b.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2014b.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015a.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015a.eb index f842bdc90a..a805266216 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015a.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015a.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015b.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015b.eb index 292da57c7e..6746b4b3a4 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015b.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2015b.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2016a.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2016a.eb index 519be6b6b3..4472772492 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2016a.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-2016a.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-para-2014.12.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-para-2014.12.eb index 37a6837b2b..104ad6a3bd 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-para-2014.12.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17-intel-para-2014.12.eb @@ -13,7 +13,7 @@ toolchain = {'name': 'intel-para', 'version': '2014.12'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.17.eb b/easybuild/easyconfigs/m/M4/M4-1.4.17.eb index 3f396ce26b..2bc8d9c022 100644 --- a/easybuild/easyconfigs/m/M4/M4-1.4.17.eb +++ b/easybuild/easyconfigs/m/M4/M4-1.4.17.eb @@ -15,7 +15,7 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} sources = [SOURCELOWER_TAR_GZ] source_urls = [GNU_SOURCE] -configopts = "--enable-cxx" +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" sanity_check_paths = { 'files': ["bin/m4"], -- GitLab From 2469d572c2a76c37fc5fb46c174678e48b6c85c8 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 18:32:03 +0100 Subject: [PATCH 613/732] Add R suffix and fix sanity_check style --- ....10.eb => RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename easybuild/easyconfigs/r/RSeQC/{RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb => RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb} (89%) diff --git a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb similarity index 89% rename from easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb rename to easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb index a177369637..58d91e5c53 100644 --- a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10.eb +++ b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb @@ -7,6 +7,7 @@ easyblock = 'PythonPackage' name = 'RSeQC' version = '2.6.3' versionsuffix = '-Python-%(pyver)s' +versionsuffix += '-R-%(rver)s' homepage = 'http://rseqc.sourceforge.net/' description = """RSeQC provides a number of useful modules that can @@ -29,8 +30,7 @@ dependencies = [ runtest = "python setup.py test" sanity_check_paths = { - 'files': ['bin/bam_stat.py', 'bin/overlay_bigwig.py', - 'bin/split_paired_bam.py'], + 'files': ['bin/bam_stat.py', 'bin/overlay_bigwig.py', 'bin/split_paired_bam.py'], 'dirs': ['lib'] } -- GitLab From 6027c4ad03cf95b635270fa365e376735c183426 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Thu, 31 Mar 2016 13:47:56 -0500 Subject: [PATCH 614/732] Renamed Easyconfig file from gtool-0.7.5-linux_x86_64.eb to gtool-0.7.5_linux_x86_64.eb --- .../{gtool-0.7.5-linux_x86_64.eb => gtool-0.7.5_linux_x86_64.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/g/gtool/{gtool-0.7.5-linux_x86_64.eb => gtool-0.7.5_linux_x86_64.eb} (100%) diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb similarity index 100% rename from easybuild/easyconfigs/g/gtool/gtool-0.7.5-linux_x86_64.eb rename to easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb -- GitLab From 61839ae12b5c739ec3e36b4ee971cd5e4da2d3f8 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Thu, 31 Mar 2016 14:18:10 -0500 Subject: [PATCH 615/732] Renamed Easyconfig file from shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb to shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb --- ...-linux_x86_64.eb => shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/s/shapeit/{shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb => shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb} (100%) diff --git a/easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb similarity index 100% rename from easybuild/easyconfigs/s/shapeit/shapeit-v2.r837_GLIBCv2.12-linux_x86_64.eb rename to easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb -- GitLab From 4df62bb5e637f584d3ebffb56b2fd25d40a94b2b Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 22:11:56 +0100 Subject: [PATCH 616/732] Use start_dir, not startdir for Subread --- easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb index 4df6c05b5e..5192855877 100644 --- a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = ['%(namelower)s-%(version)s-source.tar.gz'] source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] -startdir = 'src &&' +start_dir = 'src &&' buildopts = '-f Makefile.Linux' files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] -- GitLab From 6dfc122e053950dd94d862cb80be20a6797e4e12 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Thu, 31 Mar 2016 22:35:29 +0100 Subject: [PATCH 617/732] Style cleanup for versionsuffix --- .../r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb index 58d91e5c53..d3a31d723c 100644 --- a/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb +++ b/easybuild/easyconfigs/r/RSeQC/RSeQC-2.6.3-foss-2015b-Python-2.7.10-R-3.2.3.eb @@ -6,8 +6,7 @@ easyblock = 'PythonPackage' name = 'RSeQC' version = '2.6.3' -versionsuffix = '-Python-%(pyver)s' -versionsuffix += '-R-%(rver)s' +versionsuffix = '-Python-%(pyver)s-R-%(rver)s' homepage = 'http://rseqc.sourceforge.net/' description = """RSeQC provides a number of useful modules that can -- GitLab From 37491f387e1a294625a7d71fa72bd06065326dba Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 1 Apr 2016 10:10:53 +0100 Subject: [PATCH 618/732] Fix start_dir --- easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb | 2 +- easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb index 5192855877..612c514399 100644 --- a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2015b.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'foss', 'version': '2015b'} sources = ['%(namelower)s-%(version)s-source.tar.gz'] source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] -start_dir = 'src &&' +start_dir = 'src' buildopts = '-f Makefile.Linux' files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] diff --git a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb index f0d2074639..e525a015c8 100644 --- a/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb +++ b/easybuild/easyconfigs/s/Subread/Subread-1.5.0-p1-foss-2016a.eb @@ -14,7 +14,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} sources = ['%(namelower)s-%(version)s-source.tar.gz'] source_urls = [('https://sourceforge.net/projects/%(namelower)s/files/%(namelower)s-%(version)s', 'download')] -start_dir = 'src &&' +start_dir = 'src' buildopts = '-f Makefile.Linux' files_to_copy = ['bin', 'annotation', 'doc', 'LICENSE', 'README.txt', 'src', 'test'] -- GitLab From 2e4f5401e6f65f307bbfced75186d8a0f43aba91 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Fri, 1 Apr 2016 11:00:50 -0500 Subject: [PATCH 619/732] Converting from 'Binaries' Easyblock to 'Tarball'. --- easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb index 6d1dad133e..bc3ceffb75 100644 --- a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb +++ b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb @@ -2,7 +2,7 @@ # Author: Ravi Tripathi # Email: ravi89@uab.edu -easyblock = "Binary" +easyblock = "Tarball" name = 'gtool' version = '0.7.5' @@ -16,10 +16,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://www.well.ox.ac.uk/~cfreeman/software/gwas/'] sources = ['gtool_v%(version)s_x86_64.tgz'] -# Following commands are used to untar the file and copy the content to install directory -install_cmd = "tar xvf gtool_v%(version)s_x86_64.tgz && HOME=%(builddir)s && " -install_cmd += "cp -a %(builddir)s/* %(installdir)s" - sanity_check_paths = { 'files': ["gtool", "LICENCE"], 'dirs': ["example"] -- GitLab From 163189467710769bcb3fc8785cfc0bc719ab8ac1 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Fri, 1 Apr 2016 11:07:32 -0500 Subject: [PATCH 620/732] Converting from 'Binaries' Easyblock to 'Tarball'. --- .../s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb index 7441bd58af..75a894a8c8 100644 --- a/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb +++ b/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb @@ -2,7 +2,7 @@ # Author: Ravi Tripathi # Email: ravi89@uab.edu -easyblock = "Binary" +easyblock = "Tarball" name = 'shapeit' version = '2.r837.GLIBCv2.12' @@ -16,10 +16,6 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/'] sources = ['shapeit.v%(version)s.Linux.static.tgz'] -# Following commands are used to untar the file and copy the content to install directory -install_cmd = "tar xzvf shapeit.v%(version)s.Linux.static.tgz && HOME=%(builddir)s && " -install_cmd += "cp -a %(builddir)s/* %(installdir)s" - sanity_check_paths = { 'files': ["bin/shapeit", "LICENCE"], 'dirs': ["example"] -- GitLab From 53eccaea377809af2cf69d87b18ef86843a6cf79 Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sat, 2 Apr 2016 00:05:44 -0700 Subject: [PATCH 621/732] add easyconfig for LAME MP3 encoder --- .../l/LAME/LAME-3.99.5-foss-2015a.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb b/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb new file mode 100644 index 0000000000..8ce773805a --- /dev/null +++ b/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Stephane Thiell +### + +easyblock = 'ConfigureMake' + +name = 'LAME' +version = '3.99.5' + +homepage = 'http://lame.sourceforge.net/' +description = """LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['https://sourceforge.net/projects/lame/files/lame/%(version_major_minor)s/'] + +dependencies = [('ncurses', '5.9')] + +# configure is broken: add workaround to find libncurses... +configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' " + +sanity_check_paths = { + 'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.so'], + 'dirs': [], +} + +moduleclass = 'data' -- GitLab From d07bf5d6c4a52bb9f65d5d8add7c300ce05b084d Mon Sep 17 00:00:00 2001 From: jgp Date: Sat, 2 Apr 2016 09:21:03 +0200 Subject: [PATCH 622/732] qt/486 for dummy toolchain --- easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb new file mode 100644 index 0000000000..5c83d337b8 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb @@ -0,0 +1,15 @@ +name = 'Qt' +version = '4.8.6' + +homepage = 'http://qt-project.org/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ 'http://download.qt.io/official_releases/qt/4.8/%(version)s' ] +sources = [ 'qt-everywhere-opensource-src-%(version)s.tar.gz' ] + +configopts = ' -opensource -nomake tests -nomake examples -confirm-license -release -shared -no-accessibility -no-sql-mysql -no-sql-sqlite' +platform = 'linux-g++-64' + +moduleclass = 'devel' -- GitLab From 686957e8a63d021e32cc88fe2a96e09e131651e2 Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sat, 2 Apr 2016 00:42:51 -0700 Subject: [PATCH 623/732] Pygments: fix homepage URL and description --- .../p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb | 4 ++-- .../p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb index 103bb38998..dc2b7c311c 100644 --- a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb @@ -3,8 +3,8 @@ easyblock = 'PythonPackage' name = 'Pygments' version = '2.0.2' -homepage = 'https://pypi.python.org/pypi/requests/2.6.0' -description = """Python http for humans""" +homepage = 'http://pygments.org/' +description = """Generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.""" toolchain = {'name': 'foss', 'version': '2015a'} diff --git a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb index 06251d7872..45a6907cbe 100644 --- a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb @@ -3,8 +3,8 @@ easyblock = 'PythonPackage' name = 'Pygments' version = '2.0.2' -homepage = 'https://pypi.python.org/pypi/requests/2.6.0' -description = """Python http for humans""" +homepage = 'http://pygments.org/' +description = """Generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.""" toolchain = {'name': 'intel', 'version': '2015a'} -- GitLab From 9e88f53c5f8c8aa7540c08f84b5c96a77d720fd1 Mon Sep 17 00:00:00 2001 From: jgp Date: Sat, 2 Apr 2016 14:14:43 +0200 Subject: [PATCH 624/732] fixing line max length --- easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb index 5c83d337b8..48c0604f80 100644 --- a/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb @@ -9,7 +9,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = [ 'http://download.qt.io/official_releases/qt/4.8/%(version)s' ] sources = [ 'qt-everywhere-opensource-src-%(version)s.tar.gz' ] -configopts = ' -opensource -nomake tests -nomake examples -confirm-license -release -shared -no-accessibility -no-sql-mysql -no-sql-sqlite' +configopts = ' -opensource -nomake tests -nomake examples -confirm-license -release' +configopts += ' -shared -no-accessibility -no-sql-mysql -no-sql-sqlite' platform = 'linux-g++-64' moduleclass = 'devel' -- GitLab From 79a0eb02eaac79c6058e84ca25a9326a731c1970 Mon Sep 17 00:00:00 2001 From: jgp Date: Sat, 2 Apr 2016 14:29:52 +0200 Subject: [PATCH 625/732] adding -no-webkit for redhat builds --- easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb b/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb index 48c0604f80..eacf9a8384 100644 --- a/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb +++ b/easybuild/easyconfigs/q/Qt/Qt-4.8.6.eb @@ -9,8 +9,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = [ 'http://download.qt.io/official_releases/qt/4.8/%(version)s' ] sources = [ 'qt-everywhere-opensource-src-%(version)s.tar.gz' ] -configopts = ' -opensource -nomake tests -nomake examples -confirm-license -release' -configopts += ' -shared -no-accessibility -no-sql-mysql -no-sql-sqlite' +configopts = ' -opensource -nomake tests -nomake examples -confirm-license -release' +configopts += ' -shared -no-accessibility -no-sql-mysql -no-sql-sqlite -no-webkit' platform = 'linux-g++-64' moduleclass = 'devel' -- GitLab From 05a5e0a091c4191a14cac7cf03367874b7e20eae Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sat, 2 Apr 2016 20:53:00 -0700 Subject: [PATCH 626/732] add easyconfig for FLAC audio codec --- .../f/FLAC/FLAC-1.3.1-foss-2015a.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb new file mode 100644 index 0000000000..72f2e62fcc --- /dev/null +++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb @@ -0,0 +1,25 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Stephane Thiell +### + +easyblock = 'ConfigureMake' + +name = 'FLAC' +version = '1.3.1' + +homepage = 'https://xiph.org/flac/' +description = """Programs and libraries for working with Free Lossless Audio Codec (FLAC) files.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_XZ] +source_urls = ['http://downloads.xiph.org/releases/flac/'] + +sanity_check_paths = { + 'files': ['bin/flac', 'include/FLAC/all.h', 'lib/libFLAC.so'], + 'dirs': [], +} + +moduleclass = 'data' -- GitLab From 28b3cea3b180c4b84704914f72a04857aaa980f5 Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sat, 2 Apr 2016 21:08:27 -0700 Subject: [PATCH 627/732] add easyconfig for SoX (a Torch7 dependency) --- .../s/SoX/SoX-14.4.2-foss-2015a.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb diff --git a/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb b/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb new file mode 100644 index 0000000000..8228308a17 --- /dev/null +++ b/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Stephane Thiell +### + +easyblock = 'ConfigureMake' + +name = 'SoX' +version = '14.4.2' + +homepage = 'http://http://sox.sourceforge.net/' +description = """Sound eXchange, the Swiss Army knife of audio manipulation""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['https://sourceforge.net/projects/sox/files/sox/%(version)s'] + +# These are not strictly mandatory but add flac and mp3 support to SoX +dependencies = [ + ('FLAC', '1.3.1'), + ('LAME', '3.99.5') +] + +sanity_check_paths = { + 'files': ['bin/sox', 'include/sox.h', 'lib/libsox.so'], + 'dirs': [], +} + +moduleclass = 'data' -- GitLab From f42683f08dedc4e4c9980e0d116ef92403cbc805 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 3 Apr 2016 14:01:34 +0200 Subject: [PATCH 628/732] add easyconfig scikit-learn-0.17.1-intel-2016a-Python-2.7.11.eb --- ...-learn-0.17.1-intel-2016a-Python-2.7.11.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..50d044b41c --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.17.1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'scikit-learn' +version = '0.17.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://scikit-learn.org/stable/index.html' +description = """Scikit-learn integrates machine learning algorithms in the tightly-knit scientific Python world, +building upon numpy, scipy, and matplotlib. As a machine-learning module, +it provides versatile tools for data mining and analysis in any field of science and engineering. +It strives to be simple and efficient, accessible to everybody, and reusable in various contexts.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('matplotlib', '1.5.1', versionsuffix), +] + +options = {'modulename': 'sklearn'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/sklearn'], +} + +moduleclass = 'data' -- GitLab From 65c8245f61d91344b4965fe2f35a153fee92de78 Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sun, 3 Apr 2016 09:51:25 -0700 Subject: [PATCH 629/732] FLAC: use SHLIB_EXT rather than hardcoding .so --- easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb index 72f2e62fcc..509bb248c0 100644 --- a/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb +++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb @@ -18,7 +18,7 @@ sources = [SOURCELOWER_TAR_XZ] source_urls = ['http://downloads.xiph.org/releases/flac/'] sanity_check_paths = { - 'files': ['bin/flac', 'include/FLAC/all.h', 'lib/libFLAC.so'], + 'files': ['bin/flac', 'include/FLAC/all.h', 'lib/libFLAC.%s' % SHLIB_EXT], 'dirs': [], } -- GitLab From dddf87803d9b9f070568fdefa07f7a2325437c23 Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sun, 3 Apr 2016 09:54:55 -0700 Subject: [PATCH 630/732] Pygments: keep lines under 120 characters --- .../p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb | 3 ++- .../p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb index dc2b7c311c..bfe92c90eb 100644 --- a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-foss-2015a-Python-2.7.9.eb @@ -4,7 +4,8 @@ name = 'Pygments' version = '2.0.2' homepage = 'http://pygments.org/' -description = """Generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.""" +description = """Generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications + that need to prettify source code.""" toolchain = {'name': 'foss', 'version': '2015a'} diff --git a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb index 45a6907cbe..3c3f9ad92d 100644 --- a/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/p/Pygments/Pygments-2.0.2-intel-2015a-Python-2.7.9.eb @@ -4,7 +4,8 @@ name = 'Pygments' version = '2.0.2' homepage = 'http://pygments.org/' -description = """Generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.""" +description = """Generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications + that need to prettify source code.""" toolchain = {'name': 'intel', 'version': '2015a'} -- GitLab From c4186634b8ced2d454d53bad348efcde85150ff3 Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sun, 3 Apr 2016 10:11:01 -0700 Subject: [PATCH 631/732] use SHLIB_EXT rather than .so --- easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb b/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb index 8ce773805a..a1da0d2c90 100644 --- a/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb +++ b/easybuild/easyconfigs/l/LAME/LAME-3.99.5-foss-2015a.eb @@ -23,7 +23,7 @@ dependencies = [('ncurses', '5.9')] configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' " sanity_check_paths = { - 'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.so'], + 'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT], 'dirs': [], } -- GitLab From 4505dcb1a2b2ccb0274b3e7dc991244ca376ec8e Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Sun, 3 Apr 2016 10:20:21 -0700 Subject: [PATCH 632/732] SoX: use SHLIB_EXT rather than hardcoding .so --- easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb b/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb index 8228308a17..a71ba0bca6 100644 --- a/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb +++ b/easybuild/easyconfigs/s/SoX/SoX-14.4.2-foss-2015a.eb @@ -24,7 +24,7 @@ dependencies = [ ] sanity_check_paths = { - 'files': ['bin/sox', 'include/sox.h', 'lib/libsox.so'], + 'files': ['bin/sox', 'include/sox.h', 'lib/libsox.%s' % SHLIB_EXT], 'dirs': [], } -- GitLab From a9481ca6559314b4ddf261a8030df7426a7e3251 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 4 Apr 2016 10:57:07 +0200 Subject: [PATCH 633/732] add binutils as build dep for FLAC, also run tests --- easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb index 509bb248c0..76be36ffc6 100644 --- a/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb +++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.1-foss-2015a.eb @@ -17,6 +17,11 @@ toolchain = {'name': 'foss', 'version': '2015a'} sources = [SOURCELOWER_TAR_XZ] source_urls = ['http://downloads.xiph.org/releases/flac/'] +# use of assembly routines requires a recent binutils +builddependencies = [('binutils', '2.25', '', ('GCC', '4.9.2'))] + +runtest = 'check' + sanity_check_paths = { 'files': ['bin/flac', 'include/FLAC/all.h', 'lib/libFLAC.%s' % SHLIB_EXT], 'dirs': [], -- GitLab From e20aeaca67693bf5be63cd89953e98b9071642dd Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 10:03:55 -0500 Subject: [PATCH 634/732] Changed software name to uppercase (to match the official software name) --- easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb index bc3ceffb75..8b1697e3af 100644 --- a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb +++ b/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb @@ -4,12 +4,12 @@ easyblock = "Tarball" -name = 'gtool' +name = 'GTOOL' version = '0.7.5' -versionsuffix = '_linux_x86_64' homepage = 'http://www.well.ox.ac.uk/~cfreeman/software/gwas/gtool.html' -description = """ GTOOL is a program for transforming sets of genotype data for use with the programs SNPTEST and IMPUTE. """ +description = """ GTOOL is a program for transforming sets of genotype data for use with +the programs SNPTEST and IMPUTE. """ toolchain = {'name': 'dummy', 'version': 'dummy'} -- GitLab From b9707b6147bbd5662971c333ff5a371bf7624483 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 10:13:29 -0500 Subject: [PATCH 635/732] Changed the name to SHAPEIT(uppercase), to match the official software name as well as added GLIBCv2.12 part as a versionsuffix --- .../shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb index 75a894a8c8..f2424bbea4 100644 --- a/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb +++ b/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb @@ -4,17 +4,18 @@ easyblock = "Tarball" -name = 'shapeit' -version = '2.r837.GLIBCv2.12' -versionsuffix = '_linux_x86_64' +name = 'SHAPEIT' +version = '2.r837' +versionsuffix = '.GLIBCv2.12' homepage = 'https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/shapeit.html' -description = """ SHAPEIT is a fast and accurate method for estimation of haplotypes (aka phasing) from genotype or sequencing data. """ +description = """SHAPEIT is a fast and accurate method for estimation of +haplotypes (aka phasing) from genotype or sequencing data.""" toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/'] -sources = ['shapeit.v%(version)s.Linux.static.tgz'] +sources = ['shapeit.v%(version)s%(versionsuffix)s.Linux.static.tgz'] sanity_check_paths = { 'files': ["bin/shapeit", "LICENCE"], -- GitLab From acd19f1aef37e3efbdc6afb2aa3393f73d6a6e5e Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 10:57:50 -0500 Subject: [PATCH 636/732] Renamed the Easyconfig file --- .../g/{gtool/gtool-0.7.5_linux_x86_64.eb => GTOOL-0.7.5.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/g/{gtool/gtool-0.7.5_linux_x86_64.eb => GTOOL-0.7.5.eb} (100%) diff --git a/easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb b/easybuild/easyconfigs/g/GTOOL-0.7.5.eb similarity index 100% rename from easybuild/easyconfigs/g/gtool/gtool-0.7.5_linux_x86_64.eb rename to easybuild/easyconfigs/g/GTOOL-0.7.5.eb -- GitLab From e11bdeb3d103cd2b7bfd0538ba674537d47fd89c Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 11:06:12 -0500 Subject: [PATCH 637/732] Renamed the Easyconfig file --- easybuild/easyconfigs/g/{ => gtool}/GTOOL-0.7.5.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/g/{ => gtool}/GTOOL-0.7.5.eb (100%) diff --git a/easybuild/easyconfigs/g/GTOOL-0.7.5.eb b/easybuild/easyconfigs/g/gtool/GTOOL-0.7.5.eb similarity index 100% rename from easybuild/easyconfigs/g/GTOOL-0.7.5.eb rename to easybuild/easyconfigs/g/gtool/GTOOL-0.7.5.eb -- GitLab From 4f08e6223419bd817ec1345de6bf367d0bdccac7 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 11:10:38 -0500 Subject: [PATCH 638/732] Renamed the Easyconfig file --- ...37.GLIBCv2.12_linux_x86_64.eb => SHAPEIT-2.r837.GLIBCv2.12.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/s/shapeit/{shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb => SHAPEIT-2.r837.GLIBCv2.12.eb} (100%) diff --git a/easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb b/easybuild/easyconfigs/s/shapeit/SHAPEIT-2.r837.GLIBCv2.12.eb similarity index 100% rename from easybuild/easyconfigs/s/shapeit/shapeit-2.r837.GLIBCv2.12_linux_x86_64.eb rename to easybuild/easyconfigs/s/shapeit/SHAPEIT-2.r837.GLIBCv2.12.eb -- GitLab From d21d922f81159e6d35ae23969d32b56797458ac4 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 11:40:26 -0500 Subject: [PATCH 639/732] Renamed the directory from 'gtool' to 'GTOOL' --- easybuild/easyconfigs/g/{gtool => GTOOL}/GTOOL-0.7.5.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/g/{gtool => GTOOL}/GTOOL-0.7.5.eb (100%) diff --git a/easybuild/easyconfigs/g/gtool/GTOOL-0.7.5.eb b/easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb similarity index 100% rename from easybuild/easyconfigs/g/gtool/GTOOL-0.7.5.eb rename to easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb -- GitLab From 03d799432b512447956e6f35f56370817d04b817 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 11:42:44 -0500 Subject: [PATCH 640/732] Renamed the directory from 'shapeit' to 'SHAPEIT' --- .../s/{shapeit => SHAPEIT}/SHAPEIT-2.r837.GLIBCv2.12.eb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/s/{shapeit => SHAPEIT}/SHAPEIT-2.r837.GLIBCv2.12.eb (100%) diff --git a/easybuild/easyconfigs/s/shapeit/SHAPEIT-2.r837.GLIBCv2.12.eb b/easybuild/easyconfigs/s/SHAPEIT/SHAPEIT-2.r837.GLIBCv2.12.eb similarity index 100% rename from easybuild/easyconfigs/s/shapeit/SHAPEIT-2.r837.GLIBCv2.12.eb rename to easybuild/easyconfigs/s/SHAPEIT/SHAPEIT-2.r837.GLIBCv2.12.eb -- GitLab From 64c78cbac01a04a0771040e2cf3ccfa69aa16c14 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Mon, 4 Apr 2016 12:44:17 -0500 Subject: [PATCH 641/732] Adding 'modextrapaths' parameter to include the root directory in the PATH variable --- easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb b/easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb index 8b1697e3af..69e22e6cab 100644 --- a/easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb +++ b/easybuild/easyconfigs/g/GTOOL/GTOOL-0.7.5.eb @@ -16,6 +16,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['http://www.well.ox.ac.uk/~cfreeman/software/gwas/'] sources = ['gtool_v%(version)s_x86_64.tgz'] +modextrapaths = {'PATH': ''} + sanity_check_paths = { 'files': ["gtool", "LICENCE"], 'dirs': ["example"] -- GitLab From 6057e0642b6b7e61c5e68a69c1709d485e17a6c9 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Tue, 5 Apr 2016 15:44:50 -0400 Subject: [PATCH 642/732] libxcb-1.11.1 easyconfig for foss-2016a --- .../l/libxcb/libxcb-1.11.1-foss-2016a.eb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb new file mode 100644 index 0000000000..b12be025db --- /dev/null +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('pkg-config', '0.29'), +] +dependencies = [ + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), + ('xcb-proto', '1.11', '', True), + ('libpthread-stubs', '0.3'), + +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' -- GitLab From 3c13fbcd743487e7e4fd7ecc7faa633e07d827d2 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Tue, 5 Apr 2016 15:53:45 -0400 Subject: [PATCH 643/732] xproto-7.0.28 easyconfig for foss-2016a --- .../x/xproto/xproto-7.0.28-foss-2016a.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb new file mode 100644 index 0000000000..3e787177f0 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' -- GitLab From 76dbf608ede3b5ec4fc28fb94e93b9ce633e50ad Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Tue, 5 Apr 2016 15:56:17 -0400 Subject: [PATCH 644/732] libpthread-stubs-0.3 easyconfig for foss-2016a --- .../libpthread-stubs-0.3-foss-2016a.eb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb new file mode 100644 index 0000000000..fcb767cfdb --- /dev/null +++ b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpthread-stubs' +version = '0.3' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'foss', 'version': '2016a'} + +sanity_check_paths = { + 'files': ['lib/pkgconfig/pthread-stubs.pc'], + 'dirs': [], +} + +moduleclass = 'lib' -- GitLab From d9ec15efee75c4133c9b4476d5eca278ee28bfb5 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Tue, 5 Apr 2016 15:59:14 -0400 Subject: [PATCH 645/732] libXau-1.0.8 easyconfig for foss-2016a --- .../l/libXau/libXau-1.0.8-foss-2016a.eb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb new file mode 100644 index 0000000000..b6f23c9a07 --- /dev/null +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('pkg-config', '0.29'), +] + +dependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 0ee9e5f553a8df087774e50b56875a009b0c96b9 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Tue, 5 Apr 2016 16:00:39 -0400 Subject: [PATCH 646/732] libXdmcp-1.1.2 easyconfig for foss-2016a --- .../l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb new file mode 100644 index 0000000000..9e90ec9775 --- /dev/null +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('pkg-config', '0.29') +] + +dependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 76339fa83cdd28958c5dd3e44282321dffaa260c Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Tue, 5 Apr 2016 16:01:47 -0400 Subject: [PATCH 647/732] pkg-config-0.29 easyconfig for foss-2016a --- .../pkg-config/pkg-config-0.29-foss-2016a.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb new file mode 100644 index 0000000000..2796515752 --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 508d9ac2b09b1bffc86709993300f41fee471478 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Tue, 5 Apr 2016 15:23:39 -0500 Subject: [PATCH 648/732] Changing the file name and the folder name containing it. --- .../MRIcron-06_22_15.eb} | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) rename easybuild/easyconfigs/m/{mricron/mricron-062215-linux_x86_64.eb => MRIcron/MRIcron-06_22_15.eb} (60%) diff --git a/easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb similarity index 60% rename from easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb rename to easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index a7fb738545..097d50c5b6 100644 --- a/easybuild/easyconfigs/m/mricron/mricron-062215-linux_x86_64.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -4,20 +4,22 @@ easyblock = "Binary" -name = 'mricron' -version = '062215' -versionsuffix = '_linux_x86_64' +name = 'MRIcron' +version = '06_22_15' homepage = 'http://www.mccauslandcenter.sc.edu/mricro/mricron/' -description = """ MRIcron allows viewing of medical images. It includes tools to complement SPM and FSL. Native format is NIFTI but includes a conversion program (see dcm2nii) for converting DICOM images. Features layers, ROIs, and volume rendering. """ +description = """ MRIcron allows viewing of medical images. It +includes tools to complement SPM and FSL. Native format is NIFTI +but includes a conversion program (see dcm2nii) for converting DICOM images. +Features layers, ROIs, and volume rendering. """ toolchain = {'name': 'dummy', 'version': 'dummy'} source_urls = ['https://www.nitrc.org/frs/download.php/7765/'] sources = ['lx.zip'] -# Following commands are used to untar the file and copy the content to install directory -install_cmd = "unzip lx.zip && HOME=%(builddir)s && " +# Following commands are used to unzip the files and copy the content to install directory +install_cmd = "unzip lx.zip &&" install_cmd += "cp -a %(builddir)s/* %(installdir)s" sanity_check_paths = { -- GitLab From 030b70a2a075c3b29af339d5210a6569e2d14def Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 6 Apr 2016 11:33:39 +0200 Subject: [PATCH 649/732] {vis}[intel-2016a] Pillow 3.2.0 (REVIEW) --- .../Pillow-3.2.0-intel-2016a-Python-2.7.11.eb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..bc1187561f --- /dev/null +++ b/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'Pillow' +version = '3.2.0' + +homepage = 'http://pillow.readthedocs.org/' +description = """Pillow is the 'friendly PIL fork' by Alex Clark and Contributors. + PIL is the Python Imaging Library by Fredrik Lundh and Contributors.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.11' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('libjpeg-turbo', '1.4.2'), + ('zlib', '1.2.8'), + ('LibTIFF', '4.0.6'), + ('freetype', '2.6.2'), +] + +options = {'modulename': 'PIL'} + +moduleclass = 'vis' -- GitLab From e53d9aea980e8a51a012176937fea91cb3cf0255 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Wed, 6 Apr 2016 15:41:33 +0200 Subject: [PATCH 650/732] Libxslt-1.1.28 for foss-2016a --- .../l/libxslt/libxslt-1.1.28-foss-2016a.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb new file mode 100644 index 0000000000..63c3fa7e2d --- /dev/null +++ b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libxslt' +version = '1.1.28' + +homepage = 'http://xmlsoft.org/' +description = """Libxslt is the XSLT C library developed for the GNOME project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] + +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.8'), + ('libxml2', '2.9.3'), +] + +moduleclass = 'lib' \ No newline at end of file -- GitLab From 2f2d57ae191b8c71b2dd9015965a617f608ddb30 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 6 Apr 2016 18:01:14 +0200 Subject: [PATCH 651/732] consistently use XORG_LIB_SOURCE constant --- easybuild/easyconfigs/l/libICE/libICE-1.0.8-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015a.eb | 2 +- easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015b.eb | 2 +- easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libSM/libSM-1.2.1-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015a.eb | 2 +- easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015b.eb | 2 +- easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libX11/libX11-1.6.1-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb | 2 +- easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb | 2 +- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.2-intel-2014b.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-goolf-1.5.14.eb | 2 +- .../l/libXext/libXext-1.3.3-intel-2015a-Python-2.7.10.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a.eb | 2 +- .../l/libXext/libXext-1.3.3-intel-2015b-Python-2.7.11.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXt/libXt-1.1.4-intel-2014b.eb | 2 +- 34 files changed, 34 insertions(+), 34 deletions(-) diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.8-intel-2014b.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.8-intel-2014b.eb index bb3839e6a6..ff2702cd71 100644 --- a/easybuild/easyconfigs/l/libICE/libICE-1.0.8-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.8-intel-2014b.eb @@ -9,7 +9,7 @@ description = """X Inter-Client Exchange library for freedesktop.org""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xtrans', '1.3.4'), diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb index 407ce4845d..b63222e9d8 100644 --- a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-gimkl-2.11.5.eb @@ -9,7 +9,7 @@ description = """X Inter-Client Exchange library for freedesktop.org""" toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xtrans', '1.3.5'), diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015a.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015a.eb index 0fb685525a..1bd7511944 100644 --- a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015a.eb @@ -9,7 +9,7 @@ description = """X Inter-Client Exchange library for freedesktop.org""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xtrans', '1.3.5'), diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015b.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015b.eb index d28d3a6e76..2f28c257c5 100644 --- a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2015b.eb @@ -9,7 +9,7 @@ description = """X Inter-Client Exchange library for freedesktop.org""" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xtrans', '1.3.5'), diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb index 0038b41047..bd5ecc8bcd 100644 --- a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-intel-2016a.eb @@ -9,7 +9,7 @@ description = """X Inter-Client Exchange library for freedesktop.org""" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xtrans', '1.3.5'), diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.1-intel-2014b.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.1-intel-2014b.eb index a15bba69ef..30a7625681 100644 --- a/easybuild/easyconfigs/l/libSM/libSM-1.2.1-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.1-intel-2014b.eb @@ -10,7 +10,7 @@ description = """X11 Session Management library, which allows for applications t toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libICE', '1.0.8'), diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb index 580ce7f28a..a8d0c1fc55 100644 --- a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-gimkl-2.11.5.eb @@ -10,7 +10,7 @@ description = """X11 Session Management library, which allows for applications t toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libICE', '1.0.9'), diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015a.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015a.eb index 2a2391d847..c3a28914e6 100644 --- a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015a.eb @@ -10,7 +10,7 @@ description = """X11 Session Management library, which allows for applications t toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libICE', '1.0.9'), diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015b.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015b.eb index 641ea44476..503006a89b 100644 --- a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2015b.eb @@ -10,7 +10,7 @@ description = """X11 Session Management library, which allows for applications t toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libICE', '1.0.9'), diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb index b34ef0db33..1bab5701fe 100644 --- a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-intel-2016a.eb @@ -10,7 +10,7 @@ description = """X11 Session Management library, which allows for applications t toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libICE', '1.0.9'), diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.1-intel-2014b.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.1-intel-2014b.eb index 3522b7de99..3a034255d6 100644 --- a/easybuild/easyconfigs/l/libX11/libX11-1.6.1-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.1-intel-2014b.eb @@ -9,7 +9,7 @@ description = """X11 client-side library""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] pythonversion = '-Python-2.7.8' builddependencies = [ diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb index 8694ab5ad2..96ec24e1fc 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb index 2e88286d07..934e207665 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-gimkl-2.11.5.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb index f1bc2bfb36..bd0254a335 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-goolf-1.5.14.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb index 22bf8016cf..afa4166c18 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2014b.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xproto', '7.0.26'), diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb index 408dc4aede..1accebb77f 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015a.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb index 9304d0fc79..dafc84e463 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2015b.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb index 243dbd6f22..8003dc09d5 100644 --- a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb index 735a0391ab..efb7a8e46c 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.1-intel-2014b.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.26'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb index c12e65e6e8..20f0072ce3 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb index 9233da540e..395760652d 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-gimkl-2.11.5.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb index cc513f2315..599620e265 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-goolf-1.5.14.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb index 79416debdd..0912eb0311 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015a.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb index 93de3908f0..1639916a6f 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2015b.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb index 24fc239d5e..6ec7ecf45d 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb @@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.2-intel-2014b.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.2-intel-2014b.eb index 1eeae06c66..b642948a1b 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.2-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.2-intel-2014b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libX11', '1.6.1'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb index 9ce9ef676f..388076a498 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-gimkl-2.11.5.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-goolf-1.5.14.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-goolf-1.5.14.eb index f5d31320dd..e0c74eaaa7 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-goolf-1.5.14.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a-Python-2.7.10.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a-Python-2.7.10.eb index fea0b330b9..59f66ccd07 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a-Python-2.7.10.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a-Python-2.7.10.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a.eb index c076690abe..3b9f118dec 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.27'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b-Python-2.7.11.eb index 23544e2ee3..7c257d0a2f 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b-Python-2.7.11.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b.eb index 93ffb79a95..3751e0a221 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2015b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb index 3e89327b58..2b4eff3bde 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/l/libXt/libXt-1.1.4-intel-2014b.eb b/easybuild/easyconfigs/l/libXt/libXt-1.1.4-intel-2014b.eb index 6f79135801..4646632358 100644 --- a/easybuild/easyconfigs/l/libXt/libXt-1.1.4-intel-2014b.eb +++ b/easybuild/easyconfigs/l/libXt/libXt-1.1.4-intel-2014b.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libSM', '1.2.1'), -- GitLab From 1e6a202f0f1415b190d434c94c74464ddccbfc9f Mon Sep 17 00:00:00 2001 From: jrbosch Date: Wed, 6 Apr 2016 12:45:43 -0400 Subject: [PATCH 652/732] Update libXdmcp-1.1.2-foss-2016a.eb --- easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb index bbe5e2fcc0..dcd4997f9b 100644 --- a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb @@ -15,7 +15,7 @@ sources = [SOURCE_TAR_GZ] source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] builddependencies = [ - ('pkg-config', '0.29') + ('pkg-config', '0.29'), ('xproto', '7.0.28'), ] -- GitLab From b9dfd342150f7b28e69e6c96746ab2f2537a5b8e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 6 Apr 2016 19:12:21 +0200 Subject: [PATCH 653/732] consistently use XORG_*_SOURCE constants --- .../easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb | 2 +- .../easyconfigs/f/fixesproto/fixesproto-5.0-goolf-1.4.10.eb | 2 +- .../easyconfigs/f/fixesproto/fixesproto-5.0-ictce-4.1.13.eb | 2 +- .../easyconfigs/f/fixesproto/fixesproto-5.0-ictce-5.3.0.eb | 2 +- .../easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015a.eb | 2 +- .../easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015b.eb | 2 +- .../easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb | 2 +- .../easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb | 2 +- .../easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015a.eb | 2 +- .../easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015b.eb | 2 +- .../easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb | 2 +- .../easyconfigs/g/glproto/glproto-1.4.16-goalf-1.1.0-no-OFED.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.16-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.5.0.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015a.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015b.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb | 2 +- easybuild/easyconfigs/i/inputproto/inputproto-2.3-foss-2014b.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3-goolf-1.4.10.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3-goolf-1.5.14.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3-ictce-4.1.13.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3-ictce-5.3.0.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3-intel-2014b.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3-intel-2015a.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3.1-goolf-1.5.14.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015a.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015b.eb | 2 +- .../easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-foss-2014b.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2014b.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2015a.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015a.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015b.eb | 2 +- easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb | 2 +- easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb | 2 +- .../easyconfigs/p/printproto/printproto-1.0.5-goolf-1.4.10.eb | 2 +- .../easyconfigs/p/printproto/printproto-1.0.5-ictce-4.1.13.eb | 2 +- .../easyconfigs/p/printproto/printproto-1.0.5-ictce-5.3.0.eb | 2 +- .../easyconfigs/p/printproto/printproto-1.0.5-intel-2015a.eb | 2 +- .../easyconfigs/r/randrproto/randrproto-1.5.0-intel-2015b.eb | 2 +- .../easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-foss-2014b.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-intel-2014b.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-intel-2015a.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-intel-2015b.eb | 2 +- .../easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb | 2 +- easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2014b.eb | 2 +- easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2015a.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb | 2 +- easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb | 2 +- easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb | 2 +- .../easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb | 2 +- .../x/xineramaproto/xineramaproto-1.2.1-foss-2014b.eb | 2 +- .../x/xineramaproto/xineramaproto-1.2.1-intel-2014b.eb | 2 +- .../x/xineramaproto/xineramaproto-1.2.1-intel-2015b.eb | 2 +- .../x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb | 2 +- .../easyconfigs/x/xproto/xproto-7.0.23-goalf-1.1.0-no-OFED.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.4.10.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.5.14.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.0.6.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.1.13.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-5.3.0.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.26-foss-2014b.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.26-intel-2014b.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.27-goolf-1.5.14.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2015a.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2015b.eb | 2 +- easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb | 2 +- 95 files changed, 95 insertions(+), 95 deletions(-) diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb index 88fa55c14d..1deb262347 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-gimkl-2.11.5.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-goolf-1.4.10.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-goolf-1.4.10.eb index 80e72c01e5..574d6d02de 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-goolf-1.4.10.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-4.1.13.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-4.1.13.eb index c52db08f49..15154dbbea 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-4.1.13.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '4.1.13'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-5.3.0.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-5.3.0.eb index 06e3d71fba..4df2be2be9 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-ictce-5.3.0.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015a.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015a.eb index 5d430a5301..8b11789fca 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015a.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015a.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015b.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015b.eb index 3fe841d973..fd373c373a 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015b.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2015b.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb index 33951308af..f26ed2df7a 100644 --- a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-intel-2016a.eb @@ -9,7 +9,7 @@ description = """X.org FixesProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb index 0719ec51f4..8e577e277b 100644 --- a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-gimkl-2.11.5.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': [], diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015a.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015a.eb index 6c5ce99387..47f2d3c961 100644 --- a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015a.eb +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': [], diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015b.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015b.eb index 5c83a62b97..062cfdbcf8 100644 --- a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015b.eb +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2015b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': [], diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb index 5b1c1517ba..9c00b32506 100644 --- a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-intel-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': [], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goalf-1.1.0-no-OFED.eb index f9c5e14a8e..4282ea773f 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goalf-1.1.0-no-OFED.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goolf-1.4.10.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goolf-1.4.10.eb index 06b846c04c..037260e492 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-goolf-1.4.10.eb @@ -9,7 +9,7 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.0.6.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.0.6.eb index 42dc60dd5e..aebc924b14 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.0.6.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '4.0.6'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.1.13.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.1.13.eb index 8b99a901c9..cb35b32223 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-4.1.13.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '4.1.13'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.3.0.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.3.0.eb index 6ccc91bb75..c92de947ba 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.3.0.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.5.0.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.5.0.eb index 2566876879..1f4bad7112 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.16-ictce-5.5.0.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '5.5.0'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb index 46b9bdb324..8a7667c002 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-gimkl-2.11.5.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015a.eb index 4eb87a66ef..b28bfab5ef 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015a.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015b.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015b.eb index a1f9a0b9d2..191cd512ed 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015b.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2015b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb index c26a1ac08a..5dd250fddb 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-intel-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-foss-2014b.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-foss-2014b.eb index 3297e8dea0..ce9480d3aa 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-foss-2014b.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-foss-2014b.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.4.10.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.4.10.eb index 1e1be175b1..475b25485e 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.4.10.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.5.14.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.5.14.eb index 56a7e864e0..7ae3e0efff 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-goolf-1.5.14.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-4.1.13.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-4.1.13.eb index 75a9c42cf7..9931bbca58 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-4.1.13.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '4.1.13'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-5.3.0.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-5.3.0.eb index 804a25ce18..19917b0ef7 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-ictce-5.3.0.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2014b.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2014b.eb index e307d5deb4..eb95b2f34a 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2014b.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2014b.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2015a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2015a.eb index 0437a042db..d652aba387 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2015a.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3-intel-2015a.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb index be4171cde7..cad6b846e6 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb index 1a5db1eefa..b26cb20222 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-gimkl-2.11.5.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-goolf-1.5.14.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-goolf-1.5.14.eb index 66fc05b6d4..6a557da522 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-goolf-1.5.14.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015a.eb index 21d5d376d5..512fcad715 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015a.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015a.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015b.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015b.eb index 83bc32fc03..00ad73c8ec 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015b.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2015b.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb index 323816dd0b..f40968ca7a 100644 --- a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-intel-2016a.eb @@ -9,7 +9,7 @@ description = """X.org InputProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-foss-2014b.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-foss-2014b.eb index 7482053f6f..30967e9fe4 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-foss-2014b.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-foss-2014b.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-goolf-1.4.10.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-goolf-1.4.10.eb index e54e5f74c9..7e3ad5f572 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-goolf-1.4.10.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-4.1.13.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-4.1.13.eb index 3790a57f15..ee1d8ab5ad 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-4.1.13.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '4.1.13'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-5.3.0.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-5.3.0.eb index 664996727e..48cbc77814 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-ictce-5.3.0.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2014b.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2014b.eb index 31cb837d0f..2393fe61dc 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2014b.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2014b.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2015a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2015a.eb index 2d16cb0b13..295d7b8f94 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2015a.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.6-intel-2015a.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb index bca5ddd7ca..86f8eb23de 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb index 050b2bda55..a2add0de30 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-gimkl-2.11.5.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015a.eb index 62923f260f..13dbd2eb08 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015a.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015a.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015b.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015b.eb index d692faf393..9a5a48c480 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015b.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2015b.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb index 29d6a6987a..e5d229774c 100644 --- a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-intel-2016a.eb @@ -9,7 +9,7 @@ description = """X.org KBProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb index fc57003279..ce3e6d964e 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), diff --git a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-goolf-1.4.10.eb b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-goolf-1.4.10.eb index dacbb816a7..3f72d96af4 100644 --- a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-goolf-1.4.10.eb @@ -6,7 +6,7 @@ version = '1.0.5' homepage = 'http://xorg.freedesktop.org/' description = """X.org PrintProto protocol headers.""" -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sources = [SOURCELOWER_TAR_GZ] toolchain = {'name': 'goolf', 'version': '1.4.10'} diff --git a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-4.1.13.eb b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-4.1.13.eb index db2b6fad94..83069f50b6 100644 --- a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-4.1.13.eb @@ -6,7 +6,7 @@ version = '1.0.5' homepage = 'http://xorg.freedesktop.org/' description = """X.org PrintProto protocol headers.""" -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sources = [SOURCELOWER_TAR_GZ] toolchain = {'name': 'ictce', 'version': '4.1.13'} diff --git a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-5.3.0.eb b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-5.3.0.eb index ae82f50061..bd1a547705 100644 --- a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-ictce-5.3.0.eb @@ -6,7 +6,7 @@ version = '1.0.5' homepage = 'http://xorg.freedesktop.org/' description = """X.org PrintProto protocol headers.""" -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sources = [SOURCELOWER_TAR_GZ] toolchain = {'name': 'ictce', 'version': '5.3.0'} diff --git a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-intel-2015a.eb b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-intel-2015a.eb index 0e5bfb142c..38e0bbe3cc 100644 --- a/easybuild/easyconfigs/p/printproto/printproto-1.0.5-intel-2015a.eb +++ b/easybuild/easyconfigs/p/printproto/printproto-1.0.5-intel-2015a.eb @@ -6,7 +6,7 @@ version = '1.0.5' homepage = 'http://xorg.freedesktop.org/' description = """X.org PrintProto protocol headers.""" -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sources = [SOURCELOWER_TAR_GZ] toolchain = {'name': 'intel', 'version': '2015a'} diff --git a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2015b.eb b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2015b.eb index cb2cc76a3b..87f1456d12 100644 --- a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2015b.eb +++ b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2015b.eb @@ -9,7 +9,7 @@ description = "Xrandr protocol and ancillary headers" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], diff --git a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb index 278cc7bbbf..563fbfcbf2 100644 --- a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb +++ b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-intel-2016a.eb @@ -9,7 +9,7 @@ description = "Xrandr protocol and ancillary headers" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2014b.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2014b.eb index 3119cd29b7..a354245bf6 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2014b.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2014b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb index 48199d0511..9f19fc4dfc 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb index c363620cb6..c2eb005cc6 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-gimkl-2.11.5.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2014b.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2014b.eb index 9d7f0c2a91..c0cb8f56f1 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2014b.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2014b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015a.eb index 87042e0e65..59a4298687 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015a.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015b.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015b.eb index b16c201ac1..20a477feb6 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015b.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2015b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb index 37b516e535..c3ac221b11 100644 --- a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-intel-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], diff --git a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-goolf-1.4.10.eb b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-goolf-1.4.10.eb index 93be023dae..9e6fad7729 100644 --- a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-goolf-1.4.10.eb @@ -9,7 +9,7 @@ description = """provides bitmaps for x""" toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/data/'] +source_urls = [XORG_DATA_SOURCE] sanity_check_paths = { 'files': ['include/X11/bitmaps/gray'], diff --git a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-4.1.13.eb b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-4.1.13.eb index 7edd725bb8..6dfd84dd09 100644 --- a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-4.1.13.eb @@ -8,7 +8,7 @@ description = """provides bitmaps for x""" toolchain = {'name': 'ictce', 'version': '4.1.13'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/data/'] +source_urls = [XORG_DATA_SOURCE] sanity_check_paths = { 'files': ['include/X11/bitmaps/gray'], diff --git a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-5.3.0.eb b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-5.3.0.eb index 38732656c2..23a639e880 100644 --- a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-ictce-5.3.0.eb @@ -9,7 +9,7 @@ description = """provides bitmaps for x""" toolchain = {'name': 'ictce', 'version': '5.3.0'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/data/'] +source_urls = [XORG_DATA_SOURCE] sanity_check_paths = { 'files': ['include/X11/bitmaps/gray'], diff --git a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2014b.eb b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2014b.eb index f7d2e42a4b..c294b4f211 100644 --- a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2014b.eb @@ -9,7 +9,7 @@ description = """provides bitmaps for x""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/data/'] +source_urls = [XORG_DATA_SOURCE] sanity_check_paths = { 'files': ['include/X11/bitmaps/gray'], diff --git a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2015a.eb b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2015a.eb index 7c6cc82582..4cb4a74155 100644 --- a/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xbitmaps/xbitmaps-1.1.1-intel-2015a.eb @@ -9,7 +9,7 @@ description = """provides bitmaps for x""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/data/'] +source_urls = [XORG_DATA_SOURCE] sanity_check_paths = { 'files': ['include/X11/bitmaps/gray'], diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb index 222c1cb8a9..c125fc2989 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.4.10.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb index f8d28a6517..658fd35838 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-goolf-1.5.14.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb index 7e5dd65346..a2085627e9 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-4.1.13.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '4.1.13'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb index e73a8f9515..6edad56122 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-ictce-5.3.0.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'ictce', 'version': '5.3.0'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb index 0f74426405..bd75285755 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.2.1-intel-2014b.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb index bceed61321..3876294b7f 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2014b.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb index 9bc6335cdf..53735a84e4 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb index 1800fbf094..beda89b5c6 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-gimkl-2.11.5.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb index eb7322e162..82aff3127f 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-goolf-1.5.14.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'goolf', 'version': '1.5.14'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb index 6156597f8b..4a87699495 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2014b.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb index 96189817b0..91c591e727 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015a.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb index d2b93b5852..c2246d9293 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2015b.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb index af65fa2a9d..08ca1e412b 100644 --- a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-intel-2016a.eb @@ -9,7 +9,7 @@ description = """XExtProto protocol headers.""" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/%s' % x for x in [ diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2014b.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2014b.eb index b0ee431324..883ec594b7 100644 --- a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2014b.eb +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2014b.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers for xinerama" toolchain = {'name': 'foss', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/panoramiXproto.h'], diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2014b.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2014b.eb index 797b75e5e7..e582ff06dd 100644 --- a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2014b.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers for xinerama" toolchain = {'name': 'intel', 'version': '2014b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/panoramiXproto.h'], diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2015b.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2015b.eb index e96e89759a..7e6eb92e97 100644 --- a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2015b.eb +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2015b.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers for xinerama" toolchain = {'name': 'intel', 'version': '2015b'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/panoramiXproto.h'], diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb index d198aa80e4..892ed9f5bd 100644 --- a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers for xinerama" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/panoramiXproto.h'], diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goalf-1.1.0-no-OFED.eb index f6c2e0c627..572e38002b 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goalf-1.1.0-no-OFED.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.4.10.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.4.10.eb index 241268e4a6..6eb06bc7d4 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.4.10.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.5.14.eb index ab202e5075..5054d70df3 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-goolf-1.5.14.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.0.6.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.0.6.eb index e0f4abf144..ddf767b605 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.0.6.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '4.0.6'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.1.13.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.1.13.eb index 884e64e8dd..06bdb8bc21 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-4.1.13.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '4.1.13'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-5.3.0.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-5.3.0.eb index 8f17ba5d45..7d12c7f86a 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.23-ictce-5.3.0.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.26-foss-2014b.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.26-foss-2014b.eb index bdb6d9e8c7..76cc9f4a7a 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.26-foss-2014b.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.26-foss-2014b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.26-intel-2014b.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.26-intel-2014b.eb index 74b305ce8c..1caa382ace 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.26-intel-2014b.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.26-intel-2014b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2014b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-goolf-1.5.14.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-goolf-1.5.14.eb index 4ec0e6221a..4d66b00ecb 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-goolf-1.5.14.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-goolf-1.5.14.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goolf', 'version': '1.5.14'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2015a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2015a.eb index f9bd7118c8..a0292fbf8e 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2015a.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.27-intel-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb index 3e787177f0..2a47f2490b 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers" toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb index 2591e436f9..8dab7213fb 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers" toolchain = {'name': 'gimkl', 'version': '2.11.5'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2015b.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2015b.eb index d3de936da4..6722798efb 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2015b.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2015b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb index 1d3df458a7..9de353786c 100644 --- a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-intel-2016a.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers" toolchain = {'name': 'intel', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', -- GitLab From c025b26559a8de6353a6e2f64b8a16413b2f1900 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Wed, 6 Apr 2016 13:06:53 -0500 Subject: [PATCH 654/732] Adhering to the 120 characters per line standard for the description variable --- easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index 097d50c5b6..64d81e0783 100644 --- a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -2,7 +2,7 @@ # Author: Ravi Tripathi # Email: ravi89@uab.edu -easyblock = "Binary" +easyblock = "PackedBinary" name = 'MRIcron' version = '06_22_15' @@ -19,8 +19,8 @@ source_urls = ['https://www.nitrc.org/frs/download.php/7765/'] sources = ['lx.zip'] # Following commands are used to unzip the files and copy the content to install directory -install_cmd = "unzip lx.zip &&" -install_cmd += "cp -a %(builddir)s/* %(installdir)s" +#install_cmd = "unzip lx.zip &&" +#install_cmd += "cp -a %(builddir)s/* %(installdir)s" sanity_check_paths = { 'files': ["dcm2nii", "dcm2niigui", "mricron", "npm"], -- GitLab From 8be21fa9d9b4d44c566d83c7b8e48cf187d7f4f5 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Wed, 6 Apr 2016 13:31:56 -0500 Subject: [PATCH 655/732] Removing source_url and adding a comment detailing how to download zip'd files manually from the website --- easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index 64d81e0783..a984af8d3b 100644 --- a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -15,12 +15,10 @@ Features layers, ROIs, and volume rendering. """ toolchain = {'name': 'dummy', 'version': 'dummy'} -source_urls = ['https://www.nitrc.org/frs/download.php/7765/'] -sources = ['lx.zip'] - -# Following commands are used to unzip the files and copy the content to install directory -#install_cmd = "unzip lx.zip &&" -#install_cmd += "cp -a %(builddir)s/* %(installdir)s" +# Automatic Download doesn't work for this software sice you need to accept their +# license, so you can download it manually at https://www.nitrc.org/frs/download.php/7765/ +# and place it in a folder where Easybuild can see it. +sources = [SOURCE.ZIP] sanity_check_paths = { 'files': ["dcm2nii", "dcm2niigui", "mricron", "npm"], -- GitLab From d45ee07c957fb86c3a3794ee2ee8f085ccbf68ec Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Wed, 6 Apr 2016 13:57:55 -0500 Subject: [PATCH 656/732] Corrected some spell errors --- easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index a984af8d3b..4c0655294e 100644 --- a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -15,8 +15,8 @@ Features layers, ROIs, and volume rendering. """ toolchain = {'name': 'dummy', 'version': 'dummy'} -# Automatic Download doesn't work for this software sice you need to accept their -# license, so you can download it manually at https://www.nitrc.org/frs/download.php/7765/ +# Automatic Download doesn't work for this software as you need to accept their license, +# so you can download it manually at https://www.nitrc.org/frs/download.php/7765/ # and place it in a folder where Easybuild can see it. sources = [SOURCE.ZIP] -- GitLab From 4c0b59ae9650f557c12569e0085e22f6ec14e1e2 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Wed, 6 Apr 2016 14:34:11 -0500 Subject: [PATCH 657/732] Adding the source file to the Easyconfig file --- easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index 4c0655294e..daea20393e 100644 --- a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -18,7 +18,7 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # Automatic Download doesn't work for this software as you need to accept their license, # so you can download it manually at https://www.nitrc.org/frs/download.php/7765/ # and place it in a folder where Easybuild can see it. -sources = [SOURCE.ZIP] +sources = ['lx.zip'] sanity_check_paths = { 'files': ["dcm2nii", "dcm2niigui", "mricron", "npm"], -- GitLab From d97b12f986e603dac7e20078dd6db73d79ac709d Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Wed, 6 Apr 2016 15:06:42 -0500 Subject: [PATCH 658/732] Adding the md5 checksum value for the source --- easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index daea20393e..69196eb784 100644 --- a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -20,6 +20,8 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # and place it in a folder where Easybuild can see it. sources = ['lx.zip'] +checksums = ['a2d8b1c053384220953f6b670d0fd4df'] + sanity_check_paths = { 'files': ["dcm2nii", "dcm2niigui", "mricron", "npm"], 'dirs': ["example", "lut", "templates"] -- GitLab From 29f2c6b09b5e6b7d871d0da26aab6597c5c52163 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Wed, 6 Apr 2016 18:05:56 -0400 Subject: [PATCH 659/732] libXrandr-1.5.0 easyconfig for foss-2016a --- .../l/libXrandr/libXrandr-1.5.0-foss-2016a.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb b/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb new file mode 100644 index 0000000000..b6614e79e7 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXrandr' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Resize, Rotate and Reflection extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('randrproto', '1.5.0'), + ('renderproto', '0.11'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXrandr.%s' % SHLIB_EXT, 'lib/libXrandr.a'], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From a7a61c9d0568c5d4f59df08abb5aae85f3def8f4 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Wed, 6 Apr 2016 18:08:32 -0400 Subject: [PATCH 660/732] randrproto-1.5.0 easyconfig for foss-2016a --- .../randrproto/randrproto-1.5.0-foss-2016a.eb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb new file mode 100644 index 0000000000..d480848616 --- /dev/null +++ b/easybuild/easyconfigs/r/randrproto/randrproto-1.5.0-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'randrproto' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrandr protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 44cf756826c8e52b397447b030e627360e7c5bdf Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Wed, 6 Apr 2016 22:38:57 -0400 Subject: [PATCH 661/732] libXi-1.7.6 for foss-2016a toolchain --- .../l/libXi/libXi-1.7.6-foss-2016a.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb new file mode 100644 index 0000000000..bd92d68db6 --- /dev/null +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' +name = 'libXi' +version = '1.7.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """LibXi provides an X Window System client interface to the XINPUT extension to the X protocol.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('inputproto', '2.3.1'), + ('xorg-macros', '1.19.0'), +] + +dependencies = [ + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/XInput.h', 'include/X11/extensions/XInput2.h', 'lib/libXi.%s' % SHLIB_EXT, 'lib/libXi.a'], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From a5dd9bfb4552cf157384fbccf9b9538e771453f7 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Wed, 6 Apr 2016 22:39:56 -0400 Subject: [PATCH 662/732] libXfixes-5.0.1 for foss-2016a toolchain --- .../l/libXfixes/libXfixes-5.0.1-foss-2016a.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb new file mode 100644 index 0000000000..aa11951f76 --- /dev/null +++ b/easybuild/easyconfigs/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From fd70a1bdd1a84da2729aa341abe5e8262512e767 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Wed, 6 Apr 2016 22:41:19 -0400 Subject: [PATCH 663/732] xorg-macros-1.19.0 for foss-2016a toolchain --- .../xorg-macros-1.19.0-foss-2016a.eb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb new file mode 100644 index 0000000000..3965c12078 --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 285276c385c90279c966915beba4bb24fbc1aae1 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Wed, 6 Apr 2016 22:44:31 -0400 Subject: [PATCH 664/732] fixesproto-5.0 for foss-2016a toolchain --- .../f/fixesproto/fixesproto-5.0-foss-2016a.eb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb new file mode 100644 index 0000000000..b04efa3b3a --- /dev/null +++ b/easybuild/easyconfigs/f/fixesproto/fixesproto-5.0-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'fixesproto' +version = '5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org FixesProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xfixesproto.h', 'include/X11/extensions/xfixeswire.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' -- GitLab From 03e17713072089963a0bceb1a92e343f650ef664 Mon Sep 17 00:00:00 2001 From: "Javier Ruiz Bosch-jrbosch@uclv.cu" Date: Thu, 7 Apr 2016 00:21:05 -0400 Subject: [PATCH 665/732] libGLU for foss-2016a toolchain --- .../l/libGLU/libGLU-9.0.0-foss-2016a.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb new file mode 100644 index 0000000000..087bd589cb --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libGLU' +version = '9.0.0' + +homepage = 'ftp://ftp.freedesktop.org/pub/mesa/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = ['ftp://ftp.freedesktop.org/pub/mesa/glu/'] +sources = ['glu-%(version)s.tar.bz2'] + +dependencies = [ + ('Mesa', '11.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libGLU.so.1'], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 6db2fe08a4d22e3e21471bca3ae1eb74e3bc437d Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 7 Apr 2016 09:37:09 +0200 Subject: [PATCH 666/732] use of %(pyver)s --- .../p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb index bc1187561f..e08e25c6bb 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb @@ -2,6 +2,7 @@ easyblock = 'PythonPackage' name = 'Pillow' version = '3.2.0' +versionsuffix = '-Python-%(pyver)s' homepage = 'http://pillow.readthedocs.org/' description = """Pillow is the 'friendly PIL fork' by Alex Clark and Contributors. @@ -12,12 +13,8 @@ toolchain = {'name': 'intel', 'version': '2016a'} source_urls = [PYPI_SOURCE] sources = [SOURCE_TAR_GZ] -python = 'Python' -pyver = '2.7.11' -versionsuffix = '-%s-%s' % (python, pyver) - dependencies = [ - (python, pyver), + ('Python', '2.7.11'), ('libjpeg-turbo', '1.4.2'), ('zlib', '1.2.8'), ('LibTIFF', '4.0.6'), -- GitLab From f5cca74c3cae5b9e3e51677a37cc33fd0e25993d Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 10:02:48 +0200 Subject: [PATCH 667/732] modify easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig GLib-2.47.5-foss-2016a.eb, modify easyconfig freetype-2.6.2-foss-2016a.eb, modify easyconfig pixman-0.34.0-foss-2016a.eb, modify easyconfig fontconfig-2.11.94-foss-2016a.eb, add easyconfig libX11-1.6.3-foss-2016a.eb, add easyconfig libxcb-1.11.1-foss-2016a.eb, add easyconfig libXrender-0.9.9-foss-2016a.eb, add easyconfig libXext-1.3.3-foss-2016a.eb, add easyconfig renderproto-0.11-foss-2016a.eb, add easyconfig xextproto-7.3.0-foss-2016a.eb, add easyconfig xproto-7.0.28-foss-2016a.eb, add easyconfig libffi-3.2.1-foss-2016a.eb, add easyconfig gettext-0.19.7-foss-2016a.eb, add easyconfig libxml2-2.9.3-foss-2016a-Python-2.7.11.eb, add easyconfig PCRE-8.38-foss-2016a.eb, add easyconfig inputproto-2.3.1-foss-2016a.eb, add easyconfig libpthread-stubs-0.3-foss-2016a.eb, add easyconfig kbproto-1.0.7-foss-2016a.eb, add easyconfig xtrans-1.3.5-foss-2016a.eb, add easyconfig xorg-macros-1.19.0-foss-2016a.eb --- .../c/cairo/cairo-1.14.6-foss-2016a.eb | 30 ++++++++++++++- .../g/GLib/GLib-2.47.5-foss-2016a.eb | 33 +++++++++++++++++ .../g/gettext/gettext-0.19.7-foss-2016a.eb | 23 ++++++++++++ .../inputproto/inputproto-2.3.1-foss-2016a.eb | 19 ++++++++++ .../k/kbproto/kbproto-1.0.7-foss-2016a.eb | 19 ++++++++++ .../l/libX11/libX11-1.6.3-foss-2016a.eb | 37 +++++++++++++++++++ .../l/libXext/libXext-1.3.3-foss-2016a.eb | 34 +++++++++++++++++ .../libXrender/libXrender-0.9.9-foss-2016a.eb | 32 ++++++++++++++++ .../l/libffi/libffi-3.2.1-foss-2016a.eb | 23 ++++++++++++ .../libpthread-stubs-0.3-foss-2016a.eb | 20 ++++++++++ .../l/libxcb/libxcb-1.11.1-foss-2016a.eb | 33 +++++++++++++++++ .../libxml2-2.9.3-foss-2016a-Python-2.7.11.eb | 30 +++++++++++++++ .../p/PCRE/PCRE-8.38-foss-2016a.eb | 20 ++++++++++ .../renderproto-0.11-foss-2016a.eb | 20 ++++++++++ .../x/xextproto/xextproto-7.3.0-foss-2016a.eb | 24 ++++++++++++ .../xorg-macros-1.19.0-foss-2016a.eb | 22 +++++++++++ .../x/xproto/xproto-7.0.28-foss-2016a.eb | 23 ++++++++++++ .../x/xtrans/xtrans-1.3.5-foss-2016a.eb | 22 +++++++++++ 18 files changed, 462 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb create mode 100644 easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb create mode 100644 easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb create mode 100644 easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb index 4afe79dcce..ab395e2001 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -1,6 +1,6 @@ easyblock = 'ConfigureMake' -name = "cairo" +name = 'cairo' version = '1.14.6' homepage = 'http://cairographics.org' @@ -13,6 +13,8 @@ toolchain = {'name': 'foss', 'version': '2016a'} source_urls = ['http://cairographics.org/releases/'] sources = [SOURCE_TAR_XZ] +glibver = '2.47.5' + dependencies = [ ('bzip2', '1.0.6'), ('zlib', '1.2.8'), @@ -21,9 +23,33 @@ dependencies = [ ('pixman', '0.34.0'), ('fontconfig', '2.11.94'), ('expat', '2.1.0'), + ('GLib', glibver), + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXrender', '0.9.9'), + ('libXext', '1.3.3'), +] + +builddependencies = [ + ('renderproto', '0.11'), + ('libXext', '1.3.3'), + ('xextproto', '7.3.0'), + ('libX11', '1.6.3'), + ('xproto', '7.0.28'), + ('libxcb', '1.11.1') ] # disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC -configopts = "--enable-symbol-lookup=no" +configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes " + +sanity_check_paths = { + 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', + 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', + 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + + ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', + '-script', '-script-interpreter', '-svg', '-version', + '-xlib', '-xlib-xrender']], + 'dirs': ['lib/pkgconfig'], +} moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb new file mode 100644 index 0000000000..fb0fcbff8c --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.47.5' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.7'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', '2.7.11')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb new file mode 100644 index 0000000000..168b2490e6 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.3'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb new file mode 100644 index 0000000000..be4171cde7 --- /dev/null +++ b/easybuild/easyconfigs/i/inputproto/inputproto-2.3.1-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'inputproto' +version = '2.3.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org InputProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb new file mode 100644 index 0000000000..bca5ddd7ca --- /dev/null +++ b/easybuild/easyconfigs/k/kbproto/kbproto-1.0.7-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb new file mode 100644 index 0000000000..7bbdcf2dc4 --- /dev/null +++ b/easybuild/easyconfigs/l/libX11/libX11-1.6.3-foss-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', '', True), + ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xtrans', '1.3.5'), +] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb new file mode 100644 index 0000000000..b53c0d9a18 --- /dev/null +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('libpthread-stubs', '0.3'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb new file mode 100644 index 0000000000..12b8caece2 --- /dev/null +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), + ('libX11', '1.6.3'), + ('libpthread-stubs', '0.3'), + ('xorg-macros', '1.19.0'), + ('xproto', '7.0.28') +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb new file mode 100644 index 0000000000..c7c638b6fa --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb new file mode 100644 index 0000000000..fcb767cfdb --- /dev/null +++ b/easybuild/easyconfigs/l/libpthread-stubs/libpthread-stubs-0.3-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpthread-stubs' +version = '0.3' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'foss', 'version': '2016a'} + +sanity_check_paths = { + 'files': ['lib/pkgconfig/pthread-stubs.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb new file mode 100644 index 0000000000..d818b47843 --- /dev/null +++ b/easybuild/easyconfigs/l/libxcb/libxcb-1.11.1-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('xcb-proto', '1.11', '', True), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), +] +dependencies = [ + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..0237c8f83b --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb new file mode 100644 index 0000000000..1fe2fcb26c --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.38-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.38' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb new file mode 100644 index 0000000000..48199d0511 --- /dev/null +++ b/easybuild/easyconfigs/r/renderproto/renderproto-0.11-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'renderproto' +version = '0.11' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrender protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['render.h', 'renderproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb new file mode 100644 index 0000000000..9bc6335cdf --- /dev/null +++ b/easybuild/easyconfigs/x/xextproto/xextproto-7.3.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb new file mode 100644 index 0000000000..3965c12078 --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb new file mode 100644 index 0000000000..3e787177f0 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.28-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb new file mode 100644 index 0000000000..1d32cb1ae6 --- /dev/null +++ b/easybuild/easyconfigs/x/xtrans/xtrans-1.3.5-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From f73937858cb1ce3028affcc9f53f79f287f9a3af Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 10:21:22 +0200 Subject: [PATCH 668/732] modify easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig libXau-1.0.8-foss-2016a.eb, add easyconfig libXdmcp-1.1.2-foss-2016a.eb --- .../c/cairo/cairo-1.14.6-foss-2016a.eb | 4 ++- .../l/libXau/libXau-1.0.8-foss-2016a.eb | 25 +++++++++++++++++++ .../l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb | 25 +++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb index ab395e2001..5cf49b60d8 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -25,9 +25,11 @@ dependencies = [ ('expat', '2.1.0'), ('GLib', glibver), ('libX11', '1.6.3'), + ('libXau', '1.0.8'), ('libxcb', '1.11.1'), - ('libXrender', '0.9.9'), + ('libXdmcp', '1.1.2'), ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), ] builddependencies = [ diff --git a/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb new file mode 100644 index 0000000000..8694ab5ad2 --- /dev/null +++ b/easybuild/easyconfigs/l/libXau/libXau-1.0.8-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb new file mode 100644 index 0000000000..c12e65e6e8 --- /dev/null +++ b/easybuild/easyconfigs/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.28'), +] +sanity_check_paths = { + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' -- GitLab From 3f8d502c4b072f4e045c7ed18628e219a304cd24 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 10:46:56 +0200 Subject: [PATCH 669/732] modify easyconfig Blitz++-0.10-foss-2016a.eb, add easyconfig Blitz++-0.10-goolf-1.5.16.eb --- .../b/Blitz++/Blitz++-0.10-foss-2016a.eb | 9 ++------- .../b/Blitz++/Blitz++-0.10-goolf-1.5.16.eb | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-goolf-1.5.16.eb diff --git a/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb b/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb index 03886c8db9..f91bad5dd3 100644 --- a/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb +++ b/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-foss-2016a.eb @@ -10,16 +10,11 @@ description = """Blitz++ is a (LGPLv3+) licensed meta-template library for array toolchain = {'name': 'foss', 'version': '2016a'} sources = ['blitz-%(version)s.tar.gz'] -source_urls = ['https://sourceforge.net/projects/blitz/files/blitz/%(name)s %(version)s', - 'download'] +source_urls = [('https://sourceforge.net/projects/blitz/files/blitz/%(name)s %(version)s', 'download')] sanity_check_paths = { 'files': ['lib/libblitz.a'], - 'dirs': ['include/blitz/array', - 'include/blitz/gnu', - 'include/blitz/meta', - 'include/random', - 'lib/pkgconfig'], + 'dirs': ['include/blitz/array', 'include/blitz/gnu', 'include/blitz/meta', 'include/random', 'lib/pkgconfig'], } moduleclass = 'lib' diff --git a/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-goolf-1.5.16.eb b/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-goolf-1.5.16.eb new file mode 100644 index 0000000000..f75014e6f2 --- /dev/null +++ b/easybuild/easyconfigs/b/Blitz++/Blitz++-0.10-goolf-1.5.16.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'Blitz++' +version = '0.10' + +homepage = 'http://blitz.sourceforge.net/' +description = """Blitz++ is a (LGPLv3+) licensed meta-template library for array manipulation in C++ + with a speed comparable to Fortran implementations, while preserving an object-oriented interface""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +sources = ['blitz-%(version)s.tar.gz'] +source_urls = [('https://sourceforge.net/projects/blitz/files/blitz/%(name)s %(version)s', 'download')] + +sanity_check_paths = { + 'files': ['lib/libblitz.a'], + 'dirs': ['include/blitz/array', 'include/blitz/gnu', 'include/blitz/meta', 'include/random', 'lib/pkgconfig'], +} + +moduleclass = 'lib' -- GitLab From 9f9d4d40dcff4c9109de8ce909ca0e950a386531 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 10:53:06 +0200 Subject: [PATCH 670/732] modify easyconfig Saxon-HE-9.7.0.4-Java-1.7.0_79.eb --- .../easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb b/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb index eed56a9078..d38576ab53 100644 --- a/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb +++ b/easybuild/easyconfigs/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb @@ -2,6 +2,7 @@ easyblock = 'Tarball' name = 'Saxon-HE' version = '9.7.0.4' +versionsuffix = '-Java-%(javaver)s' homepage = 'http://saxon.sourceforge.net' description = """Open Source SAXON XSLT processor developed by Saxonica Limited.""" @@ -9,11 +10,8 @@ description = """Open Source SAXON XSLT processor developed by Saxonica Limited. toolchain = {'name': 'dummy', 'version': ''} sources = ['SaxonHE%sJ.zip' % version.replace(".","-")] - source_urls = ['https://sourceforge.net/projects/saxon/files/Saxon-HE/%(version_major_minor)s' , 'download'] -versionsuffix = '-Java-%(javaver)s' - dependencies = [('Java', '1.7.0_79')] jarfiles = ['saxon%(version_major)she.jar', 'saxon%(version_major)s-test.jar', 'saxon%(version_major)s-xqj.jar'] -- GitLab From 4c3641259118bc70d74b75893f2c24e348a1d661 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Thu, 7 Apr 2016 11:40:45 +0200 Subject: [PATCH 671/732] 1 --- .../g/GConf/GConf-3.2.6-intel-2016a.eb | 39 ++++++++++++++++ ...Python-3.0.2.0-intel-2016-Python-2.7.11.eb | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb create mode 100644 easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb b/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb new file mode 100644 index 0000000000..118e97695c --- /dev/null +++ b/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'GConf' +version = '3.2.6' + +homepage = 'https://projects.gnome.org/gconf/' +description = """GConf is a system for storing application preferences. + It is intended for user preferences; not configuration + of something like Apache, or arbitrary data storage.""" + +toolchain = {'name': 'intel', 'version': '2014b'} + +source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/GConf/%(version_major_minor)s/'] +sources = [SOURCE_TAR_XZ] + +dependencies = [ + ('dbus-glib', '0.106'), + ('GLib', '2.47.5'), + ('GObject-Introspection', '1.47.1'), + ('libxml', '2.9.3'), + ('GTK+', '2.24.28'), +] + +configopts = '--disable-orbit ' + +sanity_check_paths = { + 'files': ['bin/gconf%s' % x for x in['-merge-tree', 'tool-2']] + + ['bin/gsettings-%s-convert' % x for x in ['data', 'schema']] + + ['lib/libgconf-2.%s' % x for x in['a', 'so']], + 'dirs': ['include', 'share'] +} + +modextrapaths = { + 'GI_TYPELIB_PATH': 'share', + 'XDG_DATA_DIRS': 'share', +} + +moduleclass = 'devel' + diff --git a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb new file mode 100644 index 0000000000..2bca75979e --- /dev/null +++ b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb @@ -0,0 +1,45 @@ +name = 'wxPython' +version = '3.0.2.0' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'http://www.wxpython.org' +description = """wxPython is a GUI toolkit for the Python programming language. + It allows Python programmers to create programs with a robust, + highly functional graphical user interface, simply and easily. + It is implemented as a Python extension module (native code) + that wraps the popular wxWidgets cross platform GUI library, + which is written in C++.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-src-%(version)s.tar.bz2'] + +patches = ['%(name)s_%(version)s_intel.patch'] + +dependencies = [ + ('Python', '2.7.11'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('expat', '2.1.0'), + ('GTK+', '2.24.28'), + ('GConf', '3.2.6'), + ('GST-plugins-base', '0.10.36'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/wxrc'] + + ['bin/py%s' % x for x in ['alacarte', 'alamode', 'crust', 'shell', 'wrap', 'wxrc']] + + ['lib/lib%s-3.0.so' % x for x in ['wx_baseu', 'wx_gtk2u_core']], + 'dirs': ['include', 'share', 'lib/python%(pyshortver)s/site-packages'] +} + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages/wx-3.0-gtk2'], +} + +moduleclass = 'vis' -- GitLab From fb1feec5cb73661660cfa839cf2ff6aa193a2b5c Mon Sep 17 00:00:00 2001 From: RvDijk Date: Thu, 7 Apr 2016 15:42:40 +0200 Subject: [PATCH 672/732] removed newline --- easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb index 63c3fa7e2d..6b593148b4 100644 --- a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.28-foss-2016a.eb @@ -21,4 +21,4 @@ dependencies = [ ('libxml2', '2.9.3'), ] -moduleclass = 'lib' \ No newline at end of file +moduleclass = 'lib' -- GitLab From 7b27041bb0c383832ffb63e6f205c1f091a3934a Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 15:59:16 +0200 Subject: [PATCH 673/732] add easyconfig libxml2-2.9.3-foss-2016a-Python-2.7.11.eb --- .../libxml2-2.9.3-foss-2016a-Python-2.7.11.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..0237c8f83b --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' -- GitLab From 690b3dbdd43db476033b8e56facd240268975327 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 16:45:13 +0200 Subject: [PATCH 674/732] add easyconfig MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb, add easyconfig libxml2-2.9.2-goolf-1.5.16.eb, add easyconfig HDF5-1.8.9-goolf-1.5.16.eb, add easyconfig Szip-2.1-goolf-1.5.16.eb --- .../h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb | 22 ++++++++++++++ .../l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb | 29 ++++++++++++++++++ ...goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb | 30 +++++++++++++++++++ .../s/Szip/Szip-2.1-goolf-1.5.16.eb | 23 ++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb create mode 100644 easybuild/easyconfigs/s/Szip/Szip-2.1-goolf-1.5.16.eb diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb new file mode 100644 index 0000000000..755c2cc7f9 --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb @@ -0,0 +1,22 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-05_14-22-07 +name = 'HDF5' +version = '1.8.9' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['configure_libtool.patch'] + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb new file mode 100644 index 0000000000..54c5dad803 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb new file mode 100644 index 0000000000..a5aa488ebe --- /dev/null +++ b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'MDSplus' +version = '7.0.67' +versionsuffix = '-Java-%(javaver)s-Python-%(pyver)s' + +homepage = 'http://mdsplus.org/' +description = """MDSplus is a set of software tools for data acquisition and storage and a methodology + for management of complex scientific data.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ['https://github.com/%(name)s/%(namelower)s/archive'] +sources = ['stable_release-%s.zip' % version.replace('.','-')] + +dependencies = [ + ('Java', '1.7.0_79', '', True), + ('Python', '2.7.9'), + ('HDF5', '1.8.9'), + ('libxml2', '2.9.2'), + ('zlib', '1.2.8') +] + +configopts = '--with-jdk=$JAVA_HOME' + +preconfigopts = 'export CFLAGS="$CFLAGS -I$EBROOTLIBXML2/include/libxml2 " && ' + +parallel = 1 + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1-goolf-1.5.16.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1-goolf-1.5.16.eb new file mode 100644 index 0000000000..73e27f5f6c --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1-goolf-1.5.16.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' -- GitLab From ec8c9fd7d0dadd4dd1c5089f6135a0e87a76e244 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 8 Apr 2016 09:26:38 +0200 Subject: [PATCH 675/732] add easyconfig Python-2.7.9-goolf-1.5.16.eb, add easyconfig bzip2-1.0.6-goolf-1.5.16.eb, add easyconfig libreadline-6.3-goolf-1.5.16.eb, add easyconfig ncurses-5.9-goolf-1.5.16.eb, add easyconfig SQLite-3.8.8.1-goolf-1.5.16.eb, add easyconfig Tk-8.6.3-goolf-1.5.16-no-X11.eb, add easyconfig OpenSSL-1.0.1k-goolf-1.5.16.eb --- .../b/bzip2/bzip2-1.0.6-goolf-1.5.16.eb | 15 +++ .../libreadline-6.3-goolf-1.5.16.eb | 30 +++++ .../n/ncurses/ncurses-5.9-goolf-1.5.16.eb | 36 ++++++ .../o/OpenSSL/OpenSSL-1.0.1k-goolf-1.5.16.eb | 24 ++++ .../p/Python/Python-2.7.9-goolf-1.5.16.eb | 116 ++++++++++++++++++ .../s/SQLite/SQLite-3.8.8.1-goolf-1.5.16.eb | 38 ++++++ .../t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb | 25 ++++ 7 files changed, 284 insertions(+) create mode 100644 easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-5.9-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1k-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-goolf-1.5.16.eb create mode 100644 easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-goolf-1.5.16.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-goolf-1.5.16.eb new file mode 100644 index 0000000000..1f608a116f --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.6-goolf-1.5.16.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +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.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s/'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb new file mode 100644 index 0000000000..9a2a57c200 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-5.9-goolf-1.5.16.eb b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-goolf-1.5.16.eb new file mode 100644 index 0000000000..0d4841191f --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-5.9-goolf-1.5.16.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, +and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and +function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1k-goolf-1.5.16.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1k-goolf-1.5.16.eb new file mode 100644 index 0000000000..895b5bd87b --- /dev/null +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.1k-goolf-1.5.16.eb @@ -0,0 +1,24 @@ +name = 'OpenSSL' +version = '1.0.1k' + +homepage = 'http://www.openssl.org/' +description = """The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, + and Open Source toolchain implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) + protocols as well as a full-strength general purpose cryptography library. """ + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.openssl.org/source/'] + +patches = [ + 'OpenSSL-1.0.1f_icc-fixes.patch', + 'OpenSSL-1.0.1i-fix_parallel_build-1.patch', +] + +dependencies = [('zlib', '1.2.8')] + +runtest = 'test' + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb new file mode 100644 index 0000000000..dee7cd4fdf --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-goolf-1.5.16.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-goolf-1.5.16.eb new file mode 100644 index 0000000000..6946daaee7 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.8.8.1-goolf-1.5.16.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb new file mode 100644 index 0000000000..b383831c92 --- /dev/null +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' -- GitLab From 2b8706a0b067912224fda3a480f910701fe0cbe4 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Fri, 25 Mar 2016 17:19:45 +0200 Subject: [PATCH 676/732] add easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig freetype-2.6.2-foss-2016a.eb, add easyconfig fontconfig-2.11.94-foss-2016a.eb, add easyconfig pixman-0.34.0-foss-2016a.eb --- .../c/cairo/cairo-1.14.6-foss-2016a.eb | 29 +++++++++++++++++++ .../f/freetype/freetype-2.6.2-foss-2016a.eb | 3 +- .../p/pixman/pixman-0.34.0-foss-2016a.eb | 20 +++++++++++++ 3 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb new file mode 100644 index 0000000000..4afe79dcce --- /dev/null +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = "cairo" +version = '1.14.6' + +homepage = 'http://cairographics.org' +description = """Cairo is a 2D graphics library with support for multiple output devices. + Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, + PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_XZ] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libpng', '1.6.21'), + ('freetype', '2.6.2'), + ('pixman', '0.34.0'), + ('fontconfig', '2.11.94'), + ('expat', '2.1.0'), +] + +# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC +configopts = "--enable-symbol-lookup=no" + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb index 41c2f0204e..3111a314be 100644 --- a/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb +++ b/easybuild/easyconfigs/f/freetype/freetype-2.6.2-foss-2016a.eb @@ -14,8 +14,7 @@ sources = [SOURCE_TAR_GZ] dependencies = [('libpng', '1.6.21')] sanity_check_paths = { - 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, - 'lib/pkgconfig/freetype2.pc'], + 'files': ['bin/freetype-config', 'lib/libfreetype.a', 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], 'dirs': ['include/freetype2'], } diff --git a/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb b/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb new file mode 100644 index 0000000000..896aab1550 --- /dev/null +++ b/easybuild/easyconfigs/p/pixman/pixman-0.34.0-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = "pixman" +version = '0.34.0' + +homepage = 'http://www.pixman.org/' +description = """Pixman is a low-level software library for pixel manipulation, providing features such as image +compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and the X server.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cairographics.org/releases/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['lib/libpixman-1.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'vis' -- GitLab From 821479d0f1049f642b3f2ff7cfb9a2fca8f9206b Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 8 Apr 2016 10:18:48 +0200 Subject: [PATCH 677/732] 2 --- .../d/DBus/DBus-1.10.8-intel-2016a.eb | 24 +++++++++++ .../dbus-glib/dbus-glib-0.106-intel-2016a.eb | 25 +++++++++++ .../g/GConf/GConf-3.2.6-intel-2016a.eb | 5 ++- .../GST-plugins-base-0.10.36-intel-2016a.eb | 37 +++++++++++++++++ .../GStreamer-0.10.36-intel-2016a.eb | 41 +++++++++++++++++++ ...intltool-0.51.0-intel-2016a-Perl-5.22.1.eb | 25 +++++++++++ ...Python-3.0.2.0-intel-2016-Python-2.7.11.eb | 6 +++ ...XML-Parser-2.44-intel-2016a-Perl-5.22.1.eb | 27 ++++++++++++ 8 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/d/DBus/DBus-1.10.8-intel-2016a.eb create mode 100644 easybuild/easyconfigs/d/dbus-glib/dbus-glib-0.106-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb create mode 100644 easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb create mode 100644 easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb create mode 100644 easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.44-intel-2016a-Perl-5.22.1.eb diff --git a/easybuild/easyconfigs/d/DBus/DBus-1.10.8-intel-2016a.eb b/easybuild/easyconfigs/d/DBus/DBus-1.10.8-intel-2016a.eb new file mode 100644 index 0000000000..f322881382 --- /dev/null +++ b/easybuild/easyconfigs/d/DBus/DBus-1.10.8-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'DBus' +version = '1.10.8' + +homepage = 'http://dbus.freedesktop.org/doc/dbus-glib' +description = """D-Bus is a message bus system, a simple way for applications to talk + to one another. In addition to interprocess communication, D-Bus helps + coordinate process lifecycle; it makes it simple and reliable to code + a "single instance" application or daemon, and to launch applications + and daemons on demand when their services are needed.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://dbus.freedesktop.org/releases/dbus'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/dbus-%s' % x for x in ['cleanup-sockets', 'daemon', 'launch', 'monitor', 'run-session', 'send', 'uuidgen']] + + ['lib/libdbus-1.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/d/dbus-glib/dbus-glib-0.106-intel-2016a.eb b/easybuild/easyconfigs/d/dbus-glib/dbus-glib-0.106-intel-2016a.eb new file mode 100644 index 0000000000..321204b244 --- /dev/null +++ b/easybuild/easyconfigs/d/dbus-glib/dbus-glib-0.106-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'dbus-glib' +version = '0.106' + +homepage = 'http://dbus.freedesktop.org/doc/dbus-glib' +description = """D-Bus is a message bus system, a simple way for applications to talk to one another.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://dbus.freedesktop.org/releases/dbus-glib'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('GLib', '2.47.5'), + ('DBus', '1.10.8'), + ('expat', '2.1.0'), +] + +sanity_check_paths = { + 'files': ['bin/dbus-binding-tool', 'lib/libdbus-glib-1.%s' % SHLIB_EXT, 'lib/libdbus-glib-1.a'], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb b/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb index 118e97695c..ec87efba55 100644 --- a/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb @@ -8,7 +8,7 @@ description = """GConf is a system for storing application preferences. It is intended for user preferences; not configuration of something like Apache, or arbitrary data storage.""" -toolchain = {'name': 'intel', 'version': '2014b'} +toolchain = {'name': 'intel', 'version': '2016a'} source_urls = ['http://ftp.gnome.org/pub/GNOME/sources/GConf/%(version_major_minor)s/'] sources = [SOURCE_TAR_XZ] @@ -17,8 +17,9 @@ dependencies = [ ('dbus-glib', '0.106'), ('GLib', '2.47.5'), ('GObject-Introspection', '1.47.1'), - ('libxml', '2.9.3'), + ('libxml2', '2.9.3'), ('GTK+', '2.24.28'), + ('intltool', '0.51.0', '-Perl-5.22.1'), ] configopts = '--disable-orbit ' diff --git a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb new file mode 100644 index 0000000000..914e875639 --- /dev/null +++ b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'GST-plugins-base' +version = '0.10.36' + +homepage = 'http://gstreamer.freedesktop.org/' +description = """GStreamer is a library for constructing graphs of media-handling + components. The applications it supports range from simple + Ogg/Vorbis playback, audio/video streaming to complex audio + (mixing) and video (non-linear editing) processing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://gstreamer.freedesktop.org/src/gst-plugins-base'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [('GStreamer', '0.10.36')] + +#Does not work with Bison 3 +builddependencies = [ +# ('Bison', '2.7', '', True), + ('Bison', '3.0.4'), + ('flex', '2.6.0'), +] + +sanity_check_paths = { + 'files': ['bin/gst-%s-0.10' % x for x in ['discoverer', 'visualise']] + + ['lib/libgst%s-0.10.so' % x for x in ['app', 'audio', 'video']], + 'dirs': ['include', 'share'] +} + +modextrapaths = { + 'GI_TYPELIB_PATH': 'share', + 'XDG_DATA_DIRS': 'share', +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb b/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb new file mode 100644 index 0000000000..6c81f735d4 --- /dev/null +++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'GStreamer' +version = '0.10.36' + +homepage = 'http://gstreamer.freedesktop.org/' +description = """GStreamer is a library for constructing graphs of media-handling + components. The applications it supports range from simple + Ogg/Vorbis playback, audio/video streaming to complex audio + (mixing) and video (non-linear editing) processing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://gstreamer.freedesktop.org/src/gstreamer'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('GLib', '2.47.5'), + ('GObject-Introspection', '1.47.1'), + ('zlib', '1.2.8'), +] + +#Does not work with Bison 3 +builddependencies = [ +# ('Bison', '2.7', '', True), + ('Bison', '3.0.4'), + ('flex', '2.6.0'), +] + +sanity_check_paths = { + 'files': ['bin/gst-%s-0.10' % x for x in ['inspect', 'typefind', 'launch']] + + ['lib/libgst%s-0.10.so' % x for x in ['reamer', 'base', 'controller', 'check']], + 'dirs': ['include', 'share', 'libexec'] +} + +modextrapaths = { + 'GI_TYPELIB_PATH': 'share', + 'XDG_DATA_DIRS': 'share', +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb new file mode 100644 index 0000000000..4c3bc089de --- /dev/null +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'intltool' +version = '0.51.0' +versionsuffix = '-Perl-5.22.1' + +homepage = 'http://freedesktop.org/wiki/Software/intltool/' +description = """intltool is a set of tools to centralize translation of + many different file formats using GNU gettext-compatible PO files.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('XML-Parser', '2.44', versionsuffix), +] + +sanity_check_paths = { + 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb index 2bca75979e..439291d7b0 100644 --- a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb +++ b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb @@ -1,3 +1,6 @@ +easyblock = 'ConfigureMake' +#easyblock = 'PythonPackage' + name = 'wxPython' version = '3.0.2.0' versionsuffix = "-Python-%(pyver)s" @@ -31,6 +34,9 @@ dependencies = [ parallel = 1 +#options = {'modulename': 'wx'} +#skipsteps = ['install_step', 'make_installdir' ] + sanity_check_paths = { 'files': ['bin/wxrc'] + ['bin/py%s' % x for x in ['alacarte', 'alamode', 'crust', 'shell', 'wrap', 'wxrc']] + diff --git a/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.44-intel-2016a-Perl-5.22.1.eb b/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.44-intel-2016a-Perl-5.22.1.eb new file mode 100644 index 0000000000..5cb19baa1c --- /dev/null +++ b/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.44-intel-2016a-Perl-5.22.1.eb @@ -0,0 +1,27 @@ +easyblock = 'PerlModule' + +name = 'XML-Parser' +version = '2.44' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://search.cpan.org/~toddr/XML-Parser-2.41/' +description = """This is a Perl extension interface to James Clark's XML parser, expat.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cpan.metacpan.org/authors/id/T/TO/TODDR/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Perl', '5.22.1'), + ('expat', '2.1.0') +] + +options = {'modulename': 'XML::Parser'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/XML'], +} + +moduleclass = 'data' -- GitLab From 0263a7c1eae14b20cf0d549b928a77037cdc15ce Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 8 Apr 2016 10:39:37 +0200 Subject: [PATCH 678/732] Builddependencies fixed for GObject-introspection --- .../GObject-Introspection-1.42.0-intel-2014b.eb | 4 +++- .../GObject-Introspection-1.44.0-intel-2015a.eb | 3 +++ .../GObject-Introspection-1.47.1-intel-2015b.eb | 3 +++ .../GObject-Introspection-1.47.1-intel-2016a.eb | 8 +++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.42.0-intel-2014b.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.42.0-intel-2014b.eb index 7ae4e4f769..1f246a9bfc 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.42.0-intel-2014b.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.42.0-intel-2014b.eb @@ -18,9 +18,11 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('Python', '2.7.8'), ('GLib', '2.40.0'), - ('Bison', '3.0.2'), ] +builddependencies = [ + ('Bison', '3.0.2'), +] sanity_check_paths = { 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + ['lib/libgirepository-1.0.%s' % x for x in ['so', 'a']], diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.44.0-intel-2015a.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.44.0-intel-2015a.eb index 0461a34f5f..835de46b5b 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.44.0-intel-2015a.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.44.0-intel-2015a.eb @@ -18,6 +18,9 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('Python', '2.7.10'), ('GLib', '2.44.1'), +] + +builddependencies = [ ('Bison', '3.0.4', '', ('GCC', '4.9.2')), ] diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb index 7bff362648..3e1f37f646 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb @@ -18,6 +18,9 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('Python', '2.7.10'), ('GLib', '2.47.1'), +] + +builddependencies = [ ('Bison', '3.0.4'), ] diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb index eaa343080d..360f641464 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb @@ -20,14 +20,16 @@ pyver = '2.7.11' dependencies = [ ('Python', pyver), ('GLib', '2.47.5'), + ('libffi', '3.2.1'), +] + +builddependencies = [ + ('Autotools', '20150215'), ('flex', '2.6.0'), ('Bison', '3.0.4'), ('cairo', '1.14.6'), - ('libffi', '3.2.1'), ] -builddependencies = [('Autotools', '20150215')] - preconfigopts = "GI_SCANNER_DISABLE_CACHE=true " # avoid using hard-coded path to 'python' in shebang of scripts -- GitLab From 7b8ff1272ac3332e3a75cb50cf751cb568ae4ea2 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 8 Apr 2016 10:44:38 +0200 Subject: [PATCH 679/732] fixed gobject-intro builddep --- .../GObject-Introspection-1.47.1-foss-2016a.eb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb index 3c83530c29..2ea4584a28 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb @@ -20,14 +20,16 @@ pyver = '2.7.11' dependencies = [ ('Python', pyver), ('GLib', '2.47.5'), + ('libffi', '3.2.1'), +] + +builddependencies = [ + ('Autotools', '20150215'), ('flex', '2.6.0'), ('Bison', '3.0.4'), ('cairo', '1.14.6'), - ('libffi', '3.2.1'), ] -builddependencies = [('Autotools', '20150215')] - preconfigopts = "GI_SCANNER_DISABLE_CACHE=true " # avoid using hard-coded path to 'python' in shebang of scripts -- GitLab From ab78bd9b77913e4fc297e3a80c01225d559b051b Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 10:02:48 +0200 Subject: [PATCH 680/732] modify easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig GLib-2.47.5-foss-2016a.eb, modify easyconfig freetype-2.6.2-foss-2016a.eb, modify easyconfig pixman-0.34.0-foss-2016a.eb, modify easyconfig fontconfig-2.11.94-foss-2016a.eb, add easyconfig libX11-1.6.3-foss-2016a.eb, add easyconfig libxcb-1.11.1-foss-2016a.eb, add easyconfig libXrender-0.9.9-foss-2016a.eb, add easyconfig libXext-1.3.3-foss-2016a.eb, add easyconfig renderproto-0.11-foss-2016a.eb, add easyconfig xextproto-7.3.0-foss-2016a.eb, add easyconfig xproto-7.0.28-foss-2016a.eb, add easyconfig libffi-3.2.1-foss-2016a.eb, add easyconfig gettext-0.19.7-foss-2016a.eb, add easyconfig libxml2-2.9.3-foss-2016a-Python-2.7.11.eb, add easyconfig PCRE-8.38-foss-2016a.eb, add easyconfig inputproto-2.3.1-foss-2016a.eb, add easyconfig libpthread-stubs-0.3-foss-2016a.eb, add easyconfig kbproto-1.0.7-foss-2016a.eb, add easyconfig xtrans-1.3.5-foss-2016a.eb, add easyconfig xorg-macros-1.19.0-foss-2016a.eb --- .../c/cairo/cairo-1.14.6-foss-2016a.eb | 30 +++++++++++++++-- .../g/GLib/GLib-2.47.5-foss-2016a.eb | 33 +++++++++++++++++++ .../g/gettext/gettext-0.19.7-foss-2016a.eb | 23 +++++++++++++ .../l/libXext/libXext-1.3.3-foss-2016a.eb | 1 + .../libXrender/libXrender-0.9.9-foss-2016a.eb | 4 +++ .../l/libffi/libffi-3.2.1-foss-2016a.eb | 23 +++++++++++++ .../libxml2-2.9.3-foss-2016a-Python-2.7.11.eb | 30 +++++++++++++++++ .../xorg-macros-1.19.0-foss-2016a.eb | 22 +++++++++++++ 8 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb index 4afe79dcce..ab395e2001 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -1,6 +1,6 @@ easyblock = 'ConfigureMake' -name = "cairo" +name = 'cairo' version = '1.14.6' homepage = 'http://cairographics.org' @@ -13,6 +13,8 @@ toolchain = {'name': 'foss', 'version': '2016a'} source_urls = ['http://cairographics.org/releases/'] sources = [SOURCE_TAR_XZ] +glibver = '2.47.5' + dependencies = [ ('bzip2', '1.0.6'), ('zlib', '1.2.8'), @@ -21,9 +23,33 @@ dependencies = [ ('pixman', '0.34.0'), ('fontconfig', '2.11.94'), ('expat', '2.1.0'), + ('GLib', glibver), + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXrender', '0.9.9'), + ('libXext', '1.3.3'), +] + +builddependencies = [ + ('renderproto', '0.11'), + ('libXext', '1.3.3'), + ('xextproto', '7.3.0'), + ('libX11', '1.6.3'), + ('xproto', '7.0.28'), + ('libxcb', '1.11.1') ] # disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC -configopts = "--enable-symbol-lookup=no" +configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes " + +sanity_check_paths = { + 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.so', 'lib/cairo/libcairo-trace.a', + 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', + 'lib/libcairo-gobject.so', 'lib/libcairo-script-interpreter.so', 'lib/libcairo.so'] + + ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', + '-script', '-script-interpreter', '-svg', '-version', + '-xlib', '-xlib-xrender']], + 'dirs': ['lib/pkgconfig'], +} moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb new file mode 100644 index 0000000000..fb0fcbff8c --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.47.5-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.47.5' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.7'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', '2.7.11')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb new file mode 100644 index 0000000000..168b2490e6 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.3'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb index ce3e6d964e..0a0acbe42b 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-foss-2016a.eb @@ -15,6 +15,7 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), ('xextproto', '7.3.0'), + ('libpthread-stubs', '0.3'), ] dependencies = [ diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb index eee347a314..12b8caece2 100644 --- a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb @@ -14,6 +14,10 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('kbproto', '1.0.7'), ('renderproto', '0.11'), + ('libX11', '1.6.3'), + ('libpthread-stubs', '0.3'), + ('xorg-macros', '1.19.0'), + ('xproto', '7.0.28') ] dependencies = [ diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb new file mode 100644 index 0000000000..c7c638b6fa --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..0237c8f83b --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb new file mode 100644 index 0000000000..3965c12078 --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.0-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.0' + +homepage = 'http://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://cgit.freedesktop.org/xorg/util/macros/snapshot'] # no slash ('/') at the end! +sources = ['util-macros-%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From 23d49b344a3159cf6e1b84a0e873754b08789e41 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 7 Apr 2016 10:21:22 +0200 Subject: [PATCH 681/732] modify easyconfig cairo-1.14.6-foss-2016a.eb, add easyconfig libXau-1.0.8-foss-2016a.eb, add easyconfig libXdmcp-1.1.2-foss-2016a.eb --- easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb index ab395e2001..5cf49b60d8 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-foss-2016a.eb @@ -25,9 +25,11 @@ dependencies = [ ('expat', '2.1.0'), ('GLib', glibver), ('libX11', '1.6.3'), + ('libXau', '1.0.8'), ('libxcb', '1.11.1'), - ('libXrender', '0.9.9'), + ('libXdmcp', '1.1.2'), ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), ] builddependencies = [ -- GitLab From 3dcbdd98222ef584623e17fe698cf4f602897cdc Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Fri, 8 Apr 2016 12:02:01 +0100 Subject: [PATCH 682/732] Update IGVTools to 2.3.72 --- .../IGVTools/IGVTools-2.3.72-Java-1.7.0_80.eb | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/i/IGVTools/IGVTools-2.3.72-Java-1.7.0_80.eb diff --git a/easybuild/easyconfigs/i/IGVTools/IGVTools-2.3.72-Java-1.7.0_80.eb b/easybuild/easyconfigs/i/IGVTools/IGVTools-2.3.72-Java-1.7.0_80.eb new file mode 100644 index 0000000000..af0616b491 --- /dev/null +++ b/easybuild/easyconfigs/i/IGVTools/IGVTools-2.3.72-Java-1.7.0_80.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Modified by Adam Huffman +# The Francis Crick Institute + +easyblock = 'Tarball' + +name = 'IGVTools' +version = '2.3.72' + +homepage = 'http://www.broadinstitute.org/software/igv/' +description = """ This package contains command line utilities for preprocessing, + computing feature count density (coverage), sorting, and indexing data files. + See also http://www.broadinstitute.org/software/igv/igvtools_commandline. """ + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://data.broadinstitute.org/igv/projects/downloads/'] +sources = ['%(namelower)s_%(version)s.zip'] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +# add the installation dir to PATH +modextrapaths = { + 'PATH': '', +} + +sanity_check_paths = { + 'files': ["igvtools.jar", "igvtools"], + 'dirs': [], +} + +moduleclass = 'bio' -- GitLab From 4dab0a4ea3bcc8e35b8f22daab6ba0ebe764a781 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Fri, 8 Apr 2016 14:42:42 +0200 Subject: [PATCH 683/732] {vis}[intel-2016a] wxPython 3.0.2.0 (REVIEW) --- .../GST-plugins-base-0.10.36-intel-2016a.eb | 4 +-- .../GStreamer-0.10.36-intel-2016a.eb | 4 +-- .../libXxf86vm-1.1.4-intel-2016a.eb | 30 +++++++++++++++++++ ...Python-3.0.2.0-intel-2016-Python-2.7.11.eb | 12 ++++---- .../w/wxPython/wxPython_3.0.2.0_intel.patch | 12 ++++++++ .../xf86vidmodeproto-2.3.1-intel-2016a.eb | 19 ++++++++++++ 6 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 easybuild/easyconfigs/l/libXxf86vm/libXxf86vm-1.1.4-intel-2016a.eb create mode 100644 easybuild/easyconfigs/w/wxPython/wxPython_3.0.2.0_intel.patch create mode 100644 easybuild/easyconfigs/x/xf86vidmodeproto/xf86vidmodeproto-2.3.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb index 914e875639..af962689d7 100644 --- a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb @@ -18,9 +18,7 @@ dependencies = [('GStreamer', '0.10.36')] #Does not work with Bison 3 builddependencies = [ -# ('Bison', '2.7', '', True), - ('Bison', '3.0.4'), - ('flex', '2.6.0'), + ('Bison', '2.7', '', True), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb b/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb index 6c81f735d4..178e012daf 100644 --- a/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb @@ -22,9 +22,7 @@ dependencies = [ #Does not work with Bison 3 builddependencies = [ -# ('Bison', '2.7', '', True), - ('Bison', '3.0.4'), - ('flex', '2.6.0'), + ('Bison', '2.7', '', True), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libXxf86vm/libXxf86vm-1.1.4-intel-2016a.eb b/easybuild/easyconfigs/l/libXxf86vm/libXxf86vm-1.1.4-intel-2016a.eb new file mode 100644 index 0000000000..873ae3da80 --- /dev/null +++ b/easybuild/easyconfigs/l/libXxf86vm/libXxf86vm-1.1.4-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libXxf86vm' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 XFree86 video mode extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xf86vidmodeproto', '2.3.1'), + ('xorg-macros', '1.19.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xf86vmode.h']+ + ['lib/libXxf86vm.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb index 439291d7b0..4d7ba463bd 100644 --- a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb +++ b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb @@ -1,6 +1,3 @@ -easyblock = 'ConfigureMake' -#easyblock = 'PythonPackage' - name = 'wxPython' version = '3.0.2.0' versionsuffix = "-Python-%(pyver)s" @@ -30,12 +27,15 @@ dependencies = [ ('GTK+', '2.24.28'), ('GConf', '3.2.6'), ('GST-plugins-base', '0.10.36'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libSM', '1.2.2'), + ('libXxf86vm', '1.1.4'), ] -parallel = 1 +options = {'modulename': 'wx'} -#options = {'modulename': 'wx'} -#skipsteps = ['install_step', 'make_installdir' ] +parallel = 1 sanity_check_paths = { 'files': ['bin/wxrc'] + diff --git a/easybuild/easyconfigs/w/wxPython/wxPython_3.0.2.0_intel.patch b/easybuild/easyconfigs/w/wxPython/wxPython_3.0.2.0_intel.patch new file mode 100644 index 0000000000..ac58f0c1ac --- /dev/null +++ b/easybuild/easyconfigs/w/wxPython/wxPython_3.0.2.0_intel.patch @@ -0,0 +1,12 @@ +# Intel compiler have problems with precompiled headers (cannot mix C and C++ precompiled headers, like in GNU compilers) +# B. Hajgato (VUB) April 8th 2016 +--- wxPython-src-3.0.2.0/build/tools/build-wxwidgets.py.org 2014-11-27 21:49:59.000000000 +0100 ++++ wxPython-src-3.0.2.0/build/tools/build-wxwidgets.py 2016-04-08 13:03:01.362591062 +0200 +@@ -268,6 +268,7 @@ + configure_opts.append("--with-gtk=3") + + wxpy_configure_opts = [ ++ "--disable-precomp-headers", + "--with-opengl", + "--enable-sound", + "--enable-graphics_ctx", diff --git a/easybuild/easyconfigs/x/xf86vidmodeproto/xf86vidmodeproto-2.3.1-intel-2016a.eb b/easybuild/easyconfigs/x/xf86vidmodeproto/xf86vidmodeproto-2.3.1-intel-2016a.eb new file mode 100644 index 0000000000..3665e42444 --- /dev/null +++ b/easybuild/easyconfigs/x/xf86vidmodeproto/xf86vidmodeproto-2.3.1-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'xf86vidmodeproto' +version = '2.3.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 XFree86 video mode extension protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/xf86vm%s.h' % x for x in ['', 'proto', 'str']], + 'dirs': [] +} + +moduleclass = 'devel' -- GitLab From 2f44609dc27711bf4292e2b9101d2cbac77061f1 Mon Sep 17 00:00:00 2001 From: Javier Ruiz Date: Fri, 8 Apr 2016 16:38:14 -0400 Subject: [PATCH 684/732] Update source_urls parameter in ScientificPython easyconfig files --- .../ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb | 2 +- .../ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb | 2 +- .../ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb | 2 +- .../ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb | 2 +- .../ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb | 2 +- .../ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb | 2 +- .../ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb | 2 +- .../ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb | 2 +- .../ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb index b783e38692..c1aca8b5ad 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'gmpolf', 'version': '1.4.8'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/2309'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb index f3c253971b..65204949fb 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/2309'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb index ed6a708c5f..25d50d354e 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb @@ -10,7 +10,7 @@ and parallelization.""" toolchain = {'name': 'goolf', 'version': '1.4.10'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/2309'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb index 20336396df..9274b5b9ad 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'ictce', 'version': '4.0.6'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/2309'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb index fcc68a81ed..5aa3dd118d 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'ictce', 'version': '5.2.0'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/2309'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb index 997b8a1673..89a12d0943 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'ictce', 'version': '5.3.0'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/2309'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb index 2446abe86f..b745e7f0a4 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'intel', 'version': '2014b'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/4411'] sources = [SOURCE_TAR_GZ] python = "Python" diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb index 0170615e9c..876a244102 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'intel', 'version': '2015a'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/4570'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/4570'] sources = [SOURCE_TAR_GZ] python = 'Python' diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb index 47671f1164..857fd95a08 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb @@ -10,7 +10,7 @@ description = """ScientificPython is a collection of Python modules for scientif toolchain = {'name': 'intel', 'version': '2015b'} -source_urls = ['https://sourcesup.renater.fr/frs/download.php/4570'] +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/4570'] sources = [SOURCE_TAR_GZ] pyver = '2.7.11' -- GitLab From c74b00de25ab3199f39cde3c889c01383f1ef871 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 11:21:50 +0200 Subject: [PATCH 685/732] use XORG_LIB_SOURCE everywhere --- easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb | 2 +- easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb index fa49f6c97c..78420c88a5 100644 --- a/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libICE/libICE-1.0.9-foss-2016a.eb @@ -9,7 +9,7 @@ description = """X Inter-Client Exchange library for freedesktop.org""" toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('xtrans', '1.3.5'), diff --git a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb index fe3df1bbcf..289966eec9 100644 --- a/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libSM/libSM-1.2.2-foss-2016a.eb @@ -10,7 +10,7 @@ description = """X11 Session Management library, which allows for applications t toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] +source_urls = [XORG_LIB_SOURCE] dependencies = [ ('libICE', '1.0.9'), -- GitLab From 1a9927879a743d52c447108463b62b095a6d15ea Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 12:19:03 +0200 Subject: [PATCH 686/732] add checksums in SuiteSparse easyconfigs --- .../ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb | 2 ++ .../ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb | 2 ++ .../ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb | 2 ++ .../ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb | 2 ++ .../ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb | 2 ++ .../ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb | 2 ++ .../ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb | 2 ++ .../ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb | 2 ++ .../ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb | 2 ++ 9 files changed, 18 insertions(+) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb index b783e38692..ce094bf25b 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-gmpolf-1.4.8-Python-2.7.3.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'gmpolf', 'version': '1.4.8'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['82d8592635d6ae8608b3073dacf9e694'] + python = "Python" pythonversion = '2.7.3' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb index f3c253971b..a89c80a516 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['82d8592635d6ae8608b3073dacf9e694'] + python = "Python" pythonversion = '2.7.3' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb index ed6a708c5f..51bacf787c 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-goolf-1.4.10-Python-2.7.3.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['82d8592635d6ae8608b3073dacf9e694'] + python = "Python" pythonversion = '2.7.3' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb index 20336396df..a889a4de4d 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-4.0.6-Python-2.7.3.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'ictce', 'version': '4.0.6'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['82d8592635d6ae8608b3073dacf9e694'] + python = "Python" pythonversion = '2.7.3' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb index fcc68a81ed..2c70b32004 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.2.0-Python-2.7.3.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'ictce', 'version': '5.2.0'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['82d8592635d6ae8608b3073dacf9e694'] + python = "Python" pythonversion = '2.7.3' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb index 997b8a1673..e0938abda4 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8-ictce-5.3.0-Python-2.7.3.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['82d8592635d6ae8608b3073dacf9e694'] + python = "Python" pythonversion = '2.7.3' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb index 2446abe86f..feb8f56c9d 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.8.1-intel-2014b-Python-2.7.8.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'intel', 'version': '2014b'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/2309'] sources = [SOURCE_TAR_GZ] +checksums = ['73ee0df19c7b58cdf2954261f0763c77'] + python = "Python" pythonversion = '2.7.8' pythonshortversion = ".".join(pythonversion.split(".")[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb index 0170615e9c..01aca5b107 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015a-Python-2.7.9.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'intel', 'version': '2015a'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/4570'] sources = [SOURCE_TAR_GZ] +checksums = ['dc2987089e106cb807b4ccecf7adc071'] + python = 'Python' pythonversion = '2.7.9' pythonshortversion = '.'.join(pythonversion.split('.')[:-1]) diff --git a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb index 47671f1164..20da6ee305 100644 --- a/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.11.eb @@ -13,6 +13,8 @@ toolchain = {'name': 'intel', 'version': '2015b'} source_urls = ['https://sourcesup.renater.fr/frs/download.php/4570'] sources = [SOURCE_TAR_GZ] +checksums = ['dc2987089e106cb807b4ccecf7adc071'] + pyver = '2.7.11' pyshortver = '.'.join(pyver.split('.')[:2]) -- GitLab From ff6955fedb6d0c154f4ab0b3d8f057f986c215d7 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 9 Apr 2016 12:10:39 +0100 Subject: [PATCH 687/732] Initial version of bam-readcount --- ...readcount-0.7.4-cmake_install_prefix.patch | 12 +++++++ .../bam-readcount-0.7.4-foss-2015b.eb | 35 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch create mode 100644 easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb diff --git a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch new file mode 100644 index 0000000000..2916d1f5e7 --- /dev/null +++ b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch @@ -0,0 +1,12 @@ +diff -u bam-readcount-0.7.4/CMakeLists.txt bam-readcount-0.7.4.new/CMakeLists.txt +--- bam-readcount-0.7.4/CMakeLists.txt 2014-12-07 19:45:03.000000000 +0000 ++++ bam-readcount-0.7.4.new/CMakeLists.txt 2016-04-06 22:06:12.336807391 +0100 +@@ -2,7 +2,7 @@ + + project(bam-readcount) + +-set(CMAKE_INSTALL_PREFIX "/usr") ++#set(CMAKE_INSTALL_PREFIX "/usr") + set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_SOURCE_DIR}/build-common/cmake") + include(TestHelper) + include(VersionHelper) diff --git a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb new file mode 100644 index 0000000000..b19ba9482c --- /dev/null +++ b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman +# The Francis Crick Institute +easyblock = 'CMakeMake' + +name = 'bam-readcount' +version = '0.7.4' + +homepage = 'https://github.com/genome/bam-readcount' +description = """Count DNA sequence reads in BAM files""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/genome/%(name)s/archive'] + +patches = ['%(name)s-%(version)s-cmake_install_prefix.patch'] + +builddependencies = [ + ('SAMtools', '1.3'), + ('CMake', '3.4.1'), +] + +configopts = " -DCMAKE_INSTALL_PREFIX=%(installdir)s " + +prebuildopts = "export SAMTOOLS_ROOT=${EBROOTSAMTOOLS}/include/bam && make deps &&" + +separate_build_dir = True + +sanity_check_paths = { + 'files': ["bin/bam-readcount"], + 'dirs': [] +} + +moduleclass = 'bio' -- GitLab From 09e71b456c69f7db1a62915a145b1dab23b5e952 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 15:21:46 +0200 Subject: [PATCH 688/732] use XORG_PROTO_SOURCE + 'env' in preconfigopts --- .../easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb | 2 +- easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb | 2 +- .../l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb | 2 +- easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb index 0d7fd4a4a2..1fbffb2758 100644 --- a/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb +++ b/easybuild/easyconfigs/f/fontsproto/fontsproto-2.1.3-foss-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': [], diff --git a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb index d26077ac1e..850097aee1 100644 --- a/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb +++ b/easybuild/easyconfigs/g/glproto/glproto-1.4.17-foss-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb index 75924f159f..c39482e40c 100644 --- a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.13.4-foss-2016a.eb @@ -16,7 +16,7 @@ builddependencies = [ ('xorg-macros', '1.19.0'), ] -preconfigopts = "ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " +preconfigopts = "env ACLOCAL='aclocal -I $EBROOTXORGMINMACROS/share/aclocal' ./autogen.sh && " sanity_check_paths = { 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb index c9dd66c1c1..fb2151e5df 100644 --- a/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb +++ b/easybuild/easyconfigs/m/Mesa/Mesa-11.1.2-foss-2016a.eb @@ -53,7 +53,7 @@ configopts += " --with-osmesa-bits=32 --enable-texture-float " #preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' preconfigopts = ' libtoolize && ' -prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' sanity_check_paths = { 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, -- GitLab From 68db97d838656d94d12133f292533dc2670c42f0 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sat, 9 Apr 2016 14:51:56 +0100 Subject: [PATCH 689/732] Remove obsolete configopts and add explanation/authorship to patch --- .../bam-readcount-0.7.4-cmake_install_prefix.patch | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch index 2916d1f5e7..aecba22db8 100644 --- a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch +++ b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-cmake_install_prefix.patch @@ -1,3 +1,7 @@ +# patch to remove hard-coded installation prefix +# Adam Huffman +# The Francis Crick Institute + diff -u bam-readcount-0.7.4/CMakeLists.txt bam-readcount-0.7.4.new/CMakeLists.txt --- bam-readcount-0.7.4/CMakeLists.txt 2014-12-07 19:45:03.000000000 +0000 +++ bam-readcount-0.7.4.new/CMakeLists.txt 2016-04-06 22:06:12.336807391 +0100 -- GitLab From 86e08e86be0bf0b7717a15b4bd15b9ace3b60c60 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 16:37:07 +0200 Subject: [PATCH 690/732] sync preconfigopts/buildopts in GObject-Introspection 1.47.1 easyconfigs --- .../GObject-Introspection-1.47.1-intel-2015b.eb | 5 +++++ .../GObject-Introspection-1.47.1-intel-2016a.eb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb index 3e1f37f646..42f9c4f97f 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb @@ -24,6 +24,11 @@ builddependencies = [ ('Bison', '3.0.4'), ] +preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true " + +# avoid using hard-coded path to 'python' in shebang of scripts +buildopts = "PYTHON=python" + sanity_check_paths = { 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] + ['lib/libgirepository-1.0.%s' % x for x in ['so', 'a']], diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb index 360f641464..7606731e75 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2016a.eb @@ -30,7 +30,7 @@ builddependencies = [ ('cairo', '1.14.6'), ] -preconfigopts = "GI_SCANNER_DISABLE_CACHE=true " +preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true " # avoid using hard-coded path to 'python' in shebang of scripts buildopts = "PYTHON=python" -- GitLab From ebb1e4c1d3f91f420161ddacb12c4270b9380e84 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 16:39:35 +0200 Subject: [PATCH 691/732] sync (build) deps in GObject-Introspection 1.47.1 easyconfigs --- .../GObject-Introspection-1.47.1-intel-2015b.eb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb index 42f9c4f97f..b1d634cd35 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-intel-2015b.eb @@ -18,10 +18,14 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [ ('Python', '2.7.10'), ('GLib', '2.47.1'), + ('libffi', '3.2.1'), ] builddependencies = [ + ('Autotools', '20150215'), + ('flex', '2.6.0'), ('Bison', '3.0.4'), + ('cairo', '1.14.4'), ] preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true " -- GitLab From d0eedfe69ed10024cd995cb170fddb0d1467732d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 17:27:10 +0200 Subject: [PATCH 692/732] various small style fixes --- .../GObject-Introspection-1.47.1-foss-2016a.eb | 6 ++---- easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015a.eb | 1 + .../l/libXi/libXi-1.7.4-intel-2015b-Python-2.7.11.eb | 1 + easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b.eb | 1 + easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb | 1 + easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb | 1 + .../m/makedepend/makedepend-1.0.4-goalf-1.1.0-no-OFED.eb | 2 +- .../m/makedepend/makedepend-1.0.4-goolf-1.4.10.eb | 2 +- .../m/makedepend/makedepend-1.0.4-ictce-3.2.2.u3.eb | 2 +- .../m/makedepend/makedepend-1.0.4-ictce-4.0.6.eb | 2 +- .../m/makedepend/makedepend-1.0.4-ictce-4.1.13.eb | 2 +- .../m/makedepend/makedepend-1.0.4-ictce-5.3.0.eb | 2 +- .../m/makedepend/makedepend-1.0.4-ictce-5.5.0.eb | 2 +- .../m/makedepend/makedepend-1.0.4-iqacml-3.7.3.eb | 2 +- .../easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb | 2 +- .../m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb | 2 +- .../m/makedepend/makedepend-1.0.5-intel-2015a.eb | 2 +- .../m/makedepend/makedepend-1.0.5-intel-2015b.eb | 2 +- .../m/makedepend/makedepend-1.0.5-intel-2016a.eb | 2 +- 19 files changed, 20 insertions(+), 17 deletions(-) diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb index 2ea4584a28..ef2d0a1446 100644 --- a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb +++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.47.1-foss-2016a.eb @@ -15,10 +15,8 @@ toolchain = {'name': 'foss', 'version': '2016a'} source_urls = [FTPGNOME_SOURCE] sources = [SOURCELOWER_TAR_XZ] -pyver = '2.7.11' - dependencies = [ - ('Python', pyver), + ('Python', '2.7.11'), ('GLib', '2.47.5'), ('libffi', '3.2.1'), ] @@ -30,7 +28,7 @@ builddependencies = [ ('cairo', '1.14.6'), ] -preconfigopts = "GI_SCANNER_DISABLE_CACHE=true " +preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true " # avoid using hard-coded path to 'python' in shebang of scripts buildopts = "PYTHON=python" diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015a.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015a.eb index 6943d3e084..68589245d1 100644 --- a/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015a.eb +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015a.eb @@ -1,4 +1,5 @@ easyblock = 'ConfigureMake' + name = 'libXi' version = '1.7.4' diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b-Python-2.7.11.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b-Python-2.7.11.eb index eaa232fe89..cd973d2ea0 100644 --- a/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b-Python-2.7.11.eb +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b-Python-2.7.11.eb @@ -1,4 +1,5 @@ easyblock = 'ConfigureMake' + name = 'libXi' version = '1.7.4' versionsuffix = '-Python-2.7.11' diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b.eb index 0ed8e42a20..60cd626d31 100644 --- a/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b.eb +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.4-intel-2015b.eb @@ -1,4 +1,5 @@ easyblock = 'ConfigureMake' + name = 'libXi' version = '1.7.4' diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb index bd92d68db6..c94df236e0 100644 --- a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-foss-2016a.eb @@ -1,4 +1,5 @@ easyblock = 'ConfigureMake' + name = 'libXi' version = '1.7.6' diff --git a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb index 265985f5e5..5e9d4cb87a 100644 --- a/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXi/libXi-1.7.6-intel-2016a.eb @@ -1,4 +1,5 @@ easyblock = 'ConfigureMake' + name = 'libXi' version = '1.7.6' diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goalf-1.1.0-no-OFED.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goalf-1.1.0-no-OFED.eb index 3b30e0e1d5..6fb02db3e5 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goalf-1.1.0-no-OFED.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goalf-1.1.0-no-OFED.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goolf-1.4.10.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goolf-1.4.10.eb index 393090c994..00c6dd2232 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goolf-1.4.10.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-goolf-1.4.10.eb @@ -9,7 +9,7 @@ toolchain = {'name': 'goolf', 'version': '1.4.10'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-3.2.2.u3.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-3.2.2.u3.eb index f5f634beae..82ed5ca658 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-3.2.2.u3.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-3.2.2.u3.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '3.2.2.u3'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] patches = ['makedepend_icc-sigaction.patch'] diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.0.6.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.0.6.eb index 25ba8c0849..c4b315a1b7 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.0.6.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.0.6.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '4.0.6'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.1.13.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.1.13.eb index 858f7c2608..255cd2ad52 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.1.13.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-4.1.13.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '4.1.13'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.3.0.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.3.0.eb index 808282ac91..49f692fd43 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.3.0.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.3.0.eb @@ -11,7 +11,7 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.5.0.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.5.0.eb index 873b6391a2..ece06f94eb 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.5.0.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-ictce-5.5.0.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'ictce', 'version': '5.5.0'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-iqacml-3.7.3.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-iqacml-3.7.3.eb index 07b6b524bf..50e1707937 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-iqacml-3.7.3.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.4-iqacml-3.7.3.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'iqacml', 'version': '3.7.3'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] patches = ['makedepend_icc-sigaction.patch'] diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb index 8bd95eee91..863911703e 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-foss-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'foss', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb index c92d8634e2..38d76d37d2 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-gimkl-2.11.5.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'gimkl', 'version': '2.11.5'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015a.eb index 0b36b37c50..282179280a 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015a.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015b.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015b.eb index 77541afc67..ca6025105b 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015b.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2015b.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2015b'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb index 1158bd68be..e38d07d26e 100644 --- a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.5-intel-2016a.eb @@ -10,7 +10,7 @@ toolchain = {'name': 'intel', 'version': '2016a'} toolchainopts = {'optarch': True} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/releases/individual/util'] +source_urls = [XORG_UTIL_SOURCE] sanity_check_paths = { 'files': ['bin/makedepend'], -- GitLab From 25115093469d2add35217998147dd08a68ce16aa Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 18:34:13 +0200 Subject: [PATCH 693/732] use XORG_PROTO_SOURCE --- .../x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb index a40280e419..fdbb9a1f7d 100644 --- a/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb +++ b/easybuild/easyconfigs/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb @@ -9,7 +9,7 @@ description = "X protocol and ancillary headers for xinerama" toolchain = {'name': 'foss', 'version': '2016a'} sources = [SOURCE_TAR_GZ] -source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] +source_urls = [XORG_PROTO_SOURCE] sanity_check_paths = { 'files': ['include/X11/extensions/panoramiXproto.h'], -- GitLab From 6e3de4adfa74be7ef5b164931fa37c5dba22be68 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 20:23:28 +0200 Subject: [PATCH 694/732] clean up wxPython easyconfig according to enhancements to wxPython easyblock --- .../wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb index 4d7ba463bd..803388b88a 100644 --- a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb +++ b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb @@ -33,19 +33,4 @@ dependencies = [ ('libXxf86vm', '1.1.4'), ] -options = {'modulename': 'wx'} - -parallel = 1 - -sanity_check_paths = { - 'files': ['bin/wxrc'] + - ['bin/py%s' % x for x in ['alacarte', 'alamode', 'crust', 'shell', 'wrap', 'wxrc']] + - ['lib/lib%s-3.0.so' % x for x in ['wx_baseu', 'wx_gtk2u_core']], - 'dirs': ['include', 'share', 'lib/python%(pyshortver)s/site-packages'] -} - -modextrapaths = { - 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages/wx-3.0-gtk2'], -} - moduleclass = 'vis' -- GitLab From 71405555deacf3b3a4280055e2b11d53317629f7 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 9 Apr 2016 20:35:55 +0200 Subject: [PATCH 695/732] style fixes --- easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb | 1 - .../GST-plugins-base-0.10.36-intel-2016a.eb | 6 +++--- .../g/GStreamer/GStreamer-0.10.36-intel-2016a.eb | 9 +++++---- .../intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb b/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb index ec87efba55..89fe1cefe2 100644 --- a/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GConf/GConf-3.2.6-intel-2016a.eb @@ -37,4 +37,3 @@ modextrapaths = { } moduleclass = 'devel' - diff --git a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb index af962689d7..f2d1e756a5 100644 --- a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-0.10.36-intel-2016a.eb @@ -16,14 +16,14 @@ sources = [SOURCELOWER_TAR_XZ] dependencies = [('GStreamer', '0.10.36')] -#Does not work with Bison 3 +# does not work with Bison 3.x builddependencies = [ ('Bison', '2.7', '', True), ] sanity_check_paths = { - 'files': ['bin/gst-%s-0.10' % x for x in ['discoverer', 'visualise']] + - ['lib/libgst%s-0.10.so' % x for x in ['app', 'audio', 'video']], + 'files': ['bin/gst-%s-%%(version_major_minor)s' % x for x in ['discoverer', 'visualise']] + + ['lib/libgst%s-%%(version_major_minor)s.%s' % (x, SHLIB_EXT) for x in ['app', 'audio', 'video']], 'dirs': ['include', 'share'] } diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb b/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb index 178e012daf..ccd3a73617 100644 --- a/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb +++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-0.10.36-intel-2016a.eb @@ -20,15 +20,16 @@ dependencies = [ ('zlib', '1.2.8'), ] -#Does not work with Bison 3 +# does not work with Bison 3.x builddependencies = [ ('Bison', '2.7', '', True), ] sanity_check_paths = { - 'files': ['bin/gst-%s-0.10' % x for x in ['inspect', 'typefind', 'launch']] + - ['lib/libgst%s-0.10.so' % x for x in ['reamer', 'base', 'controller', 'check']], - 'dirs': ['include', 'share', 'libexec'] + 'files': ['bin/gst-%s-%%(version_major_minor)s' % x for x in ['inspect', 'typefind', 'launch']] + + ['lib/libgst%s-%%(version_major_minor)s.%s' % (x, SHLIB_EXT) for x in ['reamer', 'base', + 'controller', 'check']], + 'dirs': ['include', 'share', 'libexec'], } modextrapaths = { diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb index 4c3bc089de..0b9db08cff 100644 --- a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-intel-2016a-Perl-5.22.1.eb @@ -10,7 +10,7 @@ description = """intltool is a set of tools to centralize translation of toolchain = {'name': 'intel', 'version': '2016a'} -source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] +source_urls = ['http://launchpad.net/intltool/trunk/%(version)s/+download/'] sources = [SOURCE_TAR_GZ] dependencies = [ -- GitLab From 9fe4ba351aca7af665bb92fb5ce3a5220bb630a6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 10 Apr 2016 10:47:20 +0200 Subject: [PATCH 696/732] fix typo in filename for wxPython --- ...on-2.7.11.eb => wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/w/wxPython/{wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb => wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb} (100%) diff --git a/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb b/easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb similarity index 100% rename from easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016-Python-2.7.11.eb rename to easybuild/easyconfigs/w/wxPython/wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb -- GitLab From 8ac5aefb82cd2237cd679ba3c103e973ee3f9581 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Sun, 10 Apr 2016 16:00:31 +0200 Subject: [PATCH 697/732] Fix build/runtime dependencies --- .../easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb index 12b8caece2..1e63340752 100644 --- a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb @@ -14,7 +14,6 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('kbproto', '1.0.7'), ('renderproto', '0.11'), - ('libX11', '1.6.3'), ('libpthread-stubs', '0.3'), ('xorg-macros', '1.19.0'), ('xproto', '7.0.28') -- GitLab From 75e2d85779aa974e7c506e0a95547fa6618ddc73 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 10 Apr 2016 21:26:14 +0100 Subject: [PATCH 698/732] Really remove the obsolete configopts this time --- .../b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb index b19ba9482c..a786a5b208 100644 --- a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb +++ b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb @@ -21,8 +21,6 @@ builddependencies = [ ('CMake', '3.4.1'), ] -configopts = " -DCMAKE_INSTALL_PREFIX=%(installdir)s " - prebuildopts = "export SAMTOOLS_ROOT=${EBROOTSAMTOOLS}/include/bam && make deps &&" separate_build_dir = True -- GitLab From e3800389846428f835f7674d1e3a9d31923189c2 Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 10 Apr 2016 23:17:21 +0100 Subject: [PATCH 699/732] Port GROMACS 5.1.2 to foss-2016a --- .../GROMACS-5.1.2-foss-2016a-hybrid.eb | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb new file mode 100644 index 0000000000..5b189abdbd --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , Kenneth Hoste +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-93.html +# +# Version 5.1.2 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.4.1'), + ('libxml2', '2.9.2') +] + +dependencies = [('Boost', '1.60.0')] + +moduleclass = 'bio' -- GitLab From 0382afb4bd7cb2f5c50dd5364d7090eb238747df Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Sun, 10 Apr 2016 23:50:25 +0100 Subject: [PATCH 700/732] Update libxml2 to 2.9.3 for foss-2016a --- .../easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb index 5b189abdbd..e699b7dd9b 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid.eb @@ -31,7 +31,7 @@ sources = [SOURCELOWER_TAR_GZ] builddependencies = [ ('CMake', '3.4.1'), - ('libxml2', '2.9.2') + ('libxml2', '2.9.3') ] dependencies = [('Boost', '1.60.0')] -- GitLab From 22adb35c727a98b0064b959c40b49d646e055e9b Mon Sep 17 00:00:00 2001 From: Adam Huffman Date: Mon, 11 Apr 2016 09:27:41 +0100 Subject: [PATCH 701/732] Add missing zlib dep and change samtools to normal, not build dep --- .../b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb index a786a5b208..9f5b2f295c 100644 --- a/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb +++ b/easybuild/easyconfigs/b/bam-readcount/bam-readcount-0.7.4-foss-2015b.eb @@ -17,10 +17,14 @@ source_urls = ['https://github.com/genome/%(name)s/archive'] patches = ['%(name)s-%(version)s-cmake_install_prefix.patch'] builddependencies = [ - ('SAMtools', '1.3'), ('CMake', '3.4.1'), ] +dependencies = [ + ('SAMtools', '1.3'), + ('zlib', '1.2.8'), +] + prebuildopts = "export SAMTOOLS_ROOT=${EBROOTSAMTOOLS}/include/bam && make deps &&" separate_build_dir = True -- GitLab From a7b47e4ad40b160fb4989ad4cf48697e6006e266 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Mon, 11 Apr 2016 10:34:28 +0200 Subject: [PATCH 702/732] foss 2016a version for sparsehash --- .../sparsehash/sparsehash-2.0.2-foss-2016a.eb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb b/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb new file mode 100644 index 0000000000..062c5abe5e --- /dev/null +++ b/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'sparsehash' +version = '2.0.2' + +homepage = 'https://code.google.com/p/sparsehash/' +description = """An extremely memory-efficient hash_map + implementation. 2 bits/entry overhead! The SparseHash library + contains several hash-map implementations, including + implementations that optimize for space or speed.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['https://sparsehash.googlecode.com/files/'] + +sanity_check_paths = { + 'files': ['include/google/type_traits.h'], + 'dirs': [], +} + +moduleclass = 'devel' \ No newline at end of file -- GitLab From 52b1c35a20d08cd618263ffe10d9108548360361 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Mon, 11 Apr 2016 10:37:50 +0200 Subject: [PATCH 703/732] removed newline --- .../easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb b/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb index 062c5abe5e..d835154d86 100644 --- a/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb +++ b/easybuild/easyconfigs/s/sparsehash/sparsehash-2.0.2-foss-2016a.eb @@ -20,4 +20,4 @@ sanity_check_paths = { 'dirs': [], } -moduleclass = 'devel' \ No newline at end of file +moduleclass = 'devel' -- GitLab From 8cf5d34294607fb7c056c4c581f26444a3152e68 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Mon, 11 Apr 2016 10:45:57 +0200 Subject: [PATCH 704/732] foss 2016a version for ABySS --- .../a/ABySS/ABySS-1.9.0-foss-2016a.eb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb new file mode 100644 index 0000000000..1aff3781e1 --- /dev/null +++ b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb @@ -0,0 +1,32 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Maxime Schmitt , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +## + +easyblock = 'ConfigureMake' + +name = 'ABySS' +version = '1.9.0' + +homepage = 'http://www.bcgsc.ca/platform/bioinfo/software/abyss' +description = """Assembly By Short Sequences - a de novo, parallel, paired-end sequence assembler""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['https://github.com/bcgsc/abyss/releases/download/%(version)s/'] + +dependencies = [('Boost', '1.60.0')] + +sanity_check_paths = { + 'files': ["bin/ABYSS", "bin/ABYSS-P"], + 'dirs': [] +} + +moduleclass = 'bio' -- GitLab From f7ac943a2ff6f9d2719bd0ca4d704cbf3af38622 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 11 Apr 2016 11:52:51 +0200 Subject: [PATCH 705/732] add easyconfig pandas-0.18.0-intel-2016a-Python-2.7.11.eb, add easyconfig pandas-0.18.0-intel-2016a-Python-3.5.1.eb --- ...pandas-0.18.0-intel-2016a-Python-2.7.11.eb | 23 +++++++++++++++++++ .../pandas-0.18.0-intel-2016a-Python-3.5.1.eb | 23 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-2.7.11.eb create mode 100644 easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-3.5.1.eb diff --git a/easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..69e84f6fa3 --- /dev/null +++ b/easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,23 @@ +easyblock = 'PythonPackage' + +name = 'pandas' +version = '0.18.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = "https://pypi.python.org/pypi/pandas/" +description = """pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures + and data analysis tools for the Python programming language.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('Python', '2.7.11')] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-3.5.1.eb b/easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-3.5.1.eb new file mode 100644 index 0000000000..a3d2dbb5d1 --- /dev/null +++ b/easybuild/easyconfigs/p/pandas/pandas-0.18.0-intel-2016a-Python-3.5.1.eb @@ -0,0 +1,23 @@ +easyblock = 'PythonPackage' + +name = 'pandas' +version = '0.18.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = "https://pypi.python.org/pypi/pandas/" +description = """pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures + and data analysis tools for the Python programming language.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('Python', '3.5.1')] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'lib' -- GitLab From 446c86fc8446d9ceff2641644de5b40c79318f99 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Mon, 11 Apr 2016 12:33:47 +0200 Subject: [PATCH 706/732] Dependency of sparsehash --- easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb index 1aff3781e1..46ae6d041a 100644 --- a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb +++ b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb @@ -22,7 +22,10 @@ toolchainopts = {'usempi': True} sources = [SOURCELOWER_TAR_GZ] source_urls = ['https://github.com/bcgsc/abyss/releases/download/%(version)s/'] -dependencies = [('Boost', '1.60.0')] +dependencies = [ + ('Boost', '1.60.0'), + (sparsehash, '2.0.2') +] sanity_check_paths = { 'files': ["bin/ABYSS", "bin/ABYSS-P"], -- GitLab From 807626f4d5d2ea884882a3fd8da582245e8726ee Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 14:44:56 +0200 Subject: [PATCH 707/732] add easyconfig Tcl-8.6.3-goolf-1.5.16.eb --- .../t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb new file mode 100644 index 0000000000..a8f55caa25 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' -- GitLab From 100f5c6abb616bfeb897c14a99b9023787f0ff6f Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 14:52:11 +0200 Subject: [PATCH 708/732] Remove comment from HDF5-1.8.9-goolf-1.5.16.eb --- easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb index 755c2cc7f9..46dd3d15ad 100644 --- a/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.8.9-goolf-1.5.16.eb @@ -1,4 +1,3 @@ -# Built with EasyBuild version 2.1.1 on 2015-08-05_14-22-07 name = 'HDF5' version = '1.8.9' -- GitLab From c65cce06d6b0a92d173c96e87a6161f06a4b0a74 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 14:53:58 +0200 Subject: [PATCH 709/732] Comment out OpenSSL dependency in Python-2.7.9-goolf-1.5.16.eb --- easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb index dee7cd4fdf..d726f06367 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb @@ -21,7 +21,7 @@ dependencies = [ ('ncurses', '5.9'), ('SQLite', '3.8.8.1'), ('Tk', '8.6.3', '-no-X11'), - ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's # nice to have an up to date openssl for security reasons ] -- GitLab From 2d01f15bc0ff258e333b4110d1e60ba413e6dbb3 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 15:03:51 +0200 Subject: [PATCH 710/732] Use https where possible in Python-2.7.9-goolf-1.5.16.eb --- .../easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb b/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb index d726f06367..70860e49fa 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.9-goolf-1.5.16.eb @@ -40,16 +40,16 @@ exts_list = [ 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], }), ('numpy', numpyversion, { - 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'source_urls': [('https://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], }), ('scipy', scipyversion, { - 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + 'source_urls': [('https://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], }), ('blist', '1.3.6', { 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], }), ('mpi4py', '1.3.1', { - 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + 'source_urls': ['https://bitbucket.org/mpi4py/mpi4py/downloads/'], }), ('paycheck', '1.0.2', { 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], @@ -85,7 +85,7 @@ exts_list = [ }), ('pycrypto', '2.6.1', { 'modulename': 'Crypto', - 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + 'source_urls': ['https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], }), ('ecdsa', '0.11', { 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], -- GitLab From 8acce97e99dd80a6fdad06c62cdc1f01b396b3fc Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 15:04:46 +0200 Subject: [PATCH 711/732] Correct preconfigopts in libreadline-6.3-goolf-1.5.16.eb --- .../easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb index 9a2a57c200..a11e7823ed 100644 --- a/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb +++ b/easybuild/easyconfigs/l/libreadline/libreadline-6.3-goolf-1.5.16.eb @@ -18,7 +18,7 @@ source_urls = ['http://ftp.gnu.org/gnu/readline'] dependencies = [('ncurses', '5.9')] # for the termcap symbols, use EB ncurses -preconfigopts = "LDFLAGS='-lncurses'" +preconfigopts = "env LDFLAGS='-lncurses'" sanity_check_paths = { 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + -- GitLab From 3752406eadac2b7d4b7f5b2f98a206b441b0d5de Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 15:14:10 +0200 Subject: [PATCH 712/732] Restrict parallel build in MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb --- .../MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb index a11de24d4f..5af25d6b8e 100644 --- a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb @@ -23,6 +23,6 @@ configopts = '--with-jdk=$JAVA_HOME' preconfigopts = 'export CFLAGS="$CFLAGS -I$EBROOTLIBXML2/include/libxml2 " && ' -buildopts = '-j 1' +parallel = 1 moduleclass = 'data' -- GitLab From 179a5fc322d8db28072e25ddf7c30851a389f14e Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Mon, 11 Apr 2016 15:18:20 +0200 Subject: [PATCH 713/732] Wrap description to <120 characters in MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb --- .../MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb index 5af25d6b8e..6a1d121ef8 100644 --- a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb @@ -5,7 +5,8 @@ version = '7.0.67' versionsuffix = '-Java-%(javaver)s-Python-%(pyver)s' homepage = 'http://mdsplus.org/' -description = """MDSplus is a set of software tools for data acquisition and storage and a methodology for management of complex scientific data.""" +description = """MDSplus is a set of software tools for data acquisition and storage and a + methodology for management of complex scientific data.""" toolchain = {'name': 'foss', 'version': '2016a'} -- GitLab From 472992ac0f7f131dcd519fa2fed53114f1a27e0f Mon Sep 17 00:00:00 2001 From: Yann Sagon Date: Mon, 11 Apr 2016 16:01:43 +0200 Subject: [PATCH 714/732] Beast latest version using foss-2016a --- .../b/Beast/Beast-2.4.0-foss-2016a.eb | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb b/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb new file mode 100644 index 0000000000..68cf147acc --- /dev/null +++ b/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = "Tarball" + +name = 'Beast' +version = '2.4.0' + +homepage = 'http://beast2.org/' +description = """ BEAST is a cross-platform program for Bayesian MCMC analysis of molecular + sequences. It is entirely orientated towards rooted, time-measured phylogenies inferred using + strict or relaxed molecular clock models. It can be used as a method of reconstructing phylogenies + but is also a framework for testing evolutionary hypotheses without conditioning on a single + tree topology. BEAST uses MCMC to average over tree space, so that each tree is weighted + proportional to its posterior probability. """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/CompEvol/beast2/releases/download/v%(version)s/'] +sources = ['BEAST.v%(version)s.Linux.tgz'] + + +dependencies = [ + # this is not mandatory but beagle-lib is recommended by developers + # beagle-lib will also load the required java dependency + # if you remove this you should add the java dependency + ('beagle-lib', '2_1_2', '', ('foss', '2016a')), +] + +sanity_check_paths = { + 'files': ["bin/beast"], + 'dirs': [] +} + +moduleclass = 'bio' -- GitLab From a6397ef10bccd4aa65c1bc309b57c3a3cc40321d Mon Sep 17 00:00:00 2001 From: Yann Sagon Date: Mon, 11 Apr 2016 16:06:53 +0200 Subject: [PATCH 715/732] latest beagle-lib support foss2016a --- .../beagle-lib/beagle-lib-2_1_2-foss-2016a.eb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb new file mode 100644 index 0000000000..033afea4f8 --- /dev/null +++ b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +version = '2_1_2' + +homepage = 'http://code.google.com/p/beagle-lib/' +description = """ +beagle-lib is a high-performance library that can perform the core +calculations at the heart of most Bayesian and Maximum Likelihood +phylogenetics packages. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# https://github.com/beagle-dev/beagle-lib/archive/beagle_release_2_1_2.tar.gz +source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/'] +sources = ['beagle_release_%(version)s.tar.gz'] + +dependencies = [('Java', '1.7.0_15', '', True)] + +# parallel build does not work (to test) +parallel = 1 + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' -- GitLab From edeed474f2fd36ab442256811a34bc917853649b Mon Sep 17 00:00:00 2001 From: RvDijk Date: Mon, 11 Apr 2016 17:27:04 +0200 Subject: [PATCH 716/732] quickfix quotes for sparsehash dependency --- easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb index 46ae6d041a..442c127432 100644 --- a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb +++ b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb @@ -24,7 +24,7 @@ source_urls = ['https://github.com/bcgsc/abyss/releases/download/%(version)s/'] dependencies = [ ('Boost', '1.60.0'), - (sparsehash, '2.0.2') + ('sparsehash', '2.0.2') ] sanity_check_paths = { -- GitLab From af9773821329739f983ee9983353627e0b1d673c Mon Sep 17 00:00:00 2001 From: Javier Ruiz Date: Mon, 11 Apr 2016 16:06:16 -0400 Subject: [PATCH 717/732] matplotlib 1.5.1 for foss 2016a --- ...tplotlib-1.5.1-foss-2016a-Python-2.7.11.eb | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2016a-Python-2.7.11.eb diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2016a-Python-2.7.11.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2016a-Python-2.7.11.eb new file mode 100644 index 0000000000..182905c4bb --- /dev/null +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-1.5.1-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,44 @@ +easyblock = 'Bundle' + +name = 'matplotlib' +version = '1.5.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://matplotlib.org' +description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of + hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python + and ipython shell, web application servers, and six graphical user interface toolkits.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '2.7.11'), + ('freetype', '2.6.2'), + ('libpng', '1.6.21'), +] + +exts_list = [ + ('Cycler', '0.9.0', { + 'modulename': 'cycler', + 'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'], + 'source_tmpl': 'cycler-%(version)s.tar.gz', + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/m/matplotlib'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'vis' -- GitLab From d297900bdcad241d8e042b2c8136cd5f3044995b Mon Sep 17 00:00:00 2001 From: Javier Ruiz Date: Mon, 11 Apr 2016 17:42:22 -0400 Subject: [PATCH 718/732] add easyconfig files for git 2.8.0 foss toolchain --- .../g/gettext/gettext-0.19.7-foss-2016a.eb | 23 +++++++++++++ .../easyconfigs/g/git/git-2.8.0-foss-2016a.eb | 33 +++++++++++++++++++ .../p/Perl/Perl-5.22.1-foss-2016a-bare.eb | 17 ++++++++++ 3 files changed, 73 insertions(+) create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb create mode 100644 easybuild/easyconfigs/g/git/git-2.8.0-foss-2016a.eb create mode 100644 easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a-bare.eb diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb new file mode 100644 index 0000000000..168b2490e6 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.19.7-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.3'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/git/git-2.8.0-foss-2016a.eb b/easybuild/easyconfigs/g/git/git-2.8.0-foss-2016a.eb new file mode 100644 index 0000000000..37fb210f88 --- /dev/null +++ b/easybuild/easyconfigs/g/git/git-2.8.0-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.8.0' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +dependencies = [ + ('cURL', '7.47.0'), + ('expat', '2.1.0'), + ('gettext', '0.19.7'), + ('Perl', '5.22.1', '-bare'), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a-bare.eb b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a-bare.eb new file mode 100644 index 0000000000..9234ed61fa --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.22.1-foss-2016a-bare.eb @@ -0,0 +1,17 @@ +name = 'Perl' +version = '5.22.1' +versionsuffix = '-bare' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +# bare, no extensions +exts_list = [] + +moduleclass = 'lang' -- GitLab From c35baf4c311b0abecf3fb9e6942386f6bca79b0e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 12 Apr 2016 09:35:06 +0200 Subject: [PATCH 719/732] correctly specify Perl location in git easyconfig --- easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb b/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb index 6a03e95dba..d8dcaa74d8 100644 --- a/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb @@ -36,7 +36,7 @@ preconfigopts = 'make configure && ' # Work around git build system bug. If LIBS contains -lpthread, then configure # will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. -configopts = "--with-perl=${EBPERLROOT} --enable-pthreads='-lpthread'" +configopts = "--with-perl=${EBPERLROOT}/bin/perl --enable-pthreads='-lpthread'" sanity_check_paths = { 'files': ['bin/git'], -- GitLab From 3ab69db466b5c4491146598c3e23f17c9fc52191 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 12 Apr 2016 09:39:03 +0200 Subject: [PATCH 720/732] add easyconfig MultiNest-3.10-intel-2016a.eb --- .../m/MultiNest/MultiNest-3.10-intel-2016a.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/m/MultiNest/MultiNest-3.10-intel-2016a.eb diff --git a/easybuild/easyconfigs/m/MultiNest/MultiNest-3.10-intel-2016a.eb b/easybuild/easyconfigs/m/MultiNest/MultiNest-3.10-intel-2016a.eb new file mode 100644 index 0000000000..78d3266bf6 --- /dev/null +++ b/easybuild/easyconfigs/m/MultiNest/MultiNest-3.10-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'MultiNest' +version = '3.10' + +homepage = 'https://ccpforge.cse.rl.ac.uk/gf/project/multinest/' +description = """MultiNest is a Bayesian inference tool which calculates the evidence and explores the parameter space + which may contain multiple posterior modes and pronounced (curving) degeneracies in moderately high dimensions.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# download via https://ccpforge.cse.rl.ac.uk/gf/project/multinest/frs (requires registration) +sources = ['MultiNest_v%(version)s_CMake.tar.gz'] +checksums = ['a4ed7c15f2fbbf7f859f565734fc5296'] + +builddependencies = [('CMake', '3.4.3')] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['ackley', 'eggboxC', 'eggboxC++', 'gaussian', 'gauss_shell', 'himmelblau', + 'obj_detect', 'rosenbrock']] + + ['lib/lib%s' % x for x in ['multinest.a', 'multinest_mpi.a', 'multinest_mpi.%s' % SHLIB_EXT, + 'multinest.%s' % SHLIB_EXT]] + + ['include/multinest.h'], + 'dirs': ['modules'], +} + +moduleclass = 'tools' -- GitLab From 04e53f7a24ab360a3f3812526116aafc8a73a421 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 12 Apr 2016 09:39:58 +0200 Subject: [PATCH 721/732] fix typo --- easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb b/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb index d8dcaa74d8..1da07f9d58 100644 --- a/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb +++ b/easybuild/easyconfigs/g/git/git-2.2.2-GCC-4.9.2.eb @@ -36,7 +36,7 @@ preconfigopts = 'make configure && ' # Work around git build system bug. If LIBS contains -lpthread, then configure # will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. -configopts = "--with-perl=${EBPERLROOT}/bin/perl --enable-pthreads='-lpthread'" +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" sanity_check_paths = { 'files': ['bin/git'], -- GitLab From fbb3f0cd75ab28fb77e3c558f35ab2a8c6117da8 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 12 Apr 2016 09:42:31 +0200 Subject: [PATCH 722/732] add easyconfig CMake-3.5.1-intel-2016a.eb --- .../c/CMake/CMake-3.5.1-intel-2016a.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.5.1-intel-2016a.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.5.1-intel-2016a.eb b/easybuild/easyconfigs/c/CMake/CMake-3.5.1-intel-2016a.eb new file mode 100644 index 0000000000..a70441375c --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.5.1-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' -- GitLab From d2dbcc47e9b38f23d53272986bfbc28aa15faaaf Mon Sep 17 00:00:00 2001 From: Yann Sagon Date: Tue, 12 Apr 2016 11:32:03 +0200 Subject: [PATCH 723/732] fix beagle-lib dependency --- easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb b/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb index 68cf147acc..484da63909 100644 --- a/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb +++ b/easybuild/easyconfigs/b/Beast/Beast-2.4.0-foss-2016a.eb @@ -21,12 +21,11 @@ toolchain = {'name': 'foss', 'version': '2016a'} source_urls = ['https://github.com/CompEvol/beast2/releases/download/v%(version)s/'] sources = ['BEAST.v%(version)s.Linux.tgz'] - dependencies = [ # this is not mandatory but beagle-lib is recommended by developers # beagle-lib will also load the required java dependency # if you remove this you should add the java dependency - ('beagle-lib', '2_1_2', '', ('foss', '2016a')), + ('beagle-lib', '2.1.2'), ] sanity_check_paths = { -- GitLab From 2b7c6d3f7ccd97633b3f77e36d3083ecc8135c8f Mon Sep 17 00:00:00 2001 From: Yann Sagon Date: Tue, 12 Apr 2016 11:34:32 +0200 Subject: [PATCH 724/732] fix java version, naming, builddependencies --- .../beagle-lib/beagle-lib-2.1.2-foss-2016a.eb | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 easybuild/easyconfigs/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb new file mode 100644 index 0000000000..29785ed5e6 --- /dev/null +++ b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +version = '2.1.2' +homepage= 'https://github.com/beagle-dev/beagle-lib' +description = """ +beagle-lib is a high-performance library that can perform the core +calculations at the heart of most Bayesian and Maximum Likelihood +phylogenetics packages. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# https://github.com/beagle-dev/beagle-lib/archive/beagle_release_2_1_2.tar.gz +source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/'] +sources = ['beagle_release_%s.tar.gz' % version.replace('.', '_')] + +dependencies = [('Java', '1.8.0_74', '', True)] + +builddependencies = [('Autotools', '20150215')] + +# parallel build does not work (to test) +parallel = 1 + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' -- GitLab From 18e01e189a43b9ad3c3f6c356919cb8808dd7f39 Mon Sep 17 00:00:00 2001 From: Yann Sagon Date: Tue, 12 Apr 2016 13:25:43 +0200 Subject: [PATCH 725/732] removed bad beagle-lib --- .../beagle-lib/beagle-lib-2_1_2-foss-2016a.eb | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb diff --git a/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb deleted file mode 100644 index 033afea4f8..0000000000 --- a/easybuild/easyconfigs/b/beagle-lib/beagle-lib-2_1_2-foss-2016a.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'beagle-lib' -version = '2_1_2' - -homepage = 'http://code.google.com/p/beagle-lib/' -description = """ -beagle-lib is a high-performance library that can perform the core -calculations at the heart of most Bayesian and Maximum Likelihood -phylogenetics packages. -""" - -toolchain = {'name': 'foss', 'version': '2016a'} - -# https://github.com/beagle-dev/beagle-lib/archive/beagle_release_2_1_2.tar.gz -source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/'] -sources = ['beagle_release_%(version)s.tar.gz'] - -dependencies = [('Java', '1.7.0_15', '', True)] - -# parallel build does not work (to test) -parallel = 1 - -preconfigopts = "./autogen.sh && " - -sanity_check_paths = { - 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile - for includefile in ["beagle.h", "platform.h"]] + - ["lib/libhmsbeagle%s.so" % libfile - for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], - 'dirs': [] -} - -moduleclass = 'numlib' -- GitLab From 4a944ea2fd093c34ea0941a39499c694fd26d6b0 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Tue, 12 Apr 2016 14:32:26 +0200 Subject: [PATCH 726/732] dependency for SQLite --- easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb index 442c127432..aa09a6e789 100644 --- a/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb +++ b/easybuild/easyconfigs/a/ABySS/ABySS-1.9.0-foss-2016a.eb @@ -23,8 +23,9 @@ sources = [SOURCELOWER_TAR_GZ] source_urls = ['https://github.com/bcgsc/abyss/releases/download/%(version)s/'] dependencies = [ - ('Boost', '1.60.0'), - ('sparsehash', '2.0.2') + ('Boost', '1.60.0'), + ('sparsehash', '2.0.2'), + ('SQLite', '3.9.2'), ] sanity_check_paths = { -- GitLab From 441d862ecefdf2adc6222a07a7b2129f618ec502 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Tue, 12 Apr 2016 17:09:00 +0200 Subject: [PATCH 727/732] HTSlib for foss 2016a --- .../h/HTSlib/HTSlib-1.3-foss-2016a.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb new file mode 100644 index 0000000000..7f85666c7d --- /dev/null +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'HTSlib' +version = '1.3' + +homepage = "http://www.htslib.org/" +description = """A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': ["bin/bgzip", "bin/tabix", "lib/libhts.%s" % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'bio' \ No newline at end of file -- GitLab From 6e446908e5bb57328bccdb45bc08d8e751ec8fa9 Mon Sep 17 00:00:00 2001 From: RvDijk Date: Tue, 12 Apr 2016 17:11:17 +0200 Subject: [PATCH 728/732] removed newline --- easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb index 7f85666c7d..93d7d3c6df 100644 --- a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb +++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.3-foss-2016a.eb @@ -24,4 +24,4 @@ sanity_check_paths = { 'dirs': [], } -moduleclass = 'bio' \ No newline at end of file +moduleclass = 'bio' -- GitLab From e4b84a2bc7e5e6f95e21523fb6b05320e33780a9 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Tue, 12 Apr 2016 15:29:39 -0500 Subject: [PATCH 729/732] Changing the version (Date Format) and also adding instructions to rename the downloaded file to lx-%(version)s.zip --- easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb index 69196eb784..9830a06815 100644 --- a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb +++ b/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb @@ -5,7 +5,7 @@ easyblock = "PackedBinary" name = 'MRIcron' -version = '06_22_15' +version = '20150601' homepage = 'http://www.mccauslandcenter.sc.edu/mricro/mricron/' description = """ MRIcron allows viewing of medical images. It @@ -17,8 +17,9 @@ toolchain = {'name': 'dummy', 'version': 'dummy'} # Automatic Download doesn't work for this software as you need to accept their license, # so you can download it manually at https://www.nitrc.org/frs/download.php/7765/ -# and place it in a folder where Easybuild can see it. -sources = ['lx.zip'] +# and place it in a folder where Easybuild can see it. +# Also rename the zip file to lx-20150601.zip +sources = ['lx-%(version)s.zip'] checksums = ['a2d8b1c053384220953f6b670d0fd4df'] -- GitLab From d25771501a9f87623f013f7f34c643b824846f50 Mon Sep 17 00:00:00 2001 From: Ravi Tripathi Date: Tue, 12 Apr 2016 15:51:36 -0500 Subject: [PATCH 730/732] Renaming the Easyconfig from easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb -> easybuild/easyconfigs/m/MRIcron/MRIcron-20150601.eb --- .../m/MRIcron/{MRIcron-06_22_15.eb => MRIcron-20150601.eb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easybuild/easyconfigs/m/MRIcron/{MRIcron-06_22_15.eb => MRIcron-20150601.eb} (100%) diff --git a/easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb b/easybuild/easyconfigs/m/MRIcron/MRIcron-20150601.eb similarity index 100% rename from easybuild/easyconfigs/m/MRIcron/MRIcron-06_22_15.eb rename to easybuild/easyconfigs/m/MRIcron/MRIcron-20150601.eb -- GitLab From 428e635f7c6c76b6e89bba45dc64e263930df681 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Tue, 12 Apr 2016 23:01:13 +0200 Subject: [PATCH 731/732] Add missing zlib dependency to MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb --- .../MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb index 6a1d121ef8..b1dbee0965 100644 --- a/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb +++ b/easybuild/easyconfigs/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb @@ -17,7 +17,8 @@ dependencies = [ ('Java', '1.7.0_79', '', True), ('Python', '2.7.11'), ('HDF5', '1.8.16'), - ('libxml2', '2.9.3', '-Python-%(pyver)s') + ('libxml2', '2.9.3', '-Python-%(pyver)s'), + ('zlib', '1.2.8') ] configopts = '--with-jdk=$JAVA_HOME' -- GitLab From 2a277f236dbba0ad4e31f680f65d5ac4f5d4da27 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 13 Apr 2016 07:35:25 +0200 Subject: [PATCH 732/732] fix (build) deps for intel/2016a easyconfigs of cairo, libXext, libXrender --- easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb | 4 ++++ easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb | 1 + .../easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb | 3 +++ 3 files changed, 8 insertions(+) diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb index 2966a85fa7..a289e5fb02 100644 --- a/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb +++ b/easybuild/easyconfigs/c/cairo/cairo-1.14.6-intel-2016a.eb @@ -28,9 +28,13 @@ dependencies = [ ('libxcb', '1.11.1'), ('libXrender', '0.9.9'), ('libXext', '1.3.3'), + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), ] builddependencies = [ ('renderproto', '0.11'), + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), ] # disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC diff --git a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb index 2b4eff3bde..2d93058e5e 100644 --- a/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb +++ b/easybuild/easyconfigs/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -15,6 +15,7 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('xproto', '7.0.28'), ('xextproto', '7.3.0'), + ('libpthread-stubs', '0.3'), ] dependencies = [ diff --git a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb index eee347a314..1e63340752 100644 --- a/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb +++ b/easybuild/easyconfigs/l/libXrender/libXrender-0.9.9-foss-2016a.eb @@ -14,6 +14,9 @@ source_urls = [XORG_LIB_SOURCE] builddependencies = [ ('kbproto', '1.0.7'), ('renderproto', '0.11'), + ('libpthread-stubs', '0.3'), + ('xorg-macros', '1.19.0'), + ('xproto', '7.0.28') ] dependencies = [ -- GitLab