tink-crypto / tink

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
https://developers.google.com/tink
Apache License 2.0
13.47k stars 1.18k forks source link

tink cannot be installed on arm64 linux #694

Closed ifanheng closed 12 months ago

ifanheng commented 1 year ago

OS

# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# uname -a
Linux 67017392e9bb 4.19.90-2304.5.0.0199.oe1.aarch64 #1 SMP Wed Apr 26 06:45:29 UTC 2023 aarch64 GNU/Linux

# python --version
Python 3.9.14

I also failed to install tink on Centoss 7.9

pip install tink

# pip install tink
Collecting tink
  Downloading tink-1.7.0.tar.gz (175 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 175.9/175.9 KB 313.5 kB/s eta 0:00:00
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      running egg_info
      creating /tmp/pip-pip-egg-info-xg6hcb45/tink.egg-info
      writing /tmp/pip-pip-egg-info-xg6hcb45/tink.egg-info/PKG-INFO
      writing dependency_links to /tmp/pip-pip-egg-info-xg6hcb45/tink.egg-info/dependency_links.txt
      writing requirements to /tmp/pip-pip-egg-info-xg6hcb45/tink.egg-info/requires.txt
      writing top-level names to /tmp/pip-pip-egg-info-xg6hcb45/tink.egg-info/top_level.txt
      writing manifest file '/tmp/pip-pip-egg-info-xg6hcb45/tink.egg-info/SOURCES.txt'
      error: Could not find bazel executable. Please install bazel to compile the Tink Python package.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

After trying to install bazel yourself, pip install tink again

# bazel --version
bazel 6.2.0

# pip install tink       
Collecting tink
  Using cached tink-1.7.0.tar.gz (175 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: absl-py in /usr/local/lib/python3.9/site-packages (from tink) (1.4.0)
Requirement already satisfied: protobuf==3.20.1 in /usr/local/lib/python3.9/site-packages (from tink) (3.20.1)
Building wheels for collected packages: tink
  Building wheel for tink (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [206 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-3.9
      creating build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_handle_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/secret_key_access_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/tink_config.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_writer.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_handle.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_reader_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/secret_key_access.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_writer_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_reader.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/cleartext_keyset_handle.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/__init__.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/tink_config_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/cleartext_keyset_handle_test.py -> build/lib.linux-aarch64-3.9/tink
      creating build/lib.linux-aarch64-3.9/tink/integration
      copying tink/integration/__init__.py -> build/lib.linux-aarch64-3.9/tink/integration
      creating build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_pybind11_python_file_object_adapter_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_raw_streaming_aead.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/__init__.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      creating build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_wrapper.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_kms_envelope_aead_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_manager.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_kms_envelope_aead.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/__init__.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_templates.py -> build/lib.linux-aarch64-3.9/tink/aead
      creating build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_encrypt.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_decrypt.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/__init__.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      creating build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/keyset_builder_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/fake_kms_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/helper.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/bytes_io_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/bytes_io.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/__init__.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/helper_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/keyset_builder.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/fake_kms.py -> build/lib.linux-aarch64-3.9/tink/testing
      creating build/lib.linux-aarch64-3.9/tink/internal
      copying tink/internal/big_integer_util_test.py -> build/lib.linux-aarch64-3.9/tink/internal
      copying tink/internal/__init__.py -> build/lib.linux-aarch64-3.9/tink/internal
      copying tink/internal/big_integer_util.py -> build/lib.linux-aarch64-3.9/tink/internal
      creating build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_key_manager.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_public_key_verify.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_wrapper.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_public_key_sign.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/__init__.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_key_templates.py -> build/lib.linux-aarch64-3.9/tink/signature
      creating build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_wrapper.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_manager.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_templates.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/__init__.py -> build/lib.linux-aarch64-3.9/tink/daead
      creating build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_templates.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_wrapper.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_manager.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/__init__.py -> build/lib.linux-aarch64-3.9/tink/mac
      creating build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_set.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_set_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_key_manager.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/__init__.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_set_wrapper.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_key_templates.py -> build/lib.linux-aarch64-3.9/tink/prf
      creating build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_validator_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_public_key_sign.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_raw_jwt_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_json_util_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_validator.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_verified_jwt.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_key_templates.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_public_key_verify.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_format.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_verified_jwt_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_raw_jwt.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/__init__.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwk_set_converter_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_error.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_json_util.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwk_set_converter.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_format_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_mac.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      creating build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/kms_envelope_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/chacha20_poly1305_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_gcm_hkdf_streaming_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/common_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/test_proto_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/config_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/empty_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hmac_prf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_siv_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/tink_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hpke_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/ed25519_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_gcm_siv_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/ecies_aead_hkdf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_ctr_hmac_aead_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_ctr_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/cached_dek_envelope_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/cached_dek_aead_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/kms_aead_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hmac_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/xchacha20_poly1305_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_cmac_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/prf_based_deriver_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_ecdsa_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_ctr_hmac_streaming_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/__init__.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/ecdsa_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hkdf_prf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_eax_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_hmac_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_gcm_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_cmac_prf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      creating build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_primitive_set.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_crypto_format_test.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_primitive_wrapper.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_registry.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_crypto_format.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_key_manager.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_tink_error.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/__init__.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_registry_test.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_primitive_set_test.py -> build/lib.linux-aarch64-3.9/tink/core
      creating build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client_test.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_aead_test.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/__init__.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      creating build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client_test.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_aead_test.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/__init__.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      running build_ext
      bazel clean --expunge
      Extracting Bazel installation...
      Starting local Bazel server and connecting to it...
      INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
      bazel build //tink/cc/pybind:tink_bindings --compilation_mode=opt --incompatible_linkopts_to_linklibs
      Starting local Bazel server and connecting to it...
      ERROR: --incompatible_linkopts_to_linklibs :: Unrecognized option: --incompatible_linkopts_to_linklibs
      error: command '/usr/bin/bazel' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for tink
  Running setup.py clean for tink
Failed to build tink
ERROR: Could not build wheels for tink, which is required to install pyproject.toml-based project

Have tried these versions of bazel:

chuckx commented 1 year ago

Updated to correct the suggestion to align with the Bazel version used in v1.7.0


Can you try using Bazel 6.0.0 5.1.1?

This version is specified in https://github.com/google/tink/blob/master/python/.bazelversion https://github.com/google/tink/blob/v1.7.0/python/.bazelversion, as is the convention with Bazel.

You might also consider using Bazelisk, which automatically fetches the right version of Bazel for a project.

ifanheng commented 1 year ago

Can you try using Bazel 6.0.0?

This version is specified in https://github.com/google/tink/blob/master/python/.bazelversion, as is the convention with Bazel.

You might also consider using Bazelisk, which automatically fetches the right version of Bazel for a project.

After trying to use version 6.0.0, I still get the same error:

# bazel --version
bazel 6.0.0

# pip install tink
Collecting tink
  Using cached tink-1.7.0.tar.gz (175 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: absl-py in /usr/local/lib/python3.9/site-packages (from tink) (1.4.0)
Requirement already satisfied: protobuf==3.20.1 in /usr/local/lib/python3.9/site-packages (from tink) (3.20.1)
Building wheels for collected packages: tink
  Building wheel for tink (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [205 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-3.9
      creating build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_handle_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/secret_key_access_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/tink_config.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_writer.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_handle.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_reader_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/secret_key_access.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_writer_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/_keyset_reader.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/cleartext_keyset_handle.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/__init__.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/tink_config_test.py -> build/lib.linux-aarch64-3.9/tink
      copying tink/cleartext_keyset_handle_test.py -> build/lib.linux-aarch64-3.9/tink
      creating build/lib.linux-aarch64-3.9/tink/integration
      copying tink/integration/__init__.py -> build/lib.linux-aarch64-3.9/tink/integration
      creating build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_pybind11_python_file_object_adapter_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_raw_streaming_aead.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream_test.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/__init__.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream.py -> build/lib.linux-aarch64-3.9/tink/streaming_aead
      creating build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_wrapper.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_kms_envelope_aead_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_manager.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_kms_envelope_aead.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/__init__.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/aead
      copying tink/aead/_aead_key_templates.py -> build/lib.linux-aarch64-3.9/tink/aead
      creating build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_encrypt.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_decrypt.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/__init__.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/hybrid
      creating build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/keyset_builder_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/fake_kms_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/helper.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/bytes_io_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/bytes_io.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/__init__.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/helper_test.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/keyset_builder.py -> build/lib.linux-aarch64-3.9/tink/testing
      copying tink/testing/fake_kms.py -> build/lib.linux-aarch64-3.9/tink/testing
      creating build/lib.linux-aarch64-3.9/tink/internal
      copying tink/internal/big_integer_util_test.py -> build/lib.linux-aarch64-3.9/tink/internal
      copying tink/internal/__init__.py -> build/lib.linux-aarch64-3.9/tink/internal
      copying tink/internal/big_integer_util.py -> build/lib.linux-aarch64-3.9/tink/internal
      creating build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_key_manager.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_public_key_verify.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_wrapper.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_public_key_sign.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/__init__.py -> build/lib.linux-aarch64-3.9/tink/signature
      copying tink/signature/_signature_key_templates.py -> build/lib.linux-aarch64-3.9/tink/signature
      creating build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_wrapper.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_manager.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_templates.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/_deterministic_aead_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/daead
      copying tink/daead/__init__.py -> build/lib.linux-aarch64-3.9/tink/daead
      creating build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_templates.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_wrapper.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac_key_manager.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/_mac.py -> build/lib.linux-aarch64-3.9/tink/mac
      copying tink/mac/__init__.py -> build/lib.linux-aarch64-3.9/tink/mac
      creating build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_set.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_set_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_key_manager.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/__init__.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_set_wrapper.py -> build/lib.linux-aarch64-3.9/tink/prf
      copying tink/prf/_prf_key_templates.py -> build/lib.linux-aarch64-3.9/tink/prf
      creating build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_validator_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_public_key_sign.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_raw_jwt_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_key_templates_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_json_util_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_validator.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_verified_jwt.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_key_templates.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_public_key_verify.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_format.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_verified_jwt_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_raw_jwt.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/__init__.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwk_set_converter_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_error.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_json_util.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwk_set_converter.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_format_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_mac.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers.py -> build/lib.linux-aarch64-3.9/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager_test.py -> build/lib.linux-aarch64-3.9/tink/jwt
      creating build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/kms_envelope_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/chacha20_poly1305_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_gcm_hkdf_streaming_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/common_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/test_proto_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/config_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/empty_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hmac_prf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_siv_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/tink_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hpke_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/ed25519_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_gcm_siv_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/ecies_aead_hkdf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_ctr_hmac_aead_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_ctr_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/cached_dek_envelope_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/cached_dek_aead_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/kms_aead_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hmac_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/xchacha20_poly1305_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_cmac_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/prf_based_deriver_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_ecdsa_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_ctr_hmac_streaming_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/__init__.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/ecdsa_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/hkdf_prf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_eax_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/jwt_hmac_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_gcm_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/aes_cmac_prf_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      copying tink/proto/rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-3.9/tink/proto
      creating build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_primitive_set.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_crypto_format_test.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_primitive_wrapper.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_registry.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_crypto_format.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_key_manager.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_tink_error.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/__init__.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_registry_test.py -> build/lib.linux-aarch64-3.9/tink/core
      copying tink/core/_primitive_set_test.py -> build/lib.linux-aarch64-3.9/tink/core
      creating build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client_test.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_aead_test.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      copying tink/integration/awskms/__init__.py -> build/lib.linux-aarch64-3.9/tink/integration/awskms
      creating build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client_test.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_aead_test.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      copying tink/integration/gcpkms/__init__.py -> build/lib.linux-aarch64-3.9/tink/integration/gcpkms
      running build_ext
      bazel clean --expunge
      Starting local Bazel server and connecting to it...
      INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
      bazel build //tink/cc/pybind:tink_bindings --compilation_mode=opt --incompatible_linkopts_to_linklibs
      Starting local Bazel server and connecting to it...
      ERROR: --incompatible_linkopts_to_linklibs :: Unrecognized option: --incompatible_linkopts_to_linklibs
      error: command '/usr/bin/bazel' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for tink
  Running setup.py clean for tink
Failed to build tink
ERROR: Could not build wheels for tink, which is required to install pyproject.toml-based projects

Then I tried replacing the bazel command with bazelisk and executing pip install tink again

The same error is reported

      running build_ext
      bazel clean --expunge
      INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
      bazel build //tink/cc/pybind:tink_bindings --compilation_mode=opt --incompatible_linkopts_to_linklibs
      Starting local Bazel server and connecting to it...
      ERROR: --incompatible_linkopts_to_linklibs :: Unrecognized option: --incompatible_linkopts_to_linklibs
      error: command '/usr/bin/bazel' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> tink

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

I used bazelisk-linux-arm64 v1.17.0

chuckx commented 1 year ago

Can you instead try Bazel 5.1.1?

My previous comment (before editing it) made reference to the Bazel version used in the project as of the latest commit to master. Instead, we need to make sure to use the Bazel version specified as of the v1.7.0 tag.

Also, this isn't guaranteed to work as we haven't tested the project in a Linux arm64 environment, but I'm curious to see if it works once we work through these initial issues.

ifanheng commented 1 year ago

Can you instead try Bazel 5.1.1?

My previous comment (before editing it) made reference to the Bazel version used in the project as of the latest commit to master. Instead, we need to make sure to use the Bazel version specified as of the v1.7.0 tag.

Also, this isn't guaranteed to work as we haven't tested the project in a Linux arm64 environment, but I'm curious to see if it works once we work through these initial issues.

Hello, this is an error when using bazel 5.1.1:

      running build_ext
      bazel clean --expunge
      Extracting Bazel installation...
      Starting local Bazel server and connecting to it...
      INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
      bazel build //tink/cc/pybind:tink_bindings --compilation_mode=opt --incompatible_linkopts_to_linklibs
      Starting local Bazel server and connecting to it...
      Loading:
      Loading: 0 packages loaded
      Loading: 0 packages loaded
      Loading: 0 packages loaded
      ERROR: /tmp/pip-install-fz_ebtao/tink_4c9581b9517046da8e885b712bd2c791/WORKSPACE:4:17: fetching local_repository rule //external:tink_cc: java.io.IOException: The repository's path is "/tmp/tink/python/../cc" (absolute: "/tmp/tink/cc") but it does not exist or is not a directory.
      ERROR: no such package '@tink_cc//': The repository's path is "/tmp/tink/python/../cc" (absolute: "/tmp/tink/cc") but it does not exist or is not a directory.
      INFO: Elapsed time: 3.865s
      INFO: 0 processes.
      FAILED: Build did NOT complete successfully (0 packages loaded)
      FAILED: Build did NOT complete successfully (0 packages loaded)
      error: command '/usr/bin/bazel' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for tink
  Running setup.py clean for tink
Failed to build tink
ERROR: Could not build wheels for tink, which is required to install pyproject.toml-based projects
llnut commented 1 year ago

I used bazel5.1.1 to compile tink1.7.0 on aarch64 environment, the following error message is returned:

Collecting tink
  Using cached tink-1.7.0.tar.gz (175 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: absl-py in /root/python/miniconda3/lib/python3.10/site-packages (from tink) (1.4.0)
Requirement already satisfied: protobuf==3.20.1 in /root/python/miniconda3/lib/python3.10/site-packages (from tink) (3.20.1)
Building wheels for collected packages: tink
  Building wheel for tink (setup.py): started
  Building wheel for tink (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [242 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-cpython-310
      creating build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_handle_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/secret_key_access_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/tink_config.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_writer.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_handle.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_reader_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/secret_key_access.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_writer_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_reader.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/cleartext_keyset_handle.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/__init__.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/tink_config_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/cleartext_keyset_handle_test.py -> build/lib.linux-aarch64-cpython-310/tink
      creating build/lib.linux-aarch64-cpython-310/tink/integration
      copying tink/integration/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/integration
      creating build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_pybind11_python_file_object_adapter_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_raw_streaming_aead.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      creating build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_kms_envelope_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_kms_envelope_aead.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      creating build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_encrypt.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_decrypt.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      creating build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/keyset_builder_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/fake_kms_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/helper.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/bytes_io_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/bytes_io.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/helper_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/keyset_builder.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/fake_kms.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      creating build/lib.linux-aarch64-cpython-310/tink/internal
      copying tink/internal/big_integer_util_test.py -> build/lib.linux-aarch64-cpython-310/tink/internal
      copying tink/internal/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/internal
      copying tink/internal/big_integer_util.py -> build/lib.linux-aarch64-cpython-310/tink/internal
      creating build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_public_key_verify.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_public_key_sign.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      creating build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      creating build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      creating build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_set.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_set_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_set_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      creating build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_validator_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_public_key_sign.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_raw_jwt_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_json_util_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_validator.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_verified_jwt.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_public_key_verify.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_format.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_verified_jwt_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_raw_jwt.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwk_set_converter_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_error.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_json_util.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwk_set_converter.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_format_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_mac.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      creating build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/kms_envelope_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/chacha20_poly1305_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_gcm_hkdf_streaming_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/common_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/test_proto_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/config_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/empty_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hmac_prf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_siv_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/tink_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hpke_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/ed25519_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_gcm_siv_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/ecies_aead_hkdf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_ctr_hmac_aead_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_ctr_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/cached_dek_envelope_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/cached_dek_aead_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/kms_aead_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hmac_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/xchacha20_poly1305_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_cmac_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/prf_based_deriver_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_ecdsa_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_ctr_hmac_streaming_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/ecdsa_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hkdf_prf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_eax_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_hmac_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_gcm_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_cmac_prf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      creating build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_primitive_set.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_crypto_format_test.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_primitive_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_registry.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_crypto_format.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_tink_error.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_registry_test.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_primitive_set_test.py -> build/lib.linux-aarch64-cpython-310/tink/core
      creating build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      creating build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      running build_ext
      bazel clean --expunge
      Starting local Bazel server and connecting to it...
      INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
      bazel build //tink/cc/pybind:tink_bindings --compilation_mode=opt --incompatible_linkopts_to_linklibs
      Starting local Bazel server and connecting to it...
      Loading:
      Loading: 0 packages loaded
      Loading: 0 packages loaded
      Loading: 0 packages loaded
      Loading: 0 packages loaded
          currently loading: tink/cc/pybind
      Loading: 0 packages loaded
          currently loading: tink/cc/pybind
      Analyzing: target //tink/cc/pybind:tink_bindings (1 packages loaded, 0 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (32 packages loaded, 17 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (32 packages loaded, 17 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (32 packages loaded, 17 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (152 packages loaded, 3740 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (155 packages loaded, 5242 targets configured)
      ERROR: /root/.cache/bazel/_bazel_root/b1b301d955c3d9b7436d2897ff9c1693/external/curl/BUILD.bazel:24:11: configurable attribute "copts" in @curl//:curl doesn't match this configuration. Would a default condition help?

      Conditions checked:
       @curl//:mac_x86_64
       @curl//:darwin_arm64
       @curl//:linux_x86_64

      To see a condition's definition, run: bazel query --output=build <condition label>.

      This instance of @curl//:curl has configuration identifier 2036318. To inspect its configuration, run: bazel config 2036318.

      For more help, see https://docs.bazel.build/configurable-attributes.html#why-doesnt-my-select-choose-what-i-expect.

      Analyzing: target //tink/cc/pybind:tink_bindings (159 packages loaded, 5799 targets configured)
      INFO: Repository aws_checksums instantiated at:
        /tmp/pip-install-d21pibnt/tink_ccbbb08f0f8d4e2495fc939407073201/WORKSPACE:39:20: in <toplevel>
        /root/.cache/bazel/_bazel_root/b1b301d955c3d9b7436d2897ff9c1693/external/tink_cc_awskms/tink_cc_awskms_deps.bzl:37:21: in tink_cc_awskms_deps
      Repository rule http_archive defined at:
        /root/.cache/bazel/_bazel_root/b1b301d955c3d9b7436d2897ff9c1693/external/bazel_tools/tools/build_defs/repo/http.bzl:353:31: in <toplevel>
      ERROR: Analysis of target '//tink/cc/pybind:tink_bindings' failed; build aborted:
      INFO: Elapsed time: 21.668s
      INFO: 0 processes.
      FAILED: Build did NOT complete successfully (159 packages loaded, 5799 targets configured)
      FAILED: Build did NOT complete successfully (159 packages loaded, 5799 targets configured)
      error: command '/usr/bin/bazel' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for tink
  Running setup.py clean for tink
Failed to build tink
morambro commented 1 year ago

I used bazel5.1.1 to compile tink1.7.0 on aarch64 environment, the following error message is returned:

Collecting tink
  Using cached tink-1.7.0.tar.gz (175 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: absl-py in /root/python/miniconda3/lib/python3.10/site-packages (from tink) (1.4.0)
Requirement already satisfied: protobuf==3.20.1 in /root/python/miniconda3/lib/python3.10/site-packages (from tink) (3.20.1)
Building wheels for collected packages: tink
  Building wheel for tink (setup.py): started
  Building wheel for tink (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [242 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-cpython-310
      creating build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_handle_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/secret_key_access_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/tink_config.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_writer.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_handle.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_reader_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/secret_key_access.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_writer_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/_keyset_reader.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/cleartext_keyset_handle.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/__init__.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/tink_config_test.py -> build/lib.linux-aarch64-cpython-310/tink
      copying tink/cleartext_keyset_handle_test.py -> build/lib.linux-aarch64-cpython-310/tink
      creating build/lib.linux-aarch64-cpython-310/tink/integration
      copying tink/integration/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/integration
      creating build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_pybind11_python_file_object_adapter_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_rewindable_input_stream.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_raw_streaming_aead.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_decrypting_stream_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_file_object_adapter.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_streaming_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream_test.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      copying tink/streaming_aead/_encrypting_stream.py -> build/lib.linux-aarch64-cpython-310/tink/streaming_aead
      creating build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_kms_envelope_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_kms_envelope_aead.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      copying tink/aead/_aead_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/aead
      creating build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_encrypt.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_decrypt.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      copying tink/hybrid/_hybrid_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/hybrid
      creating build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/keyset_builder_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/fake_kms_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/helper.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/bytes_io_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/bytes_io.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/helper_test.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/keyset_builder.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      copying tink/testing/fake_kms.py -> build/lib.linux-aarch64-cpython-310/tink/testing
      creating build/lib.linux-aarch64-cpython-310/tink/internal
      copying tink/internal/big_integer_util_test.py -> build/lib.linux-aarch64-cpython-310/tink/internal
      copying tink/internal/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/internal
      copying tink/internal/big_integer_util.py -> build/lib.linux-aarch64-cpython-310/tink/internal
      creating build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_public_key_verify.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_public_key_sign.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      copying tink/signature/_signature_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/signature
      creating build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/_deterministic_aead_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      copying tink/daead/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/daead
      creating build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/_mac.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      copying tink/mac/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/mac
      creating build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_set.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_set_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_set_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      copying tink/prf/_prf_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/prf
      creating build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_validator_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_public_key_sign.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_raw_jwt_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_key_templates_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_json_util_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_validator.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_verified_jwt.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_mac_wrapper_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_key_templates.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_public_key_verify.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_format.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_verified_jwt_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_raw_jwt.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwk_set_converter_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_error.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_json_util.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwk_set_converter.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_format_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_mac.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_signature_wrappers.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      copying tink/jwt/_jwt_hmac_key_manager_test.py -> build/lib.linux-aarch64-cpython-310/tink/jwt
      creating build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/kms_envelope_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/chacha20_poly1305_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_gcm_hkdf_streaming_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/common_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/test_proto_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/config_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/empty_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hmac_prf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_siv_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/tink_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hpke_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/ed25519_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_gcm_siv_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/ecies_aead_hkdf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_ctr_hmac_aead_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_ctr_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/cached_dek_envelope_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/cached_dek_aead_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/kms_aead_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hmac_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/xchacha20_poly1305_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_cmac_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/prf_based_deriver_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_ecdsa_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_ctr_hmac_streaming_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/ecdsa_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/hkdf_prf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_eax_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/jwt_hmac_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_gcm_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/aes_cmac_prf_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/rsa_ssa_pss_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      copying tink/proto/rsa_ssa_pkcs1_pb2.py -> build/lib.linux-aarch64-cpython-310/tink/proto
      creating build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_primitive_set.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_crypto_format_test.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_primitive_wrapper.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_registry.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_crypto_format.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_key_manager.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_tink_error.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_registry_test.py -> build/lib.linux-aarch64-cpython-310/tink/core
      copying tink/core/_primitive_set_test.py -> build/lib.linux-aarch64-cpython-310/tink/core
      creating build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_client.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/_aws_kms_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      copying tink/integration/awskms/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/integration/awskms
      creating build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_client.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/_gcp_kms_aead_test.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      copying tink/integration/gcpkms/__init__.py -> build/lib.linux-aarch64-cpython-310/tink/integration/gcpkms
      running build_ext
      bazel clean --expunge
      Starting local Bazel server and connecting to it...
      INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
      bazel build //tink/cc/pybind:tink_bindings --compilation_mode=opt --incompatible_linkopts_to_linklibs
      Starting local Bazel server and connecting to it...
      Loading:
      Loading: 0 packages loaded
      Loading: 0 packages loaded
      Loading: 0 packages loaded
      Loading: 0 packages loaded
          currently loading: tink/cc/pybind
      Loading: 0 packages loaded
          currently loading: tink/cc/pybind
      Analyzing: target //tink/cc/pybind:tink_bindings (1 packages loaded, 0 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (32 packages loaded, 17 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (32 packages loaded, 17 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (32 packages loaded, 17 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (152 packages loaded, 3740 targets configured)
      Analyzing: target //tink/cc/pybind:tink_bindings (155 packages loaded, 5242 targets configured)
      ERROR: /root/.cache/bazel/_bazel_root/b1b301d955c3d9b7436d2897ff9c1693/external/curl/BUILD.bazel:24:11: configurable attribute "copts" in @curl//:curl doesn't match this configuration. Would a default condition help?

      Conditions checked:
       @curl//:mac_x86_64
       @curl//:darwin_arm64
       @curl//:linux_x86_64

      To see a condition's definition, run: bazel query --output=build <condition label>.

      This instance of @curl//:curl has configuration identifier 2036318. To inspect its configuration, run: bazel config 2036318.

      For more help, see https://docs.bazel.build/configurable-attributes.html#why-doesnt-my-select-choose-what-i-expect.

      Analyzing: target //tink/cc/pybind:tink_bindings (159 packages loaded, 5799 targets configured)
      INFO: Repository aws_checksums instantiated at:
        /tmp/pip-install-d21pibnt/tink_ccbbb08f0f8d4e2495fc939407073201/WORKSPACE:39:20: in <toplevel>
        /root/.cache/bazel/_bazel_root/b1b301d955c3d9b7436d2897ff9c1693/external/tink_cc_awskms/tink_cc_awskms_deps.bzl:37:21: in tink_cc_awskms_deps
      Repository rule http_archive defined at:
        /root/.cache/bazel/_bazel_root/b1b301d955c3d9b7436d2897ff9c1693/external/bazel_tools/tools/build_defs/repo/http.bzl:353:31: in <toplevel>
      ERROR: Analysis of target '//tink/cc/pybind:tink_bindings' failed; build aborted:
      INFO: Elapsed time: 21.668s
      INFO: 0 processes.
      FAILED: Build did NOT complete successfully (159 packages loaded, 5799 targets configured)
      FAILED: Build did NOT complete successfully (159 packages loaded, 5799 targets configured)
      error: command '/usr/bin/bazel' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for tink
  Running setup.py clean for tink
Failed to build tink

Tink Py v1.7.0 depends on https://github.com/google/tink/tree/1.7/cc/integration/awskms, and the BUILD.bazel file for curl doesn't have a config_setting for "cpu": "aarch64" (see here). This seems the cause of this issue.

nchepanov commented 1 year ago

Unfortunately the source distribution is broken

The published .tar.gz from https://pypi.org/project/tink/1.7.0/#files misplaces the cc/ folder, which causes Bazel to fail the build, since it expects to find cc/ that's actually located here tink/cc/ in the archive. As far as I can tell it's not possible to configure this while pip installing without patching the source code.

no such package '@tink_cc//':
The repository's path is "/tmp/tink/python/../cc" (absolute: "/tmp/tink/cc")
but it does not exist or is not a directory.
Dockerfile to reproduce the error ```Dockerfile FROM quay.io/pypa/manylinux2014_aarch64 ARG TARGETPLATFORM ARG BAZEL_VERSION=5.1.1 ARG PROTOC_VERSION=3.20.3 ENV BAZEL_CXXOPTS="-std=c++14" # Install Google Bazel and protoc for arm64 RUN curl -L -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-linux-arm64 && \ chmod +x bazel-$BAZEL_VERSION-linux-arm64 && \ mv bazel-$BAZEL_VERSION-linux-arm64 /usr/local/bin/bazel && \ curl -L -O https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-aarch_64.zip && \ unzip protoc-$PROTOC_VERSION-linux-aarch_64.zip && \ chmod +x bin/protoc && \ mv bin/protoc /usr/local/bin/protoc # pip_repository.bzl requires python3 to be in the PATH RUN ln -sf $(which python3.8) /usr/local/bin/python3 RUN python3 -m pip wheel tink==1.7.0 --no-deps && \ auditwheel repair tink*.whl --wheel-dir dist/ ```

But It can be built directly from Github

I was able to build the wheel by downloading https://github.com/google/tink/archive/refs/tags/v1.7.0.tar.gz and changing nothing else in the Dockerfile above:

Dockerfile to reproduce ```Dockerfile FROM quay.io/pypa/manylinux2014_aarch64 ARG TARGETPLATFORM ARG BAZEL_VERSION=5.1.1 ARG PROTOC_VERSION=3.20.3 ENV BAZEL_CXXOPTS="-std=c++14" # Install Google Bazel and protoc for arm64 RUN curl -L -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-linux-arm64 && \ chmod +x bazel-$BAZEL_VERSION-linux-arm64 && \ mv bazel-$BAZEL_VERSION-linux-arm64 /usr/local/bin/bazel && \ curl -L -O https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-aarch_64.zip && \ unzip protoc-$PROTOC_VERSION-linux-aarch_64.zip && \ chmod +x bin/protoc && \ mv bin/protoc /usr/local/bin/protoc # pip_repository.bzl requires python3 to be in the PATH RUN ln -sf $(which python3.8) /usr/local/bin/python3 RUN curl -L -O https://github.com/google/tink/archive/refs/tags/v1.7.0.tar.gz && tar -xzf v1.7.0.tar.gz RUN python3 -m pip wheel tink-1.7.0/python/ --no-deps && \ auditwheel repair tink*.whl --wheel-dir dist/ ```

Is it possible to please publish arm64 wheels for 1.7.0 ?

Many companies are moving to arm64, and it's not ideal that these companies are forced to build the wheel internally. Two questions:

morambro commented 1 year ago

Many companies are moving to arm64, and it's not ideal that these companies are forced to build the wheel internally. Two questions:

  • How difficult would it be to publish a 1.7.0 wheel?

We are working on a patch release for 1.7.0 with minor fixes, but this is not going to include a wheel for arm64

  • What is the release schedule for the next version (1.8.0) ?

v1.8.0 should be completed by the end of Q3/23; the plan is also to include a wheel for Linux arm64.

morambro commented 12 months ago

1.8.0 is out (notes, pypi). We published binary wheels for AArch64 Linux. Closing this issue.