From e8d4f18053b0e840e2e1771a095a5895199281b7 Mon Sep 17 00:00:00 2001
From: Damian Alvarez <swmanage@jwlogin08.juwels>
Date: Tue, 24 Nov 2020 18:19:57 +0100
Subject: [PATCH] Since we have now primary CentOS 8 everywhere, and to deploy
 the new UCX in parallel to the old one

---
 .../m/M4/M4-1.4.18-GCCcore-9.3.0.eb           |  2 -
 .../m/M4/M4-1.4.18.eb                         |  2 -
 Golden_Repo/hdfml_overlay/u/UCX/UCX-1.9.0.eb  | 67 ++++++++++++++++++
 .../m/M4/M4-1.4.18-GCCcore-9.3.0.eb           | 29 ++++++++
 Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18.eb   | 27 ++++++++
 Golden_Repo/jusuf_overlay/u/UCX/UCX-1.9.0.eb  | 67 ++++++++++++++++++
 .../juwelsbooster_overlay/u/UCX/UCX-1.9.0.eb  | 67 ++++++++++++++++++
 Golden_Repo/m/M4/M4-1.4.18-GCCcore-9.3.0.eb   |  2 +
 Golden_Repo/m/M4/M4-1.4.18.eb                 |  2 +
 .../m4-1.4.18-glibc-change-work-around.patch  |  0
 Golden_Repo/u/UCX/UCX-1.9.0.eb                | 68 +++++++++++++++++++
 11 files changed, 329 insertions(+), 4 deletions(-)
 rename Golden_Repo/{juwelsbooster_overlay => hdfml_overlay}/m/M4/M4-1.4.18-GCCcore-9.3.0.eb (93%)
 rename Golden_Repo/{juwelsbooster_overlay => hdfml_overlay}/m/M4/M4-1.4.18.eb (92%)
 create mode 100644 Golden_Repo/hdfml_overlay/u/UCX/UCX-1.9.0.eb
 create mode 100644 Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
 create mode 100644 Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18.eb
 create mode 100644 Golden_Repo/jusuf_overlay/u/UCX/UCX-1.9.0.eb
 create mode 100644 Golden_Repo/juwelsbooster_overlay/u/UCX/UCX-1.9.0.eb
 rename Golden_Repo/{juwelsbooster_overlay => }/m/M4/m4-1.4.18-glibc-change-work-around.patch (100%)
 create mode 100644 Golden_Repo/u/UCX/UCX-1.9.0.eb

diff --git a/Golden_Repo/juwelsbooster_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb b/Golden_Repo/hdfml_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
similarity index 93%
rename from Golden_Repo/juwelsbooster_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
rename to Golden_Repo/hdfml_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
index 4dd2e09ce..32af8ba74 100644
--- a/Golden_Repo/juwelsbooster_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
+++ b/Golden_Repo/hdfml_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
@@ -16,8 +16,6 @@ toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
 sources = [SOURCELOWER_TAR_GZ]
 source_urls = [GNU_SOURCE]
 
-patches = ['m4-1.4.18-glibc-change-work-around.patch']
-
 # use same binutils version that was used when building GCC toolchain
 builddependencies = [('binutils', '2.34', '', SYSTEM)]
 
diff --git a/Golden_Repo/juwelsbooster_overlay/m/M4/M4-1.4.18.eb b/Golden_Repo/hdfml_overlay/m/M4/M4-1.4.18.eb
similarity index 92%
rename from Golden_Repo/juwelsbooster_overlay/m/M4/M4-1.4.18.eb
rename to Golden_Repo/hdfml_overlay/m/M4/M4-1.4.18.eb
index a03bcc7ab..d686b2eb0 100644
--- a/Golden_Repo/juwelsbooster_overlay/m/M4/M4-1.4.18.eb
+++ b/Golden_Repo/hdfml_overlay/m/M4/M4-1.4.18.eb
@@ -17,8 +17,6 @@ toolchain = SYSTEM
 sources = [SOURCELOWER_TAR_GZ]
 source_urls = [GNU_SOURCE]
 
