[gnome-settings-daemon] dummy: Add support for stub daemons



commit 32e29bc370e7599c3a429b185cbfa0b176e6c7eb
Author: Bastien Nocera <hadess hadess net>
Date:   Tue Oct 4 22:44:07 2016 +0200

    dummy: Add support for stub daemons
    
    So that gnome-session can keep a list of hard-coded gsd daemons for now,
    we'll need to replace some of the daemons with dummy ones.
    
    For each of the daemons that can be disabled, create a .desktop file
    anyway, and launch a gsd-dummy.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=772370

 plugins/common/daemon-skeleton-gtk.h               |    4 ++-
 plugins/common/daemon-skeleton.h                   |    4 ++-
 plugins/dummy/Makefile.am                          |   21 +++++++++++++++++++-
 .../org.gnome.SettingsDaemon.Dummy.desktop.in      |    9 ++++++++
 4 files changed, 35 insertions(+), 3 deletions(-)
---
diff --git a/plugins/common/daemon-skeleton-gtk.h b/plugins/common/daemon-skeleton-gtk.h
index 3601d1e..05d94a2 100644
--- a/plugins/common/daemon-skeleton-gtk.h
+++ b/plugins/common/daemon-skeleton-gtk.h
@@ -28,10 +28,12 @@
 
 static MANAGER *manager = NULL;
 static int timeout = -1;
+static char *dummy_name = NULL;
 static gboolean verbose = FALSE;
 
 static GOptionEntry entries[] = {
         { "exit-time", 0, 0, G_OPTION_ARG_INT, &timeout, "Exit after n seconds time", NULL },
+        { "dummy-name", 0, 0, G_OPTION_ARG_STRING, &dummy_name, "Name when using the dummy daemon", NULL },
         { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Verbose", NULL },
         {NULL}
 };
@@ -121,7 +123,7 @@ register_with_gnome_session (void)
        startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
        g_dbus_proxy_call (proxy,
                           "RegisterClient",
-                          g_variant_new ("(ss)", PLUGIN_NAME, startup_id ? startup_id : ""),
+                          g_variant_new ("(ss)", dummy_name ? dummy_name : PLUGIN_NAME, startup_id ? 
startup_id : ""),
                           G_DBUS_CALL_FLAGS_NONE,
                           -1,
                           NULL,
diff --git a/plugins/common/daemon-skeleton.h b/plugins/common/daemon-skeleton.h
index fdb1c85..be71442 100644
--- a/plugins/common/daemon-skeleton.h
+++ b/plugins/common/daemon-skeleton.h
@@ -27,10 +27,12 @@
 
 static MANAGER *manager = NULL;
 static int timeout = -1;
+static char *dummy_name = NULL;
 static gboolean verbose = FALSE;
 
 static GOptionEntry entries[] = {
         { "exit-time", 0, 0, G_OPTION_ARG_INT, &timeout, "Exit after n seconds time", NULL },
+        { "dummy-name", 0, 0, G_OPTION_ARG_STRING, &dummy_name, "Name when using the dummy daemon", NULL },
         { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Verbose", NULL },
         {NULL}
 };
@@ -121,7 +123,7 @@ register_with_gnome_session (GMainLoop *loop)
        startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
        g_dbus_proxy_call (proxy,
                           "RegisterClient",
-                          g_variant_new ("(ss)", PLUGIN_NAME, startup_id ? startup_id : ""),
+                          g_variant_new ("(ss)", dummy_name ? dummy_name : PLUGIN_NAME, startup_id ? 
startup_id : ""),
                           G_DBUS_CALL_FLAGS_NONE,
                           -1,
                           NULL,
diff --git a/plugins/dummy/Makefile.am b/plugins/dummy/Makefile.am
index 0414439..cb5856c 100644
--- a/plugins/dummy/Makefile.am
+++ b/plugins/dummy/Makefile.am
@@ -19,7 +19,26 @@ gsd_dummy_CPPFLAGS =                 \
 
 gsd_dummy_LDADD = $(DUMMY_LIBS) $(top_builddir)/gnome-settings-daemon/libgsd.la
 
-EXTRA_DIST = $(NULL)
+desktopdir = $(sysconfdir)/xdg/autostart
+
+desktop_DATA =
+if !SMARTCARD_SUPPORT
+desktop_DATA += org.gnome.SettingsDaemon.Smartcard.desktop
+endif
+if !HAVE_WACOM
+desktop_DATA += org.gnome.SettingsDaemon.Wacom.desktop
+endif
+if !BUILD_PRINT_NOTIFICATIONS
+desktop_DATA += org.gnome.SettingsDaemon.PrintNotifications.desktop
+endif
+if !BUILD_RFKILL
+desktop_DATA += org.gnome.SettingsDaemon.Rfkill.desktop
+endif
+
+%.desktop: org.gnome.SettingsDaemon.Dummy.desktop.in Makefile
+       $(AM_V_GEN) PLUGINNAME=`echo $@ | sed 's,.desktop,,'` && sed -e "s|\@pluginname\@|$$PLUGINNAME|" -e 
"s|\@libexecdir\@|$(libexecdir)|" $< > $@
+
+EXTRA_DIST = org.gnome.SettingsDaemon.Dummy.desktop.in
 
 CLEANFILES = $(NULL)
 
diff --git a/plugins/dummy/org.gnome.SettingsDaemon.Dummy.desktop.in 
b/plugins/dummy/org.gnome.SettingsDaemon.Dummy.desktop.in
new file mode 100644
index 0000000..fa80c87
--- /dev/null
+++ b/plugins/dummy/org.gnome.SettingsDaemon.Dummy.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=GNOME Settings Daemon's @pluginname@ replacement plugin
+Exec=@libexecdir@/gsd-dummy --dummy-name=@pluginname@
+OnlyShowIn=GNOME;
+NoDisplay=true
+X-GNOME-Autostart-Phase=Initialization
+X-GNOME-Autostart-Notify=true
+X-GNOME-AutoRestart=true


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]