From 77961e82d17c574b89b038f7b5f51020ec805bfe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= <lukas.krupcik@vsb.cz>
Date: Tue, 6 Nov 2018 12:00:51 +0100
Subject: [PATCH] 	new file:   a/absl-py/absl-py-0.1.10-Py-2.7.eb 	new
 file:   b/Bazel/Bazel-0.18.1-GCC-6.3.0-2.27.eb 	new file:  
 b/Bazel/Bazel-0.18.1_remove_define_DATE.patch 	new file:  
 f/funcsigs/funcsigs-1.0.2-Py-2.7.eb 	new file:  
 k/Keras_Applications/Keras_Applications-1.0.6-Py-2.7.eb 	new file:  
 k/Keras_Preprocessing/Keras_Preprocessing-1.0.5-Py-2.7.eb 	new file:  
 m/mock/mock-2.0.0-Py-2.7.eb 	new file:   n/numpy/numpy-1.15.4-Py-2.7.eb 
 new file:   p/pbr/pbr-5.1.1-Py-2.7.eb 	new file:  
 p/protobuf-python/protobuf-python-3.6.1-Py-2.7.eb 	new file:  
 p/protobuf/protobuf-3.6.1-Py-2.7.eb 	new file:  
 t/Tensorflow/Tensorflow-1.12.0-GCC-6.3.0-2.27-Py-2.7.eb

---
 a/absl-py/absl-py-0.1.10-Py-2.7.eb            |  26 +++
 b/Bazel/Bazel-0.18.1-GCC-6.3.0-2.27.eb        |  20 ++
 b/Bazel/Bazel-0.18.1_remove_define_DATE.patch | 189 ++++++++++++++++++
 f/funcsigs/funcsigs-1.0.2-Py-2.7.eb           |  20 ++
 .../Keras_Applications-1.0.6-Py-2.7.eb        |  24 +++
 .../Keras_Preprocessing-1.0.5-Py-2.7.eb       |  24 +++
 m/mock/mock-2.0.0-Py-2.7.eb                   |  24 +++
 n/numpy/numpy-1.15.4-Py-2.7.eb                |  31 +++
 p/pbr/pbr-5.1.1-Py-2.7.eb                     |  20 ++
 .../protobuf-python-3.6.1-Py-2.7.eb           |  33 +++
 p/protobuf/protobuf-3.6.1-Py-2.7.eb           |  32 +++
 ...Tensorflow-1.12.0-GCC-6.3.0-2.27-Py-2.7.eb |  42 ++++
 12 files changed, 485 insertions(+)
 create mode 100644 a/absl-py/absl-py-0.1.10-Py-2.7.eb
 create mode 100644 b/Bazel/Bazel-0.18.1-GCC-6.3.0-2.27.eb
 create mode 100644 b/Bazel/Bazel-0.18.1_remove_define_DATE.patch
 create mode 100644 f/funcsigs/funcsigs-1.0.2-Py-2.7.eb
 create mode 100644 k/Keras_Applications/Keras_Applications-1.0.6-Py-2.7.eb
 create mode 100644 k/Keras_Preprocessing/Keras_Preprocessing-1.0.5-Py-2.7.eb
 create mode 100644 m/mock/mock-2.0.0-Py-2.7.eb
 create mode 100644 n/numpy/numpy-1.15.4-Py-2.7.eb
 create mode 100644 p/pbr/pbr-5.1.1-Py-2.7.eb
 create mode 100644 p/protobuf-python/protobuf-python-3.6.1-Py-2.7.eb
 create mode 100644 p/protobuf/protobuf-3.6.1-Py-2.7.eb
 create mode 100644 t/Tensorflow/Tensorflow-1.12.0-GCC-6.3.0-2.27-Py-2.7.eb

