commit:     96b8094548016d7e68aa6893416bba74103470c7
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  3 18:49:47 2019 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sun Mar  3 18:59:05 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96b80945

gnome-base/gnome-settings-daemon: fix non-wayland builds

Bug: https://bugs.gentoo.org/677494
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 .../files/3.28.1-fix-non-wayland-build.patch       | 88 ++++++++++++++++++++++
 ...uild => gnome-settings-daemon-3.28.1-r1.ebuild} |  4 +-
 2 files changed, 91 insertions(+), 1 deletion(-)

diff --git 
a/gnome-base/gnome-settings-daemon/files/3.28.1-fix-non-wayland-build.patch 
b/gnome-base/gnome-settings-daemon/files/3.28.1-fix-non-wayland-build.patch
new file mode 100644
index 00000000000..dd003d6c069
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.28.1-fix-non-wayland-build.patch
@@ -0,0 +1,88 @@
+From 91d5e708835b4c7810835d59b8ef5968454cfd0a Mon Sep 17 00:00:00 2001
+From: Ting-Wei Lan <[email protected]>
+Date: Fri, 15 Jun 2018 23:05:01 +0800
+Subject: [PATCH 1/2] common: Fix build with wayland disabled on FreeBSD
+
+HAVE_WAYLAND is always defined. We should check whether it is set to a
+non-zero value instead of checking whether it is defined.
+
+(cherry picked from commit 34199fa54641abae15199a311002ac726f47aa89)
+---
+ plugins/common/gsd-device-manager.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/common/gsd-device-manager.c 
b/plugins/common/gsd-device-manager.c
+index 541f2948..ff72ad69 100644
+--- a/plugins/common/gsd-device-manager.c
++++ b/plugins/common/gsd-device-manager.c
+@@ -275,7 +275,7 @@ gsd_device_manager_get (void)
+       manager = g_object_get_data (G_OBJECT (screen), 
"gsd-device-manager-data");
+ 
+       if (!manager) {
+-#ifdef HAVE_WAYLAND
++#if HAVE_WAYLAND
+               if (gnome_settings_is_wayland ()) {
+                       manager = g_object_new (GSD_TYPE_UDEV_DEVICE_MANAGER,
+                                               NULL);
+-- 
+2.17.0
+
+
+From 218f1ff0a3c6c500fd36601a4db6902fc1c57a43 Mon Sep 17 00:00:00 2001
+From: Marvin Schmidt <[email protected]>
+Date: Fri, 22 Jun 2018 20:12:50 +0200
+Subject: [PATCH 2/2] build: Fix build when wayland support is disabled
+
+The udev based device manager used for wayland environments was built
+based on the state of the gudev option instead of the wayland option.
+This resulted in an build error when building with `-Dwayland=false`
+since the gdk/gdkwayland.h header file is not present on systems without
+gdk-wayland-3.0.
+
+This patch puts the compilation of the udev based device manager behind
+the wayland option and the gdk-wayland-3.0 dependency
+
+(cherry picked from commit 51088a9c27d713bbe63359b865603c833eb5a930)
+---
+ meson.build                | 3 ++-
+ plugins/common/meson.build | 4 ++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 79c493a1..27fdd049 100644
+--- a/meson.build
++++ b/meson.build
+@@ -129,11 +129,12 @@ if enable_colord
+   colord_dep = dependency('colord', version: '>= 1.0.2')
+ endif
+ 
+-# Check for libwayland-client
++# Check for wayland dependencies
+ enable_wayland = get_option('wayland')
+ if enable_wayland
+   assert(enable_gudev, 'GUDev support is required for wayland support.')
+   wayland_client_dep = dependency('wayland-client')
++  wayland_gdk_dep = dependency('gdk-wayland-3.0')
+ endif
+ config_h.set10('HAVE_WAYLAND', enable_wayland)
+ 
+diff --git a/plugins/common/meson.build b/plugins/common/meson.build
+index 65a0757c..6bda2d2a 100644
+--- a/plugins/common/meson.build
++++ b/plugins/common/meson.build
+@@ -42,10 +42,10 @@ if host_is_darwin
+   ldflags += ['-Wl,-bundle_loader,@0@'.format(join_paths(), 
meson.build_root(), meson.project_name(), meson.project_name())]
+ endif
+ 
+-if enable_gudev
++if enable_wayland
+   sources += files('gsd-device-manager-udev.c')
+ 
+-  deps += gudev_dep
++  deps += [wayland_gdk_dep, gudev_dep]
+ endif
+ 
+ if enable_wacom
+-- 
+2.17.0
+

diff --git 
a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.28.1.ebuild 
b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.28.1-r1.ebuild
similarity index 95%
rename from gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.28.1.ebuild
rename to 
gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.28.1-r1.ebuild
index 0786e730078..2c04b07b0b1 100644
--- a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.28.1.ebuild
+++ b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.28.1-r1.ebuild
@@ -26,7 +26,7 @@ COMMON_DEPEND="
        >=dev-libs/glib-2.53.0:2
        >=gnome-base/gnome-desktop-3.11.1:3=
        >=gnome-base/gsettings-desktop-schemas-3.23.3
-       >=x11-libs/gtk+-3.15.3:3[X]
+       >=x11-libs/gtk+-3.15.3:3[X,wayland?]
        >=dev-libs/libgweather-3.9.5:2=
        colord? (
                >=x11-misc/colord-1.0.2:=
@@ -85,6 +85,8 @@ PATCHES=(
        # Make colord and wacom optional
        # glib 2.58 compatibility fix; included in 3.29.1+
        "${WORKDIR}"/patches/
+       # Fix non-wayland builds; 3.32 won't have this device manager code 
anymore, so nothing to upstream
+       "${FILESDIR}"/${PV}-fix-non-wayland-build.patch
 )
 
 python_check_deps() {

Reply via email to