#!/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)