mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-03 19:36:16 +01:00
dbd7280c5e
The version of ninja-build in Debian 12 isn't built with large file support, and therefore is not compatible with filesystems with large inode numbers. Unfortunately, that includes the overlay mounts used by Docker. I've suggested a stable update for this as part of the next Debian 12 point release. Until/unless that happens, we can build our own. Signed-off-by: Simon McVittie <smcv@debian.org>
106 lines
2.5 KiB
Docker
106 lines
2.5 KiB
Docker
ARG ARCHITECTURE_PREFIX=
|
|
FROM ${ARCHITECTURE_PREFIX}debian:bookworm
|
|
|
|
RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \
|
|
bindfs \
|
|
black \
|
|
clang \
|
|
clang-tools \
|
|
clang-format \
|
|
dbus \
|
|
desktop-file-utils \
|
|
elfutils \
|
|
findutils \
|
|
flake8 \
|
|
fuse \
|
|
gcc \
|
|
gdb \
|
|
g++ \
|
|
gettext \
|
|
gi-docgen \
|
|
git \
|
|
libc6-dev \
|
|
gobject-introspection \
|
|
gtk-doc-tools \
|
|
itstool \
|
|
lcov \
|
|
libattr1-dev \
|
|
libdbus-1-dev \
|
|
libelf-dev \
|
|
libffi-dev \
|
|
libgirepository1.0-dev \
|
|
libmount-dev \
|
|
libpcre2-dev \
|
|
libselinux1-dev \
|
|
libxml2-utils \
|
|
libxslt1-dev \
|
|
libz3-dev \
|
|
locales \
|
|
ninja-build \
|
|
python3 \
|
|
python3-pip \
|
|
python3-setuptools \
|
|
python3-wheel \
|
|
reuse \
|
|
shared-mime-info \
|
|
shellcheck \
|
|
systemtap-sdt-dev \
|
|
unzip \
|
|
wget \
|
|
xsltproc \
|
|
xz-utils \
|
|
zlib1g-dev \
|
|
&& rm -rf /usr/share/doc/* /usr/share/man/*
|
|
|
|
# Locale for our build
|
|
RUN locale-gen C.UTF-8 && /usr/sbin/update-locale LANG=C.UTF-8
|
|
|
|
# Locales for our tests
|
|
RUN locale-gen de_DE.UTF-8 \
|
|
&& locale-gen el_GR.UTF-8 \
|
|
&& locale-gen en_US.UTF-8 \
|
|
&& locale-gen es_ES.UTF-8 \
|
|
&& locale-gen fa_IR.UTF-8 \
|
|
&& locale-gen fr_FR.UTF-8 \
|
|
&& locale-gen hr_HR.UTF-8 \
|
|
&& locale-gen ja_JP.UTF-8 \
|
|
&& locale-gen lt_LT.UTF-8 \
|
|
&& locale-gen pl_PL.UTF-8 \
|
|
&& locale-gen ru_RU.UTF-8 \
|
|
&& locale-gen th_TH.UTF-8 \
|
|
&& locale-gen tr_TR.UTF-8
|
|
|
|
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
|
|
|
|
RUN pip3 install --break-system-packages meson==1.4.2
|
|
|
|
# ninja-build 1.11.1 didn't build with large file support on 32-bit,
|
|
# breaking the i386 image when used with overlayfs.
|
|
# The fix from upstream 1.12.0 was backported to Debian in 1.11.1-2,
|
|
# but too late for Debian 12. https://bugs.debian.org/1041897
|
|
RUN if [ "$(dpkg --print-architecture)" = i386 ]; then \
|
|
apt-get install --no-install-recommends -qq -y \
|
|
debhelper \
|
|
re2c \
|
|
&& mkdir /run/build \
|
|
&& git clone --depth=1 -b debian/1.11.1-2 https://salsa.debian.org/debian/ninja-build.git /run/build/ninja-build \
|
|
&& cd /run/build/ninja-build \
|
|
&& git checkout e39b5f01229311916302300449d951735e4a3e3f \
|
|
&& dpkg-buildpackage -B -Pnodoc \
|
|
&& dpkg -i ../*.deb \
|
|
&& cd / \
|
|
&& rm -fr /run/build; \
|
|
fi
|
|
|
|
ARG HOST_USER_ID=5555
|
|
ENV HOST_USER_ID ${HOST_USER_ID}
|
|
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
|
|
|
|
USER user
|
|
WORKDIR /home/user
|
|
|
|
COPY cache-subprojects.sh .
|
|
RUN ./cache-subprojects.sh
|
|
|
|
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
|