From b78f5240307cc7f8c7e56d914dfded14f8ac726f Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 26 Nov 2025 14:16:26 +0000 Subject: [PATCH 1/3] ci: Enable the gobject-introspection build for the debian-stable-i386 job So the introspection tests which check architecture-specific things are run on an i386 architecture. This gives the best check we have that the libgirepository code is actually architecture independent. This requires adding some missing dependencies to the Debian Dockerfile which gobject-introspection.git needs. It also means enabling `sudo` on those containers. Signed-off-by: Philip Withnall --- .gitlab-ci.yml | 7 +++++-- .gitlab-ci/debian-stable.Dockerfile | 10 +++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 56265c7d0..7090eda64 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,8 +39,8 @@ cache: variables: FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v41.1" COVERITY_IMAGE: "registry.gitlab.gnome.org/gnome/glib/coverity:v7" - DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v24" - DEBIAN_I386_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable-i386:v4" + DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v25" + DEBIAN_I386_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable-i386:v5" ALPINE_IMAGE: "registry.gitlab.gnome.org/gnome/glib/alpine:v8" MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v41.1" GOBJECT_INTROSPECTION_TAG: "1.80.1" @@ -295,6 +295,7 @@ fedora-x86_64: .build-debian: extends: + - .build-gobject-introspection - .build-linux - .with-git stage: build @@ -302,6 +303,7 @@ fedora-x86_64: before_script: - !reference [".build-linux", "before_script"] - !reference [".with-git", "before_script"] + - !reference [".build-gobject-introspection", "before_script"] script: - meson setup ${MESON_COMMON_OPTIONS} --werror @@ -311,6 +313,7 @@ fedora-x86_64: --libdir=lib -Dsystemtap=enabled -Ddtrace=enabled + -Dintrospection=enabled _build - meson compile -C _build - .gitlab-ci/run-tests.sh diff --git a/.gitlab-ci/debian-stable.Dockerfile b/.gitlab-ci/debian-stable.Dockerfile index 572e3bea6..cc2e760b4 100644 --- a/.gitlab-ci/debian-stable.Dockerfile +++ b/.gitlab-ci/debian-stable.Dockerfile @@ -3,6 +3,7 @@ FROM ${ARCHITECTURE_PREFIX}debian:bookworm RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \ bindfs \ + bison \ black \ clang \ clang-tools \ @@ -12,6 +13,7 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \ elfutils \ findutils \ flake8 \ + flex \ fuse \ gcc \ gdb \ @@ -32,18 +34,21 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \ libmount-dev \ libpcre2-dev \ libselinux1-dev \ + libunwind-dev \ libxml2-utils \ libxslt1-dev \ libz3-dev \ locales \ ninja-build \ python3 \ + python3-dev \ python3-pip \ python3-setuptools \ python3-wheel \ reuse \ shared-mime-info \ shellcheck \ + sudo \ systemtap-sdt-dev \ unzip \ wget \ @@ -74,9 +79,12 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8 RUN pip3 install --break-system-packages meson==1.4.2 +# Enable passwordless sudo for sudo users +RUN echo "%sudo ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/sudo-nopasswd + ARG HOST_USER_ID=5555 ENV HOST_USER_ID ${HOST_USER_ID} -RUN useradd -u $HOST_USER_ID -ms /bin/bash user +RUN useradd -u $HOST_USER_ID -G sudo -ms /bin/bash user USER user WORKDIR /home/user From 0cd4adb962ad0b836bdc79da66c2817d8a97b077 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 27 Nov 2025 22:04:40 +0000 Subject: [PATCH 2/3] ci: Explicitly use `meson setup` to silence a warning Signed-off-by: Philip Withnall --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7090eda64..9d507e62d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -152,7 +152,7 @@ variables: if ! pkg-config --atleast-version "${GOBJECT_INTROSPECTION_TAG}" gobject-introspection-1.0; then mkdir -p gobject-introspection git clone --branch "${GOBJECT_INTROSPECTION_TAG}" https://gitlab.gnome.org/GNOME/gobject-introspection.git gobject-introspection - meson gobject-introspection gobject-introspection/build --prefix=/usr + meson setup gobject-introspection gobject-introspection/build --prefix=/usr sudo meson install -C gobject-introspection/build fi artifacts: From ba1e7e85ceb160cb67c3af15cbcb05307a3fbf2b Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 27 Nov 2025 23:40:23 +0000 Subject: [PATCH 3/3] ci: Clean up gobject-introspection build artifacts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I don’t see there’s any reason for us to keep and expose artifacts from building gobject-introspection as a dependency. The introspection files subsequently generated for GLib are/can be exposed separately as artifacts. In particular, keeping the gobject-introspection directory around as a subdirectory of the glib.git checkout means that `reuse.sh` starts investigating the licenses of the gobject-introspection.git files and failing as a result. Signed-off-by: Philip Withnall --- .gitlab-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9d507e62d..3d66982aa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -154,11 +154,8 @@ variables: git clone --branch "${GOBJECT_INTROSPECTION_TAG}" https://gitlab.gnome.org/GNOME/gobject-introspection.git gobject-introspection meson setup gobject-introspection gobject-introspection/build --prefix=/usr sudo meson install -C gobject-introspection/build + rm -rf gobject-introspection fi - artifacts: - expire_in: 3 days - paths: - - gobject-introspection .build-linux: before_script: