Skip to content
This repository has been archived by the owner on Apr 17, 2024. It is now read-only.

tink cannot be installed on arm64 linux #694

Closed
ifanheng opened this issue May 31, 2023 · 9 comments
Closed

tink cannot be installed on arm64 linux #694

ifanheng opened this issue May 31, 2023 · 9 comments
Assignees
Labels

Comments

@ifanheng
Copy link

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:

  • 6.2.0
  • 5.4.1
  • 4.2.4
  • 3.7.2
  • 3.4.0
  • 3.3.0
  • 0.29.1
@chuckx
Copy link
Contributor

chuckx commented May 31, 2023

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
Copy link
Author

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
Copy link
Contributor

chuckx commented Jun 5, 2023

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.

@tholenst tholenst added the p3 label Jun 5, 2023
@chuckx chuckx self-assigned this Jun 5, 2023
@ifanheng
Copy link
Author

ifanheng commented Jun 7, 2023

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
Copy link

llnut commented Jun 7, 2023

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
Copy link
Contributor

morambro commented Jun 7, 2023

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.

@morambro morambro self-assigned this Jun 7, 2023
copybara-service bot pushed a commit to tink-crypto/tink-cc-awskms that referenced this issue Jun 8, 2023
…S instead of CPU

This relaxes some (currently) unnecessary constraint on the CPU type.
Also add a default condition to `@platform:incompatible` otherwise.

tink-crypto/tink#694

PiperOrigin-RevId: 538729756
Change-Id: Ia5ff263733ee97a11f0444ec3bc524173e9f6e9e
morambro added a commit that referenced this issue Jun 8, 2023
…S instead of CPU

This relaxes some (currently) unnecessary constraint on the CPU type.
Also add a default condition to `@platform:incompatible` otherwise.

#694

PiperOrigin-RevId: 538729756
copybara-service bot pushed a commit to tink-crypto/tink-cc-awskms that referenced this issue Jun 8, 2023
…m/*.c based on @platforms//cpu

tink-crypto/tink#694

PiperOrigin-RevId: 538872149
Change-Id: Ie403af5bd1cfe073a752d0a1c180bedefbcd0c82
morambro added a commit that referenced this issue Jun 8, 2023
…m/*.c based on @platforms//cpu

#694

PiperOrigin-RevId: 538872149
@nchepanov
Copy link

nchepanov commented Aug 4, 2023

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
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
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:

  • How difficult would it be to publish a 1.7.0 wheel?
  • What is the release schedule for the next version (1.8.0) ?

@morambro
Copy link
Contributor

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
Copy link
Contributor

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

6 participants