summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaman <perfinion@gentoo.org>2019-02-17 21:59:38 +0800
committerJason Zaman <perfinion@gentoo.org>2019-02-18 20:52:09 +0800
commitb7bb43b59e0a499ac97a8717631165d9ff756f06 (patch)
tree0d192e23b3bd7ecedeab0a3972245f23d418da8b /sci-libs
parentsci-visualization/tensorboard: bump 1.12.2 (diff)
downloadgentoo-b7bb43b59e0a499ac97a8717631165d9ff756f06.tar.gz
gentoo-b7bb43b59e0a499ac97a8717631165d9ff756f06.tar.bz2
gentoo-b7bb43b59e0a499ac97a8717631165d9ff756f06.zip
sci-libs/tensorflow-estimator: new package
Signed-off-by: Jason Zaman <perfinion@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/tensorflow-estimator/Manifest1
-rw-r--r--sci-libs/tensorflow-estimator/files/0001-pip_package-modularize-build-script-to-allow-distros.patch153
-rw-r--r--sci-libs/tensorflow-estimator/metadata.xml16
-rw-r--r--sci-libs/tensorflow-estimator/tensorflow-estimator-1.13.0_rc0.ebuild61
4 files changed, 231 insertions, 0 deletions
diff --git a/sci-libs/tensorflow-estimator/Manifest b/sci-libs/tensorflow-estimator/Manifest
new file mode 100644
index 00000000000..410ce339186
--- /dev/null
+++ b/sci-libs/tensorflow-estimator/Manifest
@@ -0,0 +1 @@
+DIST tensorflow-estimator-1.13.0_rc0.tar.gz 531012 BLAKE2B 1398fdec5b81a7bab7ccfb2d37b8094c4ef4b96562e2c6b8b4e565cad3c234245b5d8dfb30a79b73302fc0764b1d3503d4ee2d4363a9d2e635b36fb8e2b726b4 SHA512 c8ad78d0df294c7471f1577880905be08edcc038878e9d197b975f33f91192e9c413d13fa70e8fa1ff760ad6bf6141f199322bf2076568690e75fa38bd5a4cf4
diff --git a/sci-libs/tensorflow-estimator/files/0001-pip_package-modularize-build-script-to-allow-distros.patch b/sci-libs/tensorflow-estimator/files/0001-pip_package-modularize-build-script-to-allow-distros.patch
new file mode 100644
index 00000000000..140e23c84bb
--- /dev/null
+++ b/sci-libs/tensorflow-estimator/files/0001-pip_package-modularize-build-script-to-allow-distros.patch
@@ -0,0 +1,153 @@
+From 897b25418ae0f77bcee7fdd7070d5c22677dc218 Mon Sep 17 00:00:00 2001
+From: Jason Zaman <jason@perfinion.com>
+Date: Sat, 2 Feb 2019 15:19:44 +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 directly 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>
+---
+ .../tools/pip_package/build_pip_package.sh | 73 +++++++++++++++++--
+ 1 file changed, 66 insertions(+), 7 deletions(-)
+
+diff --git a/tensorflow_estimator/tools/pip_package/build_pip_package.sh b/tensorflow_estimator/tools/pip_package/build_pip_package.sh
+index 5d06dd6..1667169 100755
+--- a/tensorflow_estimator/tools/pip_package/build_pip_package.sh
++++ b/tensorflow_estimator/tools/pip_package/build_pip_package.sh
+@@ -23,10 +23,8 @@ function real_path() {
+ is_absolute "$1" && echo "$1" || echo "$PWD/${1#./}"
+ }
+
+-function build_wheel() {
++function prepare_src() {
+ TMPDIR="$1"
+- DEST="$2"
+- PROJECT_NAME="$3"
+
+ mkdir -p "$TMPDIR"
+ echo $(date) : "=== Preparing sources in dir: ${TMPDIR}"
+@@ -67,6 +65,17 @@ function build_wheel() {
+ touch "${TMPDIR}/tensorflow_estimator/contrib/estimator/python/__init__.py"
+ touch "${TMPDIR}/tensorflow_estimator/contrib/estimator/python/estimator/__init__.py"
+ fi
++}
++
++function build_wheel() {
++ if [ $# -lt 2 ] ; then
++ echo "No src and dest dir provided"
++ exit 1
++ fi
++
++ TMPDIR="$1"
++ DEST="$2"
++ PROJECT_NAME="$3"
+
+ pushd ${TMPDIR} > /dev/null
+ echo $(date) : "=== Building wheel"
+@@ -75,15 +84,39 @@ function build_wheel() {
+ cp dist/* ${DEST}
+ popd > /dev/null
+ echo $(date) : "=== Output wheel file is in: ${DEST}"
+- rm -rf "${TMPDIR}"
++}
++
++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 " --project_name <name> set project name to name"
++ echo " --nightly build tensorflow_estimator nightly"
++ echo ""
++ exit 1
+ }
+
+ function main() {
+ NIGHTLY_BUILD=0
++ PROJECT_NAME=""
++ SRCDIR=""
++ DSTDIR=""
++ CLEANSRC=1
+
+ while true; do
+ if [[ -z "$1" ]]; then
+ break
++ elif [[ "$1" == "--help" ]]; then
++ usage
++ exit 1
+ elif [[ "$1" == "--nightly" ]]; then
+ NIGHTLY_BUILD=1
+ elif [[ "$1" == "--project_name" ]]; then
+@@ -92,6 +125,19 @@ function main() {
+ break
+ fi
+ PROJECT_NAME="$1"
++ elif [[ "$1" == "--src" ]]; then
++ shift
++ if [[ -z "$1" ]]; then
++ break
++ fi
++ SRCDIR="$(real_path $1)"
++ CLEANSRC=0
++ elif [[ "$1" == "--dst" ]]; then
++ shift
++ if [[ -z "$1" ]]; then
++ break
++ fi
++ DSTDIR="$(real_path $1)"
+ else
+ DSTDIR="$(real_path $1)"
+ fi
+@@ -105,16 +151,29 @@ function main() {
+ fi
+ fi
+
+- SRCDIR="$(mktemp -d -t tmp.XXXXXXXXXX)"
+-
+- if [[ -z "$DSTDIR" ]]; then
++ 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
+
+ build_wheel "$SRCDIR" "$DSTDIR" "$PROJECT_NAME"
++
++ if [[ $CLEANSRC -ne 0 ]]; then
++ rm -rf "${TMPDIR}"
++ fi
+ }
+
+ main "$@"
+--
+2.19.2
+
diff --git a/sci-libs/tensorflow-estimator/metadata.xml b/sci-libs/tensorflow-estimator/metadata.xml
new file mode 100644
index 00000000000..2d40af6762c
--- /dev/null
+++ b/sci-libs/tensorflow-estimator/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>perfinion@gentoo.org</email>
+ <name>Jason Zaman</name>
+ </maintainer>
+ <longdescription lang="en">
+ TensorFlow Estimator is a high-level TensorFlow API that greatly
+ simplifies machine learning programming. Estimators encapsulate
+ training, evaluation, prediction, and exporting for your model.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">tensorflow/estimator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sci-libs/tensorflow-estimator/tensorflow-estimator-1.13.0_rc0.ebuild b/sci-libs/tensorflow-estimator/tensorflow-estimator-1.13.0_rc0.ebuild
new file mode 100644
index 00000000000..766a3206621
--- /dev/null
+++ b/sci-libs/tensorflow-estimator/tensorflow-estimator-1.13.0_rc0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2019 Jason Zaman
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 python{3_5,3_6} )
+MY_PN="estimator"
+MY_PV=${PV/_rc/-rc}
+MY_P=${MY_PN}-${MY_PV}
+
+inherit bazel distutils-r1 flag-o-matic toolchain-funcs
+
+DESCRIPTION="A high-level TensorFlow API that greatly simplifies machine learning programming"
+HOMEPAGE="https://www.tensorflow.org/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+SRC_URI="https://github.com/tensorflow/${MY_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+RDEPEND="sci-libs/tensorflow[python,${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-java/java-config"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/0001-pip_package-modularize-build-script-to-allow-distros.patch"
+)
+DOCS=( CONTRIBUTING.md README.md )
+
+src_prepare() {
+ bazel_setup_bazelrc
+ default
+}
+
+src_compile() {
+ export JAVA_HOME=$(java-config --jre-home)
+
+ ebazel build //tensorflow_estimator/tools/pip_package:build_pip_package
+ ebazel shutdown
+
+ local srcdir="${T}/src"
+ mkdir -p "${srcdir}" || die
+ bazel-bin/tensorflow_estimator/tools/pip_package/build_pip_package --src "${srcdir}" || die
+}
+
+src_install() {
+ do_install() {
+ cd "${T}/src" || die
+ esetup.py install
+ python_optimize
+ }
+ python_foreach_impl do_install
+
+ cd "${S}" || die
+ einstalldocs
+}