Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Til wheels / cryptography fixed: ansible-core 2.12.10+ PPA on 32-bit RasPiOS #3421

Merged
merged 2 commits into from Nov 10, 2022

Conversation

holta
Copy link
Member

@holta holta commented Nov 10, 2022

All ansible-base and ansible-core versions failed to pip install on 32-bit Raspberry Pi OS Lite according to my tests on RPi 4. Despite this being a new problem since around mid-August 2022, all versions of 32-bit RasPiOS from 2022 (not just the 2022-09-22 release) now suffer from this same problem.

Examples of the many failures, due to wheels / cryptography being missing:

pip3 install ansible-base=2.10.9
pip3 install ansible-core=2.11.12
pip3 install ansible-core=2.12.10
pip3 install ansible-core=2.13.6
pip3 install ansible-core=2.14.0

So this PR installs ansible-core 2.12.10 on 32-bit RasPiOS Lite using our original PPA method, well-tested with IIAB installs over many years.

It's quite likely this PR can be reverted in coming months, if/when the wheels / cryptography glitch (which arose around mid-August 2022) is hopefully solved upstream:

We should entirely avoid mucking around with Ansible internals & dependencies, leaving that job to those upstream. But just FYI this PR ends up putting the original cryptography 3.3.2 in place, just as if pip3 install ansible-core==2.12.10 was still working:

# pip3 show cryptography

Name: cryptography
Version: 3.3.2
Summary: cryptography is a package which provides cryptographic recipes and primitives to Python developers.
Home-page: https://github.com/pyca/cryptography
Author: The cryptography developers
Author-email: cryptography-dev@python.org
License: BSD or Apache License, Version 2.0
Location: /usr/lib/python3/dist-packages
Requires:
Required-by: requests-kerberos

@holta holta added the bug label Nov 10, 2022
@holta holta added this to the 8.0 milestone Nov 10, 2022
@holta
Copy link
Member Author

holta commented Nov 10, 2022

Another fresh install of this PR is underway: this time a LARGE-sized IIAB install on 32-bit RasPiOS Lite on RPi 4.

To spot-check that ansible-core 2.12.10 (point release from 2022-10-11) is working well with IIAB.

ASIDE: ansible-core 2.12.0 itself was released 2021-11-08 (exactly a year ago) so everything should likely work well.

@holta
Copy link
Member Author

holta commented Nov 10, 2022

JupyterHub is extremely unlikely to be important on ancient 32-bit ARM CPU's (i.e. Zero W) but FYI:

