17
0
Files
tensorflow-lite/tensorflow-lite.spec

253 lines
11 KiB
RPMSpec
Raw Permalink Normal View History

#
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
# spec file for package tensorflow-lite
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# https://en.opensuse.org/openSUSE:LTO#Static_libraries
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
%define pythons python3
Name: tensorflow-lite
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
Version: 2.10.0
Release: 0
Summary: A framework used for deep learning for mobile and embedded devices
License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND MIT AND MPL-2.0
Group: Development/Languages/Python
URL: https://www.tensorflow.org/
Source0: https://github.com/tensorflow/tensorflow/archive/v%{version}.tar.gz#/tensorflow-%{version}.tar.gz
# IMPORTANT
# Although some of the following libraries are available in Factory, they can
# not be used as explicit versions are needed which differ from the Factory ones.
# License10: MIT
Source10: https://github.com/google/farmhash/archive/0d859a811870d10f53a594927d0d0b97573ad06d.tar.gz#/farmhash.tar.gz
# License11: Apache-2.0
Source11: https://github.com/google/gemmlowp/archive/fda83bdc38b118cc6b56753bd540caa49e570745.zip#/gemmlowp.zip
# License12: Apache-2.0
Source12: https://github.com/abseil/abseil-cpp/archive/997aaf3a28308eba1b9156aa35ab7bca9688e9f6.tar.gz#/abseil-cpp.tar.gz
# License13: MPL-2.0
# NOTE: tensorflow only uses MPL-2.0 part of eigen
Source13: https://gitlab.com/libeigen/eigen/-/archive/7792b1e909a98703181aecb8810b4b654004c25d/eigen-7792b1e909a98703181aecb8810b4b654004c25d.tar.gz#/eigen.tar.gz
# License14: BSD-2-Clause
Source14: https://github.com/intel/ARM_NEON_2_x86_SSE/archive/1200fe90bb174a6224a525ee60148671a786a71f.tar.gz#/arm_neon_2_x86_sse.tar.gz
# Deps sources for Tensorflow-Lite (use same eigen, gemmlowp and abseil_cpp packages as non lite version)
# License15: Apache-2.0
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
Source15: https://github.com/google/flatbuffers/archive/v2.0.6.tar.gz#/flatbuffers.tar.gz
# License16: BSD like
Source16: https://storage.googleapis.com/mirror.tensorflow.org/github.com/petewarden/OouraFFT/archive/v1.0.tar.gz#/fft2d.tgz
# Source17: Apache-2.0
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
Source17: https://github.com/google/ruy/archive/841ea4172ba904fe3536789497f9565f2ef64129.zip#/ruy.zip
# License18: BSD-3-Clause
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
Source18: https://github.com/google/XNNPACK/archive/6b409ac0a3090ebe74d0cdfb494c4cd91485ad39.zip#/xnnpack.zip
# transitive tensorflow-lite dependencies for xnnpack
# License21: BSD 2-Clause
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
Source21: https://github.com/pytorch/cpuinfo/archive/5e63739504f0f8e18e941bd63b2d6d42536c7d90.tar.gz#/cpuinfo.tar.gz
# NOTE: the github url is non-deterministic for the following zipfile archives (!?) Content is the same, but the hashes of the zipfiles differ.
# License30: MIT
# Source30: https://github.com/Maratyszcza/FP16/archive/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.zip #/FP16.zip
Source30: FP16.zip
# License31: MIT
# Source31: https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.zip #/FXdiv.zip
Source31: FXdiv.zip
# License32: BSD-2-Clause
# Source32: https://github.com/Maratyszcza/pthreadpool/archive/545ebe9f225aec6dca49109516fac02e973a3de2.zip #/pthreadpool.zip
Source32: pthreadpool.zip
# License83: MIT
# Source83: https://github.com/Maratyszcza/psimd/archive/072586a71b55b7f8c584153d223e95687148a900.zip #/psimd.zip
Source33: psimd.zip
# PATCH-FIX-OPENSUSE tensorflow-lite-cmake-find-python.patch -- Let CMake find the includedirs and linker flags, code@bnavigator.de
Patch0: tensorflow-lite-cmake-find-python.patch
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc12
BuildRequires: gcc12-c++
BuildRequires: gcc12-fortran
BuildRequires: git
# We use some macros here but not singlespec
BuildRequires: python-rpm-macros
BuildRequires: python3-devel >= 3.7
BuildRequires: python3-numpy-devel >= 1.19.2
BuildRequires: python3-pybind11-devel
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
BuildRequires: python3-setuptools
BuildRequires: unzip
Provides: python3-tflite-runtime = %{version}-%{release}
Provides: python3-tflite_runtime = %{version}-%{release}
Provides: tensorflow2-lite = %{version}-%{release}
Obsoletes: tensorflow2-lite < %{version}-%{release}
Requires: python3-numpy >= 1.19.2
# just use rpmlint
# there are some serious compiler warnings, regarding no-return-in-nonvoid-function
#!BuildRequires: -post-build-checks
ExcludeArch: %ix86
%description
TensorFlow is an end-to-end open source platform for machine learning.
The Tensorflow Lite package is a fraction the size of the full tensorflow package
and includes the bare minimum code required to run inferences with TensorFlow Lite
primarily the Interpreter Python class. This small package is for when all you
want to do is execute .tflite models and avoid wasting disk space with the large
TensorFlow library.
%package devel
Summary: Header files of tensorflow
Group: Development/Languages/Python
Requires: %{name} = %{version}
Provides: tensorflow2-lite-devel = %{version}-%{release}
Obsoletes: tensorflow2-lite-devel < %{version}-%{release}
%description devel
TensorFlow is an end-to-end open source platform for machine learning.
The Tensorflow Lite package is a fraction the size of the full tensorflow package
and includes the bare minimum code required to run inferences with TensorFlow Lite
primarily the Interpreter Python class. This small package is for when all you
want to do is execute .tflite models and avoid wasting disk space with the large
TensorFlow library.
This package provides necessary headers for the C/C++ Api using TensorFlow Lite.
As well as the static libtensorflow-lite.a for use in your own projects without the
Python interpreter.
%prep
# unpack tensorflow
%autosetup -p1 -n tensorflow-%{version}
# remove shebang
sed -i '1{/env python/d}' tensorflow/lite/tools/visualize.py
# prepare third-party sources, transitive dependencies of FP16
unzip %{SOURCE30} -d third_party/FP16
unzip %{SOURCE31} -d third_party/FP16
unzip %{SOURCE32} -d third_party/FP16
unzip %{SOURCE33} -d third_party/FP16
mkdir tflite-build
pushd tflite-build
# Build a python package source tree. Adapted from tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh
TENSORFLOW_LITE_DIR=%{_builddir}/tensorflow-%{version}/tensorflow/lite
cp -r "${TENSORFLOW_LITE_DIR}/tools/pip_package/MANIFEST.in" \
"${TENSORFLOW_LITE_DIR}/python/interpreter_wrapper" \
./
cp "${TENSORFLOW_LITE_DIR}/tools/pip_package/setup_with_binary.py" setup.py
mkdir tflite_runtime
cp "${TENSORFLOW_LITE_DIR}/python/interpreter.py" \
"${TENSORFLOW_LITE_DIR}/python/metrics/metrics_interface.py" \
"${TENSORFLOW_LITE_DIR}/python/metrics/metrics_portable.py" \
tflite_runtime
echo "__version__ = '%{version}'" >> "tflite_runtime/__init__.py"
echo "__git_version__ = '%{version}-susebuild'" >> "tflite_runtime/__init__.py"
popd
%build
# --- Build tensorflow-lite as part of the minimal executable ---
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
# -Werror=return-type fails in xnnpack
%global optflags %(echo %{optflags} | sed s/-Werror=return-type//)
pushd tflite-build
%cmake ../../tensorflow/lite/examples/minimal \
-DBUILD_STATIC_LIBS:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DOVERRIDABLE_FETCH_CONTENT_farmhash_URL=%{SOURCE10} \
-DOVERRIDABLE_FETCH_CONTENT_gemmlowp_URL=%{SOURCE11} \
-DOVERRIDABLE_FETCH_CONTENT_abseil-cpp_URL=%{SOURCE12} \
-DOVERRIDABLE_FETCH_CONTENT_eigen_URL=%{SOURCE13} \
-DINCLUDE_INSTALL_DIR:PATH=include/eigen3 \
-DOVERRIDABLE_FETCH_CONTENT_neon2sse_URL=%{SOURCE14} \
-DOVERRIDABLE_FETCH_CONTENT_flatbuffers_URL=%{SOURCE15} \
-DOVERRIDABLE_FETCH_CONTENT_fft2d_URL=%{SOURCE16} \
-DOVERRIDABLE_FETCH_CONTENT_ruy_URL=%{SOURCE17} \
-DOVERRIDABLE_FETCH_CONTENT_xnnpack_URL=%{SOURCE18} \
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
-DOVERRIDABLE_FETCH_CONTENT_clog_URL=%{SOURCE21} \
-DOVERRIDABLE_FETCH_CONTENT_cpuinfo_URL=%{SOURCE21} \
-DFP16_SOURCE_DIR:PATH=$(realpath ../../third_party/FP16/FP16-*) \
-DFXDIV_SOURCE_DIR:PATH=$(realpath ../../third_party/FP16/FXdiv-*) \
-DPTHREADPOOL_SOURCE_DIR:PATH=$(realpath ../../third_party/FP16/pthreadpool-*) \
-DPSIMD_SOURCE_DIR:PATH=$(realpath ../../third_party/FP16/psimd-*) \
%ifarch %arm aarch64
-DTFLITE_ENABLE_XNNPACK:BOOL=OFF \
%endif
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 \
%{nil}
%cmake_build all _pywrap_tensorflow_interpreter_wrapper
# get the wrapper compiled above
cd ..
cp build/tensorflow-lite/_pywrap_tensorflow_interpreter_wrapper.so tflite_runtime/
export PROJECT_NAME=tflite_runtime
export PACKAGE_VERSION=%{version}
# avoid python builddir-shuffle
echo "python3" > _current_flavor
%python3_build
popd
%install
pushd tflite-build/build
install -D minimal %{buildroot}%{_bindir}/tflite_minimal
install -D tensorflow-lite/libtensorflow-lite.a %{buildroot}%{_libdir}/libtensorflow-lite.a
# Disable spurious-executable-perm
chmod -x %{buildroot}%{_libdir}/libtensorflow-lite.a
popd
for file in `find tensorflow/lite -name \*.h`; do
# Package header files - boo#1175099
install -D $file %{buildroot}%{_includedir}/$file
# Disable spurious-executable-perm
chmod -x %{buildroot}%{_includedir}/$file
done
install -D tensorflow/lite/schema/schema.fbs %{buildroot}%{_includedir}/tensorflow/lite/schema/schema.fbs
chmod -x %{buildroot}%{_includedir}/tensorflow/lite/schema/schema.fbs
install -D tensorflow/core/public/version.h %{buildroot}%{_includedir}/tensorflow/core/public/version.h
chmod -x %{buildroot}%{_includedir}/tensorflow/core/public/version.h
# Install tensorflow-lite.pc
mkdir -p %{buildroot}%{_libdir}/pkgconfig
cat <<EOF > %{buildroot}%{_libdir}/pkgconfig/tensorflow-lite.pc
Name: tensorflow lite
Description: tensorflow lite static library
Version: %{version}
Libs: -L%{_libdir} -ltensorflow-lite -lflatbuffers
Cflags: -I%{_includedir}
EOF
# Some tools expect tensorflow2-lite.pc
pushd %{buildroot}%{_libdir}/pkgconfig
ln -s tensorflow-lite.pc tensorflow2-lite.pc
popd
pushd tflite-build
# avoid auto-discovered python packaging of abseil files
rm build/lib/pkgconfig/absl_absl_*
rmdir build/lib/pkgconfig
export PROJECT_NAME=tflite_runtime
export PACKAGE_VERSION=%{version}
%python3_install --install-lib %{python3_sitearch}
Accepting request 1005091 from home:bnavigator:branches:science:machinelearning - Update to 2.10.0 * boo#1203507 (CVE-2022-35934) - Breaking Changes * Causal attention in keras.layers.Attention and keras.layers.AdditiveAttention is now specified in the call() method via the use_causal_mask argument (rather than in the constructor), for consistency with other layers. * Some files in tensorflow/python/training have been moved to tensorflow/python/tracking and tensorflow/python/checkpoint. Please update your imports accordingly, the old files will be removed in Release 2.11. * tf.keras.optimizers.experimental.Optimizer will graduate in Release 2.11, which means tf.keras.optimizers.Optimizer will be an alias of tf.keras.optimizers.experimental.Optimizer. The current tf.keras.optimizers.Optimizer will continue to be supported as tf.keras.optimizers.legacy.Optimizer, e.g.,tf.keras.optimizers.legacy.Adam. Most users won't be affected by this change, but please check the API doc if any API used in your workflow is changed or deprecated, and make adaptions. If you decide to keep using the old optimizer, please explicitly change your optimizer to tf.keras.optimizers.legacy.Optimizer. * RNG behavior change for tf.keras.initializers. Keras initializers will now use stateless random ops to generate random numbers. - Both seeded and unseeded initializers will always generate the same values every time they are called (for a given variable shape). For unseeded initializers (seed=None), a random seed will be created and assigned at initializer creation (different initializer instances get different OBS-URL: https://build.opensuse.org/request/show/1005091 OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/tensorflow-lite?expand=0&rev=3
2022-09-21 04:45:17 +00:00
%fdupes %{buildroot}%{python3_sitearch}
popd
%check
PYTHONPATH=%{buildroot}%{python_sitearch} python3 -c "import tflite_runtime.interpreter as tflite"
%files
%{_bindir}/tflite_minimal
%{python3_sitearch}/tflite_runtime
%{python3_sitearch}/tflite_runtime-%{version}*-info
%files devel
%{_libdir}/libtensorflow-lite.a
%dir %{_includedir}/tensorflow/lite/
%{_includedir}/tensorflow/lite/*
%dir %{_includedir}/tensorflow/core/public/
%{_includedir}/tensorflow/core/public/version.h
%{_libdir}/pkgconfig/*.pc
%changelog