diff --git a/a/absl-py/absl-py-0.1.10-Py-2.7.eb b/a/absl-py/absl-py-0.1.10-Py-2.7.eb
new file mode 100644
index 00000000..2440dd5d
--- /dev/null
+++ b/a/absl-py/absl-py-0.1.10-Py-2.7.eb
@@ -0,0 +1,26 @@
+# IT4Innovations 2018
+
+easyblock = "PythonPackage"
+name = 'absl-py'
+version = '0.1.10'
+
+homepage = 'https://pypi.python.org/pypi/absl-py'
+description = 'Abseil Python Common Libraries, see https://github.com/abseil/abseil-py.'
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = [PYPI_SOURCE]
+sources = [SOURCE_TAR_GZ]
+
+dependencies = [
+    ('six', '1.11.0'),
+]
+
+options = {'modulename': 'absl'}
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': ['lib/python2.7/site-packages/absl_py-%(version)s-py2.7.egg'],
+}
+
+moduleclass = 'python'
diff --git a/b/Bazel/Bazel-0.18.1-GCC-6.3.0-2.27.eb b/b/Bazel/Bazel-0.18.1-GCC-6.3.0-2.27.eb
new file mode 100644
index 00000000..eca450ef
--- /dev/null
+++ b/b/Bazel/Bazel-0.18.1-GCC-6.3.0-2.27.eb
@@ -0,0 +1,20 @@
+# It4Innovations 2018
+
+name = 'Bazel'
+version = '0.18.1'
+
+homepage = 'http://bazel.io/'
+description = """Bazel is a build tool that builds code quickly and reliably.
+It is used to build the majority of Google's software."""
+
+toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'}
+
+source_urls = [    'https://github.com/bazelbuild/bazel/releases/download/%(version)s']
+sources = ['%(namelower)s-%(version)s-dist.zip']
+
+patches = ['%(name)s-%(version)s_remove_define_DATE.patch']
+
+builddependencies = [('binutils', '2.27')]
+dependencies = [('Java', '1.8.0_144', '', True)]
+
+moduleclass = 'devel'
diff --git a/b/Bazel/Bazel-0.18.1_remove_define_DATE.patch b/b/Bazel/Bazel-0.18.1_remove_define_DATE.patch
new file mode 100644
index 00000000..76d3ecf5
--- /dev/null
+++ b/b/Bazel/Bazel-0.18.1_remove_define_DATE.patch
@@ -0,0 +1,189 @@
+Remove defined of __{DATE,TIMESTAMP,TIME}__
+Intel groks on using these on cmd line.
+
+Åke Sandgren, 20180810
+diff -ru bazel.orig/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL bazel/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL
+--- bazel.orig/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL	1980-01-01 00:00:00.000000000 +0100
++++ bazel/src/test/java/com/google/devtools/build/lib/analysis/mock/MOCK_CROSSTOOL	2018-08-10 20:29:25.149401707 +0200
+@@ -91,9 +91,6 @@
+   # Make C++ compilation deterministic. Use linkstamping instead of these
+   # compiler symbols.
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ 
+   # Security hardening on by default.
+   # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+diff -ru bazel.orig/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL bazel/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL
+--- bazel.orig/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL	1980-01-01 00:00:00.000000000 +0100
++++ bazel/src/test/shell/bazel/testdata/bazel_toolchain_test_data/tools/arm_compiler/CROSSTOOL	2018-08-10 20:29:25.149401707 +0200
+@@ -99,9 +99,6 @@
+   # Make C++ compilation deterministic. Use linkstamping instead of these
+   # compiler symbols.
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ 
+   # Security hardening on by default.
+   # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+@@ -202,9 +199,6 @@
+   target_system_name: "local"
+   unfiltered_cxx_flag: "-fno-canonical-system-headers"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   tool_path {name: "ar" path: "/usr/bin/ar" }
+   tool_path {name: "cpp" path: "/usr/bin/cpp" }
+   tool_path {name: "dwp" path: "/usr/bin/dwp" }
+diff -ru bazel.orig/tools/cpp/CROSSTOOL bazel/tools/cpp/CROSSTOOL
+--- bazel.orig/tools/cpp/CROSSTOOL	1980-01-01 00:00:00.000000000 +0100
++++ bazel/tools/cpp/CROSSTOOL	2018-08-10 20:29:25.153401646 +0200
+@@ -141,9 +141,6 @@
+   # Make C++ compilation deterministic. Use linkstamping instead of these
+   # compiler symbols.
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ 
+   # Security hardening on by default.
+   # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+@@ -247,9 +244,6 @@
+   # Make C++ compilation deterministic. Use linkstamping instead of these
+   # compiler symbols.
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ 
+   # Security hardening on by default.
+   # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+@@ -352,9 +346,6 @@
+   # Make C++ compilation deterministic. Use linkstamping instead of these
+   # compiler symbols.
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+ 
+   # Security hardening on by default.
+   # Conservative choice; -D_FORTIFY_SOURCE=2 may be unsafe in some cases.
+diff -ru bazel.orig/tools/cpp/unix_cc_configure.bzl bazel/tools/cpp/unix_cc_configure.bzl
+--- bazel.orig/tools/cpp/unix_cc_configure.bzl	1980-01-01 00:00:00.000000000 +0100
++++ bazel/tools/cpp/unix_cc_configure.bzl	2018-08-10 20:31:42.415259408 +0200
+@@ -303,9 +303,6 @@
+             # Make C++ compilation deterministic. Use linkstamping instead of these
+             # compiler symbols.
+             "-Wno-builtin-macro-redefined",
+-            "-D__DATE__=\\\"redacted\\\"",
+-            "-D__TIMESTAMP__=\\\"redacted\\\"",
+-            "-D__TIME__=\\\"redacted\\\"",
+         ],
+         "compiler_flag": [
+             # Security hardening requires optimization.
+diff -ru bazel.orig/tools/osx/crosstool/CROSSTOOL.tpl bazel/tools/osx/crosstool/CROSSTOOL.tpl
+--- bazel.orig/tools/osx/crosstool/CROSSTOOL.tpl	1980-01-01 00:00:00.000000000 +0100
++++ bazel/tools/osx/crosstool/CROSSTOOL.tpl	2018-08-10 20:30:31.184371152 +0200
+@@ -153,9 +153,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   default_python_version: "python2.7"
+   feature {
+     name: "fastbuild"
+@@ -1768,9 +1765,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "x86_64-apple-ios"
+   default_python_version: "python2.7"
+@@ -3401,9 +3395,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "i386-apple-watchos"
+   default_python_version: "python2.7"
+@@ -5037,9 +5028,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "x86_64-apple-tvos"
+   default_python_version: "python2.7"
+@@ -6700,9 +6688,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "i386-apple-ios"
+   default_python_version: "python2.7"
+@@ -8333,9 +8318,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "armv7-apple-ios"
+   default_python_version: "python2.7"
+@@ -9954,9 +9936,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "armv7k-apple-watchos"
+   default_python_version: "python2.7"
+@@ -11578,9 +11557,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "arm64-apple-tvos"
+   default_python_version: "python2.7"
+@@ -13229,9 +13205,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   unfiltered_cxx_flag: "-target"
+   unfiltered_cxx_flag: "arm64-apple-ios"
+   default_python_version: "python2.7"
+@@ -14850,9 +14823,6 @@
+   builtin_sysroot: ""
+   unfiltered_cxx_flag: "-no-canonical-prefixes"
+   unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
+-  unfiltered_cxx_flag: "-D__DATE__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIMESTAMP__=\"redacted\""
+-  unfiltered_cxx_flag: "-D__TIME__=\"redacted\""
+   supports_start_end_lib: false
+   default_python_version: "python2.7"
+   supports_interface_shared_objects: false
diff --git a/f/funcsigs/funcsigs-1.0.2-Py-2.7.eb b/f/funcsigs/funcsigs-1.0.2-Py-2.7.eb
new file mode 100644
index 00000000..86267310
--- /dev/null
+++ b/f/funcsigs/funcsigs-1.0.2-Py-2.7.eb
@@ -0,0 +1,20 @@
+# IT4Innovations 2018
+
+easyblock = "PythonPackage"
+name = 'funcsigs'
+version = '1.0.2'
+
+homepage = 'https://pypi.python.org/pypi/enum34'
+description = 'An enumeration is a set of symbolic names (members) bound to unique, constant values.'
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = [PYPI_SOURCE]
+sources = ['funcsigs-1.0.2.tar.gz']
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': ['lib/python2.7/site-packages/'],
+}
+
+moduleclass = 'python'
diff --git a/k/Keras_Applications/Keras_Applications-1.0.6-Py-2.7.eb b/k/Keras_Applications/Keras_Applications-1.0.6-Py-2.7.eb
new file mode 100644
index 00000000..6b1f0884
--- /dev/null
+++ b/k/Keras_Applications/Keras_Applications-1.0.6-Py-2.7.eb
@@ -0,0 +1,24 @@
+# IT4Innovations 2018
+
+easyblock = "PythonPackage"
+name = 'Keras_Applications'
+version = '1.0.6'
+
+homepage = 'https://pypi.python.org/pypi/enum34'
+description = 'An enumeration is a set of symbolic names (members) bound to unique, constant values.'
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = [PYPI_SOURCE]
+sources = ['Keras_Applications-1.0.6.tar.gz']
+
+dependencies = [
+    ('enum34', '1.1.6', '-Py-2.7', True),
+]
+
+sanity_check_paths = {
+    'files': ['lib/python2.7/site-packages/%(name)s-%(version)s-py2.7.egg'],
+    'dirs': [],
+}
+
+moduleclass = 'python'
diff --git a/k/Keras_Preprocessing/Keras_Preprocessing-1.0.5-Py-2.7.eb b/k/Keras_Preprocessing/Keras_Preprocessing-1.0.5-Py-2.7.eb
new file mode 100644
index 00000000..a040e248
--- /dev/null
+++ b/k/Keras_Preprocessing/Keras_Preprocessing-1.0.5-Py-2.7.eb
@@ -0,0 +1,24 @@
+# IT4Innovations 2018
+
+easyblock = "PythonPackage"
+name = 'Keras_Preprocessing'
+version = '1.0.5'
+
+homepage = 'https://pypi.python.org/pypi/enum34'
+description = 'An enumeration is a set of symbolic names (members) bound to unique, constant values.'
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = [PYPI_SOURCE]
+sources = ['Keras_Preprocessing-1.0.5.tar.gz']
+
+dependencies = [
+    ('enum34', '1.1.6', '-Py-2.7', True),
+]
+
+sanity_check_paths = {
+    'files': ['lib/python2.7/site-packages/%(name)s-%(version)s-py2.7.egg'],
+    'dirs': [],
+}
+
+moduleclass = 'python'
diff --git a/m/mock/mock-2.0.0-Py-2.7.eb b/m/mock/mock-2.0.0-Py-2.7.eb
new file mode 100644
index 00000000..c63970fb
--- /dev/null
+++ b/m/mock/mock-2.0.0-Py-2.7.eb
@@ -0,0 +1,24 @@
+# IT4Innovations 2018
+
+easyblock = "PythonPackage"
+name = 'mock'
+version = '2.0.0'
+
+homepage = 'https://pypi.python.org/pypi/enum34'
+description = 'An enumeration is a set of symbolic names (members) bound to unique, constant values.'
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = [PYPI_SOURCE]
+sources = ['mock-2.0.0.tar.gz']
+
+dependencies = [
+    ('six', '1.11.0'),
+]
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': ['lib/python2.7/site-packages/mock-2.0.0-py2.7.egg-info/'],
+}
+
+moduleclass = 'python'
diff --git a/n/numpy/numpy-1.15.4-Py-2.7.eb b/n/numpy/numpy-1.15.4-Py-2.7.eb
new file mode 100644
index 00000000..443110c5
--- /dev/null
+++ b/n/numpy/numpy-1.15.4-Py-2.7.eb
@@ -0,0 +1,31 @@
+# IT4Innovations 2018
+
+easyblock = 'PythonPackage'
+
+name = 'numpy'
+version = '1.15.4'
+
+homepage = 'http://www.numpy.org'
+description = """NumPy is the fundamental package needed for scientific computing with Python."""
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = ['https://github.com/numpy/numpy/releases/download/v%(version)s']
+sources = [SOURCE_TAR_GZ]
+
+patch = [
+    'numpy-1.8.1-mkl.patch',
+    'numpy-1.11.0-sse42.patch'
+]
+
+dependencies = [
+    ('mkl', '2017.4.239', '', True),
+]
+
+sanity_check_paths = {'files': [], 'dirs': [
+    'lib/python2.7/site-packages/%(name)s-%(version)s-py2.7-linux-x86_64.egg/numpy'], }
+
+sanity_check_commands = [
+    ('python', '-c "import numpy; assert(numpy.__version__ == \'%(version)s\')"')]
+
+moduleclass = 'python'
diff --git a/p/pbr/pbr-5.1.1-Py-2.7.eb b/p/pbr/pbr-5.1.1-Py-2.7.eb
new file mode 100644
index 00000000..773089a8
--- /dev/null
+++ b/p/pbr/pbr-5.1.1-Py-2.7.eb
@@ -0,0 +1,20 @@
+# IT4Innovations 2018
+
+easyblock = "PythonPackage"
+name = 'pbr'
+version = '5.1.1'
+
+homepage = 'https://pypi.python.org/pypi/enum34'
+description = 'An enumeration is a set of symbolic names (members) bound to unique, constant values.'
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = [PYPI_SOURCE]
+sources = ['pbr-5.1.1.tar.gz']
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': ['lib/python2.7/site-packages/'],
+}
+
+moduleclass = 'python'
diff --git a/p/protobuf-python/protobuf-python-3.6.1-Py-2.7.eb b/p/protobuf-python/protobuf-python-3.6.1-Py-2.7.eb
new file mode 100644
index 00000000..986b764a
--- /dev/null
+++ b/p/protobuf-python/protobuf-python-3.6.1-Py-2.7.eb
@@ -0,0 +1,33 @@
+# IT4Innovations 2017
+
+easyblock = 'PythonPackage'
+
+name = 'protobuf-python'
+version = '3.6.1'
+
+homepage = 'https://github.com/google/protobuf/'
+description = """Python Protocol Buffers runtime library."""
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+
+source_urls = ['https://github.com/google/protobuf/archive/v%(version)s']
+sources = [SOURCE_TAR_GZ]
+
+dependencies = [
+    ('protobuf', version)
+]
+
+# use_setup_py_develop = True
+
+start_dir = 'python'
+
+installopts = '--cpp_implementation'
+
+sanity_check_paths = {
+    'files': [],
+    'dirs': ['lib/python2.7/site-packages'],
+}
+
+options = {'modulename': 'google.protobuf'}
+
+moduleclass = 'devel'
diff --git a/p/protobuf/protobuf-3.6.1-Py-2.7.eb b/p/protobuf/protobuf-3.6.1-Py-2.7.eb
new file mode 100644
index 00000000..f05e2acc
--- /dev/null
+++ b/p/protobuf/protobuf-3.6.1-Py-2.7.eb
@@ -0,0 +1,32 @@
+# IT4Innovations 2018
+
+easyblock = 'ConfigureMake'
+
+name = 'protobuf'
+version = '3.6.1'
+
+homepage = 'https://code.google.com/p/protobuf/'
+description = """Google Protocol Buffers"""
+
+toolchain = {'name': 'Py', 'version': '2.7'}
+toolchainopts = {'pic': True}
+
+sources = ['%(name)s-python-%(version)s.tar.gz']
+source_urls = [
+    'https://github.com/google/protobuf/releases/download/v%(version)s/']
+
+# after instalation: python3 setup.py install --cpp_implementation
+postinstallcmds = [
+    'cp %(builddir)s/%(name)s-%(version)s/  %(installdir)s/build -R',
+]
+
+sanity_check_paths = {
+    'files': ['bin/protoc'],
+    'dirs': [],
+}
+
+modextravars = {
+    'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp',
+}
+
+moduleclass = 'devel'
diff --git a/t/Tensorflow/Tensorflow-1.12.0-GCC-6.3.0-2.27-Py-2.7.eb b/t/Tensorflow/Tensorflow-1.12.0-GCC-6.3.0-2.27-Py-2.7.eb
new file mode 100644
index 00000000..24a33c4a
--- /dev/null
+++ b/t/Tensorflow/Tensorflow-1.12.0-GCC-6.3.0-2.27-Py-2.7.eb
@@ -0,0 +1,42 @@
+# IT4Innovations 2018
+
+easyblock = 'PythonPackage'
+
+name = 'Tensorflow'
+version = '1.12.0'
+versionsuffix = '-Py-2.7'
+
+homepage = 'https://www.tensorflow.org/'
+description = "An open-source software library for Machine Intelligence"
+
+toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'}
+
+#source_urls = ['https://pypi.python.org/packages/1f/38/c255432f18005362dd2459e3bff2b2411eb7d02ca09fa20ee1dd1311f69f/']
+sources = [
+    'tensorflow-%(version)s-cp27-cp27mu-linux_x86_64.whl',
+]
+
+dependencies = [
+    ('Py', '2.7', '', True),
+    ('OpenMPI', '2.1.1'),
+    ('protobuf', '3.6.1', '-Py-2.7', True),
+    ('numpy', '1.15.4', '-Py-2.7', True),
+    ('protobuf-python', '3.6.1', '-Py-2.7', True),
+    ('absl-py', '0.1.10', '-Py-2.7', True),
+    ('enum34', '1.1.6', '-Py-2.7', True),
+    ('Keras_Applications', '1.0.6', '-Py-2.7', True),
+    ('Keras_Preprocessing', '1.0.5', '-Py-2.7', True),
+    ('mock', '2.0.0', '-Py-2.7', True),
+    ('pbr', '5.1.1', '-Py-2.7', True),
+    ('funcsigs', '1.0.2', '-Py-2.7', True),
+]
+
+use_pip = True
+unpack_sources = False
+
+sanity_check_paths = {
+    'files': ['bin/tensorboard'],
+    'dirs': ['lib/python2.7/site-packages/tensorflow-1.12.0.dist-info/'],
+}
+
+moduleclass = 'lib'