summaryrefslogtreecommitdiff
path: root/sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-05-02 14:13:35 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-05-02 14:13:35 +0100
commit7c7c2c9727d6b2ff30945b5aea0d575e1c406d8b (patch)
treebac2a67fb24ac0836147fe370d30e1610ae1845d /sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch
parent2f8db31405fac68eea6f7257d58529243815033b (diff)
gentoo resync : 02.05.2018
Diffstat (limited to 'sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch')
-rw-r--r--sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch211
1 files changed, 211 insertions, 0 deletions
diff --git a/sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch b/sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch
new file mode 100644
index 000000000000..ae17b4f46955
--- /dev/null
+++ b/sci-libs/tensorflow/files/0001-pip_package-modularize-build-script-to-allow-distros.patch
@@ -0,0 +1,211 @@
+From 226dbf58ec54af0a44ec73b3a39ec5bee7cc8454 Mon Sep 17 00:00:00 2001
+From: Jason Zaman <jason@perfinion.com>
+Date: Tue, 1 May 2018 19:55:53 +0800
+Subject: [PATCH] pip_package: modularize build script to allow distros to
+ install more flexibly
+
+Gentoo Linux handles python modules slightly differently and packaging
+wheels is complicated. We prefer to run setup.py ourselves rather than
+build a wheel and then install from there.
+
+This modularizes build_pip_package.sh to allow running parts separately.
+using --src srcdir will prepare the package in a known dir so the distro
+package can take it from there. If only dstdir is given (either with
+--dst or as the only argument to preserve backwards compat) then
+behaviour is the same as before, the sources are prepared and the wheel
+is built and placed in dstdir.
+
+Signed-off-by: Jason Zaman <jason@perfinion.com>
+---
+ tensorflow/tools/pip_package/build_pip_package.sh | 141 ++++++++++++++++------
+ 1 file changed, 105 insertions(+), 36 deletions(-)
+
+diff --git a/tensorflow/tools/pip_package/build_pip_package.sh b/tensorflow/tools/pip_package/build_pip_package.sh
+index 3af79ee170..135846519c 100755
+--- a/tensorflow/tools/pip_package/build_pip_package.sh
++++ b/tensorflow/tools/pip_package/build_pip_package.sh
+@@ -41,42 +41,15 @@ function is_windows() {
+ fi
+ }
+
+-function main() {
++function prepare_src() {
+ if [ $# -lt 1 ] ; then
+ echo "No destination dir provided"
+ exit 1
+ fi
+
+- DEST=$(real_path $1)
+- TMPDIR=$(mktemp -d -t tmp.XXXXXXXXXX)
+-
+- PKG_NAME_FLAG=""
+- GPU_BUILD=0
+- NIGHTLY_BUILD=0
+- while true; do
+- if [[ "$1" == "--nightly_flag" ]]; then
+- NIGHTLY_BUILD=1
+- elif [[ "$1" == "--gpu" ]]; then
+- GPU_BUILD=1
+- elif [[ "$1" == "--gpudirect" ]]; then
+- PKG_NAME_FLAG="--project_name tensorflow_gpudirect"
+- fi
+- shift
+-
+- if [[ -z "$1" ]]; then
+- break
+- fi
+- done
+-
+- if [[ ${NIGHTLY_BUILD} == "1" && ${GPU_BUILD} == "1" ]]; then
+- PKG_NAME_FLAG="--project_name tf_nightly_gpu"
+- elif [[ ${NIGHTLY_BUILD} == "1" ]]; then
+- PKG_NAME_FLAG="--project_name tf_nightly"
+- elif [[ ${GPU_BUILD} == "1" ]]; then
+- PKG_NAME_FLAG="--project_name tensorflow_gpu"
+- fi
+-
+- echo $(date) : "=== Using tmpdir: ${TMPDIR}"
++ TMPDIR="$1"
++ mkdir -p "$TMPDIR"
++ echo $(date) : "=== Preparing sources in dir: ${TMPDIR}"
+
+ if [ ! -d bazel-bin/tensorflow ]; then
+ echo "Could not find bazel-bin. Did you run from the root of the build tree?"
+@@ -148,17 +121,28 @@ function main() {
+ # over so user defined ops can be compiled.
+ mkdir -p ${TMPDIR}/google
+ mkdir -p ${TMPDIR}/third_party
+- pushd ${RUNFILES%org_tensorflow}
++ pushd ${RUNFILES%org_tensorflow} > /dev/null
+ for header in $(find protobuf_archive -name \*.h); do
+ mkdir -p "${TMPDIR}/google/$(dirname ${header})"
+ cp "$header" "${TMPDIR}/google/$(dirname ${header})/"
+ done
+- popd
++ popd > /dev/null
+ cp -R $RUNFILES/third_party/eigen3 ${TMPDIR}/third_party
+
+ cp tensorflow/tools/pip_package/MANIFEST.in ${TMPDIR}
+ cp tensorflow/tools/pip_package/README ${TMPDIR}
+ cp tensorflow/tools/pip_package/setup.py ${TMPDIR}
++}
++
++function build_wheel() {
++ if [ $# -lt 2 ] ; then
++ echo "No src and dest dir provided"
++ exit 1
++ fi
++
++ TMPDIR="$1"
++ DEST="$2"
++ PKG_NAME_FLAG="$3"
+
+ # Before we leave the top-level directory, make sure we know how to
+ # call python.
+@@ -166,15 +150,100 @@ function main() {
+ source tools/python_bin_path.sh
+ fi
+
+- pushd ${TMPDIR}
++ pushd ${TMPDIR} > /dev/null
+ rm -f MANIFEST
+ echo $(date) : "=== Building wheel"
+ "${PYTHON_BIN_PATH:-python}" setup.py bdist_wheel ${PKG_NAME_FLAG} >/dev/null
+ mkdir -p ${DEST}
+ cp dist/* ${DEST}
+- popd
+- rm -rf ${TMPDIR}
++ popd > /dev/null
+ echo $(date) : "=== Output wheel file is in: ${DEST}"
+ }
+
++function usage() {
++ echo "Usage:"
++ echo "$0 [--src srcdir] [--dst dstdir] [options]"
++ echo "$0 dstdir [options]"
++ echo ""
++ echo " --src prepare sources in srcdir"
++ echo " will use temporary dir if not specified"
++ echo ""
++ echo " --dst build wheel in dstdir"
++ echo " if dstdir is not set do not build, only prepare sources"
++ echo ""
++ echo " Options:"
++ echo " --gpu build tensorflow_gpu"
++ echo " --gpudirect build tensorflow_gpudirect"
++ echo " --nightly_flag build tensorflow nightly"
++ echo ""
++ exit 1
++}
++
++function main() {
++ PKG_NAME_FLAG=""
++ GPU_BUILD=0
++ NIGHTLY_BUILD=0
++ SRCDIR=""
++ DSTDIR=""
++ CLEANSRC=1
++ while true; do
++ if [[ "$1" == "--help" ]]; then
++ usage
++ exit 1
++ elif [[ "$1" == "--nightly_flag" ]]; then
++ NIGHTLY_BUILD=1
++ elif [[ "$1" == "--gpu" ]]; then
++ GPU_BUILD=1
++ elif [[ "$1" == "--gpudirect" ]]; then
++ PKG_NAME_FLAG="--project_name tensorflow_gpudirect"
++ elif [[ "$1" == "--src" ]]; then
++ shift
++ SRCDIR="$(real_path $1)"
++ CLEANSRC=0
++ elif [[ "$1" == "--dst" ]]; then
++ shift
++ DSTDIR="$(real_path $1)"
++ else
++ DSTDIR="$(real_path $1)"
++ fi
++ shift
++
++ if [[ -z "$1" ]]; then
++ break
++ fi
++ done
++
++ if [[ -z "$DSTDIR" ]] && [[ -z "$SRCDIR" ]]; then
++ echo "No destination dir provided"
++ usage
++ exit 1
++ fi
++
++ if [[ -z "$SRCDIR" ]]; then
++ # make temp srcdir if none set
++ SRCDIR="$(mktemp -d -t tmp.XXXXXXXXXX)"
++ fi
++
++ prepare_src "$SRCDIR"
++
++ if [[ -z "$DSTDIR" ]]; then
++ # only want to prepare sources
++ exit
++ fi
++
++ if [[ ${NIGHTLY_BUILD} == "1" && ${GPU_BUILD} == "1" ]]; then
++ PKG_NAME_FLAG="--project_name tf_nightly_gpu"
++ elif [[ ${NIGHTLY_BUILD} == "1" ]]; then
++ PKG_NAME_FLAG="--project_name tf_nightly"
++ elif [[ ${GPU_BUILD} == "1" ]]; then
++ PKG_NAME_FLAG="--project_name tensorflow_gpu"
++ fi
++
++ build_wheel "$SRCDIR" "$DSTDIR" "$PKG_NAME_FLAG"
++
++ if [[ $CLEANSRC -ne 0 ]]; then
++ rm -rf ${TMPDIR}
++ fi
++}
++
+ main "$@"
+--
+2.16.1
+