Accepting request 197800 from home:dimstar:branches:GNOME:Factory

Update to 3.9.91.1 - with patch cleanup

OBS-URL: https://build.opensuse.org/request/show/197800
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-settings-daemon?expand=0&rev=175
This commit is contained in:
Dominique Leuenberger 2013-09-07 13:13:28 +00:00 committed by Git OBS Bridge
parent fc06b6ad4e
commit 678bdcd0c1
8 changed files with 66 additions and 828 deletions

View File

@ -1,133 +0,0 @@
diff --git a/data/gnome-settings-daemon.convert b/data/gnome-settings-daemon.convert
index 9ecc65f..5a6efbc 100644
--- a/data/gnome-settings-daemon.convert
+++ b/data/gnome-settings-daemon.convert
@@ -93,6 +93,9 @@ priority = /apps/gnome_settings_daemon/plugins/smartcard/priority
active = /apps/gnome_settings_daemon/plugins/sound/active
priority = /apps/gnome_settings_daemon/plugins/sound/priority
+[org.gnome.settings-daemon.plugins.updates]
+asked-to-collect-hardware-info = /apps/gnome-packagekit/updater_asked_to_collect_hardware_information
+
[org.gnome.settings-daemon.plugins.xrandr]
active = /apps/gnome_settings_daemon/plugins/xrandr/active
default-configuration-file = /apps/gnome_settings_daemon/xrandr/default_configuration_file
diff --git a/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in b/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
index c09096a..67081e2 100644
--- a/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
+++ b/data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in.in
@@ -120,5 +120,10 @@
<_summary>The filenames on removable media that designate it a software source.</_summary>
<_description>When removable media is inserted, it is checked to see if it contains any important filenames in the root directory. If the filename matches, then an updates check is performed. This allows post-install disks to be used to update running systems.</_description>
</key>
+ <key name="asked-to-collect-hardware-info" type="b">
+ <default>false</default>
+ <_summary>Whether the hardware information collection is asked</_summary>
+ <_description>Whether the hardware information collection is asked</_description>
+ </key>
</schema>
</schemalist>
diff --git a/plugins/updates/gsd-updates-manager.c b/plugins/updates/gsd-updates-manager.c
index 5c193e9..b1abcc5 100644
--- a/plugins/updates/gsd-updates-manager.c
+++ b/plugins/updates/gsd-updates-manager.c
@@ -35,6 +35,10 @@
#include "gsd-updates-common.h"
#include "gnome-settings-profile.h"
+#define GSD_UPDATES_HARDWARE_SEND_ACTION "gsd-updates hardware info - send "
+#define GSD_UPDATES_HARDWARE_DONT_PROMPT_ACTION "gsd-updates hardware info - don't ask again"
+#define GSD_SETTINGS_HARDWARE_ASKED_TO_COLLECT "asked-to-collect-hardware-info"
+
#define GSD_UPDATES_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_UPDATES_MANAGER, GsdUpdatesManagerPrivate))
#define MAX_FAILED_GET_UPDATES 10 /* the maximum number of tries */
@@ -1308,6 +1312,79 @@ on_bus_gotten (GObject *source_object,
NULL);
}
+static void
+gsd_updates_libnotify_cb (NotifyNotification *notification,
+ gchar *action,
+ gpointer data)
+{
+ GsdUpdatesManager *manager = GSD_UPDATES_MANAGER (data);
+
+ if (g_strcmp0 (action, GSD_UPDATES_HARDWARE_SEND_ACTION ) == 0) {
+ gboolean retval = g_spawn_command_line_async ("/usr/bin/smoltGui", NULL);
+ if (!retval) {
+ g_debug ("Failure launching smoltGui");
+ }
+ g_debug ("set %s to TRUE because done", GSD_SETTINGS_HARDWARE_ASKED_TO_COLLECT);
+ g_settings_set_boolean (manager->priv->settings_gsd, GSD_SETTINGS_HARDWARE_ASKED_TO_COLLECT, TRUE);
+ } else if (g_strcmp0 (action, GSD_UPDATES_HARDWARE_DONT_PROMPT_ACTION) == 0) {
+ g_debug ("set %s to TRUE because user said no", GSD_SETTINGS_HARDWARE_ASKED_TO_COLLECT);
+ g_settings_set_boolean (manager->priv->settings_gsd, GSD_SETTINGS_HARDWARE_ASKED_TO_COLLECT, TRUE);
+ } else {
+ g_warning ("unknown action id: %s", action);
+ }
+
+}
+
+static gboolean
+check_for_collect_hardware_information (gpointer *data)
+{
+ GsdUpdatesManager *manager = GSD_UPDATES_MANAGER (data);
+ gboolean asked_to_collect = FALSE;
+
+ NotifyNotification *notification;
+ GError *error = NULL;
+ gchar *body, *summary;
+ //gchar *body2;
+ gboolean ret;
+
+ asked_to_collect = g_settings_get_boolean (manager->priv->settings_gsd, GSD_SETTINGS_HARDWARE_ASKED_TO_COLLECT);
+
+ if (asked_to_collect) {
+ g_debug ("don't collect hardware info because already done");
+ return FALSE;
+ }
+
+ if (! g_file_test ("/var/run/smolt_do_opensuse_run", G_FILE_TEST_EXISTS)) {
+ g_debug ("don't collect hardware info yet until smolt is updated - BNC#450105");
+ return TRUE;
+ }
+ if (! g_file_test ("/usr/bin/smoltGui", G_FILE_TEST_EXISTS)) {
+ g_debug ("don't collect hardware info because smoltGui is not installed");
+ return FALSE;
+ }
+
+ summary = g_strdup_printf ("%s", _("openSUSE Updater"));
+ //body = g_strdup_printf ("%s", _("Driver development is prioritized based on hardware popularity.<br>Please send your system profile to influence this work."));
+ body = g_strdup_printf ("%s", _("Driver development is prioritized based on hardware popularity. Please send your system profile to influence this work."));
+ //body2 = g_markup_escape_text (body, -1);
+ notification = notify_notification_new (summary, body, "help-browser");
+ notify_notification_set_timeout (notification, NOTIFY_EXPIRES_NEVER);
+ notify_notification_set_urgency (notification, NOTIFY_URGENCY_LOW);
+ notify_notification_add_action (notification, GSD_UPDATES_HARDWARE_SEND_ACTION,
+ _("Send now"), gsd_updates_libnotify_cb, (gpointer)manager, NULL);
+ notify_notification_add_action (notification, GSD_UPDATES_HARDWARE_DONT_PROMPT_ACTION,
+ _("Do not show this again"), gsd_updates_libnotify_cb, (gpointer)manager, NULL);
+ ret = notify_notification_show (notification, &error);
+ if (!ret) {
+ g_warning ("error: %s", error->message);
+ g_error_free (error);
+ }
+
+ g_free (summary);
+ g_free (body);
+ return FALSE;
+}
+
gboolean
gsd_updates_manager_start (GsdUpdatesManager *manager,
GError **error)
@@ -1406,6 +1483,8 @@ gsd_updates_manager_start (GsdUpdatesManager *manager,
(GAsyncReadyCallback) on_bus_gotten,
manager);
+ g_timeout_add_seconds (5 * 60, check_for_collect_hardware_information, manager);
+
/* success */
ret = TRUE;
g_debug ("Started updates manager");

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6cee1816b15afae183b71bfd68cf57f55c7458a468656717774f5621e4b3027c
size 1617572

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4e51d4e1d0ca7369c35075b9271a3e24cd33ccdd3e5c851f83e3adc2606b7c1b
size 1660080

