Code Monkey home page Code Monkey logo

aws-crt-python's Introduction

AWS CRT Python

Version

Python 3 bindings for the AWS Common Runtime.

License

This library is licensed under the Apache 2.0 License.

Minimum Requirements:

  • Python 3.7+

Installation

To install from pip:

python3 -m pip install awscrt

To install from Github:

git clone https://github.com/awslabs/aws-crt-python.git
cd aws-crt-python
git submodule update --init
python3 -m pip install .

To use from your Python application, declare awscrt as a dependency in your setup.py file.

OpenSSL and LibCrypto (Unix only)

aws-crt-python does not use OpenSSL for TLS. On Apple and Windows devices, the OS's default TLS library is used. On Unix devices, s2n-tls is used. But s2n-tls uses libcrypto, the cryptography math library bundled with OpenSSL.

To simplify installation, aws-crt-python has its own copy of libcrypto. This lets you install a wheel from PyPI without having OpenSSL installed. Unix wheels on PyPI come with libcrypto statically compiled in. Code to build libcrypto comes from AWS-LC. AWS-LC's code is included in the PyPI source package, and the git repository includes it as a submodule.

If you need aws-crt-python to use the libcrypto included on your system, set environment variable AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 while building from source:

AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 python3 -m pip install --no-binary :all: --verbose awscrt

( --no-binary :all: ensures you do not use the precompiled wheel from PyPI)

You can ignore all this on Windows and Apple platforms, where aws-crt-python uses the OS's default libraries for TLS and cryptography math.

Mac-Only TLS Behavior

Please note that on Mac, once a private key is used with a certificate, that certificate-key pair is imported into the Mac Keychain. All subsequent uses of that certificate will use the stored private key and ignore anything passed in programmatically. Beginning in v0.6.2, when a stored private key from the Keychain is used, the following will be logged at the "info" log level:

static: certificate has an existing certificate-key pair that was previously imported into the Keychain. Using key from Keychain instead of the one provided.

Crash Handler

You can enable the crash handler by setting the environment variable AWS_CRT_CRASH_HANDLER=1. This will print the callstack to stderr in the event of a fatal error.

aws-crt-python's People

Contributors

alexw91 avatar alfred2g avatar bretambrose avatar coldencullen avatar davidogunsaws avatar dmitriymusatkin avatar graebm avatar ilevyor avatar jayvdb avatar jmklix avatar jonathanhenson avatar justinboswell avatar knightjoel avatar nforro avatar rccarper avatar rpcme avatar sbstevek avatar sfod avatar singku-china avatar tingdaok avatar twistedtwigleg avatar waahm7 avatar xiazhvera avatar yasminetalby avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-crt-python's Issues

Issue installing on Raspbian with GCC 8.3.0

Hi!

I ran into multiple issues trying to install awscrt on Raspbian due to warnings (stringop-truncation and cast-function-type) being treated as errors, thus failing the build.

I managed to install it with the following command:

CFLAGS="-Wno-stringop-truncation -Wno-cast-function-type" pip3 install awscrt

GCC version: 8.3.0-6+rpi1
PIP version: 18.1
Python version: 3.7.3
CMake version: 3.13.4

Cross compile with existing C CRT fails with missing import

the file is in source/, not sure why the import path is this way or what needs to be set in the environment. I am setting AWS_C_INSTALL = "${D}/usr" where ${D} is sysroot. I do not see any other way to manipulate include path. Thank you!

x86_64-poky-linux-gcc -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/python3/3.9.1-r0=/usr/src/debug/python3/3.9.1-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/python3/3.9.1-r0=/usr/src/debug/python3/3.9.1-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot= -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot-native= -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/python3/3.9.1-r0=/usr/src/debug/python3/3.9.1-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/python3/3.9.1-r0=/usr/src/debug/python3/3.9.1-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot= -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot-native= -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0=/usr/src/debug/aws-crt-python/0.10.3-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0=/usr/src/debug/aws-crt-python/0.10.3-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot= -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot-native= -Wl,-Bsymbolic -fPIC -I/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot/usr/include/python3.9 -I/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/git/build/deps/install/include -c source/module.c -o /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/build/temp.linux-x86_64-3.9/source/module.o -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0=/usr/src/debug/aws-crt-python/0.10.3-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0=/usr/src/debug/aws-crt-python/0.10.3-r0 -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot= -fdebug-prefix-map=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.10.3-r0/recipe-sysroot-native= -Wl,-Bsymbolic -Wextra -Werror -Wno-strict-aliasing -std=gnu99
| source/module.c:26:10: fatal error: aws/s3/s3.h: No such file or directory
|    26 | #include <aws/s3/s3.h>
|       |          ^~~~~~~~~~~~~
| compilation terminated.

Install fails on Mac Os 11.2.3 Apple clang version 12.0.5 (clang-1205.0.22.9)

Doing python3 -m pip install awscrt=0.11.4 fails with the following log:

...
Install the project...
  -- Install configuration: "RelWithDebInfo"
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/lib/libaws-c-s3.a
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/include/aws/s3/exports.h
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/include/aws/s3/s3.h
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/include/aws/s3/s3_client.h
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/lib/aws-c-s3/cmake/static/aws-c-s3-targets.cmake
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/lib/aws-c-s3/cmake/static/aws-c-s3-targets-relwithdebinfo.cmake
  -- Installing: /private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/lib/aws-c-s3/cmake/aws-c-s3-config.cmake
  building '_awscrt' extension
  creating build/temp.macosx-10.15-x86_64-3.9
  creating build/temp.macosx-10.15-x86_64-3.9/source
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -I/usr/local/include -I/usr/local/opt/[email protected]/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/private/var/folders/q9/psg42mvd41d7wlcq8p914cfrx6v5wh/T/pip-install-fp6acwn8/awscrt_b4fc62abf14341c1a4f691dae84b4699/build/deps/install/include -c source/auth_credentials.c -o build/temp.macosx-10.15-x86_64-3.9/source/auth_credentials.o -Wextra -Werror -Wno-strict-aliasing -std=gnu99
  source/auth_credentials.c:647:54: error: variable has incomplete type 'struct aws_credentials_provider_delegate_options'
      struct aws_credentials_provider_delegate_options options = {
                                                       ^
  source/auth_credentials.c:647:12: note: forward declaration of 'struct aws_credentials_provider_delegate_options'
      struct aws_credentials_provider_delegate_options options = {
             ^
  source/auth_credentials.c:657:23: error: implicit declaration of function 'aws_credentials_provider_new_delegate' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      binding->native = aws_credentials_provider_new_delegate(allocator, &options);
                        ^
  source/auth_credentials.c:657:23: note: did you mean 'aws_py_credentials_provider_new_delegate'?
  source/auth_credentials.c:625:11: note: 'aws_py_credentials_provider_new_delegate' declared here
  PyObject *aws_py_credentials_provider_new_delegate(PyObject *self, PyObject *args) {
            ^
  2 errors generated.
  error: command '/usr/bin/clang' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for awscrt

Cross-Compiling with buildroot

Hi,

I came across an error when using aws-crt-python in a buildroot project.
I was able to reproduce this easily using buildroot release 2019.11.1 and the buildroot-internal toolchain for an arm cortex-a7.
I added the packages (awscrt & awsiotsdk) using buildroot's scanpypi utility.
I also enabled host-cmake, libssl and pic/pie in the project.

At first, I ended up with this error:

CMake Error at ./buildroot-awscrt/buildroot-2019.11.1/output/host/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find LibCrypto (missing: LibCrypto_INCLUDE_DIR)
Call Stack (most recent call first):
 ./buildroot-awscrt/buildroot-2019.11.1/output/host/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindLibCrypto.cmake:61 (find_package_handle_standard_args)
  CMakeLists.txt:175 (find_package)

I took a look at setup.py and added an environment variable like so:

PYTHON_AWSCRT_ENV = AWS_C_INSTALL=$(STAGING_DIR)/usr 

At the next try, it built fine, but crashed on runtime when loading the .so due to a missing symbol (pthread_atfork). So I added these error flags to make it visible during compile time. (To both LD and CFLAGS. A bit overkill, but at least this way I am sure they work. :))

 -Wl,--no-undefined -Wl,--no-allow-shlib-undefined 

Now I got until link stage, where I ended up with this error (paths shortened, formatted)

./buildroot-awscrt/buildroot-2019.11.1/output/host/bin/arm-buildroot-linux-gnueabihf-gcc
     -shared 
    -Wl,--no-undefined 
    -Wl,--no-allow-shlib-undefined 
    -D_LARGEFILE_SOURCE 
    -D_LARGEFILE64_SOURCE 
    -D_FILE_OFFSET_BITS=64 
    -Os -Wl,--no-undefined -Wl,--no-allow-shlib-undefined -D_LARGEFILE_SOURCE 
    -D_LARGEFILE64_SOURCE 
    -D_FILE_OFFSET_BITS=64 
    build/temp.linux-x86_64-3.8/source/http_stream.o 
    build/temp.linux-x86_64-3.8/source/crypto.o 
    build/temp.linux-x86_64-3.8/source/http_message.o   
    build/temp.linux-x86_64-3.8/source/http_connection.o 
    build/temp.linux-x86_64-3.8/source/io.o build/temp.linux-x86_64-3.8/source/http_headers.o 
    build/temp.linux-x86_64-3.8/source/mqtt_client_connection.o 
    build/temp.linux-x86_64-3.8/source/auth_signing_config.o
    build/temp.linux-x86_64-3.8/source/auth_signer.o 
    build/temp.linux-x86_64-3.8/source/http_proxy.o 
    build/temp.linux-x86_64-3.8/source/module.o     
    build/temp.linux-x86_64-3.8/source/mqtt_client.o 
    build/temp.linux-x86_64-3.8/source/auth_credentials.o 
    -L./buildroot-awscrt/buildroot-2019.11.1/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib 
    -L./buildroot-awscrt/buildroot-2019.11.1/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib 
    -laws-c-mqtt    
    -laws-c-auth    
    -laws-c-http 
    -laws-c-compression 
    -laws-c-cal 
    -laws-c-io 
    -laws-c-common 
    -ls2n 
    -l:libcrypto.a 
    -lrt 
    -o build/lib.linux-x86_64-3.8/_awscrt.cpython-38-arm-linux-gnueabihf.so 
    -Wl,--no-undefined 
    -Wl,--no-allow-shlib-undefined
./buildroot-awscrt/buildroot-2019.11.1/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/8.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: ./buildroot-awscrt/buildroot-2019.11.1/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libcrypto.a(threads_pthread.o): undefined reference to symbol 'pthread_rwlock_destroy@@GLIBC_2.4'
./buildroot-awscrt/buildroot-2019.11.1/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/8.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: ./buildroot-awscrt/buildroot-2019.11.1/output/host/arm-buildroot-linux-gnueabihf/sysroot/lib/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
error: 
    command './buildroot-awscrt/buildroot-2019.11.1/output/host/bin/arm-buildroot-linux-gnueabihf-gcc' failed with exit status 1
        package/pkg-generic.mk:238: 
            recipe for target './buildroot-awscrt/buildroot-2019.11.1/output/build/python-awscrt-0.5.11/.stamp_built' failed
make: *** [./buildroot-awscrt/buildroot-2019.11.1/output/build/python-awscrt-0.5.11/.stamp_built] Error 1

It seems a bit odd that the build system creates folders for x86 (My host architecture)
But in the end it looks like I got working by adding the libraries manually like so: (More testing pending)

PYTHON_AWSCRT_ENV += CFLAGS="$(TARGET_CFLAGS) -lpthread -lm -ldl -lpython3.8 -Wl,--no-undefined -Wl,--no-allow-shlib-undefined"

Is there a better way to cross-compile this project?

Please let me know if I you need more information!

Cheers,

Niklas

Memory leak problem

Hello,
We are using the lib : awsiotsdk2 in order to connect our AWS IoT things to our server.
We also use a Twisted server to manage the connections.
However, when the connect/disconnect workflow for our things was implemented with the old awsiotsdk we had no problem except everything was really slow as it was in full Python...
Since we use the new lib, it's seems better but we clearly encounter a memory leak we can't resolve.
Our code is almost exactly as the pubsub.py example so I don't know where we could make something wrong.

It's seems that the mqtt_client.disconnect() doesn't clean up all resources and keep stocking some informations.

If we follow what the code do:

def disconnect(self):
    """Close the connection (async).

    Returns:
        concurrent.futures.Future: Future which completes when the connection is closed.
        The future will contain an empty dict.
    """

    future = Future()

    def on_disconnect():
        future.set_result(dict())

    try:
        _awscrt.mqtt_client_connection_disconnect(self._binding, on_disconnect)
    except Exception as e:
        future.set_exception(e)

    return future

And when we look at the aws-c-mqtt lib, it's said in the README that:

int aws_mqtt_client_connection_disconnect(struct aws_mqtt_client_connection *connection);

Closes an open connection. Does not clean up any resources, that's to be done by aws_mqtt_client_connection_destroy, probably from the on_disconnected connection callback.

It's look like exactly the problem we encounter: not all resources are cleaned up.
But the aws_mqtt_client_connection_destroy is never call in the on_disconnected callback.

Do you plan to manage this case and implement it soon?

Does not compile on ARM64

aarch64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-aarch64-3.6/source/auth_credentials.o build/temp.linux-aarch64-3.6/source/http_stream.o build/temp.linux-aarch64-3.6/source/auth_signing_config.o build/temp.linux-aarch64-3.6/source/mqtt_client_connection.o build/temp.linux-aarch64-3.6/source/s3_client.o build/temp.linux-aarch64-3.6/source/event_stream_rpc_client_continuation.o build/temp.linux-aarch64-3.6/source/crypto.o build/temp.linux-aarch64-3.6/source/s3_meta_request.o build/temp.linux-aarch64-3.6/source/io.o build/temp.linux-aarch64-3.6/source/mqtt_client.o build/temp.linux-aarch64-3.6/source/common.o build/temp.linux-aarch64-3.6/source/http_connection.o build/temp.linux-aarch64-3.6/source/http_headers.o build/temp.linux-aarch64-3.6/source/module.o build/temp.linux-aarch64-3.6/source/http_proxy.o build/temp.linux-aarch64-3.6/source/http_message.o build/temp.linux-aarch64-3.6/source/event_stream_rpc_client_connection.o build/temp.linux-aarch64-3.6/source/event_stream_headers.o build/temp.linux-aarch64-3.6/source/auth_signer.o -L/tmp/pip-3xrgehgh-build/build/deps/install/lib -l:libaws-c-s3.a -l:libaws-c-mqtt.a -l:libaws-c-auth.a -l:libaws-c-http.a -l:libaws-c-event-stream.a -l:libaws-c-compression.a -l:libaws-checksums.a -l:libaws-c-io.a -l:libaws-c-cal.a -l:libaws-c-common.a -l:libs2n.a -l:libcrypto.a -lrt -o build/lib.linux-aarch64-3.6/_awscrt.cpython-36m-aarch64-linux-gnu.so
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): In function `sha1_block_armv8':
(.text+0x1240): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(chacha-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(chacha-armv8.o):(.text+0x20): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): In function `poly1305_emit_neon':
(.text+0x9a0): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): In function `sha256_block_data_order':
(.text+0xf88): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): In function `sha512_block_data_order':
(.text+0x10c8): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1

----------------------------------------

Command "/usr/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-3xrgehgh-build/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-a_crb49v-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-3xrgehgh-build/

You can see above that I already tried adding -fPIC to extra compiler flags.

Errors in aws-lc/crypto when compiling

I'm trying to package awscrt on Fedora 34, but the compiler is throwing errors in some of the crypto code:

