glib/.gitlab-ci/debian-stable.Dockerfile
Simon McVittie dbd7280c5e CI: Rebuild a slightly newer version of ninja for debian-stable-i386
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>
2024-10-19 17:45:51 +01:00

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