Date: Monday, July 8, 2013 @ 10:15:55
  Author: jgc
Revision: 189792

upgpkg: gnome-settings-daemon 3.8.3-2

Add fixes from git, fixes random hangup and dconf segfaults on startup 
(FS#36009)

Added:
  gnome-settings-daemon/trunk/git-fixes.patch
Modified:
  gnome-settings-daemon/trunk/PKGBUILD

-----------------+
 PKGBUILD        |   16 ++-
 git-fixes.patch |  258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 271 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2013-07-08 08:14:25 UTC (rev 189791)
+++ PKGBUILD    2013-07-08 08:15:55 UTC (rev 189792)
@@ -3,7 +3,7 @@
 
 pkgname=gnome-settings-daemon
 pkgver=3.8.3
-pkgrel=1
+pkgrel=2
 pkgdesc="The GNOME Settings daemon"
 arch=('i686' 'x86_64')
 license=('GPL')
@@ -14,11 +14,21 @@
 install=gnome-settings-daemon.install
 url="http://www.gnome.org";
 groups=('gnome')
-source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('00e7f46c9a6fb8b148255adfcdd26bc5f2c1d393b8dfbac69da100c8dcfa1b6c')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+        git-fixes.patch)
+sha256sums=('00e7f46c9a6fb8b148255adfcdd26bc5f2c1d393b8dfbac69da100c8dcfa1b6c'
+            '30b0a42df9ea0c6c18ed51cb8f150008e4b5ab624eb420f0251d08ab2503c330')
 