-patches = ['m4-1.4.18-glibc-change-work-around.patch']
-
 configopts = "--enable-cxx"
 
 sanity_check_paths = {
diff --git a/Golden_Repo/hdfml_overlay/u/UCX/UCX-1.9.0.eb b/Golden_Repo/hdfml_overlay/u/UCX/UCX-1.9.0.eb
new file mode 100644
index 000000000..cdf6510cf
--- /dev/null
+++ b/Golden_Repo/hdfml_overlay/u/UCX/UCX-1.9.0.eb
@@ -0,0 +1,67 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.9.0'
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
+
+toolchain = SYSTEM
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.34'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+]
+
+dependencies = [
+    ('numactl', '2.0.13'),
+    ('CUDA', '11.0'),
+]
+
+configopts = '--with-verbs '  # Build OpenFabrics support
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations '  # Enable machine-specific optimizations, default: NO
+# configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+configopts += '--with-avx '             # Compile with AVX
+configopts += '--with-gdrcopy '         # Compile with GDRCopy
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb b/Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
new file mode 100644
index 000000000..32af8ba74
--- /dev/null
+++ b/Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'M4'
+version = '1.4.18'
+
+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.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = [GNU_SOURCE]
+
+# use same binutils version that was used when building GCC toolchain
+builddependencies = [('binutils', '2.34', '', SYSTEM)]
+
+configopts = "--enable-cxx"
+
+sanity_check_paths = {
+    'files': ["bin/m4"],
+    'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18.eb b/Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18.eb
new file mode 100644
index 000000000..d686b2eb0
--- /dev/null
+++ b/Golden_Repo/jusuf_overlay/m/M4/M4-1.4.18.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'M4'
+version = '1.4.18'
+
+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.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = SYSTEM
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = [GNU_SOURCE]
+
+configopts = "--enable-cxx"
+
+sanity_check_paths = {
+    'files': ["bin/m4"],
+    'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/Golden_Repo/jusuf_overlay/u/UCX/UCX-1.9.0.eb b/Golden_Repo/jusuf_overlay/u/UCX/UCX-1.9.0.eb
new file mode 100644
index 000000000..cdf6510cf
--- /dev/null
+++ b/Golden_Repo/jusuf_overlay/u/UCX/UCX-1.9.0.eb
@@ -0,0 +1,67 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.9.0'
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
+
+toolchain = SYSTEM
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.34'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+]
+
+dependencies = [
+    ('numactl', '2.0.13'),
+    ('CUDA', '11.0'),
+]
+
+configopts = '--with-verbs '  # Build OpenFabrics support
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations '  # Enable machine-specific optimizations, default: NO
+# configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+configopts += '--with-avx '             # Compile with AVX
+configopts += '--with-gdrcopy '         # Compile with GDRCopy
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/juwelsbooster_overlay/u/UCX/UCX-1.9.0.eb b/Golden_Repo/juwelsbooster_overlay/u/UCX/UCX-1.9.0.eb
new file mode 100644
index 000000000..cdf6510cf
--- /dev/null
+++ b/Golden_Repo/juwelsbooster_overlay/u/UCX/UCX-1.9.0.eb
@@ -0,0 +1,67 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.9.0'
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
+
+toolchain = SYSTEM
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.34'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+]
+
+dependencies = [
+    ('numactl', '2.0.13'),
+    ('CUDA', '11.0'),
+]
+
+configopts = '--with-verbs '  # Build OpenFabrics support
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations '  # Enable machine-specific optimizations, default: NO
+# configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+configopts += '--with-avx '             # Compile with AVX
+configopts += '--with-gdrcopy '         # Compile with GDRCopy
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/m/M4/M4-1.4.18-GCCcore-9.3.0.eb b/Golden_Repo/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
index 32af8ba74..4dd2e09ce 100644
--- a/Golden_Repo/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
+++ b/Golden_Repo/m/M4/M4-1.4.18-GCCcore-9.3.0.eb
@@ -16,6 +16,8 @@ toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
 sources = [SOURCELOWER_TAR_GZ]
 source_urls = [GNU_SOURCE]
 
+patches = ['m4-1.4.18-glibc-change-work-around.patch']
+
 # use same binutils version that was used when building GCC toolchain
 builddependencies = [('binutils', '2.34', '', SYSTEM)]
 
diff --git a/Golden_Repo/m/M4/M4-1.4.18.eb b/Golden_Repo/m/M4/M4-1.4.18.eb
index d686b2eb0..a03bcc7ab 100644
--- a/Golden_Repo/m/M4/M4-1.4.18.eb
+++ b/Golden_Repo/m/M4/M4-1.4.18.eb
@@ -17,6 +17,8 @@ toolchain = SYSTEM
 sources = [SOURCELOWER_TAR_GZ]
 source_urls = [GNU_SOURCE]
 
+patches = ['m4-1.4.18-glibc-change-work-around.patch']
+
 configopts = "--enable-cxx"
 
 sanity_check_paths = {
diff --git a/Golden_Repo/juwelsbooster_overlay/m/M4/m4-1.4.18-glibc-change-work-around.patch b/Golden_Repo/m/M4/m4-1.4.18-glibc-change-work-around.patch
similarity index 100%
rename from Golden_Repo/juwelsbooster_overlay/m/M4/m4-1.4.18-glibc-change-work-around.patch
rename to Golden_Repo/m/M4/m4-1.4.18-glibc-change-work-around.patch
diff --git a/Golden_Repo/u/UCX/UCX-1.9.0.eb b/Golden_Repo/u/UCX/UCX-1.9.0.eb
new file mode 100644
index 000000000..445a48c4a
--- /dev/null
+++ b/Golden_Repo/u/UCX/UCX-1.9.0.eb
@@ -0,0 +1,68 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.9.0'
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
+
+toolchain = SYSTEM
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.34'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+]
+
+dependencies = [
+    ('numactl', '2.0.13'),
+    ('CUDA', '11.0'),
+]
+
+configopts = '--with-verbs '  # Build OpenFabrics support
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations '  # Enable machine-specific optimizations, default: NO
+# configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-cm '              # Compile with IB Connection Manager support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+configopts += '--with-avx '             # Compile with AVX
+configopts += '--with-gdrcopy '         # Compile with GDRCopy
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
-- 
GitLab