TASK [jupyterhub : pip install 3 packages into virtual environment: /opt/iiab/jupyterhub (~304 MB total, after 2 Ansible calls)] ***************************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "cmd": ["/opt/iiab/jupyterhub/bin/pip3", "install", "--no-cache-dir", "pip", "wheel", "jupyterhub"], "msg": "stdout: Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple\nRequirement already satisfied: pip in /opt/iiab/jupyterhub/lib/python3.9/site-packages (20.3.4)\nCollecting wheel\n Downloading https://www.piwheels.org/simple/wheel/wheel-0.38.4-py3-none-any.whl (36 kB)\nCollecting jupyterhub\n Downloading https://www.piwheels.org/simple/jupyterhub/jupyterhub-3.0.0-py3-none-any.whl (2.7 MB)\nCollecting SQLAlchemy>=1.1\n Downloading https://www.piwheels.org/simple/sqlalchemy/SQLAlchemy-1.4.43-cp39-cp39-linux_armv7l.whl (1.6 MB)\nCollecting requests\n Downloading https://www.piwheels.org/simple/requests/requests-2.28.1-py3-none-any.whl (62 kB)\nCollecting tornado>=5.1\n Downloading https://www.piwheels.org/simple/tornado/tornado-6.2-cp37-abi3-linux_armv7l.whl (422 kB)\nCollecting jupyter-telemetry>=0.1.0\n Downloading https://www.piwheels.org/simple/jupyter-telemetry/jupyter_telemetry-0.1.0-py3-none-any.whl (7.1 kB)\nCollecting packaging\n Downloading https://www.piwheels.org/simple/packaging/packaging-21.3-py3-none-any.whl (40 kB)\nCollecting pamela\n Downloading https://www.piwheels.org/simple/pamela/pamela-1.0.0-py2.py3-none-any.whl (5.8 kB)\nCollecting alembic>=1.4\n Downloading https://www.piwheels.org/simple/alembic/alembic-1.8.1-py3-none-any.whl (209 kB)\nCollecting prometheus-client>=0.4.0\n Downloading https://www.piwheels.org/simple/prometheus-client/prometheus_client-0.15.0-py3-none-any.whl (60 kB)\nCollecting traitlets>=4.3.2\n Downloading https://www.piwheels.org/simple/traitlets/traitlets-5.5.0-py3-none-any.whl (107 kB)\nCollecting python-dateutil\n Downloading https://www.piwheels.org/simple/python-dateutil/python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)\nCollecting async-generator>=1.9\n Downloading https://www.piwheels.org/simple/async-generator/async_generator-1.10-py3-none-any.whl (18 kB)\nCollecting certipy>=0.1.2\n Downloading https://www.piwheels.org/simple/certipy/certipy-0.1.3-py3-none-any.whl (22 kB)\nCollecting oauthlib>=3.0\n Downloading https://www.piwheels.org/simple/oauthlib/oauthlib-3.2.2-py3-none-any.whl (151 kB)\nCollecting jinja2>=2.11.0\n Downloading https://www.piwheels.org/simple/jinja2/Jinja2-3.1.2-py3-none-any.whl (133 kB)\nCollecting importlib-metadata>=3.6\n Downloading https://www.piwheels.org/simple/importlib-metadata/importlib_metadata-5.0.0-py3-none-any.whl (21 kB)\nCollecting Mako\n Downloading https://www.piwheels.org/simple/mako/Mako-1.2.3-py3-none-any.whl (78 kB)\nCollecting pyopenssl\n Downloading https://www.piwheels.org/simple/pyopenssl/pyOpenSSL-22.1.0-py3-none-any.whl (56 kB)\nCollecting zipp>=0.5\n Downloading https://www.piwheels.org/simple/zipp/zipp-3.10.0-py3-none-any.whl (6.2 kB)\nCollecting MarkupSafe>=2.0\n Downloading https://www.piwheels.org/simple/markupsafe/MarkupSafe-2.1.1-cp39-cp39-linux_armv7l.whl (23 kB)\nCollecting ruamel.yaml\n Downloading https://www.piwheels.org/simple/ruamel-yaml/ruamel.yaml-0.17.21-py3-none-any.whl (105 kB)\nCollecting jsonschema\n Downloading https://www.piwheels.org/simple/jsonschema/jsonschema-4.17.0-py3-none-any.whl (83 kB)\nCollecting python-json-logger\n Downloading https://www.piwheels.org/simple/python-json-logger/python_json_logger-2.0.4-py3-none-any.whl (7.8 kB)\nCollecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0\n Downloading https://www.piwheels.org/simple/pyrsistent/pyrsistent-0.19.2-cp39-cp39-linux_armv7l.whl (102 kB)\nCollecting attrs>=17.4.0\n Downloading https://www.piwheels.org/simple/attrs/attrs-22.1.0-py2.py3-none-any.whl (58 kB)\nCollecting pyparsing!=3.0.5,>=2.0.2\n Downloading https://www.piwheels.org/simple/pyparsing/pyparsing-3.0.9-py3-none-any.whl (98 kB)\nCollecting cryptography<39,>=38.0.0\n Downloading cryptography-38.0.3.tar.gz (599 kB)\n Installing build dependencies: started\n Installing build dependencies: finished with status 'done'\n Getting requirements to build wheel: started\n Getting requirements to build wheel: finished with status 'done'\n Preparing wheel metadata: started\n Preparing wheel metadata: finished with status 'done'\nCollecting cffi>=1.12\n Downloading https://www.piwheels.org/simple/cffi/cffi-1.15.1-cp39-cp39-linux_armv7l.whl (364 kB)\nCollecting pycparser\n Downloading https://www.piwheels.org/simple/pycparser/pycparser-2.21-py2.py3-none-any.whl (119 kB)\nCollecting six>=1.5\n Downloading https://www.piwheels.org/simple/six/six-1.16.0-py2.py3-none-any.whl (11 kB)\nCollecting urllib3<1.27,>=1.21.1\n Downloading https://www.piwheels.org/simple/urllib3/urllib3-1.26.12-py2.py3-none-any.whl (140 kB)\nCollecting idna<4,>=2.5\n Downloading https://www.piwheels.org/simple/idna/idna-3.4-py3-none-any.whl (61 kB)\nCollecting charset-normalizer<3,>=2\n Downloading https://www.piwheels.org/simple/charset-normalizer/charset_normalizer-2.1.1-py3-none-any.whl (39 kB)\nCollecting certifi>=2017.4.17\n Downloading https://www.piwheels.org/simple/certifi/certifi-2022.9.24-py3-none-any.whl (161 kB)\nCollecting ruamel.yaml.clib>=0.2.6\n Downloading https://www.piwheels.org/simple/ruamel-yaml-clib/ruamel.yaml.clib-0.2.7-cp39-cp39-linux_armv7l.whl (590 kB)\nBuilding wheels for collected packages: cryptography\n Building wheel for cryptography (PEP 517): started\n Building wheel for cryptography (PEP 517): finished with status 'error'\nFailed to build cryptography\n\n:stderr: ERROR: Command errored out with exit status 1:\n command: /opt/iiab/jupyterhub/bin/python3 /tmp/tmps0rc4eqe_in_process.py build_wheel /tmp/tmpj63n4h0g\n cwd: /tmp/pip-install-xobiqke2/cryptography_d11ee6ce90bf416985a693263960eb6d\n Complete output (191 lines):\n running bdist_wheel\n running build\n running build_py\n creating build\n creating build/lib.linux-armv7l-cpython-39\n creating build/lib.linux-armv7l-cpython-39/cryptography\n copying src/cryptography/fernet.py -> build/lib.linux-armv7l-cpython-39/cryptography\n copying src/cryptography/exceptions.py -> build/lib.linux-armv7l-cpython-39/cryptography\n copying src/cryptography/about.py -> build/lib.linux-armv7l-cpython-39/cryptography\n copying src/cryptography/utils.py -> build/lib.linux-armv7l-cpython-39/cryptography\n copying src/cryptography/init.py -> build/lib.linux-armv7l-cpython-39/cryptography\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat\n copying src/cryptography/hazmat/_oid.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat\n copying src/cryptography/hazmat/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat\n creating build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/ocsp.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/name.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/oid.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/general_name.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/base.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/extensions.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n copying src/cryptography/x509/certificate_transparency.py -> build/lib.linux-armv7l-cpython-39/cryptography/x509\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends\n copying src/cryptography/hazmat/backends/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings\n copying src/cryptography/hazmat/bindings/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/types.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/asymmetric\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/twofactor\n copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/twofactor\n copying src/cryptography/hazmat/primitives/twofactor/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/twofactor\n copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/twofactor\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/ciphers\n copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/ciphers\n copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/ciphers\n copying src/cryptography/hazmat/primitives/ciphers/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/ciphers\n copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/ciphers\n copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/ciphers\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/kdf\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/serialization\n copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/serialization\n copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/serialization\n copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/serialization\n copying src/cryptography/hazmat/primitives/serialization/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/serialization\n copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/primitives/serialization\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/backends/openssl\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/openssl\n copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/openssl\n copying src/cryptography/hazmat/bindings/openssl/init.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/openssl\n copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/openssl\n running egg_info\n writing src/cryptography.egg-info/PKG-INFO\n writing dependency_links to src/cryptography.egg-info/dependency_links.txt\n writing requirements to src/cryptography.egg-info/requires.txt\n writing top-level names to src/cryptography.egg-info/top_level.txt\n reading manifest file 'src/cryptography.egg-info/SOURCES.txt'\n reading manifest template 'MANIFEST.in'\n no previously-included directories found matching 'docs/_build'\n warning: no previously-included files found matching 'vectors'\n warning: no previously-included files matching '' found under directory 'vectors'\n warning: no previously-included files matching '' found under directory '.github'\n warning: no previously-included files found matching 'release.py'\n warning: no previously-included files found matching '.readthedocs.yml'\n warning: no previously-included files found matching 'dev-requirements.txt'\n warning: no previously-included files found matching 'tox.ini'\n warning: no previously-included files found matching 'mypy.ini'\n warning: no previously-included files matching '*' found under directory '.circleci'\n adding license file 'LICENSE'\n adding license file 'LICENSE.APACHE'\n adding license file 'LICENSE.BSD'\n adding license file 'LICENSE.PSF'\n writing manifest file 'src/cryptography.egg-info/SOURCES.txt'\n /tmp/pip-build-env-5qhbjp3q/overlay/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'cryptography.hazmat.bindings._rust' as data is deprecated, please list it in packages.\n !!\n \n \n ############################\n # Package would be ignored #\n ############################\n Python recognizes 'cryptography.hazmat.bindings._rust' as an importable package,\n but it is not listed in the packages configuration of setuptools.\n \n 'cryptography.hazmat.bindings._rust' has been automatically added to the distribution only\n because it may contain data files, but this behavior is likely to change\n in future versions of setuptools (and therefore is considered deprecated).\n \n Please make sure that 'cryptography.hazmat.bindings._rust' is included as a package by using\n the packages configuration field or the proper discovery methods\n (for example by using find_namespace_packages(...)/find_namespace:\n instead of find_packages(...)/find:).\n \n You can read more about "package discovery" and "data files" on setuptools\n documentation page.\n \n \n !!\n \n check.warn(importable)\n copying src/cryptography/py.typed -> build/lib.linux-armv7l-cpython-39/cryptography\n copying src/cryptography/hazmat/bindings/_openssl.pyi -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings\n creating build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/_rust\n copying src/cryptography/hazmat/bindings/_rust/init.pyi -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/_rust\n copying src/cryptography/hazmat/bindings/_rust/asn1.pyi -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/_rust\n copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/_rust\n copying src/cryptography/hazmat/bindings/_rust/x509.pyi -> build/lib.linux-armv7l-cpython-39/cryptography/hazmat/bindings/_rust\n running build_ext\n running build_rust\n \n =============================DEBUG ASSISTANCE=============================\n If you are seeing a compilation error please try the following steps to\n successfully install cryptography:\n 1) Upgrade to the latest pip and try again. This will fix errors for most\n users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip\n 2) Read https://cryptography.io/en/latest/installation/ for specific\n instructions for your platform.\n 3) Check our frequently asked questions for more information:\n https://cryptography.io/en/latest/faq/\n 4) Ensure you have a recent Rust toolchain installed:\n https://cryptography.io/en/latest/installation/#rust\n \n Python: 3.9.2\n platform: Linux-5.15.76-v7l+-armv7l-with-glibc2.31\n pip: n/a\n setuptools: 65.5.1\n setuptools_rust: 1.5.2\n rustc: n/a\n =============================DEBUG ASSISTANCE=============================\n \n error: can't find Rust compiler\n \n If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.\n \n To update pip, run:\n \n pip install --upgrade pip\n \n and then retry package installation.\n \n If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.\n \n This package requires Rust >=1.48.0.\n ----------------------------------------\n ERROR: Failed building wheel for cryptography\nERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly\n"}

