diff --git a/Custom_EasyBlocks/README.md b/Custom_EasyBlocks/README.md
index 6598a6a759dfead38a2f8443d1b7b2abf83f8ea2..009b77e1ff63b2049da674c8693623f7b639e82a 100644
--- a/Custom_EasyBlocks/README.md
+++ b/Custom_EasyBlocks/README.md
@@ -2,6 +2,13 @@
 
 Overview of the custom EasyBlocks.
 
+## allinea
+
+- __*added by*__ s.achilles
+- __*needed because*__ we need to allow multipled license files
+- __*difference compared to upstream*__ the aforementioned parameter
+- __*can not be removed*__ at least until that option is merged upstream
+
 ## MPICH
 
 - __*added by*__ d.alvarez
diff --git a/Custom_EasyBlocks/allinea.py b/Custom_EasyBlocks/allinea.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac5a7370e25aca07c11cd7f979225c5c15ef47f5
--- /dev/null
+++ b/Custom_EasyBlocks/allinea.py
@@ -0,0 +1,127 @@
+##
+# Copyright 2013-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 building and installing Allinea tools, implemented as an easyblock
+
+@author: Kenneth Hoste (Ghent University)
+@author: Sebastian Achilles (Forschungszentrum Juelich GmbH)
+"""
+import os
+import shutil
+import stat
+
+from easybuild.easyblocks.generic.binary import Binary
+from easybuild.framework.easyblock import EasyBlock
+from easybuild.framework.easyconfig import CUSTOM
+from easybuild.tools.build_log import EasyBuildError
+from easybuild.tools.filetools import adjust_permissions, copy_file
+from easybuild.tools.py2vs3 import string_type
+
+
+class EB_Allinea(Binary):
+    """Support for building/installing Allinea."""
+
+    @staticmethod
+    def extra_options(extra_vars=None):
+        """Define extra easyconfig parameters specific to Allinea."""
+        extra = Binary.extra_options(extra_vars)
+        extra.update({
+            'templates': [[], "List of templates.", CUSTOM],
+            'sysconfig': [None, "system.config file to install.", CUSTOM],
+        })
+        return extra
+
+    def extract_step(self):
+        """Extract Allinea installation files."""
+        EasyBlock.extract_step(self)
+
+    def configure_step(self):
+        """No configuration for Allinea."""
+        # ensure a license file is specified
+        if self.cfg['license_file'] is None:
+            raise EasyBuildError("No license file specified.")
+
+    def build_step(self):
+        """No build step for Allinea."""
+        pass
+
+    def install_step(self):
+        """Install Allinea using install script."""
+
+        if self.cfg['install_cmd'] is None:
+            self.cfg['install_cmd'] = "./textinstall.sh --accept-licence %s" % self.installdir
+
+        super(EB_Allinea, self).install_step()
+
+        # copy license file
+        # allow to copy multiple licenses
+        lic_path = os.path.join(self.installdir, 'licences')
+        licenses = self.cfg['license_file']
+        if isinstance(licenses, string_type):
+            licenses = [licenses]
+        try:
+            for license in licenses:
+                shutil.copy2(license, lic_path)
+        except OSError as err:
+            raise EasyBuildError(
+                "Failed to copy license file to %s: %s", lic_path, err)
+
+        # copy templates
+        templ_path = os.path.join(self.installdir, 'templates')
+        for templ in self.cfg['templates']:
+            path = self.obtain_file(templ, extension='qtf')
+            if path:
+                self.log.debug('Template file %s found' % path)
+            else:
+                raise EasyBuildError('No template file named %s found', templ)
+
+            try:
+                # use shutil.copy (not copy2) so that permissions of copied file match with rest of installation
+                shutil.copy(path, templ_path)
+            except OSError as err:
+                raise EasyBuildError(
+                    "Failed to copy template %s to %s: %s", templ, templ_path, err)
+
+        # copy system.config if requested
+        sysconf_path = os.path.join(self.installdir, 'system.config')
+        if self.cfg['sysconfig'] is not None:
+            path = self.obtain_file(self.cfg['sysconfig'], extension=False)
+            if path:
+                self.log.debug('system.config file %s found' % path)
+            else:
+                raise EasyBuildError(
+                    'No system.config file named %s found', sysconf_path)
+
+            copy_file(path, sysconf_path)
+            adjust_permissions(sysconf_path, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH,
+                               recursive=False, relative=False)
+
+    def sanity_check_step(self):
+        """Custom sanity check for Allinea."""
+        custom_paths = {
+            'files': ['bin/ddt', 'bin/map'],
+            'dirs': [],
+        }
+        super(EB_Allinea, self).sanity_check_step(custom_paths=custom_paths)
diff --git a/Golden_Repo/a/ARMForge/ARMForge-21.1.2.eb b/Golden_Repo/a/ARMForge/ARMForge-21.1.2.eb
new file mode 100644
index 0000000000000000000000000000000000000000..3613b6666af69e5ef5aec3f12e52f912a85d1095
--- /dev/null
+++ b/Golden_Repo/a/ARMForge/ARMForge-21.1.2.eb
@@ -0,0 +1,45 @@
+# For using $SYSTEMNAME to determine license path. The local prefix is to appease the checker
+import os as local_os
+
+easyblock = 'EB_Allinea'
+
+name = 'ARMForge'
+version = '21.1.2'
+
+homepage = 'https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge'
+description = """
+Arm Forge is the leading server and HPC development tool suite in research, industry, and academia for C, C++, Fortran,
+and Python high performance code on Linux.  
+
+Arm Forge includes Arm DDT, the best debugger for time-saving high performance application debugging, Arm MAP, the
+trusted performance profiler for invaluable optimization advice, and Arm Performance Reports to help you analyze your
+HPC application runs.
+"""
+
+usage = """For more information, type "ddt -h" or "map -h"
+
+For the ARM DDT and MAP User Guide, please see: "$EBROOTARMFORGE/doc/userguide.pdf"
+"""
+
+site_contacts = 'Michael Knobloch <m.knobloch@fz-juelich.de>, Sebastian Achilles <s.achilles@fz-juelich.de>'
+
+toolchain = SYSTEM
+
+sources = ['arm-forge-%(version)s-linux-x86_64.tar']
+source_urls = ['https://content.allinea.com/downloads/']
+checksums = ['2d4b366a3f23f3c9efba96bd6f8cce1f']
+
+start_dir = '%(builddir)s/arm-forge-%(version)s-linux-x86_64/'
+install_cmd = "./textinstall.sh --accept-licence %(installdir)s"
+local_licdir = '/p/software/%s/licenses/armforge' % local_os.environ['SYSTEMNAME']
+license_file = [
+    '%s/LicenseForge.lic' % local_licdir,
+    '%s/LicensePR.lic' % local_licdir
+]
+
+sanity_check_paths = {
+    'files': ['bin/ddt'],
+    'dirs': [],
+}
+
+moduleclass = 'tools'