Source
FROM scratch AS base
ENV VERSION=1.5.6
ENV SRC_HASH=786f9f5df9865cc5b0c1fecee3d2c0f5e04cab8c9a859bd1c9c7ccd4964fdae1
ENV SRC_FILE=xorriso-${VERSION}.pl02.tar.gz
ENV SRC_SITE=https://www.gnu.org/software/xorriso/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/busybox . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/musl . /
COPY --from=stagex/linux-headers . /
RUN tar -xf ${SRC_FILE}
WORKDIR /xorriso-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--prefix=/usr
make -j "$(nproc)"
EOF
FROM build AS install
RUN --network=none make DESTDIR=/rootfs install
FROM base AS test
COPY --from=install /rootfs/. /
COPY --from=stagex/musl . /
COPY --from=stagex/busybox . /
RUN /bin/sh <<-EOF
set -eux
XORRISO_VERSION=$(xorriso --version | grep 'xorriso version' | sed -E 's/^.*: +([^ ]+).*$/\1/')
if [ "${VERSION}.pl02" != "\$XORRISO_VERSION" ]; then
echo "Expected xorriso version is \$VERSION.pl02, but got \$XORRISO_VERSION"
exit 1
fi
EOF
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /