From 2d165fd13ecf9f5676190798e6c2df7844b096e0 Mon Sep 17 00:00:00 2001 From: Reuben Morais Date: Sun, 27 Feb 2022 18:07:40 +0000 Subject: [PATCH] Build Linux ARM wheels for Python 3.8 and 3.9 --- .github/actions/multistrap/action.yml | 14 +- .github/workflows/build-and-test.yml | 259 +++++++++++++----- native_client/BUILD | 18 +- .../multistrap_raspbian_bullseye.conf | 14 + 4 files changed, 210 insertions(+), 95 deletions(-) create mode 100644 native_client/multistrap_raspbian_bullseye.conf diff --git a/.github/actions/multistrap/action.yml b/.github/actions/multistrap/action.yml index c038cd333..74fba64b7 100644 --- a/.github/actions/multistrap/action.yml +++ b/.github/actions/multistrap/action.yml @@ -1,8 +1,8 @@ name: "multistrap install" description: "Install a system root using multistrap" inputs: - arch: - description: "Target arch" + multistrap-config: + description: "Multistrap config file to use" required: true packages: description: "Extra packages to install" @@ -20,13 +20,11 @@ runs: run: | set -xe - multistrap_conf="" - if [ "${{ inputs.arch }}" = "armv7" ]; then - multistrap_conf=multistrap_raspbian_buster.conf + multistrap_conf="${{ inputs.multistrap-config }}" + if [ "$multistrap_conf" = "multistrap_raspbian_buster.conf" ]; then + wget http://archive.raspbian.org/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb && sudo dpkg -i raspbian-archive-keyring_20120528.2_all.deb + elif [ "$multistrap_conf" = "multistrap_raspbian_bullseye.conf" ]; then wget http://archive.raspbian.org/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb && sudo dpkg -i raspbian-archive-keyring_20120528.2_all.deb - fi - if [ "${{ inputs.arch }}" = "aarch64" ]; then - multistrap_conf=multistrap_armbian64_buster.conf fi # Retry 2 times because Rasbian mirrors are often failing diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 93bcf7533..721831fff 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -604,12 +604,12 @@ jobs: needs: [ build-nodejs-Linux, train-test-model-Linux ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: # https://nodejs.org/en/about/releases/ nodejs-version: [12, 14, 16, 17] models: ["test"] samplerate: ["16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -656,11 +656,11 @@ jobs: needs: [ build-nodejs-Linux, train-test-model-Linux ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: electronjs-version: [12.0.0, 13.0.0, 14.0.0, 15.0.0, 16.0.0] models: ["test"] samplerate: ["16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -1133,6 +1133,18 @@ jobs: - uses: actions/download-artifact@v2 with: name: stt-tflite-3.7-aarch64.whl + - uses: actions/download-artifact@v2 + with: + name: stt-tflite-3.8-armv7.whl + - uses: actions/download-artifact@v2 + with: + name: stt-tflite-3.8-aarch64.whl + - uses: actions/download-artifact@v2 + with: + name: stt-tflite-3.9-armv7.whl + - uses: actions/download-artifact@v2 + with: + name: stt-tflite-3.9-aarch64.whl - name: Upload artifacts to GitHub release uses: ./.github/actions/upload-release-asset with: @@ -1939,12 +1951,12 @@ jobs: needs: [ build-nodejs-macOS, train-test-model-macOS ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: # https://nodejs.org/en/about/releases/ nodejs-version: [12, 14, 16, 17] models: ["test"] samplerate: ["16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -2390,11 +2402,11 @@ jobs: needs: [ build-nodejs-Windows, train-test-model-Linux ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: nodejs-version: [12, 14, 16] models: ["test"] samplerate: ["16000"] - fail-fast: false env: CI_TMP_DIR: tmp/ STT_TEST_MODEL: tmp/output_graph.tflite @@ -2558,12 +2570,12 @@ jobs: needs: [repackage-nodejs-allplatforms, train-test-model-Linux] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: # https://nodejs.org/en/about/releases/ nodejs-version: [12, 17] models: ["test", "prod"] samplerate: ["8000", "16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -2610,11 +2622,11 @@ jobs: needs: [repackage-nodejs-allplatforms, train-test-model-Linux] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: electronjs-version: [12.0.0, 16.0.0] models: ["test", "prod"] samplerate: ["8000", "16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -2662,12 +2674,12 @@ jobs: needs: [ repackage-nodejs-allplatforms, train-test-model-macOS ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: # https://nodejs.org/en/about/releases/ nodejs-version: [12, 17] models: ["test", "prod"] samplerate: ["8000", "16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -2712,11 +2724,11 @@ jobs: needs: [ repackage-nodejs-allplatforms, train-test-model-macOS ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: electronjs-version: [12.0.0, 16.0.0] models: ["test", "prod"] samplerate: ["8000", "16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp/ STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite @@ -2765,12 +2777,12 @@ jobs: needs: [repackage-nodejs-allplatforms, train-test-model-Linux] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: # https://nodejs.org/en/about/releases/ nodejs-version: [12, 16] models: ["test", "prod"] samplerate: ["8000", "16000"] - fail-fast: false env: CI_TMP_DIR: tmp/ STT_TEST_MODEL: tmp/output_graph.tflite @@ -2828,11 +2840,11 @@ jobs: needs: [repackage-nodejs-allplatforms, train-test-model-Linux] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: electronjs-version: [12.0.0, 16.0.0] models: ["test", "prod"] samplerate: ["8000", "16000"] - fail-fast: false env: CI_TMP_DIR: tmp/ STT_TEST_MODEL: tmp/output_graph.tflite @@ -2923,7 +2935,7 @@ jobs: - name: Install chroot uses: ./.github/actions/multistrap with: - arch: armv7 + multistrap-config: multistrap_raspbian_buster.conf - run: ./ci_scripts/tf-setup.sh - run: ./ci_scripts/armv7-build.sh - run: ./ci_scripts/package.sh @@ -2980,7 +2992,7 @@ jobs: - name: Install chroot uses: ./.github/actions/multistrap with: - arch: aarch64 + multistrap-config: multistrap_armbian64_buster.conf - run: ./ci_scripts/tf-setup.sh - run: ./ci_scripts/aarch64-build.sh - run: ./ci_scripts/package.sh @@ -3004,12 +3016,19 @@ jobs: runs-on: ubuntu-20.04 needs: [build-lib-LinuxArmv7, swig_Linux] strategy: + fail-fast: false matrix: - python-version: [3.7] + include: + - python-version: "3.7" + system-raspbian: multistrap-raspbian-buster + multistrap-config: multistrap_raspbian_buster.conf + - python-version: "3.9" + system-raspbian: multistrap-raspbian-bullseye + multistrap-config: multistrap_raspbian_bullseye.conf env: DEBIAN_FRONTEND: "noninteractive" SYSTEM_TARGET: rpi3 - SYSTEM_RASPBIAN: ${{ github.workspace }}/multistrap-raspbian-buster + SYSTEM_RASPBIAN: "${{ github.workspace }}/${{ matrix.system-raspbian }}" steps: - uses: actions/checkout@v2 with: @@ -3031,21 +3050,13 @@ jobs: ls -hal ${{ github.workspace }}/native_client/ds-swig/bin ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig - - uses: ./.github/actions/check_artifact_exists - with: - name: ${{ needs.build-lib-LinuxArmv7.outputs.cache-key }}.tar.xz - path: ${{ github.workspace }}/tf-cache.tar.xz - download: true - - run: | - tar -xvf tf-cache.tar.xz - rm tf-cache.tar.xz - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: "Install chroot" uses: ./.github/actions/multistrap with: - arch: armv7 + multistrap-config: ${{ matrix.multistrap-config }} - id: get_numpy uses: ./.github/actions/numpy_vers with: @@ -3053,8 +3064,10 @@ jobs: - name: Install dependencies run: | pip install -U pip setuptools wheel - - run: ./ci_scripts/tf-setup.sh - - run: ./ci_scripts/armv7-build.sh + - name: Download cross-build toolchain + run: | + cd tensorflow + bazel build --cpu=armhf @local_config_embedded_arm//:toolchain - uses: ./.github/actions/install-xldd with: target: ${{ env.SYSTEM_TARGET }} @@ -3096,18 +3109,10 @@ jobs: ls -hal ${{ github.workspace }}/native_client/ds-swig/bin ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig - - uses: ./.github/actions/check_artifact_exists - with: - name: ${{ needs.build-lib-LinuxArmv7.outputs.cache-key }}.tar.xz - path: ${{ github.workspace }}/tf-cache.tar.xz - download: true - - run: | - tar -xvf tf-cache.tar.xz - rm tf-cache.tar.xz - name: "Install chroot" uses: ./.github/actions/multistrap with: - arch: armv7 + multistrap-config: multistrap_raspbian_buster.conf - uses: actions/setup-node@v2 with: node-version: 12 @@ -3121,8 +3126,10 @@ jobs: with: path: native_client/javascript/headers/electronjs/ key: electron-headers-12.0.0_16.0.0 - - run: ./ci_scripts/tf-setup.sh - - run: ./ci_scripts/armv7-build.sh + - name: Download cross-build toolchain + run: | + cd tensorflow + bazel build --cpu=armhf @local_config_embedded_arm//:toolchain - uses: ./.github/actions/install-xldd with: target: ${{ env.SYSTEM_TARGET }} @@ -3146,7 +3153,7 @@ jobs: needs: [build-lib-LinuxAarch64, swig_Linux] strategy: matrix: - python-version: [3.7] + python-version: ["3.7"] env: DEBIAN_FRONTEND: "noninteractive" SYSTEM_TARGET: rpi3-armv8 @@ -3174,21 +3181,13 @@ jobs: ls -hal ${{ github.workspace }}/native_client/ds-swig/bin ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig - - uses: ./.github/actions/check_artifact_exists - with: - name: ${{ needs.build-lib-LinuxAarch64.outputs.cache-key }}.tar.xz - path: ${{ github.workspace }}/tf-cache.tar.xz - download: true - - run: | - tar -xvf tf-cache.tar.xz - rm tf-cache.tar.xz - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: "Install chroot" uses: ./.github/actions/multistrap with: - arch: aarch64 + multistrap-config: multistrap_armbian64_buster.conf - id: get_numpy uses: ./.github/actions/numpy_vers with: @@ -3196,8 +3195,10 @@ jobs: - name: Install dependencies run: | pip install -U pip setuptools wheel - - run: ./ci_scripts/tf-setup.sh - - run: ./ci_scripts/aarch64-build.sh + - name: Download cross-build toolchain + run: | + cd tensorflow + bazel build --cpu=aarch64 @local_config_embedded_arm//:toolchain - uses: ./.github/actions/install-xldd with: target: ${{ env.SYSTEM_TARGET }} @@ -3250,7 +3251,7 @@ jobs: - name: "Install chroot" uses: ./.github/actions/multistrap with: - arch: aarch64 + multistrap-config: multistrap_armbian64_buster.conf - uses: actions/setup-node@v2 with: node-version: 12 @@ -3288,12 +3289,22 @@ jobs: runs-on: ubuntu-20.04 if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: - arch: [ "armv7", "aarch64" ] + include: + - arch: "armv7" + system: "buster" + multistrap-config: "multistrap_raspbian_buster.conf" + - arch: "armv7" + system: "bullseye" + multistrap-config: "multistrap_raspbian_bullseye.conf" + - arch: "aarch64" + system: "buster" + multistrap-config: "multistrap_armbian64_buster.conf" env: CI_TMP_DIR: ${{ github.workspace }}/tmp DEBIAN_FRONTEND: "noninteractive" - SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }} + SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }}-${{ matrix.system }} steps: - uses: actions/checkout@v2 with: @@ -3301,14 +3312,14 @@ jobs: - name: "Install and setup chroot" uses: ./.github/actions/multistrap with: - arch: ${{ matrix.arch }} + multistrap-config: ${{ matrix.multistrap-config }} packages: "bash wget curl sox xxd libatlas3-base libopenblas-base ca-certificates python3 python3-pip gnupg libatk1.0-0 libatk-bridge2.0-0 libcairo2 libcups2 libdbus-1-3 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm1 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libx11-xcb1 libxcb-dri3-0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 xauth" - name: "Create a chroot tarball" run: | sudo tar -cf - -C ${{ env.SYSTEM_RASPBIAN }}/ --one-file-system . | xz -9 -T0 > ${{ github.workspace }}/chroot.tar.xz - uses: actions/upload-artifact@v2 with: - name: chroot-${{ matrix.arch }} + name: chroot-${{ matrix.arch }}-${{ matrix.system }} path: ${{ github.workspace }}/chroot.tar.xz test-cpp-LinuxArm: name: "LinArm*|Test C++ binary" @@ -3316,15 +3327,62 @@ jobs: needs: [ build-lib-LinuxArmv7, build-lib-LinuxAarch64, train-test-model-Linux, build-test-chroot ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: - arch: [ "armv7", "aarch64" ] - models: ["test", "prod"] - samplerate: ["8000", "16000"] + include: + - arch: "armv7" + system: "buster" + models: "test" + samplerate: "8000" + - arch: "armv7" + system: "buster" + models: "test" + samplerate: "16000" + - arch: "armv7" + system: "buster" + models: "prod" + samplerate: "8000" + - arch: "armv7" + system: "buster" + models: "prod" + samplerate: "16000" + - arch: "armv7" + system: "bullseye" + models: "test" + samplerate: "8000" + - arch: "armv7" + system: "bullseye" + models: "test" + samplerate: "16000" + - arch: "armv7" + system: "bullseye" + models: "prod" + samplerate: "8000" + - arch: "armv7" + system: "bullseye" + models: "prod" + samplerate: "16000" + - arch: "aarch64" + system: "buster" + models: "test" + samplerate: "8000" + - arch: "aarch64" + system: "buster" + models: "test" + samplerate: "16000" + - arch: "aarch64" + system: "buster" + models: "prod" + samplerate: "8000" + - arch: "aarch64" + system: "buster" + models: "prod" + samplerate: "16000" env: CI_TMP_DIR: ${{ github.workspace }}/tmp DEBIAN_FRONTEND: "noninteractive" STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite - SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }} + SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }}-${{ matrix.system }} steps: - name: "Install QEMU" run: | @@ -3335,7 +3393,7 @@ jobs: fetch-depth: 1 - uses: actions/download-artifact@v2 with: - name: "chroot-${{ matrix.arch }}" + name: "chroot-${{ matrix.arch }}-${{ matrix.system }}" path: ${{ env.CI_TMP_DIR }}/ - run: | mkdir ${{ env.SYSTEM_RASPBIAN }}/ @@ -3374,16 +3432,74 @@ jobs: needs: [ build-python-LinuxArmv7, build-python-LinuxAarch64, train-test-model-Linux, build-test-chroot ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: - arch: [ "armv7", "aarch64" ] - python-version: [3.7] - models: ["test", "prod"] - samplerate: ["8000", "16000"] + include: + - arch: "armv7" + system: "buster" + python-version: "3.7" + models: "test" + samplerate: "8000" + - arch: "armv7" + system: "buster" + python-version: "3.7" + models: "test" + samplerate: "16000" + - arch: "armv7" + system: "buster" + python-version: "3.7" + models: "prod" + samplerate: "8000" + - arch: "armv7" + system: "buster" + python-version: "3.7" + models: "prod" + samplerate: "16000" + - arch: "armv7" + system: "bullseye" + python-version: "3.9" + models: "test" + samplerate: "8000" + - arch: "armv7" + system: "bullseye" + python-version: "3.9" + models: "test" + samplerate: "16000" + - arch: "armv7" + system: "bullseye" + python-version: "3.9" + models: "prod" + samplerate: "8000" + - arch: "armv7" + system: "bullseye" + python-version: "3.9" + models: "prod" + samplerate: "16000" + - arch: "aarch64" + system: "buster" + python-version: "3.7" + models: "test" + samplerate: "8000" + - arch: "aarch64" + system: "buster" + python-version: "3.7" + models: "test" + samplerate: "16000" + - arch: "aarch64" + system: "buster" + python-version: "3.7" + models: "prod" + samplerate: "8000" + - arch: "aarch64" + system: "buster" + python-version: "3.7" + models: "prod" + samplerate: "16000" env: CI_TMP_DIR: ${{ github.workspace }}/tmp DEBIAN_FRONTEND: "noninteractive" STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite - SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }} + SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }}-${{ matrix.system }} PIP_EXTRA_INDEX_URL: "https://www.piwheels.org/simple https://lissyx.github.io/deepspeech-python-wheels/" steps: - name: "Install QEMU" @@ -3395,7 +3511,7 @@ jobs: fetch-depth: 1 - uses: actions/download-artifact@v2 with: - name: "chroot-${{ matrix.arch }}" + name: "chroot-${{ matrix.arch }}-${{ matrix.system }}" path: ${{ env.CI_TMP_DIR }}/ - run: | mkdir ${{ env.SYSTEM_RASPBIAN }}/ @@ -3433,18 +3549,18 @@ jobs: needs: [ build-nodejs-LinuxArmv7, build-nodejs-LinuxAarch64, train-test-model-Linux, build-test-chroot ] if: ${{ github.event_name == 'pull_request' }} strategy: + fail-fast: false matrix: - arch: [ "armv7", "aarch64" ] + arch: ["armv7", "aarch64"] # https://nodejs.org/en/about/releases/ nodejs-version: [12, 14, 16, 17] models: ["test"] samplerate: ["16000"] - fail-fast: false env: CI_TMP_DIR: ${{ github.workspace }}/tmp DEBIAN_FRONTEND: "noninteractive" STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite - SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }} + SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }}-buster steps: - name: "Install QEMU" run: | @@ -3455,7 +3571,7 @@ jobs: fetch-depth: 1 - uses: actions/download-artifact@v2 with: - name: "chroot-${{ matrix.arch }}" + name: "chroot-${{ matrix.arch }}-buster" path: ${{ env.CI_TMP_DIR }}/ - run: | mkdir ${{ env.SYSTEM_RASPBIAN }}/ @@ -3496,8 +3612,9 @@ jobs: # Disable this task because it seems qemu does not work super-well with ElectronJS if: ${{ github.event_name == 'disabled' }} strategy: + fail-fast: false matrix: - arch: [ "armv7", "aarch64" ] + arch: ["armv7", "aarch64"] electronjs-version: [12.0.0, 13.0.0, 14.0.0, 15.0.0, 16.0.0] models: ["test"] samplerate: ["16000"] @@ -3505,7 +3622,7 @@ jobs: CI_TMP_DIR: ${{ github.workspace }}/tmp DEBIAN_FRONTEND: "noninteractive" STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.tflite - SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }} + SYSTEM_RASPBIAN: ${{ github.workspace }}/chroot-${{ matrix.arch }}-buster DISPLAY: ":99.0" steps: - name: "Install QEMU" @@ -3517,7 +3634,7 @@ jobs: fetch-depth: 1 - uses: actions/download-artifact@v2 with: - name: "chroot-${{ matrix.arch }}" + name: "chroot-${{ matrix.arch }}-buster" path: ${{ env.CI_TMP_DIR }}/ - run: | mkdir ${{ env.SYSTEM_RASPBIAN }}/ diff --git a/native_client/BUILD b/native_client/BUILD index 60fc0b6fb..80ba555d6 100644 --- a/native_client/BUILD +++ b/native_client/BUILD @@ -6,20 +6,6 @@ load("@build_bazel_rules_apple//apple:ios.bzl", "ios_static_framework") load("@build_bazel_rules_swift//swift:swift.bzl", "swift_c_module", "swift_library") -config_setting( - name = "rpi3", - define_values = { - "target_system": "rpi3" - }, -) - -config_setting( - name = "rpi3-armv8", - define_values = { - "target_system": "rpi3-armv8" - }, -) - genrule( name = "workspace_status", outs = ["workspace_status.cc"], @@ -210,8 +196,8 @@ cc_library( "//tensorflow:macos": [], "//tensorflow:ios": ["-fembed-bitcode"], "//tensorflow:linux_x86_64": LINUX_LINKOPTS, - "//native_client:rpi3": LINUX_LINKOPTS, - "//native_client:rpi3-armv8": LINUX_LINKOPTS, + "//tensorflow:linux_armhf": LINUX_LINKOPTS, + "//tensorflow:linux_aarch64": LINUX_LINKOPTS, # Bazel is has too strong opinions about static linking, so it's # near impossible to get it to link a DLL against another DLL on Windows. # We simply force the linker option manually here as a hacky fix. diff --git a/native_client/multistrap_raspbian_bullseye.conf b/native_client/multistrap_raspbian_bullseye.conf new file mode 100644 index 000000000..6783d7c6f --- /dev/null +++ b/native_client/multistrap_raspbian_bullseye.conf @@ -0,0 +1,14 @@ +[General] +arch=armhf +noauth=false +unpack=true +debootstrap=Raspbian +aptsources=Raspbian +cleanup=true + +[Raspbian] +packages=apt libc6 libc6-dev libffi-dev libstdc++-9-dev linux-libc-dev libpython3.9-dev libsox-dev python3-numpy python3-setuptools +source=http://raspbian.raspberrypi.org/raspbian/ +keyring=raspbian-archive-keyring +components=main +suite=bullseye