[arch-commits] Commit in tensorflow/trunk (PKGBUILD glibc-2.30.patch python-3.8.patch)

Evangelos Foutras foutrelis at archlinux.org
Sun Oct 27 20:38:35 UTC 2019


    Date: Sunday, October 27, 2019 @ 20:38:34
  Author: foutrelis
Revision: 520797

Python 3.8 rebuild

Added:
  tensorflow/trunk/glibc-2.30.patch
  tensorflow/trunk/python-3.8.patch
Modified:
  tensorflow/trunk/PKGBUILD

------------------+
 PKGBUILD         |   15 ++++++--
 glibc-2.30.patch |   89 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 python-3.8.patch |   70 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 170 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-10-27 19:46:20 UTC (rev 520796)
+++ PKGBUILD	2019-10-27 20:38:34 UTC (rev 520797)
@@ -7,18 +7,22 @@
 pkgname=(tensorflow tensorflow-opt tensorflow-cuda tensorflow-opt-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda python-tensorflow-opt-cuda)
 pkgver=2.0.0
 _pkgver=2.0.0
-pkgrel=2
+pkgrel=3
 pkgdesc="Library for computation using data flow graphs for scalable machine learning"
 url="https://www.tensorflow.org/"
 license=('APACHE')
 arch=('x86_64')
 depends=('c-ares')
-makedepends=('bazel' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' 'gcc'
+makedepends=('bazel<1' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' 'gcc'
              'cudnn' 'python-pip' 'python-wheel' 'python-setuptools' 'python-h5py'
              'python-keras-applications' 'python-keras-preprocessing')
 optdepends=('tensorboard: Tensorflow visualization toolkit')
-source=("https://github.com/tensorflow/tensorflow/archive/v${_pkgver}.tar.gz")
-sha512sums=('c3a2cb9673d2ade8e83961f7d944165123d0e4d94e6ca4d8fdee4f02f536893b879bbbf78d3ad5e557467b58f97f7194f2d9cfc64d7d05540969be732070eecc')
+source=("https://github.com/tensorflow/tensorflow/archive/v${_pkgver}.tar.gz"
+        'python-3.8.patch'
+        'glibc-2.30.patch')
+sha512sums=('c3a2cb9673d2ade8e83961f7d944165123d0e4d94e6ca4d8fdee4f02f536893b879bbbf78d3ad5e557467b58f97f7194f2d9cfc64d7d05540969be732070eecc'
+            'ef06196f1a7f5a4dff4d83916566dae8f2f2c2993ddcd40017583020dd9bfc73ef426c45b0cc5630d1dd53321b99736f2c60b37bb9370be02174c1209e041ffb'
+            'a9345b7206e9f8ae9fc33987997808dcdeaf3e4c05caf40785bba2a9ef2292e20046bfd54ce05fee2ccd11ded9d8e918b2a131d830a7e238406e6ddf222e830e')
 
 get_pyver () {
     python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))'
