diff --git a/Golden_Repo/c/CGAL/CGAL-4.13.1-gpsmpi-2020-Python-3.8.5.eb b/Golden_Repo/c/CGAL/CGAL-4.13.1-gpsmpi-2020-Python-3.8.5.eb
new file mode 100644
index 0000000000000000000000000000000000000000..06d27d0c88b84c1fa2aa6ad4ba30af8c7d1c49d1
--- /dev/null
+++ b/Golden_Repo/c/CGAL/CGAL-4.13.1-gpsmpi-2020-Python-3.8.5.eb
@@ -0,0 +1,33 @@
+name = 'CGAL'
+version = '4.13.1'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'http://www.cgal.org/'
+description = """The goal of the CGAL Open Source Project is to provide easy access to efficient 
+ and reliable geometric algorithms in the form of a C++ library.
+ """
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'gpsmpi', 'version': '2020'}
+toolchainopts = {'strict': True}
+
+sources = [SOURCE_TAR_XZ]
+source_urls = ['https://github.com/%(name)s/%(namelower)s/releases/download/releases/%(name)s-%(version)s/']
+
+builddependencies = [
+    ('CMake', '3.18.0'),
+    ('Eigen', '3.3.7'),
+]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    ('Python', '3.8.5'),
+    ('Boost', '1.74.0'),
+    ('MPFR', '4.1.0'),
+    ('GMP', '6.2.0'),
+    ('OpenGL', '2020'),
+    ('Qt5', '5.14.2'),
+]
+
+moduleclass = 'numlib'
diff --git a/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
index 8fcf4a476aaa2078f73c1e5450461c9a9757b67b..db2ce11f77bc724288b5e9023aae9338264ec296 100644
--- a/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
+++ b/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
@@ -36,7 +36,7 @@ exts_list = [
         'modulename': 'heapdict',
         'source_urls': ['https://pypi.python.org/packages/source/H/HeapDict'],
     }),
