FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=2.80.0 ENV SRC_HASH=8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d ENV SRC_FILE=glib-${VERSION}.tar.xz ENV SRC_SITE=https://download.gnome.org/sources/glib/2.80/${SRC_FILE} FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} FROM fetch AS build COPY --from=stagex/python . / COPY --from=stagex/zlib . / COPY --from=stagex/bzip2 . / COPY --from=stagex/pkgconf . / COPY --from=stagex/linux-headers . / COPY --from=stagex/ncurses . / COPY --from=stagex/meson . / COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / COPY --from=stagex/cmake . / COPY --from=stagex/pcre2 . / COPY --from=stagex/python . / COPY --from=stagex/bison . / COPY --from=stagex/flex . / COPY --from=stagex/py-packaging . / COPY --from=stagex/libxslt . / COPY --from=stagex/libffi . / COPY --from=stagex/xz . / COPY --from=stagex/expat . / COPY --from=stagex/rhash . / COPY --from=stagex/libxml2 . / COPY --from=stagex/util-linux . / COPY --from=stagex/libxslt . / COPY --from=stagex/gettext . / COPY --from=stagex/ninja . / RUN tar -xf ${SRC_FILE} WORKDIR glib-${VERSION} COPY *.patch . RUN --network=none <<-EOF set -eux export CFLAGS="-ffat-lto-objects -O2" export CXXFLAGS="-O2" export CPPFLAGS="-O2" meson setup \ --default-library=shared \ --prefix=/usr \ -Dman-pages=disabled \ -Dlibmount=disabled \ -Dtests=false \ -Dintrospection=disabled \ -Dnls=disabled \ . output meson compile -C output meson install --no-rebuild -C output EOF FROM build AS install RUN DESTDIR=/rootfs meson install --no-rebuild -C output RUN find /rootfs -exec touch -hcd "@0" "{}" + FROM stagex/filesystem AS package COPY --from=install /rootfs/. /