Package: mate-power-manager
Version: 1.8.0+dfsg1-2
User: pkg-utopia-maintain...@lists.alioth.debian.org
Usertags: upower-1.0

We're preparing to transition the new upower release
into unstable. The new version breaks the API/ABI
and will in some cases require porting.

Reverse dependencies has been build-tested and your
package failed to build.

Build log can be found at:
http://people.debian.org/~biebl/upower-1.0/

For more information see:
http://lists.freedesktop.org/archives/devkit-devel/2013-October/001519.html
http://www.hadess.net/2013/10/more-power-management-changes.html

I've attached a build-tested patch backporting changes from upstream
for your convenience. Please test if this works.
(Rumour has it mate-screensaver has a bug which will make it
segfault once m-p-m is updated.)
diff -uriNp mate-power-manager-1.8.0+dfsg1/debian/changelog 
u1-mate-power-manager-1.8.0+dfsg1/debian/changelog
--- mate-power-manager-1.8.0+dfsg1/debian/changelog     2014-05-05 
10:15:38.000000000 +0200
+++ u1-mate-power-manager-1.8.0+dfsg1/debian/changelog  2014-05-22 
10:44:38.210035262 +0200
@@ -1,3 +1,17 @@
+mate-power-manager (1.8.0+dfsg1-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Bump build-dependency on libupower-glib-dev to >= 0.99
+  * Bump dependency on upower to >= 0.99
+  * Add patches from upstream for upower 0.99 support:
+    0001-avoid-levels-is-0-warning-if-no-kbd-backlight-presen.patch
+    0002-remove-battery-recall-logic.patch
+    0003-port-mate-power-manager-to-upower-0.99-API.patch
+    0005-Improve-UPower1-support.patch
+    0006-Other-round-of-fixes-for-UPower-0.99-API-changes.patch
+
+ -- Andreas Henriksson <andr...@fatal.se>  Thu, 22 May 2014 10:36:11 +0200
+
 mate-power-manager (1.8.0+dfsg1-2) unstable; urgency=low
 
   * debian/rules:
diff -uriNp mate-power-manager-1.8.0+dfsg1/debian/control 
u1-mate-power-manager-1.8.0+dfsg1/debian/control
--- mate-power-manager-1.8.0+dfsg1/debian/control       2014-04-21 
23:29:33.000000000 +0200
+++ u1-mate-power-manager-1.8.0+dfsg1/debian/control    2014-05-22 
10:36:09.235959226 +0200
@@ -23,7 +23,7 @@ Build-Depends: debhelper (>= 9),
                libxrandr-dev,
                xmlto,
                yelp-tools,
-               libupower-glib-dev,
+               libupower-glib-dev (>= 0.99),
                libcanberra-gtk-dev,
                libunique-dev,
                libgnome-keyring-dev,
@@ -47,7 +47,7 @@ Depends: ${shlibs:Depends},
          mate-notification-daemon | notification-daemon, 
          dbus-x11,
          consolekit,
-         upower,
+         upower (>= 0.99),
          mate-power-manager-common (= ${source:Version})
 Recommends: udisks
 Suggests: policykit-1
diff -uriNp 
mate-power-manager-1.8.0+dfsg1/debian/patches/0001-avoid-levels-is-0-warning-if-no-kbd-backlight-presen.patch
 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0001-avoid-levels-is-0-warning-if-no-kbd-backlight-presen.patch
--- 
mate-power-manager-1.8.0+dfsg1/debian/patches/0001-avoid-levels-is-0-warning-if-no-kbd-backlight-presen.patch
       1970-01-01 01:00:00.000000000 +0100
+++ 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0001-avoid-levels-is-0-warning-if-no-kbd-backlight-presen.patch
    2014-05-22 10:42:53.427132913 +0200
@@ -0,0 +1,26 @@
+From 2b3cf01f84204dd5d8204d519e2167b41cda6bc0 Mon Sep 17 00:00:00 2001
+From: Stefan Seyfried <seife+...@b1-systems.com>
+Date: Wed, 9 Apr 2014 14:43:44 +0200
+Subject: [PATCH 01/15] avoid "levels is 0" warning if no kbd backlight present
+
+---
+ src/gpm-kbd-backlight.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/gpm-kbd-backlight.c b/src/gpm-kbd-backlight.c
+index 0ac6801..a439e94 100644
+--- a/src/gpm-kbd-backlight.c
++++ b/src/gpm-kbd-backlight.c
+@@ -113,6 +113,9 @@ gpm_kbd_backlight_set (GpmKbdBacklight *backlight,
+    guint goal;
+ 
+    g_return_val_if_fail (GPM_IS_KBD_BACKLIGHT (backlight), FALSE);
++   /* avoid warnings if no keyboard brightness is available */
++   if (backlight->priv->max_brightness < 1)
++       return FALSE;
+    /* if we're setting the same we are, don't bother */
+    //g_return_val_if_fail (backlight->priv->brightness_percent != percentage, 
FALSE);
+ 
+-- 
+2.0.0.rc2
+
diff -uriNp 
mate-power-manager-1.8.0+dfsg1/debian/patches/0002-remove-battery-recall-logic.patch
 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0002-remove-battery-recall-logic.patch
--- 
mate-power-manager-1.8.0+dfsg1/debian/patches/0002-remove-battery-recall-logic.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0002-remove-battery-recall-logic.patch
     2014-05-22 10:42:59.907312341 +0200
@@ -0,0 +1,281 @@
+From 220a4e0a64aca0579f50e6e57d4eca848b3ac57f Mon Sep 17 00:00:00 2001
+From: Stefan Seyfried <seife+...@b1-systems.com>
+Date: Wed, 9 Apr 2014 14:58:29 +0200
+Subject: [PATCH 02/15] remove "battery recall" logic
+
+the database is outdated several years now and the whole interface is
+removed from current UPower release anyway, so let's get rid of it in
+m-p-m, too
+---
+ data/org.mate.power-manager.gschema.xml.in |   5 --
+ src/gpm-common.h                           |   1 -
+ src/gpm-engine.c                           |  47 -------------
+ src/gpm-engine.h                           |   4 --
+ src/gpm-manager.c                          | 108 -----------------------------
+ 5 files changed, 165 deletions(-)
+
+diff --git a/data/org.mate.power-manager.gschema.xml.in 
b/data/org.mate.power-manager.gschema.xml.in
+index adecce0..ca009b5 100644
+--- a/data/org.mate.power-manager.gschema.xml.in
++++ b/data/org.mate.power-manager.gschema.xml.in
+@@ -211,11 +211,6 @@
+       <_summary>Seconds of inactivity to spin down when on battery</_summary>
+       <_description>The number of seconds of inactivity to spin down the 
disks when on battery power.</_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="notify-low-capacity" type="b">
+       <default>true</default>
+       <_summary>If we should show the low capacity warning for a broken 
battery</_summary>
+diff --git a/src/gpm-common.h b/src/gpm-common.h
+index ef20f88..303bdd1 100644
+--- a/src/gpm-common.h
++++ b/src/gpm-common.h
+@@ -98,7 +98,6 @@ G_BEGIN_DECLS
+ #define GPM_SETTINGS_SPINDOWN_TIMEOUT_BATT            
"spindown-timeout-battery"
+ 
+ /* notify */
+-#define GPM_SETTINGS_NOTIFY_PERHAPS_RECALL            "notify-perhaps-recall"
+ #define GPM_SETTINGS_NOTIFY_LOW_CAPACITY              "notify-low-capacity"
+ #define GPM_SETTINGS_NOTIFY_DISCHARGING                       
"notify-discharging"
+ #define GPM_SETTINGS_NOTIFY_FULLY_CHARGED             "notify-fully-charged"
+diff --git a/src/gpm-engine.c b/src/gpm-engine.c
+index 0f9d0c1..96a043e 100644
+--- a/src/gpm-engine.c
++++ b/src/gpm-engine.c
+@@ -72,7 +72,6 @@ enum {
+       CHARGE_ACTION,
+       DISCHARGING,
+       LOW_CAPACITY,
+-      PERHAPS_RECALL,
+       LAST_SIGNAL
+ };
+ 
+@@ -761,42 +760,6 @@ gpm_engine_device_add (GpmEngine *engine, UpDevice 
*device)
+ }
+ 
+ /**
+- * gpm_engine_check_recall:
+- **/
+-static gboolean
+-gpm_engine_check_recall (GpmEngine *engine, 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 */
+-      egg_debug ("** EMIT: perhaps-recall");
+-      g_signal_emit (engine, signals [PERHAPS_RECALL], 0, device, 
recall_vendor, recall_url);
+-out:
+-      g_free (recall_vendor);
+-      g_free (recall_url);
+-      return recall_notice;
+-}
+-
+-/**
+  * gpm_engine_coldplug_idle_cb:
+  **/
+ static gboolean
+@@ -829,7 +792,6 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
+       for (i=0;i<array->len;i++) {
+               device = g_ptr_array_index (array, i);
+               gpm_engine_device_add (engine, device);
+-              gpm_engine_check_recall (engine, device);
+       }
+ out:
+       if (array != NULL)
+@@ -846,7 +808,6 @@ gpm_engine_device_added_cb (UpClient *client, UpDevice 
*device, GpmEngine *engin
+ {
+       /* add to list */
+       g_ptr_array_add (engine->priv->array, g_object_ref (device));
+-      gpm_engine_check_recall (engine, device);
+ 
+       gpm_engine_recalculate_state (engine);
+ }
+@@ -1134,14 +1095,6 @@ gpm_engine_class_init (GpmEngineClass *klass)
+                             G_STRUCT_OFFSET (GpmEngineClass, low_capacity),
+                             NULL, NULL, g_cclosure_marshal_VOID__POINTER,
+                             G_TYPE_NONE, 1, G_TYPE_POINTER);
+-      signals [PERHAPS_RECALL] =
+-              g_signal_new ("perhaps-recall",
+-                            G_TYPE_FROM_CLASS (object_class),
+-                            G_SIGNAL_RUN_LAST,
+-                            G_STRUCT_OFFSET (GpmEngineClass, perhaps_recall),
+-                            NULL, NULL, 
gpm_marshal_VOID__POINTER_STRING_STRING,
+-                            G_TYPE_NONE,
+-                            3, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_STRING);
+       signals [FULLY_CHARGED] =
+               g_signal_new ("fully-charged",
+                             G_TYPE_FROM_CLASS (object_class),
+diff --git a/src/gpm-engine.h b/src/gpm-engine.h
+index be1ccd6..43f8956 100644
+--- a/src/gpm-engine.h
++++ b/src/gpm-engine.h
+@@ -49,10 +49,6 @@ typedef struct
+                                                gchar          *icon);
+       void            (* summary_changed)     (GpmEngine      *engine,
+                                                gchar          *status);
+-      void            (* perhaps_recall)      (GpmEngine      *engine,
+-                                               UpDevice       *device,
+-                                               const gchar    *oem_vendor,
+-                                               const gchar    *website);
+       void            (* low_capacity)        (GpmEngine      *engine,
+                                                UpDevice       *device);
+       void            (* charge_low)          (GpmEngine      *engine,
+diff --git a/src/gpm-manager.c b/src/gpm-manager.c
+index 6ca9dea..c4d0530 100644
+--- a/src/gpm-manager.c
++++ b/src/gpm-manager.c
+@@ -68,7 +68,6 @@
+ static void     gpm_manager_finalize  (GObject         *object);
+ 
+ #define GPM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
GPM_TYPE_MANAGER, GpmManagerPrivate))
+-#define GPM_MANAGER_RECALL_DELAY              30 /* seconds */
+ #define GPM_MANAGER_NOTIFY_TIMEOUT_NEVER      0 /* ms */
+ #define GPM_MANAGER_NOTIFY_TIMEOUT_SHORT      10 * 1000 /* ms */
+ #define GPM_MANAGER_NOTIFY_TIMEOUT_LONG               30 * 1000 /* ms */
+@@ -1092,111 +1091,6 @@ gpm_manager_settings_changed_cb (GSettings *settings, 
const gchar *key, GpmManag
+ }
+ 
+ /**
+- * gpm_manager_perhaps_recall_response_cb:
+- */
+-static void
+-gpm_manager_perhaps_recall_response_cb (GtkDialog *dialog, gint response_id, 
GpmManager *manager)
+-{
+-      GdkScreen *screen;
+-      GtkWidget *dialog_error;
+-      GError *error = NULL;
+-      gboolean ret;
+-      const gchar *website;
+-
+-      /* don't show this again */
+-      if (response_id == GTK_RESPONSE_CANCEL) {
+-              g_settings_set_boolean (manager->priv->settings, 
GPM_SETTINGS_NOTIFY_PERHAPS_RECALL, FALSE);
+-              goto out;
+-      }
+-
+-      /* visit recall website */
+-      if (response_id == GTK_RESPONSE_OK) {
+-              screen = gdk_screen_get_default();
+-              website = (const gchar *) g_object_get_data (G_OBJECT 
(manager), "recall-oem-website");
+-              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);
+-              }
+-              goto out;
+-      }
+-out:
+-      gtk_widget_destroy (GTK_WIDGET (dialog));
+-      return;
+-}
+-
+-/**
+- * gpm_manager_perhaps_recall_delay_cb:
+- */
+-static gboolean
+-gpm_manager_perhaps_recall_delay_cb (GpmManager *manager)
+-{
+-      const gchar *oem_vendor;
+-      gchar *title = NULL;
+-      gchar *message = NULL;
+-      GtkWidget *dialog;
+-
+-      oem_vendor = (const gchar *) g_object_get_data (G_OBJECT (manager), 
"recall-oem-vendor");
+-
+-      /* TRANSLATORS: the battery may be recalled by it's vendor */
+-      title = g_strdup_printf ("%s: %s", GPM_NAME, _("Battery may be 
recalled"));
+-      message = g_strdup_printf (_("A battery in your computer may have been "
+-                                   "recalled by %s and you may be at 
risk.\n\n"
+-                                   "For more information visit the battery 
recall website."), oem_vendor);
+-      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);
+-
+-      /* 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);
+-
+-      /* wait async for response */
+-      gtk_widget_show (dialog);
+-      g_signal_connect (dialog, "response", G_CALLBACK 
(gpm_manager_perhaps_recall_response_cb), manager);
+-
+-      g_free (title);
+-      g_free (message);
+-
+-      /* never repeat */
+-      return FALSE;
+-}
+-
+-/**
+- * gpm_manager_engine_perhaps_recall_cb:
+- */
+-static void
+-gpm_manager_engine_perhaps_recall_cb (GpmEngine *engine, UpDevice *device, 
gchar *oem_vendor, gchar *website, GpmManager *manager)
+-{
+-      gboolean ret;
+-
+-      /* don't show when running under GDM */
+-      if (g_getenv ("RUNNING_UNDER_GDM") != NULL) {
+-              egg_debug ("running under gdm, so no notification");
+-              return;
+-      }
+-
+-      /* already shown, and dismissed */
+-      ret = g_settings_get_boolean (manager->priv->settings, 
GPM_SETTINGS_NOTIFY_PERHAPS_RECALL);
+-      if (!ret) {
+-              egg_debug ("Gsettings prevents notification: %s", 
GPM_SETTINGS_NOTIFY_PERHAPS_RECALL);
+-              return;
+-      }
+-
+-      g_object_set_data_full (G_OBJECT (manager), "recall-oem-vendor", 
(gpointer) g_strdup (oem_vendor), (GDestroyNotify) g_free);
+-      g_object_set_data_full (G_OBJECT (manager), "recall-oem-website", 
(gpointer) g_strdup (website), (GDestroyNotify) g_free);
+-
+-      /* delay by a few seconds so the panel can load */
+-      g_timeout_add_seconds (GPM_MANAGER_RECALL_DELAY, (GSourceFunc) 
gpm_manager_perhaps_recall_delay_cb, manager);
+-}
+-
+-/**
+  * gpm_manager_engine_icon_changed_cb:
+  */
+ static void
+@@ -2023,8 +1917,6 @@ gpm_manager_init (GpmManager *manager)
+       gpm_manager_sync_policy_sleep (manager);
+ 
+       manager->priv->engine = gpm_engine_new ();
+-      g_signal_connect (manager->priv->engine, "perhaps-recall",
+-                        G_CALLBACK (gpm_manager_engine_perhaps_recall_cb), 
manager);
+       g_signal_connect (manager->priv->engine, "low-capacity",
+                         G_CALLBACK (gpm_manager_engine_low_capacity_cb), 
manager);
+       g_signal_connect (manager->priv->engine, "icon-changed",
+-- 
+2.0.0.rc2
+
diff -uriNp 
mate-power-manager-1.8.0+dfsg1/debian/patches/0003-port-mate-power-manager-to-upower-0.99-API.patch
 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0003-port-mate-power-manager-to-upower-0.99-API.patch
--- 
mate-power-manager-1.8.0+dfsg1/debian/patches/0003-port-mate-power-manager-to-upower-0.99-API.patch
 1970-01-01 01:00:00.000000000 +0100
+++ 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0003-port-mate-power-manager-to-upower-0.99-API.patch
      2014-05-22 10:43:06.211486903 +0200
@@ -0,0 +1,409 @@
+From d59f4b8bd38e1628af3a992ae8e96b8e069ab738 Mon Sep 17 00:00:00 2001
+From: Stefan Seyfried <seife+...@b1-systems.com>
+Date: Wed, 9 Apr 2014 15:12:17 +0200
+Subject: [PATCH 03/15] port mate-power-manager to upower-0.99 API
+
+fix mate-power-manager for current upower versions
+---
+ src/gpm-backlight.c     |  9 ++++++++
+ src/gpm-button.c        | 10 ++++++++-
+ src/gpm-control.c       |  6 ++++--
+ src/gpm-engine.c        | 55 +++++++++++++++++++++++++++++++++++++++++++++----
+ src/gpm-kbd-backlight.c |  8 +++++++
+ src/gpm-manager.c       |  9 ++++++++
+ src/gpm-prefs-core.c    |  8 +++++--
+ src/gpm-statistics.c    | 17 +++++++++++++--
+ 8 files changed, 111 insertions(+), 11 deletions(-)
+
+diff --git a/src/gpm-backlight.c b/src/gpm-backlight.c
+index 1f1d834..d2938a4 100644
+--- a/src/gpm-backlight.c
++++ b/src/gpm-backlight.c
+@@ -410,7 +410,11 @@ gpm_settings_key_changed_cb (GSettings *settings, const 
gchar *key, GpmBacklight
+  * Does the actions when the ac power source is inserted/removed.
+  **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_backlight_client_changed_cb (UpClient *client, GParamSpec *pspec, 
GpmBacklight *backlight)
++#else
+ gpm_backlight_client_changed_cb (UpClient *client, GpmBacklight *backlight)
++#endif
+ {
+       gpm_backlight_brightness_evaluate_and_set (backlight, FALSE, TRUE);
+ }
+@@ -727,8 +731,13 @@ gpm_backlight_init (GpmBacklight *backlight)
+ 
+       /* we use up_client for the ac-adapter-changed signal */
+       backlight->priv->client = up_client_new ();
++#if UP_CHECK_VERSION(0, 99, 0)
++      g_signal_connect (backlight->priv->client, "notify",
++                        G_CALLBACK (gpm_backlight_client_changed_cb), 
backlight);
++#else
+       g_signal_connect (backlight->priv->client, "changed",
+                         G_CALLBACK (gpm_backlight_client_changed_cb), 
backlight);
++#endif
+ 
+       /* gets caps */
+       backlight->priv->can_dim = gpm_brightness_has_hw 
(backlight->priv->brightness);
+diff --git a/src/gpm-button.c b/src/gpm-button.c
+index 1e38173..b331cf6 100644
+--- a/src/gpm-button.c
++++ b/src/gpm-button.c
+@@ -324,7 +324,11 @@ gpm_button_reset_time (GpmButton *button)
+  * gpm_button_client_changed_cb
+  **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_button_client_changed_cb (UpClient *client, GParamSpec *pspec, GpmButton 
*button)
++#else
+ gpm_button_client_changed_cb (UpClient *client, GpmButton *button)
++#endif
+ {
+       gboolean lid_is_closed;
+ 
+@@ -363,9 +367,13 @@ gpm_button_init (GpmButton *button)
+ 
+       button->priv->client = up_client_new ();
+       button->priv->lid_is_closed = up_client_get_lid_is_closed 
(button->priv->client);
++#if UP_CHECK_VERSION(0, 99, 0)
++      g_signal_connect (button->priv->client, "notify",
++                        G_CALLBACK (gpm_button_client_changed_cb), button);
++#else
+       g_signal_connect (button->priv->client, "changed",
+                         G_CALLBACK (gpm_button_client_changed_cb), button);
+-
++#endif
+       /* register the brightness keys */
+       gpm_button_xevent_key (button, XF86XK_PowerOff, GPM_BUTTON_POWER);
+ #ifdef HAVE_XF86XK_SUSPEND
+diff --git a/src/gpm-control.c b/src/gpm-control.c
+index ec50136..0562d38 100644
+--- a/src/gpm-control.c
++++ b/src/gpm-control.c
+@@ -289,10 +289,11 @@ gpm_control_suspend (GpmControl *control, GError **error)
+               }
+               g_object_unref(proxy);
+       }
++#if !UP_CHECK_VERSION(0, 99, 0)
+       else {
+               ret = up_client_suspend_sync (control->priv->client, NULL, 
error);
+       }
+-
++#endif
+       egg_debug ("emitting resume");
+       g_signal_emit (control, signals [RESUME], 0, 
GPM_CONTROL_ACTION_SUSPEND);
+ 
+@@ -399,10 +400,11 @@ gpm_control_hibernate (GpmControl *control, GError 
**error)
+                       ret = TRUE;
+               }
+       }
++#if !UP_CHECK_VERSION(0, 99, 0)
+       else {
+               ret = up_client_hibernate_sync (control->priv->client, NULL, 
error);
+       }
+-
++#endif
+       egg_debug ("emitting resume");
+       g_signal_emit (control, signals [RESUME], 0, 
GPM_CONTROL_ACTION_HIBERNATE);
+ 
+diff --git a/src/gpm-engine.c b/src/gpm-engine.c
+index 96a043e..e6c6bf2 100644
+--- a/src/gpm-engine.c
++++ b/src/gpm-engine.c
+@@ -768,12 +768,14 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
+       guint i;
+       GPtrArray *array = NULL;
+       UpDevice *device;
++#if !UP_CHECK_VERSION(0, 99, 0)
+       gboolean ret;
+       GError *error = NULL;
++#endif
+ 
+       g_return_val_if_fail (engine != NULL, FALSE);
+       g_return_val_if_fail (GPM_IS_ENGINE (engine), FALSE);
+-
++#if !UP_CHECK_VERSION(0, 99, 0)
+       /* get devices from UPower */
+       ret = up_client_enumerate_devices_sync (engine->priv->client, NULL, 
&error);
+       if (!ret) {
+@@ -781,7 +783,7 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
+               g_error_free (error);
+               goto out;
+       }
+-
++#endif
+       /* connected mobile phones */
+       gpm_phone_coldplug (engine->priv->phone);
+ 
+@@ -793,7 +795,9 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
+               device = g_ptr_array_index (array, i);
+               gpm_engine_device_add (engine, device);
+       }
++#if !UP_CHECK_VERSION(0, 99, 0)
+ out:
++#endif
+       if (array != NULL)
+               g_ptr_array_unref (array);
+       /* never repeat */
+@@ -816,6 +820,22 @@ gpm_engine_device_added_cb (UpClient *client, UpDevice 
*device, GpmEngine *engin
+  * gpm_engine_device_removed_cb:
+  **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_engine_device_removed_cb (UpClient *client, const char *object_path, 
GpmEngine *engine)
++{
++      guint i;
++
++      for (i = 0; i < engine->priv->array->len; i++) {
++              UpDevice *device = g_ptr_array_index (engine->priv->array, i);
++
++              if (g_strcmp0 (object_path, up_device_get_object_path (device)) 
== 0) {
++                      g_ptr_array_remove_index (engine->priv->array, i);
++                      break;
++              }
++      }
++      gpm_engine_recalculate_state (engine);
++}
++#else
+ gpm_engine_device_removed_cb (UpClient *client, UpDevice *device, GpmEngine 
*engine)
+ {
+       gboolean ret;
+@@ -824,12 +844,18 @@ gpm_engine_device_removed_cb (UpClient *client, UpDevice 
*device, GpmEngine *eng
+               return;
+       gpm_engine_recalculate_state (engine);
+ }
+-
++#endif
+ 
+ /**
+  * gpm_engine_device_changed_cb:
+  **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_engine_device_changed_cb (UpClient *client, GParamSpec *pspec, GpmEngine 
*engine)
++{
++      gpm_engine_recalculate_state (engine);
++}
++#else
+ gpm_engine_device_changed_cb (UpClient *client, UpDevice *device, GpmEngine 
*engine)
+ {
+       UpDeviceKind kind;
+@@ -891,6 +917,7 @@ gpm_engine_device_changed_cb (UpClient *client, UpDevice 
*device, GpmEngine *eng
+ 
+       gpm_engine_recalculate_state (engine);
+ }
++#endif
+ 
+ /**
+  * gpm_engine_get_devices:
+@@ -1003,7 +1030,10 @@ phone_device_refresh_cb (GpmPhone *phone, guint idx, 
GpmEngine *engine)
+ static void
+ gpm_engine_init (GpmEngine *engine)
+ {
+-
++#if UP_CHECK_VERSION(0, 99, 0)
++      GPtrArray *array = NULL;
++      guint i;
++#endif
+       engine->priv = GPM_ENGINE_GET_PRIVATE (engine);
+ 
+       engine->priv->array = g_ptr_array_new_with_free_func (g_object_unref);
+@@ -1012,8 +1042,13 @@ gpm_engine_init (GpmEngine *engine)
+                         G_CALLBACK (gpm_engine_device_added_cb), engine);
+       g_signal_connect (engine->priv->client, "device-removed",
+                         G_CALLBACK (gpm_engine_device_removed_cb), engine);
++#if UP_CHECK_VERSION(0, 99, 0)
++      g_signal_connect (engine->priv->client, "notify",
++                        G_CALLBACK (gpm_engine_device_changed_cb), engine);
++#else
+       g_signal_connect (engine->priv->client, "device-changed",
+                         G_CALLBACK (gpm_engine_device_changed_cb), engine);
++#endif
+ 
+       engine->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+       g_signal_connect (engine->priv->settings, "changed",
+@@ -1027,6 +1062,18 @@ gpm_engine_init (GpmEngine *engine)
+       g_signal_connect (engine->priv->phone, "device-refresh",
+                         G_CALLBACK (phone_device_refresh_cb), engine);
+ 
++#if UP_CHECK_VERSION(0, 99, 0)
++      /* coldplug */
++      array = up_client_get_devices(engine->priv->client);
++      if (array) {
++              for (i = 0; i < array->len; i++) {
++                      UpDevice *device = g_ptr_array_index (array, i);
++                      gpm_engine_device_added_cb(engine->priv->client, 
device, engine);
++              }
++              g_ptr_array_free (array, TRUE);
++      }
++#endif
++
+       /* create a fake virtual composite battery */
+       engine->priv->battery_composite = up_device_new ();
+       g_object_set (engine->priv->battery_composite,
+diff --git a/src/gpm-kbd-backlight.c b/src/gpm-kbd-backlight.c
+index a439e94..3a0f6e6 100644
+--- a/src/gpm-kbd-backlight.c
++++ b/src/gpm-kbd-backlight.c
+@@ -486,6 +486,9 @@ gpm_kbd_backlight_control_resume_cb (GpmControl *control,
+  **/
+ static void
+ gpm_kbd_backlight_client_changed_cb (UpClient *client,
++#if UP_CHECK_VERSION(0, 99, 0)
++                    GParamSpec *pspec,
++#endif
+                     GpmKbdBacklight *backlight)
+ {
+    gpm_kbd_backlight_evaluate_power_source_and_set (backlight);
+@@ -755,8 +758,13 @@ noerr:
+ 
+    /* Use upower for ac changed signal */
+    backlight->priv->client = up_client_new ();
++#if UP_CHECK_VERSION(0, 99, 0)
++   g_signal_connect (backlight->priv->client, "notify",
++             G_CALLBACK (gpm_kbd_backlight_client_changed_cb), backlight);
++#else
+    g_signal_connect (backlight->priv->client, "changed",
+              G_CALLBACK (gpm_kbd_backlight_client_changed_cb), backlight);
++#endif
+ 
+     backlight->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+       //g_signal_connect (backlight->priv->settings, "changed", G_CALLBACK 
(gpm_settings_key_changed_cb), backlight);
+diff --git a/src/gpm-manager.c b/src/gpm-manager.c
+index c4d0530..df84cac 100644
+--- a/src/gpm-manager.c
++++ b/src/gpm-manager.c
+@@ -971,7 +971,11 @@ gpm_manager_get_spindown_timeout (GpmManager *manager)
+  * gpm_manager_client_changed_cb:
+  **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_manager_client_changed_cb (UpClient *client, GParamSpec *pspec, 
GpmManager *manager)
++#else
+ gpm_manager_client_changed_cb (UpClient *client, GpmManager *manager)
++#endif
+ {
+       gboolean event_when_closed;
+       gint timeout;
+@@ -1853,8 +1857,13 @@ gpm_manager_init (GpmManager *manager)
+       g_signal_connect (manager->priv->settings, "changed",
+                         G_CALLBACK (gpm_manager_settings_changed_cb), 
manager);
+       manager->priv->client = up_client_new ();
++#if UP_CHECK_VERSION(0, 99, 0)
++      g_signal_connect (manager->priv->client, "notify",
++                        G_CALLBACK (gpm_manager_client_changed_cb), manager);
++#else
+       g_signal_connect (manager->priv->client, "changed",
+                         G_CALLBACK (gpm_manager_client_changed_cb), manager);
++#endif
+ 
+       /* use libmatenotify */
+       notify_init (GPM_NAME);
+diff --git a/src/gpm-prefs-core.c b/src/gpm-prefs-core.c
+index 7a2662d..6abb792 100644
+--- a/src/gpm-prefs-core.c
++++ b/src/gpm-prefs-core.c
+@@ -811,7 +811,9 @@ gpm_prefs_init (GpmPrefs *prefs)
+       UpDevice *device;
+       UpDeviceKind kind;
+       GpmBrightness *brightness;
++#if !UP_CHECK_VERSION(0, 99, 0)
+       gboolean ret;
++#endif
+       guint i;
+ 
+       GDBusProxy *proxy;
+@@ -897,9 +899,11 @@ gpm_prefs_init (GpmPrefs *prefs)
+       else {
+               /* are we allowed to shutdown? */
+               egg_console_kit_can_stop (prefs->priv->console, 
&prefs->priv->can_shutdown, NULL);
++#if !UP_CHECK_VERSION(0, 99, 0)
+               /* get values from UpClient */
+               prefs->priv->can_suspend = up_client_get_can_suspend 
(prefs->priv->client);
+               prefs->priv->can_hibernate = up_client_get_can_hibernate 
(prefs->priv->client);
++#endif
+       }
+ 
+       if (LOGIND_RUNNING()) {
+@@ -953,14 +957,14 @@ gpm_prefs_init (GpmPrefs *prefs)
+       brightness = gpm_brightness_new ();
+       prefs->priv->has_lcd = gpm_brightness_has_hw (brightness);
+       g_object_unref (brightness);
+-
++#if !UP_CHECK_VERSION(0, 99, 0)
+       /* get device list */
+       ret = up_client_enumerate_devices_sync (prefs->priv->client, NULL, 
&error);
+       if (!ret) {
+               egg_warning ("failed to get device list: %s", error->message);
+               g_error_free (error);
+       }
+-
++#endif
+       devices = up_client_get_devices (prefs->priv->client);
+       for (i=0; i<devices->len; i++) {
+               device = g_ptr_array_index (devices, i);
+diff --git a/src/gpm-statistics.c b/src/gpm-statistics.c
+index 98b5632..13489dc 100644
+--- a/src/gpm-statistics.c
++++ b/src/gpm-statistics.c
+@@ -1236,6 +1236,12 @@ gpm_stats_device_added_cb (UpClient *client, UpDevice 
*device, gpointer user_dat
+  * gpm_stats_device_changed_cb:
+  **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_stats_device_changed_cb (UpClient *client, GParamSpec *pspec, gpointer 
user_data)
++{
++      gpm_stats_button_update_ui();
++}
++#else
+ gpm_stats_device_changed_cb (UpClient *client, UpDevice *device, gpointer 
user_data)
+ {
+       const gchar *object_path;
+@@ -1246,6 +1252,7 @@ gpm_stats_device_changed_cb (UpClient *client, UpDevice 
*device, gpointer user_d
+       if (g_strcmp0 (current_device, object_path) == 0)
+               gpm_stats_update_info_data (device);
+ }
++#endif
+ 
+ /**
+  * gpm_stats_device_removed_cb:
+@@ -1794,11 +1801,12 @@ main (int argc, char *argv[])
+ 
+       wakeups = up_wakeups_new ();
+       g_signal_connect (wakeups, "data-changed", G_CALLBACK 
(gpm_stats_data_changed_cb), NULL);
+-
++#if !UP_CHECK_VERSION(0, 99, 0)
+       /* coldplug */
+       ret = up_client_enumerate_devices_sync (client, NULL, NULL);
+       if (!ret)
+               goto out;
++#endif
+       devices = up_client_get_devices (client);
+ 
+       /* add devices in visually pleasing order */
+@@ -1814,7 +1822,11 @@ main (int argc, char *argv[])
+       /* connect now the coldplug is done */
+       g_signal_connect (client, "device-added", G_CALLBACK 
(gpm_stats_device_added_cb), NULL);
+       g_signal_connect (client, "device-removed", G_CALLBACK 
(gpm_stats_device_removed_cb), NULL);
++#if UP_CHECK_VERSION(0, 99, 0)
++      g_signal_connect (client, "notify", G_CALLBACK 
(gpm_stats_device_changed_cb), NULL);
++#else
+       g_signal_connect (client, "device-changed", G_CALLBACK 
(gpm_stats_device_changed_cb), NULL);
++#endif
+ 
+       /* set current device */
+       if (devices->len > 0) {
+@@ -1854,8 +1866,9 @@ main (int argc, char *argv[])
+       gtk_widget_show (widget);
+ 
+       gtk_main ();
+-
++#if !UP_CHECK_VERSION(0, 99, 0)
+ out:
++#endif
+       g_object_unref (settings);
+       g_object_unref (client);
+       g_object_unref (wakeups);
+-- 
+2.0.0.rc2
+
diff -uriNp 
mate-power-manager-1.8.0+dfsg1/debian/patches/0005-Improve-UPower1-support.patch
 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0005-Improve-UPower1-support.patch
--- 
mate-power-manager-1.8.0+dfsg1/debian/patches/0005-Improve-UPower1-support.patch
    1970-01-01 01:00:00.000000000 +0100
+++ 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0005-Improve-UPower1-support.patch
 2014-05-22 10:43:27.560078101 +0200
@@ -0,0 +1,113 @@
+From 1fb28703f76a97421f3554d5c553b06707f890a7 Mon Sep 17 00:00:00 2001
+From: Stefano Karapetsas <stef...@karapetsas.com>
+Date: Thu, 24 Apr 2014 18:17:35 +0200
+Subject: [PATCH 05/15] Improve UPower1 support
+
+---
+ src/gpm-engine.c | 32 +++++++++++++++++++++++---------
+ 1 file changed, 23 insertions(+), 9 deletions(-)
+
+diff --git a/src/gpm-engine.c b/src/gpm-engine.c
+index e6c6bf2..fe458e3 100644
+--- a/src/gpm-engine.c
++++ b/src/gpm-engine.c
+@@ -82,6 +82,9 @@ G_DEFINE_TYPE (GpmEngine, gpm_engine, G_TYPE_OBJECT)
+ 
+ static UpDevice *gpm_engine_get_composite_device (GpmEngine *engine, UpDevice 
*original_device);
+ static UpDevice *gpm_engine_update_composite_device (GpmEngine *engine, 
UpDevice *original_device);
++#if UP_CHECK_VERSION (0, 99, 0)
++static void gpm_engine_device_changed_cb (UpDevice *device, GParamSpec 
*pspec, GpmEngine *engine);
++#endif
+ 
+ typedef enum {
+       GPM_ENGINE_WARNING_NONE = 0,
+@@ -757,6 +760,13 @@ gpm_engine_device_add (GpmEngine *engine, UpDevice 
*device)
+               g_object_get (composite, "state", &state, NULL);
+               g_object_set_data (G_OBJECT(composite), "engine-state-old", 
GUINT_TO_POINTER(state));
+       }
++
++#if UP_CHECK_VERSION (0, 99, 0)
++      if (kind == UP_DEVICE_KIND_BATTERY || kind == UP_DEVICE_KIND_UPS || 
kind == UP_DEVICE_KIND_LINE_POWER)
++              return;
++      g_signal_connect (device, "notify", G_CALLBACK 
(gpm_engine_device_changed_cb), engine);
++#endif
++
+ }
+ 
+ /**
+@@ -851,19 +861,20 @@ gpm_engine_device_removed_cb (UpClient *client, UpDevice 
*device, GpmEngine *eng
+  **/
+ static void
+ #if UP_CHECK_VERSION(0, 99, 0)
+-gpm_engine_device_changed_cb (UpClient *client, GParamSpec *pspec, GpmEngine 
*engine)
+-{
+-      gpm_engine_recalculate_state (engine);
+-}
++gpm_engine_device_changed_cb (UpDevice *device, GParamSpec *pspec, GpmEngine 
*engine)
+ #else
+ gpm_engine_device_changed_cb (UpClient *client, UpDevice *device, GpmEngine 
*engine)
++#endif
+ {
++#if !UP_CHECK_VERSION(0, 99, 0)
+       UpDeviceKind kind;
++#endif
+       UpDeviceState state;
+       UpDeviceState state_old;
+       GpmEngineWarning warning_old;
+       GpmEngineWarning warning;
+ 
++#if !UP_CHECK_VERSION(0, 99, 0)
+       /* get device properties */
+       g_object_get (device,
+                     "kind", &kind,
+@@ -874,6 +885,7 @@ gpm_engine_device_changed_cb (UpClient *client, UpDevice 
*device, GpmEngine *eng
+               egg_debug ("updating because %s changed", 
up_device_get_object_path (device));
+               device = gpm_engine_update_composite_device (engine, device);
+       }
++#endif
+ 
+       /* get device properties (may be composite) */
+       g_object_get (device,
+@@ -917,7 +929,6 @@ gpm_engine_device_changed_cb (UpClient *client, UpDevice 
*device, GpmEngine *eng
+ 
+       gpm_engine_recalculate_state (engine);
+ }
+-#endif
+ 
+ /**
+  * gpm_engine_get_devices:
+@@ -1042,10 +1053,7 @@ gpm_engine_init (GpmEngine *engine)
+                         G_CALLBACK (gpm_engine_device_added_cb), engine);
+       g_signal_connect (engine->priv->client, "device-removed",
+                         G_CALLBACK (gpm_engine_device_removed_cb), engine);
+-#if UP_CHECK_VERSION(0, 99, 0)
+-      g_signal_connect (engine->priv->client, "notify",
+-                        G_CALLBACK (gpm_engine_device_changed_cb), engine);
+-#else
++#if !UP_CHECK_VERSION(0, 99, 0)
+       g_signal_connect (engine->priv->client, "device-changed",
+                         G_CALLBACK (gpm_engine_device_changed_cb), engine);
+ #endif
+@@ -1075,6 +1083,11 @@ gpm_engine_init (GpmEngine *engine)
+ #endif
+ 
+       /* create a fake virtual composite battery */
++#if UP_CHECK_VERSION(0, 99, 0)
++      engine->priv->battery_composite = up_client_get_display_device 
(engine->priv->client);
++      g_signal_connect (engine->priv->client, "notify",
++                        G_CALLBACK (gpm_engine_device_changed_cb), engine);
++#else
+       engine->priv->battery_composite = up_device_new ();
+       g_object_set (engine->priv->battery_composite,
+                     "kind", UP_DEVICE_KIND_BATTERY,
+@@ -1083,6 +1096,7 @@ gpm_engine_init (GpmEngine *engine)
+                     "power-supply", TRUE,
+                     "is-present", TRUE,
+                     NULL);
++#endif
+ 
+       engine->priv->previous_icon = NULL;
+       engine->priv->previous_summary = NULL;
+-- 
+2.0.0.rc2
+
diff -uriNp 
mate-power-manager-1.8.0+dfsg1/debian/patches/0006-Other-round-of-fixes-for-UPower-0.99-API-changes.patch
 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0006-Other-round-of-fixes-for-UPower-0.99-API-changes.patch
--- 
mate-power-manager-1.8.0+dfsg1/debian/patches/0006-Other-round-of-fixes-for-UPower-0.99-API-changes.patch
   1970-01-01 01:00:00.000000000 +0100
+++ 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/0006-Other-round-of-fixes-for-UPower-0.99-API-changes.patch
        2014-05-22 10:43:41.208456112 +0200
@@ -0,0 +1,229 @@
+From 8f734c679de61292f0ae1bd9923fc67801ab041c Mon Sep 17 00:00:00 2001
+From: Stefano Karapetsas <stef...@karapetsas.com>
+Date: Thu, 24 Apr 2014 20:19:01 +0200
+Subject: [PATCH 06/15] Other round of fixes for UPower 0.99 API changes
+
+---
+ src/gpm-engine.c  | 85 ++++++++++++++++++++++++++++++++++++++++++-------------
+ src/gpm-manager.c |  4 ++-
+ 2 files changed, 68 insertions(+), 21 deletions(-)
+
+diff --git a/src/gpm-engine.c b/src/gpm-engine.c
+index fe458e3..56d19e2 100644
+--- a/src/gpm-engine.c
++++ b/src/gpm-engine.c
+@@ -84,7 +84,29 @@ static UpDevice *gpm_engine_get_composite_device (GpmEngine 
*engine, UpDevice *o
+ static UpDevice *gpm_engine_update_composite_device (GpmEngine *engine, 
UpDevice *original_device);
+ #if UP_CHECK_VERSION (0, 99, 0)
+ static void gpm_engine_device_changed_cb (UpDevice *device, GParamSpec 
*pspec, GpmEngine *engine);
+-#endif
++
++#define GPM_ENGINE_WARNING_NONE UP_DEVICE_LEVEL_NONE
++#define GPM_ENGINE_WARNING_DISCHARGING UP_DEVICE_LEVEL_DISCHARGING
++#define GPM_ENGINE_WARNING_LOW UP_DEVICE_LEVEL_LOW
++#define GPM_ENGINE_WARNING_CRITICAL UP_DEVICE_LEVEL_CRITICAL
++#define GPM_ENGINE_WARNING_ACTION UP_DEVICE_LEVEL_ACTION
++
++/**
++ * gpm_engine_get_warning:
++ *
++ * This gets the possible engine state for the device according to the
++ * policy, which could be per-percent, or per-time.
++ *
++ * Return value: A GpmEngine state, e.g. GPM_ENGINE_WARNING_DISCHARGING
++ **/
++static UpDeviceLevel
++gpm_engine_get_warning (GpmEngine *engine, UpDevice *device)
++{
++      UpDeviceLevel warning;
++      g_object_get (device, "warning-level", &warning, NULL);
++      return warning;
++}
++#else
+ 
+ typedef enum {
+       GPM_ENGINE_WARNING_NONE = 0,
+@@ -226,6 +248,7 @@ gpm_engine_get_warning (GpmEngine *engine, UpDevice 
*device)
+  out:
+       return warning_type;
+ }
++#endif
+ 
+ /**
+  * gpm_engine_get_summary:
+@@ -282,12 +305,20 @@ gpm_engine_get_summary (GpmEngine *engine)
+  * Returns the icon
+  **/
+ static gchar *
++#if UP_CHECK_VERSION (0, 99, 0)
++gpm_engine_get_icon_priv (GpmEngine *engine, UpDeviceKind device_kind, 
UpDeviceLevel warning, gboolean use_state)
++#else
+ gpm_engine_get_icon_priv (GpmEngine *engine, UpDeviceKind device_kind, 
GpmEngineWarning warning, gboolean use_state)
++#endif
+ {
+       guint i;
+       GPtrArray *array;
+       UpDevice *device;
++#if UP_CHECK_VERSION (0, 99, 0)
++      UpDeviceLevel warning_temp;
++#else
+       GpmEngineWarning warning_temp;
++#endif
+       UpDeviceKind kind;
+       UpDeviceState state;
+       gboolean is_present;
+@@ -572,6 +603,9 @@ gpm_engine_device_check_capacity (GpmEngine *engine, 
UpDevice *device)
+ static UpDevice *
+ gpm_engine_get_composite_device (GpmEngine *engine, UpDevice *original_device)
+ {
++#if UP_CHECK_VERSION (0, 99, 0)
++      return engine->priv->battery_composite;
++#else
+       guint battery_devices = 0;
+       GPtrArray *array;
+       UpDevice *device;
+@@ -601,6 +635,7 @@ gpm_engine_get_composite_device (GpmEngine *engine, 
UpDevice *original_device)
+ out:
+       /* return composite device or original device */
+       return device;
++#endif
+ }
+ 
+ /**
+@@ -609,6 +644,18 @@ out:
+ static UpDevice *
+ gpm_engine_update_composite_device (GpmEngine *engine, UpDevice 
*original_device)
+ {
++#if UP_CHECK_VERSION (0, 99, 0)
++      gchar *text;
++
++      text = up_device_to_text (engine->priv->battery_composite);
++      egg_debug ("composite:\n%s", text);
++      g_free (text);
++
++      /* force update of icon */
++      gpm_engine_recalculate_state_icon (engine);
++
++      return engine->priv->battery_composite;
++#else
+       guint i;
+       gdouble percentage = 0.0;
+       gdouble energy = 0.0;
+@@ -720,6 +767,7 @@ gpm_engine_update_composite_device (GpmEngine *engine, 
UpDevice *original_device
+ out:
+       /* return composite device or original device */
+       return device;
++#endif
+ }
+ 
+ /**
+@@ -728,7 +776,11 @@ out:
+ static void
+ gpm_engine_device_add (GpmEngine *engine, UpDevice *device)
+ {
++#if UP_CHECK_VERSION (0, 99, 0)
++      UpDeviceLevel warning;
++#else
+       GpmEngineWarning warning;
++#endif
+       UpDeviceState state;
+       UpDeviceKind kind;
+       UpDevice *composite;
+@@ -762,9 +814,9 @@ gpm_engine_device_add (GpmEngine *engine, UpDevice *device)
+       }
+ 
+ #if UP_CHECK_VERSION (0, 99, 0)
+-      if (kind == UP_DEVICE_KIND_BATTERY || kind == UP_DEVICE_KIND_UPS || 
kind == UP_DEVICE_KIND_LINE_POWER)
+-              return;
+       g_signal_connect (device, "notify", G_CALLBACK 
(gpm_engine_device_changed_cb), engine);
++      g_ptr_array_add (engine->priv->array, g_object_ref (device));
++      gpm_engine_recalculate_state (engine);
+ #endif
+ 
+ }
+@@ -820,10 +872,14 @@ out:
+ static void
+ gpm_engine_device_added_cb (UpClient *client, UpDevice *device, GpmEngine 
*engine)
+ {
++#if UP_CHECK_VERSION (0, 99, 0)
++      gpm_engine_device_add (engine, device);
++#else
+       /* add to list */
+       g_ptr_array_add (engine->priv->array, g_object_ref (device));
+ 
+       gpm_engine_recalculate_state (engine);
++#endif
+ }
+ 
+ /**
+@@ -866,15 +922,17 @@ gpm_engine_device_changed_cb (UpDevice *device, 
GParamSpec *pspec, GpmEngine *en
+ gpm_engine_device_changed_cb (UpClient *client, UpDevice *device, GpmEngine 
*engine)
+ #endif
+ {
+-#if !UP_CHECK_VERSION(0, 99, 0)
+       UpDeviceKind kind;
+-#endif
+       UpDeviceState state;
+       UpDeviceState state_old;
++#if UP_CHECK_VERSION(0, 99, 0)
++      UpDeviceLevel warning_old;
++      UpDeviceLevel warning;
++#else
+       GpmEngineWarning warning_old;
+       GpmEngineWarning warning;
++#endif
+ 
+-#if !UP_CHECK_VERSION(0, 99, 0)
+       /* get device properties */
+       g_object_get (device,
+                     "kind", &kind,
+@@ -885,7 +943,6 @@ gpm_engine_device_changed_cb (UpClient *client, UpDevice 
*device, GpmEngine *eng
+               egg_debug ("updating because %s changed", 
up_device_get_object_path (device));
+               device = gpm_engine_update_composite_device (engine, device);
+       }
+-#endif
+ 
+       /* get device properties (may be composite) */
+       g_object_get (device,
+@@ -1070,22 +1127,10 @@ gpm_engine_init (GpmEngine *engine)
+       g_signal_connect (engine->priv->phone, "device-refresh",
+                         G_CALLBACK (phone_device_refresh_cb), engine);
+ 
+-#if UP_CHECK_VERSION(0, 99, 0)
+-      /* coldplug */
+-      array = up_client_get_devices(engine->priv->client);
+-      if (array) {
+-              for (i = 0; i < array->len; i++) {
+-                      UpDevice *device = g_ptr_array_index (array, i);
+-                      gpm_engine_device_added_cb(engine->priv->client, 
device, engine);
+-              }
+-              g_ptr_array_free (array, TRUE);
+-      }
+-#endif
+-
+       /* create a fake virtual composite battery */
+ #if UP_CHECK_VERSION(0, 99, 0)
+       engine->priv->battery_composite = up_client_get_display_device 
(engine->priv->client);
+-      g_signal_connect (engine->priv->client, "notify",
++      g_signal_connect (engine->priv->battery_composite, "notify",
+                         G_CALLBACK (gpm_engine_device_changed_cb), engine);
+ #else
+       engine->priv->battery_composite = up_device_new ();
+diff --git a/src/gpm-manager.c b/src/gpm-manager.c
+index df84cac..09bd0c0 100644
+--- a/src/gpm-manager.c
++++ b/src/gpm-manager.c
+@@ -1858,7 +1858,9 @@ gpm_manager_init (GpmManager *manager)
+                         G_CALLBACK (gpm_manager_settings_changed_cb), 
manager);
+       manager->priv->client = up_client_new ();
+ #if UP_CHECK_VERSION(0, 99, 0)
+-      g_signal_connect (manager->priv->client, "notify",
++      g_signal_connect (manager->priv->client, "notify::lid-is-closed",
++                        G_CALLBACK (gpm_manager_client_changed_cb), manager);
++      g_signal_connect (manager->priv->client, "notify::on-battery",
+                         G_CALLBACK (gpm_manager_client_changed_cb), manager);
+ #else
+       g_signal_connect (manager->priv->client, "changed",
+-- 
+2.0.0.rc2
+
diff -uriNp mate-power-manager-1.8.0+dfsg1/debian/patches/series 
u1-mate-power-manager-1.8.0+dfsg1/debian/patches/series
--- mate-power-manager-1.8.0+dfsg1/debian/patches/series        2014-04-21 
22:45:43.000000000 +0200
+++ u1-mate-power-manager-1.8.0+dfsg1/debian/patches/series     2014-05-22 
10:43:56.152870062 +0200
@@ -1,3 +1,8 @@
 1002_add-keywords-key-to-desktop-files.patch
 2001_omit-gfdl-licensed-help-files.patch
 2002_compile-extra-man-pages.patch
+0001-avoid-levels-is-0-warning-if-no-kbd-backlight-presen.patch
+0002-remove-battery-recall-logic.patch
+0003-port-mate-power-manager-to-upower-0.99-API.patch
+0005-Improve-UPower1-support.patch
+0006-Other-round-of-fixes-for-UPower-0.99-API-changes.patch

Reply via email to