summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO102
-rw-r--r--PKGBUILD223
2 files changed, 236 insertions, 89 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 854834f2a1b7..1ce0a8143074 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,51 +1,115 @@
-# Generated by makepkg 5.1.1
-# Wed Aug 1 14:01:32 UTC 2018
pkgbase = tensorflow-git
pkgdesc = Library for computation using data flow graphs for scalable machine learning
- pkgver = 1.9.0+rc2+1543+gabd645085b
+ pkgver = 1.12.1+54837+g03796cf1dda
pkgrel = 1
url = https://tensorflow.org/
arch = x86_64
- license = Apache2
- makedepends = git
+ license = APACHE
makedepends = bazel
makedepends = python-numpy
- makedepends = gcc7
makedepends = cuda
+ makedepends = nvidia-utils
+ makedepends = nccl
+ makedepends = git
makedepends = cudnn
- makedepends = python-greenlet
makedepends = python-pip
makedepends = python-wheel
makedepends = python-setuptools
- optdepends = cuda: GPU support
- optdepends = cudnn: GPU support
+ makedepends = python-h5py
+ makedepends = python-keras-applications
+ makedepends = python-keras-preprocessing
+ makedepends = cython
+ depends = c-ares
+ depends = intel-mkl
+ depends = onednn
+ depends = pybind11
+ depends = openssl-1.0
+ depends = lmdb
+ depends = libpng
+ depends = curl
+ depends = giflib
+ depends = icu
+ depends = libjpeg-turbo
+ optdepends = tensorboard: Tensorflow visualization toolkit
source = git+https://github.com/tensorflow/tensorflow
md5sums = SKIP
pkgname = tensorflow-git
+ pkgdesc = Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)
provides = tensorflow
conflicts = tensorflow
pkgname = tensorflow-cuda-git
+ pkgdesc = Library for computation using data flow graphs for scalable machine learning (with CUDA)
+ depends = c-ares
+ depends = intel-mkl
+ depends = onednn
+ depends = pybind11
+ depends = openssl-1.0
+ depends = lmdb
+ depends = libpng
+ depends = curl
+ depends = giflib
+ depends = icu
+ depends = libjpeg-turbo
depends = cuda
depends = cudnn
- provides = tensorflow
- conflicts = tensorflow
+ depends = nccl
+ provides = tensorflow-cuda
+ conflicts = tensorflow-cuda
pkgname = python-tensorflow-git
- depends = python
+ depends = c-ares
+ depends = intel-mkl
+ depends = onednn
+ depends = pybind11
+ depends = openssl-1.0
+ depends = lmdb
+ depends = libpng
+ depends = curl
+ depends = giflib
+ depends = icu
+ depends = libjpeg-turbo
+ depends = tensorflow
+ depends = python-termcolor
+ depends = python-astor
+ depends = python-gast
+ depends = python-numpy
depends = python-protobuf
- optdepends = python-werkzeug: for using tensorboard
- provides = python-tensorflow
- conflicts = python-tensorflow
+ depends = absl-py
+ depends = python-h5py
+ depends = python-keras-applications
+ depends = python-keras-preprocessing
+ depends = python-tensorflow-estimator
pkgname = python-tensorflow-cuda-git
- depends = python
+ pkgdesc = Library for computation using data flow graphs for scalable machine learning (with CUDA)
+ depends = c-ares
+ depends = intel-mkl
+ depends = onednn
+ depends = pybind11
+ depends = openssl-1.0
+ depends = lmdb
+ depends = libpng
+ depends = curl
+ depends = giflib
+ depends = icu
+ depends = libjpeg-turbo
+ depends = tensorflow-cuda
+ depends = python-termcolor
+ depends = python-astor
+ depends = python-gast
+ depends = python-numpy
depends = cuda
depends = cudnn
depends = python-pycuda
depends = python-protobuf
- optdepends = python-werkzeug: for using tensorboard
- provides = python-tensorflow
- conflicts = python-tensorflow
+ depends = absl-py
+ depends = nccl
+ depends = python-h5py
+ depends = python-keras-applications
+ depends = python-keras-preprocessing
+ depends = python-tensorflow-estimator
+ provides = python-tensorflow-cuda
+ conflicts = python-tensorflow-cuda
diff --git a/PKGBUILD b/PKGBUILD
index 74f201b4fac6..ba6b7698a8cb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,134 +1,217 @@
-# Maintainer: Adria Arrufat <adria.arrufat+AUR@protonmail.ch>
+# Maintainer: Adria Arrufat <swiftscythe@gmail.com>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Kamil Cukrowski <kamilcukrowski@gmail.com>
pkgbase=tensorflow-git
pkgname=(tensorflow-git tensorflow-cuda-git python-tensorflow-git python-tensorflow-cuda-git)
-pkgver=1.9.0+rc2+1543+gabd645085b
+pkgver=1.12.1+54837+g03796cf1dda
pkgrel=1
pkgdesc="Library for computation using data flow graphs for scalable machine learning"
url="https://tensorflow.org/"
-license=('Apache2')
+license=('APACHE')
arch=('x86_64')
-makedepends=(git bazel python-numpy gcc7 cuda cudnn python-greenlet python-pip python-wheel python-setuptools)
-optdepends=('cuda: GPU support'
- 'cudnn: GPU support')
+depends=('c-ares' 'intel-mkl' 'onednn' 'pybind11' 'openssl-1.0' 'lmdb' 'libpng' 'curl' 'giflib' 'icu' 'libjpeg-turbo')
+makedepends=('bazel' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git'
+ 'cudnn' 'python-pip' 'python-wheel' 'python-setuptools' 'python-h5py'
+ 'python-keras-applications' 'python-keras-preprocessing'
+ 'cython')
+optdepends=('tensorboard: Tensorflow visualization toolkit')
source=("git+https://github.com/tensorflow/tensorflow")
md5sums=('SKIP')
+get_pyver () {
+ python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))'
+}
+
+check_dir() {
+ if [ -d "${1}" ]; then
+ return 0
+ else
+ >&2 echo Directory "${1}" does not exist or is a file! Exiting...
+ exit 1
+ fi
+}
+
pkgver() {
cd ${srcdir}/tensorflow
git describe --tags | sed 's/-/+/g;s/v//;'
}
prepare() {
+ # Allow any bazel version
+ echo "*" > tensorflow/.bazelversion
+
[ -d ${srcdir}/tensorflow-cuda ] && rm -rf ${srcdir}/tensorflow-cuda
- cp -r ${srcdir}/tensorflow ${srcdir}/tensorflow-cuda
+ cp -r ${srcdir}/tensorflow ${srcdir}/tensorflow-cuda
+}
+
+_set_build_env() {
+ # make sure the proxy variables are in all caps, otherwise bazel ignores them
+ export HTTP_PROXY=`echo $http_proxy | sed -e 's/\/$//'`
+ export HTTPS_PROXY=`echo $https_proxy | sed -e 's/\/$//'`
+
# These environment variables influence the behavior of the configure call below.
export PYTHON_BIN_PATH=/usr/bin/python
export USE_DEFAULT_PYTHON_LIB_PATH=1
- export CC_OPT_FLAGS="-march=native"
export TF_NEED_JEMALLOC=1
- export TF_NEED_GCP=0
- export TF_NEED_HDFS=0
+ export TF_NEED_KAFKA=1
+ export TF_NEED_OPENCL_SYCL=0
+ export TF_NEED_AWS=1
+ export TF_NEED_GCP=1
+ export TF_NEED_HDFS=1
+ export TF_NEED_S3=1
export TF_ENABLE_XLA=1
export TF_NEED_GDR=0
export TF_NEED_VERBS=0
export TF_NEED_OPENCL=0
export TF_NEED_MPI=0
- export TF_NEED_S3=0
- export TF_NEED_OPENCL_SYCL=0
- export TF_NEED_KAFKA=0
export TF_NEED_TENSORRT=0
- export TF_NEED_AWS=0
+ export TF_NEED_NGRAPH=0
+ export TF_NEED_IGNITE=0
+ export TF_NEED_ROCM=0
+ # See https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl
+ export TF_SYSTEM_LIBS="boringssl,curl,cython,gif,icu,libjpeg_turbo,lmdb,nasm,pcre,png,pybind11,zlib"
export TF_SET_ANDROID_WORKSPACE=0
export TF_DOWNLOAD_CLANG=0
-
- # make sure the proxy variables are in all caps, otherwise bazel ignores them
- export HTTP_PROXY=`echo $http_proxy | sed -e 's/\/$//'`
- export HTTPS_PROXY=`echo $https_proxy | sed -e 's/\/$//'`
+ export TF_NCCL_VERSION=2.7
+ export TF_IGNORE_MAX_BAZEL_VERSION=1
+ export TF_MKL_ROOT=/opt/intel/mkl
+ export NCCL_INSTALL_PATH=/usr
+ export GCC_HOST_COMPILER_PATH=/usr/bin/gcc
+ export HOST_C_COMPILER=/usr/bin/gcc
+ export HOST_CXX_COMPILER=/usr/bin/g++
+ export TF_CUDA_CLANG=0 # Clang currently disabled because it's not compatible at the moment.
+ export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang
+ export TF_CUDA_PATHS=/opt/cuda,/usr/lib,/usr
+ export TF_CUDA_VERSION=$(/opt/cuda/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p')
+ export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' /usr/include/cudnn_version.h)
+ export TF_CUDA_COMPUTE_CAPABILITIES=5.2,5.3,6.0,6.1,6.2,7.0,7.2,7.5,8.0,8.6
+
+ # Required until https://github.com/tensorflow/tensorflow/issues/39467 is fixed.
+ export CC=gcc
+ export CXX=g++
+
+ export BAZEL_ARGS="--config=mkl -c opt --copt=-I/usr/include/openssl-1.0 --host_copt=-I/usr/include/openssl-1.0 --linkopt=-l:libssl.so.1.0.0 --linkopt=-l:libcrypto.so.1.0.0 --host_linkopt=-l:libssl.so.1.0.0 --host_linkopt=-l:libcrypto.so.1.0.0"
+
+ # Workaround for gcc 10+ warnings related to upb.
+ # See https://github.com/tensorflow/tensorflow/issues/39467
+ export BAZEL_ARGS="$BAZEL_ARGS --host_copt=-Wno-stringop-truncation"
}
build() {
- # _bazel_09_fix="--incompatible_load_argument_is_label=false"
+ _set_build_env
cd ${srcdir}/tensorflow
-
+ export CC_OPT_FLAGS="-march=native -O3"
export TF_NEED_CUDA=0
-
- ./configure
- bazel build --config=opt --jobs=`nproc` //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package # ${_bazel_09_fix}
- bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmp
+ ./configure
+ bazel \
+ build ${BAZEL_ARGS[@]} \
+ //tensorflow:libtensorflow.so \
+ //tensorflow:libtensorflow_cc.so \
+ //tensorflow:install_headers \
+ //tensorflow/tools/pip_package:build_pip_package
+ bazel-bin/tensorflow/tools/pip_package/build_pip_package "${srcdir}"/tmp
cd ${srcdir}/tensorflow-cuda
export TF_NEED_CUDA=1
- export GCC_HOST_COMPILER_PATH=/usr/bin/gcc-7
- export TF_CUDA_CLANG=0
- # export CLANG_CUDA_COMPILER_PATH=/usr/bin/clang
- export CUDA_TOOLKIT_PATH=/opt/cuda
- export TF_CUDA_VERSION=$($CUDA_TOOLKIT_PATH/bin/nvcc --version | sed -n 's/^.*release \(.*\),.*/\1/p')
- export CUDNN_INSTALL_PATH=/opt/cuda
- export TF_CUDNN_VERSION=$(sed -n 's/^#define CUDNN_MAJOR\s*\(.*\).*/\1/p' $CUDNN_INSTALL_PATH/include/cudnn.h)
- export TF_CUDA_COMPUTE_CAPABILITIES=3.0,3.5,5.2,6.1,6.2
- export TF_NCCL_VERSION=1.3
./configure
- bazel build --config=opt --config=cuda --jobs=`nproc` //tensorflow:libtensorflow.so //tensorflow/tools/pip_package:build_pip_package # ${_bazel_09_fix}
- bazel-bin/tensorflow/tools/pip_package/build_pip_package ${srcdir}/tmpcuda
+ bazel \
+ build ${BAZEL_ARGS[@]} \
+ //tensorflow:libtensorflow.so \
+ //tensorflow:libtensorflow_cc.so \
+ //tensorflow:install_headers \
+ //tensorflow/tools/pip_package:build_pip_package
+ bazel-bin/tensorflow/tools/pip_package/build_pip_package --gpu "${srcdir}"/tmpcuda
+}
+
+_package() {
+ # install headers first
+ install -d "${pkgdir}"/usr/include/tensorflow
+ cp -r bazel-bin/tensorflow/include/* "${pkgdir}"/usr/include/tensorflow/
+ # install python-version to get all extra headers
+ WHEEL_PACKAGE=$(find "${srcdir}"/$1 -name "tensor*.whl")
+ pip install --ignore-installed --upgrade --root "${pkgdir}"/ $WHEEL_PACKAGE --no-dependencies
+ # move extra headers to correct location
+ find "${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include -maxdepth 1 -mindepth 1 -type d -print0 | while read -rd $'\0' _folder; do
+ cp -nr "${_folder}" "${pkgdir}"/usr/include/tensorflow/
+ done
+ # clean up unneeded files
+ rm -rf "${pkgdir}"/usr/bin
+ rm -rf "${pkgdir}"/usr/lib
+ rm -rf "${pkgdir}"/usr/share
+
+ # install the rest of tensorflow
+ tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver}
+ sed -e 's/\/include/\/include\/tensorflow/' -i tensorflow.pc
+ install -Dm644 tensorflow.pc "${pkgdir}"/usr/lib/pkgconfig/tensorflow.pc
+ install -Dm755 bazel-bin/tensorflow/libtensorflow.so "${pkgdir}"/usr/lib/libtensorflow.so.${pkgver}
+ ln -s libtensorflow.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow.so.${pkgver:0:1}
+ ln -s libtensorflow.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow.so
+ install -Dm755 bazel-bin/tensorflow/libtensorflow_cc.so "${pkgdir}"/usr/lib/libtensorflow_cc.so.${pkgver}
+ ln -s libtensorflow_cc.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow_cc.so.${pkgver:0:1}
+ ln -s libtensorflow_cc.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow_cc.so
+ install -Dm755 bazel-bin/tensorflow/libtensorflow_framework.so "${pkgdir}"/usr/lib/libtensorflow_framework.so.${pkgver}
+ ln -s libtensorflow_framework.so.${pkgver} "${pkgdir}"/usr/lib/libtensorflow_framework.so.${pkgver:0:1}
+ ln -s libtensorflow_framework.so.${pkgver:0:1} "${pkgdir}"/usr/lib/libtensorflow_framework.so
+ install -Dm644 tensorflow/c/c_api.h "${pkgdir}"/usr/include/tensorflow/tensorflow/c/c_api.h
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
+
+_python_package() {
+ WHEEL_PACKAGE=$(find "${srcdir}"/$1 -name "tensor*.whl")
+ pip install --ignore-installed --upgrade --root "${pkgdir}"/ $WHEEL_PACKAGE --no-dependencies
+
+ # create symlinks to headers
+ find "${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include/ -maxdepth 1 -mindepth 1 -type d -print0 | while read -rd $'\0' _folder; do
+ rm -rf "${_folder}"
+ _smlink="$(basename "${_folder}")"
+ ln -s /usr/include/tensorflow/"${_smlink}" "${pkgdir}/usr/lib/python$(get_pyver)"/site-packages/tensorflow/include/
+ done
+
+ # tensorboard has been separated from upstream but they still install it with
+ # tensorflow. I don't know what kind of sense that makes but we have to clean
+ # it out from this pacakge.
+ rm -rf "${pkgdir}"/usr/bin/tensorboard
+
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}
package_tensorflow-git() {
+ pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CPU optimizations)"
conflicts=(tensorflow)
provides=(tensorflow)
cd ${srcdir}/tensorflow
-
- tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver}
- install -Dm644 tensorflow.pc ${pkgdir}/usr/lib/pkgconfig/tensorflow.pc
- install -Dm755 bazel-bin/tensorflow/libtensorflow.so ${pkgdir}/usr/lib/libtensorflow.so
- install -Dm644 tensorflow/c/c_api.h ${pkgdir}/usr/include/tensorflow/c/c_api.h
- install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/tensorflow/LICENSE
+ _package tmp
+ conflicts=(tensorflow)
+ provides=(tensorflow)
}
package_tensorflow-cuda-git() {
- depends=(cuda cudnn)
- conflicts=(tensorflow)
- provides=(tensorflow)
+ pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)"
+ depends+=(cuda cudnn nccl)
+ conflicts=(tensorflow-cuda)
+ provides=(tensorflow-cuda)
cd ${srcdir}/tensorflow-cuda
-
- tensorflow/c/generate-pc.sh --prefix=/usr --version=${pkgver}
- install -Dm644 tensorflow.pc ${pkgdir}/usr/lib/pkgconfig/tensorflow.pc
- install -Dm755 bazel-bin/tensorflow/libtensorflow.so ${pkgdir}/usr/lib/libtensorflow.so
- install -Dm644 tensorflow/c/c_api.h ${pkgdir}/usr/include/tensorflow/c/c_api.h
- install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/tensorflow/LICENSE
+ _package tmpcuda
}
package_python-tensorflow-git() {
- depends=(python python-protobuf)
- conflicts=(python-tensorflow)
- provides=(python-tensorflow)
- optdepends=('python-werkzeug: for using tensorboard')
+ depends+=(tensorflow python-termcolor python-astor python-gast python-numpy python-protobuf absl-py python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator)
cd ${srcdir}/tensorflow
-
- WHEEL_PACKAGE=$(find ${srcdir}/tmpcuda -name "tensor*.whl")
- pip install --ignore-installed --upgrade --root $pkgdir/ $WHEEL_PACKAGE --no-dependencies
- rm -rf ${pkgdir}/usr/bin/tensorboard
-
- install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/python-tensorflow/LICENSE
+ _python_package tmp
}
package_python-tensorflow-cuda-git() {
- depends=(python cuda cudnn python-pycuda python-protobuf)
- conflicts=(python-tensorflow)
- provides=(python-tensorflow)
- optdepends=('python-werkzeug: for using tensorboard')
+ pkgdesc="Library for computation using data flow graphs for scalable machine learning (with CUDA)"
+ depends+=(tensorflow-cuda python-termcolor python-astor python-gast python-numpy cuda cudnn python-pycuda python-protobuf absl-py nccl python-h5py python-keras-applications python-keras-preprocessing python-tensorflow-estimator)
+ conflicts=(python-tensorflow-cuda)
+ provides=(python-tensorflow-cuda)
cd ${srcdir}/tensorflow-cuda
-
- WHEEL_PACKAGE=$(find ${srcdir}/tmpcuda -name "tensor*.whl")
- pip install --ignore-installed --upgrade --root $pkgdir/ $WHEEL_PACKAGE --no-dependencies
- rm -rf ${pkgdir}/usr/bin/tensorboard
-
- install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/python-tensorflow/LICENSE
+ _python_package tmpcuda
}
# vim:set ts=2 sw=2 et: