Build using Meson

This commit is contained in:
Simon McVittie
2022-11-23 15:42:39 +00:00
parent 2928c9cbb9
commit baa6ae9e9c
8 changed files with 40 additions and 114 deletions

4
debian/changelog vendored
View File

@ -7,6 +7,10 @@ gtk+3.0 (3.24.35-1) UNRELEASED; urgency=medium
* d/p/Flush-drawable-surface-when-getting-a-pixbuf.patch: * d/p/Flush-drawable-surface-when-getting-a-pixbuf.patch:
Add post-release fix from upstream to avoid an assertion failure in Add post-release fix from upstream to avoid an assertion failure in
gnome-screenshot and epiphany gnome-screenshot and epiphany
* d/rules, d/run-tests.sh: Build using Meson
* d/p/Disable-accessibility-dump-aka-a11ytests-test.patch,
d/p/testsuite-Allow-reftest-output-directory-to-be-forced-via.patch:
Drop patches that are not needed when building with Meson
-- Simon McVittie <smcv@debian.org> Wed, 23 Nov 2022 15:21:00 +0000 -- Simon McVittie <smcv@debian.org> Wed, 23 Nov 2022 15:21:00 +0000

2
debian/control vendored
View File

@ -43,6 +43,8 @@ Build-Depends: adwaita-icon-theme <!nocheck>,
libxkbfile-dev, libxkbfile-dev,
libxml2-utils, libxml2-utils,
libxrandr-dev (>= 2:1.5.0), libxrandr-dev (>= 2:1.5.0),
meson (>= 0.48.0),
ninja-build,
pkg-config, pkg-config,
sassc, sassc,
wayland-protocols (>= 1.17) [linux-any], wayland-protocols (>= 1.17) [linux-any],

2
debian/control.in vendored
View File

@ -43,6 +43,8 @@ Build-Depends: adwaita-icon-theme <!nocheck>,
libxkbfile-dev, libxkbfile-dev,
libxml2-utils, libxml2-utils,
libxrandr-dev (>= 2:1.5.0), libxrandr-dev (>= 2:1.5.0),
meson (>= 0.48.0),
ninja-build,
pkg-config, pkg-config,
sassc, sassc,
wayland-protocols (>= 1.17) [linux-any], wayland-protocols (>= 1.17) [linux-any],

View File

@ -1,34 +0,0 @@
From: Simon McVittie <smcv@debian.org>
Date: Wed, 17 Jul 2019 17:20:23 +0100
Subject: Disable accessibility-dump (aka a11ytests) test
This test seems to be unreliable, with its results depending on
unknown environmental factors. Upstream disable it for CI purposes,
so we should probably do the same.
Forwarded: no
---
testsuite/a11y/Makefile.am | 3 ---
1 file changed, 3 deletions(-)
diff --git a/testsuite/a11y/Makefile.am b/testsuite/a11y/Makefile.am
index 73519e9..9b475b4 100644
--- a/testsuite/a11y/Makefile.am
+++ b/testsuite/a11y/Makefile.am
@@ -28,8 +28,6 @@ TESTS_ENVIRONMENT = \
GTK_CSD=1 \
G_ENABLE_DIAGNOSTIC=0
-TEST_PROGS += accessibility-dump
-
TEST_PROGS += tree-performance
TEST_PROGS += text
@@ -89,7 +87,6 @@ testdata = \
$(NULL)
test_in_files = \
- a11ytests.test.in \
a11ychildren.test.in \
a11ytree.test.in \
a11yvalue.test.in \

View File

@ -3,7 +3,5 @@ Flush-drawable-surface-when-getting-a-pixbuf.patch
016_no_offscreen_widgets_grabbing.patch 016_no_offscreen_widgets_grabbing.patch
017_no_offscreen_device_grabbing.patch 017_no_offscreen_device_grabbing.patch
060_ignore-random-icons.patch 060_ignore-random-icons.patch
Disable-accessibility-dump-aka-a11ytests-test.patch
reftest_compare_surfaces-Report-how-much-the-images-diffe.patch reftest_compare_surfaces-Report-how-much-the-images-diffe.patch
reftests-Allow-minor-differences-to-be-tolerated.patch reftests-Allow-minor-differences-to-be-tolerated.patch
testsuite-Allow-reftest-output-directory-to-be-forced-via.patch

