diff --git a/a/ANSYS/ANSYS-22.2-intel-2020b-electronics.eb b/a/ANSYS/ANSYS-22.2-intel-2020b-electronics.eb
new file mode 100644
index 00000000..ada41020
--- /dev/null
+++ b/a/ANSYS/ANSYS-22.2-intel-2020b-electronics.eb
@@ -0,0 +1,33 @@
+# IT4Innovations 2022
+# JK
+
+name = 'ANSYS'
+version = '22.2'
+versionsuffix = '-electronics'
+
+homepage = 'http://www.ansys.com'
+description = """ANSYS simulation software enables organizations to confidently predict
+    how their products will operate in the real world. We believe that every product is
+    a promise of something greater. """
+
+toolchain = {'name': 'intel', 'version': '2020b'}
+
+# create a zip file from the 3 install iso files.
+# make sure all files of the iso's are in the same directory.
+sources = ['ANSYS-22.2-ELECTRONICS.tar.gz']
+checksums = ['2f245229a5823dbcc606dd77393d8f40771a00eb0b9ae22d481507ee10784b6a']
+
+dependencies = [
+   ('libGLU', '9.0.1'),
+   ('libnsl', '1.3.0'),
+]
+
+postinstallcmds = ['./install -silent -install_dir %(installdir)s -licserverinfo 2325:1055:10.5.8.13']
+
+import os
+license_server = os.getenv('EB_ANSYS_LICENSE_SERVER', '10.5.8.13')
+license_server_port = os.getenv('EB_ANSYS_LICENSE_SERVER_PORT', '2325:1055')
+
+skipsteps = ['install']
+
+moduleclass = 'tools'
diff --git a/a/ANSYSEM/ANSYSEM-22.2-intel-2020b.eb b/a/ANSYSEM/ANSYSEM-22.2-intel-2020b.eb
new file mode 100644
index 00000000..d93202f9
--- /dev/null
+++ b/a/ANSYSEM/ANSYSEM-22.2-intel-2020b.eb
@@ -0,0 +1,14 @@
+name = 'ANSYSEM'
+version = '2020R2'
+versionsuffix = '-64'
+
+homepage = 'https://www.ansys.com/products/electronics/ansys-electronics-desktop'
+description = """Ansys Electronics Desktop is a comprehensive platform that enables electrical engineers to design and
+simulate various electrical, electronic and electromagnetic components, devices and systems."""
+
+toolchain = SYSTEM
+
+sources = ['ELECTRONICS_%(version)s_LINX64.zip']
+checksums = ['32c9f0adb087d30e19b3e239990fbcf5a7e87e2b0189c7648ffb53bc70abaa39']
+
+moduleclass = 'phys'
diff --git a/t/Tensorflow/TensorFlow-2.10.0-fosscuda-2020b.eb b/t/Tensorflow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb
similarity index 55%
rename from t/Tensorflow/TensorFlow-2.10.0-fosscuda-2020b.eb
rename to t/Tensorflow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb
index d6c85f23..e8cf3fff 100644
--- a/t/Tensorflow/TensorFlow-2.10.0-fosscuda-2020b.eb
+++ b/t/Tensorflow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb
@@ -1,138 +1,147 @@
 easyblock = 'PythonBundle'
 
 name = 'TensorFlow'
-version = '2.10.0'
+version = '2.7.1'
+versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://www.tensorflow.org/'
 description = "An open-source software library for Machine Intelligence"
 
-toolchain = {'name': 'fosscuda', 'version': '2020b'}
+toolchain = {'name': 'foss', 'version': '2022a'}
 toolchainopts = {'pic': True}
 
 builddependencies = [
     ('Bazel', '3.7.2'),
-    ('protobuf', '3.14.0'),
+    ('protobuf', '3.17.3'),
     # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053
-    ('git', '2.28.0', '-nodocs'),
-    ('pybind11', '2.6.0'),
-    ('pkgconfig', '1.5.1', '-python'),  # For h5py
+    ('git', '2.33.1', '-nodocs'),
+    ('pybind11', '2.7.1'),
     ('UnZip', '6.0'),
+    ('LLVM', '12.0.1'),  # for debugging with llvm-symbolizer, to be removed
 ]
 dependencies = [
-    ('cuDNN', '8.0.4.30', '-CUDA-%(cudaver)s', True),
-    ('NCCL', '2.8.3', '-CUDA-%(cudaver)s'),
-    ('Python', '3.8.6'),
-    ('h5py', '3.1.0'),
-    ('cURL', '7.72.0'),
+    ('CUDA', '11.4.1', '', SYSTEM),
+    ('cuDNN', '8.2.2.26', versionsuffix, SYSTEM),
+    ('NCCL', '2.10.3', versionsuffix),
+    ('Python', '3.9.6'),
+    ('h5py', '3.6.0'),
+    ('cURL', '7.78.0'),
     ('double-conversion', '3.1.5'),
-    ('flatbuffers', '1.12.0'),
+    ('flatbuffers', '2.0.0'),
     ('giflib', '5.2.1'),
-    ('hwloc', '2.2.0'),
-    ('ICU', '67.1'),
+    ('hwloc', '2.5.0'),
+    ('ICU', '69.1'),
     ('JsonCpp', '1.9.4'),
-    ('libjpeg-turbo', '2.0.5'),
-    ('LMDB', '0.9.24'),
+    ('libjpeg-turbo', '2.0.6'),
+    ('LMDB', '0.9.29'),
     ('NASM', '2.15.05'),
     ('nsync', '1.24.0'),
-    ('SQLite', '3.33.0'),
-    ('PCRE', '8.44'),
-    ('protobuf-python', '3.14.0'),
-    ('flatbuffers-python', '1.12'),
-    ('typing-extensions', '3.7.4.3'),
+    ('SQLite', '3.36'),
+    ('protobuf-python', '3.17.3'),
+    ('flatbuffers-python', '2.0'),
     ('libpng', '1.6.37'),
-    ('snappy', '1.1.8'),
+    ('snappy', '1.1.9'),
     ('zlib', '1.2.11'),
+    ('networkx', '2.6.3'),  # required for pythran
 ]
 
 use_pip = True
 sanity_pip_check = True
