IdentityPython / satosa-docker

Docker Official Image packaging for SATOSA
Other
8 stars 5 forks source link

s390x-unknown-linux-musl not supported by Rust, breaking pyca/cryptography installation in images based on s390x/python:alpine #1

Closed niheconomoum closed 2 years ago

niheconomoum commented 2 years ago

SATOSA depends on pyca/cryptography, which in turn requires Rust at build time. SATOSA fails to install into Python/Alpine Linux containers running on the s390x architecture as the Rust toolchain is not available for that platform. This causes DOI builds of s390x/satosa:alpine to fail, e.g., https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/satosa/112/console:

 ---> Running in adcf3ff8da9b
+ apk add --no-cache --virtual .build-deps bluez-dev bzip2-dev cargo coreutils dpkg-dev dpkg expat-dev findutils gcc gdbm-dev libc-dev libffi-dev libnsl-dev libtirpc-dev linux-headers make musl-dev ncurses-dev openssl-dev pax-utils python3-dev readline-dev sqlite-dev tcl-dev tk tk-dev util-linux-dev xz-dev zlib-dev
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/s390x/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/s390x/APKINDEX.tar.gz
ERROR: unable to select packages:
  .build-deps-20220725.184820:
    masked in: cache
    satisfies: world[.build-deps=20220725.184820]
  cargo (no such package):
    required by: .build-deps-20220725.184820[cargo]

Rust cannot be installed via rustup, either:

$ docker run -it --rm s390x/python:alpine sh
/ # apk add curl
(1/4) Installing brotli-libs (1.0.9-r6)
(2/4) Installing nghttp2-libs (1.47.0-r0)
(3/4) Installing libcurl (7.83.1-r2)
(4/4) Installing curl (7.83.1-r2)
Executing busybox-1.35.0-r15.trigger
OK: 16 MiB in 40 packages
/ # curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer
curl: (22) The requested URL returned error: 404
rustup: installer for platform 's390x-unknown-linux-musl' not found, this may be unsupported
niheconomoum commented 2 years ago

It isn't possible to install Rust on this platform/operating system.