View File

@ -1,30 +0,0 @@
From: Simon McVittie <smcv@debian.org>
Date: Sun, 21 Aug 2022 10:45:03 +0100
Subject: testsuite: Allow reftest output directory to be forced via
environment
On a buildd, we don't want this going into /tmp where we won't find it.
Building with Meson wouldn't need this, but we're currently building
with Autotools and I don't want to change more parameters at once than
I have to.
Forwarded: not-needed, the Meson build doesn't need this
---
testsuite/reftests/gtk-reftest.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/testsuite/reftests/gtk-reftest.c b/testsuite/reftests/gtk-reftest.c
index e526bc8..1645d8b 100644
--- a/testsuite/reftests/gtk-reftest.c
+++ b/testsuite/reftests/gtk-reftest.c
@@ -109,6 +109,10 @@ get_output_dir (void)
output_dir = g_file_get_path (file);
g_object_unref (file);
}
+ else if (g_getenv ("REFTEST_OUTPUT_DIR") != NULL)
+ {
+ output_dir = g_getenv ("REFTEST_OUTPUT_DIR");
+ }
else
{
output_dir = g_get_tmp_dir ();

73
debian/rules vendored
View File

@ -57,8 +57,6 @@ unexport XDG_CACHE_HOME
unexport XDG_CONFIG_DIRS unexport XDG_CONFIG_DIRS
unexport XDG_CONFIG_HOME unexport XDG_CONFIG_HOME
unexport XDG_DATA_HOME unexport XDG_DATA_HOME
# Get failing tests' stdout/err so we have some information when a build fails
export VERBOSE=1
# macro computing the list of 'debian/<pkg>.*" files which have a # macro computing the list of 'debian/<pkg>.*" files which have a
# corresponding ".in" file; pass the list of packages in $(1) # corresponding ".in" file; pass the list of packages in $(1)
@ -90,60 +88,51 @@ debian/%: debian/%.in
configure_flags_common = \ configure_flags_common = \
--libdir=/$(LIBDIR) \ --libdir=/$(LIBDIR) \
--enable-test-print-backend -Dx11_backend=true \
$(NULL)
configure_flags_deb = \ configure_flags_deb = \
--enable-broadway-backend \ --default-library=shared \
--enable-x11-backend \ -Dbroadway_backend=true \
--enable-gtk-doc \ -Dgtk_doc=true \
--enable-man \ -Dinstalled_tests=true \
--enable-shared \ -Dintrospection=true \
--enable-introspection \ -Dman=true \
--disable-static \ -Dprint_backends=cups,file,lpr,test \
--enable-installed-tests $(NULL)
ifeq (,$(filter stage1,$(DEB_BUILD_PROFILES))) ifeq (,$(filter stage1,$(DEB_BUILD_PROFILES)))
configure_flags_deb += --enable-colord configure_flags_deb += -Dcolord=yes
else else
configure_flags_deb += --disable-colord configure_flags_deb += -Dcolord=no
endif endif
ifeq (linux,$(DEB_HOST_ARCH_OS)) ifeq (linux,$(DEB_HOST_ARCH_OS))
configure_flags_deb += --enable-wayland-backend configure_flags_deb += -Dwayland_backend=true
else else
configure_flags_deb += --disable-wayland-backend configure_flags_deb += -Dwayland_backend=false
endif endif
ifeq ($(filter %-doc,$(built_binaries)),) ifeq ($(filter %-doc,$(built_binaries)),)
configure_flags_deb += --disable-gtk-doc --disable-man configure_flags_deb += -Dgtk_doc=false
else
configure_flags_deb += -Dgtk_doc=true
endif endif
configure_flags_udeb = \ configure_flags_udeb = \
--disable-broadway-backend \ -Dbroadway_backend=false \
--disable-wayland-backend \ -Dcolord=no \
--enable-x11-backend \ -Dgtk_doc=false \
--disable-introspection \ -Dintrospection=false \
--disable-colord \ -Dman=false \
--disable-xcomposite \ -Dprint_backends=file \
--disable-xdamage \ -Dwayland_backend=false \
--disable-xfixes \
--disable-xrandr
%:
dh $@ --buildsystem=autoconf
fuzzy_reftests = \
$(NULL) $(NULL)
# See testsuite/reftests/meson.build %:
ignore_reftests = \ dh $@ --buildsystem=meson
button-wrapping \
cellrenderer-pixbuf-stock-rtl \ fuzzy_reftests = \
label-sizing \
label-wrap-justify \
quit-mnemonic \
symbolic-icon-translucent-color \
window-height-for-width \
$(NULL) $(NULL)
# Debian-specific # Debian-specific
@ -206,7 +195,7 @@ rebuild-emoji:
done done
override_dh_autoreconf: override_dh_autoreconf:
NOCONFIGURE=true dh_autoreconf ./autogen.sh : # Do nothing, we're using Meson
override_dh_auto_configure: debian/control override_dh_auto_configure: debian/control
dh_auto_configure \ dh_auto_configure \
@ -246,13 +235,12 @@ ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
FUZZY_REFTESTS="$(fuzzy_reftests)" \ FUZZY_REFTESTS="$(fuzzy_reftests)" \
IGNORE_REFTESTS="$(ignore_reftests)" \ IGNORE_REFTESTS="$(ignore_reftests)" \
XFAIL_REFTESTS="$(xfail_reftests)" \ XFAIL_REFTESTS="$(xfail_reftests)" \
debian/run-tests.sh debian/run-tests.sh --timeout-multiplier 4
endif endif
endif endif
override_dh_auto_install: override_dh_auto_install:
dh_auto_install --builddirectory=debian/build/deb --destdir=debian/install/deb dh_auto_install --builddirectory=debian/build/deb --destdir=debian/install/deb
rm -v -f debian/install/deb/usr/libexec/installed-tests/gtk+/reftests/libreftest.la
ifneq ($(filter %-udeb,$(built_binaries)),) ifneq ($(filter %-udeb,$(built_binaries)),)
dh_auto_install --builddirectory=debian/build/udeb --destdir=debian/install/udeb dh_auto_install --builddirectory=debian/build/udeb --destdir=debian/install/udeb
endif endif
@ -266,7 +254,6 @@ override_dh_install:
override_dh_fixperms: override_dh_fixperms:
dh_fixperms -Xusr/libexec/installed-tests dh_fixperms -Xusr/libexec/installed-tests
ifneq ($(filter $(EXAMPLES_PKG),$(built_binaries)),) ifneq ($(filter $(EXAMPLES_PKG),$(built_binaries)),)
chmod --changes u=rw,og=r debian/$(EXAMPLES_PKG)/usr/libexec/installed-tests/*/*/*.so
chmod --recursive --changes a+rX,u+w,og-w debian/$(EXAMPLES_PKG)/usr/libexec/installed-tests chmod --recursive --changes a+rX,u+w,og-w debian/$(EXAMPLES_PKG)/usr/libexec/installed-tests
endif endif

7
debian/run-tests.sh vendored
View File

@ -42,12 +42,11 @@ for BACKEND in x11; do
-u LD_PRELOAD \ -u LD_PRELOAD \
GIO_USE_VFS=local \ GIO_USE_VFS=local \
GIO_USE_VOLUME_MONITOR=unix \ GIO_USE_VOLUME_MONITOR=unix \
REFTEST_OUTPUT_DIR="$BUILDDIR/testsuite/reftests/output" \
dbus-run-session -- \ dbus-run-session -- \
xvfb-run -a \ xvfb-run -a \
dh_auto_test --builddirectory="$BUILDDIR" -- \ dh_auto_test --builddirectory="$BUILDDIR" -- \
-k check -j1 \ --no-suite=gtk+-3.0:a11y \
GTESTER="gtester -k --verbose -o gtester.xml" \ "$@" \
|| touch "$test_data/tests-failed" || touch "$test_data/tests-failed"
# Don't base64-encode the image results for tests that upstream # Don't base64-encode the image results for tests that upstream
@ -57,8 +56,6 @@ for BACKEND in x11; do
done done
done done
# gtester unhelpfully suppresses stdout/stderr, add those to the log
find "$BUILDDIR" -name gtester.xml -print0 | xargs -0 -r head -v -n-0
# Put the images in the log as base64 since we don't have an # Put the images in the log as base64 since we don't have an
# equivalent of AUTOPKGTEST_ARTIFACTS for buildds # equivalent of AUTOPKGTEST_ARTIFACTS for buildds
debian/log-reftests.py debian/log-reftests.py