From 9652fa25211ab3d7743a7895e18fda93f9df6944 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20Henrik=20G=C3=B6bbert?= <goebbert1@jwlogin06.juwels>
Date: Wed, 15 Jun 2022 09:10:20 +0200
Subject: [PATCH] use easyblock from upstream

---
 Custom_EasyBlocks/matlab.py | 213 ------------------------------------
 1 file changed, 213 deletions(-)
 delete mode 100644 Custom_EasyBlocks/matlab.py

diff --git a/Custom_EasyBlocks/matlab.py b/Custom_EasyBlocks/matlab.py
deleted file mode 100644
index df6cf5b70..000000000
--- a/Custom_EasyBlocks/matlab.py
+++ /dev/null
@@ -1,213 +0,0 @@
-##
-# Copyright 2009-2021 Ghent 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://www.vscentrum.be),
-# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
-# 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 installing MATLAB, implemented as an easyblock
-
-@author: Stijn De Weirdt (Ghent University)
-@author: Dries Verdegem (Ghent University)
-@author: Kenneth Hoste (Ghent University)
-@author: Pieter De Baets (Ghent University)
-@author: Jens Timmerman (Ghent University)
-@author: Fotis Georgatos (Uni.Lu, NTUA)
-"""
-import re
-import os
-import stat
-import tempfile
-
-from distutils.version import LooseVersion
-
-from easybuild.easyblocks.generic.packedbinary import PackedBinary
-from easybuild.framework.easyconfig import CUSTOM
-from easybuild.tools.build_log import EasyBuildError
-from easybuild.tools.filetools import adjust_permissions, change_dir, copy_file, read_file, write_file
-from easybuild.tools.py2vs3 import string_type
-from easybuild.tools.run import run_cmd
-
-
-class EB_MATLAB(PackedBinary):
-    """Support for installing MATLAB."""
-
-    def __init__(self, *args, **kwargs):
-        """Add extra config options specific to MATLAB."""
-        super(EB_MATLAB, self).__init__(*args, **kwargs)
-        self.comp_fam = None
-        self.configfile = os.path.join(self.builddir, 'my_installer_input.txt')
-
-    @staticmethod
-    def extra_options():
-        extra_vars = {
-            'java_options': ['-Xmx256m', "$_JAVA_OPTIONS value set for install and in module file.", CUSTOM],
-            'key': [None, "Installation key(s), make one install for each key. Single key or a list of keys", CUSTOM],
-            'extend_libpath': [True, "Extend LD_LIBRARY_PATH", CUSTOM],
-        }
-        return PackedBinary.extra_options(extra_vars)
-
-    def configure_step(self):
-        """Configure MATLAB installation: create license file."""
-
-        licfile = self.cfg['license_file']
-        if licfile is None and os.getenv('EB_MATLAB_LICFILE') is not None:
-            licfile = os.getenv('EB_MATLAB_LICFILE', 'matlab.lic')
-        else:
-            licserv = self.cfg['license_server']
-            if licserv is None:
-                licserv = os.getenv('EB_MATLAB_LICENSE_SERVER', 'license.example.com')
-            licport = self.cfg['license_server_port']
-            if licport is None:
-                licport = os.getenv('EB_MATLAB_LICENSE_SERVER_PORT', '00000')
-            # create license file
-            lictxt = '\n'.join([
-                "SERVER %s 000000000000 %s" % (licserv, licport),
-                "USE_SERVER",
-            ])
-
-            licfile = os.path.join(self.builddir, 'matlab.lic')
-            write_file(licfile, lictxt)
-
-        try:
-            copy_file(os.path.join(self.cfg['start_dir'], 'installer_input.txt'), self.configfile)
-
-            # read file in binary mode to avoid UTF-8 encoding issues when using Python 3,
-            # due to non-UTF-8 characters...
-            config = read_file(self.configfile, mode='rb')
-
-            # use raw byte strings (must be 'br', not 'rb'),
-            # required when using Python 3 because file was read in binary mode
-            regdest = re.compile(br"^# destinationFolder=.*", re.M)
-            regagree = re.compile(br"^# agreeToLicense=.*", re.M)
-            regmode = re.compile(br"^# mode=.*", re.M)
-            reglicpath = re.compile(br"^# licensePath=.*", re.M)
-
-            # must use byte-strings here when using Python 3, see above
-            config = regdest.sub(b"destinationFolder=%s" % self.installdir.encode('utf-8'), config)
-            config = regagree.sub(b"agreeToLicense=Yes", config)
-            config = regmode.sub(b"mode=silent", config)
-            config = reglicpath.sub(b"licensePath=%s" % licfile.encode('utf-8'), config)
-
-            write_file(self.configfile, config)
-
-        except IOError as err:
-            raise EasyBuildError("Failed to create installation config file %s: %s", self.configfile, err)
-
-        self.log.debug('configuration file written to %s:\n %s', self.configfile, config)
-
-    def install_step(self):
-        """MATLAB install procedure using 'install' command."""
-
-        src = os.path.join(self.cfg['start_dir'], 'install')
-
-        # make sure install script is executable
-        adjust_permissions(src, stat.S_IXUSR)
-
-        if LooseVersion(self.version) >= LooseVersion('2016b'):
-            jdir = os.path.join(self.cfg['start_dir'], 'sys', 'java', 'jre', 'glnxa64', 'jre', 'bin')
-            for perm_dir in [os.path.join(self.cfg['start_dir'], 'bin', 'glnxa64'), jdir]:
-                adjust_permissions(perm_dir, stat.S_IXUSR)
-
-        # make sure $DISPLAY is not defined, which may lead to (hard to trace) problems
-        # this is a workaround for not being able to specify --nodisplay to the install scripts
-        if 'DISPLAY' in os.environ:
-            os.environ.pop('DISPLAY')
-
-        if '_JAVA_OPTIONS' not in self.cfg['preinstallopts']:
-            java_opts = 'export _JAVA_OPTIONS="%s" && ' % self.cfg['java_options']
-            self.cfg['preinstallopts'] = java_opts + self.cfg['preinstallopts']
-        if LooseVersion(self.version) >= LooseVersion('2016b'):
-            change_dir(self.builddir)
-
-        # Build the cmd string
-        cmdlist = [
-            self.cfg['preinstallopts'],
-            src,
-            '-inputFile',
-            self.configfile,
-        ]
-        if LooseVersion(self.version) < LooseVersion('2020a'):
-            # MATLAB installers < 2020a ignore $TMPDIR (always use /tmp) and might need a large tmpdir
-            tmpdir = tempfile.mkdtemp()
-            cmdlist.extend([
-                '-v',
-                '-tmpdir',
-                tmpdir,
-            ])
-        cmdlist.append(self.cfg['installopts'])
-        cmd = ' '.join(cmdlist)
-
-        keys = self.cfg['key']
-        if keys is None:
-            keys = os.getenv('EB_MATLAB_KEY', '00000-00000-00000-00000-00000-00000-00000-00000-00000-00000')
-        if isinstance(keys, string_type):
-            keys = keys.split(',')
-
-        # Compile the installation key regex outside of the loop
-        regkey = re.compile(br"^(# )?fileInstallationKey=.*", re.M)
-
-        # Run an install for each key
-        for i, key in enumerate(keys):
-
-            self.log.info('Installing MATLAB with key %s of %s', i + 1, len(keys))
-
-            try:
-                config = read_file(self.configfile, mode='rb')
-                config = regkey.sub(b"fileInstallationKey=%s" % key.encode('utf-8'), config)
-                write_file(self.configfile, config)
-
-            except IOError as err:
-                raise EasyBuildError("Failed to update config file %s: %s", self.configfile, err)
-
-            (out, _) = run_cmd(cmd, log_all=True, simple=False)
-
-            # check installer output for known signs of trouble
-            patterns = [
-                "Error: You have entered an invalid File Installation Key",
-            ]
-
-            for pattern in patterns:
-                regex = re.compile(pattern, re.I)
-                if regex.search(out):
-                    raise EasyBuildError("Found error pattern '%s' in output of installation command '%s': %s",
-                                         regex.pattern, cmd, out)
-
-    def sanity_check_step(self):
-        """Custom sanity check for MATLAB."""
-        custom_paths = {
-            'files': ["bin/matlab", "bin/glnxa64/MATLAB", "toolbox/local/classpath.txt"],
-            'dirs': ["java/jar"],
-        }
-        super(EB_MATLAB, self).sanity_check_step(custom_paths=custom_paths)
-
-    def make_module_extra(self):
-        """Extend PATH and set proper _JAVA_OPTIONS (e.g., -Xmx)."""
-        txt = super(EB_MATLAB, self).make_module_extra()
-
-        # make MATLAB runtime available
-        if self.cfg['extend_libpath'] and LooseVersion(self.version) >= LooseVersion('2017a'):
-            for ldlibdir in ['runtime', 'bin', os.path.join('sys', 'os')]:
-                libdir = os.path.join(ldlibdir, 'glnxa64')
-                txt += self.module_generator.prepend_paths('LD_LIBRARY_PATH', libdir)
-        if self.cfg['java_options']:
-            txt += self.module_generator.set_environment('_JAVA_OPTIONS', self.cfg['java_options'])
-        return txt
-- 
GitLab