-- The C compiler identification is GNU 11.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking for module 'libunwind-generic'
--   Found libunwind-generic, version 1.4.0
-- Go not found. Disabling some code generation and using pre-generated code in generated-src/
-- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
Copying platform assembly files from /builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/generated-src/linux-x86_64/crypto/ to /builddir/build/BUILD/awscrt-0.11.22/build/deps/aws-lc/crypto
-- Configuring done
-- Generating done
-- Build files have been written to: /builddir/build/BUILD/awscrt-0.11.22/build/deps/aws-lc
[  0%] Built target global_target
Scanning dependencies of target fipsmodule
[  0%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-x86_64.S.o
[  1%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
[  1%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.S.o
[  1%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.S.o
[  2%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
[  2%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.S.o
[  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/vpaes-x86_64.S.o
[  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rdrand-x86_64.S.o
[  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-ssse3-x86_64.S.o
[  4%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.S.o
[  5%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha1-x86_64.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256_beeu-x86_64-asm.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha512-x86_64.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rsaz-avx2.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont5.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha256-x86_64.S.o
[  7%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont.S.o
In file included from /builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/bcm.c:104:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c: In function ‘SHA224_Final’:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: error: ‘SHA256_Final’ accessing 32 bytes in a region of size 28 [-Werror=stringop-overflow=]
  122 |   return SHA256_Final(out, ctx);
      |          ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: note: referencing argument 1 of type ‘uint8_t *’
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:171:20: note: in a call to function ‘SHA256_Final’
  171 | #define HASH_FINAL SHA256_Final
      |                    ^~~~~~~~~~~~
In function ‘SHA224_Final’,
    inlined from ‘SHA224’ at /builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:100:3:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: error: ‘SHA256_Final’ accessing 32 bytes in a region of size 28 [-Werror=stringop-overflow=]
  122 |   return SHA256_Final(out, ctx);
      |          ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c: In function ‘SHA224’:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: note: referencing argument 1 of type ‘uint8_t *’
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:171:20: note: in a call to function ‘SHA256_Final’
  171 | #define HASH_FINAL SHA256_Final
      |                    ^~~~~~~~~~~~
cc1: all warnings being treated as errors
gmake[2]: *** [crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:76: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:223: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

pip install fails on Cygwin

I was updating my AWSCLI v2 from 2.1.29 to 2.2.3 and I got this AWSCRT build/install error:

{...}
Building wheels for collected packages: awscrt, cryptography
    ERROR: Command errored out with exit status 1:
     command: /cygdrive/c/Users/allen/.virtualenvs/awscliv2/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py'"'"'; __file__='"'"'/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-z_23s1ai/install-record.txt --single-version-externally-managed --compile --install-headers /cygdrive/c/Users/allen/.virtualenvs/awscliv2/include/site/python3.8/awscrt
         cwd: /tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/
    Complete output (56 lines):
    running install
    running build
    running build_py
    creating build/lib.cygwin-3.2.0-x86_64-3.8
    creating build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/auth.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/common.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/crypto.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/exceptions.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/http.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/io.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/mqtt.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/s3.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/_test.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    copying awscrt/__init__.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt
    creating build/lib.cygwin-3.2.0-x86_64-3.8/awscrt/eventstream
    copying awscrt/eventstream/rpc.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt/eventstream
    copying awscrt/eventstream/__init__.py -> build/lib.cygwin-3.2.0-x86_64-3.8/awscrt/eventstream
    running build_ext
    --- Building dependency: aws-lc (RelWithDebInfo) ---
    /cygdrive/c/ProgramData/scoop/shims/cmake -DCMAKE_PREFIX_PATH=/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/build/deps/install -DCMAKE_INSTALL_PREFIX=/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_LIBSSL=OFF /tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/crt/aws-lc
    CMake Error: The source directory "/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/crt/aws-lc" does not exist.
    Specify --help for usage, or press the help button on the CMake GUI.
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py", line 263, in <module>
        setuptools.setup(
      File "/cygdrive/c/Users/allen/.virtualenvs/awscliv2/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/cygdrive/c/Users/allen/.virtualenvs/awscliv2/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/usr/lib/python3.8/distutils/command/install.py", line 556, in run
        self.run_command('build')
      File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/lib/python3.8/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py", line 197, in run
        self._build_dependency(lib)
      File "/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py", line 175, in _build_dependency
        subprocess.check_call(cmake_args)
      File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/cygdrive/c/ProgramData/scoop/shims/cmake', '-DCMAKE_PREFIX_PATH=/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/build/deps/install', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/build/deps/install', '-DBUILD_SHARED_LIBS=OFF', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DBUILD_TESTING=OFF', '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', '-DBUILD_LIBSSL=OFF', '/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/crt/aws-lc']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /cygdrive/c/Users/allen/.virtualenvs/awscliv2/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py'"'"'; __file__='"'"'/tmp/pip-install-logv0wqy/awscrt_3b94cb75e77f40b88a9c8fd739e1e147/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-z_23s1ai/install-record.txt --single-version-externally-managed --compile --install-headers /cygdrive/c/Users/allen/.virtualenvs/awscliv2/include/site/python3.8/awscrt Check the logs for full command output.

Basic Python information:

$ python -V
Python 3.8.10
$ pip -V
pip 21.0.1 from /cygdrive/c/Users/allen/.virtualenvs/awscliv2/lib/python3.8/site-packages/pip (python 3.8)
$ virtualenv --version
virtualenv 20.4.2 from /cygdrive/c/Users/allen/.virtualenvs/awscliv2/lib/python3.8/site-packages/virtualenv/__init__.py
$ aws --version
aws-cli/2.1.29 Python/3.8.10 CYGWIN_NT-10.0-19042/3.2.0-340.x86_64 source/x86_64 prompt/off
$ uname -a
CYGWIN_NT-10.0 FOUREYES 3.2.0(0.340/5/3) 2021-03-29 08:42 x86_64 Cygwin

Orange Pie Zero cant handle this library

Device : Orange Pie Zero ( 512 MB Memory )

Collecting awsiotsdk
  Downloading https://files.pythonhosted.org/packages/ed/42/4ce086a53251bf4ee82764402ec63b3e60ea15d879c258e954f0283e1b44/awsiotsdk-1.5.8-py3-none-any.whl (42kB)
    100% |████████████████████████████████| 51kB 1.1MB/s
Collecting awscrt==0.10.8 (from awsiotsdk)
  Downloading https://files.pythonhosted.org/packages/19/07/1e06d8fa945399e535ceeae8e98428d57b9cedea269e61b9244cd90e2a64/awscrt-0.10.8.tar.gz (2.8MB)
    100% |████████████████████████████████| 2.9MB 5.6MB/s
Installing collected packages: awscrt, awsiotsdk
  Running setup.py install for awscrt ... \ssKilled

I tried increasing swap file, not worked.
I tried with both python3.8 and python3.7

pip installation logs

2021-03-22T09:57:45,707 Using pip 21.0.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
2021-03-22T09:57:45,718 Non-user install because site-packages writeable
2021-03-22T09:57:46,169 Created temporary directory: /tmp/pip-ephem-wheel-cache-b9nj58e8
2021-03-22T09:57:46,171 Created temporary directory: /tmp/pip-req-tracker-nzui7aj2
2021-03-22T09:57:46,172 Initialized build tracking at /tmp/pip-req-tracker-nzui7aj2
2021-03-22T09:57:46,172 Created build tracker: /tmp/pip-req-tracker-nzui7aj2
2021-03-22T09:57:46,173 Entered build tracker: /tmp/pip-req-tracker-nzui7aj2
2021-03-22T09:57:46,174 Created temporary directory: /tmp/pip-install-cdh8zab8
2021-03-22T09:57:46,223 1 location(s) to search for versions of awsiotsdk:
2021-03-22T09:57:46,223 * https://pypi.org/simple/awsiotsdk/
2021-03-22T09:57:46,224 Fetching project page and analyzing links: https://pypi.org/simple/awsiotsdk/
2021-03-22T09:57:46,226 Getting page https://pypi.org/simple/awsiotsdk/
2021-03-22T09:57:46,230 Found index url https://pypi.org/simple
2021-03-22T09:57:47,917   Found link https://files.pythonhosted.org/packages/38/04/fc6effef82ba8e7dec9c00d6ac903ad403e99b976450bfe658693a536507/awsiotsdk-0.2.4-py2.py3-none-any.whl#sha256=12508824840dfc660d96f6eb79be88cbed117777c0bb7b12f99307edf5ea0d79 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 0.2.42021-03-22T09:57:47,920   Found link https://files.pythonhosted.org/packages/f0/2d/0d6ebbf6234000f89944cd7c7b5436b9e1f8c3f96fa026238c6028edf365/awsiotsdk-0.2.4.tar.gz#sha256=79e0eb613f7d37a52a4836c82fae4acfe072079783da622da8764cd025064fc3 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 0.2.4
2021-03-22T09:57:47,923   Found link https://files.pythonhosted.org/packages/ed/3e/8a09697e120436452eafa014d27dd2dd5314cfc3ab9476c5531f6ad84740/awsiotsdk-0.2.9-py2.py3-none-any.whl#sha256=f441e460a53e43dc0830253c4c13cc7d734a6bd3a648976a48dd83437170c803 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 0.2.9
2021-03-22T09:57:47,925   Found link https://files.pythonhosted.org/packages/30/a2/1f0c8f653cb9ab65bcfaff087fd5930368262a38cab2278debd69f7ae92b/awsiotsdk-0.2.9.tar.gz#sha256=dee9f79ebca96a709fb72f0c276fbb3283620b5c833e77e39b10ee1fd7a77ea4 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 0.2.9
2021-03-22T09:57:47,927   Found link https://files.pythonhosted.org/packages/61/de/be6a018656c5157989d34e3b6c49c72a6a2acab95359f7a8f4f9b5f293eb/awsiotsdk-0.3.0-py2.py3-none-any.whl#sha256=3095270161410d756ee4337fd833a86c146aa12e0cd6b695f2223e46aa576271 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 0.3.0
2021-03-22T09:57:47,929   Found link https://files.pythonhosted.org/packages/3c/19/a43ecf40f9dc3c7e7b6d1c8794d3efb2a526c0e82dde3d877fd1e54a7fcd/awsiotsdk-0.3.0.tar.gz#sha256=b06815b58b5986487e77d2747757aab20cd54b88e24903077dc2f2e43f19221f (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 0.3.0
2021-03-22T09:57:47,932   Found link https://files.pythonhosted.org/packages/1b/9f/ec49b84500d684bf60501bed2a3abf56d067e01e915bb26ad9de240f2920/awsiotsdk-1.0.2-py2.py3-none-any.whl#sha256=daa5f1b8ea821f6a67cd79887e1e8402ba1d9e18217e595f87731f8d0ca78959 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.2
2021-03-22T09:57:47,934   Found link https://files.pythonhosted.org/packages/84/aa/18082eae2dde883b9156c68c0aa38ab25f16a7fb58e1fb25b9b27a891766/awsiotsdk-1.0.2.tar.gz#sha256=dc8f9b342159ccdea2aab15daae38afd470367f85e02174b9ee2a2e02c9b1796 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.2
2021-03-22T09:57:47,936   Found link https://files.pythonhosted.org/packages/12/90/192226e87048d6606ca6ac42b7844b025050af529f7089fc5ddfab17e7fc/awsiotsdk-1.0.3-py2.py3-none-any.whl#sha256=376430255e5a050cf08256a2d09f11b2a235913d6222d45b8a402ff20e6adc86 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.3
2021-03-22T09:57:47,938   Found link https://files.pythonhosted.org/packages/4b/0a/e47b83d280c592e297b507d0135200e7e2f8db4c4003d48c32ddb3eddfaf/awsiotsdk-1.0.3.tar.gz#sha256=69ca127c4234a6bec07481d72d375afdf64b9a4c74bbf68849e18517c962e838 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.3
2021-03-22T09:57:47,941   Found link https://files.pythonhosted.org/packages/cb/7c/b91125f0c603989a76c8ba5c2fda598a7b8b657730e5e1557c0b6dfc7dbe/awsiotsdk-1.0.5-py2.py3-none-any.whl#sha256=af17d349ea130c8bc2614b1b7a3c42f8461c4dfc96a6a4bf5270d9c2e1b1dab7 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.5
2021-03-22T09:57:47,943   Found link https://files.pythonhosted.org/packages/4a/1a/fb3d826493cef3889c329ee62e1231c69cb663c54e2410cd2b1952cee521/awsiotsdk-1.0.5.tar.gz#sha256=cf70212c37c59e2eb2635dff438d52c8c5dde0fb920c0e4ff5b269da062522fe (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.5
2021-03-22T09:57:47,945   Found link https://files.pythonhosted.org/packages/f9/c2/860d79771f1a576c8bfb5b2321a12bdc6396c8eafea5388977df2e942fe0/awsiotsdk-1.0.6-py2.py3-none-any.whl#sha256=dcf236493d8d5fb673086b34a4deeb21be5e1e5bc6340389fba3e1707572430b (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.6
2021-03-22T09:57:47,947   Found link https://files.pythonhosted.org/packages/41/30/8411889de6b77d01ecc470f9cfeb44d8ef0cdf647afd35463c56f2aab6a8/awsiotsdk-1.0.6.tar.gz#sha256=e59ac398fe65079e243a87c2390b4e82388fbe1cbc6893a8e1b0d8a0698a5428 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.0.6
2021-03-22T09:57:47,949   Found link https://files.pythonhosted.org/packages/95/36/5e510997e38b95ec3a9c0d5055b3e4cbde5143c387c446d08922e922a5a3/awsiotsdk-1.1.0-py2.py3-none-any.whl#sha256=c59cba07a76d3c87273ab2a36059e73b7d93b65d219c8ac44e052d8dbbce7b00 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.1.0
2021-03-22T09:57:47,951   Found link https://files.pythonhosted.org/packages/f7/40/cee9f2217b937ac61a7fb5344d489ad6b7bf806f780b65463ffb58ea075d/awsiotsdk-1.1.0.tar.gz#sha256=efec9362062cfe1094e63e4afb7e77e4394a6233cecaf31e3fcd2889a6eb784d (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.1.0
2021-03-22T09:57:47,954   Found link https://files.pythonhosted.org/packages/fc/35/df8f8796f0b689b422fff3304b32fca5f686fa8bff9e95e24b84389fdf53/awsiotsdk-1.2.0-py2.py3-none-any.whl#sha256=d84feaa04e42a6922b48081719b114166cd39cc28ebaced7d7828b0a12290412 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.2.0
2021-03-22T09:57:47,956   Found link https://files.pythonhosted.org/packages/9a/5e/a4e904f9fcbcb3eb1fed3c95f36de46fbc00a9f112a8fd8b20e16806ad83/awsiotsdk-1.2.0.tar.gz#sha256=1bdc97f8ee1f32fb904dbd71268dfd088190ece873ddf8a028211f17c6d1fce3 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.2.0
2021-03-22T09:57:47,958   Found link https://files.pythonhosted.org/packages/e7/b7/e8a31b63ec1c20c7a9f8155c7fdf3aea9af40a5e6d9cf060ceab8839b4ca/awsiotsdk-1.2.1-py2.py3-none-any.whl#sha256=257aed87b709e960d2c1da8484b35a467779a9cf4531af9f24b7952a4d4a22a6 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.2.1
2021-03-22T09:57:47,960   Found link https://files.pythonhosted.org/packages/e7/b2/5075d877a73040280f24ce08b0d9b0b41bc4eef396a04a92d013bedaf8ef/awsiotsdk-1.2.1.tar.gz#sha256=9d4321f0ca874ee1d39efc064b07d07150e045d85ae73ad26a69faa99a84aa05 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.2.1
2021-03-22T09:57:47,962   Found link https://files.pythonhosted.org/packages/40/83/caacc9991c3b08138f8a950581010e45472845ad545a712923fb7318a8d0/awsiotsdk-1.3.0-py2.py3-none-any.whl#sha256=d80ce6f2067cf9d700217b1b57ef520f3bf5d2c082fa19078e216d9a9e726655 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.3.0
2021-03-22T09:57:47,964   Found link https://files.pythonhosted.org/packages/c0/ee/5ef67d4888577e8630a05d15a754e690ce05f74e19ae4ea8451556c4bb74/awsiotsdk-1.3.0.tar.gz#sha256=8cf9365297bb8b85b8b7cafe0bb0c9720b4fb1996a07c4c0849269820b3ace18 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.3.0
2021-03-22T09:57:47,967   Found link https://files.pythonhosted.org/packages/c3/e6/975baec2f1109f8e3845ba328ccc8aedddf6e2453808f1fc991f0eac4bfd/awsiotsdk-1.3.1-py2.py3-none-any.whl#sha256=85574fcda25625dee856ea56e24df219f47b1593785b529728a0e7b3d175b820 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.3.1
2021-03-22T09:57:47,969   Found link https://files.pythonhosted.org/packages/b1/21/16ec62897f3e84fa7bddac43ca985bc60f015a1610c5ede6f888b84a0e77/awsiotsdk-1.3.1.tar.gz#sha256=f402c459aa683823a2825959b342e89294347b6d242212626045080f75f7a474 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.3.1
2021-03-22T09:57:47,971   Found link https://files.pythonhosted.org/packages/13/2a/42c5d6e253f0ea398b484e46b339722d2e45406c3b763a79753f62ab6c48/awsiotsdk-1.3.2-py2.py3-none-any.whl#sha256=94b09a936caef0bce8c92d4d5251e95cf052581092eb4b54458b720c753c2143 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.3.2
2021-03-22T09:57:47,973   Found link https://files.pythonhosted.org/packages/6a/e8/28c3261b1dc51b0892b2e128c304077e6967cd57d8bcdff582358439492d/awsiotsdk-1.3.2.tar.gz#sha256=2bac1042707cfe00643cdd0736f13e889ac591dd0d23372ac0fe2a220c78ce56 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.3.2
2021-03-22T09:57:47,976   Found link https://files.pythonhosted.org/packages/ee/b4/15c33e74ebbd2d12e6b701e4fd96875608de14ec39054b4b95de0a37e2ca/awsiotsdk-1.4.0-py2.py3-none-any.whl#sha256=bd6c19ce0a94a89d309d848928b86b5113dfafbd9c03a7390a690b853ef01652 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.4.0
2021-03-22T09:57:47,977   Found link https://files.pythonhosted.org/packages/27/3b/df340eaad7c349683fecd370aa2ca7f07fa0a126665b8f2e875e67e139dd/awsiotsdk-1.4.0.tar.gz#sha256=c631825d6dea0373fcc1b0359b5c06958e6a2406deac37d2ccc9435da7f43131 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7), version: 1.4.0
2021-03-22T09:57:47,980   Found link https://files.pythonhosted.org/packages/ee/ea/0509111f382972ab2dfbe38568c2559a4267c6970813579bb2699608e47b/awsiotsdk-1.5.0-py2.py3-none-any.whl#sha256=e54ff07c2de8a51f98b5d2b8365493380e921b7ff450ebca6f7437d538a0ba37 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.0
2021-03-22T09:57:47,982   Found link https://files.pythonhosted.org/packages/02/b5/1dcb793025314ccdc330260327eaed41b7bc4d09e57ddda4f6aff4e6e810/awsiotsdk-1.5.0.tar.gz#sha256=32f5f1fd2692d14819c14a18c77cdf307c26ee10379dc8986221070fb1f7333c (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.0
2021-03-22T09:57:47,984   Found link https://files.pythonhosted.org/packages/66/4e/4a868f5e3096d4ec764d1b2990a52b393b03dce167741d19d35cc3cb1364/awsiotsdk-1.5.1-py3-none-any.whl#sha256=743268d7b5af1e04a2f49f45420fc887d8604f7586075dc40f08e93a47acb547 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.1
2021-03-22T09:57:47,986   Found link https://files.pythonhosted.org/packages/08/d4/428c7e8f1fc90c04a48725bebb1e89c5768ec4c7d11d5b40a7157be1b2d5/awsiotsdk-1.5.1.tar.gz#sha256=4ea6386fe5870ecbb0af46dccff30e30f22abe5bca255305bf35d00820a175d1 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.1
2021-03-22T09:57:47,988   Found link https://files.pythonhosted.org/packages/fe/38/c1a8322f4dcb1708bb61e00093489433a3aca05014b002fcbdb273c4aacc/awsiotsdk-1.5.2-py3-none-any.whl#sha256=767758da8a3012ed380ce0c6e23ab4f6503e276354b44151c4e78a7771dfdb6a (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.2
2021-03-22T09:57:47,990   Found link https://files.pythonhosted.org/packages/1b/aa/4ae15b1fcb6f00e45d008b5a579de0c55ebf6595731c4ea373332d8ed2a8/awsiotsdk-1.5.2.tar.gz#sha256=534127220dc444d889277550731a100147143b91e87bcaec452499b6e04294b2 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.2
2021-03-22T09:57:47,992   Found link https://files.pythonhosted.org/packages/7d/01/a0f0663ad948b1337490788d566421a2f7c1217cd759637590cc96563d5a/awsiotsdk-1.5.3-py3-none-any.whl#sha256=e3ef175323399deb69776823e5a52a2e620d1acf6aa3ae66fc87769e1602ba77 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.3
2021-03-22T09:57:47,994   Found link https://files.pythonhosted.org/packages/d9/b9/b10dda71182623fa0bfb5f99a5b20bfc624d9948e7c9f75d57d4faeb113a/awsiotsdk-1.5.3.tar.gz#sha256=a2f106e1066e2e46b998f918ccd3786f9464293f794474eae76886d1398cda96 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.3
2021-03-22T09:57:47,997   Found link https://files.pythonhosted.org/packages/35/68/8ead5545a2954ff423e19a08268a88a993f590fcf218e7c9d392898f4d87/awsiotsdk-1.5.4-py3-none-any.whl#sha256=1de77cb9ce36fb73b28d4a5ca9c1450b8d3acdd49c1ef834019bf09383176ad2 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.4
2021-03-22T09:57:48,000   Found link https://files.pythonhosted.org/packages/f5/ce/5557d3aef6f0f3aa7e7eeedf611117940fed9ab3fd62b412bf2db95102dc/awsiotsdk-1.5.4.tar.gz#sha256=3cfa63745387eb34c2081c6291aa9cac9549c22bb6b153fbd928d0d608d23d00 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.4
2021-03-22T09:57:48,002   Found link https://files.pythonhosted.org/packages/19/7c/9b7c3528db729b5c5b5b1f6f06f768eb489103c2ba0492544c955902638e/awsiotsdk-1.5.5-py3-none-any.whl#sha256=898d79dccff14ef6f88b37abf66f7004d1a7e6330dbe90bf6fc60c87794736a8 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.5
2021-03-22T09:57:48,004   Found link https://files.pythonhosted.org/packages/2e/46/6f05dd90ace5bbd7a1e47285edc8d7bac63d129fa984707af96b8cc2fff1/awsiotsdk-1.5.5.tar.gz#sha256=46c74af61c38f5be6cfc237d94a3f83aabb55995f299b4c1cf21403bef5555e4 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.5
2021-03-22T09:57:48,006   Found link https://files.pythonhosted.org/packages/55/d1/239722d8cea8e3a1c4a822a7f90e09961e1863a75e64a2227ac96653b16d/awsiotsdk-1.5.6-py3-none-any.whl#sha256=66740de537c8c7c20b09b20c2a6a93fc1d6362a45a661bf30163bc2cdb85fa28 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.6
2021-03-22T09:57:48,008   Found link https://files.pythonhosted.org/packages/35/ad/d6cc3ea0e33df4e0268a22eb031a4975131cf40bdde50c1076e1a33f7e18/awsiotsdk-1.5.6.tar.gz#sha256=69db70678d773abbbd37389a829f59d5c3ece6f60389f2eebcef9b290973dcf8 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.6
2021-03-22T09:57:48,011   Found link https://files.pythonhosted.org/packages/4b/9a/c861fd8cf3ed08e510560348e82fe263b97305a6f678d202863f1766791d/awsiotsdk-1.5.7-py3-none-any.whl#sha256=d2b74c5ee7d398aa8b0fc16a63e4d4550497bbd6bc05ef74417fd4737cbcca06 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.7
2021-03-22T09:57:48,013   Found link https://files.pythonhosted.org/packages/b5/b9/687d2bf0d9b9d87617535e5581afcf5aaf08bfc8b236b9c8885536b7f09b/awsiotsdk-1.5.7.tar.gz#sha256=fe9a699cecfe41ee8993c2f3fa9dfa5f0cc89e3976fafac85a8f9d7c23a3890a (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.7
2021-03-22T09:57:48,015   Found link https://files.pythonhosted.org/packages/ed/42/4ce086a53251bf4ee82764402ec63b3e60ea15d879c258e954f0283e1b44/awsiotsdk-1.5.8-py3-none-any.whl#sha256=c03e8f355304bca8222b449b1c018b90fb73892486daa26ce7742fadf54d0ed5 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.8
2021-03-22T09:57:48,017   Found link https://files.pythonhosted.org/packages/58/b6/2403b2daf0898ca71c881ade7a26ebe481e5d0f22e863c43c459243442c2/awsiotsdk-1.5.8.tar.gz#sha256=fd8b5c1aa3d77c5f80c8b20d10f5a94e357b60b2e715be3e740e8c2e8b78cf1b (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=3.5), version: 1.5.8
2021-03-22T09:57:48,027 Given no hashes to check 46 links for project 'awsiotsdk': discarding no candidates
2021-03-22T09:57:48,235 Collecting awsiotsdk
2021-03-22T09:57:48,238   Created temporary directory: /tmp/pip-unpack-cjjtkkl2
2021-03-22T09:57:48,658   Downloading awsiotsdk-1.5.7-py3-none-any.whl (38 kB)
2021-03-22T09:57:48,712   Added awsiotsdk from https://files.pythonhosted.org/packages/4b/9a/c861fd8cf3ed08e510560348e82fe263b97305a6f678d202863f1766791d/awsiotsdk-1.5.7-py3-none-any.whl#sha256=d2b74c5ee7d398aa8b0fc16a63e4d4550497bbd6bc05ef74417fd4737cbcca06 to build tracker '/tmp/pip-req-tracker-nzui7aj2'
2021-03-22T09:57:48,713   Removed awsiotsdk from https://files.pythonhosted.org/packages/4b/9a/c861fd8cf3ed08e510560348e82fe263b97305a6f678d202863f1766791d/awsiotsdk-1.5.7-py3-none-any.whl#sha256=d2b74c5ee7d398aa8b0fc16a63e4d4550497bbd6bc05ef74417fd4737cbcca06 from build tracker '/tmp/pip-req-tracker-nzui7aj2'
2021-03-22T09:57:48,740 1 location(s) to search for versions of awscrt:
2021-03-22T09:57:48,740 * https://pypi.org/simple/awscrt/
2021-03-22T09:57:48,741 Fetching project page and analyzing links: https://pypi.org/simple/awscrt/
2021-03-22T09:57:48,742 Getting page https://pypi.org/simple/awscrt/
2021-03-22T09:57:48,744 Found index url https://pypi.org/simple
2021-03-22T09:57:50,087 ERROR: Operation cancelled by user
2021-03-22T09:57:50,089 Exception information:
2021-03-22T09:57:50,089 Traceback (most recent call last):
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 171, in _merge_into_criterion
2021-03-22T09:57:50,089     crit = self.state.criteria[name]
2021-03-22T09:57:50,089 KeyError: 'awscrt'
2021-03-22T09:57:50,089
2021-03-22T09:57:50,089 During handling of the above exception, another exception occurred:
2021-03-22T09:57:50,089
2021-03-22T09:57:50,089 Traceback (most recent call last):
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/base_command.py", line 189, in _main
2021-03-22T09:57:50,089     status = self.run(options, args)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/req_command.py", line 178, in wrapper
2021-03-22T09:57:50,089     return func(self, options, args)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/commands/install.py", line 317, in run
2021-03-22T09:57:50,089     reqs, check_supported_wheels=not options.target_dir
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 122, in resolve
2021-03-22T09:57:50,089     requirements, max_rounds=try_to_avoid_resolution_too_deep,
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 453, in resolve
2021-03-22T09:57:50,089     state = resolution.resolve(requirements, max_rounds=max_rounds)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 347, in resolve
2021-03-22T09:57:50,089     failure_causes = self._attempt_to_pin_criterion(name, criterion)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 207, in _attempt_to_pin_criterion
2021-03-22T09:57:50,089     criteria = self._get_criteria_to_update(candidate)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 199, in _get_criteria_to_update
2021-03-22T09:57:50,089     name, crit = self._merge_into_criterion(r, parent=candidate)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _merge_into_criterion
2021-03-22T09:57:50,089     crit = Criterion.from_requirement(self._p, requirement, parent)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 82, in from_requirement
2021-03-22T09:57:50,089     if not cands:
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/resolvelib/structs.py", line 124, in __bool__
2021-03-22T09:57:50,089     return bool(self._sequence)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in __bool__
2021-03-22T09:57:50,089     return any(self)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 35, in _iter_built
2021-03-22T09:57:50,089     for version, func in infos:
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 223, in iter_index_candidate_infos
2021-03-22T09:57:50,089     hashes=hashes,
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/index/package_finder.py", line 872, in find_best_candidate
2021-03-22T09:57:50,089     candidates = self.find_all_candidates(project_name)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/index/package_finder.py", line 816, in find_all_candidates
2021-03-22T09:57:50,089     project_url, link_evaluator=link_evaluator,
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/index/package_finder.py", line 783, in process_project_url
2021-03-22T09:57:50,089     page_links = list(parse_links(html_page))
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/index/collector.py", line 323, in wrapper_wrapper
2021-03-22T09:57:50,089     return list(fn(page))
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_internal/index/collector.py", line 337, in parse_links
2021-03-22T09:57:50,089     namespaceHTMLElements=False,
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/html5lib/html5parser.py", line 46, in parse
2021-03-22T09:57:50,089     return p.parse(doc, **kwargs)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/html5lib/html5parser.py", line 284, in parse
2021-03-22T09:57:50,089     self._parse(stream, False, None, *args, **kwargs)
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/html5lib/html5parser.py", line 133, in _parse
2021-03-22T09:57:50,089     self.mainLoop()
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/html5lib/html5parser.py", line 204, in mainLoop
2021-03-22T09:57:50,089     for token in self.tokenizer:
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/html5lib/_tokenizer.py", line 65, in __iter__
2021-03-22T09:57:50,089     while self.state():
2021-03-22T09:57:50,089   File "/usr/local/lib/python3.7/dist-packages/pip/_vendor/html5lib/_tokenizer.py", line 930, in attributeNameState
2021-03-22T09:57:50,089     self.currentToken["data"][-1][0].translate(asciiUpper2Lower))
2021-03-22T09:57:50,089 KeyboardInterrupt
2021-03-22T09:57:50,219 Removed build tracker: '/tmp/pip-req-tracker-nzui7aj2'
2021-03-22T09:57:58,273 Using pip 21.0.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
2021-03-22T09:57:58,283 Non-user install because site-packages writeable
2021-03-22T09:57:58,722 Created temporary directory: /tmp/pip-ephem-wheel-cache-tc3je3wz
2021-03-22T09:57:58,724 Created temporary directory: /tmp/pip-req-tracker-kdasia2h
2021-03-22T09:57:58,725 Initialized build tracking at /tmp/pip-req-tracker-kdasia2h
2021-03-22T09:57:58,726 Created build tracker: /tmp/pip-req-tracker-kdasia2h
2021-03-22T09:57:58,726 Entered build tracker: /tmp/pip-req-tracker-kdasia2h
2021-03-22T09:57:58,727 Created temporary directory: /tmp/pip-install-zhh7bqmw
2021-03-22T09:57:58,777 1 location(s) to search for versions of awsiotsdk:
2021-03-22T09:57:58,777 * https://pypi.org/simple/awsiotsdk/
2021-03-22T09:57:58,778 Fetching project page and analyzing links: https://pypi.org/simple/awsiotsdk/
2021-03-22T09:57:58,779 Getting page https://pypi.org/simple/awsiotsdk/
2021-03-22T09:57:58,784 Found index url https://pypi.org/simple
2021-03-22T09:57:59,355   Found link https://files.pythonhosted.org/packages/38/04/fc6effef82ba8e7dec9c00d6ac903ad403e99b976450bfe658693a536507/awsiotsdk-0.2.4-py2.py3-none-any.whl#sha256=12508824840dfc660d96f6eb79be88cbed117777c0bb7b12f99307edf5ea0d79 (from https

I got an error when I installed awscrt

environment

(.venv) pi@raspberrypi:~/edge-logger $ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux

python version

(.venv) pi@raspberrypi:~/edge-logger $ python --version
Python 3.7.3

error detail

r(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-lkd21cmj --python-tag cp37
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'
error
  Running setup.py clean for awscrt
  Running command /home/pi/edge-logger/.venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-8dg_yovk/awscrt/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" clean --all
  running clean
  'build/lib.linux-armv7l-3.7' does not exist -- can't clean it
  'build/bdist.linux-armv7l' does not exist -- can't clean it
  'build/scripts-3.7' does not exist -- can't clean it
Failed to build awscrt
Installing collected packages: awscrt
  Created temporary directory: /tmp/pip-record-z9zdia98
  Running setup.py install for awscrt ...     Running command /home/pi/edge-logger/.venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-8dg_yovk/awscrt/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-z9zdia98/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/edge-logger/.venv/include/site/python3.7/awscrt
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-3.7
    creating build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/common.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/crypto.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/http.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/auth.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/s3.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/mqtt.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/exceptions.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/__init__.py -> build/lib.linux-armv7l-3.7/awscrt
    copying awscrt/io.py -> build/lib.linux-armv7l-3.7/awscrt
    creating build/lib.linux-armv7l-3.7/awscrt/eventstream
    copying awscrt/eventstream/rpc.py -> build/lib.linux-armv7l-3.7/awscrt/eventstream
    copying awscrt/eventstream/__init__.py -> build/lib.linux-armv7l-3.7/awscrt/eventstream
    running build_ext
    --- Building dependency: aws-lc (RelWithDebInfo) ---
    /usr/bin/cmake -DCMAKE_PREFIX_PATH=/tmp/pip-install-8dg_yovk/awscrt/build/deps/install -DCMAKE_INSTALL_PREFIX=/tmp/pip-install-8dg_yovk/awscrt/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_LIBSSL=OFF /tmp/pip-install-8dg_yovk/awscrt/crt/aws-lc
    -- The C compiler identification is GNU 8.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Found Perl: /usr/bin/perl (found version "5.28.1")
    -- Checking for module 'libunwind-generic'
    --   Found libunwind-generic, version 1.21
    -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
    -- The ASM compiler identification is GNU
    -- Found assembler: /usr/bin/cc
    CMake Error at CMakeLists.txt:660 (add_subdirectory):
      add_subdirectory given source "util/fipstools/cavp" which is not an
      existing directory.


    CMake Error at CMakeLists.txt:661 (add_subdirectory):
      add_subdirectory given source "util/fipstools/acvp/modulewrapper" which is
      not an existing directory.


    -- Configuring incomplete, errors occurred!
    See also "/tmp/pip-install-8dg_yovk/awscrt/build/deps/aws-lc/CMakeFiles/CMakeOutput.log".
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-8dg_yovk/awscrt/setup.py", line 280, in <module>
        'boto3'
      File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/usr/lib/python3.7/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.7/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/usr/lib/python3.7/distutils/command/install.py", line 589, in run
        self.run_command('build')
      File "/usr/lib/python3.7/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/lib/python3.7/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/usr/lib/python3.7/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/tmp/pip-install-8dg_yovk/awscrt/setup.py", line 194, in run
        self._build_dependency(lib)
      File "/tmp/pip-install-8dg_yovk/awscrt/setup.py", line 175, in _build_dependency
        subprocess.check_call(cmake_args)
      File "/usr/lib/python3.7/subprocess.py", line 347, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/usr/bin/cmake', '-DCMAKE_PREFIX_PATH=/tmp/pip-install-8dg_yovk/awscrt/build/deps/install', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-8dg_yovk/awscrt/build/deps/install', '-DBUILD_SHARED_LIBS=OFF', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DBUILD_TESTING=OFF', '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', '-DBUILD_LIBSSL=OFF', '/tmp/pip-install-8dg_yovk/awscrt/crt/aws-lc']' returned non-zero exit status 1.
error
Cleaning up...
  Removing source in /tmp/pip-install-8dg_yovk/awscrt
Removed build tracker '/tmp/pip-req-tracker-sr7jzrib'
Exception information:
Traceback (most recent call last):
  File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 143, in main
    status = self.run(options, args)
  File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 386, in run
    use_user_site=options.use_user_site,
  File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/pip/_internal/req/__init__.py", line 49, in install_given_reqs
    **kwargs
  File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/pip/_internal/req/req_install.py", line 791, in install
    spinner=spinner,
  File "/home/pi/edge-logger/.venv/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 723, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pip._internal.exceptions.InstallationError: Command "/home/pi/edge-logger/.venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-8dg_yovk/awscrt/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-z9zdia98/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/edge-logger/.venv/include/site/python3.7/awscrt" failed with error code 1 in /tmp/pip-install-8dg_yovk/awscrt/

Build fails on alpine docker

Basic Dockerfile:

ROM python:3-alpine AS installer

RUN apk add --no-cache \
    acl \
    binutils \
    cmake \
    curl \
    fcgi \
    file \
    g++ \
    gcc \
    gettext \
    git \
    libc-dev \
    libffi-dev \
    linux-headers \
    musl-dev \
    openssl-dev \
    pwgen \
    py3-pip \
    python3-dev \
    unzip \
    zlib-dev

RUN pip install --upgrade pip \
    && pip install pycrypto awscrt

Error:

Building wheels for collected packages: pycrypto, awscrt
  Building wheel for pycrypto (setup.py): started
  Building wheel for pycrypto (setup.py): finished with status 'done'
  Created wheel for pycrypto: filename=pycrypto-2.6.1-cp39-cp39-linux_x86_64.whl size=478424 sha256=982948385d411cc4d459a00b28b90f5a81ecd55ce324e99bdd179e06b7907f0c
  Stored in directory: /root/.cache/pip/wheels/9d/29/32/8b8f22481bec8b0fbe7087927336ec167faff2ed9db849448f
  Building wheel for awscrt (setup.py): started
  Building wheel for awscrt (setup.py): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: /usr/local/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py'"'"'; __file__='"'"'/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-9cti6p1g
       cwd: /tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/
  Complete output (56 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.9
  creating build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/common.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/s3.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/__init__.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/http.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/mqtt.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/_test.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/auth.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/io.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/exceptions.py -> build/lib.linux-x86_64-3.9/awscrt
  copying awscrt/crypto.py -> build/lib.linux-x86_64-3.9/awscrt
  creating build/lib.linux-x86_64-3.9/awscrt/eventstream
  copying awscrt/eventstream/__init__.py -> build/lib.linux-x86_64-3.9/awscrt/eventstream
  copying awscrt/eventstream/rpc.py -> build/lib.linux-x86_64-3.9/awscrt/eventstream
  running build_ext
  --- Building dependency: aws-lc (RelWithDebInfo) ---
  /usr/bin/cmake -DCMAKE_PREFIX_PATH=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install -DCMAKE_INSTALL_PREFIX=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_LIBSSL=OFF /tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/crt/aws-lc
  CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
  -- Configuring incomplete, errors occurred!
  See also "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/aws-lc/CMakeFiles/CMakeOutput.log".
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py", line 263, in <module>
      setuptools.setup(
    File "/usr/local/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
      return distutils.core.setup(**attrs)
    File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/lib/python3.9/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py", line 197, in run
      self._build_dependency(lib)
    File "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py", line 175, in _build_dependency
      subprocess.check_call(cmake_args)
    File "/usr/local/lib/python3.9/subprocess.py", line 373, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['/usr/bin/cmake', '-DCMAKE_PREFIX_PATH=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install', '-DBUILD_SHARED_LIBS=OFF', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DBUILD_TESTING=OFF', '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', '-DBUILD_LIBSSL=OFF', '/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/crt/aws-lc']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for awscrt
  Running setup.py clean for awscrt
Successfully built pycrypto
Failed to build awscrt
Installing collected packages: pycrypto, awscrt
    Running setup.py install for awscrt: started
    Running setup.py install for awscrt: finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /usr/local/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py'"'"'; __file__='"'"'/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8x5wm5ee/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/awscrt
         cwd: /tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/
    Complete output (57 lines):
    running install
    running build
    running build_py
    creating build/lib.linux-x86_64-3.9
    creating build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/common.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/s3.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/__init__.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/http.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/mqtt.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/_test.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/auth.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/io.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/exceptions.py -> build/lib.linux-x86_64-3.9/awscrt
    copying awscrt/crypto.py -> build/lib.linux-x86_64-3.9/awscrt
    creating build/lib.linux-x86_64-3.9/awscrt/eventstream
    copying awscrt/eventstream/__init__.py -> build/lib.linux-x86_64-3.9/awscrt/eventstream
    copying awscrt/eventstream/rpc.py -> build/lib.linux-x86_64-3.9/awscrt/eventstream
    running build_ext
    --- Building dependency: aws-lc (RelWithDebInfo) ---
    /usr/bin/cmake -DCMAKE_PREFIX_PATH=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install -DCMAKE_INSTALL_PREFIX=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_LIBSSL=OFF /tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/crt/aws-lc
    CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    -- Configuring incomplete, errors occurred!
    See also "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/aws-lc/CMakeFiles/CMakeOutput.log".
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py", line 263, in <module>
        setuptools.setup(
      File "/usr/local/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.9/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/usr/local/lib/python3.9/distutils/command/install.py", line 546, in run
        self.run_command('build')
      File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.9/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py", line 197, in run
        self._build_dependency(lib)
      File "/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py", line 175, in _build_dependency
        subprocess.check_call(cmake_args)
      File "/usr/local/lib/python3.9/subprocess.py", line 373, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/usr/bin/cmake', '-DCMAKE_PREFIX_PATH=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/build/deps/install', '-DBUILD_SHARED_LIBS=OFF', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DBUILD_TESTING=OFF', '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', '-DBUILD_LIBSSL=OFF', '/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/crt/aws-lc']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py'"'"'; __file__='"'"'/tmp/pip-install-3d09k23e/awscrt_36304769a53a4906aabc5a858364f4ae/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8x5wm5ee/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/awscrt Check the logs for full command output.
The command '/bin/sh -c pip install --upgrade pip     && pip install pycrypto awscrt' returned a non-zero code: 1

Why am I doing this ?
This is following this github issue aws/aws-cli#4685 on aws-cli.
The installation of aws-cli that way on alpine was working fine, until aws-cli 2.2.0 that is now using awscrt.

Is there any chance someone here can help ?

MQTT client disconnected because of Timeout

Testing the following code (modified pub_sub sample):

...
def publish():
    publish_count = 1
    while (True):
        message = { "c": publish_count, "data": 'A'.zfill(int(args.len)) } 
        #print("Publishing message to topic '{}': {}".format(args.topic, json.dumps(message)))
        mqtt_connection.publish(
            topic=args.topic,
            payload=json.dumps(message),
            qos=mqtt.QoS.AT_LEAST_ONCE)
        time.sleep(0.02)
        publish_count += 1

if __name__ == '__main__':
    # Spin up resources
    event_loop_group = io.EventLoopGroup(1)
    host_resolver = io.DefaultHostResolver(event_loop_group)
    client_bootstrap = io.ClientBootstrap(event_loop_group, host_resolver)

    mqtt_connection = mqtt_connection_builder.mtls_from_path(
        endpoint=args.endpoint,
        cert_filepath=args.cert,
        pri_key_filepath=args.key,
        client_bootstrap=client_bootstrap,
        ca_filepath=args.root_ca,
        on_connection_interrupted=on_connection_interrupted,
        on_connection_resumed=on_connection_resumed,
        client_id=args.client_id,
        clean_session=False,
        keep_alive_secs=6)

    print("Connecting to {} with client ID '{}'...".format(
        args.endpoint, args.client_id))

    connect_future = mqtt_connection.connect()

    # Future.result() waits until a result is available
    connect_future.result()
    print("Connected!")
    
    t1 = threading.Thread(target=publish)
    t1.start()
    
    t1.join(timeout=200)

Generates repeated interrupt/reconnect every 10-20 secs.

Connection resumed. return_code: 0 session_present: True
Connection interrupted. error: AwsCrtError(name='AWS_ERROR_MQTT_TIMEOUT', message='Time limit between request and response has been exceeded.', code=5129)
Connection resumed. return_code: 0 session_present: True
Connection interrupted. error: AwsCrtError(name='AWS_ERROR_MQTT_TIMEOUT', message='Time limit between request and response has been exceeded.', code=5129)
Connection resumed. return_code: 0 session_present: True
Disconnecting...

The same happens when using similar code with aws-crt-nodejs, but not when using aws-crt-cpp, which would exclude an issue on the cloud side or the crt libraries and point more to the way that the bindings are implemented.

Removing deprecated distutils module + using vswhere instead of distutils.ccompiler to properly detect all valid MSVC compilers

distutils has been deprecated from Python 3.10 and is scheduled to be removed from Python 3.12. The current use of distutils in library is in setup.py is to determine the MSVC compiler generator string for CMake. However, the method used to determine MSVC compiler doesn't work properly if there are multiple MSVC compilers installed. With MSVC2019 & MSVC2022 installed, the library thinks I don't have a valid MSVC compiler and fails to compile properly. I have came up with an updated method to use subprocess and vswhere to check for valid MSVC compiler. If I can, I would like to open a PR to add this change to the library.

Updated method to determine generator string for CMake

def determine_generator_args():
    if sys.platform == 'win32':
        pf_x86_path = pathlib.Path(os.getenv("ProgramFiles(x86)"))
        vswhere_path = pf_x86_path.joinpath("Microsoft Visual Studio", "Installer", "vswhere.exe")

        if vswhere_path.is_file():
            vswhere_process = subprocess.Popen(
                [
                    str(vswhere_path),
                    "-products",
                    "*",
                    "-requires",
                    "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
                    "-format",
                    "json",
                    "-nologo",
                ],
                stdout=subprocess.PIPE,
            )

            compilers_data = json.loads(vswhere_process.communicate()[0])
            vs_version = None
            vs_year = None

            for compiler_data in compilers_data:
                compiler_version = int(compiler_data["catalog"]["productDisplayVersion"].split(".")[0])
                compiler_year = int(compiler_data["catalog"]["productLineVersion"])

                if compiler_year in [2015, 2017, 2019]:
                    if vs_year is None or compiler_year > vs_year:
                        vs_year = compiler_year
                        vs_version = compiler_version

            assert(vs_version and vs_year)

            print('Using Visual Studio', vs_version, vs_year)

            vs_version_gen_str = "Visual Studio {} {}".format(vs_version, vs_year)

            if vs_year <= 2017:
                # For VS2017 and earlier, architecture goes at end of generator string
                if is_64bit():
                    vs_version_gen_str += " Win64"
                return ['-G', vs_version_gen_str]

            # For VS2019 (and presumably later), architecture is passed via -A flag
            arch_str = "x64" if is_64bit() else "Win32"
            return ['-G', vs_version_gen_str, '-A', arch_str]

    return []

inconsistent args to mqtt connection builder

awsiot_mqtt_connection_builder.py

Comment is this, with 'keepalive':
tcp_keepalive_interval_secs (int): Interval, in seconds, for TCP keep-alive.
tcp_keepalive_max_probes (int): Number of probes allowed to fail before the connection is considered lost.

Code is actually this, with 'keep_alive':
socket_options.keep_alive_interval_secs = kwargs.get('tcp_keep_alive_interval_secs', 0)
socket_options.keep_alive_max_probes = kwargs.get('tcp_keep_alive_max_probes', 0)

Thank you!

awscrt fails for python >= 3.7 on aarch64-linux

I am currently running Ubuntu 19.10 aarch64-linux on i.MX 8QM MEK. We ran our code on python 3.6 but recently we upgraded to python 3.7. After our upgrade, we noticed that pip3 install awsiotsdk fails because awscrt installation fails.

I tested this by creating two virtual python environment, one using python3.6 and other using python3.7. After switching the source and installing awsiotsdk on both virtual environment, the installation succeeded on python 3.6 virtual env but the installation failed on python 3.7.

Please let me know any solution to this.
Thanx.

Can't use some special characters in profile_name when creating a profile auth provider

Some special characters such as "@" or "/" in profile_name return an error when trying to create a profile auth provider.

Error:

Traceback (most recent call last):
  File "mock_device.py", line 845, in <module>
    credentials_provider = auth.AwsCredentialsProvider.new_profile(
  File "/home/REDACTED/.local/share/virtualenvs/REDACTED-zaVS8qFu/lib/python3.8/site-packages/awscrt/auth.py", line 205, in new_profile
    binding = _awscrt.credentials_provider_new_profile(
RuntimeError: 0 (AWS_ERROR_SUCCESS): Success.

Relevant code:

from awscrt import auth, io

# Spin up resources
event_loop_group = io.EventLoopGroup(1)
host_resolver = io.DefaultHostResolver(event_loop_group)
client_bootstrap = io.ClientBootstrap(event_loop_group, host_resolver)

credentials_provider = auth.AwsCredentialsProvider.new_profile(
    client_bootstrap=client_bootstrap,
    profile_name="user@123456789012",
    config_filepath='~/.aws/config',
    credentials_filepath='~/.aws/credentials'
)
# ... use creds somewhere

Some further details:

  • File encoding is ok (UTF-8)
  • The profile_name is correctly passed to the lib (string print in /home/REDACTED/.local/share/virtualenvs/REDACTED-zaVS8qFu/lib/python3.8/site-packages/awscrt/auth.py is ok)
  • latest version used (0.11.25)

Thanks for your help!

Inconsistent keep alive values

Hello,

The default keep_alive value for the mqtt client is 3600 seconds.
https://github.com/awslabs/aws-crt-python/blob/master/awscrt/awsiot_mqtt_connection_builder.py#L185
https://github.com/awslabs/aws-crt-python/blob/master/awscrt/mqtt.py#L80

In the pub/sub example from v2 sdk it is 6:
https://github.com/aws/aws-iot-device-sdk-python-v2/blob/master/samples/pubsub.py#L120

When experimenting I discovered that if I use the default and don't set my own value, I receive an error log from AWS IoT:

{
    "timestamp": "2020-02-16 21:08:56.976",
    "logLevel": "ERROR",
    "status": "Failure",
    "eventType": "Unsupported keep-alive value",
    "protocol": "MQTT",
    "clientId": "API::0188036e-dce3-4bdb-9e3b-dcff46c448b8",
    "principalId": "AROAU2IT4DXC5K2MPHPLL:foo-AppEntryFunction-1M4ADAE3QQEOR",
    "details": "An unsupported MQTT keep-alive value was requested from the server. AWS IoT supports keep-alive values between 5 and 1200. The connection will be handled with the supported value closest to the request value."
}

Is the value of 3600 still accurate and good for default?

SIGSEGV when calling mqtt.reconnect()

Someone reached out to me, when their device lost connectivity they manually called reconnect(). This led to a segfault. (They were trying to reconnect faster because reconnect_max_timeout_secs wasn't working #138)

Should reconnect() even be a public function? I honestly don't know without digging further. If not, this needs to be addressed in all the CRT libraries

GLIBC_2.28 not found required by awscrt

Currently transitioning to GreengrassV2 and needed to use https://github.com/aws/aws-iot-device-sdk-python-v2 for a connection to MQTT. We are using Kunbus Revpi that are based on Raspbian Strech images, and have LIBC 2.24 as latest version. We cannot upgrade to Buster because of dependencies not yet ready in the Revpi images (they don't officially support it yet I guess). Is there any specific reason that 2.28 is required, or could it be downgraded to 2.24 for backwards compatibility?

ImportError: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by /greengrass/v2/work/com.test.test/venv/lib/python3.7/site-packages/_awscrt.cpython-37m-arm-linux-gnueabihf.so). 

Incorrect named argument in callback function

Hi,

According to the internal documentation, the named argument expected by the _on_connection_resumed callback is return_code, and not error, as currently used here:

error=ConnectReturnCode(return_code),

Internal documentation:

return_code (ConnectReturnCode): Connect return code received from the server.

See also the callback used in the test code:

def on_connection_resumed(connection, return_code, session_present, **kwargs):

Or the sample code from the related project aws-iot-device-sdk-python-v2:
https://github.com/aws/aws-iot-device-sdk-python-v2/blob/65454acdfaa2d28025ed0efe65965c14819c9e43/samples/pubsub.py#L68

Disconnection cleanup/unsubscribe all

Hello,

I'm wondering how disconnect is handled by this library, namely does it unsubscribe from any existing subscriptions prior to disconnecting?

I'm trying to iron out how to clean up dropped/disconnected connections and notify other clients who are subscribed to the same topic as the dropping client.

In case where e.g. connection goes idle for too long, ideally IoT would send unsubscribe lifecycle event for each topic the client was subscribed to, prior to sending the disconnect.

Just wondering if it works this way or if there are any plans for it?

Thanks!

Unable to install pip3install on fresh instance of jetpack (3.4) on Jetson Nano

I installed fresh JetPack 4.4 Developer Preview
then run the following commands:

  1. sudo apt install python3-pip
  2. sudo apt-get install libssl-dev
  3. pip3 install awscrt

getting the following error

/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): In function `sha512_block_data_order':
    (.text+0x10c8): dangerous relocation: unsupported relocation
    collect2: error: ld returned 1 exit status
    error: command 'aarch64-linux-gnu-gcc' failed with exit status 1

0.11.20 SAM: Incompatible with lambda python 3.8

I have a basic sam template:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  greengrass_terra

  Sample SAM Template for greengrass_terra

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 3

Resources:
  scd30CWReporterFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: scd30CWReporter/
      Handler: app.lambda_handler
      Runtime: python3.8

Outputs:
  scd30CWReporterFunction:
    Description: "Hello World Lambda Function ARN"
    Value: !GetAtt scd30CWReporterFunction.Arn
  scd30CWReporterFunctionIamRole:
    Description: "Implicit IAM Role created for Hello World function"
    Value: !GetAtt scd30CWReporterFunction.Arn

with following requirements.txt

awsiotsdk

When I try to package the lambda locally with sam build --debug:

$ sam build --debug
2021-05-21 17:44:03,211 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2021-05-21 17:44:03,211 | Using config file: samconfig.toml, config environment: default
2021-05-21 17:44:03,211 | Expand command line arguments to:
2021-05-21 17:44:03,211 | --template_file=/home/fdobrovo/ws/my/greengrass/greengrass_terra/template.yaml --build_dir=.aws-sam/build --cache_dir=.aws-sam/cache 
2021-05-21 17:44:03,421 | 'build' command is called
2021-05-21 17:44:03,424 | No Parameters detected in the template
2021-05-21 17:44:03,444 | 1 stacks found in the template
2021-05-21 17:44:03,444 | No Parameters detected in the template
2021-05-21 17:44:03,461 | 1 resources found in the stack 
2021-05-21 17:44:03,461 | No Parameters detected in the template
2021-05-21 17:44:03,478 | Found Serverless function with name='scd30CWReporterFunction' and CodeUri='scd30CWReporter/'
2021-05-21 17:44:03,478 | --base-dir is not presented, adjusting uri scd30CWReporter/ relative to /home/fdobrovo/ws/my/greengrass/greengrass_terra/template.yaml
2021-05-21 17:44:03,478 | No Parameters detected in the template
2021-05-21 17:44:03,495 | Instantiating build definitions
2021-05-21 17:44:03,497 | Same function build definition found, adding function (Previous: BuildDefinition(python3.8, /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter, Zip, , 0f6f69db-c824-4697-a081-c6e893a56484, {}, {}, []), Current: BuildDefinition(python3.8, /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter, Zip, , 584c2518-6919-4d8a-9c37-ff3bda0a0230, {}, {}, []), Function: Function(name='scd30CWReporterFunction', functionname='scd30CWReporterFunction', runtime='python3.8', memory=None, timeout=3, handler='app.lambda_handler', imageuri=None, packagetype='Zip', imageconfig=None, codeuri='/home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter', environment=None, rolearn=None, layers=[], events=None, metadata=None, inlinecode=None, codesign_config_arn=None, stack_path=''))
2021-05-21 17:44:03,498 | Building codeuri: /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter runtime: python3.8 metadata: {} functions: ['scd30CWReporterFunction']
2021-05-21 17:44:03,498 | Building to following folder /home/fdobrovo/ws/my/greengrass/greengrass_terra/.aws-sam/build/scd30CWReporterFunction
2021-05-21 17:44:03,498 | Loading workflow module 'aws_lambda_builders.workflows'
2021-05-21 17:44:03,500 | Registering workflow 'PythonPipBuilder' with capability 'Capability(language='python', dependency_manager='pip', application_framework=None)'
2021-05-21 17:44:03,501 | Registering workflow 'NodejsNpmBuilder' with capability 'Capability(language='nodejs', dependency_manager='npm', application_framework=None)'
2021-05-21 17:44:03,502 | Registering workflow 'RubyBundlerBuilder' with capability 'Capability(language='ruby', dependency_manager='bundler', application_framework=None)'
2021-05-21 17:44:03,503 | Registering workflow 'GoDepBuilder' with capability 'Capability(language='go', dependency_manager='dep', application_framework=None)'
2021-05-21 17:44:03,504 | Registering workflow 'GoModulesBuilder' with capability 'Capability(language='go', dependency_manager='modules', application_framework=None)'
2021-05-21 17:44:03,505 | Registering workflow 'JavaGradleWorkflow' with capability 'Capability(language='java', dependency_manager='gradle', application_framework=None)'
2021-05-21 17:44:03,506 | Registering workflow 'JavaMavenWorkflow' with capability 'Capability(language='java', dependency_manager='maven', application_framework=None)'
2021-05-21 17:44:03,507 | Registering workflow 'DotnetCliPackageBuilder' with capability 'Capability(language='dotnet', dependency_manager='cli-package', application_framework=None)'
2021-05-21 17:44:03,508 | Registering workflow 'CustomMakeBuilder' with capability 'Capability(language='provided', dependency_manager=None, application_framework=None)'
2021-05-21 17:44:03,508 | Found workflow 'PythonPipBuilder' to support capabilities 'Capability(language='python', dependency_manager='pip', application_framework=None)'
2021-05-21 17:44:03,529 | Running workflow 'PythonPipBuilder'
2021-05-21 17:44:03,529 | Running PythonPipBuilder:ResolveDependencies
2021-05-21 17:44:03,551 | calling pip download -r /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter/requirements.txt --dest /tmp/tmpvydt4_01
2021-05-21 17:44:04,791 | Full dependency closure: {awsiotsdk==1.5.17(wheel), awscrt==0.11.20(wheel)}
2021-05-21 17:44:04,791 | initial compatible: {awsiotsdk==1.5.17(wheel)}
2021-05-21 17:44:04,791 | initial incompatible: {awscrt==0.11.20(wheel)}
2021-05-21 17:44:04,791 | Downloading missing wheels: {awscrt==0.11.20(wheel)}
2021-05-21 17:44:04,791 | calling pip download --only-binary=:all: --no-deps --platform manylinux2014_x86_64 --implementation cp --abi cp38 --dest /tmp/tmpvydt4_01 awscrt==0.11.20
2021-05-21 17:44:05,842 | compatible wheels after second download pass: {awsiotsdk==1.5.17(wheel)}
2021-05-21 17:44:05,842 | Build missing wheels from sdists (C compiling True): set()
2021-05-21 17:44:05,842 | compatible after building wheels (no C compiling): {awsiotsdk==1.5.17(wheel)}
2021-05-21 17:44:05,842 | Build missing wheels from sdists (C compiling False): set()
2021-05-21 17:44:05,842 | compatible after building wheels (C compiling): {awsiotsdk==1.5.17(wheel)}
2021-05-21 17:44:05,842 | Final compatible: {awsiotsdk==1.5.17(wheel)}
2021-05-21 17:44:05,842 | Final incompatible: {awscrt==0.11.20(wheel)}
2021-05-21 17:44:05,842 | Final missing wheels: {awscrt==0.11.20(wheel)}
2021-05-21 17:44:05,846 | PythonPipBuilder:ResolveDependencies failed
Traceback (most recent call last):
  File "/home/fdobrovo/.local/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 39, in execute
    package_builder.build_dependencies(
  File "/home/fdobrovo/.local/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 137, in build_dependencies
    self._dependency_builder.build_site_packages(requirements_path, artifacts_dir_path, scratch_dir_path)
  File "/home/fdobrovo/.local/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 207, in build_site_packages
    raise MissingDependencyError(packages_without_wheels)
aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError: {awscrt==0.11.20(wheel)}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/fdobrovo/.local/lib/python3.8/site-packages/aws_lambda_builders/workflow.py", line 269, in run
    action.execute()
  File "/home/fdobrovo/.local/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 45, in execute
    raise ActionFailedError(str(ex))
aws_lambda_builders.actions.ActionFailedError: {awscrt==0.11.20(wheel)}

Build Failed
2021-05-21 17:44:05,848 | Sending Telemetry: {'metrics': [{'commandRun': {'requestId': 'cce8e803-afa1-4cc3-8866-10aeb2e6cba8', 'installationId': 'b360f94c-bf08-4fee-ba22-aef38589a66c', 'sessionId': 'c263f797-df77-4c53-866c-495167f6b384', 'executionEnvironment': 'CLI', 'ci': False, 'pyversion': '3.8.7', 'samcliVersion': '1.23.0', 'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'duration': 2635, 'exitReason': 'WorkflowFailedError', 'exitCode': 1}}]}
2021-05-21 17:44:06,520 | HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)
Error: PythonPipBuilder:ResolveDependencies - {awscrt==0.11.20(wheel)}

And using docker container:

$ sam build --debug --use-container
2021-05-21 17:40:49,803 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2021-05-21 17:40:49,803 | Using config file: samconfig.toml, config environment: default
2021-05-21 17:40:49,803 | Expand command line arguments to:
2021-05-21 17:40:49,803 | --template_file=/home/fdobrovo/ws/my/greengrass/greengrass_terra/template.yaml --use_container --build_dir=.aws-sam/build --cache_dir=.aws-sam/cache 
2021-05-21 17:40:50,015 | 'build' command is called
2021-05-21 17:40:50,015 | Starting Build inside a container
2021-05-21 17:40:50,018 | No Parameters detected in the template
2021-05-21 17:40:50,036 | 1 stacks found in the template
2021-05-21 17:40:50,037 | No Parameters detected in the template
2021-05-21 17:40:50,055 | 1 resources found in the stack 
2021-05-21 17:40:50,055 | No Parameters detected in the template
2021-05-21 17:40:50,072 | Found Serverless function with name='scd30CWReporterFunction' and CodeUri='scd30CWReporter/'
2021-05-21 17:40:50,072 | --base-dir is not presented, adjusting uri scd30CWReporter/ relative to /home/fdobrovo/ws/my/greengrass/greengrass_terra/template.yaml
2021-05-21 17:40:50,072 | No Parameters detected in the template
2021-05-21 17:40:50,090 | Instantiating build definitions
2021-05-21 17:40:50,092 | Same function build definition found, adding function (Previous: BuildDefinition(python3.8, /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter, Zip, , 0f6f69db-c824-4697-a081-c6e893a56484, {}, {}, []), Current: BuildDefinition(python3.8, /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter, Zip, , b6560917-5dbb-4549-a343-7c71eea9c9c8, {}, {}, []), Function: Function(name='scd30CWReporterFunction', functionname='scd30CWReporterFunction', runtime='python3.8', memory=None, timeout=3, handler='app.lambda_handler', imageuri=None, packagetype='Zip', imageconfig=None, codeuri='/home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter', environment=None, rolearn=None, layers=[], events=None, metadata=None, inlinecode=None, codesign_config_arn=None, stack_path=''))
2021-05-21 17:40:50,093 | Building codeuri: /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter runtime: python3.8 metadata: {} functions: ['scd30CWReporterFunction']
2021-05-21 17:40:50,093 | Building to following folder /home/fdobrovo/ws/my/greengrass/greengrass_terra/.aws-sam/build/scd30CWReporterFunction

Fetching public.ecr.aws/sam/build-python3.8:latest Docker container image......
2021-05-21 17:40:51,682 | Mounting /home/fdobrovo/ws/my/greengrass/greengrass_terra/scd30CWReporter as /tmp/samcli/source:ro,delegated inside runtime container
Using the request object from command line argument
Loading workflow module 'aws_lambda_builders.workflows'
Registering workflow 'PythonPipBuilder' with capability 'Capability(language='python', dependency_manager='pip', application_framework=None)'
Registering workflow 'NodejsNpmBuilder' with capability 'Capability(language='nodejs', dependency_manager='npm', application_framework=None)'
Registering workflow 'RubyBundlerBuilder' with capability 'Capability(language='ruby', dependency_manager='bundler', application_framework=None)'
Registering workflow 'GoDepBuilder' with capability 'Capability(language='go', dependency_manager='dep', application_framework=None)'
Registering workflow 'GoModulesBuilder' with capability 'Capability(language='go', dependency_manager='modules', application_framework=None)'
Registering workflow 'JavaGradleWorkflow' with capability 'Capability(language='java', dependency_manager='gradle', application_framework=None)'
Registering workflow 'JavaMavenWorkflow' with capability 'Capability(language='java', dependency_manager='maven', application_framework=None)'
Registering workflow 'DotnetCliPackageBuilder' with capability 'Capability(language='dotnet', dependency_manager='cli-package', application_framework=None)'
Registering workflow 'CustomMakeBuilder' with capability 'Capability(language='provided', dependency_manager=None, application_framework=None)'
Found workflow 'PythonPipBuilder' to support capabilities 'Capability(language='python', dependency_manager='pip', application_framework=None)'
Running workflow 'PythonPipBuilder'
Running PythonPipBuilder:ResolveDependencies
calling pip download -r /tmp/samcli/source/requirements.txt --dest /tmp/samcli/scratch
Full dependency closure: {awscrt==0.11.20(wheel), awsiotsdk==1.5.17(wheel)}
initial compatible: {awsiotsdk==1.5.17(wheel)}
initial incompatible: {awscrt==0.11.20(wheel)}
Downloading missing wheels: {awscrt==0.11.20(wheel)}
calling pip download --only-binary=:all: --no-deps --platform manylinux2014_x86_64 --implementation cp --abi cp38 --dest /tmp/samcli/scratch awscrt==0.11.20
compatible wheels after second download pass: {awsiotsdk==1.5.17(wheel)}
Build missing wheels from sdists (C compiling True): set()
compatible after building wheels (no C compiling): {awsiotsdk==1.5.17(wheel)}
Build missing wheels from sdists (C compiling False): set()
compatible after building wheels (C compiling): {awsiotsdk==1.5.17(wheel)}
Final compatible: {awsiotsdk==1.5.17(wheel)}
Final incompatible: {awscrt==0.11.20(wheel)}
Final missing wheels: {awscrt==0.11.20(wheel)}
PythonPipBuilder:ResolveDependencies failed
Traceback (most recent call last):
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 39, in execute
    package_builder.build_dependencies(
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 137, in build_dependencies
    self._dependency_builder.build_site_packages(requirements_path, artifacts_dir_path, scratch_dir_path)
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 207, in build_site_packages
    raise MissingDependencyError(packages_without_wheels)
aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError: {awscrt==0.11.20(wheel)}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflow.py", line 269, in run
    action.execute()
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 45, in execute
    raise ActionFailedError(str(ex))
aws_lambda_builders.actions.ActionFailedError: {awscrt==0.11.20(wheel)}
Builder workflow failed
Traceback (most recent call last):
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 39, in execute
    package_builder.build_dependencies(
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 137, in build_dependencies
    self._dependency_builder.build_site_packages(requirements_path, artifacts_dir_path, scratch_dir_path)
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 207, in build_site_packages
    raise MissingDependencyError(packages_without_wheels)
aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError: {awscrt==0.11.20(wheel)}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflow.py", line 269, in run
    action.execute()
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 45, in execute
    raise ActionFailedError(str(ex))
aws_lambda_builders.actions.ActionFailedError: {awscrt==0.11.20(wheel)}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/__main__.py", line 117, in main
    builder.build(
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/builder.py", line 125, in build
    return workflow.run()
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflow.py", line 76, in wrapper
    func(self, *args, **kwargs)
  File "/usr/local/opt/sam-cli/lib/python3.8/site-packages/aws_lambda_builders/workflow.py", line 276, in run
    raise WorkflowFailedError(workflow_name=self.NAME, action_name=action.NAME, reason=str(ex))
aws_lambda_builders.exceptions.WorkflowFailedError: PythonPipBuilder:ResolveDependencies - {awscrt==0.11.20(wheel)}
2021-05-21 17:40:54,943 | Build inside container returned response {"jsonrpc": "2.0", "id": 1, "error": {"code": 400, "message": "PythonPipBuilder:ResolveDependencies - {awscrt==0.11.20(wheel)}"}}

Build Failed
2021-05-21 17:40:55,116 | Sending Telemetry: {'metrics': [{'commandRun': {'requestId': '2f5b704d-72b6-4c06-a16f-54b54c03f0f8', 'installationId': 'b360f94c-bf08-4fee-ba22-aef38589a66c', 'sessionId': '21107f18-6d19-496f-8933-630890527262', 'executionEnvironment': 'CLI', 'ci': False, 'pyversion': '3.8.7', 'samcliVersion': '1.23.0', 'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'duration': 5312, 'exitReason': 'BuildInsideContainerError', 'exitCode': 1}}]}
2021-05-21 17:40:55,810 | HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)
Error: PythonPipBuilder:ResolveDependencies - {awscrt==0.11.20(wheel)}

The same happens when I try the python3.7 env.

Handling Policy violations: What does AWS_ERROR_MQTT_UNEXPECTED_HANGUP actually mean?

I have a program which connects to AWS IoT, then runs a loop where it tries to poll information from a database and if it finds some it publishes it to an MQTT topic.

It generally works great.

I have discovered however, that if the policy attached to the certificate does not allow the client to publish on that topic, the client gets disconnected with the error: AwsCrtError(name='AWS_ERROR_MQTT_UNEXPECTED_HANGUP', message='The connection was closed unexpectedly.', code=5134). Then it immediately automatically reconnects, then immediately tries to resend the message (probably because QoS is 1) and then it immediately gets disconnected again with the same error for the same reason.

This creates a bit of an unfortunate loop where the client spams connections to the AWS IoT service really quickly.

Even if the just attaching the right policy works, I would still ideally like the code to behave a bit nicer in this error case.

My main idea is to simply disconnect and stop trying to connect until the system (client) is restarted next time when the AWS_ERROR_MQTT_UNEXPECTED_HANGUP error happens.

But before doing that, I would like to know what that error actually means? I cannot find documentation on it anywhere.

What I hope is that I can count on it only happening when something is wrong with the server (bug or a policy(or other circumstance) which does not allow the client to do what it wants). In that case it is reasonable (in my system) for the client to simply give up.

What I fear is that it is some kind of catch-all error which can happen for any number of reasons, some for which retrying is the correct thing to do and some for which giving up is the correct thing to do and that I cannot distinguish them.

Another approach which could maybe work is having some pretty aggressive slow-down on publish retries. I know this can be done with connection attempts, but is it possible to do it with publish attempts under QoS=1?

mqtt client fails to connect on AMD Ryzen host (awscrt >= 0.6.0)

Issue

The following code fails when using awsiotsdk versions > 1.2.0 where awscrt dependency is changed from 0.5.x to 0.6.0. I've only observed this issue on our AMD Ryzen host.

$ cat error.py 
from awscrt import io, auth
from awsiot import mqtt_connection_builder

event_loop_group = io.EventLoopGroup(1)
host_resolver = io.DefaultHostResolver(event_loop_group)
client_bootstrap = io.ClientBootstrap(event_loop_group, host_resolver)
credentials_provider = auth.AwsCredentialsProvider.new_default_chain(client_bootstrap)

mqtt_client = mqtt_connection_builder.websockets_with_default_aws_signing(
    endpoint='...',
    client_bootstrap=client_bootstrap,
    region='eu-west-1',
    credentials_provider=credentials_provider,
    websocket_proxy_options=None,
    ca_filepath='...',
    client_id='...',
    clean_session=False,
    keep_alive_secs=6)

future = mqtt_client.connect()
future.result()
print('connected')

Reproduce

Works using awsiotsdk==1.2.0

$ python3 -m pip install awsiotsdk==1.2.0
WARNING: The candidate selected for download or install is a yanked version: 'awsiotsdk' candidate (version 1.2.0 at https://files.pythonhosted.org/packages/fc/35/df8f8796f0b689b422fff3304b32fca5f686fa8bff9e95e24b84389fdf53/awsiotsdk-1.2.0-py2.py3-none-any.whl#sha256=d84feaa04e42a6922b48081719b114166cd39cc28ebaced7d7828b0a12290412 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7))
Reason for being yanked: This release introduced a backwards incompatibility that was addressed by 1.3.0
Collecting awsiotsdk==1.2.0
  Using cached awsiotsdk-1.2.0-py2.py3-none-any.whl (19 kB)
Collecting awscrt==0.5.15
  Using cached awscrt-0.5.15-cp38-cp38-manylinux2014_x86_64.whl (3.3 MB)
Installing collected packages: awscrt, awsiotsdk
Successfully installed awscrt-0.5.15 awsiotsdk-1.2.0$ python3 error.py 

$ python3 error.py
connected

Fails using awsiotsdk==1.2.1

$ python3 -m pip install awsiotsdk==1.2.1
WARNING: The candidate selected for download or install is a yanked version: 'awsiotsdk' candidate (version 1.2.1 at https://files.pythonhosted.org/packages/e7/b7/e8a31b63ec1c20c7a9f8155c7fdf3aea9af40a5e6d9cf060ceab8839b4ca/awsiotsdk-1.2.1-py2.py3-none-any.whl#sha256=257aed87b709e960d2c1da8484b35a467779a9cf4531af9f24b7952a4d4a22a6 (from https://pypi.org/simple/awsiotsdk/) (requires-python:>=2.7))
Reason for being yanked: This release contains a backwards incompatibility that was addressed by 1.3.0
Collecting awsiotsdk==1.2.1
  Using cached awsiotsdk-1.2.1-py2.py3-none-any.whl (19 kB)
Collecting awscrt==0.6.0
  Using cached awscrt-0.6.0-cp38-cp38-manylinux2014_x86_64.whl (3.5 MB)
Installing collected packages: awscrt, awsiotsdk
  Attempting uninstall: awscrt
    Found existing installation: awscrt 0.5.15
    Uninstalling awscrt-0.5.15:
      Successfully uninstalled awscrt-0.5.15
  Attempting uninstall: awsiotsdk
    Found existing installation: awsiotsdk 1.2.0
    Uninstalling awsiotsdk-1.2.0:
      Successfully uninstalled awsiotsdk-1.2.0
Successfully installed awscrt-0.6.0 awsiotsdk-1.2.1

$ python3 error.py 
Traceback (most recent call last):
  File "error.py", line 21, in <module>
    future.result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 439, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 388, in __get_result
    raise self._exception
awscrt.exceptions.AwsCrtError: AwsCrtError(name='AWS_ERROR_HTTP_CALLBACK_FAILURE', message='A callback has reported failure.', code=2064)

Host information

$ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   43 bits physical, 48 bits virtual
CPU(s):                          24
On-line CPU(s) list:             0-23
Thread(s) per core:              2
Core(s) per socket:              12
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       AuthenticAMD
CPU family:                      23
Model:                           113
Model name:                      AMD Ryzen 9 3900X 12-Core Processor
Stepping:                        0
Frequency boost:                 enabled
CPU MHz:                         2194.941
CPU max MHz:                     3800,0000
CPU min MHz:                     2200,0000
BogoMIPS:                        7585.82
Virtualization:                  AMD-V
L1d cache:                       384 KiB
L1i cache:                       384 KiB
L2 cache:                        6 MiB
L3 cache:                        64 MiB
NUMA node0 CPU(s):               0-23
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full AMD retpoline, IBPB conditional, STIBP always-on, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pd
                                 pe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 ss
                                 e4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs
                                  skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd mba sev ibpb stibp v
                                 mmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_oc
                                 cup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushb
                                 yasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca

Build wheels for `musllinux`

Precompiled wheels for musl based Linux distributions (e.g., alpine linux) are not provided at this moment (ref. #272).
Therefore, it is time-consuming to utilize this library in the container environment that we often see.

musllinux spec has just landed at PEP656 and musllinux wheels must be super useful for these environments.

I understand that there are several improvements planned for CI at #312 #308 and I'm sure they will take priority.

Add a way to change the default TLS timeout

Hi, I use this library together with awsiot to establish MQTT connection and use it for publishing messages to the IoT Core broker from devices that very often have poor network conditions (TCP packets getting lost, high latency). Recently one of the issues I spotted was that the MQTT connection fails with the following error:

awscrt.exceptions.AwsCrtError: AwsCrtError(name='AWS_IO_TLS_NEGOTIATION_TIMEOUT', message='Channel shutdown due to tls negotiation timeout', code=1067)

To reproduce the issue:

  • introduce a high delay for each TCP packet, e.g. on Linux: sudo tc qdisc replace dev wlp0s20f3 root netem delay 1500ms 200ms (where wlp0s20f3 is the name of the network interface)
  • run any script that will initiate the MQTT connection (e.g. https://github.com/aws/aws-iot-device-sdk-python-v2/blob/master/samples/pubsub.py)
  • revert the network delay with: sudo tc qdisc del dev wlp0s20f3 root (replace wlp0s20f3 with a correct interface name)

Even though the mqtt_connection_builder provides a number of timeout-related parameters, none of them has an impact on the TLS negotiation timeout that is the cause of the failure.

After some debugging I was able to find out that the C library aws-c-io (that this library has bindings to) defines an object aws_tls_connection_options that contains the parameter timeout_ms. However, the method that aws-crt-python is calling sets this parameter to a default, hard-coded value of 4000ms. What's more, the Python structures that provide the application-level abstraction (namely TlsContextOptions) do not contain the timeout property, so there's no way to change the value even after the context was initialized with the default one.

In order to establish the MQTT connection reliably from the device in a high-latency network, it's crucial that the TLS negotiation timeout can be set to a value higher than 4 seconds. Please provide a way to set the timeout to any custom value.

Runtime link issue with: libpthread_atfork

Hello There,
I appear to be having a runtime link issue with the awscrt library not being able to locate the pthread_atfork( ) function.

I am running on an embedded ARM v7 device.

This is the error I receive when running the python3 script:

ImportError: /usr/lib/python3.5/site-packages/_awscrt.cpython-35m-arm-linux-gnueabihf.so: undefined symbol: pthread_atfork`

root@dev:/lib# nm -D libpthread.so.0 | grep pthread_atfork
root@dev:/lib# nm -D /usr/lib/libpthread_nonshared.a | grep pthread_atfork
root@dev:/lib# nm -D /usr/lib/libpthread_nonshared.a

pthread_atfork.oS:
nm: pthread_atfork.oS: no symbols

root@dev:/lib# more /usr/lib/libpthread
libpthread.so libpthread_nonshared.a
root@dev:/lib# more /usr/lib/libpthread.so
/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( ../../lib/libpthread.so.0 ./libpthread_nonshared.a )
root@dev:/lib# `

These are the packages that were built:

/usr/lib/python3.5/site-packages/_awscrt.cpython-35m-arm-linux-gnueabihf.so
/usr/lib/python3.5/site-packages/awscrt-0.9.0.dist-info/*
/usr/lib/python3.5/site-packages/awscrt/*

Any help would be much appreciated!

Getting AWS_ERROR_HTTP_CALLBACK_FAILURE when running in codepipeline.

Hello,
I created a custom tavern plugin for automated mqtt tests using the crt mqtt client, and I am able to run the tests locally with my aws profile enabled etc.

When I run the tests in my codepipeline ci step, I get the error:


# resolve the connection.
--
951 | >       connection.result()
952 |  
953 | ve/lib/python3.7/site-packages/tavern_awsmqtt/plugin/mqtt/session.py:126:
954 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
955 |  
956 | self = <Future at 0x7f890bc47ad0 state=finished raised AwsCrtError>
957 | timeout = None
958 |  
959 | def result(self, timeout=None):
960 | """Return the result of the call that the future represents.
961 |  
962 | Args:
963 | timeout: The number of seconds to wait for the result if the future
964 | isn't done. If None, then there is no limit on the wait time.
965 |  
966 | Returns:
967 | The result of the call that the future represents.
968 |  
969 | Raises:
970 | CancelledError: If the future was cancelled.
971 | TimeoutError: If the future didn't finish executing before the given
972 | timeout.
973 | Exception: If the call raised then that exception will be raised.
974 | """
975 | with self._condition:
976 | if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
977 | raise CancelledError()
978 | elif self._state == FINISHED:
979 | >               return self.__get_result()
980 |  
981 | /usr/local/lib/python3.7/concurrent/futures/_base.py:428:
982 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
983 |  
984 | self = <Future at 0x7f890bc47ad0 state=finished raised AwsCrtError>
985 |  
986 | def __get_result(self):
987 | if self._exception:
988 | >           raise self._exception
989 | E           awscrt.exceptions.AwsCrtError: AwsCrtError(name='AWS_ERROR_HTTP_CALLBACK_FAILURE', message='A callback has reported failure.', code=2064)
990 |  
991 | /usr/local/lib/python3.7/concurrent/futures/_base.py:384: AwsCrtError
992 | ====================== 1 failed, 2 passed in 8.79 seconds ======================

How could I diagnose the issue? I thought maybe it was a permission issue but my codepipeline has iot (and sts) full perms.. so not sure?

Locally I am able to also connect within a python terminal and publish messages etc...

Cross-compile fails with error: do no use /usr/include (host path)

Please see log

Specific error is:

| cc1: error: include location "/usr/include" is unsafe for cross-compilation [-Werror=poison-system-directories]

full log:

Log data follows:
| DEBUG: Executing shell function do_compile
| running build
| running build_py
| creating /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8
| creating /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/io.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/crypto.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/exceptions.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/http.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/auth.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/mqtt.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/awsiot_mqtt_connection_builder.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/__init__.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| creating /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt/eventstream
| copying awscrt/eventstream/rpc.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt/eventstream
| copying awscrt/eventstream/__init__.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt/eventstream
| running build_ext
| -- The C compiler identification is GNU 10.2.0
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Check for working C compiler: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc - skipped
| -- Detecting C compile features
| -- Detecting C compile features - done
| -- Looking for pthread.h
| -- Looking for pthread.h - found
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
| -- Check if compiler accepts -pthread
| -- Check if compiler accepts -pthread - yes
| -- Found Threads: TRUE
| -- Attempting to try_compile PQ ASM
| -- The ASM compiler identification is GNU
| -- Found assembler: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc
| -- PQ ASM try_compile succeeded - using optimized x86_64 assembly for PQ crypto
| -- Attempting to try_compile PQ ASM with ADX support
| -- PQ ASM try_compile with ADX support succeeded - using ASM code with ADX instructions
| -- Performing Test S2N_HAVE_EXECINFO
| -- Performing Test S2N_HAVE_EXECINFO - Success
| -- Found LibCrypto: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/libcrypto.a
| -- LibCrypto Include Dir: /usr/include
| -- LibCrypto Shared Lib:  /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/libcrypto.so
| -- LibCrypto Static Lib:  /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/libcrypto.a
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/build/deps/s2n
| Scanning dependencies of target s2n
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_aead_cipher_aes_gcm.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_cbc_cipher_3des.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_cbc_cipher_aes.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_aead_cipher_chacha20_poly1305.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_certificate.c.o
| [  3%] Building C object CMakeFiles/s2n.dir/crypto/s2n_cipher.c.o
| [  3%] Building C object CMakeFiles/s2n.dir/crypto/s2n_composite_cipher_aes_sha.c.o
| [  4%] Building C object CMakeFiles/s2n.dir/crypto/s2n_dhe.c.o
| [  4%] Building C object CMakeFiles/s2n.dir/crypto/s2n_drbg.c.o
| [  5%] Building C object CMakeFiles/s2n.dir/crypto/s2n_ecc_evp.c.o
| [  5%] Building C object CMakeFiles/s2n.dir/crypto/s2n_ecdsa.c.o
| [  6%] Building C object CMakeFiles/s2n.dir/crypto/s2n_evp.c.o
| [  6%] Building C object CMakeFiles/s2n.dir/crypto/s2n_fips.c.o
| [  7%] Building C object CMakeFiles/s2n.dir/crypto/s2n_hash.c.o
| [  7%] Building C object CMakeFiles/s2n.dir/crypto/s2n_hkdf.c.o
| [  8%] Building C object CMakeFiles/s2n.dir/crypto/s2n_rsa_signing.c.o
| [  8%] Building C object CMakeFiles/s2n.dir/crypto/s2n_rsa.c.o
| [  8%] Building C object CMakeFiles/s2n.dir/crypto/s2n_pkey.c.o
| [ 10%] Building C object CMakeFiles/s2n.dir/crypto/s2n_rsa_pss.c.o
| [ 10%] Building C object CMakeFiles/s2n.dir/crypto/s2n_sequence.c.o
| [ 11%] Building C object CMakeFiles/s2n.dir/crypto/s2n_hmac.c.o
| [ 12%] Building C object CMakeFiles/s2n.dir/crypto/s2n_stream_cipher_rc4.c.o
| [ 12%] Building C object CMakeFiles/s2n.dir/crypto/s2n_stream_cipher_null.c.o
| [ 13%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/bike_r1_kem.c.o
| [ 13%] Building C object CMakeFiles/s2n.dir/crypto/s2n_tls13_keys.c.o
| [ 14%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/openssl_utils.c.o
| [ 14%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/converts_portable.c.o
| [ 15%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/sampling.c.o
| [ 16%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/polyvec.c.o
| [ 17%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/secure_decode_portable.c.o
| [ 17%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/sampling_portable.c.o
| [ 17%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/gf2x_mul.c.o
| [ 18%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/polyvec.c.o
| [ 19%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/utilities.c.o
| [ 19%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/gf2x_portable.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/aes256ctr.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/aes_c.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/openssl_utils.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/decode.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/error.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/aes_ctr_prf.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/aes_ctr_prf.c.o
| [ 21%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/sampling.c.o
| [ 21%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/utilities.c.o
| [ 22%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r2/P434.c.o
| [ 22%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/poly.c.o
| [ 22%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/secure_decode_portable.c.o
| [ 23%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_key_share.c.o
| [ 24%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/sampling_portable.c.o
| [ 24%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/reduce.c.o
| [ 25%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_max_frag_len.c.o
| [ 25%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/parallel_hash.c.o
| [ 25%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/reduce.c.o
| [ 26%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/decode.c.o
| [ 26%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/fips202_r1.c.o
| [ 27%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/symmetric-fips202.c.o
| [ 28%] Building C object CMakeFiles/s2n.dir/error/s2n_errno.c.o
| [ 28%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/sike_r1_kem.c.o
| [ 28%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_file.c.o
| [ 29%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/indcpa.c.o
| [ 29%] Building C object CMakeFiles/s2n.dir/pq-crypto/pq_random.c.o
| [ 30%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/verify.c.o
| [ 32%] Building ASM object CMakeFiles/s2n.dir/pq-crypto/sike_r2/fp_x64_asm.S.o
| [ 32%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/cbd.c.o
| [ 32%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_extension_type.c.o
| [ 33%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/fp_generic_r1.c.o
| [ 33%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/fips202_kyber_r2.c.o
| [ 33%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_sct_list.c.o
| [ 34%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_network_order.c.o
| [ 35%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_text.c.o
| [ 35%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_supported_versions.c.o
| [ 37%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_renegotiation_info.c.o
| [ 37%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_key_share.c.o
| [ 38%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_alpn.c.o
| [ 37%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_key_share.c.o
| [ 39%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_signature_algorithms.c.o
| [ 39%] Building C object CMakeFiles/s2n.dir/tls/s2n_auth_selection.c.o
| [ 40%] Building C object CMakeFiles/s2n.dir/tls/s2n_cipher_suites.c.o
| [ 42%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_extension_type_lists.c.o
| [ 42%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_renegotiation_info.c.o
| [ 42%] Building C object CMakeFiles/s2n.dir/tls/s2n_protocol_preferences.c.o
| [ 43%] Building C object CMakeFiles/s2n.dir/tls/s2n_handshake_transcript.c.o
| [ 44%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_server_name.c.o
| [ 44%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/poly.c.o
| [ 44%] Building C object CMakeFiles/s2n.dir/tls/s2n_cipher_preferences.c.o
| [ 45%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_cookie.c.o
| [ 45%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_cert.c.o
| [ 46%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/ntt.c.o
| [ 46%] Building C object CMakeFiles/s2n.dir/tls/s2n_key_update.c.o
| [ 47%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/cbd.c.o
| [ 48%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/indcpa.c.o
| [ 48%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_session_ticket.c.o
| [ 49%] Building C object CMakeFiles/s2n.dir/tls/s2n_kex.c.o
| [ 50%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/gf2x_portable.c.o
| cc1: error: include location "/usr/include" is unsafe for cross-compilation [-Werror=poison-system-directories]
| [ 51%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_signature_algorithms.c.o
| [ 52%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_supported_groups.c.o
| [ 53%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/bike_r2_kem.c.o
| [ 53%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_cbc.c.o
| [ 54%] Building C object CMakeFiles/s2n.dir/utils/s2n_init.c.o
| [ 55%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_finished.c.o
| [ 56%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls13_certificate_verify.c.o
| [ 56%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read.c.o
| cc1: all warnings being treated as errors
| CMakeFiles/s2n.dir/build.make:1082: recipe for target 'CMakeFiles/s2n.dir/pq-crypto/sike_r2/fp_x64_asm.S.o' failed
| make[2]: *** [CMakeFiles/s2n.dir/pq-crypto/sike_r2/fp_x64_asm.S.o] Error 1
| make[2]: *** Waiting for unfinished jobs....
| [ 56%] Building C object CMakeFiles/s2n.dir/utils/s2n_set.c.o
| [ 56%] Building C object CMakeFiles/s2n.dir/utils/s2n_str.c.o
| [ 57%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls.c.o
| [ 57%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_finished.c.o
| [ 58%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/ntt.c.o
| [ 59%] Building C object CMakeFiles/s2n.dir/utils/s2n_safety.c.o
| [ 60%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_cert_verify.c.o
| [ 60%] Building C object CMakeFiles/s2n.dir/utils/s2n_asn1_time.c.o
| [ 61%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/error.c.o
| [ 62%] Building C object CMakeFiles/s2n.dir/utils/s2n_blob.c.o
| [ 62%] Building C object CMakeFiles/s2n.dir/tls/s2n_shutdown.c.o
| [ 63%] Building C object CMakeFiles/s2n.dir/tls/s2n_connection_evp_digests.c.o
| [ 64%] Building C object CMakeFiles/s2n.dir/tls/s2n_cbc.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/tls/s2n_change_cipher_spec.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_ec_point_format.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/tls/s2n_recv.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/utils/s2n_random.c.o
| [ 66%] Building C object CMakeFiles/s2n.dir/utils/s2n_array.c.o
| [ 66%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_session_ticket.c.o
| [ 67%] Building C object CMakeFiles/s2n.dir/utils/s2n_socket.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_alerts.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_key_exchange.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/utils/s2n_result.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_kem.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_extensions.c.o
| [ 70%] Building C object CMakeFiles/s2n.dir/tls/s2n_signature_algorithms.c.o
| [ 71%] Building C object CMakeFiles/s2n.dir/tls/s2n_aead.c.o
| [ 71%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/verify.c.o
| [ 71%] Building C object CMakeFiles/s2n.dir/utils/s2n_ensure.c.o
| [ 72%] Building C object CMakeFiles/s2n.dir/tls/s2n_x509_validator.c.o
| [ 72%] Building C object CMakeFiles/s2n.dir/tls/s2n_resume.c.o
| [ 73%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_composite.c.o
| [ 73%] Building C object CMakeFiles/s2n.dir/tls/s2n_kem_preferences.c.o
| [ 74%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_quic_transport_params.c.o
| [ 75%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/P503_r1.c.o
| [ 75%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_max_fragment_length.c.o
| [ 76%] Building C object CMakeFiles/s2n.dir/tls/s2n_handshake.c.o
| [ 77%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/gf2x_mul.c.o
| [ 78%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_write.c.o
| [ 78%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_hello.c.o
| [ 78%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_certificate_status.c.o
| [ 39%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_status_request.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/tls/s2n_async_pkey.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls13.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r2/fips202.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/tls/s2n_ecc_preferences.c.o
| [ 80%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_cert.c.o
| [ 80%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_pem.c.o
| [ 81%] Building C object CMakeFiles/s2n.dir/tls/s2n_ocsp_stapling.c.o
| [ 82%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_hello.c.o
| [ 82%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_cert_request.c.o
| [ 83%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_server_name.c.o
| [ 83%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_stream.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls13_handshake.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/s2n_establish_session.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_sct_list.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/utils/s2n_map.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_status_request.c.o
| [ 85%] Building C object CMakeFiles/s2n.dir/tls/s2n_security_policies.c.o
| [ 86%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_supported_versions.c.o
| [ 86%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_alpn.c.o
| [ 87%] Building C object CMakeFiles/s2n.dir/utils/s2n_mem.c.o
| [ 88%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_done.c.o
| [ 89%] Building C object CMakeFiles/s2n.dir/tls/s2n_quic_support.c.o
| [ 89%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_supported_versions.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_encrypted_extensions.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_connection.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_send.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_post_handshake.c.o
| [ 91%] Building C object CMakeFiles/s2n.dir/utils/s2n_timer.c.o
| [ 92%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/sha2_c.c.o
| [ 92%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_pq_kem.c.o
| [ 93%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_base64.c.o
| [ 94%] Building C object CMakeFiles/s2n.dir/tls/s2n_prf.c.o
| [ 94%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/kyber_r2_kem.c.o
| [ 94%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/kyber_90s_r2_kem.c.o
| [ 95%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_aead.c.o
| [ 95%] Building C object CMakeFiles/s2n.dir/utils/s2n_rfc5952.c.o
| [ 96%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_new_session_ticket.c.o
| [ 96%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_key_exchange.c.o
| [ 97%] Building C object CMakeFiles/s2n.dir/tls/s2n_config.c.o
| [ 98%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_hello_retry.c.o
| [ 98%] Building C object CMakeFiles/s2n.dir/tls/s2n_handshake_io.c.o
| [ 99%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_extension_list.c.o
| [ 99%] Building C object CMakeFiles/s2n.dir/tls/s2n_signature_scheme.c.o
| CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/s2n.dir/all' failed
| make[1]: *** [CMakeFiles/s2n.dir/all] Error 2
| Makefile:148: recipe for target 'all' failed
| make: *** [all] Error 2
| /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/site-packages/setuptools/dist.py:458: UserWarning: Normalizing '1.0.0-dev' to '1.0.0.dev0'
|   warnings.warn(tmpl.format(**locals()))
| --- Building dependency: s2n (RelWithDebInfo) ---
| /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/cmake -DCMAKE_PREFIX_PATH=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/build/deps/install -DCMAKE_INSTALL_PREFIX=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_INCLUDE_PATH=\"/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot/usr/include/python3.8\" -DCMAKE_LIBRARY_PATH=\"/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot/usr/lib\" /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/crt/s2n
| /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/cmake --build ./ --config RelWithDebInfo --target install --parallel
| Traceback (most recent call last):
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/setup.py", line 300, in <module>
|     setuptools.setup(
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 163, in setup
|     return distutils.core.setup(**attrs)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/core.py", line 148, in setup
|     dist.run_commands()
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
|     self.run_command(cmd)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
|     cmd_obj.run()
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/command/build.py", line 135, in run
|     self.run_command(cmd_name)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
|     self.distribution.run_command(command)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
|     cmd_obj.run()
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/setup.py", line 234, in run
|     self._build_dependency(lib, libcrypto_paths)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/setup.py", line 223, in _build_dependency
|     subprocess.check_call(build_cmd)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/subprocess.py", line 364, in check_call
|     raise CalledProcessError(retcode, cmd)
| subprocess.CalledProcessError: Command '['/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/cmake', '--build', './', '--config', 'RelWithDebInfo', '--target', 'install', '--parallel']' returned non-zero exit status 2.
| ERROR: 'python3 setup.py build ' execution failed.
| WARNING: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747:175 exit 1 from 'exit 1'
| WARNING: Backtrace (BB generated script):
| 	#1: bbfatal_log, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 175
| 	#2: distutils3_do_compile, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 165
| 	#3: do_compile, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 154
| 	#4: main, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 179
| ERROR: Execution of '/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747' failed with exit code 1:
| running build
| running build_py
| creating /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8
| creating /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/io.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/crypto.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/exceptions.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/http.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/auth.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/mqtt.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/awsiot_mqtt_connection_builder.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| copying awscrt/__init__.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt
| creating /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt/eventstream
| copying awscrt/eventstream/rpc.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt/eventstream
| copying awscrt/eventstream/__init__.py -> /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/build/lib.linux-x86_64-3.8/awscrt/eventstream
| running build_ext
| -- The C compiler identification is GNU 10.2.0
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Check for working C compiler: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc - skipped
| -- Detecting C compile features
| -- Detecting C compile features - done
| -- Looking for pthread.h
| -- Looking for pthread.h - found
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
| -- Check if compiler accepts -pthread
| -- Check if compiler accepts -pthread - yes
| -- Found Threads: TRUE
| -- Attempting to try_compile PQ ASM
| -- The ASM compiler identification is GNU
| -- Found assembler: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc
| -- PQ ASM try_compile succeeded - using optimized x86_64 assembly for PQ crypto
| -- Attempting to try_compile PQ ASM with ADX support
| -- PQ ASM try_compile with ADX support succeeded - using ASM code with ADX instructions
| -- Performing Test S2N_HAVE_EXECINFO
| -- Performing Test S2N_HAVE_EXECINFO - Success
| -- Found LibCrypto: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/libcrypto.a
| -- LibCrypto Include Dir: /usr/include
| -- LibCrypto Shared Lib:  /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/libcrypto.so
| -- LibCrypto Static Lib:  /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/libcrypto.a
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/build/deps/s2n
| Scanning dependencies of target s2n
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_aead_cipher_aes_gcm.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_cbc_cipher_3des.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_cbc_cipher_aes.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_aead_cipher_chacha20_poly1305.c.o
| [  2%] Building C object CMakeFiles/s2n.dir/crypto/s2n_certificate.c.o
| [  3%] Building C object CMakeFiles/s2n.dir/crypto/s2n_cipher.c.o
| [  3%] Building C object CMakeFiles/s2n.dir/crypto/s2n_composite_cipher_aes_sha.c.o
| [  4%] Building C object CMakeFiles/s2n.dir/crypto/s2n_dhe.c.o
| [  4%] Building C object CMakeFiles/s2n.dir/crypto/s2n_drbg.c.o
| [  5%] Building C object CMakeFiles/s2n.dir/crypto/s2n_ecc_evp.c.o
| [  5%] Building C object CMakeFiles/s2n.dir/crypto/s2n_ecdsa.c.o
| [  6%] Building C object CMakeFiles/s2n.dir/crypto/s2n_evp.c.o
| [  6%] Building C object CMakeFiles/s2n.dir/crypto/s2n_fips.c.o
| [  7%] Building C object CMakeFiles/s2n.dir/crypto/s2n_hash.c.o
| [  7%] Building C object CMakeFiles/s2n.dir/crypto/s2n_hkdf.c.o
| [  8%] Building C object CMakeFiles/s2n.dir/crypto/s2n_rsa_signing.c.o
| [  8%] Building C object CMakeFiles/s2n.dir/crypto/s2n_rsa.c.o
| [  8%] Building C object CMakeFiles/s2n.dir/crypto/s2n_pkey.c.o
| [ 10%] Building C object CMakeFiles/s2n.dir/crypto/s2n_rsa_pss.c.o
| [ 10%] Building C object CMakeFiles/s2n.dir/crypto/s2n_sequence.c.o
| [ 11%] Building C object CMakeFiles/s2n.dir/crypto/s2n_hmac.c.o
| [ 12%] Building C object CMakeFiles/s2n.dir/crypto/s2n_stream_cipher_rc4.c.o
| [ 12%] Building C object CMakeFiles/s2n.dir/crypto/s2n_stream_cipher_null.c.o
| [ 13%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/bike_r1_kem.c.o
| [ 13%] Building C object CMakeFiles/s2n.dir/crypto/s2n_tls13_keys.c.o
| [ 14%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/openssl_utils.c.o
| [ 14%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/converts_portable.c.o
| [ 15%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/sampling.c.o
| [ 16%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/polyvec.c.o
| [ 17%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/secure_decode_portable.c.o
| [ 17%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/sampling_portable.c.o
| [ 17%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/gf2x_mul.c.o
| [ 18%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/polyvec.c.o
| [ 19%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/utilities.c.o
| [ 19%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/gf2x_portable.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/aes256ctr.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/aes_c.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/openssl_utils.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/decode.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/error.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/aes_ctr_prf.c.o
| [ 20%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/aes_ctr_prf.c.o
| [ 21%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/sampling.c.o
| [ 21%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/utilities.c.o
| [ 22%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r2/P434.c.o
| [ 22%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/poly.c.o
| [ 22%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/secure_decode_portable.c.o
| [ 23%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_key_share.c.o
| [ 24%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/sampling_portable.c.o
| [ 24%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/reduce.c.o
| [ 25%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_max_frag_len.c.o
| [ 25%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/parallel_hash.c.o
| [ 25%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/reduce.c.o
| [ 26%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/decode.c.o
| [ 26%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/fips202_r1.c.o
| [ 27%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/symmetric-fips202.c.o
| [ 28%] Building C object CMakeFiles/s2n.dir/error/s2n_errno.c.o
| [ 28%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/sike_r1_kem.c.o
| [ 28%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_file.c.o
| [ 29%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/indcpa.c.o
| [ 29%] Building C object CMakeFiles/s2n.dir/pq-crypto/pq_random.c.o
| [ 30%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/verify.c.o
| [ 32%] Building ASM object CMakeFiles/s2n.dir/pq-crypto/sike_r2/fp_x64_asm.S.o
| [ 32%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/cbd.c.o
| [ 32%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_extension_type.c.o
| [ 33%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/fp_generic_r1.c.o
| [ 33%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/fips202_kyber_r2.c.o
| [ 33%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_sct_list.c.o
| [ 34%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_network_order.c.o
| [ 35%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_text.c.o
| [ 35%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_supported_versions.c.o
| [ 37%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_renegotiation_info.c.o
| [ 37%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_key_share.c.o
| [ 38%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_alpn.c.o
| [ 37%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_key_share.c.o
| [ 39%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_signature_algorithms.c.o
| [ 39%] Building C object CMakeFiles/s2n.dir/tls/s2n_auth_selection.c.o
| [ 40%] Building C object CMakeFiles/s2n.dir/tls/s2n_cipher_suites.c.o
| [ 42%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_extension_type_lists.c.o
| [ 42%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_renegotiation_info.c.o
| [ 42%] Building C object CMakeFiles/s2n.dir/tls/s2n_protocol_preferences.c.o
| [ 43%] Building C object CMakeFiles/s2n.dir/tls/s2n_handshake_transcript.c.o
| [ 44%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_server_name.c.o
| [ 44%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/poly.c.o
| [ 44%] Building C object CMakeFiles/s2n.dir/tls/s2n_cipher_preferences.c.o
| [ 45%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_cookie.c.o
| [ 45%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_cert.c.o
| [ 46%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/ntt.c.o
| [ 46%] Building C object CMakeFiles/s2n.dir/tls/s2n_key_update.c.o
| [ 47%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/cbd.c.o
| [ 48%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/indcpa.c.o
| [ 48%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_session_ticket.c.o
| [ 49%] Building C object CMakeFiles/s2n.dir/tls/s2n_kex.c.o
| [ 50%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/gf2x_portable.c.o
| cc1: error: include location "/usr/include" is unsafe for cross-compilation [-Werror=poison-system-directories]
| [ 51%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_signature_algorithms.c.o
| [ 52%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_supported_groups.c.o
| [ 53%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/bike_r2_kem.c.o
| [ 53%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_cbc.c.o
| [ 54%] Building C object CMakeFiles/s2n.dir/utils/s2n_init.c.o
| [ 55%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_finished.c.o
| [ 56%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls13_certificate_verify.c.o
| [ 56%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read.c.o
| cc1: all warnings being treated as errors
| CMakeFiles/s2n.dir/build.make:1082: recipe for target 'CMakeFiles/s2n.dir/pq-crypto/sike_r2/fp_x64_asm.S.o' failed
| make[2]: *** [CMakeFiles/s2n.dir/pq-crypto/sike_r2/fp_x64_asm.S.o] Error 1
| make[2]: *** Waiting for unfinished jobs....
| [ 56%] Building C object CMakeFiles/s2n.dir/utils/s2n_set.c.o
| [ 56%] Building C object CMakeFiles/s2n.dir/utils/s2n_str.c.o
| [ 57%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls.c.o
| [ 57%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_finished.c.o
| [ 58%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/ntt.c.o
| [ 59%] Building C object CMakeFiles/s2n.dir/utils/s2n_safety.c.o
| [ 60%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_cert_verify.c.o
| [ 60%] Building C object CMakeFiles/s2n.dir/utils/s2n_asn1_time.c.o
| [ 61%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r2/error.c.o
| [ 62%] Building C object CMakeFiles/s2n.dir/utils/s2n_blob.c.o
| [ 62%] Building C object CMakeFiles/s2n.dir/tls/s2n_shutdown.c.o
| [ 63%] Building C object CMakeFiles/s2n.dir/tls/s2n_connection_evp_digests.c.o
| [ 64%] Building C object CMakeFiles/s2n.dir/tls/s2n_cbc.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/tls/s2n_change_cipher_spec.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_ec_point_format.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/tls/s2n_recv.c.o
| [ 65%] Building C object CMakeFiles/s2n.dir/utils/s2n_random.c.o
| [ 66%] Building C object CMakeFiles/s2n.dir/utils/s2n_array.c.o
| [ 66%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_session_ticket.c.o
| [ 67%] Building C object CMakeFiles/s2n.dir/utils/s2n_socket.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_alerts.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_key_exchange.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/utils/s2n_result.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_kem.c.o
| [ 69%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_extensions.c.o
| [ 70%] Building C object CMakeFiles/s2n.dir/tls/s2n_signature_algorithms.c.o
| [ 71%] Building C object CMakeFiles/s2n.dir/tls/s2n_aead.c.o
| [ 71%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/verify.c.o
| [ 71%] Building C object CMakeFiles/s2n.dir/utils/s2n_ensure.c.o
| [ 72%] Building C object CMakeFiles/s2n.dir/tls/s2n_x509_validator.c.o
| [ 72%] Building C object CMakeFiles/s2n.dir/tls/s2n_resume.c.o
| [ 73%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_composite.c.o
| [ 73%] Building C object CMakeFiles/s2n.dir/tls/s2n_kem_preferences.c.o
| [ 74%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_quic_transport_params.c.o
| [ 75%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r1/P503_r1.c.o
| [ 75%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_max_fragment_length.c.o
| [ 76%] Building C object CMakeFiles/s2n.dir/tls/s2n_handshake.c.o
| [ 77%] Building C object CMakeFiles/s2n.dir/pq-crypto/bike_r1/gf2x_mul.c.o
| [ 78%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_write.c.o
| [ 78%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_hello.c.o
| [ 78%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_certificate_status.c.o
| [ 39%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_status_request.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/tls/s2n_async_pkey.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls13.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/pq-crypto/sike_r2/fips202.c.o
| [ 79%] Building C object CMakeFiles/s2n.dir/tls/s2n_ecc_preferences.c.o
| [ 80%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_cert.c.o
| [ 80%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_pem.c.o
| [ 81%] Building C object CMakeFiles/s2n.dir/tls/s2n_ocsp_stapling.c.o
| [ 82%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_hello.c.o
| [ 82%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_cert_request.c.o
| [ 83%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_server_name.c.o
| [ 83%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_stream.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/s2n_tls13_handshake.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/s2n_establish_session.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_sct_list.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/utils/s2n_map.c.o
| [ 84%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_status_request.c.o
| [ 85%] Building C object CMakeFiles/s2n.dir/tls/s2n_security_policies.c.o
| [ 86%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_server_supported_versions.c.o
| [ 86%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_alpn.c.o
| [ 87%] Building C object CMakeFiles/s2n.dir/utils/s2n_mem.c.o
| [ 88%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_done.c.o
| [ 89%] Building C object CMakeFiles/s2n.dir/tls/s2n_quic_support.c.o
| [ 89%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_supported_versions.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_encrypted_extensions.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_connection.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_send.c.o
| [ 90%] Building C object CMakeFiles/s2n.dir/tls/s2n_post_handshake.c.o
| [ 91%] Building C object CMakeFiles/s2n.dir/utils/s2n_timer.c.o
| [ 92%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/sha2_c.c.o
| [ 92%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_client_pq_kem.c.o
| [ 93%] Building C object CMakeFiles/s2n.dir/stuffer/s2n_stuffer_base64.c.o
| [ 94%] Building C object CMakeFiles/s2n.dir/tls/s2n_prf.c.o
| [ 94%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_r2/kyber_r2_kem.c.o
| [ 94%] Building C object CMakeFiles/s2n.dir/pq-crypto/kyber_90s_r2/kyber_90s_r2_kem.c.o
| [ 95%] Building C object CMakeFiles/s2n.dir/tls/s2n_record_read_aead.c.o
| [ 95%] Building C object CMakeFiles/s2n.dir/utils/s2n_rfc5952.c.o
| [ 96%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_new_session_ticket.c.o
| [ 96%] Building C object CMakeFiles/s2n.dir/tls/s2n_client_key_exchange.c.o
| [ 97%] Building C object CMakeFiles/s2n.dir/tls/s2n_config.c.o
| [ 98%] Building C object CMakeFiles/s2n.dir/tls/s2n_server_hello_retry.c.o
| [ 98%] Building C object CMakeFiles/s2n.dir/tls/s2n_handshake_io.c.o
| [ 99%] Building C object CMakeFiles/s2n.dir/tls/extensions/s2n_extension_list.c.o
| [ 99%] Building C object CMakeFiles/s2n.dir/tls/s2n_signature_scheme.c.o
| CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/s2n.dir/all' failed
| make[1]: *** [CMakeFiles/s2n.dir/all] Error 2
| Makefile:148: recipe for target 'all' failed
| make: *** [all] Error 2
| /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/site-packages/setuptools/dist.py:458: UserWarning: Normalizing '1.0.0-dev' to '1.0.0.dev0'
|   warnings.warn(tmpl.format(**locals()))
| --- Building dependency: s2n (RelWithDebInfo) ---
| /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/cmake -DCMAKE_PREFIX_PATH=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/build/deps/install -DCMAKE_INSTALL_PREFIX=/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_INCLUDE_PATH=\"/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot/usr/include/python3.8\" -DCMAKE_LIBRARY_PATH=\"/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot/usr/lib\" /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/crt/s2n
| /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/cmake --build ./ --config RelWithDebInfo --target install --parallel
| Traceback (most recent call last):
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/setup.py", line 300, in <module>
|     setuptools.setup(
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 163, in setup
|     return distutils.core.setup(**attrs)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/core.py", line 148, in setup
|     dist.run_commands()
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
|     self.run_command(cmd)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
|     cmd_obj.run()
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/command/build.py", line 135, in run
|     self.run_command(cmd_name)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
|     self.distribution.run_command(command)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
|     cmd_obj.run()
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/setup.py", line 234, in run
|     self._build_dependency(lib, libcrypto_paths)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/git/setup.py", line 223, in _build_dependency
|     subprocess.check_call(build_cmd)
|   File "/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/lib/python3.8/subprocess.py", line 364, in check_call
|     raise CalledProcessError(retcode, cmd)
| subprocess.CalledProcessError: Command '['/worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/recipe-sysroot-native/usr/bin/cmake', '--build', './', '--config', 'RelWithDebInfo', '--target', 'install', '--parallel']' returned non-zero exit status 2.
| WARNING: /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747:175 exit 1 from 'exit 1'
| WARNING: Backtrace (BB generated script):
| 	#1: bbfatal_log, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 175
| 	#2: distutils3_do_compile, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 165
| 	#3: do_compile, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 154
| 	#4: main, /worktree/poky/build/tmp/work/core2-64-poky-linux/aws-crt-python/0.9.13-r0/temp/run.do_compile.30747, line 179
| 
| Backtrace (metadata-relative locations):
| 	#1: bbfatal_log, /worktree/poky/meta/classes/logging.bbclass, line 72
| 	#2: distutils3_do_compile, /worktree/poky/meta/classes/distutils3.bbclass, line 26
| 	#3: do_compile, autogenerated, line 2
ERROR: Task (/worktree/poky/meta-aws/recipes-crt/aws-crt-python/aws-crt-python_0.9.13.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3703 tasks of which 3695 didn't need to be rerun and 1 failed.

Build failing with 'cmake' not found

Hello, my previously working codebuild for my project began to fail just now with 'cmake' not found for awscrt (py 3.8). It looks like the last time I ran the build was 4 days ago, and it looks like the latest release for this repo was 4 days ago too. Any ideas on how to remediate?


Collecting awsiotsdk
--
49 | Downloading awsiotsdk-1.5.1-py3-none-any.whl (18 kB)

Building wheels for collected packages: awscrt
--
174 | Building wheel for awscrt (setup.py): started
175 | Building wheel for awscrt (setup.py): finished with status 'error'
176 | ERROR: Command errored out with exit status 1:
177 | command: /codebuild/output/src602545874/src/ve/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hpczhxw1/awscrt/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hpczhxw1/awscrt/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-jj56xkwk
178 | cwd: /tmp/pip-install-hpczhxw1/awscrt/
179 | Complete output (61 lines):
180 | running bdist_wheel
181 | running build
182 | running build_py
183 | creating build
184 | creating build/lib.linux-x86_64-3.8
185 | creating build/lib.linux-x86_64-3.8/awscrt
186 | copying awscrt/http.py -> build/lib.linux-x86_64-3.8/awscrt
187 | copying awscrt/auth.py -> build/lib.linux-x86_64-3.8/awscrt
188 | copying awscrt/io.py -> build/lib.linux-x86_64-3.8/awscrt
189 | copying awscrt/mqtt.py -> build/lib.linux-x86_64-3.8/awscrt
190 | copying awscrt/exceptions.py -> build/lib.linux-x86_64-3.8/awscrt
191 | copying awscrt/crypto.py -> build/lib.linux-x86_64-3.8/awscrt
192 | copying awscrt/awsiot_mqtt_connection_builder.py -> build/lib.linux-x86_64-3.8/awscrt
193 | copying awscrt/__init__.py -> build/lib.linux-x86_64-3.8/awscrt
194 | running build_ext
195 | Traceback (most recent call last):
196 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 83, in check_cmake_installed
197 | subprocess.check_call(['cmake', '--version'])
198 | File "/usr/local/lib/python3.8/subprocess.py", line 359, in check_call
199 | retcode = call(*popenargs, **kwargs)
200 | File "/usr/local/lib/python3.8/subprocess.py", line 340, in call
201 | with Popen(*popenargs, **kwargs) as p:
202 | File "/usr/local/lib/python3.8/subprocess.py", line 854, in __init__
203 | self._execute_child(args, executable, preexec_fn, close_fds,
204 | File "/usr/local/lib/python3.8/subprocess.py", line 1702, in _execute_child
205 | raise child_exception_type(errno_num, err_msg, err_filename)
206 | FileNotFoundError: [Errno 2] No such file or directory: 'cmake'
207 |  
208 | During handling of the above exception, another exception occurred:
209 |  
210 | Traceback (most recent call last):
211 | File "<string>", line 1, in <module>
212 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 245, in <module>
213 | setuptools.setup(
214 | File "/codebuild/output/src602545874/src/ve/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
215 | return distutils.core.setup(**attrs)
216 | File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
217 | dist.run_commands()
218 | File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
219 | self.run_command(cmd)
220 | File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
221 | cmd_obj.run()
222 | File "/codebuild/output/src602545874/src/ve/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 290, in run
223 | self.run_command('build')
224 | File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
225 | self.distribution.run_command(command)
226 | File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
227 | cmd_obj.run()
228 | File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
229 | self.run_command(cmd_name)
230 | File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
231 | self.distribution.run_command(command)
232 | File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
233 | cmd_obj.run()
234 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 179, in run
235 | self._build_dependency(lib)
236 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 120, in _build_dependency
237 | check_cmake_installed()
238 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 86, in check_cmake_installed
239 | raise Exception("'cmake' not found. cmake must be installed to build from source.")
240 | Exception: 'cmake' not found. cmake must be installed to build from source.
241 | ----------------------------------------
242 | ERROR: Failed building wheel for awscrt
243 | Running setup.py clean for awscrt
244 | Failed to build awscrt
245 | Installing collected packages: PyJWT, six, python-dateutil, arrow, attrs, awscrt, awsiotsdk, webencodings, pyparsing, packaging, bleach, urllib3, jmespath, botocore, s3transfer, boto3, starlette, brotli, brotli-asgi, cached-property, certifi, elasticsearch, elasticsearch-dsl, MarkupSafe, jinja2, typing-extensions, mangum, marshmallow, marshmallow-jsonapi, cssselect, sgmllib3k, feedparser, lxml, PyYAML, soupsieve, beautifulsoup4, idna, chardet, requests, feedfinder2, regex, joblib, tqdm, click, nltk, Pillow, requests-file, tldextract, tinysegmenter, jieba3k, newspaper3k, passlib, cssutils, cachetools, premailer, pynamodb, requests-aws4auth, sentry-sdk, tld, pluggy, py, toml, iniconfig, pytest, pycodestyle, mccabe, pyflakes, flake8, pytest-flake8
246 | Running setup.py install for awscrt: started
247 | Running setup.py install for awscrt: finished with status 'error'
248 | ERROR: Command errored out with exit status 1:
249 | command: /codebuild/output/src602545874/src/ve/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hpczhxw1/awscrt/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hpczhxw1/awscrt/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-xh76bofo/install-record.txt --single-version-externally-managed --compile --install-headers /codebuild/output/src602545874/src/ve/include/site/python3.8/awscrt
250 | cwd: /tmp/pip-install-hpczhxw1/awscrt/
251 | Complete output (63 lines):
252 | running install
253 | running build
254 | running build_py
255 | creating build
256 | creating build/lib.linux-x86_64-3.8
257 | creating build/lib.linux-x86_64-3.8/awscrt
258 | copying awscrt/http.py -> build/lib.linux-x86_64-3.8/awscrt
259 | copying awscrt/auth.py -> build/lib.linux-x86_64-3.8/awscrt
260 | copying awscrt/io.py -> build/lib.linux-x86_64-3.8/awscrt
261 | copying awscrt/mqtt.py -> build/lib.linux-x86_64-3.8/awscrt
262 | copying awscrt/exceptions.py -> build/lib.linux-x86_64-3.8/awscrt
263 | copying awscrt/crypto.py -> build/lib.linux-x86_64-3.8/awscrt
264 | copying awscrt/awsiot_mqtt_connection_builder.py -> build/lib.linux-x86_64-3.8/awscrt
265 | copying awscrt/__init__.py -> build/lib.linux-x86_64-3.8/awscrt
266 | running build_ext
267 | Traceback (most recent call last):
268 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 83, in check_cmake_installed
269 | subprocess.check_call(['cmake', '--version'])
270 | File "/usr/local/lib/python3.8/subprocess.py", line 359, in check_call
271 | retcode = call(*popenargs, **kwargs)
272 | File "/usr/local/lib/python3.8/subprocess.py", line 340, in call
273 | with Popen(*popenargs, **kwargs) as p:
274 | File "/usr/local/lib/python3.8/subprocess.py", line 854, in __init__
275 | self._execute_child(args, executable, preexec_fn, close_fds,
276 | File "/usr/local/lib/python3.8/subprocess.py", line 1702, in _execute_child
277 | raise child_exception_type(errno_num, err_msg, err_filename)
278 | FileNotFoundError: [Errno 2] No such file or directory: 'cmake'
279 |  
280 | During handling of the above exception, another exception occurred:
281 |  
282 | Traceback (most recent call last):
283 | File "<string>", line 1, in <module>
284 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 245, in <module>
285 | setuptools.setup(
286 | File "/codebuild/output/src602545874/src/ve/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
287 | return distutils.core.setup(**attrs)
288 | File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
289 | dist.run_commands()
290 | File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
291 | self.run_command(cmd)
292 | File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
293 | cmd_obj.run()
294 | File "/codebuild/output/src602545874/src/ve/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
295 | return orig.install.run(self)
296 | File "/usr/local/lib/python3.8/distutils/command/install.py", line 545, in run
297 | self.run_command('build')
298 | File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
299 | self.distribution.run_command(command)
300 | File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
301 | cmd_obj.run()
302 | File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
303 | self.run_command(cmd_name)
304 | File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
305 | self.distribution.run_command(command)
306 | File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
307 | cmd_obj.run()
308 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 179, in run
309 | self._build_dependency(lib)
310 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 120, in _build_dependency
311 | check_cmake_installed()
312 | File "/tmp/pip-install-hpczhxw1/awscrt/setup.py", line 86, in check_cmake_installed
313 | raise Exception("'cmake' not found. cmake must be installed to build from source.")
314 | Exception: 'cmake' not found. cmake must be installed to build from source.
315 | ----------------------------------------
316 | ERROR: Command errored out with exit status 1: /codebuild/output/src602545874/src/ve/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hpczhxw1/awscrt/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hpczhxw1/awscrt/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-xh76bofo/install-record.txt --single-version-externally-managed --compile --install-headers /codebuild/output/src602545874/src/ve/include/site/python3.8/awscrt Check the logs for full command output.

Remove Python3-specific symbols from C bindings

Bindings are not currently compiling under Python 2.7. Error looks like:

    clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O0 -Wextra -Werror -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -I/usr/local/include -I/Users/graebm/dev/install/include -I/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c source/module.c -o build/temp.macosx-10.12-x86_64-2.7/source/module.o
    source/module.c:30:43: error: implicit declaration of function 'PyUnicode_DATA' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            return aws_byte_cursor_from_array(PyUnicode_DATA(str), PyUnicode_GET_LENGTH(str));

Target "LibCrypto::Crypto" not found

I'm trying to install this module on linux and I've tried a few different docker images so far (ubuntu, amazonlinux,etc). On ubuntu I've installed libssl-dev. but still get a Target "LibCrypto::Crypto" not found.

I also see an error stating:
CMake Error at CMakeLists.txt:191 (add_library):
Target "s2n" links to target "LibCrypto::Crypto" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?

The full error message is listed below:

Building wheels for collected packages: awscrt
Building wheel for awscrt (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-82_ntag4/awscrt/setup.py'"'"'; file='"'"'/tmp/pip-install-82_ntag4/awscrt/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-_fl4_n4h
cwd: /tmp/pip-install-82_ntag4/awscrt/
Complete output (130 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/awscrt
copying awscrt/auth.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/exceptions.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/awsiot_mqtt_connection_builder.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/io.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/http.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/init.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/mqtt.py -> build/lib.linux-x86_64-3.8/awscrt
copying awscrt/crypto.py -> build/lib.linux-x86_64-3.8/awscrt
running build_ext
cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
--- Building dependency: s2n (RelWithDebInfo) ---
cmake -DCMAKE_PREFIX_PATH=/tmp/pip-install-82_ntag4/awscrt/build/deps/install -DCMAKE_INSTALL_PREFIX=/tmp/pip-install-82_ntag4/awscrt/build/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_INCLUDE_PATH="/usr/include/python3.8" -DLibCrypto_INCLUDE_DIR=/tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/include -DLibCrypto_STATIC_LIBRARY=/tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/lib/libcrypto.a /tmp/pip-install-82_ntag4/awscrt/crt/s2n
-- The C compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Attempting to try_compile PQ ASM
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- PQ ASM try_compile succeeded - using optimized x86_64 assembly for PQ crypto
-- Attempting to try_compile PQ ASM with ADX support
-- PQ ASM try_compile with ADX support succeeded - using ASM code with ADX instructions
-- Performing Test S2N_HAVE_EXECINFO
-- Performing Test S2N_HAVE_EXECINFO - Success
-- Found LibCrypto: /tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/lib/libcrypto.a
-- LibCrypto Include Dir: /tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/include
-- LibCrypto Shared Lib: /usr/lib/x86_64-linux-gnu/libcrypto.so
-- LibCrypto Static Lib: /tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/lib/libcrypto.a
-- Configuring done
CMake Error at CMakeLists.txt:191 (add_library):
Target "s2n" links to target "LibCrypto::Crypto" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?

CMake Error at CMakeLists.txt:239 (target_include_directories):
Error evaluating generator expression:

  $<TARGET_PROPERTY:LibCrypto::Crypto,INTERFACE_INCLUDE_DIRECTORIES>

Target "LibCrypto::Crypto" not found.

CMake Error at CMakeLists.txt:239 (target_include_directories):
Error evaluating generator expression:

  $<TARGET_PROPERTY:LibCrypto::Crypto,INTERFACE_INCLUDE_DIRECTORIES>

Target "LibCrypto::Crypto" not found.

CMake Error at CMakeLists.txt:239 (target_include_directories):
Error evaluating generator expression:

  $<TARGET_PROPERTY:LibCrypto::Crypto,INTERFACE_INCLUDE_DIRECTORIES>

Target "LibCrypto::Crypto" not found.

CMake Error at CMakeLists.txt:239 (target_include_directories):
Error evaluating generator expression:

  $<TARGET_PROPERTY:LibCrypto::Crypto,INTERFACE_INCLUDE_DIRECTORIES>

Target "LibCrypto::Crypto" not found.

CMake Error at CMakeLists.txt:191 (add_library):
Target "s2n" links to target "LibCrypto::Crypto" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?

-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

  CMAKE_INCLUDE_PATH

CMake Generate step failed. Build files cannot be regenerated correctly.
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-82_ntag4/awscrt/setup.py", line 245, in
setuptools.setup(
File "/usr/lib/python3/dist-packages/setuptools/init.py", line 144, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 223, in run
self.run_command('build')
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-install-82_ntag4/awscrt/setup.py", line 179, in run
self._build_dependency(lib)
File "/tmp/pip-install-82_ntag4/awscrt/setup.py", line 162, in _build_dependency
subprocess.check_call(cmake_args)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '-DCMAKE_PREFIX_PATH=/tmp/pip-install-82_ntag4/awscrt/build/deps/install', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-82_ntag4/awscrt/build/deps/install', '-DBUILD_SHARED_LIBS=OFF', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DBUILD_TESTING=OFF', '-DCMAKE_INCLUDE_PATH="/usr/include/python3.8"', '-DLibCrypto_INCLUDE_DIR=/tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/include', '-DLibCrypto_STATIC_LIBRARY=/tmp/pip-install-82_ntag4/awscrt/build/deps/libcrypto/lib/libcrypto.a', '/tmp/pip-install-82_ntag4/awscrt/crt/s2n']' returned non-zero exit status 1.

ERROR: Failed building wheel for awscrt

errror compiling 0.6.0: libcrypto.a: error adding symbols: File format not recognized

I am building for ARM A9 and I am getting this error:
bitbake aws-crt-python

/home/user/yocto/pyro/build/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/aws-crt-python/0.6.0-r0/recipe-sysroot-native/usr/lib/libcrypto.a: error adding symbols: File format not recognized

Below extensive log:
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Detecting C compile features
| -- Detecting C compile features - done
| -- Looking for stdint.h
| -- Looking for stdint.h - found
| -- Looking for stdbool.h
| -- Looking for stdbool.h - found
| -- Performing Test HAS_WGNU
| -- Performing Test HAS_WGNU - Failed
| -- Performing Test HAVE_SYSCONF
| -- Performing Test HAVE_SYSCONF - Success
| -- Performing Test HAS_SANITIZERS
| -- Performing Test HAS_SANITIZERS - Failed
| -- Looking for pthread.h
| -- Looking for pthread.h - found
| -- Looking for pthread_create
| -- Looking for pthread_create - not found
| -- Check if compiler accepts -pthread
| -- Check if compiler accepts -pthread - yes
| -- Found Threads: TRUE
| -- Found LibCrypto: /home/user/yocto/pyro/build/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/aws-crt-python/0.6.0-r0/recipe-sysroot-native/usr/lib/libcrypto.a
| -- LibCrypto Include Dir: /home/user/yocto/pyro/build/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/aws-crt-python/0.6.0-r0/recipe-sysroot-native/usr/include
| -- LibCrypto Shared Lib: /home/user/yocto/pyro/build/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/aws-crt-python/0.6.0-r0/recipe-sysroot-native/usr/lib/libcrypto.so
| -- LibCrypto Static Lib: /home/user/yocto/pyro/build/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/aws-crt-python/0.6.0-r0/recipe-sysroot-native/usr/lib/libcrypto.a
| -- Configuring done
| -- Generating done
| CMake Warning:
| Manually-specified variables were not used by the project:
|
| S2N_NO_PQ_ASM
| Scanning dependencies of target aws-c-http
| [ 4%] Building C object CMakeFiles/aws-c-http.dir/source/connection.c.o
| [ 8%] Building C object CMakeFiles/aws-c-http.dir/source/connection_manager.c.o
| [ 12%] Building C object CMakeFiles/aws-c-http.dir/source/connection_monitor.c.o
| [ 16%] Building C object CMakeFiles/aws-c-http.dir/source/h1_connection.c.o
| [ 20%] Building C object CMakeFiles/aws-c-http.dir/source/h1_decoder.c.o
| [ 24%] Building C object CMakeFiles/aws-c-http.dir/source/h1_encoder.c.o
| [ 28%] Building C object CMakeFiles/aws-c-http.dir/source/h1_stream.c.o
| [ 32%] Building C object CMakeFiles/aws-c-http.dir/source/h2_connection.c.o
| [ 36%] Building C object CMakeFiles/aws-c-http.dir/source/h2_decoder.c.o
| [ 40%] Building C object CMakeFiles/aws-c-http.dir/source/h2_frames.c.o
| [ 44%] Building C object CMakeFiles/aws-c-http.dir/source/h2_stream.c.o
| [ 48%] Building C object CMakeFiles/aws-c-http.dir/source/hpack.c.o
| [ 52%] Building C object CMakeFiles/aws-c-http.dir/source/hpack_huffman_static.c.o
| [ 56%] Building C object CMakeFiles/aws-c-http.dir/source/http.c.o
| [ 60%] Building C object CMakeFiles/aws-c-http.dir/source/proxy_connection.c.o
| [ 64%] Building C object CMakeFiles/aws-c-http.dir/source/request_response.c.o
| [ 68%] Building C object CMakeFiles/aws-c-http.dir/source/statistics.c.o
| [ 72%] Building C object CMakeFiles/aws-c-http.dir/source/strutil.c.o
| [ 76%] Building C object CMakeFiles/aws-c-http.dir/source/websocket.c.o
| [ 80%] Building C object CMakeFiles/aws-c-http.dir/source/websocket_bootstrap.c.o
| [ 84%] Building C object CMakeFiles/aws-c-http.dir/source/websocket_decoder.c.o
| [ 88%] Building C object CMakeFiles/aws-c-http.dir/source/websocket_encoder.c.o
| [ 92%] Linking C static library libaws-c-http.a
| [ 92%] Built target aws-c-http
| Scanning dependencies of target elasticurl
| [ 96%] Building C object bin/elasticurl/CMakeFiles/elasticurl.dir/main.c.o
| [100%] Linking C executable elasticurl
| /home/user/yocto/pyro/build/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/aws-crt-python/0.6.0-r0/recipe-sysroot-native/usr/lib/libcrypto.a: error adding symbols: File format not recognized
| collect2: error: ld returned 1 exit status
| bin/elasticurl/CMakeFiles/elasticurl.dir/build.make:100: recipe for target 'bin/elasticurl/elasticurl' failed
| make[2]: *** [bin/elasticurl/elasticurl] Error 1
| CMakeFiles/Makefile2:122: recipe for target 'bin/elasticurl/CMakeFiles/elasticurl.dir/all' failed
| make[1]: *** [bin/elasticurl/CMakeFiles/elasticurl.dir/all] Error 2
| Makefile:127: recipe for target 'all' failed
| make: *** [all] Error 2
| /home/user/yocto/pyro/build/tmp/wor

CA cert conflict

In our environment, we depend on the embedded s2n library for SSL. The interface to this library provided by the CRT requires that we pass a certificate for the CA. However, our Linux distribution already has the CA cert, so the library fails to setup the connection because the CA cert passed is duplicated in the platform's CA library.

The error generated by the library is unnecessary. There should be no reason why passing a CA cert that is in the systems' cert database causes the call to fail. But, we cannot /not/ pass the CA cert because the library also fails when we do not pass a CA cert to the TLS setup call.

Our only solution is to delete the Amazon CA cert from the Linux distribution's database.

It would be better for us all of the s2n library didn't fail when passing a CA cert that is already present.

Out-of-memory when building wheels for ARMHF

I'm currently trying to install aws-crt on a Hummingboard CBi (i.MX6-based, dual-core ARMHF w/ 1gb ram) and keep failing to finish building wheels as the system runs out of memory thanks to spawning 200+ cmake processes, causing the system to quickly run out of memory, attempt to reap processes, and eventually restart. Is there any way that the wheel compile can be switched to a single-thread task so that the board doesn't kill itself, or how would I go about cross-compiling the wheels on a different machine?

Here's the task state when memory runs out, it's pretty obvious the 200+ processes are the cause of the OoM.
killed.txt

ImportError: libpython3.7m.so.1.0: cannot open shared object file

I recently started seeing this in my project during codebuild with python3.7. It seems like the docker image must not be building python correctly? I was able to get the build working with python3.8 and aws/codebuild/amazonlinux2-x86_64-standard:3.0 but then when my app runs I get the same import error below.

aws/aws-codebuild-docker-images#329

ve/lib/python3.7/site-packages/api/v1/aws.py:11: in <module>
    from awscrt import auth, io, mqtt
ve/lib/python3.7/site-packages/awscrt/auth.py:15: in <module>
    import _awscrt
E   ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

Type hints & PEP 561 packaging

Add type hints to all (at least public API) code make the distribution PEP 561 compliant. This allows mypy (and other tools?) to find the type hints and use them in linting.

In practice, add an empty awscrt/py.typed file, and include it in the package:

setup(
    package_data={'awscrt': ['py.typed']},
    zip_safe=False,  # not needed with wheels, AFAIK
)

PEP 561: https://www.python.org/dev/peps/pep-0561/

Python 3.10 support

We're trying to prep the AWS CLI and Boto3 for Python 3.10's release on October 4th. Currently our test builds are blocked due to a lack of wheel availability.

The immediate ask is to get a wheel built if possible, but longer term, you may consider distributing abi3 wheels.

Most Python projects with C dependencies that distribute wheels will release a copy of the wheel on each platform with abi3. This allows the distributors to build a single wheel on something like Python 3.6, and have it be forward-compatible for stable Python interfaces. Some projects of note that do this are brotlicffi, cryptography, etc. which are able to continue functioning without requiring an immediate release with new Python versions.

Here's an example PR integrating similar changes: python-hyper/brotlicffi#162

"RuntimeError: 0 (AWS_ERROR_SUCCESS): Success." occured when executing mqtt_connection_builder.mtls_from_path() on Amazon EC2 Mac instance

"RuntimeError: 0 (AWS_ERROR_SUCCESS): Success." occurred when executing mqtt_connection_builder.mtls_from_path() when I tried to create MQTT connection to AWS IoT from Amazon EC2 Mac instance. I was expecting to complete the execution successfully. I've succeeded to create MQTT connection with the same test code and the certificates on other environments like Linux.

It seems that something unexpected happened in C library, but it's difficult for me to investigate. I've really appreciated it if someone helps me.

Testing configuration

  • hardware: Macmini8,1
  • OS: macOS 10.15.7 (BuildVersion: 19H114)
  • Python 3.8.7 or 3.9.1
  • awsiotsdk 1.5.3 or 1.5.4
  • awscrt: 0.9.15

Testing code and result

test_mqtt.py

# -*- coding: utf-8 -*-
from awscrt import io
from awsiot import mqtt_connection_builder

deviceId = "TEST1234"
endPoint = "XXXX-ats.iot.ap-northeast-1.amazonaws.com"
rootCA = "./root-CA.crt"
certificate = "./certificate.pem.crt"
privateKey = "./private.pem.key"

event_loop_group = io.EventLoopGroup(1)
host_resolver = io.DefaultHostResolver(event_loop_group)
client_bootstrap = io.ClientBootstrap(event_loop_group, host_resolver)

mqtt_connection = mqtt_connection_builder.mtls_from_path(
	endpoint=endPoint,
	cert_filepath=certificate,
	pri_key_filepath=privateKey,
	client_bootstrap=client_bootstrap,
	ca_filepath=rootCA,
	client_id=deviceId,
	clean_session=False,
	keep_alive_secs=6)
print(f"Connecting to {endPoint} with client ID '{deviceId}'...")

connected_future = mqtt_connection.connect()
connected_future.result()
print("Connected!")
% python3 test_mqtt.py                   
Traceback (most recent call last):
  File "test_mqtt.py", line 16, in <module>
    mqtt_connection = mqtt_connection_builder.mtls_from_path(
  File "/Users/ec2-user/tmp/.venv-3.8.7-2/lib/python3.8/site-packages/awscrt/awsiot_mqtt_connection_builder.py", line 201, in mtls_from_path
    return _builder(tls_ctx_options, **kwargs)
  File "/Users/ec2-user/tmp/.venv-3.8.7-2/lib/python3.8/site-packages/awscrt/awsiot_mqtt_connection_builder.py", line 162, in _builder
    tls_ctx = awscrt.io.ClientTlsContext(tls_ctx_options)
  File "/Users/ec2-user/tmp/.venv-3.8.7-2/lib/python3.8/site-packages/awscrt/io.py", line 409, in __init__
    self._binding = _awscrt.client_tls_ctx_new(
RuntimeError: 0 (AWS_ERROR_SUCCESS): Success.

Feature Request: Add __version__ to awscrt

Most well formed Python packages will provide a dunder version attribute on their top level package name. This provides a uniform way to get versioning metadata without requiring pkg_resources look ups. There's a number of ways that have been used to integrate this value into your setup.py, so I've provided a few examples for ideas. This is minor quality of life fix, but brings crt more in line with the rest of the ecosystem.

Examples:

Unit Testing Assistance

How does one mock out an mqtt_connection.connect() call for the sake of unit testing? If I am looking at the tests for the client in this repo correctly, it appears to be more of an integration test than a unit test. I am struggling to create a local environment to debug against via unit tests for AWS Lambdas utilizing this library. Is there any guidance that can be offered?

Update:
MagicMock has gotten me past Connection issues but triggering the On_Message callback on a subscription receiving a message has proven incredibly challenging. Especially since this is just a C wrapper for Python.

AWS_ERROR_SUCCESS after TLS handshake failure

Hi,

When using the AWS IoT Python Device SDK v2, I was testing different failure scenarios.
When passing an invalid private key (one that the corresponding public key was not used to generate the device cert) the TLS handshake failed, as expected. But the error code was 0 = AWS_ERROR_SUCCESS. This is not an expected error code:

Traceback (most recent call last): File "pubsub.py", line 150, in <module> keep_alive_secs=6) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awscrt/awsiot_mqtt_connection_builder.py", line 211, in mtls_from_path return _builder(tls_ctx_options, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awscrt/awsiot_mqtt_connection_builder.py", line 172, in _builder tls_ctx = awscrt.io.ClientTlsContext(tls_ctx_options) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/awscrt/io.py", line 275, in __init__ options.verify_peer RuntimeError: 0 (AWS_ERROR_SUCCESS): Success.

Wrong Ordering in AwsCredentialsProvider.new_profile()

According to the docstring, the profile name order should be as follows:

  1. profile_name I provide
  2. AWS_PROFILE env var
  3. default
  • I have an AWS_PROFILE set, but I pass another profile_name, and it still uses AWS_PROFILE
  • I unset AWS_PROFILE and it works

profile_name needs to over-ride the environment variable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.