diff options
Diffstat (limited to 'gnome-unstable/gnome-settings-daemon')
3 files changed, 220 insertions, 0 deletions
diff --git a/gnome-unstable/gnome-settings-daemon/PKGBUILD b/gnome-unstable/gnome-settings-daemon/PKGBUILD new file mode 100644 index 000000000..05ae4d711 --- /dev/null +++ b/gnome-unstable/gnome-settings-daemon/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 152887 2012-03-10 15:33:04Z heftig $ +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> + +pkgname=gnome-settings-daemon +pkgver=3.3.91 +pkgrel=1 +pkgdesc="The GNOME Settings daemon" +arch=('i686' 'x86_64') +license=('GPL') +depends=('libgnomekbd' 'gnome-desktop' 'libnotify' 'hicolor-icon-theme' 'libcanberra-pulse' + 'gsettings-desktop-schemas' 'nss' 'gconf' 'dconf' 'pulseaudio' 'pulseaudio-alsa' + 'upower' 'libsystemd' 'libwacom' 'udev' 'colord') +makedepends=('intltool' 'gtk-doc' 'gnome-desktop' 'gnome-common' 'xf86-input-wacom') +options=('!emptydirs' '!libtool') +install=gnome-settings-daemon.install +url="http://www.gnome.org" +groups=('gnome') +replaces=(gnome-settings-daemon-pulse) +conflicts=(gnome-settings-daemon-pulse) +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz + systemd-fallback.patch) +sha256sums=('78310aa753f9ed9e3440c8f98d63639adcf9ba18a11724ff72f78adb827a8fd4' + '29387c8176ec2f8c56060ea08865201ca9c7a27cb8ae5d93bdc4c3afe8e5516b') + +build() { + cd $pkgname-$pkgver + + patch -Np1 -i ../systemd-fallback.patch + gnome-autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib/gnome-settings-daemon --disable-static \ + --enable-systemd + + #https://bugzilla.gnome.org/show_bug.cgi?id=656231 + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install b/gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install new file mode 100644 index 000000000..483fb9450 --- /dev/null +++ b/gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install @@ -0,0 +1,18 @@ +post_install() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +pre_upgrade() { + if (( $(vercmp $2 2.90.0) < 0 )); then + usr/sbin/gconfpkg --uninstall gnome-settings-daemon + fi +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/gnome-unstable/gnome-settings-daemon/systemd-fallback.patch b/gnome-unstable/gnome-settings-daemon/systemd-fallback.patch new file mode 100644 index 000000000..80f3ac4d3 --- /dev/null +++ b/gnome-unstable/gnome-settings-daemon/systemd-fallback.patch @@ -0,0 +1,160 @@ +diff -u -Nr gnome-settings-daemon-3.3.91/configure.ac gnome-settings-daemon-3.3.91-systemd-fallback/configure.ac +--- gnome-settings-daemon-3.3.91/configure.ac 2012-03-05 19:13:16.000000000 +0100 ++++ gnome-settings-daemon-3.3.91-systemd-fallback/configure.ac 2012-03-10 16:20:31.417634553 +0100 +@@ -298,7 +298,7 @@ + [with_systemd=$enableval], + [with_systemd=no]) + if test "$with_systemd" = "yes" ; then +- PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login]) ++ PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon libsystemd-login]) + AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking]) + SESSION_TRACKING=systemd + else +diff -u -Nr gnome-settings-daemon-3.3.91/gnome-settings-daemon/gnome-settings-session.c gnome-settings-daemon-3.3.91-systemd-fallback/gnome-settings-daemon/gnome-settings-session.c +--- gnome-settings-daemon-3.3.91/gnome-settings-daemon/gnome-settings-session.c 2012-02-01 20:33:14.000000000 +0100 ++++ gnome-settings-daemon-3.3.91-systemd-fallback/gnome-settings-daemon/gnome-settings-session.c 2012-03-10 16:21:35.930442794 +0100 +@@ -30,6 +30,7 @@ + #include "gnome-settings-session.h" + + #ifdef HAVE_SYSTEMD ++#include <systemd/sd-daemon.h> + #include <systemd/sd-login.h> + + typedef struct +@@ -130,10 +131,9 @@ + { + #ifdef HAVE_SYSTEMD + GSource *sd_source; +-#else ++#endif + GDBusProxy *proxy_session; + GCancellable *cancellable; +-#endif + gchar *session_id; + GnomeSettingsSessionState state; + }; +@@ -237,7 +237,7 @@ + return TRUE; + } + +-#else /* HAVE_SYSTEMD */ ++#endif /* HAVE_SYSTEMD */ + + static void + gnome_settings_session_proxy_signal_cb (GDBusProxy *proxy, +@@ -371,35 +371,38 @@ + g_object_unref (proxy_manager); + } + +-#endif /* HAVE_SYSTEMD */ +- + static void + gnome_settings_session_init (GnomeSettingsSession *session) + { + session->priv = GNOME_SETTINGS_SESSION_GET_PRIVATE (session); + + #ifdef HAVE_SYSTEMD +- sd_pid_get_session (getpid(), &session->priv->session_id); ++ session->priv->sd_source = NULL; + +- session->priv->sd_source = sd_source_new (); +- g_source_set_callback (session->priv->sd_source, sessions_changed, session, NULL); +- g_source_attach (session->priv->sd_source, NULL); ++ if (sd_booted () > 0) { ++ sd_pid_get_session (getpid(), &session->priv->session_id); + +- sessions_changed (session); +-#else +- session->priv->cancellable = g_cancellable_new (); ++ session->priv->sd_source = sd_source_new (); ++ g_source_set_callback (session->priv->sd_source, sessions_changed, session, NULL); ++ g_source_attach (session->priv->sd_source, NULL); + +- /* connect to ConsoleKit */ +- g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, +- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, +- NULL, +- CONSOLEKIT_NAME, +- CONSOLEKIT_MANAGER_PATH, +- CONSOLEKIT_MANAGER_INTERFACE, +- session->priv->cancellable, +- got_manager_proxy_cb, +- session); ++ sessions_changed (session); ++ } else + #endif ++ { ++ session->priv->cancellable = g_cancellable_new (); ++ ++ /* connect to ConsoleKit */ ++ g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, ++ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, ++ NULL, ++ CONSOLEKIT_NAME, ++ CONSOLEKIT_MANAGER_PATH, ++ CONSOLEKIT_MANAGER_INTERFACE, ++ session->priv->cancellable, ++ got_manager_proxy_cb, ++ session); ++ } + } + + static void +@@ -415,14 +418,15 @@ + if (session->priv->sd_source != NULL) { + g_source_destroy (session->priv->sd_source); + g_source_unref (session->priv->sd_source); +- } +-#else +- g_cancellable_cancel (session->priv->cancellable); +- +- if (session->priv->proxy_session != NULL) +- g_object_unref (session->priv->proxy_session); +- g_object_unref (session->priv->cancellable); ++ } else + #endif ++ { ++ g_cancellable_cancel (session->priv->cancellable); ++ ++ if (session->priv->proxy_session != NULL) ++ g_object_unref (session->priv->proxy_session); ++ g_object_unref (session->priv->cancellable); ++ } + + G_OBJECT_CLASS (gnome_settings_session_parent_class)->finalize (object); + } +diff -u -Nr gnome-settings-daemon-3.3.91/plugins/power/gsd-power-manager.c gnome-settings-daemon-3.3.91-systemd-fallback/plugins/power/gsd-power-manager.c +--- gnome-settings-daemon-3.3.91/plugins/power/gsd-power-manager.c 2012-03-05 18:27:43.000000000 +0100 ++++ gnome-settings-daemon-3.3.91-systemd-fallback/plugins/power/gsd-power-manager.c 2012-03-10 16:20:31.417634553 +0100 +@@ -2031,7 +2031,7 @@ + g_object_unref (bus); + } + +-#else ++#endif + + static void + consolekit_stop_cb (GObject *source_object, +@@ -2081,7 +2081,6 @@ + consolekit_stop_cb, NULL); + g_object_unref (proxy); + } +-#endif + + static void + upower_sleep_cb (GObject *source_object, +@@ -2135,10 +2134,11 @@ + * hibernate is not available and is marginally better + * than just powering down the computer mid-write */ + #ifdef HAVE_SYSTEMD +- systemd_stop (); +-#else +- consolekit_stop (); ++ if (sd_booted () > 0) ++ systemd_stop (); ++ else + #endif ++ consolekit_stop (); + break; + case GSD_POWER_ACTION_BLANK: + ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, |