r35011 - in /desktop/experimental/gnome-control-center/debian: ./ patches/

sjoerd at users.alioth.debian.org sjoerd at users.alioth.debian.org
Fri May 18 22:46:12 UTC 2012


Author: sjoerd
Date: Fri May 18 22:46:11 2012
New Revision: 35011

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=35011
Log:
* New upstream release
* Sync with Ubuntu:
  + debian/control.in: Update buld-depends
  + debian/patches/02_no_assert_on_null_streams.patch:
    - Don't crash on null streams (bgo: #633728, LP: #741155)
  + debian/patches/90_force_fallback.patch:
    - Refreshed
  + debian/patches/06_handle_passwd_with_ldap.patch:
    - Refreshed
* Drop libgnome-control-center1 package, gnome-control-center no longer
  builds a library.
* debian/patches/00git_handle_media_dialog_close.patch,
  patches/91_configure_cheese.patch,
  debian/patches/08_dont_crash_on_null_territories.patch,
  debian/patches/92_link_language_chooser_against_fontconfig.patch:
  + All Removed, fixed upstream
* debian/rules: Don't use -Wl,-z,defs as it cause the panel plugins to fail
  to build
* debian/gnome-control-center-data.install: gnome-control-center no longer
  ships a manual.

Added:
    desktop/experimental/gnome-control-center/debian/patches/02_no_assert_on_null_streams.patch
    desktop/experimental/gnome-control-center/debian/patches/revert_git_datetime_port.patch
Removed:
    desktop/experimental/gnome-control-center/debian/libgnome-control-center1.install
    desktop/experimental/gnome-control-center/debian/patches/00git_handle_media_dialog_close.patch
    desktop/experimental/gnome-control-center/debian/patches/08_dont_crash_on_null_territories.patch
    desktop/experimental/gnome-control-center/debian/patches/91_configure_cheese.patch
    desktop/experimental/gnome-control-center/debian/patches/92_link_language_chooser_against_fontconfig.patch
Modified:
    desktop/experimental/gnome-control-center/debian/changelog
    desktop/experimental/gnome-control-center/debian/control
    desktop/experimental/gnome-control-center/debian/control.in
    desktop/experimental/gnome-control-center/debian/gnome-control-center-data.install
    desktop/experimental/gnome-control-center/debian/patches/06_handle_passwd_with_ldap.patch
    desktop/experimental/gnome-control-center/debian/patches/90_force_fallback.patch
    desktop/experimental/gnome-control-center/debian/patches/series
    desktop/experimental/gnome-control-center/debian/rules