+prepare() {
+  cd $pkgname-$pkgver
+  patch -Np1 -i ../git-fixes.patch
+}
+
 build() {
   cd $pkgname-$pkgver
+  aclocal
+  autoconf
+  automake --add-missing
 
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
       --libexecdir=/usr/lib/gnome-settings-daemon --disable-static

Added: git-fixes.patch
===================================================================
--- git-fixes.patch                             (rev 0)
+++ git-fixes.patch     2013-07-08 08:15:55 UTC (rev 189792)
@@ -0,0 +1,258 @@
+diff --git a/data/gnome-settings-daemon.desktop.in.in 
b/data/gnome-settings-daemon.desktop.in.in
+index c5a5518..ff71eee 100644
+--- a/data/gnome-settings-daemon.desktop.in.in
++++ b/data/gnome-settings-daemon.desktop.in.in
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=GNOME Settings Daemon
+-Exec=@libexecdir@/gnome-settings-daemon
++Exec=@libexecdir@/gnome-settings-daemon-localeexec
+ OnlyShowIn=GNOME;
+ NoDisplay=true
+ X-GNOME-Autostart-Phase=Initialization
+diff --git a/gnome-settings-daemon/Makefile.am 
b/gnome-settings-daemon/Makefile.am
+index 194a7cc..94b3861 100644
+--- a/gnome-settings-daemon/Makefile.am
++++ b/gnome-settings-daemon/Makefile.am
+@@ -48,6 +48,15 @@ gsddir = $(libexecdir)
+ gsd_PROGRAMS = \
+       gnome-settings-daemon
+ 
++gsd_SCRIPTS = \
++      gnome-settings-daemon-localeexec
++
++EXTRA_DIST = \
++      gnome-settings-daemon-localeexec.in
++
++gnome-settings-daemon-localeexec: gnome-settings-daemon-localeexec.in
++      $(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|" -e 
"s|\@prefix\@|$(prefix)|"  $< > $@.tmp && mv $@.tmp $@
++
+ apidir   = 
$(includedir)/gnome-settings-daemon-$(GSD_API_VERSION)/gnome-settings-daemon
+ api_DATA =                            \
+       gnome-settings-plugin.h
+diff --git a/gnome-settings-daemon/gnome-settings-daemon-localeexec.in 
b/gnome-settings-daemon/gnome-settings-daemon-localeexec.in
+new file mode 100755
+index 0000000..eed91a4
+--- /dev/null
++++ b/gnome-settings-daemon/gnome-settings-daemon-localeexec.in
+@@ -0,0 +1,20 @@
++#!/bin/sh
++
++SETTING=$(gsettings get org.gnome.system.locale region)
++REGION=${SETTING#\'}
++REGION=${REGION%\'}
++
++if [ -n "$REGION" ]; then
++  export LC_TIME=$REGION
++  export LC_NUMERIC=$REGION
++  export LC_MONETARY=$REGION
++  export LC_MEASUREMENT=$REGION
++  export LC_PAPER=$REGION
++fi
++
++if [ -x @prefix@/bin/ibus-daemon ]; then
++  export QT_IM_MODULE=ibus
++  export XMODIFIERS=@im=ibus
++fi
++
++exec @libexecdir@/gnome-settings-daemon
+diff --git a/gnome-settings-daemon/main.c b/gnome-settings-daemon/main.c
+index 24c1598..16017df 100644
+--- a/gnome-settings-daemon/main.c
++++ b/gnome-settings-daemon/main.c
+@@ -279,37 +279,6 @@ set_legacy_ibus_env_vars (GDBusProxy *proxy)
+ }
+ #endif
+ 
+-/* Keep synchronised with set_locale() and
+- * set_legacy_ibus_env_vars() above */
+-static void
+-set_locale_env (void)
+-{
+-        GSettings *locale_settings;
+-        gchar *region;
+-
+-        /* Set locale environment */
+-        locale_settings = g_settings_new ("org.gnome.system.locale");
+-        region = g_settings_get_string (locale_settings, "region");
+-        if (region[0]) {
+-                g_setenv ("LC_TIME", region, TRUE);
+-                g_setenv ("LC_NUMERIC", region, TRUE);
+-                g_setenv ("LC_MONETARY", region, TRUE);
+-                g_setenv ("LC_MEASUREMENT", region, TRUE);
+-                g_setenv ("LC_PAPER", region, TRUE);
+-        }
+-        g_free (region);
+-        g_object_unref (locale_settings);
+-
+-#ifdef HAVE_IBUS
+-        /* Set IBus legacy environment */
+-        if (is_program_in_path ("ibus-daemon") &&
+-            keyboard_plugin_is_enabled ()) {
+-                g_setenv ("QT_IM_MODULE", "ibus", TRUE);
+-                g_setenv ("XMODIFIERS", "@im=ibus", TRUE);
+-        }
+-#endif
+-}
+-
+ static void
+ register_with_gnome_session (GDBusProxy *proxy)
+ {
+@@ -499,8 +468,6 @@ main (int argc, char *argv[])
+ 
+         g_log_set_default_handler (gsd_log_default_handler, NULL);
+ 
+-        set_locale_env ();
+-
+         notify_init ("gnome-settings-daemon");
+ 
+         bus_register ();
+diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c 
b/plugins/housekeeping/gsd-housekeeping-manager.c
+index 45393ec..f51d520 100644
+--- a/plugins/housekeeping/gsd-housekeeping-manager.c
++++ b/plugins/housekeeping/gsd-housekeeping-manager.c
+@@ -372,12 +372,20 @@ gboolean
+ gsd_housekeeping_manager_start (GsdHousekeepingManager *manager,
+                                 GError                **error)
+ {
++        gchar *dir;
++
+         g_debug ("Starting housekeeping manager");
+         gnome_settings_profile_start (NULL);
+ 
+         /* Create ~/.local/ as early as possible */
+         g_mkdir_with_parents(g_get_user_data_dir (), 0700);
+ 
++        /* Create ~/.local/share/applications/, see
++         * https://bugzilla.gnome.org/show_bug.cgi?id=703048 */
++        dir = g_build_filename (g_get_user_data_dir (), "applications", NULL);
++        g_mkdir (dir, 0700);
++        g_free (dir);
++
+         gsd_ldsm_setup (FALSE);
+ 
+         manager->priv->settings = g_settings_new (THUMB_PREFIX);
+diff --git a/plugins/power/gsd-power-manager.c 
b/plugins/power/gsd-power-manager.c
+index e6380bd..96da3d1 100644
+--- a/plugins/power/gsd-power-manager.c
++++ b/plugins/power/gsd-power-manager.c
+@@ -261,11 +261,12 @@ gsd_power_manager_error_quark (void)
+ }
+ 
+ static void
+-notify_close_if_showing (NotifyNotification *notification)
++notify_close_if_showing (NotifyNotification **notification)
+ {
+-        if (notification == NULL)
++        if (*notification == NULL)
+                 return;
+-        notify_notification_close (notification, NULL);
++        notify_notification_close (*notification, NULL);
++        g_clear_object (notification);
+ }
+ 
+ typedef enum {
+@@ -1214,7 +1215,7 @@ engine_ups_discharging (GsdPowerManager *manager, 
UpDevice *device)
+         icon = gpm_upower_get_device_icon (device, TRUE);
+ 
+         /* close any existing notification of this class */
+-        notify_close_if_showing (manager->priv->notification_ups_discharging);
++        notify_close_if_showing 
(&manager->priv->notification_ups_discharging);
+ 
+         /* create a new notification */
+         create_notification (title, message->str,
+@@ -1424,7 +1425,7 @@ engine_charge_low (GsdPowerManager *manager, UpDevice 
*device)
+         icon = gpm_upower_get_device_icon (device, TRUE);
+ 
+         /* close any existing notification of this class */
+-        notify_close_if_showing (manager->priv->notification_low);
++        notify_close_if_showing (&manager->priv->notification_low);
+ 
+         /* create a new notification */
+         create_notification (title, message,
+@@ -1597,7 +1598,7 @@ engine_charge_critical (GsdPowerManager *manager, 
UpDevice *device)
+         icon = gpm_upower_get_device_icon (device, TRUE);
+ 
+         /* close any existing notification of this class */
+-        notify_close_if_showing (manager->priv->notification_low);
++        notify_close_if_showing (&manager->priv->notification_low);
+ 
+         /* create a new notification */
+         create_notification (title, message,
+@@ -1735,7 +1736,7 @@ engine_charge_action (GsdPowerManager *manager, UpDevice 
*device)
+         icon = gpm_upower_get_device_icon (device, TRUE);
+ 
+         /* close any existing notification of this class */
+-        notify_close_if_showing (manager->priv->notification_low);
++        notify_close_if_showing (&manager->priv->notification_low);
+ 
+         /* create a new notification */
+         create_notification (title, message,
+@@ -1797,8 +1798,8 @@ engine_device_changed_cb (UpClient *client, UpDevice 
*device, GsdPowerManager *m
+                 } else if (state == UP_DEVICE_STATE_FULLY_CHARGED ||
+                            state == UP_DEVICE_STATE_CHARGING) {
+                         g_debug ("fully charged or charging, hiding 
notifications if any");
+-                        notify_close_if_showing 
(manager->priv->notification_low);
+-                        notify_close_if_showing 
(manager->priv->notification_ups_discharging);
++                        notify_close_if_showing 
(&manager->priv->notification_low);
++                        notify_close_if_showing 
(&manager->priv->notification_ups_discharging);
+                         main_battery_or_ups_low_changed (manager, FALSE);
+                 }
+ 
+@@ -2268,7 +2269,7 @@ up_client_changed_cb (UpClient *client, GsdPowerManager 
*manager)
+         if (!up_client_get_on_battery (client)) {
+             /* if we are playing a critical charge sound loop on AC, stop it 
*/
+             play_loop_stop (&manager->priv->critical_alert_timeout_id);
+-            notify_close_if_showing (manager->priv->notification_low);
++            notify_close_if_showing (&manager->priv->notification_low);
+             main_battery_or_ups_low_changed (manager, FALSE);
+         }
+ 
+@@ -2638,7 +2639,7 @@ idle_configure (GsdPowerManager *manager)
+                                   &manager->priv->idle_dim_id);
+                 clear_idle_watch (manager->priv->idle_monitor,
+                                   &manager->priv->idle_sleep_warning_id);
+-                notify_close_if_showing 
(manager->priv->notification_sleep_warning);
++                notify_close_if_showing 
(&manager->priv->notification_sleep_warning);
+                 return;
+         }
+ 
+@@ -2705,7 +2706,7 @@ idle_configure (GsdPowerManager *manager)
+         }
+ 
+         if (manager->priv->idle_sleep_warning_id == 0)
+-                notify_close_if_showing 
(manager->priv->notification_sleep_warning);
++                notify_close_if_showing 
(&manager->priv->notification_sleep_warning);
+ 
+         /* set up dim callback for when the screen lock is not active,
+          * but only if we actually want to dim. */
+@@ -3038,7 +3039,7 @@ static void
+ show_sleep_warning (GsdPowerManager *manager)
+ {
+         /* close any existing notification of this class */
+-        notify_close_if_showing (manager->priv->notification_sleep_warning);
++        notify_close_if_showing (&manager->priv->notification_sleep_warning);
+ 
+         /* create a new notification */
+         switch (manager->priv->sleep_action_type) {
+@@ -3109,7 +3110,7 @@ idle_became_active_cb (GnomeIdleMonitor *monitor,
+         set_temporary_unidle_on_ac (manager, FALSE);
+ 
+         /* close any existing notification about idleness */
+-        notify_close_if_showing (manager->priv->notification_sleep_warning);
++        notify_close_if_showing (&manager->priv->notification_sleep_warning);
+ 
+         idle_set_mode (manager, GSD_POWER_IDLE_MODE_NORMAL);
+ }
+@@ -3344,8 +3345,8 @@ handle_resume_actions (GsdPowerManager *manager)
+ {
+         /* close existing notifications on resume, the system power
+          * state is probably different now */
+-        notify_close_if_showing (manager->priv->notification_low);
+-        notify_close_if_showing (manager->priv->notification_ups_discharging);
++        notify_close_if_showing (&manager->priv->notification_low);
++        notify_close_if_showing 
(&manager->priv->notification_ups_discharging);
+         main_battery_or_ups_low_changed (manager, FALSE);
+ 
+         /* ensure we turn the panel back on after resume */

Reply via email to