From a6b9e2344353558625d3a8f87be0c9d03cfee969 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= <lukas.krupcik@vsb.cz>
Date: Wed, 8 Jan 2020 09:50:45 +0100
Subject: [PATCH] 	new file:   o/OCaml/OCaml-4.09.0-GCC-6.3.0-2.27.eb 
 new file:   o/OCaml/OCaml-4.09.0.eb 	modified:  
 s/Singularity/Singularity-3.5.2.eb 	new file:  
 u/Unison/Unison-2.51.2-GCC-6.3.0-2.27.eb 	new file:  
 v/VASP/VASP-5.4.4-intel-2017c-mkl=cluster-Wannier.eb 	new file:  
 w/Wannier90/Wannier90-3.0.0-intel-2017c.eb  new files yourself (see 'git help
 status').

---
 o/OCaml/OCaml-4.09.0-GCC-6.3.0-2.27.eb        | 46 +++++++++++++
 o/OCaml/OCaml-4.09.0.eb                       | 46 +++++++++++++
 s/Singularity/Singularity-3.5.2.eb            | 10 ---
 u/Unison/Unison-2.51.2-GCC-6.3.0-2.27.eb      | 35 ++++++++++
 ...P-5.4.4-intel-2017c-mkl=cluster-Wannier.eb | 69 +++++++++++++++++++
 w/Wannier90/Wannier90-3.0.0-intel-2017c.eb    | 36 ++++++++++
 6 files changed, 232 insertions(+), 10 deletions(-)
 create mode 100644 o/OCaml/OCaml-4.09.0-GCC-6.3.0-2.27.eb
 create mode 100644 o/OCaml/OCaml-4.09.0.eb
 create mode 100644 u/Unison/Unison-2.51.2-GCC-6.3.0-2.27.eb
 create mode 100644 v/VASP/VASP-5.4.4-intel-2017c-mkl=cluster-Wannier.eb
 create mode 100644 w/Wannier90/Wannier90-3.0.0-intel-2017c.eb

diff --git a/o/OCaml/OCaml-4.09.0-GCC-6.3.0-2.27.eb b/o/OCaml/OCaml-4.09.0-GCC-6.3.0-2.27.eb
new file mode 100644
index 00000000..9f44b913
--- /dev/null
+++ b/o/OCaml/OCaml-4.09.0-GCC-6.3.0-2.27.eb
@@ -0,0 +1,46 @@
+# IT4Innovations 2019
+
+name = 'OCaml'
+version = '4.09.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': 'GCC', 'version': '6.3.0-2.27'}
+
+local_opam_ver = '2.0.3'
+source_urls = [
+    'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]),
+    'https://github.com/ocaml/opam/releases/download/%s' % local_opam_ver,
+]
+sources = [
+    SOURCELOWER_TAR_GZ,
+    'opam-full-%s.tar.gz' % local_opam_ver,
+]
+
+builddependencies = [
+    ('Autotools', '20180311', '', True)
+]
+
+dependencies = [
+    ('ncurses', '6.1', '', True),
+    ('libreadline', '7.0', '', True),
+    ('GSL', '2.5', '', True),
+]
+
+# parallel build tends to break
+parallel = 1
+
+# handled by OPAM, order matters!
+# see https://opam.ocaml.org/packages
+exts_list = [
+    ('ocamlfind', '1.8.0',),
+    ('batteries', '2.9.0',),
+    ('ocaml-twt', '0.94.0',),
+    ('gsl', '1.24.0',),
+]
+
+moduleclass = 'lang'
diff --git a/o/OCaml/OCaml-4.09.0.eb b/o/OCaml/OCaml-4.09.0.eb
new file mode 100644
index 00000000..491b8ff4
--- /dev/null
+++ b/o/OCaml/OCaml-4.09.0.eb
@@ -0,0 +1,46 @@
+# IT4Innovations 2019
+
+name = 'OCaml'
+version = '4.09.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 =  SYSTEM
+
+local_opam_ver = '2.0.3'
+source_urls = [
+    'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]),
+    'https://github.com/ocaml/opam/releases/download/%s' % local_opam_ver,
+]
+sources = [
+    SOURCELOWER_TAR_GZ,
+    'opam-full-%s.tar.gz' % local_opam_ver,
+]
+
+builddependencies = [
+    ('Autotools', '20180311', '', True)
+]
+
+dependencies = [
+    ('ncurses', '6.1', '', True),
+    ('libreadline', '7.0', '', True),
+    ('GSL', '2.5', '', True),
+]
+
+# parallel build tends to break
+parallel = 1
+
+# handled by OPAM, order matters!
+# see https://opam.ocaml.org/packages
+exts_list = [
+    ('ocamlfind', '1.8.0',),
+    ('batteries', '2.9.0',),
+    ('ocaml-twt', '0.94.0',),
+    ('gsl', '1.24.0',),
+]
+
+moduleclass = 'lang'
diff --git a/s/Singularity/Singularity-3.5.2.eb b/s/Singularity/Singularity-3.5.2.eb
index 9cfd86db..ce60a4e5 100644
--- a/s/Singularity/Singularity-3.5.2.eb
+++ b/s/Singularity/Singularity-3.5.2.eb
@@ -6,7 +6,6 @@ easyblock = 'ConfigureMake'
 
 name = 'Singularity'
 version = '3.5.2'