+
 # Dependencies created and updated using findPythonDeps.sh:
 # https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d
 exts_list = [
-    ('Markdown', '3.3.4', {
-        'checksums': ['31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49'],
+    # gast deps beniget and pythran require different version from Scipy-bundle
+    ('beniget', '0.3.0', {
+        'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'],
+    }),
+    ('pythran', '0.9.11', {
+        'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'],
+    }),
+    ('wrapt', '1.13.3', {
+        'checksums': ['1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185'],
+    }),
+    ('termcolor', '1.1.0', {
+        'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'],
+    }),
+    ('tensorflow_estimator', '2.7.0', {
+        'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+        'checksums': ['325b5a224864379242b7b76c6987ca544239be82579d33e68ec7c2bda57abc9d'],
+    }),
+    ('Werkzeug', '2.0.3', {
+        'checksums': ['b863f8ff057c522164b6067c9e28b041161b4be5ba4d0daceeaa50a163822d3c'],
+    }),
+    ('tensorboard_plugin_wit', '1.8.1', {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'],
+    }),
+    ('tensorboard_data_server', '0.6.1', {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'],
+    }),
+    ('Markdown', '3.3.6', {
+        'checksums': ['76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006'],
+    }),
+    ('grpcio', '1.43.0', {
+        'modulename': 'grpc',
+        'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ",
+        'checksums': ['735d9a437c262ab039d02defddcb9f8f545d7009ae61c0114e19dda3843febe5'],
+    }),
+    ('oauthlib', '3.2.0', {
+        'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'],
+    }),
+    ('requests-oauthlib', '1.3.1', {
+        'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'],
+    }),
+    ('rsa', '4.8', {
+        'checksums': ['5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17'],
     }),
     ('pyasn1-modules', '0.2.8', {
         'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'],
     }),
