[PATCH] UPower signaling obsolescence

Aleksander Morgado aleksander at aleksander.es
Mon Mar 21 09:16:56 UTC 2016


On 20/03/16 20:39, poma wrote:
> "Newer upower versions no longer emit that signal since this handled by systemd."
> by Michael Biebl <mbiebl at gmail.org>
> https://lists.freedesktop.org/archives/devkit-devel/2014-March/001575.html
> 
> See also "Plans for UPower 1.0"
> by Richard Hughes <hughsient at gmail.com>
> https://lists.freedesktop.org/archives/devkit-devel/2013-January/001339.html
> 
> Signed-off-by: poma <pomidorabelisima at gmail.com>

Yeah, it may be a good idea to remove this. I explicitly avoided talking
about upower in the NEWS, only because of this.

But NetworkManager still has the same build option; is there anything
we're missing? or is it that NM should also remove upower support for
suspend/resume?

> ---
>  configure.ac                  |   8 +--
>  src/Makefile.am               |   5 --
>  src/mm-sleep-monitor-upower.c | 150 ------------------------------------------
>  3 files changed, 2 insertions(+), 161 deletions(-)
>  delete mode 100644 src/mm-sleep-monitor-upower.c
> 
> diff --git a/configure.ac b/configure.ac
> index ada1f5a..3453d51 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -186,7 +186,7 @@ dnl-----------------------------------------------------------------------------
>  dnl Suspend/resume support
>  dnl
>  
> -AC_ARG_WITH(suspend-resume, AS_HELP_STRING([--with-suspend-resume=no|upower|systemd], [Build ModemManager with specific suspend/resume support]))
> +AC_ARG_WITH(suspend-resume, AS_HELP_STRING([--with-suspend-resume=no|systemd], [Build ModemManager with specific suspend/resume support]))
>  
>  if test "x$with_suspend_resume" = "x"; then
>     with_suspend_resume="none"
> @@ -196,20 +196,16 @@ case $with_suspend_resume in
>      none)
>          AC_DEFINE(WITH_SUSPEND_RESUME, 0, [Define if you have suspend-resume support])
>          ;;
> -    upower)
> -        AC_DEFINE(WITH_SUSPEND_RESUME, 1, [Define if you have suspend-resume support])
> -        ;;
>      systemd)
>          PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd >= 209],,
>                            [PKG_CHECK_MODULES(SYSTEMD_INHIBIT, [libsystemd-login >= 183])])
>          AC_DEFINE(WITH_SUSPEND_RESUME, 1, [Define if you have suspend-resume support])
>          ;;
>      *)
> -        AC_MSG_ERROR(--with-suspend-resume must be one of [none, upower, systemd])
> +        AC_MSG_ERROR(--with-suspend-resume must be one of [none, systemd])
>          ;;
>  esac
>  
> -AM_CONDITIONAL(SUSPEND_RESUME_UPOWER,  test "x$with_suspend_resume" = "xupower")
>  AM_CONDITIONAL(SUSPEND_RESUME_SYSTEMD, test "x$with_suspend_resume" = "xsystemd")
>  
>  dnl-----------------------------------------------------------------------------
> diff --git a/src/Makefile.am b/src/Makefile.am
> index bee1dfe..7322a8a 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -295,11 +295,6 @@ if SUSPEND_RESUME_SYSTEMD
>  ModemManager_SOURCES += mm-sleep-monitor.h mm-sleep-monitor-systemd.c
>  endif
>  
> -# Additional suspend/resume support via upower
> -if SUSPEND_RESUME_UPOWER
> -ModemManager_SOURCES += mm-sleep-monitor.h mm-sleep-monitor-upower.c
> -endif
> -
>  # Additional QMI support in ModemManager
>  if WITH_QMI
>  ModemManager_SOURCES += \
> diff --git a/src/mm-sleep-monitor-upower.c b/src/mm-sleep-monitor-upower.c
> deleted file mode 100644
> index 237e3c4..0000000
> --- a/src/mm-sleep-monitor-upower.c
> +++ /dev/null
> @@ -1,150 +0,0 @@
> -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
> -/*
> - * 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.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - *
> - * (C) Copyright 2012 Red Hat, Inc.
> - * Author: Matthias Clasen <mclasen at redhat.com>
> - *
> - * Port to GDBus:
> - * (C) Copyright 2015 Aleksander Morgado <aleksander at aleksander.es>
> - */
> -
> -#include "config.h"
> -
> -#include <errno.h>
> -#include <string.h>
> -#include <sys/stat.h>
> -#include <gio/gio.h>
> -
> -#include "mm-log.h"
> -#include "mm-utils.h"
> -#include "mm-sleep-monitor.h"
> -
> -#define UPOWER_NAME       "org.freedesktop.UPower"
> -#define UPOWER_PATH       "/org/freedesktop/UPower"
> -#define UPOWER_INTERFACE  "org.freedesktop.UPower"
> -
> -struct _MMSleepMonitor {
> -    GObject parent_instance;
> -
> -    GDBusProxy *upower_proxy;
> -};
> -
> -struct _MMSleepMonitorClass {
> -    GObjectClass parent_class;
> -
> -    void (*sleeping) (MMSleepMonitor *monitor);
> -    void (*resuming) (MMSleepMonitor *monitor);
> -};
> -
> -
> -enum {
> -    SLEEPING,
> -    RESUMING,
> -    LAST_SIGNAL,
> -};
> -static guint signals[LAST_SIGNAL] = {0};
> -
> -G_DEFINE_TYPE (MMSleepMonitor, mm_sleep_monitor, G_TYPE_OBJECT);
> -
> -/********************************************************************/
> -
> -static void
> -signal_cb (GDBusProxy  *proxy,
> -           const gchar *sendername,
> -           const gchar *signalname,
> -           GVariant    *args,
> -           gpointer     data)
> -{
> -    MMSleepMonitor *self = data;
> -
> -    if (strcmp (signalname, "Sleeping") == 0) {
> -        mm_dbg ("[sleep-monitor] received UPower sleeping signal");
> -        g_signal_emit (self, signals[SLEEPING], 0);
> -    } else if (strcmp (signalname, "Resuming") == 0) {
> -        mm_dbg ("[sleep-monitor] received UPower resuming signal");
> -        g_signal_emit (self, signals[RESUMING], 0);
> -    }
> -}
> -
> -static void
> -on_proxy_acquired (GObject *object,
> -                   GAsyncResult *res,
> -                   MMSleepMonitor *self)
> -{
> -    GError *error = NULL;
> -
> -    self->upower_proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
> -    if (!self->upower_proxy) {
> -        mm_warn ("[sleep-monitor] failed to acquire UPower proxy: %s", error->message);
> -        g_clear_error (&error);
> -        return;
> -    }
> -
> -    g_signal_connect (self->upower_proxy, "g-signal", G_CALLBACK (signal_cb), self);
> -}
> -
> -static void
> -mm_sleep_monitor_init (MMSleepMonitor *self)
> -{
> -    g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
> -                              G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START |
> -                              G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
> -                              NULL,
> -                              UPOWER_NAME, UPOWER_PATH, UPOWER_INTERFACE,
> -                              NULL,
> -                              (GAsyncReadyCallback) on_proxy_acquired, self);
> -}
> -
> -static void
> -finalize (GObject *object)
> -{
> -    MMSleepMonitor *self = MM_SLEEP_MONITOR (object);
> -
> -    if (self->upower_proxy)
> -        g_object_unref (self->upower_proxy);
> -
> -    if (G_OBJECT_CLASS (mm_sleep_monitor_parent_class)->finalize != NULL)
> -        G_OBJECT_CLASS (mm_sleep_monitor_parent_class)->finalize (object);
> -}
> -
> -static void
> -mm_sleep_monitor_class_init (MMSleepMonitorClass *klass)
> -{
> -    GObjectClass *gobject_class;
> -
> -    gobject_class = G_OBJECT_CLASS (klass);
> -
> -    gobject_class->finalize = finalize;
> -
> -    signals[SLEEPING] = g_signal_new (MM_SLEEP_MONITOR_SLEEPING,
> -                                      MM_TYPE_SLEEP_MONITOR,
> -                                      G_SIGNAL_RUN_LAST,
> -                                      G_STRUCT_OFFSET (MMSleepMonitorClass, sleeping),
> -                                      NULL,                   /* accumulator      */
> -                                      NULL,                   /* accumulator data */
> -                                      g_cclosure_marshal_VOID__VOID,
> -                                      G_TYPE_NONE, 0);
> -    signals[RESUMING] = g_signal_new (MM_SLEEP_MONITOR_RESUMING,
> -                                      MM_TYPE_SLEEP_MONITOR,
> -                                      G_SIGNAL_RUN_LAST,
> -                                      G_STRUCT_OFFSET (MMSleepMonitorClass, resuming),
> -                                      NULL,                   /* accumulator      */
> -                                      NULL,                   /* accumulator data */
> -                                      g_cclosure_marshal_VOID__VOID,
> -                                      G_TYPE_NONE, 0);
> -}
> -
> -MM_DEFINE_SINGLETON_GETTER (MMSleepMonitor, mm_sleep_monitor_get, MM_TYPE_SLEEP_MONITOR);
> 


-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list