From 03f5af3da33ca69ae73e89ac52cc3028124ddb01 Mon Sep 17 00:00:00 2001 From: Hengfei Yang Date: Fri, 16 Oct 2026 08:41:22 +0000 Subject: [PATCH] fix: use musl sysroot headers and pin cross base images (#15449) --- Cross.ent.toml | 10 ++++++---- Cross.oss.toml | 10 ++++++---- cross/Dockerfile.ent.musl | 9 ++++++--- cross/Dockerfile.oss.musl | 9 ++++++--- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/Cross.ent.toml b/Cross.ent.toml index 406d29fc7a..ee575b4e51 100644 --- a/Cross.ent.toml +++ b/Cross.ent.toml @@ -1,5 +1,7 @@ -[target.aarch64-unknown-linux-musl] -dockerfile = "cross/Dockerfile.ent.musl" +[target.aarch64-unknown-linux-musl.dockerfile] +file = "cross/Dockerfile.ent.musl" +build-args = { MUSL_BASE_IMAGE = "ghcr.io/cross-rs/aarch64-unknown-linux-musl@sha256:4c29b5c7d0baf7d069dc48f0187f02c35e7a9df6f0f6a2b528400c6addb6a0cb" } -[target.x86_64-unknown-linux-musl] -dockerfile = "cross/Dockerfile.ent.musl" +[target.x86_64-unknown-linux-musl.dockerfile] +file = "cross/Dockerfile.ent.musl" +build-args = { MUSL_BASE_IMAGE = "ghcr.io/cross-rs/x86_64-unknown-linux-musl@sha256:0e3f9c34e663a9985ea26f569ec1f886334ce805dd6c7d72177e52f7b324ecac" } diff --git a/Cross.oss.toml b/Cross.oss.toml index d8a50a711b..b86369a8fb 100644 --- a/Cross.oss.toml +++ b/Cross.oss.toml @@ -1,5 +1,7 @@ -[target.aarch64-unknown-linux-musl] -dockerfile = "cross/Dockerfile.oss.musl" +[target.aarch64-unknown-linux-musl.dockerfile] +file = "cross/Dockerfile.oss.musl" +build-args = { MUSL_BASE_IMAGE = "ghcr.io/cross-rs/aarch64-unknown-linux-musl@sha256:4c29b5c7d0baf7d069dc48f0187f02c35e7a9df6f0f6a2b528400c6addb6a0cb" } -[target.x86_64-unknown-linux-musl] -dockerfile = "cross/Dockerfile.oss.musl" +[target.x86_64-unknown-linux-musl.dockerfile] +file = "cross/Dockerfile.oss.musl" +build-args = { MUSL_BASE_IMAGE = "ghcr.io/cross-rs/x86_64-unknown-linux-musl@sha256:0e3f9c34e663a9985ea26f569ec1f886334ce805dd6c7d72177e52f7b324ecac" } diff --git a/cross/Dockerfile.ent.musl b/cross/Dockerfile.ent.musl index 3401a92462..40bb8e2539 100644 --- a/cross/Dockerfile.ent.musl +++ b/cross/Dockerfile.ent.musl @@ -1,5 +1,5 @@ -ARG CROSS_BASE_IMAGE -FROM $CROSS_BASE_IMAGE +ARG MUSL_BASE_IMAGE +FROM $MUSL_BASE_IMAGE RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y --option=Dpkg::Options::=--force-confnew \ @@ -11,4 +11,7 @@ RUN cp protoc/bin/protoc /usr/local/bin/ RUN cp -r protoc/include/google /usr/local/include/ COPY --from=ent ./ /home/runner/work/o2-enterprise/o2-enterprise/o2-enterprise -RUN ln -s /usr/include/boost/ "/usr/local/${CROSS_CMAKE_SYSTEM_PROCESSOR}-linux-musl/include/" +RUN test -n "${CROSS_SYSROOT:?CROSS_SYSROOT must be set by the base image}" && \ + { test -d "${CROSS_SYSROOT%/}/usr/include" || \ + { echo "Missing compiler include directory: ${CROSS_SYSROOT%/}/usr/include" >&2; exit 1; }; } && \ + ln -s /usr/include/boost "${CROSS_SYSROOT%/}/usr/include/boost" diff --git a/cross/Dockerfile.oss.musl b/cross/Dockerfile.oss.musl index 649ea0ecc9..c0aaf24545 100644 --- a/cross/Dockerfile.oss.musl +++ b/cross/Dockerfile.oss.musl @@ -1,5 +1,5 @@ -ARG CROSS_BASE_IMAGE -FROM $CROSS_BASE_IMAGE +ARG MUSL_BASE_IMAGE +FROM $MUSL_BASE_IMAGE RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y --option=Dpkg::Options::=--force-confnew \ @@ -10,4 +10,7 @@ RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v21.12/pr cp protoc/bin/protoc /usr/local/bin/ && \ cp -r protoc/include/google /usr/local/include/ -RUN ln -s /usr/include/boost/ "/usr/local/${CROSS_CMAKE_SYSTEM_PROCESSOR}-linux-musl/include/" +RUN test -n "${CROSS_SYSROOT:?CROSS_SYSROOT must be set by the base image}" && \ + { test -d "${CROSS_SYSROOT%/}/usr/include" || \ + { echo "Missing compiler include directory: ${CROSS_SYSROOT%/}/usr/include" >&2; exit 1; }; } && \ + ln -s /usr/include/boost "${CROSS_SYSROOT%/}/usr/include/boost"