diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-04-15 03:26:32 +0000 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-04-15 03:26:32 +0000 |
commit | ad45d1982b97faa9372d99e51daa687c7c09de7d (patch) | |
tree | af490221f2b733b8f0cf68f3898566d5049c3ab4 /community/cinnamon-settings-daemon | |
parent | 7c266ff5a9e1f533fd8bd8c2fbbcc05df350dcd3 (diff) |
Tue Apr 15 03:22:01 UTC 2014
Diffstat (limited to 'community/cinnamon-settings-daemon')
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 + |