Repository navigation
Build Python requirements from source on s390x build nodes - #43
Merged
Merged
Conversation
grpcio and other requirements have no prebuilt s390x wheels, so they are compiled on the node: - install c-ares, openssl and zlib devel packages and build grpcio against the system libraries instead of the bundled ones - install setuptools>=61,<81, cython<3 and wheel into the venv and install requirements with --no-build-isolation: grpcio 1.58 needs pkg_resources (removed in setuptools 81), git deps with PEP 621 metadata need setuptools>=61 - limit grpcio compile jobs to 1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
grpcio (and some other albs-node requirements) has no prebuilt s390x wheels, so fresh s390x build nodes (e.g.
albs-s3-builder-alma-06/07) compile it on the node. With grpcio pinned to 1.58.0 (AlmaLinux/albs-node#224) this failed in several ways; this PR makes theseparate_build_noderole handle it. All changes apply only whenansible_facts['architecture'] == 's390x'; other arches are unchanged.Changes
defaults/main/dnf.yml,tasks/dnf.yml: installc-ares-devel,openssl-devel,zlib-devel(CRB enabled) so grpcio builds against system librariesdefaults/main/common.yml,tasks/create_env.yml:setuptools>=61,<81,cython<3,wheelinto the venv before requirements<81: grpcio 1.58setup.pyimportspkg_resources, removed in setuptools 81>=61: git deps (albs-build-lib, albs-common-lib) use PEP 621[project]metadata; the system setuptools 53 visible via--system-site-packagesotherwise satisfies the pin and yields nameunknown--no-build-isolation(isolated builds pull the latest setuptools) andGRPC_PYTHON_BUILD_SYSTEM_{OPENSSL,ZLIB,CARES}=1,GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=1Testing
pip install --no-build-isolationwith these env vars built grpcio 1.58.0 on alma-07--tags update-envagainst an s390x node (also needs Add cachetools to requirements albs-node#225 forcachetools)🤖 Generated with Claude Code