summaryrefslogtreecommitdiff
path: root/gnome-base/gnome-settings-daemon/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /gnome-base/gnome-settings-daemon/files
reinit the tree, so we can have metadata
Diffstat (limited to 'gnome-base/gnome-settings-daemon/files')
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.22.2-udevrulesdir-configure.patch48
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.24.2-optional.patch145
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.24.2-reduce-memory-usage.patch177
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.24.2-remove-unneeded-gtk-init.patch77
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.24.2-udevrulesdir-configure.patch48
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.24.3-fix-wayland-build.patch53
-rw-r--r--gnome-base/gnome-settings-daemon/files/3.24.3-optional.patch169
-rw-r--r--gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.22.0-optional.patch111
8 files changed, 828 insertions, 0 deletions
diff --git a/gnome-base/gnome-settings-daemon/files/3.22.2-udevrulesdir-configure.patch b/gnome-base/gnome-settings-daemon/files/3.22.2-udevrulesdir-configure.patch
new file mode 100644
index 000000000000..d0436ecdc6e1
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.22.2-udevrulesdir-configure.patch
@@ -0,0 +1,48 @@
+From 19394974869513ab4a98d72593dce18f08105983 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Tue, 21 Mar 2017 01:30:52 +0200
+Subject: [PATCH] build: Get udevrulesdir from pkg-config
+
+Use the standard way to find the udev rules directory via pkg-config by default,
+and support specifying it, should it be necessary.
+This is the same logic as in colord.
+---
+ configure.ac | 9 +++++++++
+ plugins/rfkill/Makefile.am | 1 -
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8d4f5cb..5390404 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -135,6 +135,15 @@ fi
+ AM_CONDITIONAL(HAVE_GUDEV, test x$have_gudev = xyes)
+
+ dnl ---------------------------------------------------------------------------
++dnl - Where to install udev rules
++dnl ---------------------------------------------------------------------------
++AC_ARG_WITH([udevrulesdir],
++ AS_HELP_STRING([--with-udevrulesdir=DIR], [Directory for udev rules files]),
++ [],
++ [with_udevrulesdir=$($PKG_CONFIG --variable=udevdir udev)/rules.d])
++AC_SUBST([udevrulesdir], [$with_udevrulesdir])
++
++dnl ---------------------------------------------------------------------------
+ dnl - ALSA integration (default enabled)
+ dnl ---------------------------------------------------------------------------
+ ALSA_PKG=""
+diff --git a/plugins/rfkill/Makefile.am b/plugins/rfkill/Makefile.am
+index fed7adc..05f2c78 100644
+--- a/plugins/rfkill/Makefile.am
++++ b/plugins/rfkill/Makefile.am
+@@ -59,7 +59,6 @@ plugin_in_files = rfkill.gnome-settings-plugin.in
+
+ plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
+
+-udevrulesdir = $(prefix)/lib/udev/rules.d
+ udevrules_DATA = 61-gnome-settings-daemon-rfkill.rules
+
+ EXTRA_DIST = $(plugin_in_files) $(udevrules_DATA)
+--
+2.10.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.24.2-optional.patch b/gnome-base/gnome-settings-daemon/files/3.24.2-optional.patch
new file mode 100644
index 000000000000..64c47a92e3f0
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.24.2-optional.patch
@@ -0,0 +1,145 @@
+From 22f6a45b665e604f874e82a817d45bb976d8c5ae Mon Sep 17 00:00:00 2001
+From: Timo Tambet <ttambet@gmail.com>
+Date: Sat, 25 Feb 2017 14:48:19 +0200
+Subject: [PATCH 1/1] [PATCH] Make colord and wacom support optional
+
+---
+ configure.ac | 56 +++++++++++++++++++++++++++++++----------------
+ plugins/Makefile.am | 9 ++++++--
+ plugins/dummy/Makefile.am | 5 ++++-
+ 3 files changed, 48 insertions(+), 22 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0d169c8f..792195aa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -158,13 +158,23 @@ PKG_CHECK_MODULES(CLIPBOARD,
+ gtk+-x11-3.0
+ x11)
+
+-PKG_CHECK_MODULES(COLOR,
+- colord >= 1.0.2
+- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+- libcanberra-gtk3
+- libgeoclue-2.0 >= $GEOCLUE_REQUIRED_VERSION
+- lcms2 >= $LCMS_REQUIRED_VERSION
+- libnotify)
++AC_ARG_ENABLE([color],
++ AS_HELP_STRING([--disable-color],
++ [turn off color plugin]),
++ [],
++ [enable_color=yes])
++
++AS_IF([test "$enable_color" = "yes"],
++ [PKG_CHECK_MODULES(COLOR,
++ colord >= 1.0.2
++ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
++ libcanberra-gtk3
++ libgeoclue-2.0 >= $GEOCLUE_REQUIRED_VERSION
++ lcms2 >= $LCMS_REQUIRED_VERSION
++ libnotify)
++ AC_DEFINE(HAVE_COLOR, 1, [Define if color plugin is enabled])
++ ])
++AM_CONDITIONAL(BUILD_COLOR, test "x$enable_color" = "xyes")
+
+ PKG_CHECK_MODULES(DATETIME,
+ libnotify >= $LIBNOTIFY_REQUIRED_VERSION
+@@ -268,23 +278,31 @@ case $host_os in
+ if test "$host_cpu" = s390 -o "$host_cpu" = s390x; then
+ have_wacom=no
+ else
+- if test x$enable_gudev != xno; then
+- LIBWACOM_PKG="libwacom >= $LIBWACOM_REQUIRED_VERSION"
+- PKG_CHECK_MODULES(LIBWACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION])
+- PKG_CHECK_MODULES(WACOM, [gtk+-3.0 pango >= $PANGO_REQUIRED_VERSION])
+- PKG_CHECK_MODULES(WACOM_OLED, [gudev-1.0])
+- else
++ have_wacom=no
++ AS_IF([test "$enable_gudev" != "no"],
++ [AC_ARG_ENABLE([wacom],
++ AS_HELP_STRING([--disable-wacom],
++ [turn off wacom plugin]),
++ [],
++ [enable_wacom=no]) dnl Default value
++ AS_IF([test "$enable_wacom" = "xyes"],
++ [
++ PKG_CHECK_MODULES(LIBWACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION])
++ PKG_CHECK_MODULES(WACOM, [gtk+-3.0, pango >= $PANGO_REQUIRED_VERSION])
++ PKG_CHECK_MODULES(WACOM_OLED, [gudev-1.0])
++ have_wacom=yes
++ AC_DEFINE_UNQUOTED(HAVE_WACOM, 1, [Define to 1 if wacom support is available])
++ ])
++ ], [
+ AC_MSG_ERROR([GUdev is necessary to compile Wacom support])
+- fi
+- AC_DEFINE_UNQUOTED(HAVE_WACOM, 1, [Define to 1 if wacom support is available])
+- have_wacom=yes
++ ])
+ fi
+ ;;
+ *)
+- have_wacom=no
+- ;;
++ have_wacom=no
++ ;;
+ esac
+-AM_CONDITIONAL(HAVE_WACOM, test x$have_wacom = xyes)
++AM_CONDITIONAL(BUILD_WACOM, test x$have_wacom = xyes)
+
+ dnl ---------------------------------------------------------------------------
+ dnl - common
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 9324b406..ee78d6d0 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -4,7 +4,6 @@ enabled_plugins = \
+ a11y-keyboard \
+ a11y-settings \
+ clipboard \
+- color \
+ datetime \
+ dummy \
+ power \
+@@ -22,13 +21,19 @@ enabled_plugins = \
+
+ disabled_plugins = $(NULL)
+
++if BUILD_COLOR
++enabled_plugins += color
++else
++disabled_plugins += color
++endif
++
+ if SMARTCARD_SUPPORT
+ enabled_plugins += smartcard
+ else
+ disabled_plugins += smartcard
+ endif
+
+-if HAVE_WACOM
++if BUILD_WACOM
+ enabled_plugins += wacom
+ else
+ disabled_plugins += wacom
+diff --git a/plugins/dummy/Makefile.am b/plugins/dummy/Makefile.am
+index cb5856cf..06ac595a 100644
+--- a/plugins/dummy/Makefile.am
++++ b/plugins/dummy/Makefile.am
+@@ -22,10 +22,13 @@ gsd_dummy_LDADD = $(DUMMY_LIBS) $(top_builddir)/gnome-settings-daemon/libgsd.la
+ desktopdir = $(sysconfdir)/xdg/autostart
+
+ desktop_DATA =
++if !BUILD_COLOR
++desktop_DATA += org.gnome.SettingsDaemon.Color.desktop
++endif
+ if !SMARTCARD_SUPPORT
+ desktop_DATA += org.gnome.SettingsDaemon.Smartcard.desktop
+ endif
+-if !HAVE_WACOM
++if !BUILD_WACOM
+ desktop_DATA += org.gnome.SettingsDaemon.Wacom.desktop
+ endif
+ if !BUILD_PRINT_NOTIFICATIONS
+--
+2.11.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.24.2-reduce-memory-usage.patch b/gnome-base/gnome-settings-daemon/files/3.24.2-reduce-memory-usage.patch
new file mode 100644
index 000000000000..9e683b06d3ba
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.24.2-reduce-memory-usage.patch
@@ -0,0 +1,177 @@
+From 386f456eda7a027dfc706ebb675602d6f067f5c6 Mon Sep 17 00:00:00 2001
+From: Christian Hergert <chergert@redhat.com>
+Date: Mon, 27 Mar 2017 00:17:59 -0700
+Subject: [PATCH 5/5] common: avoid loading Adwaita CSS theme into memory
+
+The various Gtk programs are not dependent on any specific theme being
+loaded. Therefore, the parsing the Adwaita CSS theme (which is quite a
+detailed theme) is unnecessary and a few MB of overhead to each gsd
+subprocess.
+
+By setting the GTK_THEME environment variable in main() and providing an
+alternate CSS file (which is empty), we can force Gtk to never load the
+default theme, but instead our empty theme. This is important as otherwise
+GtkSettings can force-load Adwaita upon first use, and that fragments the
+heap.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=780555
+---
+ configure.ac | 1 +
+ plugins/common/Makefile.am | 10 ++++++++++
+ plugins/common/Makefile.am.gresources | 34 ++++++++++++++++++++++++++++++++++
+ plugins/common/daemon-skeleton-gtk.h | 28 ++++++++++++++++++++++++++++
+ plugins/common/gsd.gresources.xml | 6 ++++++
+ plugins/common/gtk.css | 0
+ 6 files changed, 79 insertions(+)
+ create mode 100644 plugins/common/Makefile.am.gresources
+ create mode 100644 plugins/common/gsd.gresources.xml
+ create mode 100644 plugins/common/gtk.css
+
+diff --git a/configure.ac b/configure.ac
+index 475821d..df86831 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -73,6 +73,7 @@ AC_SUBST([GSD_PLUGIN_LDFLAGS])
+
+ AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
+ AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums])
++AC_PATH_PROG([GLIB_COMPILE_RESOURCES], [glib-compile-resources])
+
+ LT_LIB_M
+ AC_SUBST(LIBM)
+diff --git a/plugins/common/Makefile.am b/plugins/common/Makefile.am
+index 239c601..706be12 100644
+--- a/plugins/common/Makefile.am
++++ b/plugins/common/Makefile.am
+@@ -33,6 +33,8 @@ libcommon_la_SOURCES = \
+ gsd-device-mapper.h \
+ gsd-input-helper.c \
+ gsd-input-helper.h \
++ gsd-resources.c \
++ gsd-resources.h \
+ gsd-settings-migrate.c \
+ gsd-settings-migrate.h \
+ gsd-shell-helper.c \
+@@ -68,3 +70,11 @@ EXTRA_DIST = $(scripts_DATA) daemon-skeleton.h daemon-skeleton-gtk.h
+
+ CLEANFILES = \
+ $(GSD_COMMON_ENUM_FILES)
++
++DISTCLEANFILES =
++
++glib_resources_c = gsd-resources.c
++glib_resources_h = gsd-resources.h
++glib_resources_xml = gsd.gresources.xml
++glib_resources_namespace = gsd
++include Makefile.am.gresources
+diff --git a/plugins/common/Makefile.am.gresources b/plugins/common/Makefile.am.gresources
+new file mode 100644
+index 0000000..1441d0e
+--- /dev/null
++++ b/plugins/common/Makefile.am.gresources
+@@ -0,0 +1,34 @@
++resources_xml=$(addprefix $(srcdir)/,$(glib_resources_xml))
++resources_srcdir=$(dir $(resources_xml))
++
++DISTCLEANFILES += $(glib_resources_h) $(glib_resources_c)
++BUILT_SOURCES += $(glib_resources_h) $(glib_resources_c)
++CLEANFILES += stamp-resources $(glib_resources_c) $(glib_resources_h)
++EXTRA_DIST += \
++ $(glib_resources_xml) \
++ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(resources_srcdir) --generate-dependencies $(resources_xml)) \
++ $(NULL)
++
++stamp-resources: $(glib_resources_c) $(resources_xml)
++ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) \
++ --target=xgen-gr.h \
++ --sourcedir=$(resources_srcdir) \
++ --generate-header \
++ --c-name $(glib_resources_namespace) \
++ $(resources_xml) \
++ && (cmp -s xgen-gr.h $(glib_resources_h) || cp -f xgen-gr.h $(glib_resources_h)) \
++ && rm -f xgen-gr.h \
++ && echo timestamp > $(@F)
++
++$(glib_resources_h): stamp-resources
++ @true
++
++$(glib_resources_c): $(resources_xml) $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(resources_srcdir) --generate-dependencies $(resources_xml))
++ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) \
++ --target=xgen-gr.c \
++ --sourcedir=$(resources_srcdir) \
++ --generate-source \
++ --c-name $(glib_resources_namespace) \
++ $(resources_xml) \
++ && (cmp -s xgen-gr.c $(glib_resources_c) || cp -f xgen-gr.c $(glib_resources_c)) \
++ && rm -f xgen-gr.c
+diff --git a/plugins/common/daemon-skeleton-gtk.h b/plugins/common/daemon-skeleton-gtk.h
+index 3bfd618..3ba0422 100644
+--- a/plugins/common/daemon-skeleton-gtk.h
++++ b/plugins/common/daemon-skeleton-gtk.h
+@@ -163,6 +163,30 @@ register_with_gnome_session (void)
+ NULL);
+ }
+
++static void
++set_empty_gtk_theme (gboolean set)
++{
++ static char *old_gtk_theme = NULL;
++
++ if (set) {
++ /* Override GTK_THEME to reduce overhead of CSS engine. By using
++ * GTK_THEME environment variable, GtkSettings is not allowed to
++ * initially parse the Adwaita theme.
++ *
++ * https://bugzilla.gnome.org/show_bug.cgi?id=780555 */
++ old_gtk_theme = g_strdup (g_getenv ("GTK_THEME"));
++ g_setenv ("GTK_THEME", "Disabled", TRUE);
++ } else {
++ /* GtkSettings has loaded, so we can drop GTK_THEME used to initialize
++ * our internal theme. Only the main thread accesses the GTK_THEME
++ * environment variable, so this is safe to release. */
++ if (old_gtk_theme != NULL)
++ g_setenv ("GTK_THEME", old_gtk_theme, TRUE);
++ else
++ g_unsetenv ("GTK_THEME");
++ }
++}
++
+ int
+ main (int argc, char **argv)
+ {
+@@ -172,6 +196,8 @@ main (int argc, char **argv)
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
+
++ set_empty_gtk_theme (TRUE);
++
+ /* Work around https://bugzilla.gnome.org/show_bug.cgi?id=674885 */
+ g_type_ensure (G_TYPE_DBUS_CONNECTION);
+ g_type_ensure (G_TYPE_DBUS_PROXY);
+@@ -187,6 +213,8 @@ main (int argc, char **argv)
+ exit (1);
+ }
+
++ set_empty_gtk_theme (FALSE);
++
+ if (verbose)
+ g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
+
+diff --git a/plugins/common/gsd.gresources.xml b/plugins/common/gsd.gresources.xml
+new file mode 100644
+index 0000000..e4ac1cd
+--- /dev/null
++++ b/plugins/common/gsd.gresources.xml
+@@ -0,0 +1,6 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<gresources>
++ <gresource prefix="/org/gtk/libgtk/theme/Disabled">
++ <file>gtk.css</file>
++ </gresource>
++</gresources>
+diff --git a/plugins/common/gtk.css b/plugins/common/gtk.css
+new file mode 100644
+index 0000000..e69de29
+--
+2.10.2
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.24.2-remove-unneeded-gtk-init.patch b/gnome-base/gnome-settings-daemon/files/3.24.2-remove-unneeded-gtk-init.patch
new file mode 100644
index 000000000000..e47ba34c60dc
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.24.2-remove-unneeded-gtk-init.patch
@@ -0,0 +1,77 @@
+From b567ec92d5b3004ad52fa02fb02990fcafb63373 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Mon, 27 Mar 2017 18:47:54 +0200
+Subject: [PATCH 1/3] housekeeping: Don't init GTK+
+
+We don't use it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=780555
+---
+ plugins/housekeeping/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/housekeeping/main.c b/plugins/housekeeping/main.c
+index 5ccd83d..89c12f7 100644
+--- a/plugins/housekeeping/main.c
++++ b/plugins/housekeeping/main.c
+@@ -4,4 +4,4 @@
+ #define MANAGER GsdHousekeepingManager
+ #include "gsd-housekeeping-manager.h"
+
+-#include "daemon-skeleton-gtk.h"
++#include "daemon-skeleton.h"
+--
+2.10.2
+
+
+From 92d45cd2ce2c4f252db21993f30777433ed84623 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Mon, 27 Mar 2017 18:49:35 +0200
+Subject: [PATCH 2/3] print-notifications: Don't init GTK+
+
+We don't use it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=780555
+---
+ plugins/print-notifications/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/print-notifications/main.c b/plugins/print-notifications/main.c
+index 57155d0..a0dd406 100644
+--- a/plugins/print-notifications/main.c
++++ b/plugins/print-notifications/main.c
+@@ -4,4 +4,4 @@
+ #define MANAGER GsdPrintNotificationsManager
+ #include "gsd-print-notifications-manager.h"
+
+-#include "daemon-skeleton-gtk.h"
++#include "daemon-skeleton.h"
+--
+2.10.2
+
+
+From e7e4b2145efebf132f1398da77790849becd7f6b Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Mon, 27 Mar 2017 18:50:01 +0200
+Subject: [PATCH 3/3] wacom: Don't init GTK+
+
+We don't use it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=780555
+---
+ plugins/wacom/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/wacom/main.c b/plugins/wacom/main.c
+index a19a71b..ad1367c 100644
+--- a/plugins/wacom/main.c
++++ b/plugins/wacom/main.c
+@@ -4,4 +4,4 @@
+ #define MANAGER GsdWacomManager
+ #include "gsd-wacom-manager.h"
+
+-#include "daemon-skeleton-gtk.h"
++#include "daemon-skeleton.h"
+--
+2.10.2
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.24.2-udevrulesdir-configure.patch b/gnome-base/gnome-settings-daemon/files/3.24.2-udevrulesdir-configure.patch
new file mode 100644
index 000000000000..16988f945d21
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.24.2-udevrulesdir-configure.patch
@@ -0,0 +1,48 @@
+From 04d399edc26bfa44d6053aba929e0776a193cea8 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Mon, 29 May 2017 00:38:57 +0300
+Subject: [PATCH 1/5] build: Get udevrulesdir from pkg-config
+
+Use the standard way to find the udev rules directory via pkg-config by default,
+and support specifying it, should it be necessary.
+This is the same logic as in colord.
+---
+ configure.ac | 9 +++++++++
+ plugins/rfkill/Makefile.am | 1 -
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1107578..475821d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -104,6 +104,15 @@ fi
+ AM_CONDITIONAL(HAVE_GUDEV, test x$have_gudev = xyes)
+
+ dnl ---------------------------------------------------------------------------
++dnl - Where to install udev rules
++dnl ---------------------------------------------------------------------------
++AC_ARG_WITH([udevrulesdir],
++ AS_HELP_STRING([--with-udevrulesdir=DIR], [Directory for udev rules files]),
++ [],
++ [with_udevrulesdir=$($PKG_CONFIG --variable=udevdir udev)/rules.d])
++AC_SUBST([udevrulesdir], [$with_udevrulesdir])
++
++dnl ---------------------------------------------------------------------------
+ dnl - ALSA integration (default enabled)
+ dnl ---------------------------------------------------------------------------
+ ALSA_PKG=""
+diff --git a/plugins/rfkill/Makefile.am b/plugins/rfkill/Makefile.am
+index 3c5ec47..bfc34c6 100644
+--- a/plugins/rfkill/Makefile.am
++++ b/plugins/rfkill/Makefile.am
+@@ -30,7 +30,6 @@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ org.gnome.SettingsDaemon.Rfkill.desktop: $(desktop_in_files) Makefile
+ $(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
+
+-udevrulesdir = $(prefix)/lib/udev/rules.d
+ udevrules_DATA = 61-gnome-settings-daemon-rfkill.rules
+
+ EXTRA_DIST = $(udevrules_DATA) $(desktop_in_files)
+--
+2.10.2
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.24.3-fix-wayland-build.patch b/gnome-base/gnome-settings-daemon/files/3.24.3-fix-wayland-build.patch
new file mode 100644
index 000000000000..4a06889aaa23
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.24.3-fix-wayland-build.patch
@@ -0,0 +1,53 @@
+From 58403ad7677d98fbb14b020dc4d15c52a695496e Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 18 Aug 2017 09:42:56 +0200
+Subject: [PATCH] Fix build issue when gudev is detected in the absence of
+ wayland
+
+See https://bugs.gentoo.org/show_bug.cgi?id=627966
+---
+ configure.ac | 5 +++++
+ plugins/common/Makefile.am | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 908b3a3a..c89d5e2d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -140,15 +140,20 @@ AC_ARG_ENABLE(wayland,
+ AS_HELP_STRING([--disable-wayland],[Disable wayland support (default: auto)]),
+ enable_wayland=$enableval, enable_wayland=auto)
+ if test x$enable_wayland != xno; then
++ AS_IF([test "$have_udev" = no],
++ [AC_MSG_ERROR([udev is required for Wayland support])])
++
+ PKG_CHECK_MODULES(WAYLAND, wayland-client, have_wayland=yes, have_wayland=no)
+ if test x$have_wayland = xyes; then
+ AC_DEFINE(HAVE_WAYLAND, 1, [Define if libwayland-client is available])
++ GUDEV_PKG="$GUDEV_PKG gdk-wayland-3.0"
+ else
+ if test x$enable_wayland = xyes; then
+ AC_MSG_ERROR([Wayland enabled but not found])
+ fi
+ fi
+ fi
++AM_CONDITIONAL(HAVE_WAYLAND, test x$have_wayland = xyes)
+
+ dnl ================================================================
+ dnl Plugins
+diff --git a/plugins/common/Makefile.am b/plugins/common/Makefile.am
+index 107e4d3b..760f3198 100644
+--- a/plugins/common/Makefile.am
++++ b/plugins/common/Makefile.am
+@@ -40,7 +40,7 @@ libcommon_la_SOURCES = \
+ gsd-shell-helper.c \
+ gsd-shell-helper.h
+
+-if HAVE_GUDEV
++if HAVE_WAYLAND
+ libcommon_la_SOURCES += \
+ gsd-device-manager-udev.c \
+ gsd-device-manager-udev.h
+--
+2.14.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/3.24.3-optional.patch b/gnome-base/gnome-settings-daemon/files/3.24.3-optional.patch
new file mode 100644
index 000000000000..608784c43bb4
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/3.24.3-optional.patch
@@ -0,0 +1,169 @@
+From 9116667b39f7a3ef622b0fd4e09ffa77718fa5c2 Mon Sep 17 00:00:00 2001
+From: Ole Reifschneider <mail@ole-reifschneider.de>
+Date: Tue, 15 Aug 2017 18:51:42 +0200
+Subject: [PATCH 1/6] Make colord and wacom support optional
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+Signed-off-by: Timo Tambet <ttambet@gmail.com>
+Signed-off-by: Yuh-Horng Chen <yhchens@gmail.com>
+---
+ configure.ac | 54 ++++++++++++++++++++++++++++++----------------
+ plugins/Makefile.am | 9 ++++++--
+ plugins/common/Makefile.am | 7 ++++--
+ plugins/dummy/Makefile.am | 5 ++++-
+ 4 files changed, 52 insertions(+), 23 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 73fe91e6..d8778c93 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -158,13 +158,23 @@ PKG_CHECK_MODULES(CLIPBOARD,
+ gtk+-x11-3.0
+ x11)
+
+-PKG_CHECK_MODULES(COLOR,
+- colord >= 1.0.2
+- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+- libcanberra-gtk3
+- libgeoclue-2.0 >= $GEOCLUE_REQUIRED_VERSION
+- lcms2 >= $LCMS_REQUIRED_VERSION
+- libnotify)
++AC_ARG_ENABLE([color],
++ AS_HELP_STRING([--disable-color],
++ [turn off color plugin]),
++ [],
++ [enable_color=yes])
++
++AS_IF([test "$enable_color" = "yes"],
++ [PKG_CHECK_MODULES(COLOR,
++ colord >= 1.0.2
++ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
++ libcanberra-gtk3
++ libgeoclue-2.0 >= $GEOCLUE_REQUIRED_VERSION
++ lcms2 >= $LCMS_REQUIRED_VERSION
++ libnotify)
++ AC_DEFINE(HAVE_COLOR, 1, [Define if color plugin is enabled])
++ ])
++AM_CONDITIONAL(BUILD_COLOR, test "x$enable_color" = "xyes")
+
+ PKG_CHECK_MODULES(DATETIME,
+ libnotify >= $LIBNOTIFY_REQUIRED_VERSION
+@@ -268,23 +278,31 @@ case $host_os in
+ if test "$host_cpu" = s390 -o "$host_cpu" = s390x; then
+ have_wacom=no
+ else
+- if test x$enable_gudev != xno; then
+- LIBWACOM_PKG="libwacom >= $LIBWACOM_REQUIRED_VERSION"
+- PKG_CHECK_MODULES(LIBWACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION])
+- PKG_CHECK_MODULES(WACOM, [gtk+-3.0 pango >= $PANGO_REQUIRED_VERSION])
+- PKG_CHECK_MODULES(WACOM_OLED, [gudev-1.0])
+- else
+- AC_MSG_ERROR([GUdev is necessary to compile Wacom support])
+- fi
+- AC_DEFINE_UNQUOTED(HAVE_WACOM, 1, [Define to 1 if wacom support is available])
+- have_wacom=yes
++ have_wacom=no
++ AS_IF([test "$enable_gudev" != "no"],
++ [AC_ARG_ENABLE([wacom],
++ AS_HELP_STRING([--disable-wacom],
++ [turn off wacom plugin]),
++ [],
++ [enable_wacom=no]) dnl Default value
++ AS_IF([test "$enable_wacom" = "yes"],
++ [
++ PKG_CHECK_MODULES(LIBWACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION])
++ PKG_CHECK_MODULES(WACOM, [gtk+-3.0 pango >= $PANGO_REQUIRED_VERSION])
++ PKG_CHECK_MODULES(WACOM_OLED, [gudev-1.0])
++ have_wacom=yes
++ AC_DEFINE_UNQUOTED(HAVE_WACOM, 1, [Define to 1 if wacom support is available])
++ ])
++ ], [
++ AC_MSG_ERROR([GUdev is necessary to compile Wacom support])
++ ])
+ fi
+ ;;
+ *)
+ have_wacom=no
+ ;;
+ esac
+-AM_CONDITIONAL(HAVE_WACOM, test x$have_wacom = xyes)
++AM_CONDITIONAL(BUILD_WACOM, test x$have_wacom = xyes)
+
+ dnl ---------------------------------------------------------------------------
+ dnl - common
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 9324b406..ee78d6d0 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -4,7 +4,6 @@ enabled_plugins = \
+ a11y-keyboard \
+ a11y-settings \
+ clipboard \
+- color \
+ datetime \
+ dummy \
+ power \
+@@ -22,13 +21,19 @@ enabled_plugins = \
+
+ disabled_plugins = $(NULL)
+
++if BUILD_COLOR
++enabled_plugins += color
++else
++disabled_plugins += color
++endif
++
+ if SMARTCARD_SUPPORT
+ enabled_plugins += smartcard
+ else
+ disabled_plugins += smartcard
+ endif
+
+-if HAVE_WACOM
++if BUILD_WACOM
+ enabled_plugins += wacom
+ else
+ disabled_plugins += wacom
+diff --git a/plugins/common/Makefile.am b/plugins/common/Makefile.am
+index 239c6015..65de4007 100644
+--- a/plugins/common/Makefile.am
++++ b/plugins/common/Makefile.am
+@@ -49,14 +49,17 @@ libcommon_la_CPPFLAGS = \
+ -I$(top_builddir)/gnome-settings-daemon \
+ -I$(top_srcdir)/data/
+
+-libcommon_la_CFLAGS = $(COMMON_CFLAGS)
++libcommon_la_CFLAGS = \
++ $(COMMON_CFLAGS) \
++ $(LIBWACOM_CFLAGS)
+
+ libcommon_la_LDFLAGS = \
+ $(GSD_PLUGIN_LDFLAGS)
+
+ libcommon_la_LIBADD = \
+ $(top_builddir)/gnome-settings-daemon/libgsd.la \
+- $(COMMON_LIBS)
++ $(COMMON_LIBS) \
++ $(LIBWACOM_LIBS)
+
+ libexec_PROGRAMS = gsd-test-input-helper
+
+diff --git a/plugins/dummy/Makefile.am b/plugins/dummy/Makefile.am
+index cb5856cf..d8e8bc4e 100644
+--- a/plugins/dummy/Makefile.am
++++ b/plugins/dummy/Makefile.am
+@@ -25,7 +25,10 @@ desktop_DATA =
+ if !SMARTCARD_SUPPORT
+ desktop_DATA += org.gnome.SettingsDaemon.Smartcard.desktop
+ endif
+-if !HAVE_WACOM
++if !BUILD_COLOR
++desktop_DATA += org.gnome.SettingsDaemon.Color.desktop
++endif
++if !BUILD_WACOM
+ desktop_DATA += org.gnome.SettingsDaemon.Wacom.desktop
+ endif
+ if !BUILD_PRINT_NOTIFICATIONS
+--
+2.14.1
+
diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.22.0-optional.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.22.0-optional.patch
new file mode 100644
index 000000000000..9b5369bb3462
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.22.0-optional.patch
@@ -0,0 +1,111 @@
+From 2aa9a92b06418642339cf27a3df5051f63eb8ddb Mon Sep 17 00:00:00 2001
+From: Ole Reifschneider <mail@ole-reifschneider.de>
+Date: Sat, 11 Apr 2015 23:10:21 +0200
+Subject: [PATCH] Make colord and wacom support optional
+
+---
+ configure.ac | 41 ++++++++++++++++++++++++++++++-----------
+ plugins/Makefile.am | 9 +++++++--
+ 2 files changed, 37 insertions(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6d9408a..628af0e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -245,7 +245,17 @@ dnl ---------------------------------------------------------------------------
+ dnl - color
+ dnl ---------------------------------------------------------------------------
+
+-PKG_CHECK_MODULES(COLOR, [colord >= 1.0.2 gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION libcanberra-gtk3 lcms2 >= $LCMS_REQUIRED_VERSION])
++AC_ARG_ENABLE([color],
++ AS_HELP_STRING([--disable-color],
++ [turn off color plugin]),
++ [],
++ [enable_color=yes])
++
++AS_IF([test "$enable_color" = "yes"],
++ [PKG_CHECK_MODULES(COLOR, [colord >= 1.0.2 gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION libcanberra-gtk3 lcms2 >= $LCMS_REQUIRED_VERSION])
++ AC_DEFINE(HAVE_COLOR, 1, [Define if color plugin is enabled])
++ ])
++AM_CONDITIONAL(BUILD_COLOR, test "x$enable_color" = "xyes")
+
+ dnl ---------------------------------------------------------------------------
+ dnl - datetime
+@@ -270,22 +280,31 @@ case $host_os in
+ if test "$host_cpu" = s390 -o "$host_cpu" = s390x; then
+ have_wacom=no
+ else
+- if test x$enable_gudev != xno; then
+- PKG_CHECK_MODULES(LIBWACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION])
+- PKG_CHECK_MODULES(WACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION x11 xi xtst gudev-1.0 gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION xorg-wacom librsvg-2.0 >= $LIBRSVG_REQUIRED_VERSION libnotify >= $LIBNOTIFY_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION])
+- PKG_CHECK_MODULES(WACOM_OLED, [gudev-1.0])
+- else
+- AC_MSG_ERROR([GUdev is necessary to compile Wacom support])
+- fi
+- AC_DEFINE_UNQUOTED(HAVE_WACOM, 1, [Define to 1 if wacom support is available])
+- have_wacom=yes
++ have_wacom=no
++ AS_IF([test "$enable_gudev" != "no"],
++ [AC_ARG_ENABLE([wacom],
++ AS_HELP_STRING([--disable-wacom],
++ [turn off wacom plugin]),
++ [],
++ [enable_wacom=no]) dnl Default value
++ AS_IF([test "x$enable_wacom" = "xyes"],
++ [
++ PKG_CHECK_MODULES(LIBWACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION])
++ PKG_CHECK_MODULES(WACOM, [libwacom >= $LIBWACOM_REQUIRED_VERSION x11 xi xtst gudev-1.0 gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION xorg-wacom librsvg-2.0 >= $LIBRSVG_REQUIRED_VERSION libnotify >= $LIBNOTIFY_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION])
++ PKG_CHECK_MODULES(WACOM_OLED, [gudev-1.0])
++ have_wacom=yes
++ AC_DEFINE_UNQUOTED(HAVE_WACOM, 1, [Define to 1 if wacom support is available])
++ ])
++ ], [
++ AC_MSG_ERROR([GUdev is necessary to compile Wacom support])
++ ])
+ fi
+ ;;
+ *)
+ have_wacom=no
+ ;;
+ esac
+-AM_CONDITIONAL(HAVE_WACOM, test x$have_wacom = xyes)
++AM_CONDITIONAL(BUILD_WACOM, test x$have_wacom = xyes)
+
+ dnl ==============================================
+ dnl smartcard section
+diff --git a/plugins/Makefile.am b/plugins/Makefile.am
+index 9324b40..ee78d6d 100644
+--- a/plugins/Makefile.am
++++ b/plugins/Makefile.am
+@@ -4,7 +4,6 @@ enabled_plugins = \
+ a11y-keyboard \
+ a11y-settings \
+ clipboard \
+- color \
+ datetime \
+ dummy \
+ power \
+@@ -22,13 +21,19 @@ enabled_plugins = \
+
+ disabled_plugins = $(NULL)
+
++if BUILD_COLOR
++enabled_plugins += color
++else
++disabled_plugins += color
++endif
++
+ if SMARTCARD_SUPPORT
+ enabled_plugins += smartcard
+ else
+ disabled_plugins += smartcard
+ endif
+
+-if HAVE_WACOM
++if BUILD_WACOM
+ enabled_plugins += wacom
+ else
+ disabled_plugins += wacom
+--
+2.10.1
+