Skip to content

tink: add build-tink.yml for riscv64 wheels - #1738

Open
luhenry wants to merge 1 commit into
mainfrom
tink
Open

tink: add build-tink.yml for riscv64 wheels#1738
luhenry wants to merge 1 commit into
mainfrom
tink

Conversation

@luhenry

@luhenry luhenry commented Sep 11, 2026

Copy link
Copy Markdown
Member

Compiles Tink's pybind11 C++ extension (AEAD/MAC/signature/KMS crypto primitives, statically linking BoringSSL, abseil-cpp, protobuf and tink_cc through Bazel/bzlmod). Upstream publishes no riscv64 wheel.

Mirrors upstream's tools/distribution/build_linux_binary_wheels.sh (tink-py has no GitHub Actions CI; releases build via Kokoro).

Differs from upstream

  • protoc is built from this project's own pinned protobuf via Bazel - no protoc release ships a riscv64 binary
  • Bazel is bootstrapped from the dist archive - no riscv64 release binary exists

Testing

  • runs tink's own *_test.py suite against the installed wheel, excluding tink/integration/ - those call live AWS/GCP/Vault KMS services this CI has no credentials for

License: wheel bundles BoringSSL, abseil-cpp, protobuf and tink_cc (Apache-2.0/BSD-3-Clause/mixed OpenSSL-derived) and pybind11 (BSD-3-Clause); upstream ships none of their license texts, so the build adds them.

Patches

  • 0001-Package-the-vendored-C-dependencies-licences.patch - To upstream. Adds LICENSE.<dep> for the statically-linked dependencies above; reproduces on any platform, not just riscv64.

Built on cp312; TBD passed, TBD skipped.

luhenry added a commit that referenced this pull request Sep 11, 2026
Bazel/bzlmod build (abseil-cpp/BoringSSL/protobuf/tink_cc), no CMake path;
bazel 9.1.0 + rules_python 2.2.0 already carry riscv64 support so no
rules_python/rules_java override is needed, unlike the bazel 7.x era ports.
tink-py builds its C++ pybind11 extension entirely through Bazel (bzlmod,
no WORKSPACE), pulling abseil-cpp, BoringSSL (via tink_cc), protobuf and
pybind11 as source deps -- all of which already have riscv64 precedent
elsewhere in this repo. Bazel publishes no riscv64 release binary, so it is
bootstrapped from the dist archive as in build-ray.yml/build-array-record.yml;
unlike those, tink-py's pinned bazel 9.1.0 and rules_python 2.2.0 already
carry riscv64 support, so no rules_python/rules_java override is needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant