1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
#!/usr/bin/make -f
include /usr/share/dpkg/default.mk
built_binaries := $(shell dh_listpackages)
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,-O1
export DPKG_GENSYMBOLS_CHECK_LEVEL = 4
# Following upstream method to compute the API version
MUTTER_MAJOR_VERSION = $(shell echo $(DEB_VERSION_UPSTREAM) | sed 's/[~.].*//')
MUTTER_API_VERSION = $(shell echo $$(( $(MUTTER_MAJOR_VERSION) - 32 )) )
MUTTER_SONAME = 0
export MUTTER_API_VERSION
export MUTTER_SONAME
%:
dh $@
CONFFLAGS = \
-Dauto_features=enabled \
-Degl_device=true \
-Dremote_desktop=true \
-Dwayland_eglstream=true
export deb_udevdir = $(shell pkg-config --variable=udevdir udev | sed s,^/,,)
# Update the cogl_trace architectures in the symbols file to match this list:
ifeq (,$(filter amd64 arm64 armel armhf mips64el ppc64el riscv64 s390x,$(DEB_HOST_ARCH)))
CONFFLAGS +=-Dprofiler=false
endif
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
CONFFLAGS += --cross-file=$(DEB_HOST_GNU_TYPE)-gobject-introspection.ini
endif
override_dh_gnome_clean:
override_dh_auto_configure:
dh_auto_configure -- \
$(CONFFLAGS)
# Use meson test directly as it allows us to use the timeout multiplier
BUILDDIR=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
TEST_COMMAND_BASE=env \
GIO_USE_VFS=local \
GIO_USE_VOLUME_MONITOR=unix \
GVFS_DISABLE_FUSE=1 \
dbus-run-session -- \
xvfb-run -e /proc/self/fd/2 -s '+iglx -noreset -screen 0 1280x1024x24' -a \
dh_auto_test -- -C $(BUILDDIR) --no-rebuild --verbose --timeout-multiplier 6 \
--no-stdsplit --print-errorlogs
TEST_COMMAND=$(TEST_COMMAND_BASE) --no-suite flaky --no-suite broken --no-suite mutter/x11
TEST_COMMAND_FLAKY=env DEB_ALLOW_FLAKY_TESTS=1 $(TEST_COMMAND_BASE) --suite flaky --suite mutter/x11
# Ignore test failures on official architectures
# because it is believed that significant debian-installer/tasksel issues
# occur if task-gnome-desktop is not installable.
#
# We suspect that GNOME Shell might not work on mips64el and s390x.
# See gnome-settings-daemon where a simple mutter session fails there.
#
# But GNOME Shell is apparently usable on Ubuntu's riscv64:
# https://discourse.ubuntu.com/t/33807
#
# Please keep this list in sync with debian/tests/installed-tests
override_dh_auto_test-arch:
debian/tests/ensure-x11-dir
ifeq (,$(filter mips64el riscv64 s390x,$(DEB_HOST_ARCH)))
$(TEST_COMMAND)
-$(TEST_COMMAND_FLAKY) --logbase flaky-tests
else
-$(TEST_COMMAND)
-$(TEST_COMMAND_FLAKY) --logbase flaky-tests
endif
# Don't re-run the tests if we are only building Architecture: all
override_dh_auto_test-indep:
# debhelper >= 13.4 makes all of /usr/libexec executable, which is not
# quite right for installed-tests
override_dh_fixperms:
dh_fixperms -Xusr/libexec/installed-tests
ifneq ($(filter %-tests,$(built_binaries)),)
chmod --recursive --changes a+rX,u+w,og-w debian/*-tests/usr/libexec/installed-tests
endif
override_dh_girepository:
dh_girepository /usr/lib/$(DEB_HOST_MULTIARCH)/mutter-$(MUTTER_API_VERSION)
override_dh_makeshlibs:
dh_makeshlibs -V
override_dh_shlibdeps:
dh_shlibdeps -Llibmutter-$(MUTTER_API_VERSION)-$(MUTTER_SONAME) \
-l/usr/lib/$(DEB_HOST_MULTIARCH)/mutter-$(MUTTER_API_VERSION)
|