summaryrefslogtreecommitdiff
path: root/community/cinnamon-settings-daemon
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-04-15 03:26:32 +0000
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-04-15 03:26:32 +0000
commitad45d1982b97faa9372d99e51daa687c7c09de7d (patch)
treeaf490221f2b733b8f0cf68f3898566d5049c3ab4 /community/cinnamon-settings-daemon
parent7c266ff5a9e1f533fd8bd8c2fbbcc05df350dcd3 (diff)
Tue Apr 15 03:22:01 UTC 2014
Diffstat (limited to 'community/cinnamon-settings-daemon')
-rw-r--r--community/cinnamon-settings-daemon/PKGBUILD17
-rw-r--r--community/cinnamon-settings-daemon/fix-lock-on-suspend.patch109
-rw-r--r--community/cinnamon-settings-daemon/remove_obsolete_battery_recall_code.patch242
-rw-r--r--community/cinnamon-settings-daemon/upower_deprecated.patch81
4 files changed, 447 insertions, 2 deletions
diff --git a/community/cinnamon-settings-daemon/PKGBUILD b/community/cinnamon-settings-daemon/PKGBUILD
index 4dbfb4e75..d9e808e4b 100644
--- a/community/cinnamon-settings-daemon/PKGBUILD
+++ b/community/cinnamon-settings-daemon/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 107735 2014-03-19 00:56:51Z bgyorgy $
+# $Id: PKGBUILD 109437 2014-04-14 20:20:10Z jgc $
# Maintainer: Alexandre Filgueira (faidoc) <alexfilgueira@antergos.com>
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgname=cinnamon-settings-daemon
pkgver=2.0.8
-pkgrel=4
+pkgrel=6
pkgdesc="The Cinnamon Settings daemon"
arch=('i686' 'x86_64')
license=('GPL')
@@ -16,11 +16,17 @@ url="https://github.com/linuxmint/cinnamon-settings-daemon"
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-settings-daemon/archive/${pkgver}.tar.gz"
keyboard.patch
systemd-support.patch
+ upower_deprecated.patch
+ remove_obsolete_battery_recall_code.patch
+ fix-lock-on-suspend.patch
automount-plugin.patch
dpms.patch)
sha256sums=('6889f021acab93d146c78fe8aa540a83a12260232e1ea5f697037a7c94c877fd'
'3c05b978cb414c8fc1530f211bab58627a64ac9c156630c9d486f5926a85109c'
'28c002628bc97e8b4a2aa7e8a8141bcc8388b250a6c3ebc09a640e110ae815a9'
+ 'cde7cdfe5222796d651df542526fcad2cbf0bb3a6001b31084586d1232ee6771'
+ '4c1d917a7a70e16a5307f767c1494fa59cbc5168d9293ad66b56e17a74e8baf1'
+ '1292c5c6a5fbf7f3db462bb8b71a75e651ea165cbd6adfd334776ccb76bdcdba'
'4fc2b3a354b53d41d92d7f95d175a6a18382330353a0579d29c2d33b9400a837'
'194cc704320a2d6be636191e96f62514f2b5f97655c200991b5690fbf3006026')
@@ -33,6 +39,13 @@ prepare() {
# Add systemd support for power and media-keys plugins
patch -Np1 -i ../systemd-support.patch
+ # Port to upower 0.99
+ patch -Np1 -i ../upower_deprecated.patch
+ patch -Np1 -i ../remove_obsolete_battery_recall_code.patch
+
+ # Fix regressions in the previous patches
+ patch -Np1 -i ../fix-lock-on-suspend.patch
+
# Turn automount helper into a plugin
patch -Np1 -i ../automount-plugin.patch
diff --git a/community/cinnamon-settings-daemon/fix-lock-on-suspend.patch b/community/cinnamon-settings-daemon/fix-lock-on-suspend.patch
new file mode 100644
index 000000000..46b1b1a57
--- /dev/null
+++ b/community/cinnamon-settings-daemon/fix-lock-on-suspend.patch
@@ -0,0 +1,109 @@
+From 45ba88f2798dd66a289953d76cee7ea1c28fa088 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Fri, 11 Apr 2014 16:09:05 +0200
+Subject: [PATCH 1/3] Make lock-on-suspend independent form lock-enabled
+
+This was a regression in my logind support patch.
+---
+ plugins/power/csd-power-manager.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index 8db93b5..ea626a5 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -3678,7 +3678,15 @@ handle_suspend_actions (CsdPowerManager *manager)
+ do_lock = g_settings_get_boolean (manager->priv->settings,
+ "lock-on-suspend");
+ if (do_lock)
+- lock_screensaver (manager);
++ g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
++ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
++ NULL,
++ GS_DBUS_NAME,
++ GS_DBUS_PATH,
++ GS_DBUS_INTERFACE,
++ NULL,
++ sleep_cb_screensaver_proxy_ready_cb,
++ manager);
+
+ /* lift the delay inhibit, so logind can proceed */
+ uninhibit_suspend (manager);
+--
+1.9.1
+
+
+From 898f866fed431f27b2203566b240ea2280260e83 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Fri, 11 Apr 2014 16:29:59 +0200
+Subject: [PATCH 2/3] Lock screen when lid closed
+
+This was a regression in the upower-1.0 patch.
+---
+ plugins/power/csd-power-manager.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index ea626a5..e28faae 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -2146,10 +2146,10 @@ suspend_with_lid_closed (CsdPowerManager *manager)
+ "lid-close-ac-action");
+ }
+
+-#if ! UP_CHECK_VERSION(0,99,0)
+ /* check we won't melt when the lid is closed */
+ if (action_type != CSD_POWER_ACTION_SUSPEND &&
+ action_type != CSD_POWER_ACTION_HIBERNATE) {
++#if ! UP_CHECK_VERSION(0,99,0)
+ if (up_client_get_lid_force_sleep (manager->priv->up_client)) {
+ g_warning ("to prevent damage, now forcing suspend");
+ do_power_action_type (manager, CSD_POWER_ACTION_SUSPEND);
+@@ -2158,8 +2158,10 @@ suspend_with_lid_closed (CsdPowerManager *manager)
+ /* maybe lock the screen if the lid is closed */
+ lock_screensaver (manager);
+ }
+- }
++#else
++ lock_screensaver (manager);
+ #endif
++ }
+
+ /* ensure we turn the panel back on after resume */
+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+--
+1.9.1
+
+
+From 5dfc5f50b762c431ed7f9da2d07d08e1fd4f1376 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Fri, 11 Apr 2014 16:46:52 +0200
+Subject: [PATCH 3/3] Really fix the error with merge
+
+---
+ plugins/power/csd-power-manager.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index e28faae..a72f645 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -3730,6 +3730,7 @@ handle_resume_actions (CsdPowerManager *manager)
+ inhibit_suspend (manager);
+ }
+
++#if ! UP_CHECK_VERSION(0,99,0)
+ static void
+ upower_notify_sleep_cb (UpClient *client,
+ UpSleepKind sleep_kind,
+@@ -3745,6 +3746,7 @@ upower_notify_resume_cb (UpClient *client,
+ {
+ handle_resume_actions (manager);
+ }
++#endif
+
+ static void
+ logind_proxy_signal_cb (GDBusProxy *proxy,
+--
+1.9.1
+
diff --git a/community/cinnamon-settings-daemon/remove_obsolete_battery_recall_code.patch b/community/cinnamon-settings-daemon/remove_obsolete_battery_recall_code.patch
new file mode 100644
index 000000000..fca763689
--- /dev/null
+++ b/community/cinnamon-settings-daemon/remove_obsolete_battery_recall_code.patch
@@ -0,0 +1,242 @@
+diff -uNrp a/data/org.cinnamon.settings-daemon.plugins.power.gschema.xml.in.in b/data/org.cinnamon.settings-daemon.plugins.power.gschema.xml.in.in
+--- a/data/org.cinnamon.settings-daemon.plugins.power.gschema.xml.in.in 2013-11-03 15:50:04.000000000 +0000
++++ b/data/org.cinnamon.settings-daemon.plugins.power.gschema.xml.in.in 2013-11-09 12:39:50.907354689 +0000
+@@ -141,11 +141,6 @@
+ <_summary>Whether to use time-based notifications</_summary>
+ <_description>If time based notifications should be used. If set to false, then the percentage change is used instead, which may fix a broken ACPI BIOS.</_description>
+ </key>
+- <key name="notify-perhaps-recall" type="b">
+- <default>true</default>
+- <_summary>If we should show the recalled battery warning for a broken battery</_summary>
+- <_description>If we should show the recalled battery warning for a broken battery. Set this to false only if you know your battery is okay.</_description>
+- </key>
+ <key name="lock-on-suspend" type="b">
+ <default>false</default>
+ <_summary>If the computer should lock when entering suspend mode</_summary>
+diff -uNrp a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+--- a/plugins/power/csd-power-manager.c 2013-11-03 15:50:04.000000000 +0000
++++ b/plugins/power/csd-power-manager.c 2013-11-09 12:38:55.358363329 +0000
+@@ -75,7 +75,6 @@
+ #define CSD_POWER_MANAGER_NOTIFY_TIMEOUT_LONG 30 * 1000 /* ms */
+
+ #define CSD_POWER_MANAGER_CRITICAL_ALERT_TIMEOUT 5 /* seconds */
+-#define CSD_POWER_MANAGER_RECALL_DELAY 30 /* seconds */
+ #define CSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT 30 /* seconds */
+
+ /* Keep this in sync with gnome-shell */
+@@ -930,146 +929,9 @@ out:
+ return device;
+ }
+
+-typedef struct {
+- CsdPowerManager *manager;
+- UpDevice *device;
+-} CsdPowerManagerRecallData;
+-
+-static void
+-device_perhaps_recall_response_cb (GtkDialog *dialog,
+- gint response_id,
+- CsdPowerManagerRecallData *recall_data)
+-{
+- GdkScreen *screen;
+- GtkWidget *dialog_error;
+- GError *error = NULL;
+- gboolean ret;
+- gchar *website = NULL;
+-
+- /* don't show this again */
+- if (response_id == GTK_RESPONSE_CANCEL) {
+- g_settings_set_boolean (recall_data->manager->priv->settings,
+- "notify-perhaps-recall",
+- FALSE);
+- goto out;
+- }
+-
+- /* visit recall website */
+- if (response_id == GTK_RESPONSE_OK) {
+-
+- g_object_get (recall_data->device,
+- "recall-url", &website,
+- NULL);
+-
+- screen = gdk_screen_get_default();
+- ret = gtk_show_uri (screen,
+- website,
+- gtk_get_current_event_time (),
+- &error);
+- if (!ret) {
+- dialog_error = gtk_message_dialog_new (NULL,
+- GTK_DIALOG_MODAL,
+- GTK_MESSAGE_INFO,
+- GTK_BUTTONS_OK,
+- "Failed to show url %s",
+- error->message);
+- gtk_dialog_run (GTK_DIALOG (dialog_error));
+- g_error_free (error);
+- }
+- }
+-out:
+- gtk_widget_destroy (GTK_WIDGET (dialog));
+- g_object_unref (recall_data->device);
+- g_object_unref (recall_data->manager);
+- g_free (recall_data);
+- g_free (website);
+- return;
+-}
+-
+-static gboolean
+-device_perhaps_recall_delay_cb (gpointer user_data)
+-{
+- gchar *vendor;
+- const gchar *title = NULL;
+- GString *message = NULL;
+- GtkWidget *dialog;
+- CsdPowerManagerRecallData *recall_data = (CsdPowerManagerRecallData *) user_data;
+-
+- g_object_get (recall_data->device,
+- "recall-vendor", &vendor,
+- NULL);
+-
+- /* TRANSLATORS: the battery may be recalled by its vendor */
+- title = _("Battery may be recalled");
+- message = g_string_new ("");
+- g_string_append_printf (message,
+- _("A battery in your computer may have been "
+- "recalled by %s and you may be at risk."), vendor);
+- g_string_append (message, "\n\n");
+- g_string_append (message, _("For more information visit the battery recall website."));
+- dialog = gtk_message_dialog_new_with_markup (NULL,
+- GTK_DIALOG_DESTROY_WITH_PARENT,
+- GTK_MESSAGE_INFO,
+- GTK_BUTTONS_CLOSE,
+- "<span size='larger'><b>%s</b></span>",
+- title);
+- gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog),
+- "%s", message->str);
+-
+- /* TRANSLATORS: button text, visit the manufacturers recall website */
+- gtk_dialog_add_button (GTK_DIALOG (dialog), _("Visit recall website"),
+- GTK_RESPONSE_OK);
+-
+- /* TRANSLATORS: button text, do not show this bubble again */
+- gtk_dialog_add_button (GTK_DIALOG (dialog), _("Do not show me this again"),
+- GTK_RESPONSE_CANCEL);
+-
+- gtk_widget_show (dialog);
+- g_signal_connect (dialog, "response",
+- G_CALLBACK (device_perhaps_recall_response_cb),
+- recall_data);
+-
+- g_string_free (message, TRUE);
+- g_free (vendor);
+- return FALSE;
+-}
+-
+-static void
+-device_perhaps_recall (CsdPowerManager *manager, UpDevice *device)
+-{
+- gboolean ret;
+- guint timer_id;
+- CsdPowerManagerRecallData *recall_data;
+-
+- /* don't show when running under GDM */
+- if (g_getenv ("RUNNING_UNDER_GDM") != NULL) {
+- g_debug ("running under gdm, so no notification");
+- return;
+- }
+-
+- /* already shown, and dismissed */
+- ret = g_settings_get_boolean (manager->priv->settings,
+- "notify-perhaps-recall");
+- if (!ret) {
+- g_debug ("settings prevents recall notification");
+- return;
+- }
+-
+- recall_data = g_new0 (CsdPowerManagerRecallData, 1);
+- recall_data->manager = g_object_ref (manager);
+- recall_data->device = g_object_ref (device);
+-
+- /* delay by a few seconds so the session can load */
+- timer_id = g_timeout_add_seconds (CSD_POWER_MANAGER_RECALL_DELAY,
+- device_perhaps_recall_delay_cb,
+- recall_data);
+- g_source_set_name_by_id (timer_id, "[CsdPowerManager] perhaps-recall");
+-}
+-
+ static void
+ engine_device_add (CsdPowerManager *manager, UpDevice *device)
+ {
+- gboolean recall_notice;
+ CsdPowerManagerWarning warning;
+ UpDeviceState state;
+ UpDeviceKind kind;
+@@ -1085,7 +947,6 @@ engine_device_add (CsdPowerManager *mana
+ g_object_get (device,
+ "kind", &kind,
+ "state", &state,
+- "recall-notice", &recall_notice,
+ NULL);
+
+ /* add old state for transitions */
+@@ -1109,43 +970,6 @@ engine_device_add (CsdPowerManager *mana
+ "engine-state-old",
+ GUINT_TO_POINTER(state));
+ }
+-
+- /* the device is recalled */
+- if (recall_notice)
+- device_perhaps_recall (manager, device);
+-}
+-
+-static gboolean
+-engine_check_recall (CsdPowerManager *manager, UpDevice *device)
+-{
+- UpDeviceKind kind;
+- gboolean recall_notice = FALSE;
+- gchar *recall_vendor = NULL;
+- gchar *recall_url = NULL;
+-
+- /* get device properties */
+- g_object_get (device,
+- "kind", &kind,
+- "recall-notice", &recall_notice,
+- "recall-vendor", &recall_vendor,
+- "recall-url", &recall_url,
+- NULL);
+-
+- /* not battery */
+- if (kind != UP_DEVICE_KIND_BATTERY)
+- goto out;
+-
+- /* no recall data */
+- if (!recall_notice)
+- goto out;
+-
+- /* emit signal for manager */
+- g_debug ("** EMIT: perhaps-recall");
+- g_debug ("%s-%s", recall_vendor, recall_url);
+-out:
+- g_free (recall_vendor);
+- g_free (recall_url);
+- return recall_notice;
+ }
+
+ static gboolean
+@@ -1177,7 +1001,6 @@ engine_coldplug (CsdPowerManager *manage
+ for (i = 0; array != NULL && i < array->len; i++) {
+ device = g_ptr_array_index (array, i);
+ engine_device_add (manager, device);
+- engine_check_recall (manager, device);
+ }
+ out:
+ if (array != NULL)
+@@ -1191,8 +1014,6 @@ engine_device_added_cb (UpClient *client
+ {
+ /* add to list */
+ g_ptr_array_add (manager->priv->devices_array, g_object_ref (device));
+- engine_check_recall (manager, device);
+-
+ engine_recalculate_state (manager);
+ }
+
diff --git a/community/cinnamon-settings-daemon/upower_deprecated.patch b/community/cinnamon-settings-daemon/upower_deprecated.patch
new file mode 100644
index 000000000..3719c849c
--- /dev/null
+++ b/community/cinnamon-settings-daemon/upower_deprecated.patch
@@ -0,0 +1,81 @@
+From 44d6bf66141b8cf772d8299106e9fd7fda6a21e3 Mon Sep 17 00:00:00 2001
+From: leigh123linux <leigh123linux@googlemail.com>
+Date: Fri, 8 Nov 2013 09:04:44 +0000
+Subject: [PATCH] upower-1.0 changes
+
+---
+ plugins/power/csd-power-manager.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index a8efe08..bae3298 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -1157,6 +1157,7 @@ engine_coldplug (CsdPowerManager *manager)
+ gboolean ret;
+ GError *error = NULL;
+
++#if ! UP_CHECK_VERSION(0,99,0)
+ /* get devices from UPower */
+ ret = up_client_enumerate_devices_sync (manager->priv->up_client, NULL, &error);
+ if (!ret) {
+@@ -1164,6 +1165,7 @@ engine_coldplug (CsdPowerManager *manager)
+ g_error_free (error);
+ goto out;
+ }
++#endif
+
+ /* connected mobile phones */
+ gpm_phone_coldplug (manager->priv->phone);
+@@ -1306,12 +1308,17 @@ manager_critical_action_get (CsdPowerManager *manager,
+
+ policy = g_settings_get_enum (manager->priv->settings, "critical-battery-action");
+ if (policy == CSD_POWER_ACTION_SUSPEND) {
+- if (is_ups == FALSE &&
+- up_client_get_can_suspend (manager->priv->up_client))
++ if (is_ups == FALSE
++#if ! UP_CHECK_VERSION(0,99,0)
++ && up_client_get_can_suspend (manager->priv->up_client)
++#endif
++ )
+ return policy;
+ return CSD_POWER_ACTION_SHUTDOWN;
+ } else if (policy == CSD_POWER_ACTION_HIBERNATE) {
++#if ! UP_CHECK_VERSION(0,99,0)
+ if (up_client_get_can_hibernate (manager->priv->up_client))
++#endif
+ return policy;
+ return CSD_POWER_ACTION_SHUTDOWN;
+ }
+@@ -2300,6 +2307,7 @@ suspend_with_lid_closed (CsdPowerManager *manager)
+ "lid-close-ac-action");
+ }
+
++#if ! UP_CHECK_VERSION(0,99,0)
+ /* check we won't melt when the lid is closed */
+ if (action_type != CSD_POWER_ACTION_SUSPEND &&
+ action_type != CSD_POWER_ACTION_HIBERNATE) {
+@@ -2312,6 +2320,7 @@ suspend_with_lid_closed (CsdPowerManager *manager)
+ lock_screensaver (manager);
+ }
+ }
++#endif
+
+ /* ensure we turn the panel back on after resume */
+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+@@ -3838,10 +3849,12 @@ csd_power_manager_start (CsdPowerManager *manager,
+ G_CALLBACK (engine_settings_key_changed_cb), manager);
+ manager->priv->settings_screensaver = g_settings_new ("org.cinnamon.desktop.screensaver");
+ manager->priv->up_client = up_client_new ();
++#if ! UP_CHECK_VERSION(0,99,0)
+ g_signal_connect (manager->priv->up_client, "notify-sleep",
+ G_CALLBACK (upower_notify_sleep_cb), manager);
+ g_signal_connect (manager->priv->up_client, "notify-resume",
+ G_CALLBACK (upower_notify_resume_cb), manager);
++#endif
+ manager->priv->lid_is_closed = up_client_get_lid_is_closed (manager->priv->up_client);
+ g_signal_connect (manager->priv->up_client, "device-added",
+ G_CALLBACK (engine_device_added_cb), manager);
+--
+1.9.1
+