diff --git a/science/py-tensorflow/Makefile b/science/py-tensorflow/Makefile index de96a9bf5e95..75f50bb479a8 100644 --- a/science/py-tensorflow/Makefile +++ b/science/py-tensorflow/Makefile @@ -1,326 +1,330 @@ PORTNAME= tensorflow DISTVERSIONPREFIX= v DISTVERSION= 2.21.0 PORTREVISION= 3 CATEGORIES= science python # machine-learning PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DIST_SUBDIR= ${PORTNAME} EXTRACT_ONLY= ${DISTNAME}.tar.gz MAINTAINER= yuri@FreeBSD.org COMMENT= Computation using data flow graphs for scalable machine learning WWW= https://www.tensorflow.org \ https://github.com/tensorflow/tensorflow LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= amd64 powerpc64le BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}grpcio-tools>=1.22.0:devel/py-grpcio-tools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.22.0:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ bash:shells/bash \ bazel:devel/bazel7 \ git:devel/git \ patchelf:sysutils/patchelf \ pybind11>=2.6.2:devel/pybind11 \ swig:devel/swig \ xxd:sysutils/xxd LIB_DEPENDS= libpng.so:graphics/png \ libsnappy.so:archivers/snappy \ libabsl_base.so:devel/abseil \ libsqlite3.so:databases/sqlite3 \ libicuio.so:devel/icu \ libjsoncpp.so:devel/jsoncpp \ libprotobuf.so:devel/protobuf \ libgif.so:graphics/giflib \ libcurl.so:ftp/curl \ libre2.so:devel/re2 \ libhwloc.so:devel/hwloc2 RUN_DEPENDS= pybind11>=2.6.2:devel/pybind11 \ ${PYTHON_PKGNAMEPREFIX}absl-py>=2.0.0:devel/py-absl-py@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}astunparse>=1.6.0:devel/py-astunparse@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flatbuffers>=25.9.23:devel/py-flatbuffers@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gast>=0.2.1:devel/py-gast@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}google-pasta>=0.1.1:devel/py-google-pasta@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}h5py>=2.9.0:science/py-h5py@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.22.0:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>=21.3:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=2.21.0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}protobuf>=3.20.3:devel/py-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}six>=1.12.0:devel/py-six@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}termcolor>=1.1.0:devel/py-termcolor@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.6.6:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wrapt>=1.11.0:devel/py-wrapt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.24.3:devel/py-grpcio@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ml-dtypes>=0.3.1:math/py-ml-dtypes@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}opt-einsum>=3.3.0:math/py-opt-einsum@${PY_FLAVOR} USES= java jpeg perl5 python shebangfix ssl JAVA_VERSION= 21 JAVA_VENDOR= openjdk USE_CXXSTD= c++17 USE_GITHUB= yes USE_PERL5= build USE_PYTHON= cython distutils SHEBANG_GLOB= *.py BINARY_ALIAS= python3=${PYTHON_CMD} OPTIONS_DEFINE= CPU_OPTS XLA OPTIONS_RADIO= PARALLEL_JOBS OPTIONS_RADIO_PARALLEL_JOBS= JOBS_1 JOBS_HALF JOBS_ALL PARALLEL_JOBS_DESC= How many jobs to run during build? OPTIONS_DEFAULT= JOBS_ALL JOBS_1_DESC= Run one job JOBS_1_VARS= TF_JOBS_NUMBER=1 JOBS_HALF_DESC= Run half jobs JOBS_HALF_VARS= TF_JOBS_NUMBER="`expr \( ${MAKE_JOBS_NUMBER} + 1 \) / 2`" JOBS_ALL_DESC= Run all jobs JOBS_ALL_VARS= TF_JOBS_NUMBER=${MAKE_JOBS_NUMBER} CPU_OPTS_DESC= Enable optimisations using features available on your CPU CPU_OPTS_VARS= CPU_TARGET=${CPU_NATIVE} BAZEL_COPT="-c opt --copt=${CPU_FLAG}=${CPU_NATIVE} ${CPU_COPT_EXTRA}" CPU_OPTS_VARS_OFF= CPU_TARGET=${CPU_BASELINE} XLA_DESC= Accelerated Linear Algebra XLA_VARS= XLA_OPT="1" XLA_VARS_OFF= XLA_OPT="0" .include .if ${ARCH} == powerpc64le CPU_FLAG= -mcpu CPU_BASELINE= ${CPUTYPE:Upower8} CPU_NATIVE= ${CPU_BASELINE} BAZEL_ARCH_DEFINES= --define=xnn_enable_assembly=false \ --linkopt=-Wl,-z,undefs .else CPU_FLAG= -march CPU_BASELINE= x86-64 CPU_NATIVE= native CPU_COPT_EXTRA= --copt=-mfpmath=sse .endif .include "Makefile.MASTER_SITES" BAZEL_BOOT= --output_user_root=${WRKDIR}/bazel_out .if !defined(WITH_DEBUG) # For the reason why the linker is used for the strip, see PR 280234. BAZEL_LINKOPT= --linkopt=-Wl,--strip-all .endif post-patch: # Set up a local repository with our pre-downloaded packages # This prevents bazel downloading the files without modifying # the bzl files. @${MKDIR} ${WRKDIR}/bazel-dist .for file in ${DISTFILES:C/\:(.*)//} @${ECHO} "Moving ${file} to ${WRKDIR}/bazel-dist" @${CP} ${DISTDIR}/${DIST_SUBDIR}/${file} ${WRKDIR}/bazel-dist .endfor # Pre-populate repository cache for files fetched via ctx.download() # (these are not served by --distdir; must be in --repository_cache) @${MKDIR} ${WRKDIR}/bazel-cache/content_addressable/sha256/12cffc7274190ca1693a52ccd8303e719407e707c8557ddfb7eef81f208efaab @${CP} ${DISTDIR}/${DIST_SUBDIR}/libtinfo.so.5 \ ${WRKDIR}/bazel-cache/content_addressable/sha256/12cffc7274190ca1693a52ccd8303e719407e707c8557ddfb7eef81f208efaab/file @${MKDIR} ${WRKDIR}/bazel-cache/content_addressable/sha256/5e8ee902c8906ddb7779fd36dc9979cb08b51fbebf7c0b1a9aeb78af382af590 @${CP} ${DISTDIR}/${DIST_SUBDIR}/copyright.txt \ ${WRKDIR}/bazel-cache/content_addressable/sha256/5e8ee902c8906ddb7779fd36dc9979cb08b51fbebf7c0b1a9aeb78af382af590/file @${CP} ${PATCHDIR}/bazelrc ${WRKDIR}/bazelrc @${CP} -R ${PATCHDIR}/bazel/* \ ${WRKSRC}/third_party/ @${CP} ${PATCHDIR}/bazel/rules_python_freebsd.patch \ ${WRKSRC}/third_party/xla/third_party/py/ @${CP} ${PATCHDIR}/bazel/fix-environ.patch \ ${WRKSRC}/third_party/xla/third_party/ @${CP} ${PATCHDIR}/llvm_freebsd.patch \ ${WRKSRC}/third_party/xla/third_party/llvm/freebsd.patch @${CP} ${PATCHDIR}/grpc.bazel.BUILD \ ${WRKSRC}/third_party/systemlibs/grpc.bazel.BUILD @${CP} ${PATCHDIR}/grpc.bazel.python_rules.bzl \ ${WRKSRC}/third_party/systemlibs/grpc.bazel.python_rules.bzl @${CP} ${PATCHDIR}/grpc.bazel.cc_grpc_library.bzl \ ${WRKSRC}/third_party/systemlibs/grpc.bazel.cc_grpc_library.bzl @${REINPLACE_CMD} "s#%%BAZEL_DIR%%#${WRKDIR}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} "s#%%BAZEL_DIST%%#${WRKDIR}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} "s#%%WRKSRC%%#${WRKSRC}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} "s#%%JAVA_HOME%%#${JAVA_HOME}#" ${WRKDIR}/bazelrc # copy the toolchain over @${CP} -R ${PATCHDIR}/freebsd \ ${WRKSRC}/ @${REINPLACE_CMD} "s#%%PATH%%#${PATH}#" ${WRKDIR}/bazelrc @${REINPLACE_CMD} -e "s#%%LOCALBASE%%#${LOCALBASE}#" \ ${WRKDIR}/bazelrc \ ${WRKSRC}/freebsd/cc_toolchain_config.bzl \ ${WRKSRC}/.bazelrc \ ${WRKSRC}/WORKSPACE @${REINPLACE_CMD} -e "s#%%NUMPY_INCLUDEDIR%%#${PYTHON_SITELIBDIR}/numpy/_core/include#g" \ ${WRKDIR}/bazelrc \ ${WRKSRC}/freebsd/cc_toolchain_config.bzl @${REINPLACE_CMD} -e "s#%%PYTHON_VER%%#${PYTHON_VER}#g" \ ${WRKSRC}/WORKSPACE # Fix Python runtime headers: replace rules_python CC toolchain alias with # a direct cc_library using a symlink to the system Python headers. @${REINPLACE_CMD} \ "s|%%PYTHON_INCLUDEDIR%%|${PYTHON_INCLUDEDIR}|g" \ ${WRKDIR}/bazelrc @${CP} ${PATCHDIR}/pthreadpool-freebsd-alloca.patch \ ${WRKSRC}/third_party/xla/third_party/pthreadpool/freebsd_alloca.patch @${CP} ${PATCHDIR}/xnnpack-freebsd-mmap.patch \ ${WRKSRC}/third_party/xla/third_party/xnnpack/freebsd_mmap.patch @${CP} ${PATCHDIR}/xnnpack-freebsd-ppc-hwcap.patch \ ${WRKSRC}/third_party/xla/third_party/xnnpack/freebsd_ppc_hwcap.patch @${CP} ${PATCHDIR}/protobuf-freebsd-upb.patch \ ${WRKSRC}/third_party/xla/third_party/protobuf/freebsd_upb.patch @${CP} ${PATCHDIR}/cpuinfo-freebsd-alwayslink.patch \ ${WRKSRC}/third_party/cpuinfo/cpuinfo_freebsd_alwayslink.patch @${CP} ${PATCHDIR}/grpc-no-go-sdk.patch \ ${WRKSRC}/third_party/xla/third_party/grpc/grpc_no_go.patch @${LN} -sf ${PYTHON_INCLUDEDIR} \ ${WRKSRC}/third_party/xla/third_party/python_runtime/python_include # Create pypi hub stub (FreeBSD has no platform wheels in requirements_lock) @${MKDIR} ${WRKSRC}/bazel_pypi_hub @${PRINTF} 'package(default_visibility = ["//visibility:public"])\nexports_files(["requirements.bzl"])\n' \ > ${WRKSRC}/bazel_pypi_hub/BUILD.bazel @${PRINTF} 'def install_deps(**kwargs):\n pass\n' \ > ${WRKSRC}/bazel_pypi_hub/requirements.bzl @${TOUCH} ${WRKSRC}/bazel_pypi_hub/WORKSPACE .for _pypi_pkg in absl_py astor astunparse auditwheel dill flatbuffers gast h5py jax \ keras lit ml_dtypes opt_einsum packaging portpicker protobuf requests \ scipy setuptools tblib termcolor typing_extensions wheel wrapt zstandard @${MKDIR} ${WRKSRC}/bazel_pypi_hub/${_pypi_pkg} @${PRINTF} 'package(default_visibility = ["//visibility:public"])\npy_library(name = "pkg", srcs = [])\npy_library(name = "lib", srcs = [])\npy_library(name = "whl", srcs = [])\nalias(name = "${_pypi_pkg}", actual = ":pkg")\n' \ > ${WRKSRC}/bazel_pypi_hub/${_pypi_pkg}/BUILD.bazel @${TOUCH} ${WRKSRC}/bazel_pypi_hub/${_pypi_pkg}/WORKSPACE .endfor # numpy needs extra cc_library for numpy_headers used by C++ deps @${MKDIR} ${WRKSRC}/bazel_pypi_hub/numpy @${MKDIR} ${WRKSRC}/bazel_pypi_hub/numpy/include @${LN} -sf ${PYTHON_SITELIBDIR}/numpy/_core/include/numpy \ ${WRKSRC}/bazel_pypi_hub/numpy/include/numpy # build_pip_package.py expects site-packages/numpy/{_core,core}/include @${MKDIR} ${WRKSRC}/bazel_pypi_hub/numpy/site-packages/numpy/core @${LN} -sf ${PYTHON_SITELIBDIR}/numpy/_core/include \ ${WRKSRC}/bazel_pypi_hub/numpy/site-packages/numpy/core/include @${PRINTF} 'package(default_visibility = ["//visibility:public"])\npy_library(name = "pkg", srcs = [])\npy_library(name = "lib", srcs = [])\nalias(name = "numpy", actual = ":pkg")\ncc_library(\n name = "numpy_headers",\n hdrs = glob(["include/**/*.h"]),\n includes = ["include"],\n)\n' \ > ${WRKSRC}/bazel_pypi_hub/numpy/BUILD.bazel @${TOUCH} ${WRKSRC}/bazel_pypi_hub/numpy/WORKSPACE do-configure: @cd ${WRKSRC} && ${SETENV} \ PYTHON_BIN_PATH=${PYTHON_CMD} \ PYTHON_LIB_PATH="${PYTHON_SITELIBDIR}" \ KERAS_HOME="${WRKDIR}/.keras" \ TF_NEED_OPENCL_SYCL=0 \ TF_ENABLE_XLA=${XLA_OPT} \ TF_NEED_OPENCL=0 \ TF_NEED_MPI=0 \ TF_NEED_TENSORRT=0 \ TF_NEED_NGRAPH=0 \ TF_NEED_IGNITE=0 \ TF_NEED_ROCM=0 \ TF_NEED_CUDA=0 \ TF_SET_ANDROID_WORKSPACE=0 \ TF_DOWNLOAD_CLANG=0 \ TF_NEED_NCCL=0 \ TF_IGNORE_MAX_BAZEL_VERSION=1 \ - CC_OPT_FLAGS="${CPU_FLAG}=${CPU_TARGET} -I${LOCALBASE}/include" \ + CC_OPT_FLAGS="${CPU_FLAG}=${CPU_TARGET} -I${LOCALBASE}/include -I${LOCALBASE}/include/jsoncpp" \ PREFIX="${LOCALBASE}" \ TF_SYSTEM_LIBS="astor_archive astunparse_archive boringssl com_github_googlecloudplatform_google_cloud_cpp \ com_googlesource_code_re2 curl cython dill_archive functools32_archive gast_archive \ gif hwloc icu jsoncpp_git libjpeg_turbo nasm org_sqlite pasta png pybind11 six_archive snappy \ tblib_archive termcolor_archive typing_extensions_archive wrapt zlib" \ ./configure @${REINPLACE_CMD} 's/,com_google_absl//g;s/,absl_py//g;s/absl_py,//g' ${WRKSRC}/.tf_configure.bazelrc post-configure: # BINARY_ALIAS creates a relative symlink for python3 that breaks inside # the poudriere jail (relative path resolves under /wrkdirs/usr/local/… # instead of /usr/local/…). Replace it with an absolute symlink. @${RM} ${WRKDIR}/.bin/python3 @${LN} -s ${PYTHON_CMD} ${WRKDIR}/.bin/python3 do-build: # Fetch rules_java to ensure it is extracted from the Bazel install, then inject # compatibility stubs for rules_java 7.x + protobuf 6.31.1 (which needs 8.x APIs). # Both @rules_java (WORKSPACE) and @@rules_java (Bzlmod canonical = rules_java_builtin) # must have the stubs; protobuf 6.31.1 uses the Bzlmod canonical form. @cd ${WRKSRC} && \ bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} fetch @rules_java//:BUILD @BAZEL_OB=$$(cd ${WRKSRC} && bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} info output_base 2>/dev/null); \ for RJNAME in rules_java rules_java_builtin; do \ RJDIR="$${BAZEL_OB}/external/$${RJNAME}"; \ if [ -d "$${RJDIR}/java/private" ]; then \ ${CP} ${FILESDIR}/rules_java.java.private.proto_support.bzl \ $${RJDIR}/java/private/proto_support.bzl; \ ${CP} ${FILESDIR}/rules_java.java.common.proguard_spec_info.bzl \ $${RJDIR}/java/common/proguard_spec_info.bzl 2>/dev/null || true; \ else \ ${ECHO_MSG} "WARNING: rules_java external dir $${RJNAME} not found; build may fail"; \ fi; \ done # Fetch llvm-project and fix config.bzl: replace Linux-only CPU-based FreeBSD # condition with platform-based @platforms//os:freebsd so exec/tool builds also # use posix_defines (no HAVE_GETAUXVAL / HAVE_MALLINFO) and the correct triple. @cd ${WRKSRC} && \ bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} fetch @@llvm-project//llvm:Support @LLVM_OB=$$(cd ${WRKSRC} && bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} info output_base 2>/dev/null); \ LLVMCONF="$${LLVM_OB}/external/llvm-raw/utils/bazel/llvm-project-overlay/llvm/config.bzl"; \ if [ -f "$${LLVMCONF}" ]; then \ ${PYTHON_CMD} ${PATCHDIR}/fix-llvm-config.py "$${LLVMCONF}"; \ else \ ${ECHO_MSG} "WARNING: llvm config.bzl not found at $${LLVMCONF}; build may fail"; \ fi @cd ${WRKSRC} && \ - bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} build --jobs ${TF_JOBS_NUMBER} ${BAZEL_COPT} ${BAZEL_ARCH_DEFINES} --host_copt="-I${LOCALBASE}/include" \ - --host_linkopt="-L${LOCALBASE}/lib -lexecinfo" ${BAZEL_LINKOPT} --copt="-I${LOCALBASE}/include" \ + bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} build --jobs ${TF_JOBS_NUMBER} ${BAZEL_COPT} ${BAZEL_ARCH_DEFINES} \ + --host_copt="-I${LOCALBASE}/include" --host_copt="-I${LOCALBASE}/include/jsoncpp" \ + --host_linkopt="-L${LOCALBASE}/lib -lexecinfo" ${BAZEL_LINKOPT} \ + --copt="-I${LOCALBASE}/include" --copt="-I${LOCALBASE}/include/jsoncpp" \ --verbose_failures -s \ --distdir=${WRKDIR}/bazel-dist \ //tensorflow/tools/pip_package:wheel @${MKDIR} ${WRKDIR}/whl @${CP} ${WRKSRC}/bazel-bin/tensorflow/tools/pip_package/wheel_house/*.whl \ ${WRKDIR}/whl/ do-install: @${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR} @${UNZIP_NATIVE_CMD} -d ${STAGEDIR}/${PYTHON_SITELIBDIR} ${WRKDIR}/whl/${PORTNAME}-${PORTVERSION}-*.whl post-install: # autoplist: thousands of files, all under ${PYTHON_SITELIBDIR} @cd ${STAGEDIR}${PREFIX} && \ ${FIND} ${PYTHON_SITELIBDIR:C|^${LOCALBASE}/||} -type f -or -type l | ${GREP} -v "egg-info/" >> ${TMPPLIST} do-test: @cd ${WRKSRC} && \ bazel --bazelrc="${WRKDIR}/bazelrc" ${BAZEL_BOOT} test \ - --jobs ${TF_JOBS_NUMBER} ${BAZEL_COPT} --host_copt="-I${LOCALBASE}/include" \ - --host_linkopt="-L${LOCALBASE}/lib -lexecinfo" ${BAZEL_LINKOPT} --copt="-I${LOCALBASE}/include" \ + --jobs ${TF_JOBS_NUMBER} ${BAZEL_COPT} \ + --host_copt="-I${LOCALBASE}/include" --host_copt="-I${LOCALBASE}/include/jsoncpp" \ + --host_linkopt="-L${LOCALBASE}/lib -lexecinfo" ${BAZEL_LINKOPT} \ + --copt="-I${LOCALBASE}/include" --copt="-I${LOCALBASE}/include/jsoncpp" \ --verbose_failures \ --distdir=${WRKDIR}/bazel-dist \ --test_output=errors \ --keep_going \ //tensorflow/python/autograph/... test-quick: build @cd ${TEST_WRKSRC} && \ ${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${FILESDIR}/example-quick-training.py # tests as of 2.21.0: Executed 76 out of 76 tests: 76 tests pass. .include diff --git a/science/py-tensorflow/distinfo b/science/py-tensorflow/distinfo index 7c068e226d83..ee1e9d744651 100644 --- a/science/py-tensorflow/distinfo +++ b/science/py-tensorflow/distinfo @@ -1,188 +1,187 @@ TIMESTAMP = 1774238095 SHA256 (tensorflow/platforms-0.0.11.tar.gz) = 29742e87275809b5e598dc2f04d86960cc7a55b3067d97221c9abbc9926bff0f SIZE (tensorflow/platforms-0.0.11.tar.gz) = 7882 SHA256 (tensorflow/apple_support.1.24.5.tar.gz) = 1ae6fcf983cff3edab717636f91ad0efff2e5ba75607fdddddfd6ad0dbdfaf10 SIZE (tensorflow/apple_support.1.24.5.tar.gz) = 110555 SHA256 (tensorflow/bazel-skylib-1.7.1.tar.gz) = bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f SIZE (tensorflow/bazel-skylib-1.7.1.tar.gz) = 43566 SHA256 (tensorflow/8c717f8258cd5f6c7a45b97d974292755852b658.tar.gz) = 294cdd859e57fcaf101d4301978c408c88683fbc46fbc1a3829da92afbea55fb SIZE (tensorflow/8c717f8258cd5f6c7a45b97d974292755852b658.tar.gz) = 80728 SHA256 (tensorflow/v0.1.1.zip) = cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806 SIZE (tensorflow/v0.1.1.zip) = 14654 SHA256 (tensorflow/rules_apple.3.5.1.tar.gz) = b4df908ec14868369021182ab191dbd1f40830c9b300650d5dc389e0b9266c8d SIZE (tensorflow/rules_apple.3.5.1.tar.gz) = 2404029 SHA256 (tensorflow/rules_swift.1.18.0.tar.gz) = bb01097c7c7a1407f8ad49a1a0b1960655cf823c26ad2782d0b7d15b323838e2 SIZE (tensorflow/rules_swift.1.18.0.tar.gz) = 255839 SHA256 (tensorflow/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz) = 5b00383d08dd71f28503736db0500b6fb4dda47489ff5fc6bed42557c07c6ba9 SIZE (tensorflow/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz) = 464906 SHA256 (tensorflow/4.3.zip) = 6274687f6fc5783b589f56a2f1ed60de3ce1f99bc4e8f9edef3de43bdf7c6e74 SIZE (tensorflow/4.3.zip) = 3998031 SHA256 (tensorflow/rules_pkg-0.7.1.tar.gz) = 451e08a4d78988c06fa3f9306ec813b836b1d076d0f055595444ba4ff22b867f SIZE (tensorflow/rules_pkg-0.7.1.tar.gz) = 77334 SHA256 (tensorflow/0.7.1.tar.gz) = bcd0c5f46a49b85b384906daae41d277b3dc0ff27c7c752cc51e43048a58ec83 SIZE (tensorflow/0.7.1.tar.gz) = 215296 SHA256 (tensorflow/rules_java-7.6.1.tar.gz) = f8ae9ed3887df02f40de9f4f7ac3873e6dd7a471f9cddf63952538b94b59aeb3 SIZE (tensorflow/rules_java-7.6.1.tar.gz) = 27308 SHA256 (tensorflow/rules_license-0.0.7.tar.gz) = 4531deccb913639c30e5c7512a054d5d875698daeb75d8cf90f284375fe7c360 SIZE (tensorflow/rules_license-0.0.7.tar.gz) = 31476 SHA256 (tensorflow/bazel_features-v1.25.0.tar.gz) = 4fd9922d464686820ffd8fcefa28ccffa147f7cdc6b6ac0d8b07fde565c65d66 SIZE (tensorflow/bazel_features-v1.25.0.tar.gz) = 16266 SHA256 (tensorflow/rules_shell-v0.4.1.tar.gz) = bc61ef94facc78e20a645726f64756e5e285a045037c7a61f65af2941f4c25e1 SIZE (tensorflow/rules_shell-v0.4.1.tar.gz) = 22017 SHA256 (tensorflow/d8cb9c2c168cd64000eaa6eda0781a9615a26ffe.tar.gz) = 54c1a357f71f611efdb4891ebd4bcbe4aeb6dfa7e473f14fd7ecad5062096616 SIZE (tensorflow/d8cb9c2c168cd64000eaa6eda0781a9615a26ffe.tar.gz) = 159079 SHA256 (tensorflow/f7547e29ccaed7b64ef4f7495ecfff1c9f6f3d03.tar.gz) = 552ca3d4d1af4beeb1907980f7096315aa24150d6baf5ac1e5ad90f04846c670 SIZE (tensorflow/f7547e29ccaed7b64ef4f7495ecfff1c9f6f3d03.tar.gz) = 204856 SHA256 (tensorflow/0d859a811870d10f53a594927d0d0b97573ad06d.tar.gz) = 18392cf0736e1d62ecbb8d695c31496b6507859e8c75541d7ad0ba092dc52115 SIZE (tensorflow/0d859a811870d10f53a594927d0d0b97573ad06d.tar.gz) = 467251 SHA256 (tensorflow/16e8662c34917be0065110bfcd9cc27d30f52fdf.zip) = 7dc418717c8456473fac4ff2288b71057e3dcb72894524c734a4362cdb51fa8b SIZE (tensorflow/16e8662c34917be0065110bfcd9cc27d30f52fdf.zip) = 940836 SHA256 (tensorflow/c13d28517a4db259d738ea4886b1f00352a3cc33.tar.gz) = c0e2b9931fbcce3bfbcd7999c3c114f404ac0f8b89775a5bbccbcaa501868e58 SIZE (tensorflow/c13d28517a4db259d738ea4886b1f00352a3cc33.tar.gz) = 160745 SHA256 (tensorflow/03da4fc0857c285e3a26782f6bc8931c4c950df4.tar.gz) = ef516fb84824a597c4d5d0d6d330daedb18363b5a99eda87d027e6bdd9cba299 SIZE (tensorflow/03da4fc0857c285e3a26782f6bc8931c4c950df4.tar.gz) = 396457 SHA256 (tensorflow/3286a34cc8de6149ac6844107dfdffac91531e72.zip) = a22c42e80c7bb450db8492728e4742ee66f46d5458c45fe67ce2c9b61240630c SIZE (tensorflow/3286a34cc8de6149ac6844107dfdffac91531e72.zip) = 381045 SHA256 (tensorflow/835a7d7b1ee3bc83e575e302a985c66ec4b65249.tar.gz) = 583d7b975e506c076fc579d9139530596906b9195b203d42361417e9aad79b73 SIZE (tensorflow/835a7d7b1ee3bc83e575e302a985c66ec4b65249.tar.gz) = 2569603 SHA256 (tensorflow/openmp-10.0.1.src.tar.xz) = d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44 SIZE (tensorflow/openmp-10.0.1.src.tar.xz) = 955492 SHA256 (tensorflow/131.1.0.tar.gz) = 76c1aac87ddb7258f34b08a13f0eebf9e53afa299857568346aa5c82bcafaf1a SIZE (tensorflow/131.1.0.tar.gz) = 52383 SHA256 (tensorflow/v3.7.3.tar.gz) = 071f289dc961b43a3b7c8cbe8a305290a7c5d308ec4b2f586397749abdc88296 SIZE (tensorflow/v3.7.3.tar.gz) = 14101401 SHA256 (tensorflow/127d2f238010589ac96f2f402a27afc9dccbb7ab.zip) = 3780e503599ebcc1acc4c96ea5f23c724dae2a4d746ed7d9a01d3f14d879265a SIZE (tensorflow/127d2f238010589ac96f2f402a27afc9dccbb7ab.zip) = 20267651 SHA256 (tensorflow/v1.0.tar.gz) = 5f4dabc2ae21e1f537425d58a49cdca1c49ea11db0d6271e2a4b27e9697548eb SIZE (tensorflow/v1.0.tar.gz) = 110531 SHA256 (tensorflow/13d4f99d5309df3d5afa80fe2ae332d7a2a64c6b.tar.gz) = c6d0c6784e4d5681919731f1fa86e0b7cd010e770115bdb3a0285b3939ef2394 SIZE (tensorflow/13d4f99d5309df3d5afa80fe2ae332d7a2a64c6b.tar.gz) = 33138 SHA256 (tensorflow/v2.13.6.tar.gz) = cae680670bfa6e82703c03f2a3c995408cdcbf43616d7bdd198ef45d3c327731 SIZE (tensorflow/v2.13.6.tar.gz) = 6156 SHA256 (tensorflow/f02a2b7653bc50eb5119d125842a3870db95d251.zip) = 3cf7bf0f23954c5ce6c37f0a215f506efa3035ca06e3b390d67f4cbe684dce23 SIZE (tensorflow/f02a2b7653bc50eb5119d125842a3870db95d251.zip) = 104204 SHA256 (tensorflow/8a9210069b5a37dd89ed118a783945502a30a4ae.zip) = c0254ce97f7abc778dd2df0aaca1e0506dba1cd514fdb9fe88c07849393f8ef4 SIZE (tensorflow/8a9210069b5a37dd89ed118a783945502a30a4ae.zip) = 3852053 SHA256 (tensorflow/4ecc3a44a32c832b748328bed3f9a599f795ca8d.tar.gz) = 5e81d70f9534340f7ef8e63ec43bdd5971135e48183079be50ecb3f74b1fed66 SIZE (tensorflow/4ecc3a44a32c832b748328bed3f9a599f795ca8d.tar.gz) = 797332 SHA256 (tensorflow/eigen-dcbaf2d608f306450f1e74949eb87e9a22a7ef4b.tar.gz) = a71517b3815984c1a8174db1ebc58a17d4f5c23c06e377bbc4a5dfc85855a516 SIZE (tensorflow/eigen-dcbaf2d608f306450f1e74949eb87e9a22a7ef4b.tar.gz) = 2984046 SHA256 (tensorflow/25b42dfddb0ee22170d73ff0d4b333ea1e6edfeb.zip) = 44bf8a258cfd0d7b500b6058a2bb5c7387c8cebba295cfca985a68d16513f7c8 SIZE (tensorflow/25b42dfddb0ee22170d73ff0d4b333ea1e6edfeb.zip) = 23536211 SHA256 (tensorflow/0e6ca13779b57d397a5ba6bfdcaa8a275bc8ea2e.zip) = f602ab141bdc5d5872a79d6551e9063b5bfa7ad6ad60cceaa641de5c45c86d70 SIZE (tensorflow/0e6ca13779b57d397a5ba6bfdcaa8a275bc8ea2e.zip) = 125519 SHA256 (tensorflow/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.zip) = d973501a40c55126b31accc2d9f08d931ec3cc190c0430309a5e341d3c0ce32a SIZE (tensorflow/4dfe081cf6bcd15db339cf2680b9281b8451eeb3.zip) = 91462 SHA256 (tensorflow/63058eff77e11aa15bf531df5dd34395ec3017c8.zip) = 3d7b0e9c4c658a84376a1086126be02f9b7f753caa95e009d9ac38d11da444db SIZE (tensorflow/63058eff77e11aa15bf531df5dd34395ec3017c8.zip) = 16646 SHA256 (tensorflow/909041e4802c4b9a2223ca04099f35bf1dbbd460.tar.gz) = 3f986184ee126677dbd77edb16d6b82c057ec869fefd7a9871979941e52e837a SIZE (tensorflow/909041e4802c4b9a2223ca04099f35bf1dbbd460.tar.gz) = 259501486 SHA256 (tensorflow/6b3fdcea8bc5398be4e7e9930c693f0ea09316a0.tar.gz) = 249d83abc5d50bf372c35c49d77f900bff022b2c21eb73aa8da1458b6ac401fc SIZE (tensorflow/6b3fdcea8bc5398be4e7e9930c693f0ea09316a0.tar.gz) = 6091152 SHA256 (tensorflow/v25.9.23.tar.gz) = 9102253214dea6ae10c2ac966ea1ed2155d22202390b532d1dea64935c518ada SIZE (tensorflow/v25.9.23.tar.gz) = 2336210 SHA256 (tensorflow/a15b489e1222b2087007546b4912e21293ea86ff.tar.gz) = 019fbc7ec25860070a1d90e12686fc160cfb33e22aa063c80f52b363f1361e9d SIZE (tensorflow/a15b489e1222b2087007546b4912e21293ea86ff.tar.gz) = 103972 SHA256 (tensorflow/v2.11.0.tar.gz) = 62ba05e5f720c76c510d6ab2a77f8ccc17a76c5cea951bea47355a7dfa460449 SIZE (tensorflow/v2.11.0.tar.gz) = 938321 SHA256 (tensorflow/v1.1.tar.gz) = 2e3b94b55825c240cc58e6721e15b449978cbae21a2a4caa23058b0157ee2fb3 SIZE (tensorflow/v1.1.tar.gz) = 198915 SHA256 (tensorflow/d38452e1ee03523a208362186fd42248ff2609f6.tar.gz) = d1abe9da2003e6cbbd7619b0ced3e52047422f4f4ac6c66a9bef5d2e99fea837 SIZE (tensorflow/d38452e1ee03523a208362186fd42248ff2609f6.tar.gz) = 2236099 SHA256 (tensorflow/11bf7c25e666dd7ddacbcd4d4c4a9de7a25175f8.tar.gz) = 20b240eba17a36be4b0b22635aca63053913d5c1ee36e16be36499d167a2f533 SIZE (tensorflow/11bf7c25e666dd7ddacbcd4d4c4a9de7a25175f8.tar.gz) = 14304 SHA256 (tensorflow/63205aa90afa6803d8f58bc3081b69288e9f1906.zip) = 5e922c9afb7a0c881fc4359b58488f3faa840e8435de1a2207a6525935ed83c2 SIZE (tensorflow/63205aa90afa6803d8f58bc3081b69288e9f1906.zip) = 2859671 SHA256 (tensorflow/v3.10.5.tar.gz) = 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4 SIZE (tensorflow/v3.10.5.tar.gz) = 7021996 SHA256 (tensorflow/9effcbcb27f0a665f9f345030188c0b291e32482.tar.gz) = 61d0417abd60e65ed589c9deee7c124fe76a4106831f6ad39464e1525cef1454 SIZE (tensorflow/9effcbcb27f0a665f9f345030188c0b291e32482.tar.gz) = 324650 SHA256 (tensorflow/a37c3dbdd5d2a15113d363c7a7c41c30453e482f.zip) = 590ec559107fc7082e1a7d70e9c9bfb8624c79dabca0a05fe1bcba1d7a591ec8 SIZE (tensorflow/a37c3dbdd5d2a15113d363c7a7c41c30453e482f.zip) = 1247370 SHA256 (tensorflow/v1.5.7.zip) = 7897bc5d620580d9b7cd3539c44b59d78f3657d33663fe97a145e07b4ebd69a4 SIZE (tensorflow/v1.5.7.zip) = 2753402 SHA256 (tensorflow/rules_go-v0.34.0.zip) = 16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366 SIZE (tensorflow/rules_go-v0.34.0.zip) = 1210403 SHA256 (tensorflow/rules_python-1.6.0.tar.gz) = fa7dd2c6b7d63b3585028dd8a90a6cf9db83c33b250959c2ee7b583a6c130e12 SIZE (tensorflow/rules_python-1.6.0.tar.gz) = 927982 SHA256 (tensorflow/0.1.0.tar.gz) = 4b12149a041ddfb8306a8fd0e904e39d673552ce82e4296e96fac9cbf0780e59 SIZE (tensorflow/0.1.0.tar.gz) = 168117 SHA256 (tensorflow/v6.31.1.zip) = 6e09bbc950ba60c3a7b30280210cd285af8d7d8ed5e0a6ed101c72aff22e8d88 SIZE (tensorflow/v6.31.1.zip) = 11437914 SHA256 (tensorflow/tensorflow-tensorflow-v2.21.0_GH0.tar.gz) = ef3568bb4865d6c1b2564fb5689c19b6b9a5311572cd1f2ff9198636a8520921 SIZE (tensorflow/tensorflow-tensorflow-v2.21.0_GH0.tar.gz) = 90831199 SHA256 (tensorflow/v2.1.0.tar.gz) = 8a3d0830e4eb4f66c4fa907c06edf6ce1c719ced811a12e26d9d3162f8471758 SIZE (tensorflow/v2.1.0.tar.gz) = 235261 SHA256 (tensorflow/ducc-aa46a4c21e440b3d416c16eca3c96df19c74f316.tar.gz) = 077cf4bd0bd7eddaa6649a024285fff96e2662c5e6f2fb6ed5c5771f9de093f3 SIZE (tensorflow/ducc-aa46a4c21e440b3d416c16eca3c96df19c74f316.tar.gz) = 423799 SHA256 (tensorflow/ml_dtypes-00d98cd92ade342fef589c0470379abb27baebe9.tar.gz) = f6e5880666661351e6cd084ac4178ddc4dabcde7e9a73722981c0d1500cf5937 SIZE (tensorflow/ml_dtypes-00d98cd92ade342fef589c0470379abb27baebe9.tar.gz) = 87114 SHA256 (tensorflow/v1.2.0.tar.gz) = 816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec SIZE (tensorflow/v1.2.0.tar.gz) = 646315 SHA256 (tensorflow/v0.11.1.tar.gz) = 1492dfef8dd6c3036446ac3b340005d92ab92f7d48ee3271b5dac1d36945d3d9 SIZE (tensorflow/v0.11.1.tar.gz) = 1876134 SHA256 (tensorflow/c695e43eba127a74a67263775ab611bded7fba34.zip) = d27bcd502a0843e463fc4eb7d3532d0d720ddd6af6e39942846f1aa769352625 SIZE (tensorflow/c695e43eba127a74a67263775ab611bded7fba34.zip) = 11177761 SHA256 (tensorflow/1.3.0.tar.gz) = 07b3c1ba2c1096878a85a31a5b9b3757427af963b1141ca904db2f9f4afe0bc2 SIZE (tensorflow/1.3.0.tar.gz) = 3634890 SHA256 (tensorflow/2025_09_16.tar.gz) = 08c45dff8ede1b56a6e7d1e9fdaf113dd91ab28ddcbcf696229b683e5e9af45a SIZE (tensorflow/2025_09_16.tar.gz) = 10061309 SHA256 (tensorflow/v1.4.0.tar.gz) = 12af50c45530f0a292d39a88d952637e43fb2d4ab1883c44ae729840f7273381 SIZE (tensorflow/v1.4.0.tar.gz) = 3800514 SHA256 (tensorflow/2afe84b39f0d097ecd70fc44a9e0e39782cee6a3.zip) = 4c0b19e58706c44336c573a0ba9fdf0e412b23670cac6a3df95525a0909a0360 SIZE (tensorflow/2afe84b39f0d097ecd70fc44a9e0e39782cee6a3.zip) = 381528 SHA256 (tensorflow/v1.3.0.tar.gz) = a8424ad3b0affd4c57ed26f0f3d8a29604f0e1f2ef2089f497f614b1c94c7236 SIZE (tensorflow/v1.3.0.tar.gz) = 70562 SHA256 (tensorflow/3ea912eb05a4ce1bf598834eb67dbd74e426b882.zip) = bfdd113080d6da700b9bc3f15458069a88818a65ebf2a476fe281f084e1b6783 SIZE (tensorflow/3ea912eb05a4ce1bf598834eb67dbd74e426b882.zip) = 3352636 SHA256 (tensorflow/nvshmem_src_3.1.7-1.txz) = 2146ff231d9aadd2b11f324c142582f89e3804775877735dc507b4dfd70c788b SIZE (tensorflow/nvshmem_src_3.1.7-1.txz) = 3686400 SHA256 (tensorflow/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz) = 54ec30358afcc9fb8aa74307db3046f5187f9fb89fb37064cdde906e062ebf36 SIZE (tensorflow/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz) = 1044930068 SHA256 (tensorflow/x86_64_ubuntu18_gcc8.4-0.2.1.tar.xz) = 9a06397f9dc4fe2237d126f964f1a3c942ce0036ba51976ea0d7fce0bc3e2fb7 SIZE (tensorflow/x86_64_ubuntu18_gcc8.4-0.2.1.tar.xz) = 47419824 SHA256 (tensorflow/cpython-3.11.13+20250808-x86_64-unknown-linux-gnu-install_only.tar.gz) = 3ad988c702cbb017fef1208d47dea4138a2e85fd0f7f01ec5e1e335e597131b9 SIZE (tensorflow/cpython-3.11.13+20250808-x86_64-unknown-linux-gnu-install_only.tar.gz) = 46107448 SHA256 (tensorflow/libtinfo.so.5) = 12cffc7274190ca1693a52ccd8303e719407e707c8557ddfb7eef81f208efaab SIZE (tensorflow/libtinfo.so.5) = 170784 SHA256 (tensorflow/copyright.txt) = 5e8ee902c8906ddb7779fd36dc9979cb08b51fbebf7c0b1a9aeb78af382af590 SIZE (tensorflow/copyright.txt) = 6366 - SHA256 (tensorflow/v1.74.0.tar.gz) = dd6a2fa311ba8441bbefd2764c55b99136ff10f7ea42954be96006a2723d33fc SIZE (tensorflow/v1.74.0.tar.gz) = 15014902 SHA256 (tensorflow/28e9d1f26771c6517c3b4be10254887673c940189.zip) = f253ca1a07262f8efde8328e4b2c68979e40ddfcfc001f70d1d5f612c7de2974 SIZE (tensorflow/28e9d1f26771c6517c3b4be10254887673c940189.zip) = 1136851 SHA256 (tensorflow/4de3c74cf21a9958c1cf26d8993c55c6e0d28b49.tar.gz) = cd8b49614408b43bd45d90e3e98d69e24eea632ff42ac3bfb8bca68bc31e377f SIZE (tensorflow/4de3c74cf21a9958c1cf26d8993c55c6e0d28b49.tar.gz) = 697162 SHA256 (tensorflow/v1.2.1.zip) = ab51e978326b87e06be7a12fc6496f3ff6586339043557dbbd31f622332a5d45 SIZE (tensorflow/v1.2.1.zip) = 306941 SHA256 (tensorflow/bazel-gazelle-v0.37.0.tar.gz) = d76bf7a60fd8b050444090dfa2837a4eaf9829e1165618ee35dceca5cbdf58d5 SIZE (tensorflow/bazel-gazelle-v0.37.0.tar.gz) = 1815577 SHA256 (tensorflow/rules_java-8.7.0.tar.gz) = 5449ed36d61269579dd9f4b0e532cd131840f285b389b3795ae8b4d717387dd8 SIZE (tensorflow/rules_java-8.7.0.tar.gz) = 112619 SHA256 (tensorflow/7.0.2.tar.gz) = 0e5c64a2599a6e26c6a03d6162242d231ecc0de219534c38cb4402171def21e8 SIZE (tensorflow/7.0.2.tar.gz) = 48590 SHA256 (tensorflow/v2.35.0.tar.gz) = 81ea28cf9e5bb032d356b0187409f30b1035f8ea5b530675ea248c8a6c0070aa SIZE (tensorflow/v2.35.0.tar.gz) = 15773128 SHA256 (tensorflow/d198303a4319092ab31895c4b98d64174ebe8872.tar.gz) = 79502264d1a3a4b6309d4dae8c822e7349bcfe33e84f3c6d1affb2a40d11a31d SIZE (tensorflow/d198303a4319092ab31895c4b98d64174ebe8872.tar.gz) = 16045 SHA256 (tensorflow/6360e96b5cf8e5980c887ce58ef727e53d77243a.tar.gz) = bf26e5b25e259911914a85ae847b6d723488adb5af4f8bdeb9d0871a318476e3 SIZE (tensorflow/6360e96b5cf8e5980c887ce58ef727e53d77243a.tar.gz) = 778663 SHA256 (tensorflow/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz) = dc305e20c9fa80822322271b50aa2ffa917bf4fd3973bcec52bfc28dc32c5927 SIZE (tensorflow/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz) = 104469 SHA256 (tensorflow/12235e24652fc7f809373e7c11a5f73c5763fc4c.tar.gz) = 11f344710a80fd73db0fc686b4fe40867dc34d914d9cdfd7a4b416a65d1e692f SIZE (tensorflow/12235e24652fc7f809373e7c11a5f73c5763fc4c.tar.gz) = 254083 SHA256 (tensorflow/1f95f8083066f5b38fd2db172e7e7f9aa7c49d2d.tar.gz) = 9c8f800aed088cdf89adc3eaaa66b56b4da7da041f26338aa71a2ab43d860d46 SIZE (tensorflow/1f95f8083066f5b38fd2db172e7e7f9aa7c49d2d.tar.gz) = 41620 SHA256 (tensorflow/5501a1a255805e0be83a41348bb5f2630d5ed6b3.tar.gz) = 46b3b5812c150a21bacf860c2f76fc42b89773ed77ee954c32adeb8593aa2a8e SIZE (tensorflow/5501a1a255805e0be83a41348bb5f2630d5ed6b3.tar.gz) = 191703 SHA256 (tensorflow/ced79860f8c8a091a2eabfee6d47783f828a9b59.tar.gz) = a85a22521de7426c3e019d50e18d0af16e0391e0353923308eb168b3e624aea1 SIZE (tensorflow/ced79860f8c8a091a2eabfee6d47783f828a9b59.tar.gz) = 1048635 SHA256 (tensorflow/v0.3.0.tar.gz) = b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0 SIZE (tensorflow/v0.3.0.tar.gz) = 163404 SHA256 (tensorflow/rules_cc-0.0.17.tar.gz) = abc605dd850f813bb37004b77db20106a19311a96b2da1c92b789da529d28fe1 SIZE (tensorflow/rules_cc-0.0.17.tar.gz) = 178823 SHA256 (tensorflow/rules_shell-v0.3.0.tar.gz) = d8cd4a3a91fc1dc68d4c7d6b655f09def109f7186437e3f50a9b60ab436a0c53 SIZE (tensorflow/rules_shell-v0.3.0.tar.gz) = 22046 SHA256 (tensorflow/0.8.0.tar.gz) = fbe74bbdcee21d656715688706da3c8becfd946d92cd44705cc6098bb23b3a16 SIZE (tensorflow/0.8.0.tar.gz) = 1017151 diff --git a/science/py-tensorflow/files/bazelrc b/science/py-tensorflow/files/bazelrc index eead349e0876..8684ff8319a4 100644 --- a/science/py-tensorflow/files/bazelrc +++ b/science/py-tensorflow/files/bazelrc @@ -1,98 +1,100 @@ startup --batch build --verbose_failures --noshow_loading_progress test --verbose_test_summary --verbose_failures --noshow_loading_progress build --spawn_strategy=local --genrule_strategy=local test --spawn_strategy=local --genrule_strategy=local # tensorflow/BUILD:install_headers genrule creates a directory output (outs=["include"]). # Bazel 7 enables --incompatible_disallow_unsound_directory_outputs by default, which # rejects this old-style pattern. Disable it to allow the legacy genrule to run. build --noincompatible_disallow_unsound_directory_outputs # make bazel only fetch distfiles from the cache fetch --repository_cache="%%BAZEL_DIR%%/bazel-cache/" --distdir="%%BAZEL_DIST%%/bazel-dist/" build --repository_cache="%%BAZEL_DIR%%/bazel-cache/" --distdir="%%BAZEL_DIST%%/bazel-dist/" # Override @pypi hub and individual @pypi_* repos with offline stubs # (FreeBSD has no platform wheels in requirements_lock; stubs point to system packages) build --override_repository=pypi=%%WRKSRC%%/bazel_pypi_hub fetch --override_repository=pypi=%%WRKSRC%%/bazel_pypi_hub build --override_repository=pypi_absl_py=%%WRKSRC%%/bazel_pypi_hub/absl_py build --override_repository=pypi_astunparse=%%WRKSRC%%/bazel_pypi_hub/astunparse build --override_repository=pypi_auditwheel=%%WRKSRC%%/bazel_pypi_hub/auditwheel build --override_repository=pypi_flatbuffers=%%WRKSRC%%/bazel_pypi_hub/flatbuffers build --override_repository=pypi_gast=%%WRKSRC%%/bazel_pypi_hub/gast build --override_repository=pypi_keras=%%WRKSRC%%/bazel_pypi_hub/keras build --override_repository=pypi_lit=%%WRKSRC%%/bazel_pypi_hub/lit build --override_repository=pypi_ml_dtypes=%%WRKSRC%%/bazel_pypi_hub/ml_dtypes build --override_repository=pypi_numpy=%%WRKSRC%%/bazel_pypi_hub/numpy build --override_repository=pypi_opt_einsum=%%WRKSRC%%/bazel_pypi_hub/opt_einsum build --override_repository=pypi_packaging=%%WRKSRC%%/bazel_pypi_hub/packaging build --override_repository=pypi_protobuf=%%WRKSRC%%/bazel_pypi_hub/protobuf build --override_repository=pypi_requests=%%WRKSRC%%/bazel_pypi_hub/requests build --override_repository=pypi_setuptools=%%WRKSRC%%/bazel_pypi_hub/setuptools build --override_repository=pypi_termcolor=%%WRKSRC%%/bazel_pypi_hub/termcolor build --override_repository=pypi_typing_extensions=%%WRKSRC%%/bazel_pypi_hub/typing_extensions build --override_repository=pypi_wheel=%%WRKSRC%%/bazel_pypi_hub/wheel build --override_repository=pypi_wrapt=%%WRKSRC%%/bazel_pypi_hub/wrapt build --define=PREFIX=%%LOCALBASE%% build --define=LIBDIR=%%LOCALBASE%%/lib build --define=INCLUDEDIR=%%LOCALBASE%%/include build --define=PROTOBUF_INCLUDE_PATH=%%LOCALBASE%%/include build --config=nogcp --config=nonccl build --define tensorflow_mkldnn_contraction_kernel=0 build --action_env=BAZEL_CXXOPTS="-std=c++17" build --extra_toolchains=//freebsd:cc-toolchain-freebsd build --extra_toolchains=//freebsd:python_cc_toolchain build --linkopt="-lexecinfo" --toolchain_resolution_debug=//freebsd:freebsd_clang # backtrace() is in libexecinfo on FreeBSD; needed for both target and exec builds. build --host_linkopt=-L%%LOCALBASE%%/lib build --host_linkopt=-lexecinfo build --host_linkopt=-lhwloc # System and Python headers for both target and host (tool) builds. # copts in cc_library don't propagate to dependents so we set these globally. # _XOPEN_SOURCE=700 enables XSI extensions (isascii, etc.) even when per-file # code defines _POSIX_C_SOURCE. # __BSD_VISIBLE=1 enables BSD extensions (syscall, MAP_ANON, etc.). FreeBSD's # _visible.h never resets __BSD_VISIBLE to 0 in the _XOPEN_SOURCE or # _POSIX_C_SOURCE paths (only in _ANSI_SOURCE/_C99_SOURCE paths), so the # command-line definition persists. build --host_copt=-D_XOPEN_SOURCE=700 build --host_copt=-D__BSD_VISIBLE=1 build --host_copt=-isystem%%LOCALBASE%%/include +build --host_copt=-isystem%%LOCALBASE%%/include/jsoncpp build --host_copt=-isystem%%PYTHON_INCLUDEDIR%% build --host_copt=-isystem%%NUMPY_INCLUDEDIR%% build --copt=-D_XOPEN_SOURCE=700 build --copt=-D__BSD_VISIBLE=1 build --copt=-isystem%%LOCALBASE%%/include +build --copt=-isystem%%LOCALBASE%%/include/jsoncpp build --copt=-isystem%%PYTHON_INCLUDEDIR%% build --copt=-isystem%%NUMPY_INCLUDEDIR%% # Bazel's local_execution_config_platform wrongly reports the exec platform as # Linux on FreeBSD, so LLVM's config.bzl selects linux_defines for [for tool] # builds, adding Linux-only macros that do not exist on FreeBSD. Undefine them # here so the compiler falls back to the portable POSIX paths in LLVM source. build --host_copt=-UHAVE_GETAUXVAL build --host_copt=-UHAVE_MALLINFO build --host_copt=-UHAVE_SBRK # for python build --action_env=PATH=%%PATH%% build --host_action_env=PATH=%%PATH%% build --action_env=KERAS_HOME="%%BAZEL_DIST%%/.keras" build --host_action_env=KERAS_HOME="%%BAZEL_DIST%%/.keras" build --repo_env=JAVA_HOME=%%JAVA_HOME%% build --action_env=JAVA_HOME=%%JAVA_HOME%% # Limit parallel actions to avoid OOM on large files like LLVMDialect.cpp build --local_ram_resources=HOST_RAM*.7 build --local_cpu_resources=HOST_CPUS-4 diff --git a/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl b/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl index f4cf8ca8cfb8..aa0d2ec7f973 100644 --- a/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl +++ b/science/py-tensorflow/files/freebsd/cc_toolchain_config.bzl @@ -1,288 +1,297 @@ # Copyright 2019 The Bazel Authors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A Starlark cc_toolchain configuration rule for FreeBSD and OpenBSD.""" load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "action_config", "feature", "flag_group", "flag_set", "tool", "tool_path", "with_feature_set", ) load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") all_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.clif_match, ACTION_NAMES.lto_backend, ] all_cpp_compile_actions = [ ACTION_NAMES.cpp_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.clif_match, ] all_link_actions = [ ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, ] def _impl(ctx): cpu = ctx.attr.cpu is_bsd = cpu == "k8" or cpu == "freebsd" or cpu == "openbsd" compiler = "compiler" toolchain_identifier = "local_freebsd" host_system_name = "local" if is_bsd else "armeabi-v7a" target_system_name = "local" if is_bsd else "armeabi-v7a" target_libc = "local" if is_bsd else "armeabi-v7a" abi_version = "local" if is_bsd else "armeabi-v7a" abi_libc_version = "local" if is_bsd else "armeabi-v7a" objcopy_embed_data_action = action_config( action_name = "objcopy_embed_data", enabled = True, tools = [tool(path = "/usr/bin/objcopy")], ) action_configs = [objcopy_embed_data_action] if is_bsd else [] default_link_flags_feature = feature( name = "default_link_flags", enabled = True, flag_sets = [ flag_set( actions = all_link_actions, flag_groups = [ flag_group( flags = [ "-Wl,-undefined,dynamic_lookup", "-Wl,--undefined-version", "-lc++", "-Wl,-z,relro,-z,now", "-no-canonical-prefixes", "-L%%LOCALBASE%%/lib", ], ), ], ), flag_set( actions = all_link_actions, flag_groups = [flag_group(flags = ["-Wl,--gc-sections"])], with_features = [with_feature_set(features = ["opt"])], ), ], ) unfiltered_compile_flags_feature = feature( name = "unfiltered_compile_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-no-canonical-prefixes", "-Wno-builtin-macro-redefined", "-D__DATE__=\"redacted\"", "-D__TIMESTAMP__=\"redacted\"", "-D__TIME__=\"redacted\"", ], ), ], ), ], ) supports_pic_feature = feature(name = "supports_pic", enabled = True) default_compile_flags_feature = feature( name = "default_compile_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-U_FORTIFY_SOURCE", "-D_FORTIFY_SOURCE=1", "-fstack-protector", "-Wall", "-fno-omit-frame-pointer", ], ), ], ), flag_set( actions = all_compile_actions, flag_groups = [flag_group(flags = ["-g"])], with_features = [with_feature_set(features = ["dbg"])], ), flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = [ "-g0", "-O2", "-DNDEBUG", "-ffunction-sections", "-fdata-sections", ], ), ], with_features = [with_feature_set(features = ["opt"])], ), flag_set( actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend], flag_groups = [flag_group(flags = ["-std=c++17"])], ), ], ) opt_feature = feature(name = "opt") supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) objcopy_embed_flags_feature = feature( name = "objcopy_embed_flags", enabled = True, flag_sets = [ flag_set( actions = ["objcopy_embed_data"], flag_groups = [flag_group(flags = ["-I", "binary"])], ), ], ) dbg_feature = feature(name = "dbg") user_compile_flags_feature = feature( name = "user_compile_flags", enabled = True, flag_sets = [ flag_set( actions = all_compile_actions, flag_groups = [ flag_group( flags = ["%{user_compile_flags}"], iterate_over = "user_compile_flags", expand_if_available = "user_compile_flags", ), ], ), ], ) sysroot_feature = feature( name = "sysroot", enabled = True, flag_sets = [ flag_set( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.clif_match, ACTION_NAMES.lto_backend, ] + all_link_actions, flag_groups = [ flag_group( flags = ["--sysroot=%{sysroot}"], expand_if_available = "sysroot", ), ], ), ], ) if is_bsd: features = [ default_compile_flags_feature, default_link_flags_feature, supports_dynamic_linker_feature, supports_pic_feature, objcopy_embed_flags_feature, opt_feature, dbg_feature, user_compile_flags_feature, sysroot_feature, unfiltered_compile_flags_feature, ] else: features = [supports_dynamic_linker_feature, supports_pic_feature] if (is_bsd): - cxx_builtin_include_directories = ["/usr/lib/clang", "/usr/include/c++/v1", "/usr/local/include", "/usr/include", "%%NUMPY_INCLUDEDIR%%"] + cxx_builtin_include_directories = [ + "/usr/lib/clang", + "/usr/include/c++/v1", + "%%LOCALBASE%%/include", + "%%LOCALBASE%%/include/jsoncpp", + "/usr/local/include", + "/usr/local/include/jsoncpp", + "/usr/include", + "%%NUMPY_INCLUDEDIR%%", + ] else: cxx_builtin_include_directories = [] if is_bsd: tool_paths = [ tool_path(name = "ar", path = "/usr/bin/ar"), tool_path(name = "cpp", path = "/usr/bin/cpp"), tool_path(name = "dwp", path = "/usr/bin/dwp"), tool_path(name = "gcc", path = "/usr/bin/clang"), tool_path(name = "gcov", path = "/usr/bin/gcov"), tool_path(name = "ld", path = "/usr/bin/ld"), tool_path(name = "nm", path = "/usr/bin/nm"), tool_path(name = "objcopy", path = "/usr/bin/objcopy"), tool_path(name = "objdump", path = "/usr/bin/objdump"), tool_path(name = "strip", path = "/usr/bin/strip"), ] else: tool_paths = [ tool_path(name = "ar", path = "/bin/false"), tool_path(name = "cpp", path = "/bin/false"), tool_path(name = "dwp", path = "/bin/false"), tool_path(name = "gcc", path = "/bin/false"), tool_path(name = "gcov", path = "/bin/false"), tool_path(name = "ld", path = "/bin/false"), tool_path(name = "nm", path = "/bin/false"), tool_path(name = "objcopy", path = "/bin/false"), tool_path(name = "objdump", path = "/bin/false"), tool_path(name = "strip", path = "/bin/false"), ] out = ctx.actions.declare_file(ctx.label.name) ctx.actions.write(out, "Fake executable") return [ cc_common.create_cc_toolchain_config_info( ctx = ctx, features = features, action_configs = action_configs, cxx_builtin_include_directories = cxx_builtin_include_directories, toolchain_identifier = toolchain_identifier, host_system_name = host_system_name, target_system_name = target_system_name, target_cpu = cpu, target_libc = target_libc, compiler = compiler, abi_version = abi_version, abi_libc_version = abi_libc_version, tool_paths = tool_paths, ), DefaultInfo( executable = out, ), ] cc_toolchain_config = rule( implementation = _impl, attrs = { "cpu": attr.string(mandatory = True), }, provides = [CcToolchainConfigInfo], executable = True, )