Modified: desktop/experimental/gnome-control-center/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/changelog?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/changelog [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/changelog [utf-8] Fri May 18 22:46:11 2012
@@ -1,3 +1,28 @@
+gnome-control-center (1:3.4.2-1) UNRELEASED; urgency=low
+
+  * New upstream release
+  * Sync with Ubuntu:
+    + debian/control.in: Update buld-depends
+    + debian/patches/02_no_assert_on_null_streams.patch:
+      - Don't crash on null streams (bgo: #633728, LP: #741155)
+    + debian/patches/90_force_fallback.patch:
+      - Refreshed
+    + debian/patches/06_handle_passwd_with_ldap.patch:
+      - Refreshed
+  * Drop libgnome-control-center1 package, gnome-control-center no longer
+    builds a library.
+  * debian/patches/00git_handle_media_dialog_close.patch,
+    patches/91_configure_cheese.patch,
+    debian/patches/08_dont_crash_on_null_territories.patch,
+    debian/patches/92_link_language_chooser_against_fontconfig.patch:
+    + All Removed, fixed upstream
+  * debian/rules: Don't use -Wl,-z,defs as it cause the panel plugins to fail
+    to build
+  * debian/gnome-control-center-data.install: gnome-control-center no longer
+    ships a manual.
+
+ -- Sjoerd Simons <sjoerd at debian.org>  Sat, 19 May 2012 00:31:41 +0200
+
 gnome-control-center (1:3.2.2-3) unstable; urgency=low
 
   * debian/patches/92_link_language_chooser_against_fontconfig.patch: Link

Modified: desktop/experimental/gnome-control-center/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/control?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/control [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/control [utf-8] Fri May 18 22:46:11 2012
@@ -19,8 +19,8 @@
                gnome-common,
                gnome-doc-utils (>= 0.3.2),
                gnome-pkg-tools (>= 0.10),
-               gnome-settings-daemon-dev (>= 2.91.94),
-               gsettings-desktop-schemas-dev (>= 3.0.2),
+               gnome-settings-daemon-dev (>= 3.3.91),
+               gsettings-desktop-schemas-dev (>= 3.4.0),
                intltool (>= 0.37.1),
                libcanberra-gtk3-dev,
                libcheese-gtk-dev (>= 2.91.91.1),
@@ -36,16 +36,17 @@
                libgnomekbd-dev (>= 2.91.91),
                libgoa-1.0-dev,
                libgstreamer-plugins-base0.10-dev,
-               libgtk-3-dev (>= 3.1.19),
+               libgtk-3-dev (>= 3.3.5),
                libgtop2-dev,
                libnm-glib-dev (>= 0.9) [linux-any],
                libnm-gtk-dev (>= 0.9) [linux-any],
                libnm-util-dev (>= 0.9) [linux-any],
                libnotify-dev (>= 0.7.3),
-               libpolkit-gobject-1-dev (>= 0.97),
+               libpolkit-gobject-1-dev (>= 0.103),
                libpulse-dev,
                libsocialweb-client-dev,
                libupower-glib-dev (>= 0.9.1),
+               libwacom-dev,
                libx11-dev,
                libxft-dev (>= 2.1.2),
                libxklavier-dev (>= 5.1),
@@ -70,9 +71,8 @@
          gnome-icon-theme (>= 2.24),
          gnome-icon-theme-symbolic,
          gnome-menus (>= 2.12.0),
-         gnome-settings-daemon (>= 3.0.0),
-         gsettings-desktop-schemas (>= 3.0.2),
-         libgnome-control-center1 (= ${binary:Version}),
+         gnome-settings-daemon (>= 3.3.91),
+         gsettings-desktop-schemas (>= 3.4.0)
 Recommends: cups-pk-helper,
             gnome-online-accounts,
             gnome-session,
@@ -124,11 +124,3 @@
 Description: configuration applets for GNOME - data files
  This package contains data files (icons, pixmaps, locales files) needed by
  the configuration applets in the gnome-control-center package.
-
-Package: libgnome-control-center1
-Architecture: any
-Section: libs
-Depends: ${misc:Depends},
-         ${shlibs:Depends}
-Description: utilities to configure the GNOME desktop
- This package contains the library used by Control Center panels

Modified: desktop/experimental/gnome-control-center/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/control.in?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/control.in [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/control.in [utf-8] Fri May 18 22:46:11 2012
@@ -14,8 +14,8 @@
                gnome-common,
                gnome-doc-utils (>= 0.3.2),
                gnome-pkg-tools (>= 0.10),
-               gnome-settings-daemon-dev (>= 2.91.94),
-               gsettings-desktop-schemas-dev (>= 3.0.2),
+               gnome-settings-daemon-dev (>= 3.3.91),
+               gsettings-desktop-schemas-dev (>= 3.4.0),
                intltool (>= 0.37.1),
                libcanberra-gtk3-dev,
                libcheese-gtk-dev (>= 2.91.91.1),
@@ -31,16 +31,17 @@
                libgnomekbd-dev (>= 2.91.91),
                libgoa-1.0-dev,
                libgstreamer-plugins-base0.10-dev,
-               libgtk-3-dev (>= 3.1.19),
+               libgtk-3-dev (>= 3.3.5),
                libgtop2-dev,
                libnm-glib-dev (>= 0.9) [linux-any],
                libnm-gtk-dev (>= 0.9) [linux-any],
                libnm-util-dev (>= 0.9) [linux-any],
                libnotify-dev (>= 0.7.3),
-               libpolkit-gobject-1-dev (>= 0.97),
+               libpolkit-gobject-1-dev (>= 0.103),
                libpulse-dev,
                libsocialweb-client-dev,
                libupower-glib-dev (>= 0.9.1),
+               libwacom-dev,
                libx11-dev,
                libxft-dev (>= 2.1.2),
                libxklavier-dev (>= 5.1),
@@ -65,9 +66,8 @@
          gnome-icon-theme (>= 2.24),
          gnome-icon-theme-symbolic,
          gnome-menus (>= 2.12.0),
-         gnome-settings-daemon (>= 3.0.0),
-         gsettings-desktop-schemas (>= 3.0.2),
-         libgnome-control-center1 (= ${binary:Version}),
+         gnome-settings-daemon (>= 3.3.91),
+         gsettings-desktop-schemas (>= 3.4.0)
 Recommends: cups-pk-helper,
             gnome-online-accounts,
             gnome-session,
@@ -119,11 +119,3 @@
 Description: configuration applets for GNOME - data files
  This package contains data files (icons, pixmaps, locales files) needed by
  the configuration applets in the gnome-control-center package.
-
-Package: libgnome-control-center1
-Architecture: any
-Section: libs
-Depends: ${misc:Depends},
-         ${shlibs:Depends}
-Description: utilities to configure the GNOME desktop
- This package contains the library used by Control Center panels

Modified: desktop/experimental/gnome-control-center/debian/gnome-control-center-data.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/gnome-control-center-data.install?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/gnome-control-center-data.install [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/gnome-control-center-data.install [utf-8] Fri May 18 22:46:11 2012
@@ -1,10 +1,8 @@
 etc/xdg/autostart
 etc/xdg/menus
 usr/share/gnome-control-center
-usr/share/gnome/help/control-center
 usr/share/sounds
 usr/share/desktop-directories
 usr/share/locale
 usr/share/icons
 usr/share/pixmaps/faces
-usr/share/omf/

Added: desktop/experimental/gnome-control-center/debian/patches/02_no_assert_on_null_streams.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/patches/02_no_assert_on_null_streams.patch?rev=35011&op=file
==============================================================================
--- desktop/experimental/gnome-control-center/debian/patches/02_no_assert_on_null_streams.patch (added)
+++ desktop/experimental/gnome-control-center/debian/patches/02_no_assert_on_null_streams.patch [utf-8] Fri May 18 22:46:11 2012
@@ -1,0 +1,17 @@
+Author: Rodrigo Moya <rodrigo.moya at canonical.com>
+Description: Temporary patch to not assert on NULL streams (LP: #741155)
+
+Index: gnome-control-center-3.3.91/panels/sound/gvc-speaker-test.c
+===================================================================
+--- gnome-control-center-3.3.91.orig/panels/sound/gvc-speaker-test.c	2012-03-05 15:04:55.000000000 +0100
++++ gnome-control-center-3.3.91/panels/sound/gvc-speaker-test.c	2012-03-06 17:52:14.175082968 +0100
+@@ -393,7 +393,8 @@
+         }
+         g_slist_free (sinks);
+ 
+-        g_assert (stream);
++        if (stream == NULL)
++		return NULL;
+ 
+         g_debug ("Found stream '%s' for card '%s'",
+                  gvc_mixer_stream_get_name (stream),

Modified: desktop/experimental/gnome-control-center/debian/patches/06_handle_passwd_with_ldap.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/patches/06_handle_passwd_with_ldap.patch?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/patches/06_handle_passwd_with_ldap.patch [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/patches/06_handle_passwd_with_ldap.patch [utf-8] Fri May 18 22:46:11 2012
@@ -4,9 +4,11 @@
 Bug-Ubuntu: https:/launchpad.net/bugs/607357
 Forwarded: no
 
---- a/panels/user-accounts/run-passwd.c
-+++ b/panels/user-accounts/run-passwd.c
-@@ -408,7 +408,7 @@ io_watch_stdout (GIOChannel *source, GIO
+Index: gnome-control-center-3.3.91/panels/user-accounts/run-passwd.c
+===================================================================
+--- gnome-control-center-3.3.91.orig/panels/user-accounts/run-passwd.c	2011-08-25 17:09:31.000000000 +0200
++++ gnome-control-center-3.3.91/panels/user-accounts/run-passwd.c	2012-03-06 17:52:14.335082975 +0100
+@@ -408,7 +408,7 @@
  
                          if (is_string_complete (str->str, "assword: ", "failure", "wrong", "error", NULL)) {
  

Modified: desktop/experimental/gnome-control-center/debian/patches/90_force_fallback.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/patches/90_force_fallback.patch?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/patches/90_force_fallback.patch [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/patches/90_force_fallback.patch [utf-8] Fri May 18 22:46:11 2012
@@ -1,8 +1,8 @@
-Index: gnome-control-center-3.1.92/panels/info/info.ui
+Index: gnome-control-center-3.3.91/panels/info/info.ui
 ===================================================================
---- gnome-control-center-3.1.92.orig/panels/info/info.ui	2011-09-23 18:03:09.000000000 +0200
-+++ gnome-control-center-3.1.92/panels/info/info.ui	2011-09-23 18:04:30.684825851 +0200
-@@ -661,7 +661,7 @@
+--- gnome-control-center-3.3.91.orig/panels/info/info.ui	2012-03-06 17:52:14.787082997 +0100
++++ gnome-control-center-3.3.91/panels/info/info.ui	2012-03-06 17:52:14.943083005 +0100
+@@ -1191,7 +1191,7 @@
                              </child>
                              <child>
                                <object class="GtkLabel" id="fallback-label">
@@ -11,7 +11,7 @@
                                  <property name="can_focus">False</property>
                                  <property name="xalign">1</property>
                                  <property name="label" translatable="yes" comments="Hardware is not able to run GNOME 3's shell, so we might want to force running the 'Fallback' experience.">Forced _Fallback Mode</property>
-@@ -710,7 +710,7 @@
+@@ -1240,7 +1240,7 @@
                              </child>
                              <child>
                                <object class="GtkHBox" id="graphics_fallback_switch_box">

Added: desktop/experimental/gnome-control-center/debian/patches/revert_git_datetime_port.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/patches/revert_git_datetime_port.patch?rev=35011&op=file
==============================================================================
--- desktop/experimental/gnome-control-center/debian/patches/revert_git_datetime_port.patch (added)
+++ desktop/experimental/gnome-control-center/debian/patches/revert_git_datetime_port.patch [utf-8] Fri May 18 22:46:11 2012
@@ -1,0 +1,4666 @@
+From a8d6fbaaffadec8b3731a69fc8bbdf7592b62300 Mon Sep 17 00:00:00 2001
+From: Sjoerd Simons <sjoerd at luon.net>
+Date: Fri, 18 May 2012 23:22:42 +0200
+Subject: [PATCH] Revert use of datetimed
+
+---
+ configure.ac                                       |    2 +-
+ panels/datetime/Makefile.am                        |   50 +-
+ panels/datetime/cc-datetime-panel.c                |  252 +-
+ panels/datetime/dtm.c                              | 3066 ++++++++++++++++++++
+ panels/datetime/dtm.h                              |  475 +++
+ .../org.gnome.controlcenter.datetime.policy.in     |   21 -
+ panels/datetime/set-timezone.c                     |  479 +++
+ panels/datetime/set-timezone.h                     |   57 +
+ panels/datetime/timedated1-interface.xml           |   27 -
+ po/POTFILES.in                                     |    1 -
+ 10 files changed, 4181 insertions(+), 249 deletions(-)
+ create mode 100644 panels/datetime/dtm.c
+ create mode 100644 panels/datetime/dtm.h
+ delete mode 100644 panels/datetime/org.gnome.controlcenter.datetime.policy.in
+ create mode 100644 panels/datetime/set-timezone.c
+ create mode 100644 panels/datetime/set-timezone.h
+ delete mode 100644 panels/datetime/timedated1-interface.xml
+
+diff --git a/configure.ac b/configure.ac
+index d496365..4fcba4f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -94,7 +94,7 @@ PKG_CHECK_MODULES(LIBSHORTCUTS, $COMMON_MODULES x11)
+ PKG_CHECK_MODULES(SHELL, $COMMON_MODULES libgnome-menu-3.0 gio-unix-2.0 x11)
+ PKG_CHECK_MODULES(BACKGROUND_PANEL, $COMMON_MODULES libxml-2.0 gnome-desktop-3.0
+                   gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION)
+-PKG_CHECK_MODULES(DATETIME_PANEL, $COMMON_MODULES
++PKG_CHECK_MODULES(DATETIME_PANEL, $COMMON_MODULES dbus-glib-1
+                   gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+                   polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+                   gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION)
+diff --git a/panels/datetime/Makefile.am b/panels/datetime/Makefile.am
+index 65ee027..e32929f 100644
+--- a/panels/datetime/Makefile.am
++++ b/panels/datetime/Makefile.am
+@@ -98,24 +98,11 @@ check-local: test-timezone-gfx test-endianess test-timezone
+ ccpanelsdir = $(PANELS_DIR)
+ ccpanels_LTLIBRARIES = libdate_time.la
+ 
+-
+-# This requires running d-bus session and accessible timedate1 daemon
+-# FIXME: need to find a way how to filter out unnecessary d-bus stuff (introspectable, properties)
+-#timedated1-interface.xml:
+-#	gdbus introspect					\
+-#		--xml						\
+-#		--system					\
+-#		--dest org.freedesktop.timedate1		\
+-#		--object-path /org/freedesktop/timedate1	\
+-#		 > timedated1-interface.xml
+-
+-dbus_built_sources = timedated.c timedated.h
+-timedated.c: timedated.h
+-timedated.h: Makefile.am timedated1-interface.xml
+-	gdbus-codegen						\
+-		--interface-prefix org.freedesktop.		\
+-		--generate-c-code timedated			\
+-		$(srcdir)/timedated1-interface.xml
++# FIXME add a way to regenerate the dtm.[ch]
++# gdbus-codegen --generate-c-code dtm  --interface-prefix org.gnome.SettingsDaemon  /path/to/gnome-settings-daemon/plugins/datetime/gsd-datetime-mechanism.xml
++# See also:
++# https://bugzilla.gnome.org/show_bug.cgi?id=650875
++# https://bugzilla.gnome.org/show_bug.cgi?id=650874
+ 
+ libdate_time_la_SOURCES =	\
+ 	datetime-module.c	\
+@@ -123,39 +110,22 @@ libdate_time_la_SOURCES =	\
+ 	cc-datetime-panel.h	\
+ 	cc-timezone-map.c	\
+ 	cc-timezone-map.h	\
++	dtm.c			\
++	dtm.h			\
+ 	date-endian.c		\
+ 	date-endian.h		\
+-	tz.c tz.h		\
+-	$(dbus_built_sources)	\
+-	$(NULL)
++	tz.c tz.h
+ 
+ libdate_time_la_LIBADD = $(PANEL_LIBS) $(DATETIME_PANEL_LIBS)
+ libdate_time_la_LDFLAGS = $(PANEL_LDFLAGS)
+ 
+-
+-polkitdir = $(datadir)/polkit-1/actions
+-polkit_in_files = org.gnome.controlcenter.datetime.policy.in
+-
+- at INTLTOOL_POLICY_RULE@
+-polkit_DATA = $(polkit_in_files:.policy.in=.policy)
+-
+-
+ @INTLTOOL_DESKTOP_RULE@
+ 
+ desktopdir = $(datadir)/applications
+ desktop_in_files = gnome-datetime-panel.desktop.in
+ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ 
+-CLEANFILES =					\
+-	$(desktop_in_files)			\
+-	$(desktop_DATA)				\
+-	$(dbus_built_sources)			\
+-	org.gnome.controlcenter.datetime.policy
+-
+-EXTRA_DIST =				\
+-	timedated1-interface.xml	\
+-	$(polkit_in_files)
+-
+-BUILT_SOURCES = $(dbus_built_sources)
++CLEANFILES = $(desktop_in_files) $(desktop_DATA)
+ 
+ -include $(top_srcdir)/git.mk
++
+diff --git a/panels/datetime/cc-datetime-panel.c b/panels/datetime/cc-datetime-panel.c
+index d229e94..7e3e909 100644
+--- a/panels/datetime/cc-datetime-panel.c
++++ b/panels/datetime/cc-datetime-panel.c
+@@ -24,7 +24,7 @@
+ 
+ #include <sys/time.h>
+ #include "cc-timezone-map.h"
+-#include "timedated.h"
++#include "dtm.h"
+ #include "date-endian.h"
+ #define GNOME_DESKTOP_USE_UNSTABLE_API
+ 
+@@ -82,7 +82,7 @@ struct _CcDateTimePanelPrivate
+ 
+   GnomeWallClock *clock_tracker;
+ 
+-  Timedate1 *dtm;
++  DateTimeMechanism *dtm;
+   GCancellable *cancellable;
+ 
+   GPermission *permission;
+@@ -300,9 +300,9 @@ set_time_cb (GObject      *source,
+   GError *error;
+ 
+   error = NULL;
+-  if (!timedate1_call_set_time_finish (self->priv->dtm,
+-                                       res,
+-                                       &error))
++  if (!date_time_mechanism_call_set_time_finish (self->priv->dtm,
++                                                 res,
++                                                 &error))
+     {
+       /* TODO: display any error in a user friendly way */
+       g_warning ("Could not set system time: %s", error->message);
+@@ -323,9 +323,9 @@ set_timezone_cb (GObject      *source,
+   GError *error;
+ 
+   error = NULL;
+-  if (!timedate1_call_set_timezone_finish (self->priv->dtm,
+-                                           res,
+-                                           &error))
++  if (!date_time_mechanism_call_set_timezone_finish (self->priv->dtm,
++                                                     res,
++                                                     &error))
+     {
+       /* TODO: display any error in a user friendly way */
+       g_warning ("Could not set system timezone: %s", error->message);
+@@ -342,9 +342,9 @@ set_using_ntp_cb (GObject      *source,
+   GError *error;
+ 
+   error = NULL;
+-  if (!timedate1_call_set_ntp_finish (self->priv->dtm,
+-                                      res,
+-                                      &error))
++  if (!date_time_mechanism_call_set_using_ntp_finish (self->priv->dtm,
++                                                      res,
++                                                      &error))
+     {
+       /* TODO: display any error in a user friendly way */
+       g_warning ("Could not set system to use NTP: %s", error->message);
+@@ -357,16 +357,14 @@ queue_set_datetime (CcDateTimePanel *self)
+ {
+   gint64 unixtime;
+ 
+-  /* timedated expects number of microseconds since 1 Jan 1970 UTC */
++  /* for now just do it */
+   unixtime = g_date_time_to_unix (self->priv->date);
+ 
+-  timedate1_call_set_time (self->priv->dtm,
+-                           unixtime * 1000000,
+-                           FALSE,
+-                           TRUE,
+-                           self->priv->cancellable,
+-                           set_time_cb,
+-                           self);
++  date_time_mechanism_call_set_time (self->priv->dtm,
++                                     unixtime,
++                                     self->priv->cancellable,
++                                     set_time_cb,
++                                     self);
+ }
+ 
+ static void
+@@ -377,12 +375,11 @@ queue_set_ntp (CcDateTimePanel *self)
+   /* for now just do it */
+   using_ntp = gtk_switch_get_active (GTK_SWITCH (W("network_time_switch")));
+ 
+-  timedate1_call_set_ntp (self->priv->dtm,
+-                          using_ntp,
+-                          TRUE,
+-                          self->priv->cancellable,
+-                          set_using_ntp_cb,
+-                          self);
++  date_time_mechanism_call_set_using_ntp (self->priv->dtm,
++                                          using_ntp,
++                                          self->priv->cancellable,
++                                          set_using_ntp_cb,
++                                          self);
+ }
+ 
+ static void
+@@ -391,12 +388,11 @@ queue_set_timezone (CcDateTimePanel *self)
+   /* for now just do it */
+   if (self->priv->current_location)
+     {
+-      timedate1_call_set_timezone (self->priv->dtm,
+-                                   self->priv->current_location->zone,
+-                                   TRUE,
+-                                   self->priv->cancellable,
+-                                   set_timezone_cb,
+-                                   self);
++      date_time_mechanism_call_set_timezone (self->priv->dtm,
++                                             self->priv->current_location->zone,
++                                             self->priv->cancellable,
++                                             set_timezone_cb,
++                                             self);
+     }
+ }
+ 
+@@ -553,23 +549,46 @@ location_changed_cb (CcTimezoneMap   *map,
+ }
+ 
+ static void
+-get_initial_timezone (CcDateTimePanel *self)
++get_timezone_cb (GObject      *source,
++                 GAsyncResult *res,
++                 gpointer      user_data)
+ {
+-  const gchar *timezone;
++  CcDateTimePanel *self = user_data;
++  GtkWidget *widget;
++  gchar *timezone;
++  GError *error;
+ 
+-  if (self->priv->dtm)
+-    timezone = timedate1_get_timezone (self->priv->dtm);
++  error = NULL;
++  if (!date_time_mechanism_call_get_timezone_finish (self->priv->dtm, &timezone, res, &error))
++    {
++      g_warning ("Could not get current timezone: %s", error->message);
++      g_error_free (error);
++    }
+   else
+-    timezone = NULL;
+-
+-  if (timezone == NULL ||
+-      !cc_timezone_map_set_timezone (CC_TIMEZONE_MAP (self->priv->map), timezone))
+     {
+-      g_warning ("Timezone '%s' is unhandled, setting %s as default", timezone ? timezone : "(null)", DEFAULT_TZ);
+-      cc_timezone_map_set_timezone (CC_TIMEZONE_MAP (self->priv->map), DEFAULT_TZ);
++      if (!cc_timezone_map_set_timezone (CC_TIMEZONE_MAP (self->priv->map), timezone))
++        {
++          g_warning ("Timezone '%s' is unhandled, setting %s as default", timezone, DEFAULT_TZ);
++          cc_timezone_map_set_timezone (CC_TIMEZONE_MAP (self->priv->map), DEFAULT_TZ);
++        }
++      self->priv->current_location = cc_timezone_map_get_location (CC_TIMEZONE_MAP (self->priv->map));
++      update_timezone (self);
+     }
+-  self->priv->current_location = cc_timezone_map_get_location (CC_TIMEZONE_MAP (self->priv->map));
+-  update_timezone (self);
++
++  /* now that the initial state is loaded set connect the signals */
++  widget = (GtkWidget*) gtk_builder_get_object (self->priv->builder,
++                                                "region_combobox");
++  g_signal_connect (widget, "changed", G_CALLBACK (region_changed_cb), self);
++
++  widget = (GtkWidget*) gtk_builder_get_object (self->priv->builder,
++                                                "city_combobox");
++  g_signal_connect (widget, "changed", G_CALLBACK (city_changed_cb), self);
++
++  g_signal_connect (self->priv->map, "location-changed",
++                    G_CALLBACK (location_changed_cb), self);
++
++
++  g_free (timezone);
+ }
+ 
+ /* load region and city tree models */
+@@ -700,13 +719,9 @@ update_widget_state_for_ntp (CcDateTimePanel *panel,
+                              gboolean         using_ntp)
+ {
+   CcDateTimePanelPrivate *priv = panel->priv;
+-  gboolean allowed;
+-
+-  /* need to check polkit before revealing to user */
+-  allowed = (! priv->permission || g_permission_get_allowed (priv->permission));
+ 
+-  gtk_widget_set_sensitive (W("table1"), !using_ntp && allowed);
+-  gtk_widget_set_sensitive (W("table2"), !using_ntp && allowed);
++  gtk_widget_set_sensitive (W("table1"), !using_ntp);
++  gtk_widget_set_sensitive (W("table2"), !using_ntp);
+ }
+ 
+ static void
+@@ -815,82 +830,7 @@ on_permission_changed (GPermission *permission,
+   gtk_widget_set_sensitive (W("map-vbox"), allowed);
+   gtk_widget_set_sensitive (W("hbox2"), allowed);
+   gtk_widget_set_sensitive (W("alignment2"), allowed);
+-  update_widget_state_for_ntp (data, using_ntp);
+-}
+-
+-static void
+-update_ntp_switch_from_system (CcDateTimePanel *self)
+-{
+-  CcDateTimePanelPrivate *priv = self->priv;
+-  gboolean using_ntp;
+-  GtkWidget *switch_widget;
+-
+-  using_ntp = timedate1_get_ntp (self->priv->dtm);
+-
+-  switch_widget = W("network_time_switch");
+-  g_signal_handlers_block_by_func (switch_widget, change_ntp, self);
+-  gtk_switch_set_active (GTK_SWITCH (switch_widget), using_ntp);
+-  update_widget_state_for_ntp (self, using_ntp);
+-  g_signal_handlers_unblock_by_func (switch_widget, change_ntp, self);
+-}
+-
+-static void
+-on_ntp_changed (CcDateTimePanel *self)
+-{
+-  update_ntp_switch_from_system (self);
+-}
+-
+-static void
+-on_timezone_changed (CcDateTimePanel *self)
+-{
+-  CcDateTimePanelPrivate *priv = self->priv;
+-  GtkWidget *region_combo, *city_combo;
+-
+-  region_combo = W("region_combobox");
+-  city_combo = W("city_combobox");
+-
+-  g_signal_handlers_block_by_func (region_combo, region_changed_cb, self);
+-  g_signal_handlers_block_by_func (city_combo, city_changed_cb, self);
+-  g_signal_handlers_block_by_func (self->priv->map, location_changed_cb, self);
+-
+-  get_initial_timezone (self);
+-
+-  g_signal_handlers_unblock_by_func (region_combo, region_changed_cb, self);
+-  g_signal_handlers_unblock_by_func (city_combo, city_changed_cb, self);
+-  g_signal_handlers_unblock_by_func (self->priv->map, location_changed_cb, self);
+-}
+-
+-static void
+-on_timedated_properties_changed (GDBusProxy       *proxy,
+-                                 GVariant         *changed_properties,
+-                                 const gchar     **invalidated_properties,
+-                                 CcDateTimePanel  *self)
+-{
+-  GError *error;
+-  GVariant *variant;
+-  GVariant *v;
+-  guint i;
+-
+-  if (invalidated_properties != NULL)
+-    for (i = 0; invalidated_properties[i] != NULL; i++) {
+-        error = NULL;
+-        /* See https://bugs.freedesktop.org/show_bug.cgi?id=37632 for the reason why we're doing this */
+-        variant = g_dbus_proxy_call_sync (proxy,
+-                                          "org.freedesktop.DBus.Properties.Get",
+-                                          g_variant_new ("(ss)", "org.freedesktop.timedate1", invalidated_properties[i]),
+-                                          G_DBUS_CALL_FLAGS_NONE,
+-                                          -1,
+-                                          NULL,
+-                                          &error);
+-        if (variant == NULL) {
+-                g_warning ("Failed to get property '%s': %s", invalidated_properties[i], error->message);
+-                g_error_free (error);
+-        } else {
+-                g_variant_get (variant, "(v)", &v);
+-                g_dbus_proxy_set_cached_property (proxy, invalidated_properties[i], v);
+-                g_variant_unref (variant);
+-        }
+-    }
++  gtk_widget_set_sensitive (W("table1"), allowed && !using_ntp);
+ }
+ 
+ static void
+@@ -941,6 +881,8 @@ cc_date_time_panel_init (CcDateTimePanel *self)
+   GtkTreeModelFilter *city_modelfilter;
+   GtkTreeModelSort *city_modelsort;
+   guint i, num_days;
++  gboolean using_ntp;
++  gboolean can_use_ntp;
+   int ret;
+   DateEndianess endianess;
+   GError *error;
+@@ -949,12 +891,12 @@ cc_date_time_panel_init (CcDateTimePanel *self)
+ 
+   priv->cancellable = g_cancellable_new ();
+   error = NULL;
+-  priv->dtm = timedate1_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+-                                                G_DBUS_PROXY_FLAGS_NONE,
+-                                                "org.freedesktop.timedate1",
+-                                                "/org/freedesktop/timedate1",
+-                                                priv->cancellable,
+-                                                &error);
++  priv->dtm = date_time_mechanism_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
++                                                          G_DBUS_PROXY_FLAGS_NONE,
++                                                          "org.gnome.SettingsDaemon.DateTimeMechanism",
++                                                          "/",
++                                                          priv->cancellable,
++                                                          &error);
+   if (priv->dtm == NULL) {
+         g_warning ("could not get proxy for DateTimeMechanism: %s", error->message);
+         g_error_free (error);
+@@ -974,8 +916,20 @@ cc_date_time_panel_init (CcDateTimePanel *self)
+     }
+ 
+   /* set up network time button */
+-  if (priv->dtm != NULL)
+-    update_ntp_switch_from_system (self);
++  error = NULL;
++  using_ntp = can_use_ntp = FALSE;
++  if (!date_time_mechanism_call_get_using_ntp_sync (priv->dtm,
++                                                    &can_use_ntp,
++                                                    &using_ntp,
++                                                    priv->cancellable,
++                                                    &error))
++    {
++      g_warning ("Failed to get using ntp: %s", error->message);
++      g_error_free (error);
++    }
++
++  gtk_switch_set_active (GTK_SWITCH (W("network_time_switch")), using_ntp);
++  update_widget_state_for_ntp (self, using_ntp);
+   g_signal_connect (W("network_time_switch"), "notify::active",
+                     G_CALLBACK (change_ntp), self);
+ 
+@@ -1066,37 +1020,17 @@ cc_date_time_panel_init (CcDateTimePanel *self)
+ 
+   /* After the initial setup, so we can be sure that
+    * the model is filled up */
+-  get_initial_timezone (self);
+-
+-  widget = (GtkWidget*) gtk_builder_get_object (self->priv->builder,
+-                                                "region_combobox");
+-  g_signal_connect (widget, "changed", G_CALLBACK (region_changed_cb), self);
+-
+-  widget = (GtkWidget*) gtk_builder_get_object (self->priv->builder,
+-                                                "city_combobox");
+-  g_signal_connect (widget, "changed", G_CALLBACK (city_changed_cb), self);
+-
+-  g_signal_connect (self->priv->map, "location-changed",
+-                    G_CALLBACK (location_changed_cb), self);
+-
+-  /* Watch changes of timedated remote service properties */
+-  if (priv->dtm)
+-    {
+-      g_signal_connect (priv->dtm, "g-properties-changed",
+-                        G_CALLBACK (on_timedated_properties_changed), self);
+-      g_signal_connect_swapped (priv->dtm, "notify::ntp",
+-                                G_CALLBACK (on_ntp_changed), self);
+-      g_signal_connect_swapped (priv->dtm, "notify::timezone",
+-                                G_CALLBACK (on_timezone_changed), self);
+-    }
+-  /* We ignore UTC <--> LocalRTC changes at the moment */
++  date_time_mechanism_call_get_timezone (priv->dtm,
++                                         priv->cancellable,
++                                         get_timezone_cb,
++                                         self);
+ 
+   /* add the lock button */
+-  priv->permission = polkit_permission_new_sync ("org.gnome.controlcenter.datetime.configure", NULL, NULL, NULL);
++  priv->permission = polkit_permission_new_sync ("org.gnome.settingsdaemon.datetimemechanism.configure", NULL, NULL, NULL);
+   if (priv->permission == NULL)
+     {
+       g_warning ("Your system does not have the '%s' PolicyKit files installed. Please check your installation",
+-                 "org.gnome.controlcenter.datetime.configure");
++                 "org.gnome.settingsdaemon.datetimemechanism.configure");
+       return;
+     }
+ 
+diff --git a/panels/datetime/dtm.c b/panels/datetime/dtm.c
+new file mode 100644
+index 0000000..025026e
+--- /dev/null
++++ b/panels/datetime/dtm.c
+@@ -0,0 +1,3066 @@
++/*
++ * Generated by gdbus-codegen 2.29.5. DO NOT EDIT.
++ *
++ * The license of this code is the same as for the source it was derived from.
++ */
++
++#ifdef HAVE_CONFIG_H
++#  include "config.h"
++#endif
++
++#include "dtm.h"
++
++typedef struct
++{
++  GDBusArgInfo parent_struct;
++  gboolean use_gvariant;
++} _ExtendedGDBusArgInfo;
++
++typedef struct
++{
++  GDBusMethodInfo parent_struct;
++  const gchar *signal_name;
++} _ExtendedGDBusMethodInfo;
++
++typedef struct
++{
++  GDBusSignalInfo parent_struct;
++  const gchar *signal_name;
++} _ExtendedGDBusSignalInfo;
++
++typedef struct
++{
++  GDBusPropertyInfo parent_struct;
++  const gchar *hyphen_name;
++  gboolean use_gvariant;
++} _ExtendedGDBusPropertyInfo;
++
++typedef struct
++{
++  GDBusInterfaceInfo parent_struct;
++  const gchar *hyphen_name;
++} _ExtendedGDBusInterfaceInfo;
++
++typedef struct
++{
++  const _ExtendedGDBusPropertyInfo *info;
++  guint prop_id;
++  GValue orig_value; /* the value before the change */
++} ChangedProperty;
++
++static void
++_changed_property_free (ChangedProperty *data)
++{
++  g_value_unset (&data->orig_value);
++  g_free (data);
++}
++
++static gboolean
++_g_strv_equal0 (gchar **a, gchar **b)
++{
++  gboolean ret = FALSE;
++  guint n;
++  if (a == NULL && b == NULL)
++    {
++      ret = TRUE;
++      goto out;
++    }
++  if (a == NULL || b == NULL)
++    goto out;
++  if (g_strv_length (a) != g_strv_length (b))
++    goto out;
++  for (n = 0; a[n] != NULL; n++)
++    if (g_strcmp0 (a[n], b[n]) != 0)
++      goto out;
++  ret = TRUE;
++out:
++  return ret;
++}
++
++static gboolean
++_g_variant_equal0 (GVariant *a, GVariant *b)
++{
++  gboolean ret = FALSE;
++  if (a == NULL && b == NULL)
++    {
++      ret = TRUE;
++      goto out;
++    }
++  if (a == NULL || b == NULL)
++    goto out;
++  ret = g_variant_equal (a, b);
++out:
++  return ret;
++}
++
++G_GNUC_UNUSED static gboolean
++_g_value_equal (const GValue *a, const GValue *b)
++{
++  gboolean ret = FALSE;
++  g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
++  switch (G_VALUE_TYPE (a))
++    {
++      case G_TYPE_BOOLEAN:
++        ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
++        break;
++      case G_TYPE_UCHAR:
++        ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
++        break;
++      case G_TYPE_INT:
++        ret = (g_value_get_int (a) == g_value_get_int (b));
++        break;
++      case G_TYPE_UINT:
++        ret = (g_value_get_uint (a) == g_value_get_uint (b));
++        break;
++      case G_TYPE_INT64:
++        ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
++        break;
++      case G_TYPE_UINT64:
++        ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
++        break;
++      case G_TYPE_DOUBLE:
++        ret = (g_value_get_double (a) == g_value_get_double (b));
++        break;
++      case G_TYPE_STRING:
++        ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
++        break;
++      case G_TYPE_VARIANT:
++        ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
++        break;
++      default:
++        if (G_VALUE_TYPE (a) == G_TYPE_STRV)
++          ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
++        else
++          g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
++        break;
++    }
++  return ret;
++}
++
++/* ------------------------------------------------------------------------
++ * Code for interface org.gnome.SettingsDaemon.DateTimeMechanism
++ * ------------------------------------------------------------------------
++ */
++
++/**
++ * SECTION:DateTimeMechanism
++ * @title: DateTimeMechanism
++ * @short_description: Generated C code for the org.gnome.SettingsDaemon.DateTimeMechanism D-Bus interface
++ *
++ * This section contains code for working with the <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link> D-Bus interface in C.
++ */
++
++/* ---- Introspection data for org.gnome.SettingsDaemon.DateTimeMechanism ---- */
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_timezone_IN_ARG_tz =
++{
++  {
++    -1,
++    "tz",
++    "s",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_set_timezone_IN_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_set_timezone_IN_ARG_tz,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_set_timezone_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_set_timezone_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_set_timezone_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_set_timezone =
++{
++  {
++    -1,
++    "SetTimezone",
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_set_timezone_IN_ARG_pointers,
++    NULL,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_set_timezone_annotation_info_pointers
++  },
++  "handle-set-timezone"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_get_timezone_OUT_ARG_timezone =
++{
++  {
++    -1,
++    "timezone",
++    "s",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_get_timezone_OUT_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_get_timezone_OUT_ARG_timezone,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_get_timezone_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_get_timezone_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_get_timezone_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_get_timezone =
++{
++  {
++    -1,
++    "GetTimezone",
++    NULL,
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_get_timezone_OUT_ARG_pointers,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_get_timezone_annotation_info_pointers
++  },
++  "handle-get-timezone"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_can_set_timezone_OUT_ARG_value =
++{
++  {
++    -1,
++    "value",
++    "i",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_can_set_timezone_OUT_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_can_set_timezone_OUT_ARG_value,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_can_set_timezone_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_can_set_timezone_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_can_set_timezone_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_can_set_timezone =
++{
++  {
++    -1,
++    "CanSetTimezone",
++    NULL,
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_can_set_timezone_OUT_ARG_pointers,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_can_set_timezone_annotation_info_pointers
++  },
++  "handle-can-set-timezone"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_date_IN_ARG_day =
++{
++  {
++    -1,
++    "day",
++    "u",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_date_IN_ARG_month =
++{
++  {
++    -1,
++    "month",
++    "u",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_date_IN_ARG_year =
++{
++  {
++    -1,
++    "year",
++    "u",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_set_date_IN_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_set_date_IN_ARG_day,
++  &_date_time_mechanism_method_info_set_date_IN_ARG_month,
++  &_date_time_mechanism_method_info_set_date_IN_ARG_year,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_set_date_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_set_date_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_set_date_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_set_date =
++{
++  {
++    -1,
++    "SetDate",
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_set_date_IN_ARG_pointers,
++    NULL,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_set_date_annotation_info_pointers
++  },
++  "handle-set-date"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_time_IN_ARG_seconds_since_epoch =
++{
++  {
++    -1,
++    "seconds_since_epoch",
++    "x",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_set_time_IN_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_set_time_IN_ARG_seconds_since_epoch,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_set_time_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_set_time_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_set_time_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_set_time =
++{
++  {
++    -1,
++    "SetTime",
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_set_time_IN_ARG_pointers,
++    NULL,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_set_time_annotation_info_pointers
++  },
++  "handle-set-time"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_can_set_time_OUT_ARG_value =
++{
++  {
++    -1,
++    "value",
++    "i",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_can_set_time_OUT_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_can_set_time_OUT_ARG_value,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_can_set_time_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_can_set_time_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_can_set_time_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_can_set_time =
++{
++  {
++    -1,
++    "CanSetTime",
++    NULL,
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_can_set_time_OUT_ARG_pointers,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_can_set_time_annotation_info_pointers
++  },
++  "handle-can-set-time"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_adjust_time_IN_ARG_seconds_to_add =
++{
++  {
++    -1,
++    "seconds_to_add",
++    "x",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_adjust_time_IN_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_adjust_time_IN_ARG_seconds_to_add,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_adjust_time_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_adjust_time_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_adjust_time_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_adjust_time =
++{
++  {
++    -1,
++    "AdjustTime",
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_adjust_time_IN_ARG_pointers,
++    NULL,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_adjust_time_annotation_info_pointers
++  },
++  "handle-adjust-time"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_get_hardware_clock_using_utc_OUT_ARG_is_using_utc =
++{
++  {
++    -1,
++    "is_using_utc",
++    "b",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_get_hardware_clock_using_utc_OUT_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_get_hardware_clock_using_utc_OUT_ARG_is_using_utc,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_get_hardware_clock_using_utc_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_get_hardware_clock_using_utc_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_get_hardware_clock_using_utc_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_get_hardware_clock_using_utc =
++{
++  {
++    -1,
++    "GetHardwareClockUsingUtc",
++    NULL,
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_get_hardware_clock_using_utc_OUT_ARG_pointers,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_get_hardware_clock_using_utc_annotation_info_pointers
++  },
++  "handle-get-hardware-clock-using-utc"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_hardware_clock_using_utc_IN_ARG_is_using_utc =
++{
++  {
++    -1,
++    "is_using_utc",
++    "b",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_set_hardware_clock_using_utc_IN_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_set_hardware_clock_using_utc_IN_ARG_is_using_utc,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_set_hardware_clock_using_utc_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_set_hardware_clock_using_utc_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_set_hardware_clock_using_utc_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_set_hardware_clock_using_utc =
++{
++  {
++    -1,
++    "SetHardwareClockUsingUtc",
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_set_hardware_clock_using_utc_IN_ARG_pointers,
++    NULL,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_set_hardware_clock_using_utc_annotation_info_pointers
++  },
++  "handle-set-hardware-clock-using-utc"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_get_using_ntp_OUT_ARG_can_use_ntp =
++{
++  {
++    -1,
++    "can_use_ntp",
++    "b",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_get_using_ntp_OUT_ARG_is_using_ntp =
++{
++  {
++    -1,
++    "is_using_ntp",
++    "b",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_get_using_ntp_OUT_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_get_using_ntp_OUT_ARG_can_use_ntp,
++  &_date_time_mechanism_method_info_get_using_ntp_OUT_ARG_is_using_ntp,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_get_using_ntp_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_get_using_ntp_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_get_using_ntp_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_get_using_ntp =
++{
++  {
++    -1,
++    "GetUsingNtp",
++    NULL,
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_get_using_ntp_OUT_ARG_pointers,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_get_using_ntp_annotation_info_pointers
++  },
++  "handle-get-using-ntp"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_set_using_ntp_IN_ARG_is_using_ntp =
++{
++  {
++    -1,
++    "is_using_ntp",
++    "b",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_set_using_ntp_IN_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_set_using_ntp_IN_ARG_is_using_ntp,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_set_using_ntp_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_set_using_ntp_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_set_using_ntp_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_set_using_ntp =
++{
++  {
++    -1,
++    "SetUsingNtp",
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_set_using_ntp_IN_ARG_pointers,
++    NULL,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_set_using_ntp_annotation_info_pointers
++  },
++  "handle-set-using-ntp"
++};
++
++static const _ExtendedGDBusArgInfo _date_time_mechanism_method_info_can_set_using_ntp_OUT_ARG_value =
++{
++  {
++    -1,
++    "value",
++    "i",
++    NULL
++  },
++  FALSE
++};
++
++static const _ExtendedGDBusArgInfo * const _date_time_mechanism_method_info_can_set_using_ntp_OUT_ARG_pointers[] =
++{
++  &_date_time_mechanism_method_info_can_set_using_ntp_OUT_ARG_value,
++  NULL
++};
++
++static const GDBusAnnotationInfo _date_time_mechanism_method_can_set_using_ntp_annotation_info_0 =
++{
++  -1,
++  "org.freedesktop.DBus.GLib.Async",
++  "",
++  NULL
++};
++
++static const GDBusAnnotationInfo * const _date_time_mechanism_method_can_set_using_ntp_annotation_info_pointers[] =
++{
++  &_date_time_mechanism_method_can_set_using_ntp_annotation_info_0,
++  NULL
++};
++
++static const _ExtendedGDBusMethodInfo _date_time_mechanism_method_info_can_set_using_ntp =
++{
++  {
++    -1,
++    "CanSetUsingNtp",
++    NULL,
++    (GDBusArgInfo **) &_date_time_mechanism_method_info_can_set_using_ntp_OUT_ARG_pointers,
++    (GDBusAnnotationInfo **) &_date_time_mechanism_method_can_set_using_ntp_annotation_info_pointers
++  },
++  "handle-can-set-using-ntp"
++};
++
++static const _ExtendedGDBusMethodInfo * const _date_time_mechanism_method_info_pointers[] =
++{
++  &_date_time_mechanism_method_info_set_timezone,
++  &_date_time_mechanism_method_info_get_timezone,
++  &_date_time_mechanism_method_info_can_set_timezone,
++  &_date_time_mechanism_method_info_set_date,
++  &_date_time_mechanism_method_info_set_time,
++  &_date_time_mechanism_method_info_can_set_time,
++  &_date_time_mechanism_method_info_adjust_time,
++  &_date_time_mechanism_method_info_get_hardware_clock_using_utc,
++  &_date_time_mechanism_method_info_set_hardware_clock_using_utc,
++  &_date_time_mechanism_method_info_get_using_ntp,
++  &_date_time_mechanism_method_info_set_using_ntp,
++  &_date_time_mechanism_method_info_can_set_using_ntp,
++  NULL
++};
++
++static const _ExtendedGDBusInterfaceInfo _date_time_mechanism_interface_info =
++{
++  {
++    -1,
++    "org.gnome.SettingsDaemon.DateTimeMechanism",
++    (GDBusMethodInfo **) &_date_time_mechanism_method_info_pointers,
++    NULL,
++    NULL,
++    NULL
++  },
++  "date-time-mechanism",
++};
++
++
++/**
++ * date_time_mechanism_interface_info:
++ *
++ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link> D-Bus interface.
++ *
++ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
++ */
++GDBusInterfaceInfo *
++date_time_mechanism_interface_info (void)
++{
++  return (GDBusInterfaceInfo *) &_date_time_mechanism_interface_info;
++}
++
++
++
++/**
++ * DateTimeMechanism:
++ *
++ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link>.
++ */
++
++/**
++ * DateTimeMechanismIface:
++ * @parent_iface: The parent interface.
++ * @handle_adjust_time: Handler for the #DateTimeMechanism::handle-adjust-time signal.
++ * @handle_can_set_time: Handler for the #DateTimeMechanism::handle-can-set-time signal.
++ * @handle_can_set_timezone: Handler for the #DateTimeMechanism::handle-can-set-timezone signal.
++ * @handle_can_set_using_ntp: Handler for the #DateTimeMechanism::handle-can-set-using-ntp signal.
++ * @handle_get_hardware_clock_using_utc: Handler for the #DateTimeMechanism::handle-get-hardware-clock-using-utc signal.
++ * @handle_get_timezone: Handler for the #DateTimeMechanism::handle-get-timezone signal.
++ * @handle_get_using_ntp: Handler for the #DateTimeMechanism::handle-get-using-ntp signal.
++ * @handle_set_date: Handler for the #DateTimeMechanism::handle-set-date signal.
++ * @handle_set_hardware_clock_using_utc: Handler for the #DateTimeMechanism::handle-set-hardware-clock-using-utc signal.
++ * @handle_set_time: Handler for the #DateTimeMechanism::handle-set-time signal.
++ * @handle_set_timezone: Handler for the #DateTimeMechanism::handle-set-timezone signal.
++ * @handle_set_using_ntp: Handler for the #DateTimeMechanism::handle-set-using-ntp signal.
++ *
++ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link>.
++ */
++
++static void
++date_time_mechanism_default_init (DateTimeMechanismIface *iface)
++{
++  /* GObject signals for incoming D-Bus method calls: */
++  /**
++   * DateTimeMechanism::handle-set-timezone:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   * @tz: Argument passed by remote caller.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTimezone">SetTimezone()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_set_timezone() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-set-timezone",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_set_timezone),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    2,
++    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
++
++  /**
++   * DateTimeMechanism::handle-get-timezone:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetTimezone">GetTimezone()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_get_timezone() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-get-timezone",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_get_timezone),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    1,
++    G_TYPE_DBUS_METHOD_INVOCATION);
++
++  /**
++   * DateTimeMechanism::handle-can-set-timezone:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTimezone">CanSetTimezone()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_can_set_timezone() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-can-set-timezone",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_can_set_timezone),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    1,
++    G_TYPE_DBUS_METHOD_INVOCATION);
++
++  /**
++   * DateTimeMechanism::handle-set-date:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   * @day: Argument passed by remote caller.
++   * @month: Argument passed by remote caller.
++   * @year: Argument passed by remote caller.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetDate">SetDate()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_set_date() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-set-date",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_set_date),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    4,
++    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
++
++  /**
++   * DateTimeMechanism::handle-set-time:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   * @seconds_since_epoch: Argument passed by remote caller.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTime">SetTime()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_set_time() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-set-time",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_set_time),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    2,
++    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_INT64);
++
++  /**
++   * DateTimeMechanism::handle-can-set-time:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTime">CanSetTime()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_can_set_time() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-can-set-time",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_can_set_time),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    1,
++    G_TYPE_DBUS_METHOD_INVOCATION);
++
++  /**
++   * DateTimeMechanism::handle-adjust-time:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   * @seconds_to_add: Argument passed by remote caller.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.AdjustTime">AdjustTime()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_adjust_time() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-adjust-time",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_adjust_time),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    2,
++    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_INT64);
++
++  /**
++   * DateTimeMechanism::handle-get-hardware-clock-using-utc:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetHardwareClockUsingUtc">GetHardwareClockUsingUtc()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_get_hardware_clock_using_utc() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-get-hardware-clock-using-utc",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_get_hardware_clock_using_utc),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    1,
++    G_TYPE_DBUS_METHOD_INVOCATION);
++
++  /**
++   * DateTimeMechanism::handle-set-hardware-clock-using-utc:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   * @is_using_utc: Argument passed by remote caller.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetHardwareClockUsingUtc">SetHardwareClockUsingUtc()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_set_hardware_clock_using_utc() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-set-hardware-clock-using-utc",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_set_hardware_clock_using_utc),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    2,
++    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN);
++
++  /**
++   * DateTimeMechanism::handle-get-using-ntp:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetUsingNtp">GetUsingNtp()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_get_using_ntp() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-get-using-ntp",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_get_using_ntp),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    1,
++    G_TYPE_DBUS_METHOD_INVOCATION);
++
++  /**
++   * DateTimeMechanism::handle-set-using-ntp:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   * @is_using_ntp: Argument passed by remote caller.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetUsingNtp">SetUsingNtp()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_set_using_ntp() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-set-using-ntp",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_set_using_ntp),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    2,
++    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN);
++
++  /**
++   * DateTimeMechanism::handle-can-set-using-ntp:
++   * @object: A #DateTimeMechanism.
++   * @invocation: A #GDBusMethodInvocation.
++   *
++   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetUsingNtp">CanSetUsingNtp()</link> D-Bus method.
++   *
++   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call date_time_mechanism_complete_can_set_using_ntp() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
++   *
++   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
++   */
++  g_signal_new ("handle-can-set-using-ntp",
++    G_TYPE_FROM_INTERFACE (iface),
++    G_SIGNAL_RUN_LAST,
++    G_STRUCT_OFFSET (DateTimeMechanismIface, handle_can_set_using_ntp),
++    g_signal_accumulator_true_handled,
++    NULL,
++    g_cclosure_marshal_generic,
++    G_TYPE_BOOLEAN,
++    1,
++    G_TYPE_DBUS_METHOD_INVOCATION);
++
++}
++
++typedef DateTimeMechanismIface DateTimeMechanismInterface;
++G_DEFINE_INTERFACE (DateTimeMechanism, date_time_mechanism, G_TYPE_OBJECT);
++
++/**
++ * date_time_mechanism_call_set_timezone:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @tz: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTimezone">SetTimezone()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_set_timezone_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_set_timezone_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_set_timezone (
++    DateTimeMechanism *proxy,
++    const gchar *tz,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "SetTimezone",
++    g_variant_new ("(s)",
++                   tz),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_set_timezone_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_set_timezone().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_set_timezone().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_timezone_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_timezone_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @tz: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTimezone">SetTimezone()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_set_timezone() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_timezone_sync (
++    DateTimeMechanism *proxy,
++    const gchar *tz,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "SetTimezone",
++    g_variant_new ("(s)",
++                   tz),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_get_timezone:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetTimezone">GetTimezone()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_get_timezone_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_get_timezone_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_get_timezone (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "GetTimezone",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_get_timezone_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_timezone: (out): Return location for return parameter or %NULL to ignore.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_get_timezone().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_get_timezone().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_get_timezone_finish (
++    DateTimeMechanism *proxy,
++    gchar **out_timezone,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(s)",
++                 out_timezone);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_get_timezone_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_timezone: (out): Return location for return parameter or %NULL to ignore.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetTimezone">GetTimezone()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_get_timezone() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_get_timezone_sync (
++    DateTimeMechanism *proxy,
++    gchar **out_timezone,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "GetTimezone",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(s)",
++                 out_timezone);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_can_set_timezone:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTimezone">CanSetTimezone()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_can_set_timezone_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_can_set_timezone_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_can_set_timezone (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "CanSetTimezone",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_can_set_timezone_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_value: (out): Return location for return parameter or %NULL to ignore.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_can_set_timezone().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_can_set_timezone().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_can_set_timezone_finish (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(i)",
++                 out_value);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_can_set_timezone_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_value: (out): Return location for return parameter or %NULL to ignore.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTimezone">CanSetTimezone()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_can_set_timezone() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_can_set_timezone_sync (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "CanSetTimezone",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(i)",
++                 out_value);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_date:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @day: Argument to pass with the method invocation.
++ * @month: Argument to pass with the method invocation.
++ * @year: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetDate">SetDate()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_set_date_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_set_date_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_set_date (
++    DateTimeMechanism *proxy,
++    guint day,
++    guint month,
++    guint year,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "SetDate",
++    g_variant_new ("(uuu)",
++                   day,
++                   month,
++                   year),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_set_date_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_set_date().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_set_date().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_date_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_date_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @day: Argument to pass with the method invocation.
++ * @month: Argument to pass with the method invocation.
++ * @year: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetDate">SetDate()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_set_date() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_date_sync (
++    DateTimeMechanism *proxy,
++    guint day,
++    guint month,
++    guint year,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "SetDate",
++    g_variant_new ("(uuu)",
++                   day,
++                   month,
++                   year),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_time:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @seconds_since_epoch: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTime">SetTime()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_set_time_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_set_time_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_set_time (
++    DateTimeMechanism *proxy,
++    gint64 seconds_since_epoch,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "SetTime",
++    g_variant_new ("(x)",
++                   seconds_since_epoch),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_set_time_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_set_time().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_set_time().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_time_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_time_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @seconds_since_epoch: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTime">SetTime()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_set_time() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_time_sync (
++    DateTimeMechanism *proxy,
++    gint64 seconds_since_epoch,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "SetTime",
++    g_variant_new ("(x)",
++                   seconds_since_epoch),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_can_set_time:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTime">CanSetTime()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_can_set_time_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_can_set_time_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_can_set_time (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "CanSetTime",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_can_set_time_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_value: (out): Return location for return parameter or %NULL to ignore.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_can_set_time().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_can_set_time().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_can_set_time_finish (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(i)",
++                 out_value);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_can_set_time_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_value: (out): Return location for return parameter or %NULL to ignore.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTime">CanSetTime()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_can_set_time() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_can_set_time_sync (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "CanSetTime",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(i)",
++                 out_value);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_adjust_time:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @seconds_to_add: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.AdjustTime">AdjustTime()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_adjust_time_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_adjust_time_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_adjust_time (
++    DateTimeMechanism *proxy,
++    gint64 seconds_to_add,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "AdjustTime",
++    g_variant_new ("(x)",
++                   seconds_to_add),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_adjust_time_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_adjust_time().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_adjust_time().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_adjust_time_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_adjust_time_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @seconds_to_add: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.AdjustTime">AdjustTime()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_adjust_time() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_adjust_time_sync (
++    DateTimeMechanism *proxy,
++    gint64 seconds_to_add,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "AdjustTime",
++    g_variant_new ("(x)",
++                   seconds_to_add),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_get_hardware_clock_using_utc:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetHardwareClockUsingUtc">GetHardwareClockUsingUtc()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_get_hardware_clock_using_utc_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_get_hardware_clock_using_utc_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_get_hardware_clock_using_utc (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "GetHardwareClockUsingUtc",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_get_hardware_clock_using_utc_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_is_using_utc: (out): Return location for return parameter or %NULL to ignore.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_get_hardware_clock_using_utc().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_get_hardware_clock_using_utc().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_get_hardware_clock_using_utc_finish (
++    DateTimeMechanism *proxy,
++    gboolean *out_is_using_utc,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(b)",
++                 out_is_using_utc);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_get_hardware_clock_using_utc_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_is_using_utc: (out): Return location for return parameter or %NULL to ignore.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetHardwareClockUsingUtc">GetHardwareClockUsingUtc()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_get_hardware_clock_using_utc() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_get_hardware_clock_using_utc_sync (
++    DateTimeMechanism *proxy,
++    gboolean *out_is_using_utc,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "GetHardwareClockUsingUtc",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(b)",
++                 out_is_using_utc);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_hardware_clock_using_utc:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @is_using_utc: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetHardwareClockUsingUtc">SetHardwareClockUsingUtc()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_set_hardware_clock_using_utc_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_set_hardware_clock_using_utc_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_set_hardware_clock_using_utc (
++    DateTimeMechanism *proxy,
++    gboolean is_using_utc,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "SetHardwareClockUsingUtc",
++    g_variant_new ("(b)",
++                   is_using_utc),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_set_hardware_clock_using_utc_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_set_hardware_clock_using_utc().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_set_hardware_clock_using_utc().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_hardware_clock_using_utc_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_hardware_clock_using_utc_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @is_using_utc: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetHardwareClockUsingUtc">SetHardwareClockUsingUtc()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_set_hardware_clock_using_utc() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_hardware_clock_using_utc_sync (
++    DateTimeMechanism *proxy,
++    gboolean is_using_utc,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "SetHardwareClockUsingUtc",
++    g_variant_new ("(b)",
++                   is_using_utc),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_get_using_ntp:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetUsingNtp">GetUsingNtp()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_get_using_ntp_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_get_using_ntp_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_get_using_ntp (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "GetUsingNtp",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_get_using_ntp_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_can_use_ntp: (out): Return location for return parameter or %NULL to ignore.
++ * @out_is_using_ntp: (out): Return location for return parameter or %NULL to ignore.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_get_using_ntp().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_get_using_ntp().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_get_using_ntp_finish (
++    DateTimeMechanism *proxy,
++    gboolean *out_can_use_ntp,
++    gboolean *out_is_using_ntp,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(bb)",
++                 out_can_use_ntp,
++                 out_is_using_ntp);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_get_using_ntp_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_can_use_ntp: (out): Return location for return parameter or %NULL to ignore.
++ * @out_is_using_ntp: (out): Return location for return parameter or %NULL to ignore.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetUsingNtp">GetUsingNtp()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_get_using_ntp() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_get_using_ntp_sync (
++    DateTimeMechanism *proxy,
++    gboolean *out_can_use_ntp,
++    gboolean *out_is_using_ntp,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "GetUsingNtp",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(bb)",
++                 out_can_use_ntp,
++                 out_is_using_ntp);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_using_ntp:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @is_using_ntp: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetUsingNtp">SetUsingNtp()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_set_using_ntp_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_set_using_ntp_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_set_using_ntp (
++    DateTimeMechanism *proxy,
++    gboolean is_using_ntp,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "SetUsingNtp",
++    g_variant_new ("(b)",
++                   is_using_ntp),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_set_using_ntp_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_set_using_ntp().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_set_using_ntp().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_using_ntp_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_set_using_ntp_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @is_using_ntp: Argument to pass with the method invocation.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetUsingNtp">SetUsingNtp()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_set_using_ntp() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_set_using_ntp_sync (
++    DateTimeMechanism *proxy,
++    gboolean is_using_ntp,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "SetUsingNtp",
++    g_variant_new ("(b)",
++                   is_using_ntp),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "()");
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_can_set_using_ntp:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetUsingNtp">CanSetUsingNtp()</link> D-Bus method on @proxy.
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_call_can_set_using_ntp_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_call_can_set_using_ntp_sync() for the synchronous, blocking version of this method.
++ */
++void
++date_time_mechanism_call_can_set_using_ntp (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data)
++{
++  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
++    "CanSetUsingNtp",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    callback,
++    user_data);
++}
++
++/**
++ * date_time_mechanism_call_can_set_using_ntp_finish:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_value: (out): Return location for return parameter or %NULL to ignore.
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_call_can_set_using_ntp().
++ * @error: Return location for error or %NULL.
++ *
++ * Finishes an operation started with date_time_mechanism_call_can_set_using_ntp().
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_can_set_using_ntp_finish (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GAsyncResult *res,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(i)",
++                 out_value);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_call_can_set_using_ntp_sync:
++ * @proxy: A #DateTimeMechanismProxy.
++ * @out_value: (out): Return location for return parameter or %NULL to ignore.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL.
++ *
++ * Synchronously invokes the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetUsingNtp">CanSetUsingNtp()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_call_can_set_using_ntp() for the asynchronous version of this method.
++ *
++ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
++ */
++gboolean
++date_time_mechanism_call_can_set_using_ntp_sync (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GCancellable *cancellable,
++    GError **error)
++{
++  GVariant *_ret;
++  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
++    "CanSetUsingNtp",
++    g_variant_new ("()"),
++    G_DBUS_CALL_FLAGS_NONE,
++    -1,
++    cancellable,
++    error);
++  if (_ret == NULL)
++    goto _out;
++  g_variant_get (_ret,
++                 "(i)",
++                 out_value);
++  g_variant_unref (_ret);
++_out:
++  return _ret != NULL;
++}
++
++/**
++ * date_time_mechanism_complete_set_timezone:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTimezone">SetTimezone()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_set_timezone (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("()"));
++}
++
++/**
++ * date_time_mechanism_complete_get_timezone:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ * @timezone: Parameter to return.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetTimezone">GetTimezone()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_get_timezone (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    const gchar *timezone)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("(s)",
++                   timezone));
++}
++
++/**
++ * date_time_mechanism_complete_can_set_timezone:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ * @value: Parameter to return.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTimezone">CanSetTimezone()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_can_set_timezone (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint value)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("(i)",
++                   value));
++}
++
++/**
++ * date_time_mechanism_complete_set_date:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetDate">SetDate()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_set_date (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("()"));
++}
++
++/**
++ * date_time_mechanism_complete_set_time:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetTime">SetTime()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_set_time (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("()"));
++}
++
++/**
++ * date_time_mechanism_complete_can_set_time:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ * @value: Parameter to return.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetTime">CanSetTime()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_can_set_time (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint value)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("(i)",
++                   value));
++}
++
++/**
++ * date_time_mechanism_complete_adjust_time:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.AdjustTime">AdjustTime()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_adjust_time (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("()"));
++}
++
++/**
++ * date_time_mechanism_complete_get_hardware_clock_using_utc:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ * @is_using_utc: Parameter to return.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetHardwareClockUsingUtc">GetHardwareClockUsingUtc()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_get_hardware_clock_using_utc (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gboolean is_using_utc)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("(b)",
++                   is_using_utc));
++}
++
++/**
++ * date_time_mechanism_complete_set_hardware_clock_using_utc:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetHardwareClockUsingUtc">SetHardwareClockUsingUtc()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_set_hardware_clock_using_utc (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("()"));
++}
++
++/**
++ * date_time_mechanism_complete_get_using_ntp:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ * @can_use_ntp: Parameter to return.
++ * @is_using_ntp: Parameter to return.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.GetUsingNtp">GetUsingNtp()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_get_using_ntp (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gboolean can_use_ntp,
++    gboolean is_using_ntp)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("(bb)",
++                   can_use_ntp,
++                   is_using_ntp));
++}
++
++/**
++ * date_time_mechanism_complete_set_using_ntp:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.SetUsingNtp">SetUsingNtp()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_set_using_ntp (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("()"));
++}
++
++/**
++ * date_time_mechanism_complete_can_set_using_ntp:
++ * @object: A #DateTimeMechanism.
++ * @invocation: (transfer full): A #GDBusMethodInvocation.
++ * @value: Parameter to return.
++ *
++ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-SettingsDaemon-DateTimeMechanism.CanSetUsingNtp">CanSetUsingNtp()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
++ *
++ * This method will free @invocation, you cannot use it afterwards.
++ */
++void
++date_time_mechanism_complete_can_set_using_ntp (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint value)
++{
++  g_dbus_method_invocation_return_value (invocation,
++    g_variant_new ("(i)",
++                   value));
++}
++
++/* ------------------------------------------------------------------------ */
++
++/**
++ * DateTimeMechanismProxy:
++ *
++ * The #DateTimeMechanismProxy structure contains only private data and should only be accessed using the provided API.
++ */
++
++/**
++ * DateTimeMechanismProxyClass:
++ * @parent_class: The parent class.
++ *
++ * Class structure for #DateTimeMechanismProxy.
++ */
++
++static void
++date_time_mechanism_proxy_iface_init (DateTimeMechanismIface *iface)
++{
++}
++
++#define date_time_mechanism_proxy_get_type date_time_mechanism_proxy_get_type
++G_DEFINE_TYPE_WITH_CODE (DateTimeMechanismProxy, date_time_mechanism_proxy, G_TYPE_DBUS_PROXY,
++                         G_IMPLEMENT_INTERFACE (TYPE_DATE_TIME_MECHANISM, date_time_mechanism_proxy_iface_init));
++#undef date_time_mechanism_proxy_get_type
++
++static void
++date_time_mechanism_proxy_get_property (GObject      *object,
++  guint         prop_id,
++  GValue       *value,
++  GParamSpec   *pspec)
++{
++}
++
++static void
++date_time_mechanism_proxy_set_property (GObject      *object,
++  guint         prop_id,
++  const GValue *value,
++  GParamSpec   *pspec)
++{
++}
++
++static void
++date_time_mechanism_proxy_g_signal (GDBusProxy *proxy,
++  const gchar *sender_name,
++  const gchar *signal_name,
++  GVariant *parameters)
++{
++  _ExtendedGDBusSignalInfo *info;
++  GVariantIter iter;
++  GVariant *child;
++  GValue *paramv;
++  guint num_params;
++  guint n;
++  guint signal_id;
++  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_date_time_mechanism_interface_info, signal_name);
++  if (info == NULL)
++    return;
++  num_params = g_variant_n_children (parameters);
++  paramv = g_new0 (GValue, num_params + 1);
++  g_value_init (&paramv[0], TYPE_DATE_TIME_MECHANISM);
++  g_value_set_object (&paramv[0], proxy);
++  g_variant_iter_init (&iter, parameters);
++  n = 1;
++  while ((child = g_variant_iter_next_value (&iter)) != NULL)
++    {
++      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
++      if (arg_info->use_gvariant)
++        {
++          g_value_init (&paramv[n], G_TYPE_VARIANT);
++          g_value_set_variant (&paramv[n], child);
++          n++;
++        }
++      else
++        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
++      g_variant_unref (child);
++    }
++  signal_id = g_signal_lookup (info->signal_name, TYPE_DATE_TIME_MECHANISM);
++  g_signal_emitv (paramv, signal_id, 0, NULL);
++  for (n = 0; n < num_params + 1; n++)
++    g_value_unset (&paramv[n]);
++  g_free (paramv);
++}
++
++static void
++date_time_mechanism_proxy_g_properties_changed (GDBusProxy *proxy,
++  GVariant *changed_properties,
++  const gchar *const *invalidated_properties)
++{
++  guint n;
++  const gchar *key;
++  GVariantIter *iter;
++  _ExtendedGDBusPropertyInfo *info;
++  g_variant_get (changed_properties, "a{sv}", &iter);
++  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
++    {
++      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_date_time_mechanism_interface_info, key);
++      if (info != NULL)
++        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
++    }
++  g_variant_iter_free (iter);
++  for (n = 0; invalidated_properties[n] != NULL; n++)
++    {
++      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_date_time_mechanism_interface_info, invalidated_properties[n]);
++      if (info != NULL)
++        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
++    }
++}
++
++static void
++date_time_mechanism_proxy_init (DateTimeMechanismProxy *proxy)
++{
++  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), date_time_mechanism_interface_info ());
++}
++
++static void
++date_time_mechanism_proxy_class_init (DateTimeMechanismProxyClass *klass)
++{
++  GObjectClass *gobject_class;
++  GDBusProxyClass *proxy_class;
++
++  gobject_class = G_OBJECT_CLASS (klass);
++  gobject_class->get_property = date_time_mechanism_proxy_get_property;
++  gobject_class->set_property = date_time_mechanism_proxy_set_property;
++
++  proxy_class = G_DBUS_PROXY_CLASS (klass);
++  proxy_class->g_signal = date_time_mechanism_proxy_g_signal;
++  proxy_class->g_properties_changed = date_time_mechanism_proxy_g_properties_changed;
++
++}
++
++/**
++ * date_time_mechanism_proxy_new:
++ * @connection: A #GDBusConnection.
++ * @flags: Flags from the #GDBusProxyFlags enumeration.
++ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
++ * @object_path: An object path.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
++ * @user_data: User data to pass to @callback.
++ *
++ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link>. See g_dbus_proxy_new() for more details.
++ *
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_proxy_new_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_proxy_new_sync() for the synchronous, blocking version of this constructor.
++ */
++void
++date_time_mechanism_proxy_new (
++    GDBusConnection     *connection,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GAsyncReadyCallback  callback,
++    gpointer             user_data)
++{
++  g_async_initable_new_async (TYPE_DATE_TIME_MECHANISM_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.SettingsDaemon.DateTimeMechanism", NULL);
++}
++
++/**
++ * date_time_mechanism_proxy_new_finish:
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_proxy_new().
++ * @error: Return location for error or %NULL
++ *
++ * Finishes an operation started with date_time_mechanism_proxy_new().
++ *
++ * Returns: (transfer full) (type DateTimeMechanismProxy): The constructed proxy object or %NULL if @error is set.
++ */
++DateTimeMechanism *
++date_time_mechanism_proxy_new_finish (
++    GAsyncResult        *res,
++    GError             **error)
++{
++  GObject *ret;
++  GObject *source_object;
++  source_object = g_async_result_get_source_object (res);
++  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
++  g_object_unref (source_object);
++  if (ret != NULL)
++    return DATE_TIME_MECHANISM (ret);
++  else
++    return NULL;
++}
++
++/**
++ * date_time_mechanism_proxy_new_sync:
++ * @connection: A #GDBusConnection.
++ * @flags: Flags from the #GDBusProxyFlags enumeration.
++ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
++ * @object_path: An object path.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL
++ *
++ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link>. See g_dbus_proxy_new_sync() for more details.
++ *
++ * The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_proxy_new() for the asynchronous version of this constructor.
++ *
++ * Returns: (transfer full) (type DateTimeMechanismProxy): The constructed proxy object or %NULL if @error is set.
++ */
++DateTimeMechanism *
++date_time_mechanism_proxy_new_sync (
++    GDBusConnection     *connection,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GError             **error)
++{
++  GInitable *ret;
++  ret = g_initable_new (TYPE_DATE_TIME_MECHANISM_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.SettingsDaemon.DateTimeMechanism", NULL);
++  if (ret != NULL)
++    return DATE_TIME_MECHANISM (ret);
++  else
++    return NULL;
++}
++
++
++/**
++ * date_time_mechanism_proxy_new_for_bus:
++ * @bus_type: A #GBusType.
++ * @flags: Flags from the #GDBusProxyFlags enumeration.
++ * @name: A bus name (well-known or unique).
++ * @object_path: An object path.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
++ * @user_data: User data to pass to @callback.
++ *
++ * Like date_time_mechanism_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
++ *
++ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
++ * You can then call date_time_mechanism_proxy_new_for_bus_finish() to get the result of the operation.
++ *
++ * See date_time_mechanism_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
++ */
++void
++date_time_mechanism_proxy_new_for_bus (
++    GBusType             bus_type,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GAsyncReadyCallback  callback,
++    gpointer             user_data)
++{
++  g_async_initable_new_async (TYPE_DATE_TIME_MECHANISM_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.SettingsDaemon.DateTimeMechanism", NULL);
++}
++
++/**
++ * date_time_mechanism_proxy_new_for_bus_finish:
++ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to date_time_mechanism_proxy_new_for_bus().
++ * @error: Return location for error or %NULL
++ *
++ * Finishes an operation started with date_time_mechanism_proxy_new_for_bus().
++ *
++ * Returns: (transfer full) (type DateTimeMechanismProxy): The constructed proxy object or %NULL if @error is set.
++ */
++DateTimeMechanism *
++date_time_mechanism_proxy_new_for_bus_finish (
++    GAsyncResult        *res,
++    GError             **error)
++{
++  GObject *ret;
++  GObject *source_object;
++  source_object = g_async_result_get_source_object (res);
++  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
++  g_object_unref (source_object);
++  if (ret != NULL)
++    return DATE_TIME_MECHANISM (ret);
++  else
++    return NULL;
++}
++
++/**
++ * date_time_mechanism_proxy_new_for_bus_sync:
++ * @bus_type: A #GBusType.
++ * @flags: Flags from the #GDBusProxyFlags enumeration.
++ * @name: A bus name (well-known or unique).
++ * @object_path: An object path.
++ * @cancellable: (allow-none): A #GCancellable or %NULL.
++ * @error: Return location for error or %NULL
++ *
++ * Like date_time_mechanism_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
++ *
++ * The calling thread is blocked until a reply is received.
++ *
++ * See date_time_mechanism_proxy_new_for_bus() for the asynchronous version of this constructor.
++ *
++ * Returns: (transfer full) (type DateTimeMechanismProxy): The constructed proxy object or %NULL if @error is set.
++ */
++DateTimeMechanism *
++date_time_mechanism_proxy_new_for_bus_sync (
++    GBusType             bus_type,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GError             **error)
++{
++  GInitable *ret;
++  ret = g_initable_new (TYPE_DATE_TIME_MECHANISM_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.SettingsDaemon.DateTimeMechanism", NULL);
++  if (ret != NULL)
++    return DATE_TIME_MECHANISM (ret);
++  else
++    return NULL;
++}
++
++
++/* ------------------------------------------------------------------------ */
++
++/**
++ * DateTimeMechanismSkeleton:
++ *
++ * The #DateTimeMechanismSkeleton structure contains only private data and should only be accessed using the provided API.
++ */
++
++/**
++ * DateTimeMechanismSkeletonClass:
++ * @parent_class: The parent class.
++ *
++ * Class structure for #DateTimeMechanismSkeleton.
++ */
++
++struct _DateTimeMechanismSkeletonPrivate
++{
++  GValueArray *properties;
++  GList *changed_properties;
++  GSource *changed_properties_idle_source;
++  GMainContext *context;
++  GMutex *lock;
++};
++
++static void
++_date_time_mechanism_skeleton_handle_method_call (
++  GDBusConnection *connection,
++  const gchar *sender,
++  const gchar *object_path,
++  const gchar *interface_name,
++  const gchar *method_name,
++  GVariant *parameters,
++  GDBusMethodInvocation *invocation,
++  gpointer user_data)
++{
++  DateTimeMechanismSkeleton *skeleton = DATE_TIME_MECHANISM_SKELETON (user_data);
++  _ExtendedGDBusMethodInfo *info;
++  GVariantIter iter;
++  GVariant *child;
++  GValue *paramv;
++  guint num_params;
++  guint n;
++  guint signal_id;
++  GValue return_value = {0};
++  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
++  g_assert (info != NULL);
++  num_params = g_variant_n_children (parameters);
++  paramv = g_new0 (GValue, num_params + 2);
++  g_value_init (&paramv[0], TYPE_DATE_TIME_MECHANISM);
++  g_value_set_object (&paramv[0], skeleton);
++  g_value_init (&paramv[1], G_TYPE_DBUS_METHOD_INVOCATION);
++  g_value_set_object (&paramv[1], invocation);
++  g_variant_iter_init (&iter, parameters);
++  n = 2;
++  while ((child = g_variant_iter_next_value (&iter)) != NULL)
++    {
++      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - 2];
++      if (arg_info->use_gvariant)
++        {
++          g_value_init (&paramv[n], G_TYPE_VARIANT);
++          g_value_set_variant (&paramv[n], child);
++          n++;
++        }
++      else
++        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
++      g_variant_unref (child);
++    }
++  signal_id = g_signal_lookup (info->signal_name, TYPE_DATE_TIME_MECHANISM);
++  g_value_init (&return_value, G_TYPE_BOOLEAN);
++  g_signal_emitv (paramv, signal_id, 0, &return_value);
++  if (!g_value_get_boolean (&return_value))
++    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
++  g_value_unset (&return_value);
++  for (n = 0; n < num_params + 2; n++)
++    g_value_unset (&paramv[n]);
++  g_free (paramv);
++}
++
++static GVariant *
++_date_time_mechanism_skeleton_handle_get_property (
++  GDBusConnection *connection,
++  const gchar *sender,
++  const gchar *object_path,
++  const gchar *interface_name,
++  const gchar *property_name,
++  GError **error,
++  gpointer user_data)
++{
++  DateTimeMechanismSkeleton *skeleton = DATE_TIME_MECHANISM_SKELETON (user_data);
++  GValue value = {0};
++  GParamSpec *pspec;
++  _ExtendedGDBusPropertyInfo *info;
++  GVariant *ret;
++  ret = NULL;
++  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_date_time_mechanism_interface_info, property_name);
++  g_assert (info != NULL);
++  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
++  if (pspec == NULL)
++    {
++      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
++    }
++  else
++    {
++      g_value_init (&value, pspec->value_type);
++      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
++      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
++      g_value_unset (&value);
++    }
++  return ret;
++}
++
++static gboolean
++_date_time_mechanism_skeleton_handle_set_property (
++  GDBusConnection *connection,
++  const gchar *sender,
++  const gchar *object_path,
++  const gchar *interface_name,
++  const gchar *property_name,
++  GVariant *variant,
++  GError **error,
++  gpointer user_data)
++{
++  DateTimeMechanismSkeleton *skeleton = DATE_TIME_MECHANISM_SKELETON (user_data);
++  GValue value = {0};
++  GParamSpec *pspec;
++  _ExtendedGDBusPropertyInfo *info;
++  gboolean ret;
++  ret = FALSE;
++  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_date_time_mechanism_interface_info, property_name);
++  g_assert (info != NULL);
++  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
++  if (pspec == NULL)
++    {
++      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
++    }
++  else
++    {
++      if (info->use_gvariant)
++        g_value_set_variant (&value, variant);
++      else
++        g_dbus_gvariant_to_gvalue (variant, &value);
++      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
++      g_value_unset (&value);
++      ret = TRUE;
++    }
++  return ret;
++}
++
++static const GDBusInterfaceVTable _date_time_mechanism_skeleton_vtable =
++{
++  _date_time_mechanism_skeleton_handle_method_call,
++  _date_time_mechanism_skeleton_handle_get_property,
++  _date_time_mechanism_skeleton_handle_set_property
++};
++
++static GDBusInterfaceInfo *
++date_time_mechanism_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
++{
++  return date_time_mechanism_interface_info ();
++}
++
++static GDBusInterfaceVTable *
++date_time_mechanism_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
++{
++  return (GDBusInterfaceVTable *) &_date_time_mechanism_skeleton_vtable;
++}
++
++static GVariant *
++date_time_mechanism_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
++{
++  DateTimeMechanismSkeleton *skeleton = DATE_TIME_MECHANISM_SKELETON (_skeleton);
++
++  GVariantBuilder builder;
++  guint n;
++  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
++  if (_date_time_mechanism_interface_info.parent_struct.properties == NULL)
++    goto out;
++  for (n = 0; _date_time_mechanism_interface_info.parent_struct.properties[n] != NULL; n++)
++    {
++      GDBusPropertyInfo *info = _date_time_mechanism_interface_info.parent_struct.properties[n];
++      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
++        {
++          GVariant *value;
++          value = _date_time_mechanism_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.SettingsDaemon.DateTimeMechanism", info->name, NULL, skeleton);
++          if (value != NULL)
++            {
++              if (g_variant_is_floating (value))
++                g_variant_ref_sink (value);
++              g_variant_builder_add (&builder, "{sv}", info->name, value);
++              g_variant_unref (value);
++            }
++        }
++    }
++out:
++  return g_variant_builder_end (&builder);
++}
++
++static void
++date_time_mechanism_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
++{
++}
++
++static void
++date_time_mechanism_skeleton_iface_init (DateTimeMechanismIface *iface)
++{
++}
++
++#define date_time_mechanism_skeleton_get_type date_time_mechanism_skeleton_get_type
++G_DEFINE_TYPE_WITH_CODE (DateTimeMechanismSkeleton, date_time_mechanism_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
++                         G_IMPLEMENT_INTERFACE (TYPE_DATE_TIME_MECHANISM, date_time_mechanism_skeleton_iface_init));
++#undef date_time_mechanism_skeleton_get_type
++
++static void
++date_time_mechanism_skeleton_finalize (GObject *object)
++{
++  DateTimeMechanismSkeleton *skeleton = DATE_TIME_MECHANISM_SKELETON (object);
++  g_list_foreach (skeleton->priv->changed_properties, (GFunc) _changed_property_free, NULL);
++  g_list_free (skeleton->priv->changed_properties);
++  if (skeleton->priv->changed_properties_idle_source != NULL)
++    g_source_destroy (skeleton->priv->changed_properties_idle_source);
++  if (skeleton->priv->context != NULL)
++    g_main_context_unref (skeleton->priv->context);
++  g_mutex_free (skeleton->priv->lock);
++  G_OBJECT_CLASS (date_time_mechanism_skeleton_parent_class)->finalize (object);
++}
++
++static void
++date_time_mechanism_skeleton_init (DateTimeMechanismSkeleton *skeleton)
++{
++  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_DATE_TIME_MECHANISM_SKELETON, DateTimeMechanismSkeletonPrivate);
++  skeleton->priv->lock = g_mutex_new ();
++  skeleton->priv->context = g_main_context_get_thread_default ();
++  if (skeleton->priv->context != NULL)
++    g_main_context_ref (skeleton->priv->context);
++}
++
++static void
++date_time_mechanism_skeleton_class_init (DateTimeMechanismSkeletonClass *klass)
++{
++  GObjectClass *gobject_class;
++  GDBusInterfaceSkeletonClass *skeleton_class;
++
++  g_type_class_add_private (klass, sizeof (DateTimeMechanismSkeletonPrivate));
++
++  gobject_class = G_OBJECT_CLASS (klass);
++  gobject_class->finalize = date_time_mechanism_skeleton_finalize;
++
++  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
++  skeleton_class->get_info = date_time_mechanism_skeleton_dbus_interface_get_info;
++  skeleton_class->get_properties = date_time_mechanism_skeleton_dbus_interface_get_properties;
++  skeleton_class->flush = date_time_mechanism_skeleton_dbus_interface_flush;
++  skeleton_class->get_vtable = date_time_mechanism_skeleton_dbus_interface_get_vtable;
++}
++
++/**
++ * date_time_mechanism_skeleton_new:
++ *
++ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-gnome-SettingsDaemon-DateTimeMechanism.top_of_page">org.gnome.SettingsDaemon.DateTimeMechanism</link>.
++ *
++ * Returns: (transfer full) (type DateTimeMechanismSkeleton): The skeleton object.
++ */
++DateTimeMechanism *
++date_time_mechanism_skeleton_new (void)
++{
++  return DATE_TIME_MECHANISM (g_object_new (TYPE_DATE_TIME_MECHANISM_SKELETON, NULL));
++}
++
+diff --git a/panels/datetime/dtm.h b/panels/datetime/dtm.h
+new file mode 100644
+index 0000000..516f80b
+--- /dev/null
++++ b/panels/datetime/dtm.h
+@@ -0,0 +1,475 @@
++/*
++ * Generated by gdbus-codegen 2.29.5. DO NOT EDIT.
++ *
++ * The license of this code is the same as for the source it was derived from.
++ */
++
++#ifndef __DTM_H__
++#define __DTM_H__
++
++#include <gio/gio.h>
++
++G_BEGIN_DECLS
++
++
++/* ------------------------------------------------------------------------ */
++/* Declarations for org.gnome.SettingsDaemon.DateTimeMechanism */
++
++#define TYPE_DATE_TIME_MECHANISM (date_time_mechanism_get_type ())
++#define DATE_TIME_MECHANISM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_DATE_TIME_MECHANISM, DateTimeMechanism))
++#define IS_DATE_TIME_MECHANISM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_DATE_TIME_MECHANISM))
++#define DATE_TIME_MECHANISM_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_DATE_TIME_MECHANISM, DateTimeMechanism))
++
++struct _DateTimeMechanism;
++typedef struct _DateTimeMechanism DateTimeMechanism;
++typedef struct _DateTimeMechanismIface DateTimeMechanismIface;
++
++struct _DateTimeMechanismIface
++{
++  GTypeInterface parent_iface;
++
++  gboolean (*handle_adjust_time) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint64 seconds_to_add);
++
++  gboolean (*handle_can_set_time) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++  gboolean (*handle_can_set_timezone) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++  gboolean (*handle_can_set_using_ntp) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++  gboolean (*handle_get_hardware_clock_using_utc) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++  gboolean (*handle_get_timezone) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++  gboolean (*handle_get_using_ntp) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++  gboolean (*handle_set_date) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    guint day,
++    guint month,
++    guint year);
++
++  gboolean (*handle_set_hardware_clock_using_utc) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gboolean is_using_utc);
++
++  gboolean (*handle_set_time) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint64 seconds_since_epoch);
++
++  gboolean (*handle_set_timezone) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    const gchar *tz);
++
++  gboolean (*handle_set_using_ntp) (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gboolean is_using_ntp);
++
++};
++
++GType date_time_mechanism_get_type (void) G_GNUC_CONST;
++
++GDBusInterfaceInfo *date_time_mechanism_interface_info (void);
++
++
++/* D-Bus method call completion functions: */
++void date_time_mechanism_complete_set_timezone (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++void date_time_mechanism_complete_get_timezone (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    const gchar *timezone);
++
++void date_time_mechanism_complete_can_set_timezone (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint value);
++
++void date_time_mechanism_complete_set_date (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++void date_time_mechanism_complete_set_time (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++void date_time_mechanism_complete_can_set_time (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint value);
++
++void date_time_mechanism_complete_adjust_time (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++void date_time_mechanism_complete_get_hardware_clock_using_utc (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gboolean is_using_utc);
++
++void date_time_mechanism_complete_set_hardware_clock_using_utc (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++void date_time_mechanism_complete_get_using_ntp (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gboolean can_use_ntp,
++    gboolean is_using_ntp);
++
++void date_time_mechanism_complete_set_using_ntp (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation);
++
++void date_time_mechanism_complete_can_set_using_ntp (
++    DateTimeMechanism *object,
++    GDBusMethodInvocation *invocation,
++    gint value);
++
++
++
++/* D-Bus method calls: */
++void date_time_mechanism_call_set_timezone (
++    DateTimeMechanism *proxy,
++    const gchar *tz,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_set_timezone_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_set_timezone_sync (
++    DateTimeMechanism *proxy,
++    const gchar *tz,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_get_timezone (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_get_timezone_finish (
++    DateTimeMechanism *proxy,
++    gchar **out_timezone,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_get_timezone_sync (
++    DateTimeMechanism *proxy,
++    gchar **out_timezone,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_can_set_timezone (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_can_set_timezone_finish (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_can_set_timezone_sync (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_set_date (
++    DateTimeMechanism *proxy,
++    guint day,
++    guint month,
++    guint year,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_set_date_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_set_date_sync (
++    DateTimeMechanism *proxy,
++    guint day,
++    guint month,
++    guint year,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_set_time (
++    DateTimeMechanism *proxy,
++    gint64 seconds_since_epoch,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_set_time_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_set_time_sync (
++    DateTimeMechanism *proxy,
++    gint64 seconds_since_epoch,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_can_set_time (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_can_set_time_finish (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_can_set_time_sync (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_adjust_time (
++    DateTimeMechanism *proxy,
++    gint64 seconds_to_add,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_adjust_time_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_adjust_time_sync (
++    DateTimeMechanism *proxy,
++    gint64 seconds_to_add,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_get_hardware_clock_using_utc (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_get_hardware_clock_using_utc_finish (
++    DateTimeMechanism *proxy,
++    gboolean *out_is_using_utc,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_get_hardware_clock_using_utc_sync (
++    DateTimeMechanism *proxy,
++    gboolean *out_is_using_utc,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_set_hardware_clock_using_utc (
++    DateTimeMechanism *proxy,
++    gboolean is_using_utc,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_set_hardware_clock_using_utc_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_set_hardware_clock_using_utc_sync (
++    DateTimeMechanism *proxy,
++    gboolean is_using_utc,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_get_using_ntp (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_get_using_ntp_finish (
++    DateTimeMechanism *proxy,
++    gboolean *out_can_use_ntp,
++    gboolean *out_is_using_ntp,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_get_using_ntp_sync (
++    DateTimeMechanism *proxy,
++    gboolean *out_can_use_ntp,
++    gboolean *out_is_using_ntp,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_set_using_ntp (
++    DateTimeMechanism *proxy,
++    gboolean is_using_ntp,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_set_using_ntp_finish (
++    DateTimeMechanism *proxy,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_set_using_ntp_sync (
++    DateTimeMechanism *proxy,
++    gboolean is_using_ntp,
++    GCancellable *cancellable,
++    GError **error);
++
++void date_time_mechanism_call_can_set_using_ntp (
++    DateTimeMechanism *proxy,
++    GCancellable *cancellable,
++    GAsyncReadyCallback callback,
++    gpointer user_data);
++
++gboolean date_time_mechanism_call_can_set_using_ntp_finish (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GAsyncResult *res,
++    GError **error);
++
++gboolean date_time_mechanism_call_can_set_using_ntp_sync (
++    DateTimeMechanism *proxy,
++    gint *out_value,
++    GCancellable *cancellable,
++    GError **error);
++
++
++
++/* ---- */
++
++#define TYPE_DATE_TIME_MECHANISM_PROXY (date_time_mechanism_proxy_get_type ())
++#define DATE_TIME_MECHANISM_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_DATE_TIME_MECHANISM_PROXY, DateTimeMechanismProxy))
++#define DATE_TIME_MECHANISM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_DATE_TIME_MECHANISM_PROXY, DateTimeMechanismProxyClass))
++#define DATE_TIME_MECHANISM_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_DATE_TIME_MECHANISM_PROXY, DateTimeMechanismProxyClass))
++#define IS_DATE_TIME_MECHANISM_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_DATE_TIME_MECHANISM_PROXY))
++#define IS_DATE_TIME_MECHANISM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_DATE_TIME_MECHANISM_PROXY))
++
++typedef struct _DateTimeMechanismProxy DateTimeMechanismProxy;
++typedef struct _DateTimeMechanismProxyClass DateTimeMechanismProxyClass;
++typedef struct _DateTimeMechanismProxyPrivate DateTimeMechanismProxyPrivate;
++
++struct _DateTimeMechanismProxy
++{
++  /*< private >*/
++  GDBusProxy parent_instance;
++  DateTimeMechanismProxyPrivate *priv;
++};
++
++struct _DateTimeMechanismProxyClass
++{
++  GDBusProxyClass parent_class;
++};
++
++GType date_time_mechanism_proxy_get_type (void) G_GNUC_CONST;
++
++void date_time_mechanism_proxy_new (
++    GDBusConnection     *connection,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GAsyncReadyCallback  callback,
++    gpointer             user_data);
++DateTimeMechanism *date_time_mechanism_proxy_new_finish (
++    GAsyncResult        *res,
++    GError             **error);
++DateTimeMechanism *date_time_mechanism_proxy_new_sync (
++    GDBusConnection     *connection,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GError             **error);
++
++void date_time_mechanism_proxy_new_for_bus (
++    GBusType             bus_type,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GAsyncReadyCallback  callback,
++    gpointer             user_data);
++DateTimeMechanism *date_time_mechanism_proxy_new_for_bus_finish (
++    GAsyncResult        *res,
++    GError             **error);
++DateTimeMechanism *date_time_mechanism_proxy_new_for_bus_sync (
++    GBusType             bus_type,
++    GDBusProxyFlags      flags,
++    const gchar         *name,
++    const gchar         *object_path,
++    GCancellable        *cancellable,
++    GError             **error);
++
++
++/* ---- */
++
++#define TYPE_DATE_TIME_MECHANISM_SKELETON (date_time_mechanism_skeleton_get_type ())
++#define DATE_TIME_MECHANISM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_DATE_TIME_MECHANISM_SKELETON, DateTimeMechanismSkeleton))
++#define DATE_TIME_MECHANISM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_DATE_TIME_MECHANISM_SKELETON, DateTimeMechanismSkeletonClass))
++#define DATE_TIME_MECHANISM_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_DATE_TIME_MECHANISM_SKELETON, DateTimeMechanismSkeletonClass))
++#define IS_DATE_TIME_MECHANISM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_DATE_TIME_MECHANISM_SKELETON))
++#define IS_DATE_TIME_MECHANISM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_DATE_TIME_MECHANISM_SKELETON))
++
++typedef struct _DateTimeMechanismSkeleton DateTimeMechanismSkeleton;
++typedef struct _DateTimeMechanismSkeletonClass DateTimeMechanismSkeletonClass;
++typedef struct _DateTimeMechanismSkeletonPrivate DateTimeMechanismSkeletonPrivate;
++
++struct _DateTimeMechanismSkeleton
++{
++  /*< private >*/
++  GDBusInterfaceSkeleton parent_instance;
++  DateTimeMechanismSkeletonPrivate *priv;
++};
++
++struct _DateTimeMechanismSkeletonClass
++{
++  GDBusInterfaceSkeletonClass parent_class;
++};
++
++GType date_time_mechanism_skeleton_get_type (void) G_GNUC_CONST;
++
++DateTimeMechanism *date_time_mechanism_skeleton_new (void);
++
++
++G_END_DECLS
++
++#endif /* __DTM_H__ */
+diff --git a/panels/datetime/org.gnome.controlcenter.datetime.policy.in b/panels/datetime/org.gnome.controlcenter.datetime.policy.in
+deleted file mode 100644
+index 5ac5be5..0000000
+--- a/panels/datetime/org.gnome.controlcenter.datetime.policy.in
++++ /dev/null
+@@ -1,21 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<!DOCTYPE policyconfig PUBLIC
+- "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+- "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
+-
+-<policyconfig>
+-  <vendor>The GNOME Project</vendor>
+-  <vendor_url>http://www.gnome.org/</vendor_url>
+-
+-  <action id="org.gnome.controlcenter.datetime.configure">
+-    <_description>Change system time and date settings</_description>
+-    <_message>To change time or date settings, you need to authenticate.</_message>
+-    <defaults>
+-      <allow_any>no</allow_any>
+-      <allow_inactive>no</allow_inactive>
+-      <allow_active>auth_admin_keep</allow_active>
+-    </defaults>
+-    <annotate key="org.freedesktop.policykit.imply">org.freedesktop.timedate1.set-time org.freedesktop.timedate1.set-timezone org.freedesktop.timedate1.set-local-rtc org.freedesktop.timedate1.set-ntp</annotate>
+-  </action>
+-
+-</policyconfig>
+diff --git a/panels/datetime/set-timezone.c b/panels/datetime/set-timezone.c
+new file mode 100644
+index 0000000..74006bc
+--- /dev/null
++++ b/panels/datetime/set-timezone.c
+@@ -0,0 +1,479 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 David Zeuthen <david at fubar.dk>
++ *
++ * 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.
++ *
++ */
++
++#ifdef HAVE_CONFIG_H
++#  include "config.h"
++#endif
++
++#include <stdlib.h>
++#include <stdio.h>
++#include <fcntl.h>
++#include <unistd.h>
++#include <string.h>
++#include <sys/wait.h>
++
++#include <dbus/dbus-glib.h>
++#include <dbus/dbus-glib-lowlevel.h>
++
++#include "set-timezone.h"
++
++
++static DBusGConnection *
++get_system_bus (GError **err)
++{
++        GError          *error;
++        static DBusGConnection *bus = NULL;
++
++	if (bus == NULL) {
++        	error = NULL;
++        	bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
++        	if (bus == NULL) {
++			g_propagate_error (err, error);
++		}
++        }
++
++        return bus;
++}
++
++#define CACHE_VALIDITY_SEC 2
++
++typedef  void (*CanDoFunc) (gint value);
++
++static void
++notify_can_do (DBusGProxy     *proxy,
++	       DBusGProxyCall *call,
++	       void           *user_data)
++{
++	CanDoFunc callback = user_data;
++	GError *error = NULL;
++	gint value;
++
++	if (dbus_g_proxy_end_call (proxy, call,
++				   &error,
++				   G_TYPE_INT, &value,
++				   G_TYPE_INVALID)) {
++		callback (value);
++	}
++}
++
++static void
++refresh_can_do (const gchar *action, CanDoFunc callback)
++{
++        DBusGConnection *bus;
++        DBusGProxy      *proxy;
++
++        bus = get_system_bus (NULL);
++        if (bus == NULL)
++                return;
++
++	proxy = dbus_g_proxy_new_for_name (bus,
++					   "org.gnome.SettingsDaemon.DateTimeMechanism",
++					   "/",
++					   "org.gnome.SettingsDaemon.DateTimeMechanism");
++
++	dbus_g_proxy_begin_call_with_timeout (proxy,
++					      action,
++					      notify_can_do,
++					      callback, NULL,
++					      INT_MAX,
++					      G_TYPE_INVALID);
++}
++
++static gint   settimezone_cache = 0;
++static time_t settimezone_stamp = 0;
++
++static void
++update_can_settimezone (gint res)
++{
++	settimezone_cache = res;
++	time (&settimezone_stamp);
++}
++
++gint
++can_set_system_timezone (void)
++{
++	time_t          now;
++
++	time (&now);
++	if (ABS (now - settimezone_stamp) > CACHE_VALIDITY_SEC) {
++		refresh_can_do ("CanSetTimezone", update_can_settimezone);
++		settimezone_stamp = now;
++	}
++
++	return settimezone_cache;
++}
++
++static gint   settime_cache = 0;
++static time_t settime_stamp = 0;
++
++static void
++update_can_settime (gint res)
++{
++	settime_cache = res;
++	time (&settime_stamp);
++}
++
++gint
++can_set_system_time (void)
++{
++	time_t now;
++
++	time (&now);
++	if (ABS (now - settime_stamp) > CACHE_VALIDITY_SEC) {
++		refresh_can_do ("CanSetTime", update_can_settime);
++		settime_stamp = now;
++	}
++
++	return settime_cache;
++}
++
++static gint   usingntp_cache = 0;
++static time_t usingntp_stamp = 0;
++
++static void
++update_can_usingntp (gint res)
++{
++	usingntp_cache = res;
++	time (&usingntp_stamp);
++}
++
++gint
++can_set_using_ntp (void)
++{
++	time_t now;
++
++	time (&now);
++	if (ABS (now - usingntp_stamp) > CACHE_VALIDITY_SEC) {
++		refresh_can_do ("CanSetUsingNtp", update_can_usingntp);
++		settime_stamp = now;
++	}
++
++	return usingntp_cache;
++}
++
++typedef struct {
++	gint ref_count;
++        gchar *call;
++	gint64 time;
++	gchar *tz;
++	gboolean using_ntp;
++	GFunc callback;
++	gpointer data;
++	GDestroyNotify notify;
++} SetTimeCallbackData;
++
++static void
++free_data (gpointer d)
++{
++	SetTimeCallbackData *data = d;
++
++	data->ref_count--;
++	if (data->ref_count == 0) {
++		if (data->notify)
++			data->notify (data->data);
++		g_free (data->tz);
++		g_free (data);
++	}
++}
++
++static void
++set_time_notify (DBusGProxy     *proxy,
++		 DBusGProxyCall *call,
++		 void           *user_data)
++{
++	SetTimeCallbackData *data = user_data;
++	GError *error = NULL;
++
++	if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) {
++		if (data->callback)
++			data->callback (data->data, NULL);
++	}
++	else {
++		if (error->domain == DBUS_GERROR &&
++		    error->code == DBUS_GERROR_NO_REPLY) {
++			/* these errors happen because dbus doesn't
++			 * use monotonic clocks
++			 */	
++			g_warning ("ignoring no-reply error when setting time");
++			g_error_free (error);
++			if (data->callback)
++				data->callback (data->data, NULL);
++		}
++		else {
++			if (data->callback)
++				data->callback (data->data, error);
++			else
++				g_error_free (error);
++		}		
++	}
++}
++
++static void
++set_time_async (SetTimeCallbackData *data)
++{
++        DBusGConnection *bus;
++        DBusGProxy      *proxy;
++	GError          *err = NULL;
++
++        bus = get_system_bus (&err);
++        if (bus == NULL) {
++		if (err) {
++			if (data->callback)
++				data->callback (data->data, err);
++			g_clear_error (&err);
++		}
++		return;
++	}
++
++	proxy = dbus_g_proxy_new_for_name (bus,
++					   "org.gnome.SettingsDaemon.DateTimeMechanism",
++					   "/",
++					   "org.gnome.SettingsDaemon.DateTimeMechanism");
++
++	data->ref_count++;
++	if (strcmp (data->call, "SetTime") == 0)
++		dbus_g_proxy_begin_call_with_timeout (proxy,
++						      "SetTime",
++						      set_time_notify,
++						      data, free_data,
++						      INT_MAX,
++						      /* parameters: */
++						      G_TYPE_INT64, data->time,
++						      G_TYPE_INVALID,
++						      /* return values: */
++						      G_TYPE_INVALID);
++	else if (strcmp (data->call, "SetTimezone") == 0)
++		dbus_g_proxy_begin_call_with_timeout (proxy,
++						      "SetTimezone",
++						      set_time_notify,
++						      data, free_data,
++						      INT_MAX,
++						      /* parameters: */
++						      G_TYPE_STRING, data->tz,
++						      G_TYPE_INVALID,
++						      /* return values: */
++						      G_TYPE_INVALID);
++	else if (strcmp (data->call, "SetUsingNtp") == 0)
++		dbus_g_proxy_begin_call_with_timeout (proxy,
++						      "SetUsingNtp",
++						      set_time_notify,
++						      data, free_data,
++						      INT_MAX,
++						      /* parameters: */
++						      G_TYPE_BOOLEAN, data->using_ntp,
++						      G_TYPE_INVALID,
++						      /* return values: */
++						      G_TYPE_INVALID);
++}
++
++void
++set_system_time_async (gint64         time,
++		       GFunc          callback,
++		       gpointer       d,
++		       GDestroyNotify notify)
++{
++	SetTimeCallbackData *data;
++
++	if (time == -1)
++		return;
++
++	data = g_new0 (SetTimeCallbackData, 1);
++	data->ref_count = 1;
++	data->call = "SetTime";
++	data->time = time;
++	data->tz = NULL;
++	data->callback = callback;
++	data->data = d;
++	data->notify = notify;
++
++	set_time_async (data);
++	free_data (data);
++}
++
++void
++set_system_timezone_async (const gchar    *tz,
++			   GFunc           callback,
++			   gpointer        d,
++			   GDestroyNotify  notify)
++{
++	SetTimeCallbackData *data;
++
++	g_return_if_fail (tz != NULL);
++
++	data = g_new0 (SetTimeCallbackData, 1);
++	data->ref_count = 1;
++	data->call = "SetTimezone";
++	data->time = -1;
++	data->tz = g_strdup (tz);
++	data->callback = callback;
++	data->data = d;
++	data->notify = notify;
++
++	set_time_async (data);
++	free_data (data);
++}
++
++/* get timezone */
++
++typedef struct
++{
++  GetTimezoneFunc callback;
++  GDestroyNotify notify;
++
++  gpointer data;
++
++} GetTimezoneData;
++
++static void
++get_timezone_destroy_notify (GetTimezoneData *data)
++{
++	if (data->notify && data->data)
++		data->notify (data);
++
++	g_free (data);
++}
++
++static void
++get_timezone_notify (DBusGProxy     *proxy,
++		     DBusGProxyCall *call,
++		     void           *user_data)
++{
++	GError *error = NULL;
++	gboolean retval;
++	gchar *string = NULL;
++	GetTimezoneData *data = user_data;
++
++	retval = dbus_g_proxy_end_call (proxy, call, &error,
++					G_TYPE_STRING, &string,
++					G_TYPE_INVALID);
++
++	if (data->callback) {
++		if (!retval) {
++			data->callback (data->data, NULL, error);
++			g_error_free (error);
++		}
++		else {
++			data->callback (data->data, string, NULL);
++			g_free (string);
++		}
++	}
++}
++
++void
++get_system_timezone_async (GetTimezoneFunc callback,
++			   gpointer        user_data,
++			   GDestroyNotify  notify)
++{
++	DBusGConnection *bus;
++	DBusGProxy      *proxy;
++	GetTimezoneData *data;
++	GError          *error = NULL;
++
++	bus = get_system_bus (&error);
++	if (bus == NULL) {
++		if (error) {
++			if (callback)
++				callback (user_data, NULL, error);
++			g_clear_error (&error);
++		}
++		return;
++
++        }
++
++	data = g_new0 (GetTimezoneData, 1);
++	data->data = user_data;
++	data->notify = notify;
++	data->callback = callback;
++
++	proxy = dbus_g_proxy_new_for_name (bus,
++					   "org.gnome.SettingsDaemon.DateTimeMechanism",
++					   "/",
++					   "org.gnome.SettingsDaemon.DateTimeMechanism");
++
++	dbus_g_proxy_begin_call (proxy,
++				 "GetTimezone",
++				 get_timezone_notify,
++				 data,
++				 (GDestroyNotify) get_timezone_destroy_notify,
++				 /* parameters: */
++				 G_TYPE_INVALID,
++				 /* return values: */
++				 G_TYPE_STRING,
++				 G_TYPE_INVALID);
++
++}
++
++gboolean
++get_using_ntp (void)
++{
++	static gboolean is_using_cache = FALSE;
++	static time_t   last_refreshed = 0;
++	time_t          now;
++        DBusGConnection *bus;
++        DBusGProxy      *proxy;
++
++	time (&now);
++	if (ABS (now - last_refreshed) > CACHE_VALIDITY_SEC) {
++		gboolean cu, iu;
++		bus = get_system_bus (NULL);
++		if (bus == NULL)
++			return FALSE;
++
++		proxy = dbus_g_proxy_new_for_name (bus,
++						   "org.gnome.SettingsDaemon.DateTimeMechanism",
++						   "/",
++						   "org.gnome.SettingsDaemon.DateTimeMechanism");
++
++
++		if (dbus_g_proxy_call (proxy,
++				       "GetUsingNtp",
++				       NULL,
++				       G_TYPE_INVALID,
++				       G_TYPE_BOOLEAN, &cu,
++				       G_TYPE_BOOLEAN, &iu,
++				       G_TYPE_INVALID)) {
++			is_using_cache = iu;
++			last_refreshed = now;
++		}
++	}
++
++	return is_using_cache;
++}
++
++void
++set_using_ntp_async (gboolean        using_ntp,
++	             GFunc           callback,
++	             gpointer        d,
++	             GDestroyNotify  notify)
++{
++	SetTimeCallbackData *data;
++
++	data = g_new0 (SetTimeCallbackData, 1);
++	data->ref_count = 1;
++	data->call = "SetUsingNtp";
++	data->time = -1;
++	data->using_ntp = using_ntp;
++	data->callback = callback;
++	data->data = d;
++	data->notify = notify;
++
++	set_time_async (data);
++	free_data (data);
++}
+diff --git a/panels/datetime/set-timezone.h b/panels/datetime/set-timezone.h
+new file mode 100644
+index 0000000..5e657e3
+--- /dev/null
++++ b/panels/datetime/set-timezone.h
+@@ -0,0 +1,57 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 David Zeuthen <david at fubar.dk>
++ *
++ * 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 __SET_SYSTEM_TIMEZONE_H__
++
++#include <config.h>
++
++#include <glib.h>
++#include <time.h>
++
++typedef void (*GetTimezoneFunc) (gpointer     data,
++                                 const gchar *timezone,
++                                 GError      *error);
++void     get_system_timezone_async   (GetTimezoneFunc callback,
++                                      gpointer        data,
++                                      GDestroyNotify  notify);
++
++gint     can_set_system_timezone (void);
++
++gint     can_set_system_time     (void);
++
++gint     can_set_using_ntp       (void);
++
++void     set_system_time_async   (gint64         time,
++                                  GFunc          callback,
++                                  gpointer       data,
++                                  GDestroyNotify notify);
++
++void     set_system_timezone_async   (const gchar    *tz,
++                                      GFunc           callback,
++                                      gpointer        data,
++                                      GDestroyNotify  notify);
++
++gboolean get_using_ntp               (void);
++
++void     set_using_ntp_async         (gboolean        using_ntp,
++                                      GFunc           callback,
++                                      gpointer        data,
++                                      GDestroyNotify  notify);
++#endif
+diff --git a/panels/datetime/timedated1-interface.xml b/panels/datetime/timedated1-interface.xml
+deleted file mode 100644
+index b035d10..0000000
+--- a/panels/datetime/timedated1-interface.xml
++++ /dev/null
+@@ -1,27 +0,0 @@
+-<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+-"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+-<node>
+- <interface name="org.freedesktop.timedate1">
+-  <property name="Timezone" type="s" access="read"/>
+-  <property name="LocalRTC" type="b" access="read"/>
+-  <property name="NTP" type="b" access="read"/>
+-  <method name="SetTime">
+-   <arg name="usec_utc" type="x" direction="in"/>
+-   <arg name="relative" type="b" direction="in"/>
+-   <arg name="user_interaction" type="b" direction="in"/>
+-  </method>
+-  <method name="SetTimezone">
+-   <arg name="timezone" type="s" direction="in"/>
+-   <arg name="user_interaction" type="b" direction="in"/>
+-  </method>
+-  <method name="SetLocalRTC">
+-   <arg name="local_rtc" type="b" direction="in"/>
+-   <arg name="fix_system" type="b" direction="in"/>
+-   <arg name="user_interaction" type="b" direction="in"/>
+-  </method>
+-  <method name="SetNTP">
+-   <arg name="use_ntp" type="b" direction="in"/>
+-   <arg name="user_interaction" type="b" direction="in"/>
+-  </method>
+- </interface>
+-</node>
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index 4ab88aa..2334856 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -18,7 +18,6 @@ panels/common/gdm-languages.c
+ [type: gettext/glade]panels/common/language-chooser.ui
+ [type: gettext/glade]panels/datetime/datetime.ui
+ panels/datetime/gnome-datetime-panel.desktop.in.in
+-panels/datetime/org.gnome.controlcenter.datetime.policy.in
+ panels/display/cc-display-panel.c
+ [type: gettext/glade]panels/display/display-capplet.ui
+ panels/display/gnome-display-panel.desktop.in.in
+-- 
+1.7.10
+

Modified: desktop/experimental/gnome-control-center/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/patches/series?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/patches/series [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/patches/series [utf-8] Fri May 18 22:46:11 2012
@@ -1,7 +1,5 @@
-00git_handle_media_dialog_close.patch
 01_menu_category.patch
+02_no_assert_on_null_streams.patch
 06_handle_passwd_with_ldap.patch
-08_dont_crash_on_null_territories.patch
 90_force_fallback.patch
-91_configure_cheese.patch
-92_link_language_chooser_against_fontconfig.patch
+#revert_git_datetime_port.patch

Modified: desktop/experimental/gnome-control-center/debian/rules
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-control-center/debian/rules?rev=35011&op=diff
==============================================================================
--- desktop/experimental/gnome-control-center/debian/rules [utf-8] (original)
+++ desktop/experimental/gnome-control-center/debian/rules [utf-8] Fri May 18 22:46:11 2012
@@ -9,7 +9,7 @@
 include /usr/share/gnome-pkg-tools/1/rules/clean-la.mk
 include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
 
-LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed
+LDFLAGS += -Wl,-O1 -Wl,--as-needed
 
 DEB_CONFIGURE_EXTRA_FLAGS += --disable-scrollkeeper \
                              --disable-update-mimedb \




More information about the pkg-gnome-commits mailing list