From 941f4f214ce618f5b251a2cbc9c3dce06e2e7f63 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Thu, 12 Sep 2024 15:13:07 -0300 Subject: [PATCH] x Signed-off-by: Pedro Tammela --- .../aarch64-unknown-linux-musl/Dockerfile | 2 +- .../arm-unknown-linux-musleabihf/Dockerfile | 3 +- ci/docker/i686-unknown-linux-musl/Dockerfile | 3 +- ci/docker/s390x-unknown-linux-musl/Dockerfile | 3 +- .../x86_64-unknown-linux-musl/Dockerfile | 3 +- ci/install-musl.sh | 59 ++++++++++++++++--- 6 files changed, 61 insertions(+), 12 deletions(-) diff --git a/ci/docker/aarch64-unknown-linux-musl/Dockerfile b/ci/docker/aarch64-unknown-linux-musl/Dockerfile index bc15db0692297..cfce22bbe5f17 100644 --- a/ci/docker/aarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/aarch64-unknown-linux-musl/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:23.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ - gcc-aarch64-linux-gnu qemu-user + gcc-aarch64-linux-gnu qemu-user xz-utils patch rsync COPY install-musl.sh / RUN sh /install-musl.sh aarch64 diff --git a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile index 1709699997e7f..e43c75cf507db 100644 --- a/ci/docker/arm-unknown-linux-musleabihf/Dockerfile +++ b/ci/docker/arm-unknown-linux-musleabihf/Dockerfile @@ -2,7 +2,8 @@ FROM ubuntu:23.10 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc make libc6-dev git curl ca-certificates \ - gcc-arm-linux-gnueabihf qemu-user + gcc-arm-linux-gnueabihf qemu-user \ + xz-utils patch rsync COPY install-musl.sh / RUN sh /install-musl.sh arm diff --git a/ci/docker/i686-unknown-linux-musl/Dockerfile b/ci/docker/i686-unknown-linux-musl/Dockerfile index a54456fd9942b..d164bd35e746d 100644 --- a/ci/docker/i686-unknown-linux-musl/Dockerfile +++ b/ci/docker/i686-unknown-linux-musl/Dockerfile @@ -3,7 +3,8 @@ FROM ubuntu:23.10 RUN dpkg --add-architecture i386 RUN apt-get update RUN apt-get install -y --no-install-recommends \ - gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 + gcc-multilib make libc6-dev git curl ca-certificates libc6-i386 \ + xz-utils patch rsync COPY install-musl.sh / RUN sh /install-musl.sh i686 diff --git a/ci/docker/s390x-unknown-linux-musl/Dockerfile b/ci/docker/s390x-unknown-linux-musl/Dockerfile index d93eba4bd48e6..aef09259d63f7 100644 --- a/ci/docker/s390x-unknown-linux-musl/Dockerfile +++ b/ci/docker/s390x-unknown-linux-musl/Dockerfile @@ -4,7 +4,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ gcc \ gcc-s390x-linux-gnu \ - qemu-user + qemu-user \ + xz-utils patch rsync COPY install-musl.sh / RUN sh /install-musl.sh s390x diff --git a/ci/docker/x86_64-unknown-linux-musl/Dockerfile b/ci/docker/x86_64-unknown-linux-musl/Dockerfile index 7b65f5fa2a8c1..8b4fa9bad4a9b 100644 --- a/ci/docker/x86_64-unknown-linux-musl/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-musl/Dockerfile @@ -2,7 +2,8 @@ FROM ubuntu:23.10 RUN apt-get update RUN apt-get install -y --no-install-recommends \ - gcc make libc6-dev git curl ca-certificates + gcc make libc6-dev git curl ca-certificates \ + xz-utils patch rsync COPY install-musl.sh / RUN sh /install-musl.sh x86_64 diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 7ea50916c4caf..1e27cfc46b0c2 100644 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -65,12 +65,57 @@ cd .. rm -rf $MUSL # Download, configure, build, and install musl-sanitized kernel headers: -KERNEL_HEADER_VER="4.19.88" -curl --retry 5 -L \ - "https://github.com/sabotage-linux/kernel-headers/archive/v${KERNEL_HEADER_VER}.tar.gz" | \ - tar xzf - +#KERNEL_HEADER_VER="4.19.88" +#curl --retry 5 -L \ +# "https://github.com/sabotage-linux/kernel-headers/archive/v${KERNEL_HEADER_VER}.tar.gz" | \ +# tar xzf - +#( +# cd kernel-headers-${KERNEL_HEADER_VER} +# make ARCH="${kernel_arch}" prefix="/musl-${musl_arch}" install -j4 +#) +#rm -rf kernel-headers-${KERNEL_HEADER_VER} + +git clone -n --depth=1 --filter=tree:0 -b 3.20-stable https://gitlab.alpinelinux.org/alpine/aports ( - cd kernel-headers-${KERNEL_HEADER_VER} - make ARCH="${kernel_arch}" prefix="/musl-${musl_arch}" install -j4 + cd aports + git sparse-checkout set --no-cone main/linux-headers + git checkout + cd main/linux-headers + cp APKBUILD APKBUILD.source + cp APKBUILD APKBUILD.sha512 + { + echo "printf \"\$source\"" + # shellcheck disable=SC2028 + echo "printf \"\$_kernver\n\"" + # shellcheck disable=SC2028 + echo "printf \"\$pkgver\n\"" + } >> APKBUILD.source + echo "printf \"\$sha512sums\"" >> APKBUILD.sha512 + KERNEL_VER=$(bash APKBUILD.source | tail -2 | head -1 | tr -d "[:space:]") + PKGVER=$(bash APKBUILD.source | tail -1 | tr -d "[:space:]") + urls=$(bash APKBUILD.source | grep -o 'https.*') + kernel="" + patch="" + for url in $urls; do + base=$(basename "$url") + curl --retry 5 -L "$url" > "$base" + case $base in + linux-*) kernel=$base;; + patch-*) patch=$base;; + esac + done + bash APKBUILD.sha512 | grep "$kernel" >> sha-check + bash APKBUILD.sha512 | grep "$patch" >> sha-check + sha512sum -c sha-check + tar -xf "$kernel" + cd "linux-$KERNEL_VER" + if [ "$PKGVER" != "$KERNEL_VER" ]; then + unxz -c < "../$patch" | patch -p1 + fi + for p in ../*.patch; do + patch -p1 < "$p" + done + make headers_install ARCH="${kernel_arch}" INSTALL_HDR_PATH="/musl-${musl_arch}" ) -rm -rf kernel-headers-${KERNEL_HEADER_VER} + +rm -rf aports