FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=8.2 ENV PATCH_LEVEL=10 ENV SRC_HASH=3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35 ENV SRC_PATCH_HASH_01=bbf97f1ec40a929edab5aa81998c1e2ef435436c597754916e6a5868f273aff7 ENV SRC_PATCH_HASH_02=e06503822c62f7bc0d9f387d4c78c09e0ce56e53872011363c74786c7cd4c053 ENV SRC_PATCH_HASH_03=24f587ba46b46ed2b1868ccaf9947504feba154bb8faabd4adaea63ef7e6acb0 ENV SRC_PATCH_HASH_04=79572eeaeb82afdc6869d7ad4cba9d4f519b1218070e17fa90bbecd49bd525ac ENV SRC_PATCH_HASH_05=622ba387dae5c185afb4b9b20634804e5f6c1c6e5e87ebee7c35a8f065114c99 ENV SRC_PATCH_HASH_06=c7b45ff8c0d24d81482e6e0677e81563d13c74241f7b86c4de00d239bc81f5a1 ENV SRC_PATCH_HASH_07=5911a5b980d7900aabdbee483f86dab7056851e6400efb002776a0a4a1bab6f6 ENV SRC_PATCH_HASH_08=a177edc9d8c9f82e8c19d0630ab351f3fd1b201d655a1ddb5d51c4cee197b26a ENV SRC_PATCH_HASH_09=3d9885e692e1998523fd5c61f558cecd2aafd67a07bd3bfe1d7ad5a31777a116 ENV SRC_PATCH_HASH_10=758e2ec65a0c214cfe6161f5cde3c5af4377c67d820ea01d13de3ca165f67b4c ENV SRC_FILE=readline-${VERSION}.tar.gz ENV SRC_SITE=http://ftp.gnu.org/gnu/readline ENV PATCH_SITE=${SRC_SITE}/readline-${VERSION}-patches FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/${SRC_FILE} . ADD --checksum=sha256:${SRC_PATCH_HASH_01} ${PATCH_SITE}/readline82-001 . ADD --checksum=sha256:${SRC_PATCH_HASH_02} ${PATCH_SITE}/readline82-002 . ADD --checksum=sha256:${SRC_PATCH_HASH_03} ${PATCH_SITE}/readline82-003 . ADD --checksum=sha256:${SRC_PATCH_HASH_04} ${PATCH_SITE}/readline82-004 . ADD --checksum=sha256:${SRC_PATCH_HASH_05} ${PATCH_SITE}/readline82-005 . ADD --checksum=sha256:${SRC_PATCH_HASH_06} ${PATCH_SITE}/readline82-006 . ADD --checksum=sha256:${SRC_PATCH_HASH_07} ${PATCH_SITE}/readline82-007 . ADD --checksum=sha256:${SRC_PATCH_HASH_08} ${PATCH_SITE}/readline82-008 . ADD --checksum=sha256:${SRC_PATCH_HASH_09} ${PATCH_SITE}/readline82-009 . ADD --checksum=sha256:${SRC_PATCH_HASH_10} ${PATCH_SITE}/readline82-010 . FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/pkgconf . / COPY --from=stagex/ncurses . / COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN --network=none tar -xf ${SRC_FILE} WORKDIR /readline-${VERSION} ADD *.patch . RUN --network=none <<-EOF set -eu p=1; while [ ${p} -le ${PATCH_LEVEL} ]; do printf "Applying patch readline82-$(printf "%03d" $p)\n" patch -p0 -i ../readline82-$(printf "%03d" $p) p=$(( p + 1 )) done ./configure \ --build=${ARCH}-linux-musl \ --host=${ARCH}-linux-musl \ --prefix=/usr \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --enable-static \ --enable-shared make -j "$(nproc)" EOF FROM build AS install RUN --network=none make DESTDIR=/rootfs install FROM stagex/filesystem AS package COPY --from=install /rootfs/. /