66 lines
1.8 KiB
Docker
66 lines
1.8 KiB
Docker
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/. /
|