-versionsuffix = 'test'
 
 homepage = 'https://github.com/sylabs/singularity'
 description = "Singularity is an open source container platform designed to be simple, fast, and secure. Singularity is optimized for EPC and HPC workloads, allowing untrusted users to run untrusted containers in a trusted way."
@@ -37,15 +36,6 @@ postinstallcmds = [
         'echo "mksquashfs path = /apps/all/squashfs-tools/4.3/bin" >> %(installdir)s/etc/singularity/singularity.conf',
 ]
 
-# next steps after installation
-# INSTALLATION_PATH=/apps/all
-# chown root:root $INSTALLATION_PATH/Singularity/*/etc/singularity/singularity.conf
-# chown root:root $INSTALLATION_PATH/Singularity/*/etc/singularity/capability.json
-# chown root:root $INSTALLATION_PATH/Singularity/*/etc/singularity/ecl.toml
-# chown root:root $INSTALLATION_PATH/Singularity/*/libexec/singularity/bin/*-suid
-# chmod 4755 $INSTALLATION_PATH/Singularity/*/libexec/singularity/bin/*-suid
-# chmod +s $INSTALLATION_PATH/Singularity/*/libexec/singularity/bin/*-suid
-
 sanity_check_paths = {
     'files': ['bin/singularity'],
     'dirs': ['bin', 'etc', 'libexec', 'var'],
diff --git a/u/Unison/Unison-2.51.2-GCC-6.3.0-2.27.eb b/u/Unison/Unison-2.51.2-GCC-6.3.0-2.27.eb
new file mode 100644
index 00000000..c4869b88
--- /dev/null
+++ b/u/Unison/Unison-2.51.2-GCC-6.3.0-2.27.eb
@@ -0,0 +1,35 @@
+# IT4Innovations 2019
+
+easyblock = 'MakeCp'
+
+name = "Unison"
+version = "2.51.2"
+
+homepage = 'http://www.cis.upenn.edu/~bcpierce/unison'
+description = """Unison is a file-synchronization tool for Unix and Windows.
+ It allows two replicas of a collection of files and directories
+ to be stored on different hosts (or different disks on the same host),
+ modified separately, and then brought up to date
+ by propagating the changes in each replica to the other."""
+
+toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'}
+
+source_urls = ['https://github.com/bcpierce00/unison/archive/']
+sources = ['v%(version)s.tar.gz']
+
+#buildopts = 'UISTYLE=text '
+
+dependencies = [
+    ('OCaml', '4.09.0'),
+]
+
+files_to_copy = [(['unison'], 'bin')]
+
+parallel = 1
+
+sanity_check_paths = {
+    'files': ['bin/unison'],
+    'dirs': []
+}
+
+moduleclass = 'tools'
diff --git a/v/VASP/VASP-5.4.4-intel-2017c-mkl=cluster-Wannier.eb b/v/VASP/VASP-5.4.4-intel-2017c-mkl=cluster-Wannier.eb
new file mode 100644
index 00000000..641458f7
--- /dev/null
+++ b/v/VASP/VASP-5.4.4-intel-2017c-mkl=cluster-Wannier.eb
@@ -0,0 +1,69 @@
+# IT4Innovations 2020
+
+easyblock = 'MakeCp'
+
+name = 'VASP'
+version = '5.4.4'
+versionsuffix = '-mkl=cluster-Wannier'
+
+homepage = 'http://www.vasp.at'
+description = """The Vienna Ab initio Simulation Package (VASP) is a local_computer program for atomic scale
+materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics,
+from first principles.
+
+To use VASP, You need academic licenses from University of Wiena. Follow the instructions https://www.vasp.at/index.php/faqs.
+
+Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible to verify your licenses. After succesfull verification You will be granted to use VASP in our enviroment."""
+
+toolchain = {'name': 'intel', 'version': '2017c'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on
+# how to get access to the code
+sources = ['%(namelower)s.%(version)s.tar.gz']
+
+#checksums = ['8ac646b108f974371eef398973373bf6']
+
+dependencies = [
+    ('zlib', '1.2.11', '', True),
+    ('Wannier90', '3.0.0'),
+]
+
+prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && '
+
+# path to libfftw3xf_intel.a is hardcoded in makefile.include
+prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && '
+
+# remove mkl flag to prevent mixing dynamic libs with the static libs in
+# LIBBLACS/SCALAPACK
+prebuildopts += 'sed -i "s|-mkl=sequential|-mkl=cluster|" makefile.include && '
+
+# OFLAG      = -O2 -xAVX
+prebuildopts += 'sed -i "s|OFLAG      = -O2|OFLAG      = -O3 -xAVX|" makefile.include && '
+
+# objects add MKLROOT
+prebuildopts += 'sed -i "s|OBJECTS    = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o|OBJECTS    = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \$\(MKLROOT\)/lib/intel64_lin/libfftw3xf_intel.a|" makefile.include && '
+
+# Wannier90 support
+prebuildopts += 'sed -i "s|LLIBS      = |LLIBS      = /apps/all/Wannier90/3.0.0-intel-2017c/lib/libwannier.a |" makefile.include && '
+prebuildopts += 'sed -i "s|-DscaLAPACK|-DscaLAPACK -DVASP2WANNIER90|" makefile.include && '
+
+# VASP uses LIBS as a list of folders
+prebuildopts += 'unset LIBS && '
+
+#prebuildopts += 'exit 1'
+
+buildopts = 'all BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK"'
+
+parallel = 1
+
+files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')]
+
+sanity_check_paths = {
+    'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'],
+    'dirs': []
+}
+
+modluafooter = 'add_property("state","license")'
+
+moduleclass = 'phys'
diff --git a/w/Wannier90/Wannier90-3.0.0-intel-2017c.eb b/w/Wannier90/Wannier90-3.0.0-intel-2017c.eb
new file mode 100644
index 00000000..a5309e81
--- /dev/null
+++ b/w/Wannier90/Wannier90-3.0.0-intel-2017c.eb
@@ -0,0 +1,36 @@
+# IT4Innovations 2020
+
+easyblock = 'MakeCp'
+
+name = 'Wannier90'
+version = '3.0.0'
+
+homepage = 'http://www.wannier.org'
+description = """A tool for obtaining maximally-localised Wannier functions"""
+
+toolchain = {'name': 'intel', 'version': '2017c'}
+toolchainopts = {'usempi': True}
+
+github_account = 'wannier-developers'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
+
+patches = ['Wannier90_3x_ignore_makeinc.patch']
+
+checksums = [
+    'f196e441dcd7b67159a1d09d2d7de2893b011a9f03aab6b30c4703ecbf20fe5b',   # v3.0.0.tar.gz
+    '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e',   # Wannier90_3x_ignore_makeinc.patch
+]
+
+buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" '
+buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
+buildopts += 'COMMS=mpi'
+
+files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')]
+
+sanity_check_paths = {
+    'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'],
+    'dirs': []
+}
+
+moduleclass = 'chem'