-    ('tornado', '5.0.2', {
+    ('tornado', '6.0.3', {
         'source_urls': ['https://pypi.python.org/packages/source/t/tornado'],
     }),
     ('tblib', '1.7.0', {
diff --git a/Golden_Repo/e/ecCodes/ecCodes-2.18.0-npsmpic-2020.eb b/Golden_Repo/e/ecCodes/ecCodes-2.18.0-npsmpic-2020.eb
new file mode 100644
index 0000000000000000000000000000000000000000..a2a69fc74411acf50157efeb7ae4261bcab34f6b
--- /dev/null
+++ b/Golden_Repo/e/ecCodes/ecCodes-2.18.0-npsmpic-2020.eb
@@ -0,0 +1,35 @@
+easyblock = 'CMakeMake'
+
+name = 'ecCodes'
+version = '2.18.0'
+
+homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
+description = """ecCodes is a package developed by ECMWF which provides an application programming interface and
+ a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2,
+ WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding)."""
+
+site_contacts = 'a.ghasemi@fz-juelich.de'
+
+toolchain = {'name': 'npsmpic', 'version': '2020'}
+
+source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/']
+sources = ['eccodes-%(version)s-Source.tar.gz']
+
+builddependencies = [('CMake', '3.18.0')]
+dependencies = [
+    ('netCDF', '4.7.4'),
+    ('JasPer', '2.0.19'),
+]
+
+separate_build_dir = True
+
+configopts = "-DENABLE_NETCDF=ON -DENABLE_JPG=ON -DENABLE_PYTHON=OFF"
+
+sanity_check_paths = {
+    'files': ['bin/%s' % x for x in ['bufr_copy', 'bufr_dump', 'bufr_filter', 'bufr_ls',
+                                     'codes_count', 'codes_info', 'codes_split_file',
+                                     'grib_copy', 'grib_dump', 'grib_filter', 'grib_ls']],
+    'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/hidden_deps.txt b/Golden_Repo/hidden_deps.txt
index 963e00853f7c5bab64817480f9d5fafdaf13eccb..0018d1ac32ac1832d49b9546ae2ad327efc1c7a3 100644
--- a/Golden_Repo/hidden_deps.txt
+++ b/Golden_Repo/hidden_deps.txt
@@ -168,6 +168,7 @@ makedepend
 MATIO
 motif
 msgpack-c
+muparserx
 NASM
 ncurses
 nettle
@@ -212,8 +213,10 @@ SCons
 scrollkeeper
 Serf
 SIP
+SoX
 S-Lang
 snappy
+spdlog
 SQLite
 SWIG
 Szip
diff --git a/Golden_Repo/jusuf_overlay/o/OpenMPI/OpenMPI-4.1.0rc1-GCC-9.3.0.eb b/Golden_Repo/jusuf_overlay/o/OpenMPI/OpenMPI-4.1.0rc1-GCC-9.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..ab139ab9b6585b6378b990ab154463b778a96764
--- /dev/null
+++ b/Golden_Repo/jusuf_overlay/o/OpenMPI/OpenMPI-4.1.0rc1-GCC-9.3.0.eb
@@ -0,0 +1,67 @@
+easyblock = 'ConfigureMake'
+
+name = 'OpenMPI'
+version = '4.1.0rc1'
+
+homepage = 'http://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-3 implementation."""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'GCC', 'version': '9.3.0'}
+
+source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+sources = [SOURCELOWER_TAR_GZ]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for --with-pmix
+    ('pmix-devel'),
+]
+
+builddependencies = [
+    ('Autotools', '20200321'),
+]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    ('hwloc', '2.2.0'),
+    ('UCX', '1.9.0', '', SYSTEM),
+    ('CUDA', '11.0', '', SYSTEM),
+    ('libevent', '2.1.12'),
+]
+
+configopts = '--enable-shared '
+configopts += '--with-hwloc=$EBROOTHWLOC '  # hwloc support
+configopts += '--with-ucx=$EBROOTUCX '
+configopts += '--with-verbs '
+configopts += '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--without-orte '
+configopts += '--without-psm2 '
+configopts += '--disable-oshmem '
+configopts += '--with-cuda=$EBROOTCUDA '
+configopts += '--with-ime=/opt/ddn/ime '
+configopts += '--with-gpfs '
+
+# to enable SLURM integration (site-specific)
+configopts += '--with-slurm --with-pmix=external --with-libevent=external --with-ompi-pmix-rte'
+
+local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"]
+sanity_check_paths = {
+    'files': ["bin/%s" % local_binfile for local_binfile in ["ompi_info", "opal_wrapper"]] +
+             ["lib/lib%s.%s" % (local_libfile, SHLIB_EXT) for local_libfile in local_libs] +
+             ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]],
+    'dirs': [],
+}
+
+# Add a family for our naming scheme
+modluafooter = '''
+family("mpi")
+add_property("arch","gpu")
+if not ( isloaded("mpi-settings") ) then
+    load("mpi-settings")
+end
+'''
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/jusuf_overlay/o/OpenMPI/OpenMPI-4.1.0rc1-iccifort-2020.2.254-GCC-9.3.0.eb b/Golden_Repo/jusuf_overlay/o/OpenMPI/OpenMPI-4.1.0rc1-iccifort-2020.2.254-GCC-9.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..155e0c334d0fa886a3d2eaae3ba013e91cdf38d4
--- /dev/null
+++ b/Golden_Repo/jusuf_overlay/o/OpenMPI/OpenMPI-4.1.0rc1-iccifort-2020.2.254-GCC-9.3.0.eb
@@ -0,0 +1,67 @@
+easyblock = 'ConfigureMake'
+
+name = 'OpenMPI'
+version = '4.1.0rc1'
+
+homepage = 'http://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-3 implementation."""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2020.2.254-GCC-9.3.0'}
+
+source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+sources = [SOURCELOWER_TAR_GZ]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for --with-pmix
+    ('pmix-devel'),
+]
+
+builddependencies = [
+    ('Autotools', '20200321'),
+]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    ('hwloc', '2.2.0'),
+    ('UCX', '1.9.0', '', SYSTEM),
+    ('CUDA', '11.0', '', SYSTEM),
+    ('libevent', '2.1.12'),
+]
+
+configopts = '--enable-shared '
+configopts += '--with-hwloc=$EBROOTHWLOC '  # hwloc support
+configopts += '--with-ucx=$EBROOTUCX '
+configopts += '--with-verbs '
+configopts += '--with-libevent=$EBROOTLIBEVENT '
+configopts += '--without-orte '
+configopts += '--without-psm2 '
+configopts += '--disable-oshmem '
+configopts += '--with-cuda=$EBROOTCUDA '
+configopts += '--with-ime=/opt/ddn/ime '
+configopts += '--with-gpfs '
+
+# to enable SLURM integration (site-specific)
+configopts += '--with-slurm --with-pmix=external --with-libevent=external --with-ompi-pmix-rte'
+
+local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"]
+sanity_check_paths = {
+    'files': ["bin/%s" % local_binfile for local_binfile in ["ompi_info", "opal_wrapper"]] +
+             ["lib/lib%s.%s" % (local_libfile, SHLIB_EXT) for local_libfile in local_libs] +
+             ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]],
+    'dirs': [],
+}
+
+# Add a family for our naming scheme
+modluafooter = '''
+family("mpi")
+add_property("arch","gpu")
+if not ( isloaded("mpi-settings") ) then
+    load("mpi-settings")
+end
+'''
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/jusuf_overlay/p/pscom/pscom-5.4-default.eb b/Golden_Repo/jusuf_overlay/p/pscom/pscom-5.4-default.eb
new file mode 100644
index 0000000000000000000000000000000000000000..ad61598bad5a72d05eccb8a10061981b8bf5287f
--- /dev/null
+++ b/Golden_Repo/jusuf_overlay/p/pscom/pscom-5.4-default.eb
@@ -0,0 +1,50 @@
+easyblock = 'CMakeMake'
+
+name = 'pscom'
+# Create drop-in replacement version that ensures over-riding behaviour
+version = "5.4-default"
+local_realversion = "5.4.7-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.
+"""
+
+site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/ParaStation/%(name)s/archive/']
+sources = ['%s.tar.gz' % local_realversion]
+
+builddependencies = [
+    ('popt', '1.16'),
+    ('CUDA', '11.0'),
+    ('CMake', '3.18.0'),
+]
+
+dependencies = [
+    ('UCX', '1.9.0'),
+]
+
+build_type = 'RelWithDebInfo'
+
+preconfigopts = 'export UCP_LDFLAGS="-L$EBROOTUCX/lib" && '
+preconfigopts += 'export CUDA_LDFLAGS="-L$EBROOTNVIDIA/lib64" &&'
+
+configopts = '-DCUDA_ENABLED=ON'
+
+sanity_check_paths = {
+    'files': [
+        'include/%(name)s.h',
+        ('lib/libpscom.so', 'lib64/libpscom.so'),
+        ('lib/libpscom4ucp.so', 'lib64/libpscom4ucp.so'),
+        ('lib/libpscom4openib.so', 'lib64/libpscom4openib.so'),
+    ],
+    'dirs': [],
+}
+
+modextravars = {
+    'PSCOMVERSION': '%s' % local_realversion,
+}
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-24Dec2020-gpsmkl-2020-CUDA.eb b/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-24Dec2020-gpsmkl-2020-CUDA.eb
new file mode 100644
index 0000000000000000000000000000000000000000..35a3b40805f3d2068ff0cc8d4ec8bedb40544b0f
--- /dev/null
+++ b/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-24Dec2020-gpsmkl-2020-CUDA.eb
@@ -0,0 +1,168 @@
+# Installation command used: 
+# eb --include-easyblocks=$PWD/Custom_EasyBlocks/lammps.py,"$EASYBUILD_INCLUDE_EASYBLOCKS"\\
+# --mpi-cmd-template='echo %(nr_ranks)s && %(cmd)s' \\
+# Golden_Repo/l/LAMMPS/LAMMPS-22Oct2020-intel-para-2020-Python-3.8.5.eb
+name = 'LAMMPS'
+version = '24Dec2020'
+versionsuffix = '-CUDA'
+
+homepage = 'https://lammps.sandia.gov/'
+description = """LAMMPS is a classical molecular dynamics code, and an acronym
+for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has
+potentials for solid-state materials (metals, semiconductors) and soft matter
+(biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be
+used to model atoms or, more generically, as a parallel particle simulator at
+the atomic, meso, or continuum scale. LAMMPS runs on single processors or in
+parallel using message-passing techniques and a spatial-decomposition of the
+simulation domain. The code is designed to be easy to modify or extend with new
+functionality.
+"""
+
+site_contacts = 'a.kreuzer@fz-juelich.de'
+
+toolchain = {'name': 'gpsmkl', 'version': '2020'}
+toolchainopts = {'openmp': True, 'cstd': 'c++11', 'usempi': True}
+
+# 'https://github.com/lammps/lammps/archive/'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = [
+    'patch_%(version)s.tar.gz',
+    {'extract_cmd': 'cp %s %(builddir)s', 'filename': 'lammps_vs_yaff_test_single_point_energy.py'},
+]
+
+builddependencies = [
+    ('CMake', '3.18.0'),
+    ('pkg-config', '0.29.2'),
+    ('archspec', '0.1.0', '-Python-%(pyver)s'),
+]
+dependencies = [
+    ('CUDA', '11.0', '', SYSTEM),
+    ('Python', '3.8.5'),
+    ('libpng', '1.6.37'),
+    ('libjpeg-turbo', '2.0.5'),
+    ('netCDF', '4.7.4'),
+    ('GSL', '2.6'),
+    ('zlib', '1.2.11'),
+    ('gzip', '1.10'),
+    ('cURL', '7.71.1'),
+    ('HDF5', '1.10.6'),
+    ('tbb', '2020.3'),
+    ('PCRE', '8.44'),
+    ('libxml2', '2.9.10'),
+    ('FFmpeg', '4.3.1'),
+    ('Voro++', '0.4.6'),
+    ('kim-api', '2.1.3'),
+    ('Eigen', '3.3.7'),
+    ('yaff', '1.6.0', '-Python-%(pyver)s'),
+    ('PLUMED', '2.6.1'),
+    ('ScaFaCoS', '1.0.1'),
+    # See below for why this is not included
+    # ('VTK', '8.2.0', local_python_versionsuffix),
+]
+
+# not enabled (yet), needs more work/additional dependencies:
+# ADIOS - https://lammps.sandia.gov/doc/Build_extras.html#user-adios-package
+# AWPMD - https://lammps.sandia.gov/doc/Build_extras.html#user-awpmd-package
+# QMMM  - https://lammps.sandia.gov/doc/Packages_details.html#pkg-user-qmmm
+# QUIP  - https://lammps.sandia.gov/doc/Build_extras.html#user-quip-package
+# VTK - support is available in the foss version but currently fails to build for intel
+# due to https://software.intel.com/en-us/forums/intel-fortran-compiler/topic/746611
+# see https://github.com/lammps/lammps/issues/1964 for details
+user_packages = [
+    'ATC',
+    'BOCS',
+    'CGDNA',
+    'CGSDK',
+    'COLVARS',
+    'DIFFRACTION',
+    'DPD',
+    'DRUDE',
+    'EFF',
+    'FEP',
+    'H5MD',
+    'LB',
+    'MANIFOLD',
+    'MEAMC',
+    'MESODPD',
+    'MESONT',
+    'MGPT',
+    'MISC',
+    'MOFFF',
+    'MOLFILE',
+    'NETCDF',
+    'PHONON',
+    'PLUMED',
+    'PTM',
+    'QTB',
+    'REACTION',
+    'REAXC',
+    'SCAFACOS',
+    'SDPD',
+    'SMD',
+    'SMTBQ',
+    'SPH',
+    'TALLY',
+    'UEF',
+    'YAFF',
+]
+enhance_sanity_check = True
+
+cuda_compute_capabilities = ['8.0']
+
+# To use additional custom configuration options, use the 'configopts' easyconfig parameter
+# See docs and lammps easyblock for more information.
+# https://github.com/lammps/lammps/blob/master/cmake/README.md#lammps-configuration-options
+
+# Use the bfd linker for C++ (this will only be picked up when using Kokkos)
+preconfigopts = 'export CXXFLAGS="-fuse-ld=bfd $CXXFLAGS" &&'
+# docs require virtualenv (which we don't have)
+configopts = ' -DBUILD_DOC=off -DPKG_USER-INTEL=off '
+
+# auto-enabled by easyblock
+# 'GPU'    - if cuda package is present and kokkos is disabled
+# 'KOKKOS' - if kokkos is enabled (by default)
+#
+# not enabled (yet), needs more work/additional dependencies:
+# 'LATTE', - https://lammps.sandia.gov/doc/Build_extras.html#latte-package
+# 'MSCG',  - https://lammps.sandia.gov/doc/Build_extras.html#mscg-package
+general_packages = [
+    'ASPHERE',
+    'BODY',
+    'CLASS2',
+    'COLLOID',
+    'COMPRESS',
+    'CORESHELL',
+    'DIPOLE',
+    'GRANULAR',
+    'KIM',
+    'KSPACE',
+    'MANYBODY',
+    'MC',
+    'MESSAGE',
+    'MISC',
+    'MLIAP',
+    'MOLECULE',
+    'MPIIO',
+    'PERI',
+    'POEMS',
+    'PYTHON',
+    'QEQ',
+    'REPLICA',
+    'RIGID',
+    'SHOCK',
+    'SNAP',
+    'SPIN',
+    'SRD',
+    'VORONOI',
+]
+
+# run short test case to make sure installation doesn't produce blatently incorrect results;
+# this catches a problem where having the USER-INTEL package enabled causes trouble when installing with intel/2019b
+# (requires an MPI context for intel/2020a)
+# sanity_check_commands = ['cd %(builddir)s && %(mpi_cmd_prefix)s python lammps_vs_yaff_test_single_point_energy.py']
+
+modluafooter = '''
+add_property("arch","gpu")
+'''
+
+moduleclass = 'chem'
diff --git a/Golden_Repo/m/muparserx/muparserx-4.0.8-GCCcore-9.3.0.eb b/Golden_Repo/m/muparserx/muparserx-4.0.8-GCCcore-9.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..dc018600889918cc69fa06356f921ea54aba1b04
--- /dev/null
+++ b/Golden_Repo/m/muparserx/muparserx-4.0.8-GCCcore-9.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'muparserx'
+version = '4.0.8'
+
+homepage = "https://github.com/beltoforion/muparserx"
+description = """A C++ math parser library with array and string support. 
+"""
+
+site_contacts = 'j.goebbert@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/beltoforion/muparserx/archive/']
+sources = ['v%(version)s.tar.gz']
+
+builddependencies = [
+    ('CMake', '3.18.0'),
+    ('binutils', '2.34')
+]
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': [('include', 'lib64')]
+}
diff --git a/Golden_Repo/o/OpenAI-Gym/OpenAI-Gym-0.18.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/o/OpenAI-Gym/OpenAI-Gym-0.18.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
new file mode 100644
index 0000000000000000000000000000000000000000..d0f2aaf3150cf3807f4f9bb2593fc7a7b9c4f607
--- /dev/null
+++ b/Golden_Repo/o/OpenAI-Gym/OpenAI-Gym-0.18.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
@@ -0,0 +1,63 @@
+easyblock = 'PythonBundle'
+
+name = 'OpenAI-Gym'
+version = '0.18.0'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'https://gym.openai.com'
+description = "A toolkit for developing and comparing reinforcement learning algorithms."
+
+site_contacts = 'a.strube@fz-juelich.de'
+
+toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+    ('CMake', '3.18.0'),
+    ('SWIG', '4.0.2', versionsuffix),
+]
+
+dependencies = [
+    ('Python', '3.8.5'),
+    ('SciPy-Stack', '2020', versionsuffix),  # for numpy, scipy
+    ('Pillow-SIMD', '7.0.0.post3', versionsuffix),
+    ('OpenCV', '4.5.0', versionsuffix),
+    ('scikit', '2020', versionsuffix),
+    ('XServer', '1.20.9'),
+]
+
+use_pip = True
+
+exts_default_options = {'source_urls': [PYPI_SOURCE]}
+
+exts_list = [
+    ('EasyProcess', '0.3', {
+    }),
+    ('PyVirtualDisplay', '2.0', {
+    }),
+    ('pyglet', '1.4.10', {
+        'source_tmpl': 'pyglet-%(version)s.zip',
+        'checksums': ['c57e3e18246f45e4d6bb3d29e39d128d6e72b05f4212b10353adc3ba260ceb65'],
+    }),
+    ('atari-py', '0.2.6', {
+        'checksums': ['6249ad5079b0489e87eb44e65485bb1b07cc1b5af729f1ee52ece749503ceb1d'],
+    }),
+    ('box2d-py', '2.3.8', {
+        'modulename': 'Box2D',
+        'checksums': ['bdacfbbc56079bb317548efe49d3d5a86646885cc27f4a2ee97e4b2960921ab7'],
+    }),
+    ('gym', version, {
+        # can't use 'all', because 'mujoco' and 'robotics' extras require MuJoCo (which is not freely available);
+        # see https://github.com/openai/mujoco-py#install-mujoco
+        'use_pip_extras': 'atari,box2d,classic_control',
+        'checksums': ['a0dcd25c1373f3938f4cb4565f74f434fba6faefb73a42d09c9dddd0c08af53e'],
+        'patches': ['video_recorder.patch'],
+    }),
+]
+
+local_envs = ['algorithmic', 'atari', 'box2d', 'classic_control', 'toy_text']
+sanity_check_commands = ["python -c 'import gym.envs.%s'" % e for e in local_envs]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/o/OpenAI-Gym/video_recorder.patch b/Golden_Repo/o/OpenAI-Gym/video_recorder.patch
new file mode 100644
index 0000000000000000000000000000000000000000..39fdaeda124c9805b513bb00dc5d3ce962b2a8a7
--- /dev/null
+++ b/Golden_Repo/o/OpenAI-Gym/video_recorder.patch
@@ -0,0 +1,11 @@
+--- gym/gym-0.18.0/gym/wrappers/monitoring/video_recorder.py.orig	2021-02-15 16:53:44.341866890 +0100
++++ gym/gym-0.18.0/gym/wrappers/monitoring/video_recorder.py	2021-02-15 16:54:31.089455521 +0100
+@@ -300,7 +300,7 @@
+         if frame.dtype != np.uint8:
+             raise error.InvalidFrame("Your frame has data type {}, but we require uint8 (i.e. RGB values from 0-255).".format(frame.dtype))
+ 
+-            self.proc.stdin.write(frame.tobytes())
++        self.proc.stdin.write(frame.tobytes())
+ 
+     def close(self):
+         self.proc.stdin.close()
diff --git a/Golden_Repo/o/OpenCV/OpenCV-4.5.0-gcccoremkl-9.3.0-2020.2.254.eb b/Golden_Repo/o/OpenCV/OpenCV-4.5.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
similarity index 100%
rename from Golden_Repo/o/OpenCV/OpenCV-4.5.0-gcccoremkl-9.3.0-2020.2.254.eb
rename to Golden_Repo/o/OpenCV/OpenCV-4.5.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-6-SLURM.patch b/Golden_Repo/o/OpenFOAM/OpenFOAM-6-SLURM.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d1279153e18bea944d4f82b9fe165c4213ea5a22
--- /dev/null
+++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-6-SLURM.patch
@@ -0,0 +1,33 @@
+# Change the mpirun command to "srun".
+# As of writing, only the srun is supported at JSC supercomputers.
+# Author: Metin Cakircali <m.cakircali@fz-juelich.de>
+
+diff -ru OpenFOAM-6-version-6_orig/bin/foamJob OpenFOAM-6-version-6/bin/foamJob
+--- OpenFOAM-6-version-6_orig/bin/foamJob	2018-10-17 11:22:43.363505000 +0200
++++ OpenFOAM-6-version-6/bin/foamJob	2018-10-17 12:12:27.565678000 +0200
+@@ -195,8 +195,8 @@
+     #
+     # Find mpirun
+     #
+-    mpirun=$(findExec mpirun) || error "'mpirun' not found"
+-    mpiopts="-np $NPROCS"
++    mpirun=$(findExec srun) || error "'srun' not found"
++    mpiopts="-n $NPROCS"
+ 
+     #
+     # Check if the machine ready to run parallel
+diff -ru OpenFOAM-6-version-6_orig/bin/tools/RunFunctions OpenFOAM-6-version-6/bin/tools/RunFunctions
+--- OpenFOAM-6-version-6_orig/bin/tools/RunFunctions	2018-10-17 11:22:43.319389000 +0200
++++ OpenFOAM-6-version-6/bin/tools/RunFunctions	2018-10-17 11:24:49.276331000 +0200
+@@ -139,9 +139,9 @@
+     else
+         echo "Running $APP_RUN in parallel on $PWD using $nProcs processes"
+         if [ "$LOG_APPEND" = "true" ]; then
+-            ( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
++            ( srun -n $nProcs $APP_RUN -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
+         else
+-            ( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
++            ( srun -n $nProcs $APP_RUN -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
+         fi
+     fi
+ }
diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-6-cleanup.patch b/Golden_Repo/o/OpenFOAM/OpenFOAM-6-cleanup.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e8be7a70b145802e7cb694b51a8bcfb215954fb0
--- /dev/null
+++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-6-cleanup.patch
@@ -0,0 +1,230 @@
+# This patch removes all need for the ThirdParty files of OpenFOAM:
+# we use EB dependencies for everything. It adjusts the paths, variables, etc
+# We also let the install dir, compiler, etc be set by EB.
+# Lastly, we also fix a small compile issue in 'ptscotchDecomp.C'
+# by Kenneth Hoste (HPC-UGent), based on patch for OpenFOAM 4.1 by Ward Poelmans <wpoely86@gmail.com>
+diff -ru OpenFOAM-6-version-6_orig/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-6-version-6/applications/utilities/mesh/manipulation/setSet/Allwmake
+--- OpenFOAM-6-version-6_orig/applications/utilities/mesh/manipulation/setSet/Allwmake	2018-10-17 11:22:35.628646000 +0200
++++ OpenFOAM-6-version-6/applications/utilities/mesh/manipulation/setSet/Allwmake	2018-10-17 13:32:16.457222000 +0200
+@@ -7,18 +7,18 @@
+ unset COMP_FLAGS LINK_FLAGS
+ 
+ # Use readline if available
+-if [ -f /usr/include/readline/readline.h ]
++if [ -f $EBROOTLIBREADLINE/include/readline/readline.h ]
+ then
+     echo "    found <readline/readline.h>  --  enabling readline support."
+     export COMP_FLAGS="-DHAS_READLINE"
+ 
+     # readline may require ncurses
+-    if [ -f /usr/include/ncurses/ncurses.h ]
++    if [ -f $EBROOTNCURSES/include/ncurses/ncurses.h ]
+     then
+         echo "    found <ncurses/ncurses.h>  --  maybe required by readline."
+-        export LINK_FLAGS="-lreadline -lncurses"
++        export LINK_FLAGS="-L$EBROOTLIBREADLINE/lib -lreadline -L$EBROOTNCURSES -lncurses"
+     else
+-        export LINK_FLAGS="-lreadline"
++        export LINK_FLAGS="-L$EBROOTLIBREADLINE/lib -lreadline"
+     fi
+ fi
+ 
+diff -ru OpenFOAM-6-version-6_orig/applications/utilities/postProcessing/graphics/PVReaders/Allwmake OpenFOAM-6-version-6/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
+--- OpenFOAM-6-version-6_orig/applications/utilities/postProcessing/graphics/PVReaders/Allwmake	2018-10-17 11:22:38.725154000 +0200
++++ OpenFOAM-6-version-6/applications/utilities/postProcessing/graphics/PVReaders/Allwmake	2018-10-17 13:54:51.187898000 +0200
+@@ -14,8 +14,8 @@
+         }
+ 
+         # ensure CMake gets the correct C/C++ compilers
+-        [ -n "$WM_CC" ] && export CC="$WM_CC"
+-        [ -n "$WM_CXX" ] && export CXX="$WM_CXX"
++#        [ -n "$WM_CC" ] && export CC="$WM_CC"
++#        [ -n "$WM_CXX" ] && export CXX="$WM_CXX"
+ 
+         wmake $targetType vtkPVblockMesh
+         wmake $targetType vtkPVFoam
+diff -ru OpenFOAM-6-version-6_orig/etc/bashrc OpenFOAM-6-version-6/etc/bashrc
+--- OpenFOAM-6-version-6_orig/etc/bashrc	2018-10-17 11:22:17.114079000 +0200
++++ OpenFOAM-6-version-6/etc/bashrc	2018-10-17 13:27:12.688574823 +0200
+@@ -43,8 +43,8 @@
+ # Please set to the appropriate path if the default is not correct.
+ #
+ [ "$BASH" -o "$ZSH_NAME" ] && \
+-export FOAM_INST_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../.. && pwd -P) || \
+-export FOAM_INST_DIR=$HOME/$WM_PROJECT
++#export FOAM_INST_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../.. && pwd -P) || \
++#export FOAM_INST_DIR=$HOME/$WM_PROJECT
+ # export FOAM_INST_DIR=~$WM_PROJECT
+ # export FOAM_INST_DIR=/opt/$WM_PROJECT
+ # export FOAM_INST_DIR=/usr/local/$WM_PROJECT
+diff -ru OpenFOAM-6-version-6_orig/etc/config.sh/CGAL OpenFOAM-6-version-6/etc/config.sh/CGAL
+--- OpenFOAM-6-version-6_orig/etc/config.sh/CGAL	2018-10-17 11:22:17.102310000 +0200
++++ OpenFOAM-6-version-6/etc/config.sh/CGAL	2018-10-17 13:35:41.440894000 +0200
+@@ -35,33 +35,8 @@
+ #
+ #------------------------------------------------------------------------------
+ 
+-boost_version=boost-system
+-cgal_version=cgal-system
+-#cgal_version=CGAL-4.10
+-
+-thirdPartyPath=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
+-
+-if [ "$boost_version" != "boost-system"  ]
+-then
+-    export BOOST_ARCH_PATH=$thirdPartyPath/$boost_version
+-    if [ -d "$BOOST_ARCH_PATH" ]
+-    then
+-        _foamAddLib $BOOST_ARCH_PATH/lib
+-    fi
+-else
+-    unset BOOST_ARCH_PATH
+-fi
+-
+-if [ "$cgal_version" != "cgal-system" ]
+-then
+-    export CGAL_ARCH_PATH=$thirdPartyPath/$cgal_version
+-    if [ -d "$CGAL_ARCH_PATH" ]
+-    then
+-        _foamAddLib $CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+-    fi
+-else
+-    unset CGAL_ARCH_PATH
+-fi
++export CGAL_ARCH_PATH=$EBROOTCGAL
++export BOOST_ARCH_PATH=$EBROOTBOOST
+ 
+ if [ "$FOAM_VERBOSE" -a "$PS1" ]
+ then
+@@ -70,6 +45,4 @@
+     echo "    $cgal_version at $CGAL_ARCH_PATH" 1>&2
+ fi
+ 
+-unset thirdPartyPath
+-
+ #------------------------------------------------------------------------------
+diff -ru OpenFOAM-6-version-6_orig/etc/config.sh/gperftools OpenFOAM-6-version-6/etc/config.sh/gperftools
+--- OpenFOAM-6-version-6_orig/etc/config.sh/gperftools	2018-10-17 11:22:17.090970000 +0200
++++ OpenFOAM-6-version-6/etc/config.sh/gperftools	2018-10-17 13:54:47.576302000 +0200
+@@ -29,13 +29,7 @@
+ #
+ #------------------------------------------------------------------------------
+ 
+-version=svn
+-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
+-
+-GPERFTOOLS_VERSION=gperftools-$version
+-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION
+-
+-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH
+-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH
++GPERFTOOLS_VERSION=gperftools-$EBVERSIONGPERFTOOLS
++GPERFTOOLS_ARCH_PATH=$EBROOTGPERFTOOLS
+ 
+ #------------------------------------------------------------------------------
+diff -ru OpenFOAM-6-version-6_orig/etc/config.sh/metis OpenFOAM-6-version-6/etc/config.sh/metis
+--- OpenFOAM-6-version-6_orig/etc/config.sh/metis	2018-10-17 11:22:17.089913000 +0200
++++ OpenFOAM-6-version-6/etc/config.sh/metis	2018-10-17 13:54:53.260727000 +0200
+@@ -34,7 +34,7 @@
+ #
+ #------------------------------------------------------------------------------
+ 
+-export METIS_VERSION=metis-5.1.0
+-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION
++export METIS_VERSION=metis-$EBVERSIONMETIS
++export METIS_ARCH_PATH=$EBROOTMETIS
+ 
+ #------------------------------------------------------------------------------
+diff -ru OpenFOAM-6-version-6_orig/etc/config.sh/mpi OpenFOAM-6-version-6/etc/config.sh/mpi
+--- OpenFOAM-6-version-6_orig/etc/config.sh/mpi	2017-07-25 18:43:40.000000000 +0200
++++ OpenFOAM-6-version-6/etc/config.sh/mpi	2018-09-18 10:51:25.164160755 +0200
+@@ -249,6 +249,9 @@
+     _foamAddPath    $MPI_ARCH_PATH/bin64
+     _foamAddLib     $MPI_ARCH_PATH/lib64
+     ;;
++EASYBUILDMPI)
++    export FOAM_MPI=mpi
++    ;;
+ *)
+     export FOAM_MPI=dummy
+     ;;
+diff -ru OpenFOAM-6-version-6_orig/etc/config.sh/scotch OpenFOAM-6-version-6/etc/config.sh/scotch
+--- OpenFOAM-6-version-6_orig/etc/config.sh/scotch	2018-10-17 11:22:17.074307000 +0200
++++ OpenFOAM-6-version-6/etc/config.sh/scotch	2018-10-17 13:54:54.076619000 +0200
+@@ -37,7 +37,7 @@
+ #
+ #------------------------------------------------------------------------------
+ 
+-export SCOTCH_VERSION=scotch_6.0.6
+-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
++export SCOTCH_VERSION=scotch_$EBVERSIONSCOTCH
++export SCOTCH_ARCH_PATH=$EBROOTSCOTCH
+ 
+ #------------------------------------------------------------------------------
+diff -ru OpenFOAM-6-version-6_orig/etc/config.sh/settings OpenFOAM-6-version-6/etc/config.sh/settings
+--- OpenFOAM-6-version-6_orig/etc/config.sh/settings	2018-10-17 11:22:17.081439000 +0200
++++ OpenFOAM-6-version-6/etc/config.sh/settings	2018-10-17 13:54:56.013405000 +0200
+@@ -61,11 +61,11 @@
+         64)
+             WM_ARCH=linux64
+             export WM_COMPILER_LIB_ARCH=64
+-            export WM_CC='gcc'
+-            export WM_CXX='g++'
+-            export WM_CFLAGS='-m64 -fPIC'
+-            export WM_CXXFLAGS='-m64 -fPIC -std=c++0x'
+-            export WM_LDFLAGS='-m64'
++            export WM_CC=$CC
++            export WM_CXX=$CXX
++            export WM_CFLAGS=$CFLAGS
++            export WM_CXXFLAGS=$CXXFLAGS
++            export WM_LDFLAGS=$LDFLAGS
+             ;;
+         *)
+             echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64"\
+diff -ru OpenFOAM-6-version-6_orig/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-6-version-6/src/parallel/decompose/ptscotchDecomp/Make/options
+--- OpenFOAM-6-version-6_orig/src/parallel/decompose/ptscotchDecomp/Make/options	2018-10-17 11:23:46.338261000 +0200
++++ OpenFOAM-6-version-6/src/parallel/decompose/ptscotchDecomp/Make/options	2018-10-17 13:47:29.990948000 +0200
+@@ -4,9 +4,6 @@
+ EXE_INC = \
+     $(PFLAGS) $(PINC) \
+     -I$(FOAM_SRC)/Pstream/mpi/lnInclude \
+-    -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \
+-    -I$(SCOTCH_ARCH_PATH)/include \
+-    -I/usr/include/scotch \
+     -I../decompositionMethods/lnInclude
+ 
+ LIB_LIBS = \
+@@ -14,5 +11,5 @@
+     -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) \
+     -lptscotch \
+     -lptscotcherrexit \
+-    -lscotch \
++    -lscotch ${LINK_FLAGS} \
+     -lrt
+diff -ru OpenFOAM-6-version-6_orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C OpenFOAM-6-version-6/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C
+--- OpenFOAM-6-version-6_orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C	2018-10-17 11:23:46.321728000 +0200
++++ OpenFOAM-6-version-6/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C	2018-10-17 13:53:18.650845484 +0200
+@@ -31,10 +31,11 @@
+ #include "SubField.H"
+ #include "PstreamGlobals.H"
+ 
++#include <mpi.h>
++
+ extern "C"
+ {
+     #include <stdio.h>
+-    #include <mpi.h>
+     #include "ptscotch.h"
+ }
+ 
+diff -ru OpenFOAM-6-version-6_orig/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-6-version-6/src/parallel/decompose/scotchDecomp/Make/options
+--- OpenFOAM-6-version-6_orig/src/parallel/decompose/scotchDecomp/Make/options	2018-10-17 11:23:46.284785000 +0200
++++ OpenFOAM-6-version-6/src/parallel/decompose/scotchDecomp/Make/options	2018-10-17 13:55:00.667330000 +0200
+@@ -8,7 +8,6 @@
+ EXE_INC = \
+     $(PFLAGS) $(PINC) \
+     -I$(SCOTCH_ARCH_PATH)/include \
+-    -I/usr/include/scotch \
+     -I../decompositionMethods/lnInclude
+ 
+ LIB_LIBS = \
diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-6-gpsmpi-2020.eb b/Golden_Repo/o/OpenFOAM/OpenFOAM-6-gpsmpi-2020.eb
new file mode 100644
index 0000000000000000000000000000000000000000..b841de7639a35e578138939f39d562d8995b4939
--- /dev/null
+++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-6-gpsmpi-2020.eb
@@ -0,0 +1,64 @@
+name = 'OpenFOAM'
+version = '6'
+
+homepage = 'http://www.openfoam.org/'
+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.
+
+OpenFOAM %(version)s%(versionsuffix)s is installed in
+$EBROOTOPENFOAM
+and the corresponding module
+OpenFOAM/%(version)s%(versionsuffix)s
+provides settings to run its solvers and utilities.
+
+The full OpenFOAM environment can be initiated via
+. $FOAM_BASH
+"""
+toolchain = {'name': 'gpsmpi', 'version': '2020'}
+toolchainopts = {'opt': True, 'cstd': 'c++11'}
+
+# source_urls = ['https://github.com/OpenFOAM/OpenFOAM-%(version_major)s/archive']
+
+sources = ['OpenFOAM-%(version)s-master.zip']
+patches = [
+    'OpenFOAM-%(version)s-cleanup.patch',
+    'OpenFOAM-%(version)s-SLURM.patch'
+]
+checksums = [
+    '1fabeca52d307e5cac1ab3785ed0b6888a6e13e21537e860519aad9168bca8ea',  # OpenFOAM-6-master.zip
+    '450e6ddbfda9413cf67a66b5c585b80c24cfb716fa9bf0810830ea7fa2e93bf6',  # OpenFOAM-6.0-cleanup.patch
+    '0c97373dd13403b0c3eee7e13118ae0bfe11a89bb0379be9e39c318e27c43a97'   # OpenFOAM-6.0-SLURM.patch
+]
+
+builddependencies = [
+    ('CMake', '3.18.0'),
+    ('Bison', '3.6.4'),
+    ('flex', '2.6.4'),
+]
+
+dependencies = [
+    ('libreadline', '8.0'),
+    ('ncurses', '6.2'),
+    # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes)
+    ('METIS', '5.1.0'),
+    ('SCOTCH', '6.1.0'),
+    ('CGAL', '4.13.1', '-Python-3.8.5'),
+    # ('ParaView', '5.6.0', '-Python-3.6.8')
+]
+
+parallel = 8
+
+prebuildopts = "export FOAMY_HEX_MESH=1 && "
+
+
+modextravars = {
+    'MPI_BUFFER_SIZE': '40000000'
+}
+
+modloadmsg = "This module provides only a minimal environment to run %(name)s executables.\n"
+modloadmsg += "The full environment can be initiated via:\n"
+modloadmsg += ". $FOAM_BASH\n"
+
+moduleclass = 'cae'
diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-v1812-cleanup.patch b/Golden_Repo/o/OpenFOAM/OpenFOAM-v1812-cleanup.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bab3303dcade73980fbac604b47a0f4cb55aedc3
--- /dev/null
+++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-v1812-cleanup.patch
@@ -0,0 +1,426 @@
+# - Replace the OpenFOAM third-party libraries with EASYBUILD variables.
+# - Set install dir, compiler, etc using EASYBUILD
+#
+# authors: Ward Poelmans <wpoely86@gmail.com>, Kenneth Hoste (HPC-UGent), Mark Olesen <Mark.Olesen@esi-group.com>,
+#          Simon Branford (University of Birmingham)
+--- OpenFOAM-v1912/etc/bashrc.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/bashrc	2020-01-06 19:13:09.39069861 +0000
+@@ -94,7 +94,7 @@
+ # = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPI | MPICH | MPICH-GM |
+ #   HPMPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI
+ # Also possible to use INTELMPI-xyz etc and define your own wmake rule
+-export WM_MPLIB=SYSTEMOPENMPI
++export WM_MPLIB=EASYBUILDMPI
+ 
+ 
+ #------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/CGAL.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/CGAL	2020-01-06 19:13:58.46916514 +0000
+@@ -41,33 +41,10 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+-boost_version=boost_1_64_0
+-cgal_version=CGAL-4.9.1
+-
+-export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
+-export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
++##EasyBuild## settings
++export BOOST_ARCH_PATH="$EBROOTBOOST"
++export CGAL_ARCH_PATH="$EBROOTCGAL"
+
+ # END OF (NORMAL) USER EDITABLE PART
+ #------------------------------------------------------------------------------
+-if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
+-then
+-    echo "Using boost ($boost_version)  ->  $BOOST_ARCH_PATH" 1>&2
+-    echo "Using CGAL ($cgal_version)  ->  $CGAL_ARCH_PATH" 1>&2
+-fi
+-
+-if command -v _foamAddLibAuto > /dev/null 2>&1  # Normal sourcing (not makeCGAL)
+-then
+-    _foamAddLibAuto $BOOST_ARCH_PATH  lib$WM_COMPILER_LIB_ARCH
+-    _foamAddLibAuto $CGAL_ARCH_PATH   lib$WM_COMPILER_LIB_ARCH
+-
+-    # GMP/MPFR may have already been added with ThirdParty compiler, but cannot
+-    # be certain so add here. Any duplicates will be removed later.
+-
+-    _foamAddLibAuto $GMP_ARCH_PATH   # No fallback libdir
+-    _foamAddLibAuto $MPFR_ARCH_PATH  # No fallback libdir
+
+-    unset boost_version cgal_version
+-
+-fi
+-
+-#------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/FFTW.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/FFTW	2020-01-06 19:14:18.89030368 +0000
+@@ -33,23 +33,8 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+-fftw_version=fftw-3.3.7
+-export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
++##EasyBuild## settings
++export FFTW_ARCH_PATH="$EBROOTFFTW"
+
+ # END OF (NORMAL) USER EDITABLE PART
+ #------------------------------------------------------------------------------
+-if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
+-then
+-    echo "Using fftw ($fftw_version)  ->  $FFTW_ARCH_PATH" 1>&2
+-fi
+-
+-if command -v _foamAddLibAuto > /dev/null 2>&1  # Normal sourcing (not makeFFTW)
+-then
+-
+-    _foamAddLibAuto $FFTW_ARCH_PATH  lib$WM_COMPILER_LIB_ARCH
+-
+-    unset fftw_version
+-
+-fi
+-
+-#------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/gperftools.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/gperftools	2020-01-06 19:14:52.90383440 +0000
+@@ -35,32 +35,8 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+-gperftools_version=gperftools-2.5
+-GPERFTOOLS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$gperftools_version
++##EasyBuild## settings
++GPERFTOOLS_ARCH_PATH="$EBROOTGPERFTOOLS"
+
+ # END OF (NORMAL) USER EDITABLE PART
+ #------------------------------------------------------------------------------
+-if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
+-then
+-    echo "Using gperftools ($gperftools_version)  ->  $GPERFTOOLS_ARCH_PATH" 1>&2
+-fi
+-
+-if command -v _foamAddLib > /dev/null 2>&1      # Normal sourcing
+-then
+-
+-    # If GPERFTOOLS_ARCH_PATH does not end with '-system' or '-none',
+-    # it is located within ThirdParty, or a central installation
+-    # outside of ThirdParty and must be added to the lib-path.
+-
+-    ending="${GPERFTOOLS_ARCH_PATH##*-}"
+-    if [ "$ending" != none ] && [ "$ending" != system ]
+-    then
+-        _foamAddLib     $GPERFTOOLS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+-        _foamAddPath    $GPERFTOOLS_ARCH_PATH/bin
+-    fi
+-
+-    unset gperftools_version ending
+-
+-fi
+-
+-#------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/metis.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/metis	2020-01-06 19:14:21.70845195 +0000
+@@ -34,8 +34,9 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+ 
+-METIS_VERSION=metis-5.1.0
+-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION
++##Easybuild## settings
++METIS_VERSION="metis-$EBVERSIONMETIS"
++[ -d "$METIS_ARCH_PATH" ] || METIS_ARCH_PATH="$METIS_ROOT"
+ 
+ # END OF (NORMAL) USER EDITABLE PART
+ #------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/mpi.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/mpi	2020-01-06 19:12:41.54940690 +0000
+@@ -96,6 +96,10 @@
+     _foamEtc -config  mpi-user                  # <- Adjustments (optional)
+     ;;
+ 
++EASYBUILDMPI)
++    export FOAM_MPI=mpi
++    ;;
++
+ SYSTEMMPI)
+     export FOAM_MPI=mpi-system
+     _foamEtc -config  mpi-system                # <- Adjustments (optional)
+--- OpenFOAM-v1912/etc/config.sh/paraview.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/paraview	2020-01-06 19:12:41.66878632 +0000
+@@ -51,7 +51,8 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+-ParaView_VERSION=5.6.0
++##Easybuild## settings
++ParaView_VERSION="$EBVERSIONPARAVIEW"
+ ParaView_QT=qt-system
+ cmake_version=cmake-system
+
+@@ -82,14 +83,6 @@
+     esac
+ done
+
+-# ThirdParty cmake
+-cmake="$archDir/$cmake_version"
+-if [ -r "$cmake/bin/cmake" ]
+-then
+-    # _foamAddPath not available when foamPV function is used
+-    PATH="$cmake/bin:$PATH"
+-fi
+-
+ case "$ParaView_VERSION" in
+ ('')
+     # empty - do nothing
+@@ -105,6 +98,7 @@
+     ;;
+
+ (system)
++    unset PV_PLUGIN_PATH
+     eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh ${FOAM_CONFIG_NOUSER:+-mode=o} -config paraview-system)"
+     ;;
+
+@@ -125,7 +119,9 @@
+         ;;
+     esac
+
+-    export ParaView_DIR="$archDir/ParaView-$ParaView_VERSION"
++    ##Easybuild## settings
++    export ParaView_DIR="$EBROOTPARAVIEW"
++    unset PV_PLUGIN_PATH
+
+     # Set paths if binaries are present
+     if [ -r "$ParaView_DIR" ]
+@@ -133,48 +129,26 @@
+         # The OpenFOAM plugin directory must be the first in PV_PLUGIN_PATH
+         # and have paraview-major.minor encoded in its name
+         export PV_PLUGIN_PATH="$FOAM_LIBBIN/paraview-$pv_api"
+-
+         export PATH="$ParaView_DIR/bin:$PATH"
+-        pvLibDir="$ParaView_DIR/lib/paraview-$pv_api"
+-        #OBSOLETE? pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
+-
+-        #OBSOLETE? # Python libraries as required
+-        #OBSOLETE? if [ -r $pvPython ]
+-        #OBSOLETE? then
+-        #OBSOLETE?    export PYTHONPATH=$PYTHONPATH:${PYTHONPATH:+:}$pvPython:$pvLibDir
+-        #OBSOLETE? fi
+-
+-        # QT libraries as required, and Qt5_DIR for the root directory.
+-        # Another possibility: "qtpaths --qt-version"
+-        qtDir="$archDir/$ParaView_QT"
+-        if [ -d "$qtDir" ]
+-        then
+-            case "$ParaView_QT" in
+-            (*-5*)
+-                export Qt5_DIR="$qtDir"
+-                ;;
+-            esac
+-            for qtLibDir in "$qtDir/lib$WM_COMPILER_LIB_ARCH" "$qtDir/lib"
+-            do
+-                if [ -d "$qtLibDir" ]
+-                then
+-                    export LD_LIBRARY_PATH="$qtLibDir:$LD_LIBRARY_PATH"
+-                    break
+-                fi
+-            done
+-        fi
+
+         # ParaView libraries
+         # - 5.4 and earlier: lib/paraview-X.X
+-        # - 5.5 and later:   lib/
+-        case "$pv_api" in
+-        (5.[0-4]*)
+-            export LD_LIBRARY_PATH="$pvLibDir:$LD_LIBRARY_PATH"
+-            ;;
+-        (*)
+-            export LD_LIBRARY_PATH="$ParaView_DIR/lib:$LD_LIBRARY_PATH"
+-            ;;
+-        esac
++        # - 5.5 and later:   lib/, but could also be lib64/
++        for libDir in "lib$WM_COMPILER_LIB_ARCH" "lib"
++        do
++            pvLibDir="$libDir/paraview-$pv_api"
++            if [ -d "$ParaView_DIR/$pvLibDir" ]
++            then
++                case "$pv_api" in
++                (5.[0-4]*)
++                    libDir="$pvLibDir"   # Needs lib/paraview-X.X (not lib)
++                    ;;
++                esac
++                export LD_LIBRARY_PATH="$ParaView_DIR/$libDir:$LD_LIBRARY_PATH"
++                break
++            fi
++            unset pvLibDir
++        done
+
+         if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
+         then
+@@ -198,13 +172,13 @@
+
+ #------------------------------------------------------------------------------
+
+-if command -v _foamAddLib > /dev/null 2>&1  # normal sourcing
++if command -v _foamAddLib >/dev/null  # normal sourcing
+ then
+     unset ParaView_VERSION ParaView_QT
+ fi
+
+-unset archDir
++unset archDir libDir
+ unset cmake cmake_version
+-unset pv_api pvLibDir pvPython qtDir qtLibDir
++unset pv_api pvLibDir pvPython qtDir
+
+ #------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/scotch.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/scotch	2020-01-06 19:14:50.81742938 +0000
+@@ -31,8 +31,10 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+ 
+-SCOTCH_VERSION=scotch_6.0.6
+-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
++##Easybuild## settings
++export SCOTCH_VERSION="scotch_$EBVERSIONSCOTCH"
++export SCOTCH_ARCH_PATH="$EBROOTSCOTCH"
++[ -d "$SCOTCH_ARCH_PATH" ] || SCOTCH_ARCH_PATH="$SCOTCH_ROOT"
+ 
+ # END OF (NORMAL) USER EDITABLE PART
+ #------------------------------------------------------------------------------
+--- OpenFOAM-v1912/etc/config.sh/vtk.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/etc/config.sh/vtk	2020-01-06 19:13:23.08425391 +0000
+@@ -31,46 +31,9 @@
+ #------------------------------------------------------------------------------
+ # USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+-vtk_version=VTK-8.2.0
+-mesa_version=mesa-17.1.1
+-mesa_llvm=none
+-
+-export VTK_DIR="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version"
+-export MESA_ARCH_PATH="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version"
+-export LLVM_ARCH_PATH="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH/$mesa_llvm"
++##Easybuild## settings
++export VTK_DIR="$EBROOTVTK"
++export MESA_ARCH_PATH="$EBROOTMESA"
+
+ # END OF (NORMAL) USER EDITABLE PART
+ #------------------------------------------------------------------------------
+-if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
+-then
+-    echo "Using vtk" 1>&2
+-    echo "    vtk  ($vtk_version) $VTK_DIR" 1>&2
+-    echo "    mesa ($mesa_version) $MESA_ARCH_PATH" 1>&2
+-    echo "    llvm ($mesa_llvm) $LLVM_ARCH_PATH" 1>&2
+-fi
+-
+-if command -v _foamAddLib > /dev/null 2>&1  # normal sourcing
+-then
+-
+-    # Set paths if binaries are present
+-    if [ -d "$VTK_DIR" ]
+-    then
+-        # Uses lib/ and not lib64/
+-        _foamAddLib "$VTK_DIR/lib"
+-    else
+-        unset VTK_DIR
+-    fi
+-
+-    if [ -d "$MESA_ARCH_PATH" ]
+-    then
+-        _foamAddLibAuto "$LLVM_ARCH_PATH"
+-        _foamAddLibAuto "$MESA_ARCH_PATH"
+-    else
+-        unset LLVM_ARCH_PATH
+-        unset MESA_ARCH_PATH
+-    fi
+-
+-    unset vtk_version mesa_version mesa_llvm
+-fi
+-
+-#------------------------------------------------------------------------------
+--- OpenFOAM-v1912/wmake/scripts/have_readline.orig	2020-01-06 19:07:23.000000000 +0000
++++ OpenFOAM-v1912/wmake/scripts/have_readline	2020-01-06 19:15:54.77256611 +0000
+@@ -52,47 +52,52 @@
+ # -> HAVE_LIBREADLINE, READLINE_INC_DIR, READLINE_LIB_DIR
+ have_readline()
+ {
+-    local header library static settings warn
++    local prefix header library incName libName settings warn
+     # warn="==> skip readline"
+
++    # Expected location, include/library names
++    prefix="$EBROOTLIBREADLINE"
++    incName="readline/readline.h"
++    libName="libreadline"
++
++    # ----------------------------------
++    if isNone "$prefix"
++    then
++        [ -n "$warn" ] && echo "$warn (disabled)"
++        return 1
++    elif hasAbsdir "$prefix"
++    then
++        header=$(findFirstFile "$prefix/include/$incName")
++        library="$(findExtLib $libName)"
++    elif isSystem "$prefix"
++    then
++        header=$(findFirstFile "/usr/local/include/$incName" "/usr/include/$incName")
++        prefix=$(sysPrefix "$header")
++    else
++        unset prefix
++    fi
++    # ----------------------------------
+
+-    # Header/library names
+-    header="readline/readline.h"
+-    library="libreadline$extLibso"
+-
+-    # System only?
+-    header=$(findFirstFile /usr/local/include/$header /usr/include/$header)
+-
+-    case "$header" in
+-    /usr/local/*)
+-        library=$(findFirstFile \
+-            /usr/local/lib/$library \
+-            /usr/local/lib$WM_COMPILER_LIB_ARCH/$library \
+-        )
+-        ;;
+-
+-    *)
+-        library=$(findFirstFile \
+-            /usr/lib/$library \
+-            /usr/lib$WM_COMPILER_LIB_ARCH/$library \
+-        )
+-        ;;
+-    esac
+-
+-    # Header found?
++    # Header
+     [ -n "$header" ] || {
+         [ -n "$warn" ] && echo "$warn (no header)"
+         return 2
+     }
+
+-    # Library found?
+-    [ -n "$library" ] || {
+-        [ -n "$warn" ] && echo "$warn (missing library)"
++    # Library
++    [ -n "$library" ] || library=$(findLibrary \
++        "$prefix/lib/$libName" \
++        "$prefix/lib$WM_COMPILER_LIB_ARCH/$libName" \
++    ) || {
++        [ -n "$warn" ] && echo "$warn (no library)"
+         return 2
+     }
+
+-    header="${header%/*}"     # Strip one-level (include/readline/...)
++    # ----------------------------------
++
++    header="${header%/*}"   # Strip one-level (include/readline/...)
+
++    # OK
+     export HAVE_LIBREADLINE=true
+     export READLINE_INC_DIR="${header%/*}"     # Basename
+     export READLINE_LIB_DIR="${library%/*}"    # Basename
diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-v1812-gpsmpi-2020.eb b/Golden_Repo/o/OpenFOAM/OpenFOAM-v1812-gpsmpi-2020.eb
new file mode 100644
index 0000000000000000000000000000000000000000..bcf625e68d05b3d07e3d5173fa7405c0b172379e
--- /dev/null
+++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-v1812-gpsmpi-2020.eb
@@ -0,0 +1,68 @@
+name = 'OpenFOAM'
+version = 'v1812'
+versionsuffix = '_200312'
+
+homepage = 'https://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.
+
+OpenFOAM %(version)s%(versionsuffix)s is installed in
+$EBROOTOPENFOAM
+and the corresponding module
+OpenFOAM/%(version)s%(versionsuffix)s
+provides settings to run its solvers and utilities.
+
+The full OpenFOAM environment can be initiated via
+. $FOAM_BASH
+"""
+
+toolchain = {'name': 'gpsmpi', 'version': '2020'}
+toolchainopts = {'opt': True, 'cstd': 'c++17'}
+
+source_urls = ['https://sourceforge.net/projects/openfoam/files/%(version)s/']
+sources = ['%(name)s-%(version)s%(versionsuffix)s.tgz', 'ThirdParty-v1812.tgz']
+patches = [
+    'OpenFOAM-%(version)s-cleanup.patch',
+    ('ThirdParty-%(version)s-cleanup.patch', ".."),
+    #    'OpenFOAM-v1906-CGAL-4.14.1.patch',
+]
+checksums = [
+    '925d2877c12740fab177a30fdcaa8899c262c15b90225f9c29d18a2d97532de0',  # OpenFOAM-v1812_200312.tgz
+    'f90a66d193f238528543bb4e007b43c90f246351aa9a7ea15ea8e7fe3b410498',  # ThirdParty-v1812.tgz
+    '632c0888d476171823fbec00dd85c951897a49e86c6d44b7ae6fd010ddb4b066',  # OpenFOAM-v1812-cleanup.patch
+    'd37f3451d5716f1b989f999f46ed74a3e625ccbac78dfbc196203498e941b172',  # ThirdParty-v1812-cleanup.patch
+    'b986a573775fe108755790ef34529f2afd428be7c4c295fadb58fbe5ea058920',  # OpenFOAM-v1906-CGAL-4.14.1.patch
+]
+
+dependencies = [
+    ('libreadline', '8.0'),
+    ('ncurses', '6.2'),
+    # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes)
+    ('METIS', '5.1.0'),
+    ('SCOTCH', '6.1.0'),
+    ('CGAL', '4.13.1', '-Python-3.8.5'),
+    ('FFTW', '3.3.8'),
+    #    ('ParaView', '5.6.0', '-Python-3.6.8'),
+]
+
+builddependencies = [
+    ('Bison', '3.6.4'),
+    ('CMake', '3.18.0'),
+    ('flex', '2.6.4'),
+]
+
+parallel = 8
+
+prebuildopts = 'export FOAMY_HEX_MESH=1 &&'
+
+modextravars = {
+    'MPI_BUFFER_SIZE': '40000000'
+}
+
+modloadmsg = "This module provides only a minimal environment to run %(name)s executables.\n"
+modloadmsg += "The full environment can be initiated via:\n"
+modloadmsg += ". $FOAM_BASH\n"
+
+moduleclass = 'cae'
diff --git a/Golden_Repo/o/OpenFOAM/ThirdParty-v1812-cleanup.patch b/Golden_Repo/o/OpenFOAM/ThirdParty-v1812-cleanup.patch
new file mode 100644
index 0000000000000000000000000000000000000000..45149ebc6d79d628de7da4e4bf5e5043da4f9424
--- /dev/null
+++ b/Golden_Repo/o/OpenFOAM/ThirdParty-v1812-cleanup.patch
@@ -0,0 +1,256 @@
+--- ThirdParty-v1812/Allwmake.orig	2020-08-19 14:45:23.238743000 +0200
++++ ThirdParty-v1812/Allwmake	2020-08-31 12:19:28.638081685 +0200
+@@ -73,172 +73,6 @@
+
+ #------------------------------------------------------------------------------
+ # Building scotch on different platforms is still a bit of a pain
+-
+-# Get SCOTCH_VERSION, SCOTCH_ARCH_PATH
+-if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
+-then
+-    . $settings
+-else
+-    echo
+-    echo "Error: no config.sh/scotch settings"
+-    echo
+-fi
+-
+-echo
+-echo ========================================
+-echo "Scotch decomposition ($SCOTCH_VERSION)"
+-echo "    $SCOTCH_ARCH_PATH"
+-
+-SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION
+-
+-# Needs generalizing, but works fairly well
+-scotchMakefile=etc/makeFiles/scotch/Makefile.inc.OpenFOAM-"$(uname -s)".shlib
+-
+-[ -f $scotchMakefile ] || \
+-    scotchMakefile=${scotchMakefile%/*}/Makefile.inc.OpenFOAM-Linux.shlib
+-
+-if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
+-  -a -r $FOAM_EXT_LIBBIN/libscotch.$SO \
+-  -a -r $FOAM_EXT_LIBBIN/libscotcherrexit.$SO ]
+-then
+-    echo "    scotch include: $SCOTCH_ARCH_PATH/include"
+-    echo "    scotch library: $FOAM_EXT_LIBBIN"
+-elif [ -d "$SCOTCH_SOURCE_DIR" ]
+-then
+-(
+-    # Older versions ok, but scotch-6.0.5a cannot build in parallel.
+-    # Force serial build
+-    export WM_NCOMPPROCS=1
+-    echo "*** building scotch in serial ***"
+-    echo
+-
+-    cd $SCOTCH_SOURCE_DIR/src || exit 1
+-    export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo
+-    rm -rf $SCOTCH_ARCH_PATH
+-
+-    applyPatch $SCOTCH_VERSION ..       # patch at parent-level
+-
+-    prefixDIR=$SCOTCH_ARCH_PATH
+-    incDIR=$SCOTCH_ARCH_PATH/include
+-    libDIR=$FOAM_EXT_LIBBIN
+-
+-    mkdir -p $prefixDIR 2>/dev/null
+-    mkdir -p $incDIR    2>/dev/null
+-    mkdir -p $libDIR    2>/dev/null
+-
+-    # Makefile relative to this directory
+-    scotchMakefile=../../$scotchMakefile
+-
+-    if [ -f $scotchMakefile ]
+-    then
+-        rm -f Makefile.inc
+-        ln -s $scotchMakefile Makefile.inc
+-    fi
+-    [ -f Makefile.inc ] || {
+-        echo " Error: scotch needs an appropriate Makefile.inc"
+-        exit 1
+-    }
+-
+-    export CCS="${CC:-$WM_CC}"  # CCS (serial compiler)   default=$(CC)
+-    export CCP=$(whichMpicc)    # CCP (parallel compiler) default=mpicc
+-
+-    # Consistency for Intel-MPI and non-icc compilers
+-    [ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}"
+-
+-    make realclean 2>/dev/null  # Extra safety
+-    make -j $WM_NCOMPPROCS scotch \
+-     && make \
+-        prefix=$prefixDIR \
+-        includedir=$incDIR \
+-        libdir=$libDIR \
+-        install
+-
+-    make realclean 2>/dev/null || true      # Failed cleanup is uncritical
+-) || warnBuildIssues SCOTCH
+-else
+-    warnNotFound SCOTCH
+-fi
+-
+-# Build ptscotch if MPI (ThirdParty or system) is available
+-# and normal scotch was built (has include and library)
+-if [ "${FOAM_MPI:-dummy}" != dummy ] && \
+-   [ -f $SCOTCH_ARCH_PATH/include/scotch.h \
+-  -a -r $FOAM_EXT_LIBBIN/libscotch.$SO ] || \
+-{
+-    # Report that the above tests failed and pass-through the failure
+-    echo
+-    echo "    WARNING: skipping pt-scotch - no mpi or <scotch.h> not found"
+-    false
+-}
+-then
+-    echo
+-    echo ========================================
+-    echo "pt-scotch decomposition ($SCOTCH_VERSION with $FOAM_MPI)"
+-    echo "    $SCOTCH_ARCH_PATH"
+-
+-    if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \
+-      -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.$SO \
+-      -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.$SO ]
+-    then
+-        echo "    ptscotch include: $SCOTCH_ARCH_PATH/include/$FOAM_MPI"
+-        echo "    ptscotch library: $FOAM_EXT_LIBBIN/$FOAM_MPI"
+-    else
+-    (
+-        # Older versions ok, but scotch-6.0.5a cannot build in parallel.
+-        # Force serial build
+-        export WM_NCOMPPROCS=1
+-        echo "*** building pt-scotch in serial ***"
+-
+-        cd $SCOTCH_SOURCE_DIR/src || exit 1
+-        export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo
+-        echo
+-
+-        prefixDIR=$SCOTCH_ARCH_PATH
+-        incDIR=$SCOTCH_ARCH_PATH/include/$FOAM_MPI
+-        libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI
+-
+-        mkdir -p $prefixDIR 2>/dev/null
+-        mkdir -p $incDIR    2>/dev/null
+-        mkdir -p $libDIR    2>/dev/null
+-
+-        if [ -f $scotchMakefile ]
+-        then
+-            rm -f Makefile.inc
+-            ln -s $scotchMakefile Makefile.inc
+-        fi
+-        [ -f Makefile.inc ] || {
+-            echo " Error: ptscotch needs an appropriate Makefile.inc"
+-            exit 1
+-        }
+-
+-        export CCS="${CC:-$WM_CC}"  # CCS (serial compiler)   default=$(CC)
+-        export CCP=$(whichMpicc)    # CCP (parallel compiler) default=mpicc
+-
+-        # Consistency for Intel-MPI and non-icc compilers
+-        [ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}"
+-
+-        make realclean 2>/dev/null  # Extra safety
+-        make -j $WM_NCOMPPROCS ptscotch \
+-         && make \
+-            prefix=$prefixDIR \
+-            includedir=$incDIR \
+-            libdir=$libDIR \
+-            install
+-
+-        make realclean 2>/dev/null || true  # Failed cleanup is uncritical
+-    ) || warnBuildIssues PTSCOTCH
+-    fi
+-
+-    # Verify existence of ptscotch include
+-    [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || {
+-        echo
+-        echo "    WARNING: required include file 'ptscotch.h' not found!"
+-    }
+-fi
+-
+-# Could now remove $SCOTCH_SOURCE_DIR/src/Makefile.inc
+-
+-
+ #------------------------------------------------------------------------------
+
+ echo
+@@ -258,45 +92,44 @@
+ fi
+
+ #------------------------------------------------------------------------------
+-echo
+-echo ========================================
+-
++#echo
++#echo ========================================
+ # Get METIS_ARCH_PATH
+-if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
+-then
+-    . $settings
+-fi
+-if [ -n "$METIS_ARCH_PATH" ]
+-then
+-    echo Metis decomposition
+-    ./makeMETIS -test "$METIS_ARCH_PATH" || \
+-    ./makeMETIS || warnBuildIssues METIS
+-else
+-    warnNotFound METIS   # METIS is optional
+-fi
++#if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
++#then
++#    . $settings
++#fi
++#if [ -n "$METIS_ARCH_PATH" ]
++#then
++#    echo Metis decomposition
++#    ./makeMETIS -test "$METIS_ARCH_PATH" || \
++#    ./makeMETIS || warnBuildIssues METIS
++#else
++#    warnNotFound METIS   # METIS is optional
++#fi
+
+ #------------------------------------------------------------------------------
+-echo
+-echo ========================================
+-if [ -n "$CGAL_ARCH_PATH" ]
+-then
+-    echo "CGAL/boost"
+-    ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
+-    ./makeCGAL || warnBuildIssues CGAL
+-else
+-    warnNotFound CGAL   # CGAL is optional
+-fi
+-
+-echo
+-echo ========================================
+-if [ -n "$FFTW_ARCH_PATH" ]
+-then
+-    echo FFTW
+-    ./makeFFTW -test "$FFTW_ARCH_PATH" || \
+-    ./makeFFTW || warnBuildIssues FFTW
+-else
+-    warnNotFound FFTW   # FFTW is optional
+-fi
++#echo
++#echo ========================================
++#if [ -n "$CGAL_ARCH_PATH" ]
++#then
++#    echo "CGAL/boost"
++#    ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
++#    ./makeCGAL || warnBuildIssues CGAL
++#else
++#    warnNotFound CGAL   # CGAL is optional
++#fi
++
++#echo
++#echo ========================================
++#if [ -n "$FFTW_ARCH_PATH" ]
++#then
++#    echo FFTW
++#    ./makeFFTW -test "$FFTW_ARCH_PATH" || \
++#    ./makeFFTW || warnBuildIssues FFTW
++#else
++#    warnNotFound FFTW   # FFTW is optional
++#fi
+
+ echo
+ echo ========================================
diff --git a/Golden_Repo/q/Qiskit/Qiskit-0.23.2-gpsmkl-2020-Python-3.8.5.eb b/Golden_Repo/q/Qiskit/Qiskit-0.23.5-gpsmkl-2020-Python-3.8.5.eb
similarity index 74%
rename from Golden_Repo/q/Qiskit/Qiskit-0.23.2-gpsmkl-2020-Python-3.8.5.eb
rename to Golden_Repo/q/Qiskit/Qiskit-0.23.5-gpsmkl-2020-Python-3.8.5.eb
index 63a6c00b663a0e36af60a5d7cceae825b305f74c..27e3663f6bf5236803eadd472e6608f42026d9b6 100644
--- a/Golden_Repo/q/Qiskit/Qiskit-0.23.2-gpsmkl-2020-Python-3.8.5.eb
+++ b/Golden_Repo/q/Qiskit/Qiskit-0.23.5-gpsmkl-2020-Python-3.8.5.eb
@@ -1,9 +1,9 @@
 easyblock = 'PythonBundle'
 
 name = 'Qiskit'
-version = '0.23.2'
+version = '0.23.5'
 versionsuffix = '-Python-%(pyver)s'
-local_aerver = '0.7.0'  # version of qiskit-aer
+local_aerver = '0.7.4'  # version of qiskit-aer
 
 homepage = 'https://qiskit.org'
 description = """Qiskit is an open-source framework for working with noisy quantum computers
@@ -29,6 +29,10 @@ dependencies = [
     ('CVXOPT', '1.2.5', versionsuffix),
     ('h5py', '2.10.0', '-serial' + versionsuffix),
     ('PySCF', '1.7.1', versionsuffix),
+    ('pybind11', '2.5.0', versionsuffix),  # for qiskit-aer
+    ('nlohmann-json', '3.9.1'),  # for qiskit-aer
+    ('spdlog', '1.8.2'),  # for qiskit-aer
+    ('muparserx', '4.0.8'),  # for qiskit-aer
 ]
 
 local_common_opts = {
@@ -36,6 +40,9 @@ local_common_opts = {
     'req_py_minver': '0'
 }
 
+# qiskit-aer must not use CONAN to install dependencies
+modextravars = {'DISABLE_CONAN': 'YES'}
+
 exts_default_options = {
     'source_urls': [PYPI_SOURCE],
     'use_pip': True,
@@ -65,24 +72,31 @@ exts_list = [
     ('pylatexenc', '1.5', dict(list(local_common_opts.items()) + [
         ('checksums', [('sha256', 'ef2d5260c38e2cb4d2829e8b918914a558557820d4f57cb6588a81e827de2bb3')]),
     ])),
-    ('qiskit-terra', '0.16.0', dict(list(local_common_opts.items()) + [
+    ('qiskit-terra', '0.16.4', dict(list(local_common_opts.items()) + [
         ('patches', ['qiskit-terra-0.9.0_fix-qiskit-version-env.patch']),
         ('checksums', [(
-            # qiskit-terra-0.16.0.tar.gz
-            ('sha256', 'd0cba3aa7531a316429275ac11f3380c19c2014b376e3f9bac93f7037c1b426b'),
+            # qiskit-terra-0.16.4.tar.gz
+            ('sha256', '2322e7e8d5a208c649432304f494bf73c4a4ce2f852128125fbaf9dbed1c1538'),
             # qiskit-terra-0.9.0_fix-qiskit-version-env.patch
             ('sha256', 'a297f338a97f956513d849286087bab5508301e214054d07482efc90a5ab1b74'),
         )]),
         ('modulename', 'qiskit.qobj'),
     ])),
+    # retworkx installs `setuptools-rust`, if we do not
+    ('semantic_version', '2.8.5', dict(list(local_common_opts.items()) + [
+        ('checksums', [('sha256', 'd2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54')]),
+    ])),
+    ('setuptools-rust', '0.11.6', dict(list(local_common_opts.items()) + [
+        ('checksums', [('sha256', 'a5b5954909cbc5d66b914ee6763f81fa2610916041c7266105a469f504a7c4ca')]),
+    ])),
     ('retworkx', '0.7.2', dict(list(local_common_opts.items()) + [
         ('checksums', [('sha256', '3fcd08031b743766935e01696c01545a24d1ef16c854333ba835c96a66eb76a9')]),
     ])),
     ('fastjsonschema', '2.14.5', dict(list(local_common_opts.items()) + [
         ('checksums', [('sha256', 'afbc235655f06356e46caa80190512e4d9222abfaca856041be5a74c665fa094')]),
     ])),
-    ('qiskit-ignis', '0.5.0', dict(list(local_common_opts.items()) + [
-        ('checksums', [('sha256', 'fd7d704bd37481e2c9e627bc00531afbb3123c376229ab0c4f89a12f64984ad3')]),
+    ('qiskit-ignis', '0.5.2', dict(list(local_common_opts.items()) + [
+        ('checksums', [('sha256', 'ca0eca5ad265388b1cd8914ceb31c50a6101f4b2de634553dcb2b5c9e122c840')]),
         ('modulename', 'qiskit.ignis'),
     ])),
     ('fastdtw', '0.3.4', dict(list(local_common_opts.items()) + [
@@ -106,11 +120,8 @@ exts_list = [
     ('Quandl', '3.5.0', dict(list(local_common_opts.items()) + [
         ('checksums', [('sha256', 'c3a9fc5ec1b585eeacd97531454e7795dde7a072c057f21335e5918cb905fc7e')]),
     ])),
-    ('jsonschema', '2.6.0', dict(list(local_common_opts.items()) + [
-        ('checksums', [('sha256', '6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02')]),
-    ])),  # part of Python module in version 3.0.1, but sanity check fails if package used from Python dependency
-    ('qiskit-aqua', '0.8.0', dict(list(local_common_opts.items()) + [
-        ('checksums', [('a235aa92f6c71b885591d22f34b43876a466c7af6e1918c260d2640f1c459c7b')]),
+    ('qiskit-aqua', '0.8.2', dict(list(local_common_opts.items()) + [
+        ('checksums', [('bea761485826bb3858b3b446571b944dd4c6689f81f16ad96ff8a317b35613c6')]),
         ('modulename', 'qiskit.aqua'),
     ])),
     ('websockets', '7.0', dict(list(local_common_opts.items()) + [
@@ -122,20 +133,20 @@ exts_list = [
     ('requests_ntlm', '1.1.0', dict(list(local_common_opts.items()) + [
         ('checksums', [('sha256', '9189c92e8c61ae91402a64b972c4802b2457ce6a799d658256ebf084d5c7eb71')]),
     ])),
-    ('nest-asyncio', '1.0.0', dict(list(local_common_opts.items()) + [
-        ('source_tmpl', 'nest_asyncio-%(version)s.tar.gz'),
-        ('checksums', [('sha256', 'bd1cb7df2ea979e57d8ad02493ad85f9afbf1fcea3dfe34239da8c0dda98087e')]),
+    ('nest_asyncio', '1.4.3', dict(list(local_common_opts.items()) + [
+        ('checksums', [('sha256', 'eaa09ef1353ebefae19162ad423eef7a12166bcc63866f8bff8f3635353cd9fa')]),
     ])),
-    ('qiskit-ibmq-provider', '0.11.0', dict(list(local_common_opts.items()) + [
-        ('checksums', [('sha256', '429012832bdc6eac4a4acb4e9e55b37fba5213794b960d98c68508e6bb096623')]),
+    ('qiskit-ibmq-provider', '0.11.1', dict(list(local_common_opts.items()) + [
+        ('checksums', [('sha256', '7e8b93cf12963c46989fac6d1540346a9fb1bc8f5768b2d64e8b1c6714a9c0de')]),
         ('modulename', 'qiskit.providers.ibmq'),
     ])),
     ('qiskit-aer', local_aerver, dict(list(local_common_opts.items()) + [
-        ('checksums', [('sha256', 'ed8d1836e16d2db8bcea8ce55a836705e2eeb05dd6d55f6c66a7641bcb95b49e')]),
+        ('checksums', [('sha256', '0fec1fa3d528cc8e9de13713cb243fe40a98c60dc27111b479f1df707d9c03a4')]),
         ('modulename', 'qiskit.providers.aer'),
     ])),
+    # (possible addition in future) qiskit-aer-gpu == qiskit-aer+CUDA
     ('qiskit', version, dict(list(local_common_opts.items()) + [
-        ('checksums', [('sha256', '1593b142d64c9cb3c158ec20f2721006a09af831abf218b348775a2684218254')]),
+        ('checksums', [('sha256', '6529ef7738c85341fb1008c33ca84111a6bc1de3c9072aae36206848550d0091')]),
     ])),
 ]
 
diff --git a/Golden_Repo/s/SoX/SoX-14.4.2-GCCcore-9.3.0.eb b/Golden_Repo/s/SoX/SoX-14.4.2-GCCcore-9.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..18a9acd580e17512f08f6b3fff7186aea426d971
--- /dev/null
+++ b/Golden_Repo/s/SoX/SoX-14.4.2-GCCcore-9.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'SoX'
+version = '14.4.2'
+
+homepage = 'https://sourceforge.net/projects/sox'
+description = """SoX is the Swiss Army Knife of sound processing utilities. It can convert audio files
+ to other popular audio file types and also apply sound effects and filters during the conversion."""
+
+site_contacts = 'a.strube@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3bb55f6c']
+
+builddependencies = {
+    ('binutils', '2.34')
+}
+
+sanity_check_paths = {
+    'files': ['bin/play', 'bin/rec', 'bin/sox', 'bin/soxi', 'include/sox.h',
+              'lib/libsox.a', 'lib/libsox.%s' % SHLIB_EXT, 'lib/pkgconfig/sox.pc'],
+    'dirs': ['share/man'],
+}
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/s/spdlog/spdlog-1.8.2-GCCcore-9.3.0.eb b/Golden_Repo/s/spdlog/spdlog-1.8.2-GCCcore-9.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..ba5d0faeeb93c8025ccdc280286cfd3c80f9c751
--- /dev/null
+++ b/Golden_Repo/s/spdlog/spdlog-1.8.2-GCCcore-9.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'spdlog'
+version = '1.8.2'
+
+homepage = "https://github.com/gabime/spdlog"
+description = """Very fast, header-only/compiled, C++ logging library. 
+"""
+
+site_contacts = 'j.goebbert@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/gabime/spdlog/archive/']
+sources = ['v%(version)s.tar.gz']
+
+builddependencies = [
+    ('CMake', '3.18.0'),
+    ('binutils', '2.34')
+]
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': [('include', 'lib64')]
+}
diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
index 9a55c28c37c3eafc4ca9b2049a1237e2c1823d32..3a91cdbed7662d561c0cfe536ce5dabdd7586078 100644
--- a/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
+++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
@@ -90,9 +90,6 @@ exts_list = [
     ('google-auth-oauthlib', '0.4.1', {
         'checksums': ['88d2cd115e3391eb85e1243ac6902e76e77c5fe438b7276b297fbe68015458dd'],
     }),
-    ('Werkzeug', '1.0.1', {
-        'checksums': ['6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c'],
-    }),
     ('absl-py', '0.10.0', {
         'modulename': 'absl',
         'checksums': ['b20f504a7871a580be5268a18fbad48af4203df5d33dbc9272426cb806245a45'],
diff --git a/Golden_Repo/t/torchaudio/torchaudio-0.7.2-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/t/torchaudio/torchaudio-0.7.2-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
new file mode 100644
index 0000000000000000000000000000000000000000..63cd0885e697808dfc24a73bdbfdb6f89fc32613
--- /dev/null
+++ b/Golden_Repo/t/torchaudio/torchaudio-0.7.2-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb
@@ -0,0 +1,30 @@
+easyblock = 'PythonPackage'
+
+name = 'torchaudio'
+version = '0.7.2'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'https://github.com/pytorch/audio'
+description = """ Data manipulation and transformation for audio signal
+processing, powered by PyTorch """
+
+toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'}
+
+site_contacts = 'a.strube@fz-juelich.de'
+
+source_urls = ['https://github.com/pytorch/audio/archive']
+sources = ['v%(version)s.tar.gz']
+
+
+dependencies = [
+    ('Python', '3.8.5'),
+    ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')),
+    ('PyTorch', '1.7.0', versionsuffix),
+    ('SoX', '14.4.2'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/x/XServer/XServer-1.20.9-GCCcore-9.3.0.eb b/Golden_Repo/x/XServer/XServer-1.20.9-GCCcore-9.3.0.eb
index 50732d1291bf02a24ec300c53e8cb4710322bc96..17064282b0de7005fcc841dec6da3650fed4c621 100644
--- a/Golden_Repo/x/XServer/XServer-1.20.9-GCCcore-9.3.0.eb
+++ b/Golden_Repo/x/XServer/XServer-1.20.9-GCCcore-9.3.0.eb
@@ -45,6 +45,23 @@ dependencies = [
     ('eudev', '3.2.9'),
 ]
 
+local_font_preconfigopts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+local_font_preconfigopts += "export PATH=%(installdir)s/bin:$PATH && "
+
+# https://github.com/freedesktop/xorg-xserver/blob/master/meson_options.txt
+local_xorg_configopts = "-D default_font_path=%(installdir)s/share/fonts/X11 "
+local_xorg_configopts += "-D xorg=true "
+local_xorg_configopts += "-D xvfb=true "
+local_xorg_configopts += "-D xnest=true "
+local_xorg_configopts += "-D xephyr=true "
+local_xorg_configopts += "-D dmx=true "
+local_xorg_configopts += "-D udev=true "
+local_xorg_configopts += "-D glamor=true "
+local_xorg_configopts += "-D systemd_logind=false "
+# local_xorg_configopts += "-D suid_wrapper=true "
+local_xorg_configopts += "-D xkb_dir=%(installdir)s/share/X11/xkb "
+# local_xorg_configopts += "-D xkb_output_dir=/var/lib/xkb "
+
 default_easyblock = 'ConfigureMake'
 
 default_component_specs = {
@@ -53,19 +70,6 @@ default_component_specs = {
 }
 
 components = [
-    ('xorg-server', version, {
-        'easyblock': 'MesonNinja',
-        'checksums': [('sha256', '067c348fe1a86a1924010354c1c7cf1eaa9e43866e48540aa56a465f2a341ddc')],
-    }),
-    ('xf86-video-dummy', '0.3.8', {
-        'preconfigopts': 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib/pkgconfig',
-        'checksums': [('sha256', 'ee5ad51e80c8cc90d4c76ac3dec2269a3c769f4232ed418b29d60d618074631b')],
-        'patches': [
-            '0002-Constant-DPI.patch',
-            '0003-fix-pointer-limits.patch',
-            '0005-support-for-30-bit-depth-in-dummy-driver.patch'
-        ],
-    }),
     ('fontconfig-config', '1.0.0', {
         'easyblock': 'Binary',
         'source_urls': ['https://gitlab.version.fz-juelich.de/goebbert1/fontconfig-config/-/archive/v%(version)s/'],
@@ -79,15 +83,17 @@ components = [
         'checksums': [('sha256', '68544c183d153f34105fa08573174650bfe643a6d750bd9da4accac399d375db')],
         # to activate this fontconfig you need to export FONTCONFIG_FILE=${EBROOTXSERVER}/config/fontconfig/fonts.conf
     }),
-    ('dejavu', '2.37', {
-        'easyblock': 'Binary',
-        'source_urls': [SOURCEFORGE_SOURCE],
-        'sources': ['%(name)s-fonts-ttf-%(version)s.tar.bz2'],
-        'extract_sources': True,
-        'start_dir': 'dejavu-fonts-ttf-2.37',
-        'install_cmd': ('install -v -d -m755 %(installdir)s/share/fonts/dejavu && '
-                        'install -v -m644 ttf/*.ttf %(installdir)s/share/fonts/dejavu'),
-        'checksums': [('sha256', 'fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7')],
+    ('mkfontscale', '1.2.1', {
+        'source_urls': ['https://www.x.org/archive//individual/app/'],
+        'checksums': ['e5b687029e44d0bd3ccd254a4da6a5cbfc40350aa8b43fcca16ef6e9b9bb9f22'],
+    }),
+    ('mkfontdir', '1.0.7', {
+        'source_urls': ['https://www.x.org/archive//individual/app/'],
+        'checksums': ['bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7'],
+    }),
+    ('bdftopcf', '1.1', {
+        'source_urls': ['https://www.x.org/archive//individual/app/'],
+        'checksums': ['699d1a62012035b1461c7f8e3f05a51c8bd6f28f348983249fb89bbff7309b47'],
     }),
     ('font-util', '1.3.2', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
@@ -104,60 +110,113 @@ components = [
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', '49525fa6f2c3f3b54f461b2e0649b0ac61af50c36bf40069355a25ced8ce2028')],
     }),
+    ('dejavu', '2.37', {
+        'easyblock': 'Binary',
+        'source_urls': [SOURCEFORGE_SOURCE],
+        'sources': ['%(name)s-fonts-ttf-%(version)s.tar.bz2'],
+        'extract_sources': True,
+        'start_dir': 'dejavu-fonts-ttf-2.37',
+        'install_cmd': ('install -v -d -m755 %(installdir)s/share/fonts/dejavu && '
+                        'install -v -m644 ttf/*.ttf %(installdir)s/share/fonts/dejavu'),
+        'checksums': [('sha256', 'fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7')],
+        'preconfigopts': local_font_preconfigopts,
+    }),
     ('font-adobe-75dpi', '1.0.3', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', '61eb1fcfec89f7435cb92cd68712fbe4ba412ca562b1f5feec1f6daa1b8544f6')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-adobe-100dpi', '1.0.3', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', '97d9c1e706938838e4134d74f0836ae9d9ca6705ecb405c9a0ac8fdcbd9c2159')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-cursor-misc', '1.0.3', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', 'a0b146139363dd0a704c7265ff9cd9150d4ae7c0d248091a9a42093e1618c427')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-adobe-utopia-type1', '1.0.4', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', 'd9e86a8805b0fb78222409169d839a8531a1f5c7284ee117ff2a0af2e5016c3f')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-misc-misc', '1.1.2', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', '46142c876e176036c61c0c24c0a689079704d5ca5b510d48c025861ee2dbf829')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-bh-ttf', '1.0.3', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', 'c583b4b968ffae6ea30d5b74041afeac83126682c490a9624b770d60d0e63d59')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-bh-type1', '1.0.3', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', 'd5602f1d749ccd31d3bc1bb6f0c5d77400de0e5e3ac5abebd2a867aa2a4081a4')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-ibm-type1', '1.0.3', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', '4509703e9e581061309cf4823bffd4a93f10f48fe192a1d8be1f183fd6ab9711')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-misc-ethiopic', '1.0.4', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', 'f7901250fb746815065cfe13a814d92260348fede28d61dcab0d05c5d8eafd54')],
+        'preconfigopts': local_font_preconfigopts,
     }),
     ('font-xfree86-type1', '1.0.4', {
         'source_urls': ['https://www.x.org/pub/individual/font/'],
         'sources': ['%(name)s-%(version)s.tar.gz'],
         'checksums': [('sha256', '02b3839ae79ba6a7750525bb3b0c281305664b95bf63b4a0baa230a277b4f928')],
+        'preconfigopts': local_font_preconfigopts,
+    }),
+    ('xkbcomp', '1.4.4', {
+        'source_urls': ['https://www.x.org/archive//individual/app/'],
+        'checksums': ['159fba6b62ef4a3fb16ef7fc4eb4fc26f3888652471ceb604c495783dda020bc'],
+    }),
+    ('xkeyboard-config', '2.31', {
+        'source_urls': ['https://www.x.org/archive//individual/data/xkeyboard-config/'],
+        'checksums': ['5ac6b5b661aeb9d0ea84ad961cbbdd8fdf2503d6e8ca65ca1b1c5d9aea2ddc52'],
+        'configopts': '--with-xkb-rules-symlink=xorg',
+    }),
+    ('xauth', '1.1', {
+        'source_urls': ['https://www.x.org/releases/individual/app/'],
+        'checksums': ['e9fce796c8c5c9368594b9e8bbba237fb54b6615f5fd60e8d0a5b3c52a92c5ef'],
+    }),
+    ('xorg-server', version, {
+        'easyblock': 'MesonNinja',
+        'patches': [('xvfb-run', '.')],
+        'checksums': [
+            ('sha256', '067c348fe1a86a1924010354c1c7cf1eaa9e43866e48540aa56a465f2a341ddc'),
+            ('sha256', 'fd6d13182b77871d4f65fccdaebb8a72387a726426066d3f8e6aa26b010ea0e8'),
+        ],
+        'configopts': local_xorg_configopts,
+    }),
+    ('xf86-video-dummy', '0.3.8', {
+        'preconfigopts': 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib/pkgconfig',
+        'checksums': [('sha256', 'ee5ad51e80c8cc90d4c76ac3dec2269a3c769f4232ed418b29d60d618074631b')],
+        'patches': [
+            '0002-Constant-DPI.patch',
+            '0003-fix-pointer-limits.patch',
+            '0005-support-for-30-bit-depth-in-dummy-driver.patch'
+        ],
     }),
     ('xterm', '362', {
         'source_urls': ['http://invisible-mirror.net/archives/xterm/'],
         'sources': ['%(name)s-%(version)s.tgz'],
         'checksums': [('sha256', '1d4ffe226fa8f021859bbc3007788ff63a46a31242d9bd9a7bd7ebe24e81aca2')],
+        'patches': ['xterm-cursesloc.patch'],
         'configopts': " --with-app-defaults=${EBROOTX11}/app-defaults ",
     }),
 ]
@@ -165,8 +224,12 @@ components = [
 # we need to set the permissions our self to ensure no-one messes in this directory
 # FIXME: easybuild does not support this in 4.3.0 -> hence you have to do it manually
 skipsteps = ['permissions']
-postinstallcmds = ['chmod -R ugo-w %(installdir)s/config',  # avoid that anyone ever writes here - apps love to use it
-                   'chmod -R ugo-w %(installdir)s/share']
+postinstallcmds = [
+    'chmod -R ugo-w %(installdir)s/config',
+    'chmod -R ugo-w %(installdir)s/share',
+    'cp -a %(builddir)s/xorg-server-%(version)s/xvfb-run %(installdir)s/bin/',
+    'chmod u+x  %(installdir)s/bin/xvfb-run',
+]
 
 modextrapaths = {'XDG_CONFIG_DIRS': 'config'}
 
@@ -174,10 +237,15 @@ modextrapaths = {'XDG_CONFIG_DIRS': 'config'}
 modextravars = {'FONTCONFIG_FILE': '%(installdir)s/config/fontconfig/fonts.conf'}
 
 sanity_check_paths = {
-    'files': ['bin/Xorg', 'bin/Xvfb',
+    'files': ['bin/Xorg', 'bin/Xvfb', 'bin/xvfb-run',
               'lib/xorg/modules/drivers/dummy_drv.la', 'lib/xorg/modules/drivers/dummy_drv.so',
               'bin/xterm'],
     'dirs': [],
 }
 
+sanity_check_commands = [
+    "xvfb-run --help",
+    "xvfb-run --error-file %(builddir)s/xvfb-run-test.err echo hello",
+]
+
 moduleclass = 'vis'
diff --git a/Golden_Repo/x/XServer/xterm-cursesloc.patch b/Golden_Repo/x/XServer/xterm-cursesloc.patch
new file mode 100644
index 0000000000000000000000000000000000000000..033c2776b7838ae1907a69f31d75d7ce7d28175f
--- /dev/null
+++ b/Golden_Repo/x/XServer/xterm-cursesloc.patch
@@ -0,0 +1,12 @@
+diff -Naur xterm-362.orig/xtermcap.h xterm-362/xtermcap.h
+--- xterm-362.orig/xtermcap.h	2013-06-23 17:34:37.000000000 +0200
++++ xterm-362/xtermcap.h	2021-02-16 14:00:48.976219215 +0100
+@@ -59,7 +59,7 @@
+ #undef ERR			/* workaround for glibc 2.1.3 */
+ 
+ #ifdef HAVE_NCURSES_CURSES_H
+-#include <ncurses/curses.h>
++#include <curses.h>
+ #else
+ #include <curses.h>
+ #endif
diff --git a/Golden_Repo/x/XServer/xvfb-run b/Golden_Repo/x/XServer/xvfb-run
new file mode 100644
index 0000000000000000000000000000000000000000..237e0dfc5938430d50fe8d30fde1b6defa9c6e42
--- /dev/null
+++ b/Golden_Repo/x/XServer/xvfb-run
@@ -0,0 +1,194 @@
+#!/bin/sh
+
+# extracted from Debian package for xorg-server,
+# via http://deb.debian.org/debian/pool/main/x/xorg-server/xorg-server_1.20.4-1.diff.gz
+
+# This script starts an instance of Xvfb, the "fake" X server, runs a command
+# with that server available, and kills the X server when done.  The return
+# value of the command becomes the return value of this script.
+#
+# If anyone is using this to build a Debian package, make sure the package
+# Build-Depends on xvfb and xauth.
+
+set -e
+
+PROGNAME=xvfb-run
+SERVERNUM=99
+AUTHFILE=
+ERRORFILE=/dev/null
+XVFBARGS="-screen 0 1280x1024x24"
+LISTENTCP="-nolisten tcp"
+XAUTHPROTO=.
+
+# Query the terminal to establish a default number of columns to use for
+# displaying messages to the user.  This is used only as a fallback in the event
+# the COLUMNS variable is not set.  ($COLUMNS can react to SIGWINCH while the
+# script is running, and this cannot, only being calculated once.)
+DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
+case "$DEFCOLUMNS" in
+    *[!0-9]*|'') DEFCOLUMNS=80 ;;
+esac
+
+# Display a message, wrapping lines at the terminal width.
+message () {
+    echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
+}
+
+# Display an error message.
+error () {
+    message "error: $*" >&2
+}
+
+# Display a usage message.
+usage () {
+    if [ -n "$*" ]; then
+        message "usage error: $*"
+    fi
+    cat <<EOF
+Usage: $PROGNAME [OPTION ...] COMMAND
+Run COMMAND (usually an X client) in a virtual X server environment.
+Options:
+-a        --auto-servernum          try to get a free server number, starting at
+                                    --server-num
+-e FILE   --error-file=FILE         file used to store xauth errors and Xvfb
+                                    output (default: $ERRORFILE)
+-f FILE   --auth-file=FILE          file used to store auth cookie
+                                    (default: ./.Xauthority)
+-h        --help                    display this usage message and exit
+-n NUM    --server-num=NUM          server number to use (default: $SERVERNUM)
+-l        --listen-tcp              enable TCP port listening in the X server
+-p PROTO  --xauth-protocol=PROTO    X authority protocol name to use
+                                    (default: xauth command's default)
+-s ARGS   --server-args=ARGS        arguments (other than server number and
+                                    "-nolisten tcp") to pass to the Xvfb server
+                                    (default: "$XVFBARGS")
+EOF
+}
+
+# Find a free server number by looking at .X*-lock files in /tmp.
+find_free_servernum() {
+    # Sadly, the "local" keyword is not POSIX.  Leave the next line commented in
+    # the hope Debian Policy eventually changes to allow it in /bin/sh scripts
+    # anyway.
+    #local i
+
+    i=$SERVERNUM
+    while [ -f /tmp/.X$i-lock ]; do
+        i=$(($i + 1))
+    done
+    echo $i
+}
+
+# Clean up files
+clean_up() {
+    if [ -e "$AUTHFILE" ]; then
+        XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
+    fi
+    if [ -n "$XVFB_RUN_TMPDIR" ]; then
+        if ! rm -r "$XVFB_RUN_TMPDIR"; then
+            error "problem while cleaning up temporary directory"
+            exit 5
+        fi
+    fi
+    if [ -n "$XVFBPID" ]; then
+        kill "$XVFBPID" >>"$ERRORFILE" 2>&1
+    fi
+}
+
+# Parse the command line.
+ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
+       --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
+       --name "$PROGNAME" -- "$@")
+GETOPT_STATUS=$?
+
+if [ $GETOPT_STATUS -ne 0 ]; then
+    error "internal error; getopt exited with status $GETOPT_STATUS"
+    exit 6
+fi
+
+eval set -- "$ARGS"
+
+while :; do
+    case "$1" in
+        -a|--auto-servernum) SERVERNUM=$(find_free_servernum); AUTONUM="yes" ;;
+        -e|--error-file) ERRORFILE="$2"; shift ;;
+        -f|--auth-file) AUTHFILE="$2"; shift ;;
+        -h|--help) SHOWHELP="yes" ;;
+        -n|--server-num) SERVERNUM="$2"; shift ;;
+        -l|--listen-tcp) LISTENTCP="" ;;
+        -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
+        -s|--server-args) XVFBARGS="$2"; shift ;;
+        -w|--wait) shift ;;
+        --) shift; break ;;
+        *) error "internal error; getopt permitted \"$1\" unexpectedly"
+           exit 6
+           ;;
+    esac
+    shift
+done
+
+if [ "$SHOWHELP" ]; then
+    usage
+    exit 0
+fi
+
+if [ -z "$*" ]; then
+    usage "need a command to run" >&2
+    exit 2
+fi
+
+if ! command -v xauth >/dev/null; then
+    error "xauth command not found"
+    exit 3
+fi
+
+# tidy up after ourselves
+trap clean_up EXIT
+
+# If the user did not specify an X authorization file to use, set up a temporary
+# directory to house one.
+if [ -z "$AUTHFILE" ]; then
+    XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
+    AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+    # Create empty file to avoid xauth warning
+    touch "$AUTHFILE"
+fi
+
+# Start Xvfb.
+MCOOKIE=$(mcookie)
+tries=10
+while [ $tries -gt 0 ]; do
+    tries=$(( $tries - 1 ))
+    XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
+add :$SERVERNUM $XAUTHPROTO $MCOOKIE
+EOF
+    # handle SIGUSR1 so Xvfb knows to send a signal when it's ready to accept
+    # connections
+    trap : USR1
+    (trap '' USR1; exec Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP -auth $AUTHFILE >>"$ERRORFILE" 2>&1) &
+    XVFBPID=$!
+
+    wait || :
+    if kill -0 $XVFBPID 2>/dev/null; then
+        break
+    elif [ -n "$AUTONUM" ]; then
+        # The display is in use so try another one (if '-a' was specified).
+        SERVERNUM=$((SERVERNUM + 1))
+        SERVERNUM=$(find_free_servernum)
+        continue
+    fi
+    error "Xvfb failed to start" >&2
+    XVFBPID=
+    exit 1
+done
+
+# Start the command and save its exit status.
+set +e
+DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@"
+RETVAL=$?
+set -e
+
+# Return the executed command's exit status.
+exit $RETVAL
+
+# vim:set ai et sts=4 sw=4 tw=80: