FROM scratch as base ENV VERSION=1.5.5 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/facebook/zstd/archive/${SRC_FILE} ENV SRC_HASH=98e9c3d949d1b924e28e01eccb7deed865eefebf25c2f21c702e5cd5b63b85e1 FROM base as fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . FROM fetch as build COPY --from=stagex/busybox . / COPY --from=stagex/python . / COPY --from=stagex/gcc . / COPY --from=stagex/musl . / COPY --from=stagex/meson . / COPY --from=stagex/ninja . / COPY --from=stagex/binutils . / COPY --from=stagex/pkgconf . / COPY --from=stagex/zlib . / # HACK: figure out why gcc package puts these in the wrong path at install time COPY --from=stagex/gcc /usr/lib64/* /usr/lib/ RUN tar -xf ${SRC_FILE} WORKDIR zstd-${VERSION} RUN --network=none <<-EOF set -eux meson env2mfile \ --native \ --system=linux \ --cpu-family=x86_64 \ --cpu=x86_64 \ --endian=little \ -o meson.cross meson setup \ --prefix=/usr \ --libdir=/usr/lib \ --libexecdir=/usr/libexec \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --includedir=/usr/include \ --datadir=/usr/share \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --localedir=/usr/share/locale \ --sysconfdir=/etc \ --localstatedir=/var \ --sharedstatedir=/var/lib \ --buildtype=plain \ --auto-features=auto \ --wrap-mode=nodownload \ --default-library=both \ --cross-file=meson.cross \ -Dbacktrace=disabled \ -Db_lto=false \ -Db_staticpic=true \ -Db_pie=true \ -Dpython.bytecompile=0 \ -Dwerror=false \ -Db_ndebug=true \ -Dbin_tests=false \ -Dbin_contrib=false \ -Dbin_programs=true \ -Dbacktrace=disabled \ -Dmulti_thread=enabled \ -Dlz4=disabled \ -Dlzma=disabled \ -Dzlib=disabled \ build/meson \ output meson compile -C output EOF FROM build as install RUN --network=none DESTDIR=/rootfs meson install --no-rebuild -C output RUN find /rootfs -exec touch -hcd "@0" "{}" + FROM scratch as package COPY --from=install /rootfs /