diff --git a/Custom_EasyBlocks/README.md b/Custom_EasyBlocks/README.md
index 6598a6a759dfead38a2f8443d1b7b2abf83f8ea2..167229221cf02ec433b710b9a3bf0498e4d4876d 100644
--- a/Custom_EasyBlocks/README.md
+++ b/Custom_EasyBlocks/README.md
@@ -53,3 +53,10 @@ Overview of the custom EasyBlocks.
 - __*needed because*__ we offer more functionality compared to upstream
 - __*difference compared to upstream*__ upstream has not yet an EasyBlock for julia, juliabundle and juliapackage
 - __*can not be removed*__ once merged with upstream
+
+## VMD
+- __*added by*__ j.goebbert
+- __*needed because*__ we replaced the Mesa module by our own OpenGL module compared to upstream
+- __*difference compared to upstream*__ upstream checks for Mesa inside the easyblock
+- __*can not be removed*__ once upstream uses our OpenGL module
+
diff --git a/Custom_EasyBlocks/vmd.py b/Custom_EasyBlocks/vmd.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd01da3db3b33d75b8a2dbbfc0142ed8d018e5cd
--- /dev/null
+++ b/Custom_EasyBlocks/vmd.py
@@ -0,0 +1,236 @@
+##
+# Copyright 2009-2021 Ghent University
+# Copyright 2015-2021 Stanford University
+#
+# This file is part of EasyBuild,
+# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
+# with support of Ghent University (http://ugent.be/hpc),
+# the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en),
+# the Hercules foundation (http://www.herculesstichting.be/in_English)
+# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
+#
+# https://github.com/easybuilders/easybuild
+#
+# EasyBuild is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation v2.
+#
+# EasyBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
+##
+"""
+EasyBuild support for VMD, implemented as an easyblock
+
+@author: Stephane Thiell (Stanford University)
+@author: Kenneth Hoste (HPC-UGent)
+"""
+import os
+
+from distutils.version import LooseVersion
+from easybuild.easyblocks.generic.configuremake import ConfigureMake
+from easybuild.easyblocks.generic.pythonpackage import det_pylibdir
+from easybuild.tools.build_log import EasyBuildError
+from easybuild.tools.filetools import change_dir, copy_file, extract_file
+from easybuild.tools.run import run_cmd
+from easybuild.tools.modules import get_software_root, get_software_version
+import easybuild.tools.environment as env
+import easybuild.tools.toolchain as toolchain
+
+
+class EB_VMD(ConfigureMake):
+    """Easyblock for building and installing VMD"""
+
+    def __init__(self, *args, **kwargs):
+        """Initialize VMD-specific variables."""
+        super(EB_VMD, self).__init__(*args, **kwargs)
+        # source tarballs contains a 'plugins' and 'vmd-<version>' directory
+        self.vmddir = os.path.join(self.builddir, '%s-%s' % (self.name.lower(), self.version))
+        self.surf_dir = os.path.join(self.vmddir, 'lib', 'surf')
+        self.stride_dir = os.path.join(self.vmddir, 'lib', 'stride')
+
+    def extract_step(self):
+        """Custom extract step for VMD."""
+        super(EB_VMD, self).extract_step()
+
+        if LooseVersion(self.version) >= LooseVersion("1.9.3"):
+            change_dir(self.surf_dir)
+            srcdir = extract_file('surf.tar.Z', os.getcwd(), change_into_dir=False)
+            change_dir(srcdir)
+
+    def configure_step(self):
+        """
+        Configure VMD for building.
+        """
+        # make sure required dependencies are available
+        deps = {}
+        for dep in ['FLTK', 'OpenGL', 'netCDF', 'Python', 'Tcl', 'Tk']:
+            deps[dep] = get_software_root(dep)
+            if deps[dep] is None:
+                raise EasyBuildError("Required dependency %s is missing", dep)
+
+        # optional dependencies
+        for dep in ['ACTC', 'CUDA', 'OptiX']:
+            deps[dep] = get_software_root(dep)
+
+        # specify Tcl/Tk locations & libraries
+        tclinc = os.path.join(deps['Tcl'], 'include')
+        tcllib = os.path.join(deps['Tcl'], 'lib')
+        env.setvar('TCL_INCLUDE_DIR', tclinc)
+        env.setvar('TCL_LIBRARY_DIR', tcllib)
+
+        env.setvar('TK_INCLUDE_DIR', os.path.join(deps['Tk'], 'include'))
+        env.setvar('TK_LIBRARY_DIR', os.path.join(deps['Tk'], 'lib'))
+
+        tclshortver = '.'.join(get_software_version('Tcl').split('.')[:2])
+        self.cfg.update('buildopts', 'TCLLDFLAGS="-ltcl%s"' % tclshortver)
+
+        # Netcdf locations
+        netcdfinc = os.path.join(deps['netCDF'], 'include')
+        netcdflib = os.path.join(deps['netCDF'], 'lib')
+
+        # Python locations
+        pyver = get_software_version('Python')
+        pymajver = pyver.split('.')[0]
+        out, ec = run_cmd("python -c 'import sysconfig; print(sysconfig.get_path(\"include\"))'", simple=False)
+        if ec:
+            raise EasyBuildError("Failed to determine Python include path: %s", out)
+        else:
+            env.setvar('PYTHON_INCLUDE_DIR', out.strip())
+        pylibdir = det_pylibdir()
+        python_libdir = os.path.join(deps['Python'], os.path.dirname(pylibdir))
+        env.setvar('PYTHON_LIBRARY_DIR', python_libdir)
+        if LooseVersion(pyver) >= LooseVersion('3.8'):
+            out, ec = run_cmd("python%s-config --libs --embed" % pymajver, simple=False)
+        else:
+            out, ec = run_cmd("python%s-config --libs" % pymajver, simple=False)
+        if ec:
+            raise EasyBuildError("Failed to determine Python library name: %s", out)
+        else:
+            env.setvar('PYTHON_LIBRARIES', out.strip())
+
+        # numpy include location, easiest way to determine it is via numpy.get_include()
+        out, ec = run_cmd("python -c 'import numpy; print(numpy.get_include())'", simple=False)
+        if ec:
+            raise EasyBuildError("Failed to determine numpy include directory: %s", out)
+        else:
+            env.setvar('NUMPY_INCLUDE_DIR', out.strip())
+
+        # compiler commands
+        self.cfg.update('buildopts', 'CC="%s"' % os.getenv('CC'))
+        self.cfg.update('buildopts', 'CCPP="%s"' % os.getenv('CXX'))
+
+        # plugins need to be built first (see http://www.ks.uiuc.edu/Research/vmd/doxygen/compiling.html)
+        change_dir(os.path.join(self.builddir, 'plugins'))
+        cmd = ' '.join([
+            'make',
+            'LINUXAMD64',
+            "TCLINC='-I%s'" % tclinc,
+            "TCLLIB='-L%s'" % tcllib,
+            "TCLLDFLAGS='-ltcl%s'" % tclshortver,
+            "NETCDFINC='-I%s'" % netcdfinc,
+            "NETCDFLIB='-L%s'" % netcdflib,
+            self.cfg['buildopts'],
+        ])
+        run_cmd(cmd, log_all=True, simple=False)
+
+        # create plugins distribution
+        plugindir = os.path.join(self.vmddir, 'plugins')
+        env.setvar('PLUGINDIR', plugindir)
+        self.log.info("Generating VMD plugins in %s", plugindir)
+        run_cmd("make distrib %s" % self.cfg['buildopts'], log_all=True, simple=False)
+
+        # explicitely mention whether or not we're building with CUDA/OptiX support
+        if deps['CUDA']:
+            self.log.info("Building with CUDA %s support", get_software_version('CUDA'))
+            if deps['OptiX']:
+                self.log.info("Building with Nvidia OptiX %s support", get_software_version('OptiX'))
+            else:
+                self.log.warn("Not building with Nvidia OptiX support!")
+        else:
+            self.log.warn("Not building with CUDA nor OptiX support!")
+
+        # see http://www.ks.uiuc.edu/Research/vmd/doxygen/configure.html
+        # LINUXAMD64: Linux 64-bit
+        # LP64: build VMD as 64-bit binary
+        # IMD: enable support for Interactive Molecular Dynamics (e.g. to connect to NAMD for remote simulations)
+        # PTHREADS: enable support for POSIX threads
+        # COLVARS: enable support for collective variables (related to NAMD/LAMMPS)
+        # NOSILENT: verbose build command
+        # FLTK: enable the standard FLTK GUI
+        # TK: enable TK to support extension GUI elements
+        # OPENGL: enable OpenGL
+        self.cfg.update(
+            'configopts', "LINUXAMD64 LP64 IMD PTHREADS COLVARS NOSILENT FLTK TK OPENGL", allow_duplicate=False)
+
+        # add additional configopts based on available dependencies
+        for key in deps:
+            if deps[key]:
+                if key == 'Mesa' or key == 'OpenGL':
+                    self.cfg.update('configopts', "OPENGL MESA", allow_duplicate=False)
+                elif key == 'OptiX':
+                    self.cfg.update('configopts', "LIBOPTIX", allow_duplicate=False)
+                elif key == 'Python':
+                    self.cfg.update('configopts', "PYTHON NUMPY", allow_duplicate=False)
+                else:
+                    self.cfg.update('configopts', key.upper(), allow_duplicate=False)
+
+        # configure for building with Intel compilers specifically
+        if self.toolchain.comp_family() == toolchain.INTELCOMP:
+            self.cfg.update('configopts', 'ICC', allow_duplicate=False)
+
+        # specify install location using environment variables
+        env.setvar('VMDINSTALLBINDIR', os.path.join(self.installdir, 'bin'))
+        env.setvar('VMDINSTALLLIBRARYDIR', os.path.join(self.installdir, 'lib'))
+
+        # configure in vmd-<version> directory
+        change_dir(self.vmddir)
+        run_cmd("%s ./configure %s" % (self.cfg['preconfigopts'], self.cfg['configopts']))
+
+        # change to 'src' subdirectory, ready for building
+        change_dir(os.path.join(self.vmddir, 'src'))
+
+    def build_step(self):
+        """Custom build step for VMD."""
+        super(EB_VMD, self).build_step()
+
+        self.have_stride = False
+        # Build Surf, which is part of VMD as of VMD version 1.9.3
+        if LooseVersion(self.version) >= LooseVersion("1.9.3"):
+            change_dir(self.surf_dir)
+            surf_build_cmd = 'make CC="%s" OPT="%s"' % (os.environ['CC'], os.environ['CFLAGS'])
+            run_cmd(surf_build_cmd)
+            # Build Stride if it was downloaded
+            if os.path.exists(os.path.join(self.stride_dir, 'Makefile')):
+                change_dir(self.stride_dir)
+                self.have_stride = True
+                stride_build_cmd = 'make CC="%s" CFLAGS="%s"' % (os.environ['CC'], os.environ['CFLAGS'])
+                run_cmd(stride_build_cmd)
+            else:
+                self.log.info("Stride has not been downloaded and/or unpacked.")
+
+    def install_step(self):
+        """Custom build step for VMD."""
+
+        # Install must also be done in 'src' subdir
+        change_dir(os.path.join(self.vmddir, 'src'))
+        super(EB_VMD, self).install_step()
+
+        if LooseVersion(self.version) >= LooseVersion("1.9.3"):
+            surf_bin = os.path.join(self.surf_dir, 'surf')
+            copy_file(surf_bin, os.path.join(self.installdir, 'lib', 'surf_LINUXAMD64'))
+            if self.have_stride:
+                stride_bin = os.path.join(self.stride_dir, 'stride')
+                copy_file(stride_bin, os.path.join(self.installdir, 'lib', 'stride_LINUXAMD64'))
+
+    def sanity_check_step(self):
+        """Custom sanity check for VMD."""
+        custom_paths = {
+            'files': ['bin/vmd'],
+            'dirs': ['lib'],
+        }
+        super(EB_VMD, self).sanity_check_step(custom_paths=custom_paths)
diff --git a/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb b/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb
index 9b6187fa0f18150b8723d1f3a126ac16a55c4559..11d41ed850b0c3a6e9668118eb11db85860b84a8 100644
--- a/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb
+++ b/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb
@@ -13,6 +13,7 @@ toolchainopts = {'pic': True}
 source_urls = [
     'https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
 sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+patches = [('676.patch',2)]
 checksums = ['5347464af5b14ac54bb945dc68f1dd7c56f0dad7262816b956138fc53bcc0131']
 
 dependencies = [
diff --git a/Golden_Repo/b/Boost/boost-deprheaders-pr676.patch b/Golden_Repo/b/Boost/boost-deprheaders-pr676.patch
new file mode 100644
index 0000000000000000000000000000000000000000..caf6afdccb91d958c00fdb7aea74b30251c358a7
--- /dev/null
+++ b/Golden_Repo/b/Boost/boost-deprheaders-pr676.patch
@@ -0,0 +1,75 @@
+From 3d3d2d7467cf9e0e8dc3220cf1a2badb321df099 Mon Sep 17 00:00:00 2001
+From: Matt Borland <matt@mattborland.com>
+Date: Sun, 22 Aug 2021 19:53:29 +0300
+Subject: [PATCH] Fix for issue 675
+
+---
+ .../boost/math/tools/header_deprecated.hpp    | 22 ++++++++++++++-----
+ test/Jamfile.v2                               |  1 +
+ test/header_deprecated_test.cpp               | 12 ++++++++++
+ 3 files changed, 29 insertions(+), 6 deletions(-)
+ create mode 100644 test/header_deprecated_test.cpp
+
+diff --git a/include/boost/math/tools/header_deprecated.hpp b/include/boost/math/tools/header_deprecated.hpp
+index 8f4a5db25b..867fcaa217 100644
+--- a/include/boost/math/tools/header_deprecated.hpp
++++ b/include/boost/math/tools/header_deprecated.hpp
+@@ -6,12 +6,22 @@
+ #ifndef BOOST_MATH_TOOLS_HEADER_DEPRECATED
+ #define BOOST_MATH_TOOLS_HEADER_DEPRECATED
+ 
+-#ifdef _MSC_VER
+-// Expands to "This header is deprecated; use expr instead."
+-#define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
+-#else // GNU, Clang, Intel, IBM, etc.
++#ifndef BOOST_MATH_STANDALONE
++
++#   include <boost/config/header_deprecated.hpp>
++#   define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_HEADER_DEPRECATED(expr)
++
++#else
++
++#   ifdef _MSC_VER
+ // Expands to "This header is deprecated; use expr instead."
+-#define BOOST_MATH_HEADER_DEPRECATED(expr) _Pragma("This header is deprecated; use " expr " instead.")
+-#endif
++#       define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
++#   else // GNU, Clang, Intel, IBM, etc.
++// Expands to "This header is deprecated use expr instead"
++#       define BOOST_MATH_HEADER_DEPRECATED_MESSAGE(expr) _Pragma(#expr)
++#       define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_MATH_HEADER_DEPRECATED_MESSAGE(message "This header is deprecated use " expr " instead")
++#   endif
++
++#endif // BOOST_MATH_STANDALONE
+ 
+ #endif // BOOST_MATH_TOOLS_HEADER_DEPRECATED
+diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
+index 6ef83e630b..1653cb545e 100644
+--- a/test/Jamfile.v2
++++ b/test/Jamfile.v2
+@@ -874,6 +874,7 @@ test-suite mp :
+ ;
+ 
+ test-suite misc :
++   [ run header_deprecated_test.cpp ]
+    [ run threading_sanity_check.cpp ]
+    [ run test_tr1.cpp
+    ../build//boost_math_tr1
+diff --git a/test/header_deprecated_test.cpp b/test/header_deprecated_test.cpp
+new file mode 100644
+index 0000000000..2f131ae772
+--- /dev/null
++++ b/test/header_deprecated_test.cpp
+@@ -0,0 +1,12 @@
++//  (C) Copyright Matt Borland 2021.
++//  Use, modification and distribution are subject to the
++//  Boost Software License, Version 1.0. (See accompanying file
++//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
++
++#include <boost/math/tools/header_deprecated.hpp>
++
++int main()
++{
++    BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_rt.hpp>");
++    return 0;
++}
diff --git a/Golden_Repo/o/OptiX/OptiX-7.3.0.eb b/Golden_Repo/o/OptiX/OptiX-7.3.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..0407e890c79f0d011c06929f665a4765f799c07d
--- /dev/null
+++ b/Golden_Repo/o/OptiX/OptiX-7.3.0.eb
@@ -0,0 +1,31 @@
+##
+# Author:    Robert Mijakovic <robert.mijakovic@lxp.lu>
+##
+easyblock = 'Binary'
+
+name = 'OptiX'
+version = '7.3.0'
+
+homepage = 'https://developer.nvidia.com/optix'
+description = """OptiX is NVIDIA SDK for easy ray tracing performance.
+ It provides a simple framework for accessing the GPU’s massive ray tracing
+ power using state-of-the-art GPU algorithms."""
+
+toolchain = SYSTEM
+
+# Registration required. Download links:
+# https://developer.nvidia.com/designworks/optix/download
+# https://developer.nvidia.com/designworks/optix/downloads/legacy
+sources = ['NVIDIA-OptiX-SDK-%(version)s-linux64-x86_64.sh']
+checksums = ['1a87b6c08577feeaaad0919b54a8b09b93245fbbf9d52f38497f78d485fea555']
+
+install_cmd = "./" + sources[0] + " --skip-license --prefix=%(installdir)s"
+
+sanity_check_paths = {
+    'files': ["include/optix.h", "include/optix_device.h"],
+    'dirs': []
+}
+
+modextravars = {'OPTIX_HOME': '%(installdir)s'}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10.eb b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10.eb
new file mode 100644
index 0000000000000000000000000000000000000000..ebb89b3d0b542195dd8578c922da617ffeab605d
--- /dev/null
+++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10.eb
@@ -0,0 +1,63 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA
+# Authors::   Fotis Georgatos <fotis@cern.ch>
+# License::   MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'POV-Ray'
+version = '3.7.0.10'
+
+homepage = 'https://www.povray.org/'
+description = """The Persistence of Vision Raytracer, or POV-Ray, is a ray tracing program
+ which generates images from a text-based scene description, and is available for a variety
+ of computer platforms. POV-Ray is a high-quality, Free Software tool for creating stunning
+ three-dimensional graphics. The source code is available for those wanting to do their own ports."""
+
+toolchain = {'name': 'GCC', 'version': '11.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/POV-Ray/povray/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['POV-Ray-3.7.0.7_dont-touch-home.patch']
+checksums = [
+    '7bee83d9296b98b7956eb94210cf30aa5c1bbeada8ef6b93bb52228bbc83abff',  # v3.7.0.10.tar.gz
+    '45103afca808e279dcdee80194c65e2a760c76d011d351392a46e817b0b655f7',  # POV-Ray-3.7.0.7_dont-touch-home.patch
+]
+
+builddependencies = [
+    ('Autotools', '20210726'),
+]
+
+dependencies = [
+    ('Boost', '1.77.0'),
+    ('zlib', '1.2.11'),
+    ('libpng', '1.6.37'),
+    ('libjpeg-turbo', '2.1.1'),
+    ('X11', '20210802'),
+    ('LibTIFF', '4.3.0'),
+    ('SDL2', '2.0.18', '', ('gcccoremkl', '11.2.0-2021.4.0')),
+]
+
+preconfigopts = "cd unix && sed -i 's/^automake/automake --add-missing; automake/g' prebuild.sh && "
+preconfigopts += " ./prebuild.sh && cd .. && "
+configopts = "COMPILED_BY='EasyBuild' "
+configopts += "--with-boost=$EBROOTBOOST --with-zlib=$EBROOTZLIB --with-libpng=$EBROOTLIBPNG "
+configopts += "--with-libtiff=$EBROOTLIBTIFF --with-libjpeg=$EBROOTLIBJPEGMINTURBO --with-libsdl=$EBROOTSDL2 "
+# configopts += " --with-libmkl=DIR " ## upstream needs to fix this, still in BETA
+
+runtest = 'check'
+
+sanity_check_paths = {
+    'files': ['bin/povray'],
+    'dirs': ['etc/povray/%(version_major_minor)s', 'share']
+}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch
new file mode 100644
index 0000000000000000000000000000000000000000..097174a9e0a4a91a3c5e7bd64c3da5c536b6da60
--- /dev/null
+++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch
@@ -0,0 +1,25 @@
+# Do not let povray do anything in the user home directory
+# wpoely86@gmail.com
+diff -ur povray-3.7.0.7.orig/unix/prebuild.sh povray-3.7.0.7/unix/prebuild.sh
+--- povray-3.7.0.7.orig/unix/prebuild.sh	2018-01-05 10:06:48.000000000 +0100
++++ povray-3.7.0.7/unix/prebuild.sh	2018-04-10 10:14:08.621514093 +0200
+@@ -641,19 +641,6 @@
+ 	for f in \$\$filelist ; do \\
+ 	  \$(INSTALL_DATA) \$(top_srcdir)/doc/\$\$f \$(DESTDIR)\$(povdocdir)/\$\$f && echo "\$(DESTDIR)\$(povdocdir)/\$\$f" >> \$(povinstall); \\
+ 	done
+-	@echo "Creating user directories..."; \\
+-	for p in \$(povuser) \$(povconfuser) ; do \\
+-	  \$(mkdir_p) \$\$p && chown \$(povowner) \$\$p && chgrp \$(povgroup) \$\$p && printf "%s\\n" "\$\$p" "\`cat \$(povinstall)\`" > \$(povinstall); \\
+-	done
+-	@echo "Copying user configuration and INI files..."; \\
+-	for f in povray.conf povray.ini ; do \\
+-	  if test -f \$(povconfuser)/\$\$f; then \\
+-	    echo "Creating backup of \$(povconfuser)/\$\$f"; \\
+-	    mv -f \$(povconfuser)/\$\$f \$(povconfuser)/\$\$f.bak; \\
+-	  fi; \\
+-	done; \\
+-	\$(INSTALL_DATA) \$(top_srcdir)/povray.conf \$(povconfuser)/povray.conf && chown \$(povowner) \$(povconfuser)/povray.conf && chgrp \$(povgroup) \$(povconfuser)/povray.conf  && echo "\$(povconfuser)/povray.conf" >> \$(povinstall); \\
+-	\$(INSTALL_DATA) \$(top_builddir)/povray.ini \$(povconfuser)/povray.ini && chown \$(povowner) \$(povconfuser)/povray.ini && chgrp \$(povgroup) \$(povconfuser)/povray.ini  && echo "\$(povconfuser)/povray.ini" >> \$(povinstall)
+ 
+ # Remove data, config, and empty folders for 'make uninstall'.
+ # Use 'hook' instead of 'local' so as to properly remove *empty* folders (e.g. scripts).
diff --git a/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..2dc3570d1618317b2f782571dd7c557dfcd6b5cb
--- /dev/null
+++ b/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb
@@ -0,0 +1,41 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA
+# Authors::   Fotis Georgatos <fotis@cern.ch>
+# License::   MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'SDL2'
+version = '2.0.18'
+
+homepage = 'http://www.libsdl.org/'
+description = "SDL: Simple DirectMedia Layer, a cross-platform multimedia library"
+
+toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'}
+
+source_urls = ['http://www.libsdl.org/release/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['94d40cd73dbfa10bb6eadfbc28f355992bb2d6ef6761ad9d4074eff95ee5711c']
+
+builddependencies = [
+    ('binutils', '2.37'),
+]
+
+dependencies = [
+    ('X11', '20210802'),
+    ('CUDA', '11.5', '', SYSTEM),
+]
+
+sanity_check_paths = {
+    'files': ['bin/sdl2-config', 'lib/libSDL2.%s' % SHLIB_EXT],
+    'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f4cf63549263fd9462ccfefa556b6508369e9a25
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch
@@ -0,0 +1,29 @@
+Fix hard coded compiler, flags and tcl lib version for plugins
+
+Ake Sandgren, 20190823
+--- plugins/Make-arch.orig	2016-10-21 23:34:39.000000000 +0200
++++ plugins/Make-arch	2019-08-23 10:45:51.403545042 +0200
+@@ -337,17 +337,17 @@
+ 	"ARCH = LINUXAMD64" \
+ 	"COPTO = -fPIC -m64 -o " \
+ 	"LOPTO = -fPIC -m64 -lstdc++ -o " \
+-	"CC = gcc" \
+-	"CXX = g++" \
++	"CC = $(CC)" \
++	"CXX = $(CXX)" \
+ 	"DEF = -D" \
+-	"CCFLAGS = -m64 -O2 -fPIC -Wall" \
+-	"CXXFLAGS = -m64 -O2 -fPIC -Wall" \
+-	"TCLLDFLAGS = -ltcl8.5 -ldl" \
++	"CCFLAGS = $(CFLAGS)" \
++	"CXXFLAGS = $(CXXFLAGS)" \
++	"TCLLDFLAGS = $(TCLLDFLAGS)" \
+ 	"NETCDFLDFLAGS = -lnetcdf " \
+ 	"AR = ar" \
+ 	"NM = nm -p" \
+ 	"RANLIB = touch" \
+-	"SHLD = gcc -shared"
++	"SHLD = $(CC) -shared"
+ 
+ LINUXCARMA:
+ 	$(MAKE) dynlibs staticlibs bins \
diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9011384eff52af2075f6d7977d0b0de7e5bad400
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch
@@ -0,0 +1,15 @@
+Increase number of atoms allowed per residues as per stride README from VMD
+
+Åke Sandgren, 2017-05-02
+diff -ru vmd-1.9.3.orig/lib/stride/stride.h vmd-1.9.3/lib/stride/stride.h
+--- vmd-1.9.3.orig/lib/stride/stride.h	2017-05-02 13:47:26.484463970 +0200
++++ vmd-1.9.3/lib/stride/stride.h	2017-05-02 13:47:43.748279797 +0200
+@@ -40,7 +40,7 @@
+ #define MAX_BOND                  100
+ #define MAX_ASSIGN                500
+ #define MAX_INFO                  1000
+-#define MAX_AT_IN_RES             75
++#define MAX_AT_IN_RES             100
+ #define MAX_AT_IN_HETERORES       200
+ #define MAXRESDNR                 6
+ #define MAXRESACC                 6 
diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch
new file mode 100644
index 0000000000000000000000000000000000000000..036430db8ffe77867d6e4ebf20fc57e422ff95f3
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch
@@ -0,0 +1,37 @@
+Make stride use CC, CFLAGS and LDFLAGS from EB.
+
+Åke Sandgren, 2017-05-02
+diff -ru vmd-1.9.3.orig/lib/stride/Makefile vmd-1.9.3/lib/stride/Makefile
+--- vmd-1.9.3.orig/lib/stride/Makefile	2003-04-08 14:03:14.000000000 +0200
++++ vmd-1.9.3/lib/stride/Makefile	2017-05-02 13:46:01.973365383 +0200
+@@ -1,13 +1,14 @@
+ #FLAGS = -lm -L/usr/pub/lib -lefence -o
+ #CC = cc -O2 -fullwarn -TENV:large_GOT
+ #CC = cc -g -Wall
+-CC = gcc -O2  # at least for SunOS
++#CC = gcc -O2  # at least for SunOS
+ #CC = cc -g
+ 
+ #CC = cc -O2 -fullwarn
+ 
+ #CC = cc -O2
+-FLAGS = -lm  -o
++#FLAGS = -lm  -o
++LIBS = -lm
+ 
+ SOURCE = stride.c splitstr.c rdpdb.c initchn.c geometry.c thr2one.c one2thr.c filename.c tolostr.c strutil.c place_h.c hbenergy.c memory.c helix.c sheet.c rdmap.c phipsi.c command.c molscr.c die.c hydrbond.c mergepat.c fillasn.c escape.c p_jrnl.c p_rem.c p_atom.c p_helix.c p_sheet.c p_turn.c p_ssbond.c p_expdta.c p_model.c p_compnd.c report.c nsc.c area.c ssbond.c chk_res.c chk_atom.c turn.c pdbasn.c dssp.c outseq.c chkchain.c elem.c measure.c asngener.c p_endmdl.c stred.c contact_order.c contact_map.c
+ 
+@@ -15,12 +16,9 @@
+ 
+ BINDIR = .
+ 
+-.c.o: 
+-	$(CC) -c $< -o $@
+-
+ 
+ stride : $(OBJECT)
+-	$(CC) $(OBJECT) $(FLAGS)  $(BINDIR)/stride${ARCH}
++	$(CC) $(LDFLAGS) $(OBJECT) $(LIBS) -o stride
+ 
+ $(OBJECT) : stride.h protot.h
+ 
diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch
new file mode 100644
index 0000000000000000000000000000000000000000..93f430a64a158b7c7ca07cfee06a7e00b5251307
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch
@@ -0,0 +1,112 @@
+Fix surf Makefile.
+Use CC, CFLAGS, etc from EB.
+Drop bad make depend lines.
+
+Åke Sandgren, 2017-05-02
+diff -ru vmd-1.9.3.orig/lib/surf/Makefile vmd-1.9.3/lib/surf/Makefile
+--- vmd-1.9.3.orig/lib/surf/Makefile	1994-03-22 16:44:20.000000000 +0100
++++ vmd-1.9.3/lib/surf/Makefile	2017-05-02 13:41:51.911991381 +0200
+@@ -1,12 +1,7 @@
+ # Compilation flags
+-#CC	    = cc
+-CC	    = cc
+ INCLUDE     = -I. 
+-#LINCLUDE    = -lcurses -ltermcap -lm
+-LINCLUDE    = -lm
+-OPT_CFLAGS  = -O2 $(FLAGS) $(INCLUDE)
+-#CFLAGS	    = -g $(FLAGS) $(INCLUDE)
+-CFLAGS	    = -O2 $(FLAGS) $(INCLUDE)
++LIBS    = -lm
++CFLAGS	    = $(OPT) $(INCLUDE)
+ 
+ # These are the user object files in the application
+ SRCS        = surf.c io.c compute.c dual.c utils.c lp.c chull.c tessel_cases.c \
+@@ -18,7 +13,7 @@
+ 
+ # make objects
+ surf: $(OBJS) Makefile 
+-	$(CC) $(CFLAGS) $(OBJS) -o surf $(LINCLUDE)
++	$(CC) $(LDFLAGS) $(OBJS) -o surf $(LIBS)
+ 
+ lint:
+ 	lint $(INCLUDE) $(SRCS)
+@@ -30,9 +25,6 @@
+ 	tar -cvf surf.tar README *.[hc] Makefile
+ 	compress surf.tar
+ 
+-.c.o: 
+-	$(CC) $(CFLAGS) -c $*.c
+-
+ 
+ # make depend makes the proper include file dependencies.  You _could_ run
+ # it on a sun4, but there's a bug in the SunOS version of sed that causes
+@@ -61,48 +53,3 @@
+ 	@ echo '  ' >> Makefile
+ 
+ # DO NOT DELETE THIS LINE -- make depend depends on it.
+-  
+- 
+-# DO NOT DELETE THIS LINE -- make depend depends on it.
+-
+-surf.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h
+-surf.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h
+-surf.o: linalg.h
+-io.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h
+-io.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h
+-io.o: linalg.h
+-compute.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-compute.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h
+-compute.o: /usr/include/sys/time.h linalg.h chull.h dual.h
+-dual.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h
+-dual.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h
+-dual.o: linalg.h dual.h chull.h
+-utils.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-utils.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h
+-utils.o: /usr/include/sys/time.h linalg.h
+-lp.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h
+-lp.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h
+-lp.o: linalg.h
+-chull.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-chull.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h
+-chull.o: /usr/include/sys/time.h linalg.h chull.h
+-tessel_cases.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-tessel_cases.o: /usr/include/stdlib.h /usr/include/sgidefs.h
+-tessel_cases.o: /usr/include/string.h /usr/include/sys/time.h linalg.h dual.h
+-tessel_patches.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-tessel_patches.o: /usr/include/stdlib.h /usr/include/sgidefs.h
+-tessel_patches.o: /usr/include/string.h /usr/include/sys/time.h linalg.h
+-tessel_convex.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-tessel_convex.o: /usr/include/stdlib.h /usr/include/sgidefs.h
+-tessel_convex.o: /usr/include/string.h /usr/include/sys/time.h linalg.h
+-tessel_concave.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-tessel_concave.o: /usr/include/stdlib.h /usr/include/sgidefs.h
+-tessel_concave.o: /usr/include/string.h /usr/include/sys/time.h linalg.h
+-tessel_torus.o: surf.h /usr/include/stdio.h /usr/include/math.h
+-tessel_torus.o: /usr/include/stdlib.h /usr/include/sgidefs.h
+-tessel_torus.o: /usr/include/string.h /usr/include/sys/time.h linalg.h
+-  
+-# DEPENDENCIES MUST END AT END OF FILE
+-# IF YOU PUT STUFF HERE IT WILL GO AWAY
+-# see make depend above
+-  
+diff -ru vmd-1.9.3.orig/lib/surf/surf.c vmd-1.9.3/lib/surf/surf.c
+--- vmd-1.9.3.orig/lib/surf/surf.c	1994-03-21 10:33:00.000000000 +0100
++++ vmd-1.9.3/lib/surf/surf.c	2017-05-02 13:41:51.911991381 +0200
+@@ -7,7 +7,7 @@
+ #define	EXTERN	
+ #include "surf.h"
+ 
+-void
++int
+ main(ac,av)
+ int	ac;
+ char*	av[];
+@@ -56,6 +56,8 @@
+    if (Write_Option == 2) output_dataset();
+ 
+    if (Write_Option) end_output_dataset();
++
++   return(0);
+ }
+ 
+ 
diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9b9db3889bf08c48fb6a469303e1db1423d2b734
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch
@@ -0,0 +1,74 @@
+Fix some bad printfs in surf.
+
+Åke Sandgren, 2017-05-02
+diff -ru vmd-1.9.3.orig/lib/surf/chull.c vmd-1.9.3/lib/surf/chull.c
+--- vmd-1.9.3.orig/lib/surf/chull.c	1994-03-19 06:50:54.000000000 +0100
++++ vmd-1.9.3/lib/surf/chull.c	2017-05-02 13:44:07.046582827 +0200
+@@ -378,7 +378,7 @@
+ print_out( v )
+ struct tvertex *v;
+ {
+-	fprintf( stderr, "\nAdding vertex %6x :\n", v );
++	fprintf( stderr, "\nAdding vertex %6p :\n", v );
+ 	print_verts();
+ 	print_edges();
+ 	print_fs();
+@@ -398,11 +398,11 @@
+ 	temp = vertices;
+ 	fprintf (stderr, "Vertex List\n");
+ 	if (vertices) do {
+-            fprintf(stderr,"  addr %6x\t", vertices );
++            fprintf(stderr,"  addr %6p\t", vertices );
+             fprintf(stderr,"(%g,%g,%g)",vertices->v[X],
+                     vertices->v[Y], vertices->v[Z] );
+             fprintf(stderr,"   active:%3d", vertices->active );
+-            fprintf(stderr,"   duplicate:%5x", vertices->duplicate );
++            fprintf(stderr,"   duplicate:%5p", vertices->duplicate );
+             fprintf(stderr,"   mark:%2d\n", vertices->mark );
+             vertices = vertices->next;
+             } while ( vertices != temp );
+@@ -424,13 +424,13 @@
+ 	temp = edges;
+ 	fprintf (stderr, "Edge List\n");
+ 	if (edges) do {
+-            fprintf( stderr, "  addr: %6x\t", edges );
++            fprintf( stderr, "  addr: %6p\t", edges );
+             fprintf( stderr, "adj: ");
+             for (i=0; i<3; ++i) 
+-                 fprintf( stderr, "%6x", edges->adjface[i] );
++                 fprintf( stderr, "%6p", edges->adjface[i] );
+             fprintf( stderr, "  endpts:");
+             for (i=0; i<2; ++i) 
+-                 fprintf( stderr, "%8x", edges->endpts[i]);
++                 fprintf( stderr, "%8p", edges->endpts[i]);
+             fprintf( stderr, "  del:%3d\n", edges->deleted );
+             edges = edges->next; 
+             } while (edges != temp );
+@@ -452,13 +452,13 @@
+ 	temp = faces;
+ 	fprintf (stderr, "Face List\n");
+ 	if (faces) do {
+-            fprintf(stderr, "  addr: %6x\t", faces );
++            fprintf(stderr, "  addr: %6p\t", faces );
+             fprintf(stderr, "  edges:");
+             for( i=0; i<3; ++i )
+-                 fprintf(stderr, "%6x", faces->edg[i] );
++                 fprintf(stderr, "%6p", faces->edg[i] );
+             fprintf(stderr, "  vert:");
+             for ( i=0; i<3; ++i)
+-                  fprintf(stderr, "%6x", faces->vert[i] );
++                  fprintf(stderr, "%6p", faces->vert[i] );
+             fprintf(stderr, "  vis: %d\n", faces->visible );
+             faces= faces->next;
+             } while ( faces != temp );
+@@ -552,8 +552,8 @@
+                 temp_v = temp_v->next;
+                 } while ( temp_v != vertices );
+              do {                           
+-                printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum,
+-                        temp_f->vert[1]->vnum, temp_f->vert[2]->vnum );
++                printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum[0],
++                        temp_f->vert[1]->vnum[0], temp_f->vert[2]->vnum[0] );
+                 temp_f = temp_f->next;
+                 } while ( temp_f != faces );
+ }
diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..142ff9607be89aefb4a5921f17e3a33ad71628a6
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb
@@ -0,0 +1,68 @@
+##
+# Author:    Robert Mijakovic <robert.mijakovic@lxp.lu>
+##
+name = 'VMD'
+version = '1.9.4a51'
+
+homepage = 'https://www.ks.uiuc.edu/Research/vmd'
+description = """VMD is a molecular visualization program for displaying, animating, and analyzing large biomolecular
+ systems using 3-D graphics and built-in scripting."""
+
+toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'}
+
+source_urls = [
+    'https://www.ks.uiuc.edu/Research/vmd/vmd-1.9.4/files/alpha/',
+    'https://www.ks.uiuc.edu/Research/vmd/vmd-%(version)s/files/final',
+    'http://webclu.bio.wzw.tum.de/stride/'
+]
+sources = [
+    'vmd-%(version)s.src.tar.gz',
+    {'filename': 'stride.tar.gz', 'extract_cmd': "tar -C vmd-%(version)s/lib/stride -xf %s"},
+]
+patches = [
+    ('VMD-1.9.3_plugins.patch'),
+    ('VMD-1.9.3_surf_Makefile.patch', 'vmd-%(version)s'),
+    ('VMD-1.9.3_surf_bad_printfs.patch', 'vmd-%(version)s'),
+    ('VMD-1.9.3_stride_Makefile.patch', 'vmd-%(version)s'),
+    ('VMD-1.9.3_stride_MAX_AT_IN_RES.patch', 'vmd-%(version)s'),
+    ('VMD-%(version)s_configure.patch', 'vmd-%(version)s'),
+    ('VMD-%(version)s_extra_colors.patch', 'vmd-%(version)s'),
+]
+checksums = [
+    'b1c40b21111f5bab56d43d5e442c468d327159b07915af2ec175ba6b12842e5c',  # vmd-1.9.4a51.src.tar.gz
+    '51a8bc2988bb184bd08216124f61725225bb1a6f563bdf8cd35154cb5d621c1a',  # stride.tar.gz
+    '85760d6ae838e2b09801e34b36b484532383f7aaf2e8634b3ef808002a92baa3',  # VMD-1.9.3_plugins.patch
+    'd5cfa88064b7cffbc75accd69707d4e45fda974e8127de9ab606fdad501bd68a',  # VMD-1.9.3_surf_Makefile.patch
+    'f3c2a8c155e38db8e644cee6a01f6beaea5988e72ac74cde26b71670b151cc34',  # VMD-1.9.3_surf_bad_printfs.patch
+    'eb194ac0d8c086b73f87b29f7d732687f902431b1cdfa139c090401fefdee51e',  # VMD-1.9.3_stride_Makefile.patch
+    'eff1ca00cec637a6c8a156b2fb038e078d1835ba0eb15a571ed820bca5a866d9',  # VMD-1.9.3_stride_MAX_AT_IN_RES.patch
+    'dc9fc419e2e938f42d2e4784b0c9c7429317893f08d3ed170f949c3ee3aec062',  # VMD-1.9.4a51_configure.patch
+    '253eba282b570eb00e4764f46f77fd5ca898d10360d5707dd50ad1f14615af80',  # VMD-1.9.4a51_extra_colors.patch
+]
+
+builddependencies = [
+    ('binutils', '2.37'),
+]
+
+dependencies = [
+    ('Tcl', '8.6.11'),
+    ('Tk', '8.6.11'),
+    ('FLTK', '1.3.7'),
+    ('Python', '3.9.6'),
+    ('SciPy-bundle', '2021.10'),
+    ('Tkinter', '%(pyver)s'),
+    ('X11', '20210802'),
+    ('fontconfig', '2.13.94'),
+    ('OpenGL', '2021b'),
+    ('netCDF', '4.8.1', '-serial'),
+    ('FFmpeg', '4.4.1'),
+    ('ImageMagick', '7.1.0-13'),
+    ('ACTC', '1.1'),
+    ('OptiX', '7.3.0', '', SYSTEM),
+    ('zlib', '1.2.11'),
+    ('libpng', '1.6.37'),
+    ('POV-Ray', '3.7.0.10'),
+    ('CUDA', '11.5', '', SYSTEM),
+]
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b0432661c4e3e13f19df1bbf67256794fc045408
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch
@@ -0,0 +1,177 @@
+--- configure	2021-05-10 14:04:56.826893000 +0200
++++ configure	2021-05-10 14:08:01.893394000 +0200
+@@ -497,17 +497,16 @@
+ 
+ $arch_cc          = "cc";
+ $arch_ccpp        = "CC";
+-$arch_nvcc        = "/usr/local/cuda-10.2/bin/nvcc";
++$arch_nvcc        = "$ENV{'EBROOTCUDA'}/bin/nvcc";
+ $arch_nvccflags   = "-lineinfo --ptxas-options=-v " . 
+-                    "-gencode arch=compute_30,code=compute_30 " .
+-                    "-gencode arch=compute_30,code=sm_35 " .
+-                    "-gencode arch=compute_30,code=sm_37 " .
+                     "-gencode arch=compute_50,code=compute_50 " .
+                     "-gencode arch=compute_50,code=sm_50 " .
+                     "-gencode arch=compute_60,code=compute_60 " .
+                     "-gencode arch=compute_60,code=sm_60 " .
+                     "-gencode arch=compute_70,code=compute_70 " .
+                     "-gencode arch=compute_70,code=sm_70 " .
++                    "-gencode arch=compute_75,code=sm_75 " .
++                    "-gencode arch=compute_80,code=sm_80 " .
+                     "--ftz=true ";
+ #                    "-gencode arch=compute_75,code=sm_75 " .
+ $arch_gcc         = "gcc";
+@@ -633,17 +632,17 @@
+ # location of Mesa library and include files; basically does the same
+ # as OpenGL.  This is based on the default instructions from the Mesa
+ # README; the include files should by default be in /usr/local/include/GL.
+-$mesa_dir         = "$vmd_library_dir/Mesa";
++$mesa_dir         = $ENV{'EBROOTMESA'};
+ $mesa_include     = "-I$mesa_dir/include";
+ $mesa_library     = "-L$mesa_dir/lib_$config_arch";
+ #$mesa_libs        = "-lMesaGL -lMesaGLU"; 
+-$mesa_libs        = "-lMesaGL"; 
++$mesa_libs        = "-lGL -lGLU"; 
+ $mesa_defines     = "-DUSELINEAXES -DVMDMESA -DVMDOPENGL";
+ @mesa_cc          = ();
+ @mesa_cu          = ();
+-@mesa_ccpp        = @opengl_ccpp;
+-@mesa_h           = @opengl_h;
+-@mesa_extra       = @opengl_extra;
++@mesa_ccpp        = ();
++@mesa_h           = ();
++@mesa_extra       = ();
+ 
+ 
+ #
+@@ -719,10 +718,10 @@
+ 
+ ################ FLTK GUI
+ $fltk_defines     = "-DVMDGUI -DVMDFLTK";
+-$fltk_dir         = "$vmd_library_dir/fltk";
++$fltk_dir         = $ENV{'EBROOTFLTK'};
+ $fltk_include     = "-I$fltk_dir/include";
+ $fltk_library     = "-L$fltk_dir/$config_arch";
+-$fltk_libs        = "-lfltk -lX11";
++$fltk_libs        = "-lfltk -lX11 -lXfixes -lXcursor -lXinerama";
+ #@fltk_cc          = ('forms_ui.c');
+ @fltk_cu          = ();
+ @fltk_ccpp        = ( 'ColorFltkMenu.C',
+@@ -764,7 +763,6 @@
+ $stock_tcl_include_dir=$ENV{"TCL_INCLUDE_DIR"} || "$vmd_library_dir/tcl/include";
+ $stock_tcl_library_dir=$ENV{"TCL_LIBRARY_DIR"} || "$vmd_library_dir/tcl/lib_$config_arch";
+ 
+-
+ # location of Tk (for TK option)
+ #$stock_tk_include_dir=$ENV{"TK_INCLUDE_DIR"} || "/usr/local/include";
+ #$stock_tk_library_dir=$ENV{"TK_LIBRARY_DIR"} || "/usr/local/lib";
+@@ -782,8 +780,8 @@
+ if ($config_tk) { $tcl_include .= " -I$stock_tk_include_dir"; }
+ $tcl_library      = "-L$stock_tcl_library_dir";
+ if ($config_tk) { $tcl_library .= " -L$stock_tk_library_dir"; }
+-$tcl_libs         = "-ltcl8.5";  
+-if ($config_tk) { $tcl_libs = "-ltk8.5 -lX11 " . $tcl_libs; }
++$tcl_libs         = "-ltcl8.6";  
++if ($config_tk) { $tcl_libs = "-ltk8.6 -lX11 " . $tcl_libs; }
+ 
+ @tcl_cc           = ();
+ @tcl_cu           = ();
+@@ -992,7 +990,7 @@
+ #   This option enables the use of CUDA GPU acceleration functions.
+ #######################
+ $cuda_defines     = "-DVMDCUDA -DMSMPOT_CUDA";
+-$cuda_dir         = "/usr/local/cuda-10.2";
++$cuda_dir         = "$ENV{'CUDA_HOME'}";
+ $cuda_include     = "";
+ $cuda_library     = "";
+ $cuda_libs        = "-Wl,-rpath -Wl,\$\$ORIGIN/ -lcudart_static -lrt";
+@@ -1201,7 +1199,7 @@
+ # $liboptix_dir         = "/usr/local/encap/NVIDIA-OptiX-SDK-5.0.1-linux64";
+ # $liboptix_dir         = "/usr/local/encap/NVIDIA-OptiX-SDK-5.1.0-linux64";
+ # $liboptix_dir         = "/usr/local/encap/NVIDIA-OptiX-SDK-6.0.0-linux64";
+-$liboptix_dir         = "/usr/local/encap/NVIDIA-OptiX-SDK-6.5.0-linux64";
++$liboptix_dir         = "$ENV{'EBROOTOPTIX'}";
+ # $liboptix_dir         = "/usr/local/encap/NVIDIA-OptiX-SDK-7.0.0-linux64";
+ 
+ # NCSA Blue Waters
+@@ -1356,7 +1354,7 @@
+   die "LIBPNG option requires ZLIB!";
+ }
+ $libpng_defines     = "-DVMDLIBPNG";
+-$libpng_dir         = "/Projects/vmd/vmd/lib/libpng";
++$libpng_dir         = "$ENV{'EBROOTLIBPNG'}";
+ $libpng_include     = "-I$libpng_dir/include";
+ $libpng_library     = "-L$libpng_dir/lib_$config_arch";
+ $libpng_libs        = "-lpng16";
+@@ -1384,7 +1382,7 @@
+ # OPTIONAL COMPONENT: Data compresssion library 
+ # This may be commented out if not required.
+ $zlib_defines     = "-DVMDZLIB";
+-$zlib_dir         = "/Projects/vmd/vmd/lib/zlib";
++$zlib_dir         = "$ENV{'EBROOTZLIB'}";
+ $zlib_include     = "-I$zlib_dir/include";
+ $zlib_library     = "-L$zlib_dir/lib_$config_arch";
+ $zlib_libs        = "-lz";
+@@ -1575,7 +1573,7 @@
+ #   primitives.
+ #######################
+ $actc_defines     = "-DVMDACTC";
+-$actc_dir         = "$vmd_library_dir/actc";
++$actc_dir         = "$ENV{'EBROOTACTC'}";
+ $actc_include     = "-I$actc_dir/include";
+ $actc_library     = "-L$actc_dir/lib_$config_arch";
+ $actc_libs        = "-lactc";
+@@ -1590,7 +1588,7 @@
+ # OPTIONAL COMPONENT: NetCDF I/O Library (Used by cdfplugin)
+ #######################
+ $netcdf_defines     = "";
+-$netcdf_dir         = "$vmd_library_dir/netcdf";
++$netcdf_dir         = "$ENV{'EBROOTNETCDF'}";
+ $netcdf_include     = "-I$netcdf_dir/include";
+ $netcdf_library     = "-L$netcdf_dir/lib_$config_arch";
+ $netcdf_libs        = "-lnetcdf";
+@@ -1648,7 +1646,7 @@
+   $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "$conda_root/lib/python3.7/config-3.7m-x86_64-linux-gnu";
+   $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$conda_root/lib/python3.7/site-packages/numpy/core/include/numpy";
+   $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$conda_root/lib/python-3.7/site-packages/numpy/core/include";
+-  $python_libs        = "-fno-lto -lpython3.7m -lpthread";
++  $python_libs        = "$ENV{'PYTHON_LIBRARIES'}" || "-fno-lto -lpython3.7m -lpthread";
+ } else {
+ #  $stock_python_include_dir=$ENV{"PYTHON_INCLUDE_DIR"} || "/usr/local/include";
+ #  $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "/usr/local/lib";
+@@ -1659,7 +1657,7 @@
+ #  $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "/usr/local/lib";
+   $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$vmd_library_dir/numpy/lib_$config_arch/include";
+   $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$vmd_library_dir/python/lib_$config_arch/lib/python2.5/site-packages/numpy/core/include";
+-  $python_libs        = "-lpython2.5 -lpthread";
++  $python_libs        = "$ENV{'PYTHON_LIBRARIES'}" || "-lpython2.5 -lpthread";
+ }
+ 
+ $python_defines     = "-DVMDPYTHON";
+@@ -2573,7 +2571,7 @@
+ 
+     if ($config_cuda) {
+       $arch_nvccflags   .= " --machine 64 -O3 $cuda_include";
+-      $cuda_library     = "-L/usr/local/cuda-10.2/lib64";
++      $cuda_library     = "-L/$ENV{'EBROOTCUDA'}/lib64";
+     }
+ 
+     $arch_lex		= "flex"; # has problems with vendor lex
+@@ -2583,7 +2581,7 @@
+     # they likely serve no useful purpose going forward.
+     if (!$config_opengl_dispatch) {
+       $opengl_dep_libs	= "-L/usr/X11R6/lib64 -lGL -lX11";
+-      $mesa_libs          = "-lMesaGL -L/usr/X11R6/lib64 -lXext -lX11";
++      $mesa_libs          = "-lGL -lGLU -L/usr/X11R6/lib64 -lXext -lX11";
+     }
+ 
+     # this is to make tcl happy
+@@ -3763,7 +3761,7 @@
+ 
+ .cu.ptx:
+ 	\$(ECHO) "Compiling " \$< " --> " \$*.ptx " ..."; \\
+-	\$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_30,code=compute_30 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@
++	\$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_80,code=compute_80 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@
+ 
+ .y.o:
+ 
diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch
new file mode 100644
index 0000000000000000000000000000000000000000..26e9ba954dbbbb816975a947d97c4d1a69ca1f95
--- /dev/null
+++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch
@@ -0,0 +1,46 @@
+Add some additional colors, e.g. to allow for color blind compatible rendering.
+Bob Dröge, 2020-06-23
+--- src/Scene.C.orig	2020-06-23 09:37:41.000000000 +0200
++++ src/Scene.C		2020-06-23 09:40:59.000000000 +0200
+@@ -63,7 +63,10 @@
+  ,"yellow2",  "yellow3",   "green2",    "green3",
+   "cyan2",    "cyan3",     "blue2",     "blue3",
+   "violet",   "violet2",   "magenta",   "magenta2",  
+-  "red2",     "red3",      "orange2",   "orange3"
++  "red2",     "red3",      "orange2",   "orange3",
++  "matisse", "flamenco", "forest_green", "punch",
++  "wisteria", "spicy_mix", "orchid", "gray2",
++  "lime_pie", "java"
+ #endif
+ 
+ };
+@@ -89,7 +92,17 @@
+    0.27f, 0.00f, 0.98f,  0.45f, 0.00f, 0.90f, // violet
+    0.90f, 0.00f, 0.90f,  1.00f, 0.00f, 0.66f, // magenta
+    0.98f, 0.00f, 0.23f,  0.81f, 0.00f, 0.00f, // red
+-   0.89f, 0.35f, 0.00f,  0.96f, 0.72f, 0.00f  // orange
++   0.89f, 0.35f, 0.00f,  0.96f, 0.72f, 0.00f, // orange
++   0.1f, 0.5f, 0.7f, // MPL1, matisse
++   1.0f, 0.5f, 0.1f, // MPL2, flamenco
++   0.2f, 0.6f, 0.2f, // MPL3, forest green
++   0.8f, 0.2f, 0.2f, // MPL4, punch
++   0.6f, 0.4f, 0.7f, // MPL5, wisteria
++   0.5f, 0.3f, 0.3f, // MPL6, spicy mix
++   0.9f, 0.5f, 0.8f, // MPL7, orchid
++   0.5f, 0.5f, 0.5f, // MPL8, gray
++   0.7f, 0.7f, 0.1f, // MPL9, key lime pie
++   0.1f, 0.7f, 0.8f // MPL10, java
+ #endif
+ 
+ };
+--- src/Scene.h.orig	2020-06-23 09:37:45.000000000 +0200
++++ src/Scene.h		2020-06-23 09:42:21.000000000 +0200
+@@ -37,7 +37,7 @@
+ #define DISP_LIGHTS 4
+ 
+ // total number of colors defined here
+-#define REGCLRS         33
++#define REGCLRS         43
+ #define EXTRACLRS       1
+ #define VISCLRS         (REGCLRS - EXTRACLRS)
+ #define MAPCLRS         1024