@holta
Copy link
Member Author

holta commented Nov 10, 2022

FYI Calibre-Web also requires Rust >=1.48.0

Everything else worked.

iiab-diagnostics:
http://sprunge.us/mX2P81?bash

@holta holta merged commit b5105ae into iiab:master Nov 10, 2022
@holta
Copy link
Member Author

holta commented Nov 10, 2022

Merged to allow IIAB installs on 32-bit RasPiOS.

Hopefully this PR can be reverted in a few short months, when 32-bit RasPiOS restores Rust and patches up wheels / cryptography.

@holta
Copy link
Member Author

holta commented Nov 10, 2022

In the meantime, the inability to run JupyterHub & Calibre-Web on 32-bit RasPiOS is documented within "Known Issues" here:

https://github.com/iiab/iiab/wiki/IIAB-8.0-Release-Notes#known-issues

@jvonau
Copy link
Contributor

jvonau commented Nov 10, 2022

Why was this was not brought up in the meeting that just ended?

@jvonau
Copy link
Contributor

jvonau commented Nov 10, 2022

Should the same safeguards be used as was used for mongodb?

@holta
Copy link
Member Author

holta commented Nov 10, 2022

This was discussed during the call that just ended: 32-bit RasPiOS is no longer mainline with IIAB.

Most everyone should use 64-bit Raspberry Pi OS going forward — unless absolutely necessary — e.g. if 32-bit is required for very old "Zero W" machines.

@holta
Copy link
Member Author

holta commented Nov 10, 2022

Should the same safeguards be used as was used for mongodb?

Good idea. To help newcomers who install 32-bit RasPiOS by accident, I've blocked iiab-install from installing JupyterHub & Calibre-Web onto 32-bit OS's for now:

@tim-moody
Copy link
Contributor

All ansible-base and ansible-core versions failed to pip install on 32-bit Raspberry Pi OS Lite according to my tests on RPi 4. Despite this being a new problem since around mid-August 2022, all versions of 32-bit RasPiOS from 2022 (not just the 2022-09-22 release) now suffer from this same problem.

and yet I have an install from Sept 29, 2022 on 32 bit 9-22 raspios-lite that completed on a 4 and runs on a W (master at commit 4b2fe1e). And I installed kiwix using Admin Console, running on the W.

@jvonau jvonau mentioned this pull request Jan 2, 2023
@jvonau
Copy link
Contributor

jvonau commented Jan 4, 2023

This is just a plain sloppy hack, now there are files that introduce an apt repo that is never used on most installs but will pull down metadata from the repo anyway. Now on 32bit the installed version is less than the advertised 'good version' which can be confusing.

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

Successfully merging this pull request may close these issues.

None yet

3 participants