-    ('rsa', '4.7.2', {
-        'checksums': ['9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9'],
+    ('cachetools', '5.0.0', {
+        'checksums': ['486471dfa8799eb7ec503a8059e263db000cdda20075ce5e48903087f79d5fd6'],
     }),
-    ('cachetools', '4.2.2', {
-        'checksums': ['61b5ed1e22a0924aed1d23b478f37e8d52549ff8a961de2909c69bf950020cff'],
-    }),
-    ('google-auth', '1.30.0', {
+    ('google-auth', '2.6.0', {
         'modulename': 'google.auth',
-        'checksums': ['9ad25fba07f46a628ad4d0ca09f38dcb262830df2ac95b217f9b0129c9e42206'],
+        'checksums': ['ad160fc1ea8f19e331a16a14a79f3d643d813a69534ba9611d2c80dc10439dad'],
     }),
-    ('oauthlib', '3.1.0', {
-        'checksums': ['bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889'],
+    ('google-auth-oauthlib', '0.4.6', {
+        'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'],
     }),
-    ('requests-oauthlib', '1.3.0', {
-        'checksums': ['b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a'],
+    ('tensorboard', '2.8.0', {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['65a338e4424e9079f2604923bdbe301792adce2ace1be68da6b3ddf005170def'],
     }),
-    ('google-auth-oauthlib', '0.4.4', {
-        'checksums': ['09832c6e75032f93818edf1affe4746121d640c625a5bef9b5c96af676e98eee'],
+    ('opt_einsum', '3.3.0', {
+        'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
     }),
-    ('Werkzeug', '2.0.0', {
-        'checksums': ['3389bbfe6d40c6dd25e6d3f974155163c8b3de5bbda6a89342d4ab93fae80ba0'],
+    ('Keras_Preprocessing', '1.1.2', {
+        'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'],
     }),
-    ('absl-py', '0.12.0', {
-        'modulename': 'absl',
-        'checksums': ['b44f68984a5ceb2607d135a615999b93924c771238a63920d17d3387b0d229d5'],
-    }),
-    ('astunparse', '1.6.3', {
-        'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'],
-    }),
-    ('grpcio', '1.34.1', {
-        'modulename': 'grpc',
-        'checksums': ['1c746a3cd8a830d8d916a9d0476a786aaa98c5cc2a096344af2be955e439f8ac'],
-        'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ",
-    }),
-    ('gviz-api', '1.9.0', {
-        'source_tmpl': 'gviz_api-%(version)s.tar.gz',
-        'checksums': ['43d13ccc21834d0501b33a291ef3265e933dbb4bbdca3d34b1ed0a048c0ef640'],
-    }),
-    ('tensorboard_data_server', '0.6.1', {
-        'source_tmpl': SOURCE_PY3_WHL,  # Requires Rust to build, take the dummy for now
-        'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'],
-    }),
-    ('tensorboard', version, {
-        'source_tmpl': SOURCE_PY3_WHL,
-        'checksums': ['e167460085b6528956b33bab1c970c989cdce47a6616273880733f5e7bde452e'],
-    }),
-    ('tensorboard_plugin_wit', '1.8.0', {
-        'source_tmpl': SOURCE_PY3_WHL,
-        'checksums': ['2a80d1c551d741e99b2f197bb915d8a133e24adb8da1732b840041860f91183a'],
-    }),
-    ('tensorboard_plugin_profile', '2.4.0', {
-        'checksums': ['dfbf254ee960440e3b2518324f876a6d6704c60b936887d99214fa36988a206a'],
+    ('keras', '2.7.0', {
+        'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+        'checksums': ['0c33ae1f728064ca0d35dfba999e9c316f03623bf5688c82fb83cc74a80ea248'],
     }),
     ('google-pasta', '0.2.0', {
         'modulename': 'pasta',
         'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'],
     }),
-    ('termcolor', '1.1.0', {
-        'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'],
-    }),
-    ('tensorflow_estimator', version, {
-        'source_tmpl': SOURCE_WHL,
-        'checksums': ['d1fe76dee8b1dcab865d807a0246da0a9c4a635b1eba6e9545bf216c3aad6955'],
-    }),
-    ('astor', '0.8.1', {
-        'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'],
-    }),
     ('gast', '0.4.0', {
         'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'],
     }),
-    ('opt_einsum', '3.3.0', {
-        'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
+    ('astunparse', '1.6.3', {
+        'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'],
     }),
-    ('wrapt', '1.12.1', {
-        'checksums': ['b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7'],
+    ('gviz-api', '1.10.0', {
+        'source_tmpl': 'gviz_api-%(version)s.tar.gz',
+        'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'],
     }),
-    ('Keras_Preprocessing', '1.1.2', {
-        'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'],
+    ('tensorboard_plugin_profile', '2.5.0', {
+        'checksums': ['f832698d87a773b9a017fc4dd5cf598a1ff942ccfbf3392c83fe12c949ab9f52'],
+    }),
+    ('astor', '0.8.1', {
+        'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'],
     }),
     ('dill', '0.3.4', {
         'source_tmpl': '%(name)s-%(version)s.zip',
@@ -141,59 +150,31 @@ exts_list = [
     ('tblib', '1.7.0', {
         'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'],
     }),
-    ('portpicker', '1.3.1', {
-        'checksums': ['d2cdc776873635ed421315c4d22e63280042456bbfa07397817e687b142b9667'],
+    ('portpicker', '1.5.0', {
+        'checksums': ['e13b148008adeb2793cf8b55bcd20fdcec4f763f2d3bf3c45f5e5e5d1df7d228'],
     }),
-    ('keras_nightly', '2.5.0.dev2021032900', {
-        'modulename': 'keras',
-        'source_tmpl': SOURCE_WHL,
-        'checksums': ['6ba70f738f4008222de7e7fdd5b2b18c48c49b897a9fca54c844854e25964011'],
+    ('absl-py', '0.13.0', {
+        'modulename': 'absl',
+        'checksums': ['6953272383486044699fd0e9f00aad167a27e08ce19aae66c6c4b10e7e767793'],
     }),
     (name, version, {
-        'source_tmpl': 'v%(version)s.tar.gz',
-        'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'],
         'patches': [
             'TensorFlow-2.1.0_fix-cuda-build.patch',
             'TensorFlow-2.4.0_add-ldl.patch',
             'TensorFlow-2.4.0_dont-use-var-lock.patch',
-            'TensorFlow-2.4.1_fix-min-priority-test.patch',
-            'TensorFlow-2.5.0_add-default-shell-env.patch',
-            'TensorFlow-2.5.0_add-protobuf-deps.patch',
             'TensorFlow-2.5.0_add-support-for-large-core-systems.patch',
             'TensorFlow-2.5.0_disable-avx512-extensions.patch',
             'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch',
-            'TensorFlow-2.5.0_fix-alignment-in-matmul-test.patch',
             'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch',
             'TensorFlow-2.5.0_fix-crash-on-shutdown.patch',
-            'TensorFlow-2.5.0_remove-duplicate-gpu-tests.patch',
-        ],
-        'checksums': [
-            '233875ea27fc357f6b714b2a0de5f6ff124b50c1ee9b3b41f9e726e9e677b86c',  # v2.5.0.tar.gz
-            '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a',  # TensorFlow-2.1.0_fix-cuda-build.patch
-            '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3',  # TensorFlow-2.4.0_add-ldl.patch
-            # TensorFlow-2.4.0_dont-use-var-lock.patch
-            'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5',
-            # TensorFlow-2.4.1_fix-min-priority-test.patch
-            '389febce9a0612fd457daf4cb18c02f77fc7311bacae0963602a3198d9f2737f',
-            # TensorFlow-2.5.0_add-default-shell-env.patch
-            '09b0c5d4ff04f56a9657875471ed78001d4201cac795aeff62019d582115b468',
-            # TensorFlow-2.5.0_add-protobuf-deps.patch
-            '2aa79b89cff13e81f83e385761917d5d6dbdffd6b0366d90580761b958f14363',
-            # TensorFlow-2.5.0_add-support-for-large-core-systems.patch
-            '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636',
-            # TensorFlow-2.5.0_disable-avx512-extensions.patch
-            '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03',
-            # TensorFlow-2.5.0-fix-alias-violation-in-absl.patch
-            '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75',
-            # TensorFlow-2.5.0_fix-alignment-in-matmul-test.patch
-            '6a4d6cbf45a622b8a2c3ea0b1c0171f01f595684d9c57d415bb39b1b27e1180f',
-            # TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch
-            '6abfadc0f67ff3b510d70430843201cb46d7bd65db045ec9b482af70e0c8c0c8',
-            # TensorFlow-2.5.0_fix-crash-on-shutdown.patch
-            '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd',
-            # TensorFlow-2.5.0_remove-duplicate-gpu-tests.patch
-            'b940d438e036faac24453bff2cf1834c5e1359e87e84d1f1999fa7a30b278fec',
+            'TensorFlow-2.7.1_fix_protobuf_error_message.patch',
+            'TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch',
+            'TensorFlow-2.7.1_remove-io-gcs-dependency.patch',
+            'TensorFlow-2.7.1_remove-libclang-dependency.patch',
+            'TensorFlow-2.7.1_fix_cpu_count.patch',
         ],
+        'source_tmpl': 'v%(version)s.tar.gz',
+        'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'],
         'test_script': 'TensorFlow-2.x_mnist-test.py',
         'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only',
         'test_tag_filters_gpu': ('gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,'
@@ -220,14 +201,43 @@ exts_list = [
             '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test',
             # Fails on AMD EPYC systems: https://github.com/tensorflow/tensorflow/issues/52151
             '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test',
+            # All tests in this directory fail with segfault (TensorFlow Graph IR)
+            '-//tensorflow/core/ir/importexport/tests/roundtrip/...',
+            # Fails on e.g. AMD EPYC and known to be flaky on Mac: https://github.com/tensorflow/tensorflow/issues/56717
+            '-//tensorflow/python/data/experimental/kernel_tests/service:fault_tolerance_test',
         ],
         'testopts': "--test_timeout=3600 --test_size_filters=small",
         'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " +
                         "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute",
         'with_xla': True,
+        'checksums': [
+            'abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21',  # v2.7.1.tar.gz
+            '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a',  # TensorFlow-2.1.0_fix-cuda-build.patch
+            '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3',  # TensorFlow-2.4.0_add-ldl.patch
+            # TensorFlow-2.4.0_dont-use-var-lock.patch
+            'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5',
+            # TensorFlow-2.5.0_add-support-for-large-core-systems.patch
+            '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636',
+            # TensorFlow-2.5.0_disable-avx512-extensions.patch
+            '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03',
+            # TensorFlow-2.5.0-fix-alias-violation-in-absl.patch
+            '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75',
+            # TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch
+            '6abfadc0f67ff3b510d70430843201cb46d7bd65db045ec9b482af70e0c8c0c8',
+            # TensorFlow-2.5.0_fix-crash-on-shutdown.patch
+            '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd',
+            # TensorFlow-2.7.1_fix_protobuf_error_message.patch
+            '301ce21845987dc7868624880c0d85e60aa5491c5a0bae0f6ebc8db5727960a5',
+            # TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch
+            'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483',
+            # TensorFlow-2.7.1_remove-io-gcs-dependency.patch
+            '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20',
+            # TensorFlow-2.7.1_remove-libclang-dependency.patc
+            'd202058c0e8a7cdef3157fe12327e23c7291ce2724a15653df0aae3b40c4dadc',
+            # TensorFlow-2.7.1_fix_cpu_count.patch
+            '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698',
+        ],
     }),
 ]
 
-cuda_compute_capabilities = ['8.0']
-
 moduleclass = 'lib'
diff --git a/t/Tensorflow/TensorFlow-2.9.1-foss-2022a-CUDA-11.7.0.eb b/t/Tensorflow/TensorFlow-2.9.1-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000..f4159ab6
--- /dev/null
+++ b/t/Tensorflow/TensorFlow-2.9.1-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,224 @@
+# IT4Innovations 2022
+# JK
+
+easyblock = 'PythonBundle'
+
+name = 'TensorFlow'
+version = '2.9.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://www.tensorflow.org/'
+description = "An open-source software library for Machine Intelligence"
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+    ('Bazel', '5.1.1'),
+    ('protobuf', '3.19.4'),
+    # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053
+    ('git', '2.36.0', '-nodocs'),
+    ('pybind11', '2.9.2'),
+    ('UnZip', '6.0'),
+    ('LLVM', '14.0.3'),  # for debugging with llvm-symbolizer, to be removed
+]
+dependencies = [
+    ('CUDA', '11.7.0', '', SYSTEM),
+    ('cuDNN', '8.4.1.50', versionsuffix, SYSTEM),
+    ('NCCL', '2.12.12', versionsuffix),
+    ('Python', '3.10.4'),
+    ('h5py', '3.7.0'),
+    ('cURL', '7.83.0'),
+    ('double-conversion', '3.2.0'),
+    ('flatbuffers', '2.0.0'),
+    ('giflib', '5.2.1'),
+    ('hwloc', '2.7.1'),
+    ('ICU', '71.1'),
+    ('JsonCpp', '1.9.5'),
+    ('libjpeg-turbo', '2.1.3'),
+    ('LMDB', '0.9.29'),
+    ('NASM', '2.15.05'),
+    ('nsync', '1.25.0'),
+    ('SQLite', '3.38.3'),
+    ('protobuf-python', '3.19.4'),
+    ('flatbuffers-python', '2.0'),
+    ('libpng', '1.6.37'),
+    ('snappy', '1.1.9'),
+    ('zlib', '1.2.12'),
+    ('networkx', '2.8.4'),  # required for pythran
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# Dependencies created and updated using findPythonDeps.sh:
+# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d
+exts_list = [
+    ('beniget', '0.3.0', {
+        'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'],
+    }),
+    ('pythran', '0.9.11', {
+        'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'],
+    }),
+    ('wrapt', '1.14.1', {
+        'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'],
+    }),
+    ('termcolor', '1.1.0', {
+        'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'],
+    }),
+    ('tensorflow_estimator', '2.9.0', {
+        'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+        'checksums': ['e9762bb302f51bc1eb2f35d19f0190a6a2d809d754d5def788c4328fe3746744'],
+    }),
+    ('Werkzeug', '2.2.2', {
+        'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'],
+    }),
+    ('tensorboard_plugin_wit', '1.8.1', {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'],
+    }),
+    ('tensorboard_data_server', '0.6.1', {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'],
+    }),
+    ('Markdown', '3.4.1', {
+        'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'],
+    }),
+    ('grpcio', '1.47.0', {
+        'modulename': 'grpc',
+        'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ",
+        'checksums': ['5dbba95fab9b35957b4977b8904fc1fa56b302f9051eff4d7716ebb0c087f801'],
+    }),
+    ('oauthlib', '3.2.0', {
+        'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'],
+    }),
+    ('requests-oauthlib', '1.3.1', {
+        'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'],
+    }),
+    ('rsa', '4.9', {
+        'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'],
+    }),
+    ('pyasn1-modules', '0.2.8', {
+        'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'],
+    }),
+    ('cachetools', '5.2.0', {
+        'checksums': ['6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757'],
+    }),
+    ('google-auth', version, {
+        'modulename': 'google.auth',
+        'checksums': ['14292fa3429f2bb1e99862554cde1ee730d6840ebae067814d3d15d8549c0888'],
+    }),
+    ('google-auth-oauthlib', '0.4.6', {
+        'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'],
+    }),
+    ('tensorboard', version, {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['baa727f791776f9e5841d347127720ceed4bbd59c36b40604b95fb2ae6029276'],
+    }),
+    ('opt_einsum', '3.3.0', {
+        'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
+    }),
+    ('Keras_Preprocessing', '1.1.2', {
+        'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'],
+    }),
+    ('keras', '2.9.0', {
+        'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+        'checksums': ['55911256f89cfc9343c9fbe4b61ec45a2d33d89729cbe1ab9dcacf8b07b8b6ab'],
+    }),
+    ('google-pasta', '0.2.0', {
+        'modulename': 'pasta',
+        'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'],
+    }),
+    ('gast', '0.4.0', {
+        'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'],
+    }),
+    ('astunparse', '1.6.3', {
+        'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'],
+    }),
+    ('gviz-api', '1.10.0', {
+        'source_tmpl': 'gviz_api-%(version)s.tar.gz',
+        'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'],
+    }),
+    ('tensorboard_plugin_profile', '2.5.0', {
+        'checksums': ['f832698d87a773b9a017fc4dd5cf598a1ff942ccfbf3392c83fe12c949ab9f52'],
+    }),
+    ('astor', '0.8.1', {
+        'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'],
+    }),
+    ('dill', '0.3.6', {
+        'checksums': ['e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373'],
+    }),
+    ('tblib', '1.7.0', {
+        'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'],
+    }),
+    ('portpicker', '1.5.2', {
+        'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'],
+    }),
+    ('absl-py', '1.2.0', {
+        'modulename': 'absl',
+        'checksums': ['f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97'],
+    }),
+    (name, version, {
+        'patches': [
+            'TensorFlow-2.1.0_fix-cuda-build.patch',
+            'TensorFlow-2.4.0_add-ldl.patch',
+            'TensorFlow-2.4.0_dont-use-var-lock.patch',
+            'TensorFlow-2.5.0_add-support-for-large-core-systems.patch',
+            'TensorFlow-2.5.0_disable-avx512-extensions.patch',
+            'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch',
+            'TensorFlow-2.5.0_fix-crash-on-shutdown.patch',
+            'TensorFlow-2.7.1_fix_cpu_count.patch',
+            'TensorFlow-2.9.1_fix-protobuf-include-def.patch',
+        ],
+        'source_tmpl': 'v%(version)s.tar.gz',
+        'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'],
+        'test_script': 'TensorFlow-2.x_mnist-test.py',
+        'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only',
+        'test_tag_filters_gpu': 'gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only',
+        'test_targets': [
+            '//tensorflow/core/...',
+            '-//tensorflow/core:example_java_proto',
+            '-//tensorflow/core/example:example_protos_closure',
+            '//tensorflow/cc/...',
+            '//tensorflow/c/...',
+            '//tensorflow/python/...',
+            '-//tensorflow/c/eager:c_api_test_gpu',
+            '-//tensorflow/c/eager:c_api_distributed_test',
+            '-//tensorflow/c/eager:c_api_distributed_test_gpu',
+            '-//tensorflow/c/eager:c_api_cluster_test_gpu',
+            '-//tensorflow/c/eager:c_api_remote_function_test_gpu',
+            '-//tensorflow/c/eager:c_api_remote_test_gpu',
+            '-//tensorflow/core/common_runtime:collective_param_resolver_local_test',
+            '-//tensorflow/core/common_runtime:mkl_layout_pass_test',
+            '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test',
+            '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test',
+            '-//tensorflow/core/ir/importexport/tests/roundtrip/...',
+            '-//tensorflow/python/data/experimental/kernel_tests/service:fault_tolerance_test',
+        ],
+        'testopts': "--test_timeout=3600 --test_size_filters=small",
+        'testopts_gpu': "--test_timeout=3600 --test_size_filters=small --run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute",
+        'with_xla': True,
+        'checksums': [
+            {'v2.9.1.tar.gz': '6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc'},
+            {'TensorFlow-2.1.0_fix-cuda-build.patch':
+             '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'},
+            {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'},
+            {'TensorFlow-2.4.0_dont-use-var-lock.patch':
+             'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'},
+            {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch':
+             '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'},
+            {'TensorFlow-2.5.0_disable-avx512-extensions.patch':
+             '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'},
+            {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch':
+             '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'},
+            {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch':
+             '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'},
+            {'TensorFlow-2.7.1_fix_cpu_count.patch':
+             '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'},
+            {'TensorFlow-2.9.1_fix-protobuf-include-def.patch':
+             '97ce554516857e6f94415bdd8a8cb201abb34e9297a4946f91143587f110eb6d'},
+        ],
+    }),
+]
+
+moduleclass = 'lib'
diff --git a/t/Tensorflow/TensorFlow-2.9.1_fix-protobuf-include-def.patch b/t/Tensorflow/TensorFlow-2.9.1_fix-protobuf-include-def.patch
new file mode 100644
index 00000000..ecccc684
--- /dev/null
+++ b/t/Tensorflow/TensorFlow-2.9.1_fix-protobuf-include-def.patch
@@ -0,0 +1,13 @@
+Fix an issue where google/protobuf/port_def.inc is not found.
+
+diff -ruN tensorflow-2.9.1_old/third_party/systemlibs/protobuf.BUILD tensorflow-2.9.1/third_party/systemlibs/protobuf.BUILD
+--- tensorflow-2.9.1_old/third_party/systemlibs/protobuf.BUILD	2022-11-10 16:57:13.649126750 +0100
++++ tensorflow-2.9.1/third_party/systemlibs/protobuf.BUILD	2022-11-10 17:00:42.548576599 +0100
+@@ -43,6 +43,7 @@
+         ],
+     ),
+     "wrappers": ("google/protobuf/wrappers.proto", []),
++    "port_def": ("google/protobuf/port_def.inc", []),
+ }
+ 
+ RELATIVE_WELL_KNOWN_PROTOS = [proto[1][0] for proto in WELL_KNOWN_PROTO_MAP.items()]
diff --git a/t/Tensorflow/old-TensorFlow-2.10.0-foss-2022a-CUDA-11.7.0.eb b/t/Tensorflow/old-TensorFlow-2.10.0-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000..e366b30d
--- /dev/null
+++ b/t/Tensorflow/old-TensorFlow-2.10.0-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,248 @@
+# IT4Innovations 2022
+# JK
+# Taken from pr 16620
+# write a patch for protobuf error (use existing 2.9.1 protobuf patch as template)
+
+easyblock = 'PythonBundle'
+
+name = 'TensorFlow'
+version = '2.10.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://www.tensorflow.org/'
+description = "An open-source software library for Machine Intelligence"
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+    ('Bazel', '5.1.1'),
+    ('protobuf', '3.19.4'),
+    # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053
+    ('git', '2.36.0', '-nodocs'),
+    ('pybind11', '2.9.2'),
+    ('UnZip', '6.0'),
+    ('LLVM', '14.0.3'),  # for debugging with llvm-symbolizer, to be removed
+]
+dependencies = [
+    ('CUDA', '11.7.0', '', SYSTEM),
+    ('cuDNN', '8.4.1.50', versionsuffix, SYSTEM),
+    ('NCCL', '2.12.12', versionsuffix),
+    ('Python', '3.10.4'),
+    ('h5py', '3.7.0'),
+    ('cURL', '7.83.0'),
+    ('double-conversion', '3.2.0'),
+    ('flatbuffers', '2.0.0'),
+    ('giflib', '5.2.1'),
+    ('hwloc', '2.7.1'),
+    ('ICU', '71.1'),
+    ('JsonCpp', '1.9.5'),
+    ('libjpeg-turbo', '2.1.3'),
+    ('LMDB', '0.9.29'),
+    ('NASM', '2.15.05'),
+    ('nsync', '1.25.0'),
+    ('SQLite', '3.38.3'),
+    ('protobuf-python', '3.19.4'),
+    ('flatbuffers-python', '2.0'),
+    ('libpng', '1.6.37'),
+    ('snappy', '1.1.9'),
+    ('zlib', '1.2.12'),
+    ('networkx', '2.8.4'),  # required for pythran
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# Dependencies created and updated using findPythonDeps.sh:
+# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d
+exts_list = [
+    ('wrapt', '1.14.1', {
+        'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'],
+    }),
+    ('termcolor', '1.1.0', {
+        'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'],
+    }),
+    ('tensorflow-estimator', '2.9.0', {
+        'source_tmpl': 'tensorflow_estimator-2.9.0-py2.py3-none-any.whl',
+        'checksums': ['e9762bb302f51bc1eb2f35d19f0190a6a2d809d754d5def788c4328fe3746744'],
+    }),
+    ('Werkzeug', '2.2.2', {
+        'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'],
+    }),
+    ('tensorboard-plugin-wit', '1.8.1', {
+        'source_tmpl': 'tensorboard_plugin_wit-1.8.1-py3-none-any.whl',
+        'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'],
+    }),
+    ('tensorboard-data-server', '0.6.1', {
+        'source_tmpl': 'tensorboard_data_server-0.6.1-py3-none-manylinux2010_x86_64.whl',
+        'checksums': ['d8237580755e58eff68d1f3abefb5b1e39ae5c8b127cc40920f9c4fb33f4b98a'],
+    }),
+    ('Markdown', '3.4.1', {
+        'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'],
+    }),
+    ('grpcio', '1.47.0', {
+        'modulename': 'grpc',
+        'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ",
+        'checksums': ['5dbba95fab9b35957b4977b8904fc1fa56b302f9051eff4d7716ebb0c087f801'],
+    }),
+    ('oauthlib', '3.2.0', {
+        'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'],
+    }),
+    ('requests-oauthlib', '1.3.1', {
+        'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'],
+    }),
+    ('rsa', '4.9', {
+        'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'],
+    }),
+    ('pyasn1-modules', '0.2.8', {
+        'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'],
+    }),
+    ('cachetools', '5.2.0', {
+        'checksums': ['6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757'],
+    }),
+    ('google-auth', version, {
+        'modulename': 'google.auth',
+        'checksums': ['7904dbd44b745c7323fef29565adee2fe7ff48473e2d94443aced40b0404a395'],
+    }),
+    ('google-auth-oauthlib', '0.4.6', {
+        'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'],
+    }),
+    ('absl-py', '1.2.0', {
+        'modulename': 'absl',
+        'checksums': ['f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97'],
+    }),
+    ('tensorboard', version, {
+        'source_tmpl': 'tensorboard-2.9.1-py3-none-any.whl',
+        'checksums': ['baa727f791776f9e5841d347127720ceed4bbd59c36b40604b95fb2ae6029276'],
+    }),
+    ('opt-einsum', '3.3.0', {
+        'source_tmpl': 'opt_einsum-3.3.0-py3-none-any.whl',
+        'checksums': ['2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147'],
+    }),
+    ('libclang', '14.0.6', {
+        'modulename': 'clang',
+        'checksums': ['9052a8284d8846984f6fa826b1d7460a66d3b23a486d782633b42b6e3b418789'],
+    }),
+    ('Keras-Preprocessing', '1.1.2', {
+        'source_tmpl': 'Keras_Preprocessing-1.1.2-py2.py3-none-any.whl',
+        'checksums': ['7b82029b130ff61cc99b55f3bd27427df4838576838c5b2f65940e4fcec99a7b'],
+    }),
+    ('keras', '2.9.0', {
+        'source_tmpl': 'keras-2.9.0-py2.py3-none-any.whl',
+        'checksums': ['55911256f89cfc9343c9fbe4b61ec45a2d33d89729cbe1ab9dcacf8b07b8b6ab'],
+    }),
+    ('google-pasta', '0.2.0', {
+        'modulename': 'pasta',
+        'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'],
+    }),
+    ('astor', '0.8.1', {
+        'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'],
+    }),
+    ('astunparse', '1.6.3', {
+        'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'],
+    }),
+    ('gast', '0.4.0', {
+        'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'],
+    }),
+    ('pythran', '0.9.11', {
+        'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'],
+    }),
+    ('beniget', '0.3.0', {
+        'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'],
+    }),
+    ('dill', '0.3.6', {
+        'checksums': ['e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373'],
+    }),
+    ('portpicker', '1.5.2', {
+        'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'],
+    }),
+    ('tblib', '1.7.0', {
+        'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'],
+    }),
+    (name, version, {
+        'patches': [
+            'TensorFlow-2.1.0_fix-cuda-build.patch',
+            'TensorFlow-2.4.0_add-ldl.patch',
+            'TensorFlow-2.4.0_dont-use-var-lock.patch',
+            'TensorFlow-2.5.0_add-support-for-large-core-systems.patch',
+            'TensorFlow-2.5.0_disable-avx512-extensions.patch',
+            'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch',
+            'TensorFlow-2.5.0_fix-crash-on-shutdown.patch',
+            #'TensorFlow-2.7.1_remove-io-gcs-dependency.patch',
+            'TensorFlow-2.7.1_fix_cpu_count.patch',
+            #'TensorFlow-2.9.1_fix-protobuf-include-def.patch',
+        ],
+        'source_tmpl': 'v%(version)s.tar.gz',
+        'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'],
+        'test_script': 'TensorFlow-2.x_mnist-test.py',
+        'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only',
+        'test_tag_filters_gpu': 'gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only',
+        'test_targets': [
+            '//tensorflow/core/...',
+            '-//tensorflow/core:example_java_proto',
+            '-//tensorflow/core/example:example_protos_closure',
+            '//tensorflow/cc/...',
+            '//tensorflow/c/...',
+            '//tensorflow/python/...',
+            '-//tensorflow/c/eager:c_api_test_gpu',
+            '-//tensorflow/c/eager:c_api_distributed_test',
+            '-//tensorflow/c/eager:c_api_distributed_test_gpu',
+            '-//tensorflow/c/eager:c_api_cluster_test_gpu',
+            '-//tensorflow/c/eager:c_api_remote_function_test_gpu',
+            '-//tensorflow/c/eager:c_api_remote_test_gpu',
+            '-//tensorflow/core/common_runtime:collective_param_resolver_local_test',
+            '-//tensorflow/core/common_runtime:mkl_layout_pass_test',
+            '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test',
+            '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test',
+            '-//tensorflow/core/ir/importexport/tests/roundtrip/...',
+        ],
+        'testopts': "--test_timeout=3600 --test_size_filters=small",
+        'testopts_gpu': "--test_timeout=3600 --test_size_filters=small --run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute",
+        'with_xla': True,
+        'checksums': [
+            {'v2.10.0.tar.gz': 'b5a1bb04c84b6fe1538377e5a1f649bb5d5f0b2e3625a3c526ff3a8af88633e8'},
+            {'TensorFlow-2.1.0_fix-cuda-build.patch':
+             '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'},
+            {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'},
+            {'TensorFlow-2.4.0_dont-use-var-lock.patch':
+             'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'},
+            {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch':
+             '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'},
+            {'TensorFlow-2.5.0_disable-avx512-extensions.patch':
+             '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'},
+            {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch':
+             '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'},
+            {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch':
+             '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'},
+            #{'TensorFlow-2.7.1_remove-io-gcs-dependency.patch':
+            # '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20'},
+            {'TensorFlow-2.7.1_fix_cpu_count.patch':
+             '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'},
+            #{'TensorFlow-2.9.1_fix-protobuf-include-def.patch':
+            # '97ce554516857e6f94415bdd8a8cb201abb34e9297a4946f91143587f110eb6d'},
+        ],
+    }),
+    ('promise', '2.3', {
+        'checksums': ['dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0'],
+    }),
+    #('googleapis-common-protos', '1.56.4', {
+    #    'modulename': 'google',
+    #    'checksums': ['c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417'],
+    #}),
+    ('tensorflow_metadata', '1.10.0', {
+        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+        'checksums': ['e3ff528496105c0d73b2a402877525b1695635378fbe5c1b47ac7b3780816bb3'],
+    }),
+    ('etils', '0.8.0', {
+        'checksums': ['d1d5af7bd9c784a273c4e1eccfaa8feaca5e0481a08717b5313fa231da22a903'],
+    }),
+    ('tensorflow-datasets', '4.7.0', {
+        'source_tmpl': 'v%(version)s.tar.gz',
+        'source_urls': ['https://github.com/tensorflow/datasets/archive'],
+        'checksums': ['ed7c3b959d10ba762137e18b93631ab42f4ed0915bc3d9ce98ee66eef9c61418'],
+    }),
+]
+
+cuda_compute_capabilities = ['8.0']
+
+moduleclass = 'lib'