@@ -25,6 +29,9 @@
 }
 
 prepare() {
+  patch -Np1 -d tensorflow-${_pkgver} <python-3.8.patch
+  patch -Np1 -d tensorflow-${_pkgver} <glibc-2.30.patch
+
   cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt
   cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-cuda
   cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt-cuda

Added: glibc-2.30.patch
===================================================================
--- glibc-2.30.patch	                        (rev 0)
+++ glibc-2.30.patch	2019-10-27 20:38:34 UTC (rev 520797)
@@ -0,0 +1,89 @@
+From 7bf3f05197bb6d71beba9dcd0ac83ddfcf7f1919 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia at windriver.com>
+Date: Fri, 23 Aug 2019 13:54:52 +0000
+Subject: [PATCH] grpc: Define gettid() only for glibc < 2.30
+
+glibc 2.30 has added this API, so let us use that when possible
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
+---
+ tensorflow/workspace.bzl                      |  1 +
+ ...01-Define-gettid-only-for-glibc-2.30.patch | 52 +++++++++++++++++++
+ 2 files changed, 53 insertions(+)
+ create mode 100644 third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch
+
+diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
+index 788eca2f67..8a37fe5643 100755
+--- a/tensorflow/workspace.bzl
++++ b/tensorflow/workspace.bzl
+@@ -475,6 +475,7 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""):
+         sha256 = "1aa84387232dda273ea8fdfe722622084f72c16f7b84bfc519ac7759b71cdc91",
+         strip_prefix = "grpc-69b6c047bc767b4d80e7af4d00ccb7c45b683dae",
+         system_build_file = clean_dep("//third_party/systemlibs:grpc.BUILD"),
++        patch_file = clean_dep("//third_party/systemlibs:0001-Define-gettid-only-for-glibc-2.30.patch"),
+         urls = [
+             "https://mirror.bazel.build/github.com/grpc/grpc/archive/69b6c047bc767b4d80e7af4d00ccb7c45b683dae.tar.gz",
+             "https://github.com/grpc/grpc/archive/69b6c047bc767b4d80e7af4d00ccb7c45b683dae.tar.gz",
+diff --git a/third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch b/third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch
+new file mode 100644
+index 0000000000..30f1d7b252
+--- /dev/null
++++ b/third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch
+@@ -0,0 +1,52 @@
++From 1d630079c3d1013baebd19060f4e6050112cb66d Mon Sep 17 00:00:00 2001
++From: Hongxu Jia <hongxu.jia at windriver.com>
++Date: Fri, 23 Aug 2019 13:52:01 +0000
++Subject: [PATCH] Define gettid() only for glibc < 2.30
++
++glibc 2.30 has added this API, so let us use that when possible
++
++Upstream-Status: Pending
++Signed-off-by: Khem Raj <raj.khem at gmail.com>
++
++Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
++---
++ src/core/lib/gpr/log_linux.cc          | 4 ++++
++ src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++++
++ 2 files changed, 8 insertions(+)
++
++diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
++index 561276f..25a7486 100644
++--- a/src/core/lib/gpr/log_linux.cc
+++++ b/src/core/lib/gpr/log_linux.cc
++@@ -40,7 +40,11 @@
++ #include <time.h>
++ #include <unistd.h>
++ 
+++#if defined(__GLIBC__) && (__GLIBC_MINOR__ >= 29)
+++#include <unistd.h>
+++#else
++ static long gettid(void) { return syscall(__NR_gettid); }
+++#endif
++ 
++ void gpr_log(const char* file, int line, gpr_log_severity severity,
++              const char* format, ...) {
++diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
++index 06a382c..ec321f2 100644
++--- a/src/core/lib/iomgr/ev_epollex_linux.cc
+++++ b/src/core/lib/iomgr/ev_epollex_linux.cc
++@@ -1150,8 +1150,12 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
++ }
++ 
++ #ifndef NDEBUG
+++#if defined(__GLIBC__) && (__GLIBC_MINOR__ >= 29)
+++#include <unistd.h>
+++#else
++ static long gettid(void) { return syscall(__NR_gettid); }
++ #endif
+++#endif
++ 
++ /* pollset->mu lock must be held by the caller before calling this.
++    The function pollset_work() may temporarily release the lock (pollset->po.mu)
++-- 
++2.17.1
++
+-- 
+2.17.1
+

Added: python-3.8.patch
===================================================================
--- python-3.8.patch	                        (rev 0)
+++ python-3.8.patch	2019-10-27 20:38:34 UTC (rev 520797)
@@ -0,0 +1,70 @@
+From 3a48a5c1541daa1fc3f49b9dbe0da247e7cd90f3 Mon Sep 17 00:00:00 2001
+From: Yong Tang <yong.tang.github at outlook.com>
+Date: Mon, 21 Oct 2019 14:39:33 +0000
+Subject: [PATCH] Fix build failures for python 3.8
+
+This fix tries to address the issue raised in 33543 where
+tensorflow build on python 3.8 failed.
+
+This fix fixed the issue as was suggested in 33543 and pip
+builds finished successfully.
+
+NOTE: tensorflow depends on h5py which does not have python 3.8
+support yet, as such a release version of tensorflow for python 3.8
+may have to wait for h5py first.
+
+Signed-off-by: Yong Tang <yong.tang.github at outlook.com>
+---
+ tensorflow/python/eager/pywrap_tfe_src.cc           | 4 ++--
+ tensorflow/python/lib/core/bfloat16.cc              | 2 +-
+ tensorflow/python/lib/core/ndarray_tensor_bridge.cc | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tensorflow/python/eager/pywrap_tfe_src.cc b/tensorflow/python/eager/pywrap_tfe_src.cc
+index cfae44af209f..109bfe0579b0 100644
+--- a/tensorflow/python/eager/pywrap_tfe_src.cc
++++ b/tensorflow/python/eager/pywrap_tfe_src.cc
+@@ -1431,7 +1431,7 @@ static PyTypeObject TFE_Py_Tape_Type = {
+     sizeof(TFE_Py_Tape),                          /* tp_basicsize */
+     0,                                            /* tp_itemsize */
+     &TFE_Py_Tape_Delete,                          /* tp_dealloc */
+-    nullptr,                                      /* tp_print */
++    0,                                            /* tp_print */
+     nullptr,                                      /* tp_getattr */
+     nullptr,                                      /* tp_setattr */
+     nullptr,                                      /* tp_reserved */
+@@ -1469,7 +1469,7 @@ static PyTypeObject TFE_Py_ForwardAccumulator_Type = {
+     sizeof(TFE_Py_ForwardAccumulator),                      /* tp_basicsize */
+     0,                                                      /* tp_itemsize */
+     &TFE_Py_ForwardAccumulatorDelete,                       /* tp_dealloc */
+-    nullptr,                                                /* tp_print */
++    0,                                                      /* tp_print */
+     nullptr,                                                /* tp_getattr */
+     nullptr,                                                /* tp_setattr */
+     nullptr,                                                /* tp_reserved */
+diff --git a/tensorflow/python/lib/core/bfloat16.cc b/tensorflow/python/lib/core/bfloat16.cc
+index fde3a8377028..54be76375c9c 100644
+--- a/tensorflow/python/lib/core/bfloat16.cc
++++ b/tensorflow/python/lib/core/bfloat16.cc
+@@ -317,7 +317,7 @@ PyTypeObject PyBfloat16_Type = {
+     sizeof(PyBfloat16),                        // tp_basicsize
+     0,                                         // tp_itemsize
+     nullptr,                                   // tp_dealloc
+-    nullptr,                                   // tp_print
++    0,                                         // tp_print
+     nullptr,                                   // tp_getattr
+     nullptr,                                   // tp_setattr
+     nullptr,                                   // tp_compare / tp_reserved
+diff --git a/tensorflow/python/lib/core/ndarray_tensor_bridge.cc b/tensorflow/python/lib/core/ndarray_tensor_bridge.cc
+index 16f693418615..03ff77100d2e 100644
+--- a/tensorflow/python/lib/core/ndarray_tensor_bridge.cc
++++ b/tensorflow/python/lib/core/ndarray_tensor_bridge.cc
+@@ -86,7 +86,7 @@ PyTypeObject TensorReleaserType = {
+     0,                                /* tp_itemsize */
+     /* methods */
+     TensorReleaser_dealloc,      /* tp_dealloc */
+-    nullptr,                     /* tp_print */
++    0,                           /* tp_print */
+     nullptr,                     /* tp_getattr */
+     nullptr,                     /* tp_setattr */
+     nullptr,                     /* tp_compare */



More information about the arch-commits mailing list