View File

@ -1,66 +0,0 @@
Index: plugins/keyboard/gsd-keyboard-xkb.c
===================================================================
--- plugins/keyboard/gsd-keyboard-xkb.c.orig
+++ plugins/keyboard/gsd-keyboard-xkb.c
@@ -317,6 +317,53 @@ show_hide_icon ()
}
}
+static void
+_maybe_add_layout_switcher (GSList *layouts,
+ GSettings *settings_keyboard)
+{
+ gchar **options;
+ gboolean appended;
+
+ /* If yes, we need to make sure there's a way to change the layout
+ * Based on xkl_layout_chooser_add_default_switcher_if_necessary() in
+ * plugins/region/gnome-region-panel-xkbltadd.c
+ * (gnome-control-center) */
+ g_settings_get_strv (settings_keyboard, GKBD_KEYBOARD_CONFIG_KEY_OPTIONS);
+
+ if (options == NULL) {
+ GPtrArray *options_array;
+ gchar *option;
+
+ /* nothing in gconf, get the current options from X */
+ GkbdKeyboardConfig kbd_config;
+
+ gkbd_keyboard_config_init (&kbd_config, xkl_engine);
+ gkbd_keyboard_config_load_from_x_initial (&kbd_config, NULL);
+
+ options_array = g_ptr_array_new ();
+ option = kbd_config.options;
+
+ while (option != NULL) {
+ g_ptr_array_add (options_array, g_strdup (option));
+ option++;
+ }
+ options = g_ptr_array_free (options_array, FALSE);
+
+ gkbd_keyboard_config_term (&kbd_config);
+ }
+
+ appended = FALSE;
+ options = gkbd_keyboard_config_add_default_switch_option_if_necessary (layouts, options, &appended);
+
+ if (appended) {
+ g_settings_set_strv (settings_keyboard,
+ GKBD_KEYBOARD_CONFIG_KEY_OPTIONS,
+ (const gchar *const*)(options));
+ }
+
+ g_strfreev (options);
+}
+
static gboolean
try_activating_xkb_config_if_new (GkbdKeyboardConfig *
current_sys_kbd_config)
@@ -486,6 +533,7 @@ apply_xkb_settings (void)
(gdm_layout));
}
+ _maybe_add_layout_switcher (layouts, settings_keyboard);
g_settings_set_strv (settings_keyboard,
GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
(const gchar *

View File

@ -1,579 +0,0 @@
---
configure.ac | 1
data/gnome-settings-daemon.schemas.in | 23 ++
plugins/Makefile.am | 1
plugins/apport/Makefile.am | 32 +++
plugins/apport/apport.gnome-settings-plugin.in | 8
plugins/apport/gsd-apport-manager.c | 219 +++++++++++++++++++++++++
plugins/apport/gsd-apport-manager.h | 58 ++++++
plugins/apport/gsd-apport-plugin.c | 104 +++++++++++
plugins/apport/gsd-apport-plugin.h | 57 ++++++
9 files changed, 503 insertions(+)
Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -425,6 +425,7 @@ Makefile
gnome-settings-daemon/Makefile
plugins/Makefile
plugins/a11y-keyboard/Makefile
+plugins/apport/Makefile
plugins/background/Makefile
plugins/clipboard/Makefile
plugins/common/Makefile
Index: data/gnome-settings-daemon.schemas.in
===================================================================
--- data/gnome-settings-daemon.schemas.in.orig
+++ data/gnome-settings-daemon.schemas.in
@@ -26,6 +26,29 @@
</schema>
<schema>
+ <key>/schemas/apps/gnome_settings_daemon/plugins/apport/active</key>
+ <applyto>/apps/gnome_settings_daemon/plugins/apport/active</applyto>
+ <owner>gnome-settings-daemon</owner>
+ <type>bool</type>
+ <default>TRUE</default>
+ <locale name="C">
+ <short>Enable Apport monitoring plugin</short>
+ <long>Set to True to enable the plugin to manage Apport crash reports.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gnome_settings_daemon/plugins/apport/priority</key>
+ <applyto>/apps/gnome_settings_daemon/plugins/apport/priority</applyto>
+ <owner>gnome-settings-daemon</owner>
+ <type>int</type>
+ <default>400</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/gnome_settings_daemon/plugins/background/active</key>
<applyto>/apps/gnome_settings_daemon/plugins/background/active</applyto>
<owner>gnome-settings-daemon</owner>
Index: plugins/Makefile.am
===================================================================
--- plugins/Makefile.am.orig
+++ plugins/Makefile.am
@@ -2,6 +2,7 @@ NULL =
enabled_plugins = \
a11y-keyboard \
+ apport \
background \
clipboard \
datetime \
Index: plugins/apport/Makefile.am
===================================================================
--- /dev/null
+++ plugins/apport/Makefile.am
@@ -0,0 +1,32 @@
+plugin_LTLIBRARIES = libapport.la
+
+libapport_la_SOURCES = \
+ gsd-apport-manager.c \
+ gsd-apport-manager.h \
+ gsd-apport-plugin.c \
+ gsd-apport-plugin.h
+
+libapport_la_CPPFLAGS = \
+ -I$(top_srcdir)/gnome-settings-daemon \
+ -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
+ $(AM_CPPFLAGS)
+
+libapport_la_CFLAGS = \
+ $(SETTINGS_PLUGIN_CFLAGS) \
+ $(AM_CFLAGS)
+
+libapport_la_LDFLAGS = $(GSD_PLUGIN_LDFLAGS)
+
+libapport_la_LIBADD = $(SETTINGS_PLUGIN_LIBS)
+
+plugin_in_files = apport.gnome-settings-plugin.in
+
+plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
+
+EXTRA_DIST = $(plugin_in_files)
+
+CLEANFILES = $(plugin_DATA)
+
+DISTCLEANFILES = (plugin_DATA)
+
+@GSD_INTLTOOL_PLUGIN_RULE@
Index: plugins/apport/apport.gnome-settings-plugin.in
===================================================================
--- /dev/null
+++ plugins/apport/apport.gnome-settings-plugin.in
@@ -0,0 +1,8 @@
+[GNOME Settings Plugin]
+Module=apport
+IAge=0
+_Name=Apport
+_Description=Checks for new Apport crash reports and launches a handling application
+Authors=Nikolay Derkach
+Copyright=Copyright © 2008 Nikolay Derkach
+Website=
Index: plugins/apport/gsd-apport-manager.c
===================================================================
--- /dev/null
+++ plugins/apport/gsd-apport-manager.c
@@ -0,0 +1,220 @@
+/*
+ * Copyright (C) 2008 Nikolay Derkach <nderkach@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+/* Some code was taken from update-notifier */
+
+#include <glib/gi18n.h>
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "gnome-settings-profile.h"
+#include "gsd-apport-manager.h"
+
+#define GSD_APPORT_MANAGER_GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_APPORT_MANAGER, \
+ GsdApportManagerPrivate))
+
+#define CRASHREPORT_REPORT_APP "apport-gtk"
+#define CRASHREPORT_HELPER "apport-checkreports"
+
+struct GsdApportManagerPrivate {
+ GFileMonitor *monitor;
+ guint monitor_id;
+ GtkStatusIcon *ti;
+};
+
+static void gsd_apport_manager_class_init(GsdApportManagerClass *klass);
+static void gsd_apport_manager_init(GsdApportManager *apport_manager);
+
+G_DEFINE_TYPE (GsdApportManager, gsd_apport_manager, G_TYPE_OBJECT)
+
+static gpointer manager_object = NULL;
+
+
+static gboolean
+run_apport (void)
+{
+ char *error_msg;
+
+ gnome_settings_profile_msg ("fire up the crashreport tool");
+ return g_spawn_command_line_async (CRASHREPORT_REPORT_APP, NULL);
+}
+
+static void
+hide_crash_applet (GtkStatusIcon *ti)
+{
+ gtk_status_icon_set_visible (ti, FALSE);
+}
+
+static gboolean
+crashreport_check (GtkStatusIcon *ti)
+{
+ gboolean crashreports_found;
+ static gboolean first_run = TRUE;
+ gboolean visible;
+ int exitcode;
+
+ gnome_settings_profile_msg ("crashreport_check");
+
+ /* don't do anything if no apport-gtk is installed */
+// if (!g_file_test (CRASHREPORT_REPORT_APP, G_FILE_TEST_IS_EXECUTABLE))
+// return FALSE;
+
+ /* check for (new) reports by calling CRASHREPORT_HELPER
+ and checking the return code */
+
+ if (!g_spawn_command_line_sync (CRASHREPORT_HELPER, NULL, NULL,
+ &exitcode, NULL)) {
+ g_warning ("Can not run %s\n", CRASHREPORT_HELPER);
+ return FALSE;
+ }
+ /* exitcode == 0: reports found, else no reports */
+ crashreports_found = !exitcode ? TRUE : FALSE;
+ visible = gtk_status_icon_get_visible (ti);
+
+ if (crashreports_found && first_run) {
+ gtk_status_icon_set_tooltip (ti, _("Crash report detected"));
+ gtk_status_icon_set_blinking (ti, TRUE);
+ gtk_status_icon_set_visible (ti, TRUE);
+ }
+
+ /* crashreport found and already visible */
+ if (crashreports_found && !first_run) {
+ run_apport ();
+ /* we don't care anymore and hide the icon */
+ crashreports_found = FALSE;
+ }
+
+ /* no crashreports, but visible */
+ if (!crashreports_found && visible) {
+ hide_crash_applet (ti);
+ }
+
+ first_run = FALSE;
+ return TRUE;
+}
+
+static void
+apport_watchdir_changed (GFileMonitor *monitor,
+ GFile *file,
+ GFile *other_file,
+ GFileMonitorEvent event_type,
+ gpointer user_data)
+{
+ GtkStatusIcon *ti = (GtkStatusIcon *)user_data;
+ if (event_type == G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED) {
+ gnome_settings_profile_msg ("G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED");
+ crashreport_check (ti);
+ }
+}
+
+static gboolean
+button_release_cb (GtkStatusIcon *ti)
+{
+ run_apport ();
+ hide_crash_applet (ti);
+ return TRUE;
+}
+
+static gboolean
+trayapplet_create (GtkStatusIcon *ti, const char *name)
+{
+ /* setup widgets */
+ ti = gtk_status_icon_new_from_icon_name (name);
+ gtk_status_icon_set_visible (ti, FALSE);
+
+ g_signal_connect (ti,
+ "activate",
+ G_CALLBACK (button_release_cb),
+ ti);
+
+ /* Check for crashes for the first time */
+ crashreport_check (ti);
+ return TRUE;
+}
+
+gboolean
+gsd_apport_manager_start (GsdApportManager *manager,
+ GError **error)
+{
+ GFile *file;
+ GFileMonitor *m;
+
+ gnome_settings_profile_start ("Starting apport manager");
+
+ /* crashreport detected icon */
+ trayapplet_create (manager->priv->ti, "apport");
+
+ file = g_file_new_for_path (CRASHREPORT_DIR);
+ m = g_file_monitor_directory (file, 0, NULL, NULL);
+ g_object_unref (file);
+
+ if (m) {
+ manager->priv->monitor_id = g_signal_connect (m, "changed", G_CALLBACK (apport_watchdir_changed), manager->priv->ti);
+ manager->priv->monitor = m;
+ } else
+ return FALSE;
+
+ gnome_settings_profile_end (NULL);
+ return TRUE;
+}
+
+
+void
+gsd_apport_manager_stop (GsdApportManager *manager)
+{
+ gnome_settings_profile_start ("Stopping apport manager");
+
+ g_signal_handler_disconnect (manager->priv->monitor, manager->priv->monitor_id);
+ g_file_monitor_cancel (manager->priv->monitor);
+ g_object_unref (manager->priv->monitor);
+
+ gtk_widget_destroy ((GtkWidget *)manager->priv->ti);
+ gnome_settings_profile_end (NULL);
+}
+
+static void
+gsd_apport_manager_class_init (GsdApportManagerClass *klass)
+{
+ g_type_class_add_private (klass, sizeof (GsdApportManagerPrivate));
+}
+
+
+static void
+gsd_apport_manager_init (GsdApportManager *manager)
+{
+ manager->priv = GSD_APPORT_MANAGER_GET_PRIVATE (manager);
+}
+
+
+GsdApportManager *
+gsd_apport_manager_new (void)
+{
+ if (manager_object != NULL) {
+ g_object_ref (manager_object);
+ } else {
+ manager_object = g_object_new (GSD_TYPE_APPORT_MANAGER, NULL);
+ g_object_add_weak_pointer (manager_object,
+ (gpointer *) &manager_object);
+ }
+
+ return GSD_APPORT_MANAGER (manager_object);
+}
Index: plugins/apport/gsd-apport-manager.h
===================================================================
--- /dev/null
+++ plugins/apport/gsd-apport-manager.h
@@ -0,0 +1,58 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Nikolay Derkach <nderkach@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSD_APPORT_MANAGER_H
+#define __GSD_APPORT_MANAGER_H
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define GSD_TYPE_APPORT_MANAGER (gsd_apport_manager_get_type ())
+#define GSD_APPORT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_APPORT_MANAGER, GsdApportManager))
+#define GSD_APPORT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_APPORT_MANAGER, GsdApportManagerClass))
+#define GSD_IS_APPORT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_APPORT_MANAGER))
+#define GSD_IS_APPORT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_APPORT_MANAGER))
+#define GSD_APPORT_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_APPORT_MANAGER, GsdApportManagerClass))
+
+#define CRASHREPORT_DIR "/var/crash/"
+
+typedef struct GsdApportManagerPrivate GsdApportManagerPrivate;
+
+typedef struct {
+ GObject parent;
+ GsdApportManagerPrivate *priv;
+} GsdApportManager;
+
+typedef struct {
+ GObjectClass parent_class;
+} GsdApportManagerClass;
+
+GType gsd_apport_manager_get_type (void);
+
+GsdApportManager* gsd_apport_manager_new (void);
+gboolean gsd_apport_manager_start (GsdApportManager *manager,
+ GError **error);
+void gsd_apport_manager_stop (GsdApportManager *manager);
+
+G_END_DECLS
+
+#endif /* __GSD_APPORT_MANAGER_H */
Index: plugins/apport/gsd-apport-plugin.c
===================================================================
--- /dev/null
+++ plugins/apport/gsd-apport-plugin.c
@@ -0,0 +1,104 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Nikolay Derkach <nderkach@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <glib/gi18n-lib.h>
+#include <gmodule.h>
+
+#include "gnome-settings-plugin.h"
+#include "gsd-apport-plugin.h"
+#include "gsd-apport-manager.h"
+
+struct GsdApportPluginPrivate {
+ GsdApportManager *manager;
+};
+
+#define GSD_APPORT_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_APPORT_PLUGIN, GsdApportPluginPrivate))
+
+GNOME_SETTINGS_PLUGIN_REGISTER (GsdApportPlugin, gsd_apport_plugin)
+
+static void
+gsd_apport_plugin_init (GsdApportPlugin *plugin)
+{
+ plugin->priv = GSD_APPORT_PLUGIN_GET_PRIVATE (plugin);
+
+ g_debug ("GsdApportPlugin initializing");
+
+ plugin->priv->manager = gsd_apport_manager_new ();
+}
+
+static void
+gsd_apport_plugin_finalize (GObject *object)
+{
+ GsdApportPlugin *plugin;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSD_IS_APPORT_PLUGIN (object));
+
+ g_debug ("GsdApportPlugin finalizing");
+
+ plugin = GSD_APPORT_PLUGIN (object);
+
+ g_return_if_fail (plugin->priv != NULL);
+
+ if (plugin->priv->manager != NULL) {
+ g_object_unref (plugin->priv->manager);
+ }
+
+ G_OBJECT_CLASS (gsd_apport_plugin_parent_class)->finalize (object);
+}
+
+static void
+impl_activate (GnomeSettingsPlugin *plugin)
+{
+ gboolean res;
+ GError *error;
+
+ g_debug ("Activating apport plugin");
+
+ error = NULL;
+ res = gsd_apport_manager_start (GSD_APPORT_PLUGIN (plugin)->priv->manager, &error);
+ if (! res) {
+ g_warning ("Unable to start apport manager: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+impl_deactivate (GnomeSettingsPlugin *plugin)
+{
+ g_debug ("Deactivating apport plugin");
+ gsd_apport_manager_stop (GSD_APPORT_PLUGIN (plugin)->priv->manager);
+}
+
+static void
+gsd_apport_plugin_class_init (GsdApportPluginClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass);
+
+ object_class->finalize = gsd_apport_plugin_finalize;
+
+ plugin_class->activate = impl_activate;
+ plugin_class->deactivate = impl_deactivate;
+
+ g_type_class_add_private (klass, sizeof (GsdApportPluginPrivate));
+}
Index: plugins/apport/gsd-apport-plugin.h
===================================================================
--- /dev/null
+++ plugins/apport/gsd-apport-plugin.h
@@ -0,0 +1,57 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Nikolay Derkach <nderkach@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSD_APPORT_PLUGIN_H__
+#define __GSD_APPORT_PLUGIN_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gmodule.h>
+
+#include "gnome-settings-plugin.h"
+
+G_BEGIN_DECLS
+
+#define GSD_TYPE_APPORT_PLUGIN (gsd_apport_plugin_get_type ())
+#define GSD_APPORT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_APPORT_PLUGIN, GsdApportPlugin))
+#define GSD_APPORT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_APPORT_PLUGIN, GsdApportPluginClass))
+#define GSD_IS_APPORT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_APPORT_PLUGIN))
+#define GSD_IS_APPORT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_APPORT_PLUGIN))
+#define GSD_APPORT_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_APPORT_PLUGIN, GsdApportPluginClass))
+
+typedef struct GsdApportPluginPrivate GsdApportPluginPrivate;
+
+typedef struct {
+ GnomeSettingsPlugin parent;
+ GsdApportPluginPrivate *priv;
+} GsdApportPlugin;
+
+typedef struct {
+ GnomeSettingsPluginClass parent_class;
+} GsdApportPluginClass;
+
+GType gsd_apport_plugin_get_type (void) G_GNUC_CONST;
+
+/* All the plugins must implement this function */
+G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module);
+
+G_END_DECLS
+
+#endif /* __GSD_APPORT_PLUGIN_H__ */

View File

@ -1,30 +0,0 @@
commit 6b745854b14feccf1d9950f1e3c124136cebfeaf
Author: Dominique Leuenberger <dimstar@opensuse.org>
Date: Tue Aug 20 22:22:18 2013 +0200
printer: allow building against cups 1.5
https://bugzilla.gnome.org/show_bug.cgi?id=706442
diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
index 33eadae..6cd7d21 100644
--- a/plugins/print-notifications/gsd-print-notifications-manager.c
+++ b/plugins/print-notifications/gsd-print-notifications-manager.c
@@ -62,6 +62,17 @@
#define ippGetStatusCode(ipp) ipp->request.status.status_code
#define ippGetInteger(attr, element) attr->values[element].integer
#define ippGetString(attr, element, language) attr->values[element].string.text
+#define ippGetName(attr) attr->name
+#define ippGetCount(attr) attr->num_values
+#define ippGetBoolean(attr, index) attr->values[index].boolean
+
+static ipp_attribute_t *
+ippNextAttribute (ipp_t *ipp)
+{
+ if (!ipp || !ipp->current)
+ return (NULL);
+ return (ipp->current = ipp->current->next);
+}
#endif
struct GsdPrintNotificationsManagerPrivate

View File

@ -1,3 +1,57 @@
-------------------------------------------------------------------
Fri Sep 6 17:56:00 UTC 2013 - dimstar@opensuse.org
- Drop gnome-packagekit-fate302445.patch (was marked for rebase):
since smolt was dropped from openSUSE back in October 2012, there
is no need to ever revive this patch.
- Drop gnome-settings-daemon-apport-monitor.patch (was marked for
rebase): the patch was disable prior to GNOME 3.0 back in 2010
and nobody cared.
- Drop gnome-settings-daemon-add-layout-switcher.patch (was marked
for rebase): Has not been applied since version 3.0.0 and the
upstream bug is marked as fixed.
-------------------------------------------------------------------
Wed Sep 4 07:13:34 UTC 2013 - dimstar@opensuse.org
- Update to version 3.9.91.1:
+ Datetime:
- Adapt to geoclue 1.99.3 api changes.
+ Screensaver:
- Support KDE variant of interface.
- Fix a crash.
- Add pkgconfig(geoclue-2.0) BuildRequires: needed to identify the
geoclue 1.99.3 API presence.
-------------------------------------------------------------------
Tue Sep 3 06:42:09 UTC 2013 - dimstar@opensuse.org
- Update to version 3.9.91:
+ Datetime:
- Avoid popping up polkit password prompts.
- Display notifications on timezone changes.
- Use reverse geocoding fror country detection.
- Use libgweather timezone info too.
+ Power:
- Fix error handling in dbus API, avoiding assertions.
+ Printer:
- Allow building against cups 1.5.
+ Remote display:
- Disable animations in more situations.
+ Rfkill:
- Fix a crash.
+ Smartcard:
- Ignore softtoken.
+ Updates:
- Add a test application.
- Notify about available offline updates.
+ XSettings:
- Keep middle-click paste enabled for now.
- Add pkgconfig(geocode-glib-1.0), pkgconfig(gweather-3.0) and
pkgconfig(polkit-gobject-1.0) BuildRequires: dependencies for
the datetime panel updates.
- Drop gnome-settings-daemon-cups-1.5.patch: fixed upstream.
-------------------------------------------------------------------
Tue Aug 20 19:28:12 UTC 2013 - dimstar@opensuse.org

View File

@ -27,7 +27,7 @@
%define with_smartcard 1
Name: gnome-settings-daemon
Version: 3.9.90
Version: 3.9.91.1
Release: 0
Summary: Settings daemon for the GNOME desktop
License: GPL-2.0+
@ -36,22 +36,14 @@ Url: http://www.gnome.org
Source: http://download.gnome.org/sources/gnome-settings-daemon/3.9/%{name}-%{version}.tar.xz
# PATCH-NEEDS-REBASE gnome-settings-daemon-system-proxy-configuration.diff
Patch2: gnome-settings-daemon-system-proxy-configuration.diff
# PATCH-NEEDS-REBASE gnome-settings-daemon-apport-monitor.patch bnc439203 jblunck@novell.com -- Add apport monitoring plugin. (was PATCH-FEATURE-UPSTREAM)
Patch8: gnome-settings-daemon-apport-monitor.patch
# PATCH-FEATURE-UPSTREAM gnome-settings-daemon-bnc462640-mute-action.patch bnc462640 bgo572365 vuntz@novell.com -- Mute button should always mute sound instead of toggling mute status
Patch10: gnome-settings-daemon-bnc462640-mute-action.patch
# PATCH-NEEDS-REBASE PATCH-FIX-UPSTREAM gnome-settings-daemon-add-layout-switcher.patch bgo603806 vuntz@opensuse.org -- Add a layout switching combo if needed; the real fix implies some API change in libgnomekbd (see upstream bug)
Patch13: gnome-settings-daemon-add-layout-switcher.patch
# PATCH-NEEDS-REBASE PATCH-FEATURE-OPENSUSE gnome-packagekit-fate302445.patch fate 302445
Patch14: gnome-packagekit-fate302445.patch
# PATCH-NEEDS-REBASE PATCH-MISSING-TAG -- See http://en.opensuse.org/Packaging/Patches
Patch15: gnome-packagekit-BNC383261.patch
# PATCH-FIX-OPENSUSE gnome-settings-daemon-stop-reload-proxy-settings.patch bnc689592#c1, bnc#538353 glin@suse.com -- Stop g-s-d poping up the authentication dialog for reloading the proxy settings
Patch17: gnome-settings-daemon-stop-reload-proxy-settings.patch
# PATCH-FEATURE-UPSTREAM gnome-settings-daemon-notify-idle-resumed.patch bnc#439018 bnc#708182 bgo#575467 hpj@suse.com -- notify user about auto suspend when returning from sleep
Patch19: gnome-settings-daemon-notify-idle-resumed.patch
# PATCH-FIX-UPSTREAM gnome-settings-daemon-cups-1.5.patch bgo#706442 dimstar@opensuse.org -- Fix building against CUPS 1.5.
Patch20: gnome-settings-daemon-cups-1.5.patch
BuildRequires: cups-devel
BuildRequires: fdupes
BuildRequires: gnome-common
@ -66,11 +58,14 @@ BuildRequires: polkit
BuildRequires: pkgconfig(colord) >= 1.0.2
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gconf-2.0) >= 2.6.1
BuildRequires: pkgconfig(glib-2.0) >= 2.35.3
BuildRequires: pkgconfig(geoclue-2.0)
BuildRequires: pkgconfig(geocode-glib-1.0) >= 0.99.3
BuildRequires: pkgconfig(glib-2.0) >= 2.37.7
BuildRequires: pkgconfig(gnome-desktop-3.0) >= 3.9.0
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= 3.7.2.1
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= 3.9.91
BuildRequires: pkgconfig(gtk+-3.0) >= 3.7.8
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(gweather-3.0) >= 3.9.5
%if %{with_ibus}
BuildRequires: pkgconfig(ibus-1.0) >= 1.4.99
%endif
@ -88,6 +83,7 @@ BuildRequires: pkgconfig(libwacom) >= 0.7
BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(packagekit-glib2) >= 0.7.4
BuildRequires: pkgconfig(pango) >= 1.20.0
BuildRequires: pkgconfig(polkit-gobject-1) >= 0.103
BuildRequires: pkgconfig(upower-glib) >= 0.9.11
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
@ -136,17 +132,11 @@ translation-update-upstream
# Disabled because of the non-rebased patches
#gnome-patch-translation-prepare
#%%patch2 -p0
#%%patch8 -p0
%patch10 -p0
# PATCH-NEEDS-REBASE
#%%patch13 -p0
# PATCH-NEEDS-REBASE
#%%patch14 -p0
# PATCH-NEEDS-REBASE
#%%patch15 -p0
%patch17 -p1
%patch19 -p1
%patch20 -p1
%build
autoreconf -f -i
@ -216,6 +206,7 @@ rm -rf %{buildroot}
%{_libdir}/gnome-settings-daemon-3.0/libclipboard.so
%{_libdir}/gnome-settings-daemon-3.0/libcolor.so
%{_libdir}/gnome-settings-daemon-3.0/libcursor.so
%{_libdir}/gnome-settings-daemon-3.0/libdatetime.so
%{_libdir}/gnome-settings-daemon-3.0/libgsdwacom.so
%{_libdir}/gnome-settings-daemon-3.0/libhousekeeping.so
%{_libdir}/gnome-settings-daemon-3.0/libkeyboard.so
@ -239,6 +230,7 @@ rm -rf %{buildroot}
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.peripherals.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.peripherals.wacom.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.color.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.datetime.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.housekeeping.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.keyboard.gschema.xml