Date: Tuesday, May 14, 2013 @ 09:41:14
  Author: alucryd
Revision: 90806

archrelease: copy trunk to community-staging-i686, community-staging-x86_64

Added:
  gnome-panel/repos/community-staging-i686/
  
gnome-panel/repos/community-staging-i686/0001-Add-the-GNOME-Flashback-session.patch
    (from rev 90805, 
gnome-panel/trunk/0001-Add-the-GNOME-Flashback-session.patch)
  gnome-panel/repos/community-staging-i686/18_fix_force_quit_applet.patch
    (from rev 90805, gnome-panel/trunk/18_fix_force_quit_applet.patch)
  gnome-panel/repos/community-staging-i686/PKGBUILD
    (from rev 90805, gnome-panel/trunk/PKGBUILD)
  gnome-panel/repos/community-staging-i686/drop-gweather-xml-include.patch
    (from rev 90805, gnome-panel/trunk/drop-gweather-xml-include.patch)
  gnome-panel/repos/community-staging-i686/fix-autoconf.patch
    (from rev 90805, gnome-panel/trunk/fix-autoconf.patch)
  gnome-panel/repos/community-staging-i686/gnome-desktop-3.8.patch
    (from rev 90805, gnome-panel/trunk/gnome-desktop-3.8.patch)
  gnome-panel/repos/community-staging-i686/gnome-panel.install
    (from rev 90805, gnome-panel/trunk/gnome-panel.install)
  gnome-panel/repos/community-staging-x86_64/
  
gnome-panel/repos/community-staging-x86_64/0001-Add-the-GNOME-Flashback-session.patch
    (from rev 90805, 
gnome-panel/trunk/0001-Add-the-GNOME-Flashback-session.patch)
  gnome-panel/repos/community-staging-x86_64/18_fix_force_quit_applet.patch
    (from rev 90805, gnome-panel/trunk/18_fix_force_quit_applet.patch)
  gnome-panel/repos/community-staging-x86_64/PKGBUILD
    (from rev 90805, gnome-panel/trunk/PKGBUILD)
  gnome-panel/repos/community-staging-x86_64/drop-gweather-xml-include.patch
    (from rev 90805, gnome-panel/trunk/drop-gweather-xml-include.patch)
  gnome-panel/repos/community-staging-x86_64/fix-autoconf.patch
    (from rev 90805, gnome-panel/trunk/fix-autoconf.patch)
  gnome-panel/repos/community-staging-x86_64/gnome-desktop-3.8.patch
    (from rev 90805, gnome-panel/trunk/gnome-desktop-3.8.patch)
  gnome-panel/repos/community-staging-x86_64/gnome-panel.install
    (from rev 90805, gnome-panel/trunk/gnome-panel.install)

---------------------------------------------------------------------+
 community-staging-i686/0001-Add-the-GNOME-Flashback-session.patch   |   95 ++++
 community-staging-i686/18_fix_force_quit_applet.patch               |   98 ++++
 community-staging-i686/PKGBUILD                                     |   79 +++
 community-staging-i686/drop-gweather-xml-include.patch              |   10 
 community-staging-i686/fix-autoconf.patch                           |   11 
 community-staging-i686/gnome-desktop-3.8.patch                      |  199 
++++++++++
 community-staging-i686/gnome-panel.install                          |   12 
 community-staging-x86_64/0001-Add-the-GNOME-Flashback-session.patch |   95 ++++
 community-staging-x86_64/18_fix_force_quit_applet.patch             |   98 ++++
 community-staging-x86_64/PKGBUILD                                   |   79 +++
 community-staging-x86_64/drop-gweather-xml-include.patch            |   10 
 community-staging-x86_64/fix-autoconf.patch                         |   11 
 community-staging-x86_64/gnome-desktop-3.8.patch                    |  199 
++++++++++
 community-staging-x86_64/gnome-panel.install                        |   12 
 14 files changed, 1008 insertions(+)

Copied: 
gnome-panel/repos/community-staging-i686/0001-Add-the-GNOME-Flashback-session.patch
 (from rev 90805, gnome-panel/trunk/0001-Add-the-GNOME-Flashback-session.patch)
===================================================================
--- community-staging-i686/0001-Add-the-GNOME-Flashback-session.patch           
                (rev 0)
+++ community-staging-i686/0001-Add-the-GNOME-Flashback-session.patch   
2013-05-14 07:41:14 UTC (rev 90806)
@@ -0,0 +1,95 @@
+From a5b951654b856d899e8c6a4116b4ccc4f18aac91 Mon Sep 17 00:00:00 2001
+From: Jeremy Bicha <jbi...@ubuntu.com>
+Date: Sun, 24 Feb 2013 17:22:29 -0500
+Subject: [PATCH] Add the GNOME Flashback session
+
+This was removed from gnome-session 3.7.4 so let's it add it back here
+(under new name)
+
+https://bugzilla.gnome.org/show_bug.cgi?id=694625
+---
+ data/Makefile.am                        |   18 +++++++++++++++++-
+ data/gnome-flashback.desktop.in         |    7 +++++++
+ data/gnome-flashback.session.desktop.in |    3 +++
+ po/POTFILES.in                          |    2 ++
+ 4 files changed, 29 insertions(+), 1 deletion(-)
+ create mode 100644 data/gnome-flashback.desktop.in
+ create mode 100644 data/gnome-flashback.session.desktop.in
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 83f82e2..84e1954 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -30,17 +30,33 @@ gsettings_SCHEMAS = $(gsettings_schemas_in:.xml.in=.xml)
+ 
+ @GSETTINGS_RULES@
+ 
++sessiondir = $(datadir)/gnome-session/sessions
++session_in_files = gnome-flashback.session.desktop.in
++session_DATA = $(session_in_files:.session.desktop.in=.session)
++
++xsessiondir = $(datadir)/xsessions
++xsession_in_files = gnome-flashback.desktop.in
++xsession_DATA = $(xsession_in_files:.desktop.in=.desktop)
++
++%.session: %.session.desktop.in   $(INTLTOOL_MERGE) $(wildcard 
$(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c 
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
++
++@INTLTOOL_DESKTOP_RULE@
++
+ default_layoutdir   = $(datadir)/gnome-panel
+ default_layout_DATA = panel-default-layout.layout
+ 
+ EXTRA_DIST =                          \
+       $(gsettings_schemas_in_in)      \
++      $(session_in_files)             \
++      $(xsession_in_files)            \
+       $(default_layout_DATA)
+ 
+ CLEANFILES =                  \
+       $(gsettings__enum_file) \
+       $(gsettings_SCHEMAS_in) \
+       $(gsettings_SCHEMAS)    \
+-      *.gschema.valid
++      *.gschema.valid         \
++      $(session_DATA)         \
++      $(xsession_DATA)
+ 
+ -include $(top_srcdir)/git.mk
+diff --git a/data/gnome-flashback.desktop.in b/data/gnome-flashback.desktop.in
+new file mode 100644
+index 0000000..4856f75
+--- /dev/null
++++ b/data/gnome-flashback.desktop.in
+@@ -0,0 +1,7 @@
++[Desktop Entry]
++_Name=GNOME Flashback
++_Comment=This session logs you into GNOME with the traditional panel
++Exec=gnome-session --session=gnome-flashback
++TryExec=gnome-session
++Icon=
++Type=Application
+diff --git a/data/gnome-flashback.session.desktop.in 
b/data/gnome-flashback.session.desktop.in
+new file mode 100644
+index 0000000..c012c58
+--- /dev/null
++++ b/data/gnome-flashback.session.desktop.in
+@@ -0,0 +1,3 @@
++[GNOME Session]
++_Name=GNOME Flashback
++RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity;nautilus-classic;notification-daemon;gnome-fallback-background-helper;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper;
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index bc65c4c..a6aa6c7 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -23,6 +23,8 @@ applets/wncklet/window-menu.c
+ applets/wncklet/wncklet.c
+ applets/wncklet/workspace-switcher.c
+ [type: gettext/glade]applets/wncklet/workspace-switcher.ui
++data/gnome-flashback.desktop.in
++data/gnome-flashback.session.desktop.in
+ data/org.gnome.gnome-panel.applet.clock.gschema.xml.in.in
+ data/org.gnome.gnome-panel.applet.fish.gschema.xml.in.in
+ data/org.gnome.gnome-panel.applet.window-list.gschema.xml.in.in
+-- 
+1.7.10.4
+

Copied: gnome-panel/repos/community-staging-i686/18_fix_force_quit_applet.patch 
(from rev 90805, gnome-panel/trunk/18_fix_force_quit_applet.patch)
===================================================================
--- community-staging-i686/18_fix_force_quit_applet.patch                       
        (rev 0)
+++ community-staging-i686/18_fix_force_quit_applet.patch       2013-05-14 
07:41:14 UTC (rev 90806)
@@ -0,0 +1,98 @@
+Description: Fix Force-Quit panel applet
+ This patch implements handling of XInput2 extension events in the applet.
+ Without this patch, the applet fails to recognize such events (either mouse
+ click for killing application, or escape key for exiting), hence freezing the
+ desktop.
+ .
+ Also fix the event mask in call of gdk_device_grab() for keyboard.
+Author: Sébastien Villemot <sebast...@debian.org>
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698740
+Forwarded: no
+Last-Update: 2013-01-28
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/gnome-panel/panel-force-quit.c
++++ b/gnome-panel/panel-force-quit.c
+@@ -32,6 +32,8 @@
+ #include <X11/Xlib.h>
+ #include <X11/keysym.h>
+ 
++#include <X11/extensions/XInput2.h>
++
+ #include "panel-icon-names.h"
+ #include "panel-stock-icons.h"
+ 
+@@ -246,22 +248,23 @@
+ 
+ static void 
+ handle_button_press_event (GtkWidget *popup,
+-                         XKeyEvent *event)
++                         Display *display,
++                         Window subwindow)
+ {
+       Window window;
+ 
+       remove_popup (popup);
+ 
+-      if (event->subwindow == None)
++      if (subwindow == None)
+               return;
+ 
+       if (wm_state_atom == None)
+-              wm_state_atom = XInternAtom (event->display, "WM_STATE", FALSE);
++              wm_state_atom = XInternAtom (display, "WM_STATE", FALSE);
+ 
+-      window = find_managed_window (event->display, event->subwindow);
++      window = find_managed_window (display, subwindow);
+ 
+       if (window != None) {
+-              if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay 
(event->display), window))
++              if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay 
(display), window))
+                       kill_window_question ((gpointer) window);
+       }
+ }
+@@ -272,10 +275,12 @@
+             GtkWidget *popup)
+ {
+       XEvent *xevent = (XEvent *) gdk_xevent;
++      XIEvent *xiev;
++      XIDeviceEvent *xidev;
+ 
+       switch (xevent->type) {
+       case ButtonPress:
+-              handle_button_press_event (popup, &xevent->xkey);
++              handle_button_press_event (popup, xevent->xbutton.display, 
xevent->xbutton.subwindow);
+               return GDK_FILTER_REMOVE;
+       case KeyPress:
+               if (xevent->xkey.keycode == XKeysymToKeycode 
(xevent->xany.display, XK_Escape)) {
+@@ -283,6 +288,21 @@
+                       return GDK_FILTER_REMOVE;
+               }
+               break;
++      case GenericEvent:
++              xiev = (XIEvent *) xevent->xcookie.data;
++              xidev = (XIDeviceEvent *) xiev;
++              switch (xiev->evtype) {
++              case XI_KeyPress:
++                      if (xidev->detail == XKeysymToKeycode 
(xevent->xany.display, XK_Escape)) {
++                              remove_popup (popup);
++                              return GDK_FILTER_REMOVE;
++                      }
++                      break;
++              case XI_ButtonPress:
++                      handle_button_press_event (popup, xidev->display, 
xidev->child);
++                      return GDK_FILTER_REMOVE;
++              }
++              break;
+       default:
+               break;
+       }
+@@ -331,7 +351,7 @@
+ 
+       status = gdk_device_grab (keyboard, root,
+                                 GDK_OWNERSHIP_NONE, FALSE,
+-                                GDK_KEY_PRESS | GDK_KEY_RELEASE,
++                                GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
+                                 NULL, time);
+       if (status != GDK_GRAB_SUCCESS) {
+               g_warning ("Keyboard grab failed\n");

Copied: gnome-panel/repos/community-staging-i686/PKGBUILD (from rev 90805, 
gnome-panel/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD                             (rev 0)
+++ community-staging-i686/PKGBUILD     2013-05-14 07:41:14 UTC (rev 90806)
@@ -0,0 +1,79 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Jan de Groot <j...@archlinux.org>
+
+pkgbase=gnome-panel
+pkgname=('gnome-panel' 'gnome-flashback-session')
+pkgver=3.6.2
+pkgrel=6
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="Legacy GNOME panel"
+url="https://live.gnome.org/GnomePanel";
+depends=('dconf' 'evolution-data-server' 'gconf' 'gnome-desktop' 'gnome-menus' 
'librsvg'
+         'libwnck3' 'telepathy-glib')
+makedepends=('gobject-introspection' 'intltool' 'yelp-tools' 'networkmanager' 
'gnome-common')
+install=$pkgbase.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver:0:3}/$pkgbase-$pkgver.tar.xz
+        gnome-desktop-3.8.patch
+        drop-gweather-xml-include.patch
+        18_fix_force_quit_applet.patch
+        0001-Add-the-GNOME-Flashback-session.patch
+        fix-autoconf.patch)
+sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079'
+            '3a67f4b07a7dd356fad6b40a43983f3945123ed40080eb153396a481b34efc0c'
+            'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305'
+            '9d742f675d9e09a032bfe00e0523a4ef7e234589a74a6086243bf335ce212775'
+            '9db0d1dadd2183777ed39e84caca1096a857897bbcf0e18ad599996dd397f1e0'
+            '6828c097505d2dbbf465ed7ff694adbd646a0af2105c8dd864d1061bf0afea71')
+
+build() {
+  cd "$pkgbase-$pkgver"
+
+  # Port to gnome-desktop 3.8
+  patch -Np1 -i "$srcdir/gnome-desktop-3.8.patch"
+
+  # Fix build with libgweather 3.8
+  patch -Np0 -i "$srcdir/drop-gweather-xml-include.patch"
+
+  # Fix force quit applet to avoid freeze
+  patch -Np1 -i "$srcdir/18_fix_force_quit_applet.patch"
+
+  # Add GNOME Flashback session
+  # https://bugzilla.gnome.org/show_bug.cgi?id=694625
+  patch -Np1 -i "$srcdir/0001-Add-the-GNOME-Flashback-session.patch"
+
+  # Fix build
+  patch -Np1 -i "$srcdir/fix-autoconf.patch"
+
+  autoreconf -fi
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var 
--libexecdir=/usr/lib/$pkgbase \
+              --disable-static --disable-schemas-compile \
+              PYTHON=/usr/bin/python2 
+  make
+}
+
+package_gnome-panel() {
+  cd "$pkgbase-$pkgver"
+  make DESTDIR="$pkgdir" install
+
+  # Remove unneeded script
+  rm "$pkgdir/usr/lib/gnome-panel/gnome-panel-add"
+
+  # Split out the session files
+  rm -r "$pkgdir"/usr/share/{gnome-session,xsessions}
+}
+
+package_gnome-flashback-session() {
+  pkgdesc="Shell for Gnome 3 which was initially called Gnome Fallback"
+  url="https://live.gnome.org/GnomeFlashback";
+  depends=('gnome-screensaver' 'gnome-panel' 'gnome-session' 
'gnome-settings-daemon'
+           'gnome-settings-daemon-compat' 'gnome-themes-standard' 'metacity' 
'nautilus'
+           'notification-daemon' 'polkit-gnome')
+  install=
+
+  cd "$pkgbase-$pkgver"
+  make -C data DESTDIR="$pkgdir" install-sessionDATA
+  make -C data DESTDIR="$pkgdir" install-xsessionDATA
+}

Copied: 
gnome-panel/repos/community-staging-i686/drop-gweather-xml-include.patch (from 
rev 90805, gnome-panel/trunk/drop-gweather-xml-include.patch)
===================================================================
--- community-staging-i686/drop-gweather-xml-include.patch                      
        (rev 0)
+++ community-staging-i686/drop-gweather-xml-include.patch      2013-05-14 
07:41:14 UTC (rev 90806)
@@ -0,0 +1,10 @@
+--- applets/clock/clock.c.orig 2012-12-25 14:38:00.101601746 -0600
++++ applets/clock/clock.c      2012-12-25 14:38:30.331443803 -0600
+@@ -54,7 +54,6 @@
+ #define GNOME_DESKTOP_USE_UNSTABLE_API
+ #include <libgnome-desktop/gnome-wall-clock.h>
+ 
+-#include <libgweather/gweather-xml.h>
+ #include <libgweather/location-entry.h>
+ #include <libgweather/timezone-menu.h>
+ #include <libgweather/gweather-enum-types.h>

Copied: gnome-panel/repos/community-staging-i686/fix-autoconf.patch (from rev 
90805, gnome-panel/trunk/fix-autoconf.patch)
===================================================================
--- community-staging-i686/fix-autoconf.patch                           (rev 0)
+++ community-staging-i686/fix-autoconf.patch   2013-05-14 07:41:14 UTC (rev 
90806)
@@ -0,0 +1,11 @@
+diff -Naur gnome-panel-3.6.2.orig/configure.ac gnome-panel-3.6.2/configure.ac
+--- gnome-panel-3.6.2.orig/configure.ac        2012-11-12 18:51:14.000000000 
+0100
++++ gnome-panel-3.6.2/configure.ac     2013-04-10 14:50:14.132509059 +0200
+@@ -1,6 +1,6 @@
+ AC_INIT([gnome-panel], [3.6.2],
+         [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-panel])
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS(config.h)
+ AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar -Wno-portability])
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+ 

Copied: gnome-panel/repos/community-staging-i686/gnome-desktop-3.8.patch (from 
rev 90805, gnome-panel/trunk/gnome-desktop-3.8.patch)
===================================================================
--- community-staging-i686/gnome-desktop-3.8.patch                              
(rev 0)
+++ community-staging-i686/gnome-desktop-3.8.patch      2013-05-14 07:41:14 UTC 
(rev 90806)
@@ -0,0 +1,199 @@
+diff -Naur gnome-panel-3.6.2.orig/applets/clock/calendar-window.c 
gnome-panel-3.6.2/applets/clock/calendar-window.c
+--- gnome-panel-3.6.2.orig/applets/clock/calendar-window.c     2012-11-12 
18:35:17.000000000 +0100
++++ gnome-panel-3.6.2/applets/clock/calendar-window.c  2013-04-08 
23:10:30.451012763 +0200
+@@ -42,9 +42,6 @@
+ #include <glib/gi18n.h>
+ #include <gio/gio.h>
+ 
+-#define GNOME_DESKTOP_USE_UNSTABLE_API
+-#include <libgnome-desktop/gnome-desktop-utils.h>
+-
+ #include "calendar-window.h"
+ 
+ #include "clock.h"
+@@ -168,6 +165,13 @@
+               return;
+       }
+ 
++      /* FIXME: reintroduce terminal support if a proper GAppInfo port of 
gnome-panel is ever done */
++      if (terminal) {
++              g_printerr ("Terminal-based calendar/tasks applications are no 
longer supported, sorry. "
++                          "Please configure a different application.\n");
++              return;
++      }
++
+       command_line = g_find_program_in_path (program);
+       if (command_line == NULL) {
+               g_printerr ("Cannot launch calendar/tasks application: %s in 
path\n", program);
+@@ -189,9 +193,6 @@
+       screen = gtk_widget_get_screen (calwin->priv->calendar);
+       error = NULL;
+ 
+-      if (terminal)
+-              gnome_desktop_prepend_terminal_to_vector (&argc, &argv);
+-
+       display = gdk_screen_make_display_name (screen);
+ 
+       result = g_spawn_async (NULL, /* working directory */
+diff -Naur gnome-panel-3.6.2.orig/gnome-panel/panel-run-dialog.c 
gnome-panel-3.6.2/gnome-panel/panel-run-dialog.c
+--- gnome-panel-3.6.2.orig/gnome-panel/panel-run-dialog.c      2012-11-12 
18:35:17.000000000 +0100
++++ gnome-panel-3.6.2/gnome-panel/panel-run-dialog.c   2013-04-08 
23:10:52.408175181 +0200
+@@ -25,6 +25,7 @@
+  *    Havoc Pennington <h...@pobox.com>
+  *      George Lebl <ji...@5z.com>
+  *    Mark McLoughlin <m...@skynet.ie>
++ *    Tom Tromey (Copyright (C) 1998)
+  */
+ 
+ #include <config.h>
+@@ -42,8 +43,6 @@
+ #include <gdk/gdkkeysyms.h>
+ #include <gmenu-tree.h>
+ 
+-#include <libgnome-desktop/gnome-desktop-utils.h>
+-
+ #include <libpanel-util/panel-error.h>
+ #include <libpanel-util/panel-glib.h>
+ #include <libpanel-util/panel-gtk.h>
+@@ -335,6 +334,132 @@
+        */
+ }
+ 
++
++/**
++ * panel_run_dialog_prepend_terminal_to_vector:
++ * @argc: a pointer to the vector size
++ * @argv: a pointer to the vector
++ *
++ * Description:  Prepends a terminal (either the one configured as default in
++ * the user's GNOME setup, or one of the common xterm emulators) to the passed
++ * in vector, modifying it in the process.  The vector should be allocated 
with
++ * #g_malloc, as this will #g_free the original vector.  Also all elements 
must
++ * have been allocated separately.  That is the standard glib/GNOME way of
++ * doing vectors however.  If the integer that @argc points to is negative, 
the
++ * size will first be computed.  Also note that passing in pointers to a 
vector
++ * that is empty, will just create a new vector for you.
++ **/
++/* TODO: throw out this function if there ever is a proper GAppInfo port */
++static void
++panel_run_dialog_prepend_terminal_to_vector (int *argc, char ***argv)
++{
++        char **real_argv;
++        int real_argc;
++        int i, j;
++      char **term_argv = NULL;
++      int term_argc = 0;
++      GSettings *settings;
++
++      gchar *terminal = NULL;
++
++      char **the_argv;
++
++        g_return_if_fail (argc != NULL);
++        g_return_if_fail (argv != NULL);
++
++      /* sanity */
++        if(*argv == NULL)
++                *argc = 0;
++
++      the_argv = *argv;
++
++      /* compute size if not given */
++      if (*argc < 0) {
++              for (i = 0; the_argv[i] != NULL; i++)
++                      ;
++              *argc = i;
++      }
++
++      settings = g_settings_new 
("org.gnome.desktop.default-applications.terminal");
++      terminal = g_settings_get_string (settings, "exec");
++
++      if (terminal) {
++              gchar *command_line;
++              gchar *exec_flag;
++
++              exec_flag = g_settings_get_string (settings, "exec-arg");
++
++              if (exec_flag == NULL)
++                      command_line = g_strdup (terminal);
++              else
++                      command_line = g_strdup_printf ("%s %s", terminal,
++                                                      exec_flag);
++
++              g_shell_parse_argv (command_line,
++                                  &term_argc,
++                                  &term_argv,
++                                  NULL /* error */);
++
++              g_free (command_line);
++              g_free (exec_flag);
++              g_free (terminal);
++      }
++
++      g_object_unref (settings);
++
++      if (term_argv == NULL) {
++              char *check;
++
++              term_argc = 2;
++              term_argv = g_new0 (char *, 3);
++
++              check = g_find_program_in_path ("gnome-terminal");
++              if (check != NULL) {
++                      term_argv[0] = check;
++                      /* Note that gnome-terminal takes -x and
++                       * as -e in gnome-terminal is broken we use that. */
++                      term_argv[1] = g_strdup ("-x");
++              } else {
++                      if (check == NULL)
++                              check = g_find_program_in_path ("nxterm");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("color-xterm");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("rxvt");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("xterm");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("dtterm");
++                      if (check == NULL) {
++                              g_warning (_("Cannot find a terminal, using "
++                                           "xterm, even if it may not work"));
++                              check = g_strdup ("xterm");
++                      }
++                      term_argv[0] = check;
++                      term_argv[1] = g_strdup ("-e");
++              }
++      }
++
++        real_argc = term_argc + *argc;
++        real_argv = g_new (char *, real_argc + 1);
++
++        for (i = 0; i < term_argc; i++)
++                real_argv[i] = term_argv[i];
++
++        for (j = 0; j < *argc; j++, i++)
++                real_argv[i] = (char *)the_argv[j];
++
++      real_argv[i] = NULL;
++
++      g_free (*argv);
++      *argv = real_argv;
++      *argc = real_argc;
++
++      /* we use g_free here as we sucked all the inner strings
++       * out from it into real_argv */
++      g_free (term_argv);
++}
++
+ static gboolean
+ panel_run_dialog_launch_command (PanelRunDialog *dialog,
+                                const char     *command,
+@@ -354,7 +479,7 @@
+       screen = gtk_window_get_screen (GTK_WINDOW (dialog->run_dialog));
+ 
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(dialog->terminal_checkbox)))
+-              gnome_desktop_prepend_terminal_to_vector (&argc, &argv);
++              panel_run_dialog_prepend_terminal_to_vector (&argc, &argv);
+ 
+       display = gdk_screen_make_display_name (screen);
+ 

Copied: gnome-panel/repos/community-staging-i686/gnome-panel.install (from rev 
90805, gnome-panel/trunk/gnome-panel.install)
===================================================================
--- community-staging-i686/gnome-panel.install                          (rev 0)
+++ community-staging-i686/gnome-panel.install  2013-05-14 07:41:14 UTC (rev 
90806)
@@ -0,0 +1,12 @@
+post_install() {
+  glib-compile-schemas /usr/share/glib-2.0/schemas
+  gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}

Copied: 
gnome-panel/repos/community-staging-x86_64/0001-Add-the-GNOME-Flashback-session.patch
 (from rev 90805, gnome-panel/trunk/0001-Add-the-GNOME-Flashback-session.patch)
===================================================================
--- community-staging-x86_64/0001-Add-the-GNOME-Flashback-session.patch         
                (rev 0)
+++ community-staging-x86_64/0001-Add-the-GNOME-Flashback-session.patch 
2013-05-14 07:41:14 UTC (rev 90806)
@@ -0,0 +1,95 @@
+From a5b951654b856d899e8c6a4116b4ccc4f18aac91 Mon Sep 17 00:00:00 2001
+From: Jeremy Bicha <jbi...@ubuntu.com>
+Date: Sun, 24 Feb 2013 17:22:29 -0500
+Subject: [PATCH] Add the GNOME Flashback session
+
+This was removed from gnome-session 3.7.4 so let's it add it back here
+(under new name)
+
+https://bugzilla.gnome.org/show_bug.cgi?id=694625
+---
+ data/Makefile.am                        |   18 +++++++++++++++++-
+ data/gnome-flashback.desktop.in         |    7 +++++++
+ data/gnome-flashback.session.desktop.in |    3 +++
+ po/POTFILES.in                          |    2 ++
+ 4 files changed, 29 insertions(+), 1 deletion(-)
+ create mode 100644 data/gnome-flashback.desktop.in
+ create mode 100644 data/gnome-flashback.session.desktop.in
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 83f82e2..84e1954 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -30,17 +30,33 @@ gsettings_SCHEMAS = $(gsettings_schemas_in:.xml.in=.xml)
+ 
+ @GSETTINGS_RULES@
+ 
++sessiondir = $(datadir)/gnome-session/sessions
++session_in_files = gnome-flashback.session.desktop.in
++session_DATA = $(session_in_files:.session.desktop.in=.session)
++
++xsessiondir = $(datadir)/xsessions
++xsession_in_files = gnome-flashback.desktop.in
++xsession_DATA = $(xsession_in_files:.desktop.in=.desktop)
++
++%.session: %.session.desktop.in   $(INTLTOOL_MERGE) $(wildcard 
$(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c 
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
++
++@INTLTOOL_DESKTOP_RULE@
++
+ default_layoutdir   = $(datadir)/gnome-panel
+ default_layout_DATA = panel-default-layout.layout
+ 
+ EXTRA_DIST =                          \
+       $(gsettings_schemas_in_in)      \
++      $(session_in_files)             \
++      $(xsession_in_files)            \
+       $(default_layout_DATA)
+ 
+ CLEANFILES =                  \
+       $(gsettings__enum_file) \
+       $(gsettings_SCHEMAS_in) \
+       $(gsettings_SCHEMAS)    \
+-      *.gschema.valid
++      *.gschema.valid         \
++      $(session_DATA)         \
++      $(xsession_DATA)
+ 
+ -include $(top_srcdir)/git.mk
+diff --git a/data/gnome-flashback.desktop.in b/data/gnome-flashback.desktop.in
+new file mode 100644
+index 0000000..4856f75
+--- /dev/null
++++ b/data/gnome-flashback.desktop.in
+@@ -0,0 +1,7 @@
++[Desktop Entry]
++_Name=GNOME Flashback
++_Comment=This session logs you into GNOME with the traditional panel
++Exec=gnome-session --session=gnome-flashback
++TryExec=gnome-session
++Icon=
++Type=Application
+diff --git a/data/gnome-flashback.session.desktop.in 
b/data/gnome-flashback.session.desktop.in
+new file mode 100644
+index 0000000..c012c58
+--- /dev/null
++++ b/data/gnome-flashback.session.desktop.in
+@@ -0,0 +1,3 @@
++[GNOME Session]
++_Name=GNOME Flashback
++RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity;nautilus-classic;notification-daemon;gnome-fallback-background-helper;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper;
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index bc65c4c..a6aa6c7 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -23,6 +23,8 @@ applets/wncklet/window-menu.c
+ applets/wncklet/wncklet.c
+ applets/wncklet/workspace-switcher.c
+ [type: gettext/glade]applets/wncklet/workspace-switcher.ui
++data/gnome-flashback.desktop.in
++data/gnome-flashback.session.desktop.in
+ data/org.gnome.gnome-panel.applet.clock.gschema.xml.in.in
+ data/org.gnome.gnome-panel.applet.fish.gschema.xml.in.in
+ data/org.gnome.gnome-panel.applet.window-list.gschema.xml.in.in
+-- 
+1.7.10.4
+

Copied: 
gnome-panel/repos/community-staging-x86_64/18_fix_force_quit_applet.patch (from 
rev 90805, gnome-panel/trunk/18_fix_force_quit_applet.patch)
===================================================================
--- community-staging-x86_64/18_fix_force_quit_applet.patch                     
        (rev 0)
+++ community-staging-x86_64/18_fix_force_quit_applet.patch     2013-05-14 
07:41:14 UTC (rev 90806)
@@ -0,0 +1,98 @@
+Description: Fix Force-Quit panel applet
+ This patch implements handling of XInput2 extension events in the applet.
+ Without this patch, the applet fails to recognize such events (either mouse
+ click for killing application, or escape key for exiting), hence freezing the
+ desktop.
+ .
+ Also fix the event mask in call of gdk_device_grab() for keyboard.
+Author: Sébastien Villemot <sebast...@debian.org>
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698740
+Forwarded: no
+Last-Update: 2013-01-28
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/gnome-panel/panel-force-quit.c
++++ b/gnome-panel/panel-force-quit.c
+@@ -32,6 +32,8 @@
+ #include <X11/Xlib.h>
+ #include <X11/keysym.h>
+ 
++#include <X11/extensions/XInput2.h>
++
+ #include "panel-icon-names.h"
+ #include "panel-stock-icons.h"
+ 
+@@ -246,22 +248,23 @@
+ 
+ static void 
+ handle_button_press_event (GtkWidget *popup,
+-                         XKeyEvent *event)
++                         Display *display,
++                         Window subwindow)
+ {
+       Window window;
+ 
+       remove_popup (popup);
+ 
+-      if (event->subwindow == None)
++      if (subwindow == None)
+               return;
+ 
+       if (wm_state_atom == None)
+-              wm_state_atom = XInternAtom (event->display, "WM_STATE", FALSE);
++              wm_state_atom = XInternAtom (display, "WM_STATE", FALSE);
+ 
+-      window = find_managed_window (event->display, event->subwindow);
++      window = find_managed_window (display, subwindow);
+ 
+       if (window != None) {
+-              if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay 
(event->display), window))
++              if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay 
(display), window))
+                       kill_window_question ((gpointer) window);
+       }
+ }
+@@ -272,10 +275,12 @@
+             GtkWidget *popup)
+ {
+       XEvent *xevent = (XEvent *) gdk_xevent;
++      XIEvent *xiev;
++      XIDeviceEvent *xidev;
+ 
+       switch (xevent->type) {
+       case ButtonPress:
+-              handle_button_press_event (popup, &xevent->xkey);
++              handle_button_press_event (popup, xevent->xbutton.display, 
xevent->xbutton.subwindow);
+               return GDK_FILTER_REMOVE;
+       case KeyPress:
+               if (xevent->xkey.keycode == XKeysymToKeycode 
(xevent->xany.display, XK_Escape)) {
+@@ -283,6 +288,21 @@
+                       return GDK_FILTER_REMOVE;
+               }
+               break;
++      case GenericEvent:
++              xiev = (XIEvent *) xevent->xcookie.data;
++              xidev = (XIDeviceEvent *) xiev;
++              switch (xiev->evtype) {
++              case XI_KeyPress:
++                      if (xidev->detail == XKeysymToKeycode 
(xevent->xany.display, XK_Escape)) {
++                              remove_popup (popup);
++                              return GDK_FILTER_REMOVE;
++                      }
++                      break;
++              case XI_ButtonPress:
++                      handle_button_press_event (popup, xidev->display, 
xidev->child);
++                      return GDK_FILTER_REMOVE;
++              }
++              break;
+       default:
+               break;
+       }
+@@ -331,7 +351,7 @@
+ 
+       status = gdk_device_grab (keyboard, root,
+                                 GDK_OWNERSHIP_NONE, FALSE,
+-                                GDK_KEY_PRESS | GDK_KEY_RELEASE,
++                                GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
+                                 NULL, time);
+       if (status != GDK_GRAB_SUCCESS) {
+               g_warning ("Keyboard grab failed\n");

Copied: gnome-panel/repos/community-staging-x86_64/PKGBUILD (from rev 90805, 
gnome-panel/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD                           (rev 0)
+++ community-staging-x86_64/PKGBUILD   2013-05-14 07:41:14 UTC (rev 90806)
@@ -0,0 +1,79 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Jan de Groot <j...@archlinux.org>
+
+pkgbase=gnome-panel
+pkgname=('gnome-panel' 'gnome-flashback-session')
+pkgver=3.6.2
+pkgrel=6
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="Legacy GNOME panel"
+url="https://live.gnome.org/GnomePanel";
+depends=('dconf' 'evolution-data-server' 'gconf' 'gnome-desktop' 'gnome-menus' 
'librsvg'
+         'libwnck3' 'telepathy-glib')
+makedepends=('gobject-introspection' 'intltool' 'yelp-tools' 'networkmanager' 
'gnome-common')
+install=$pkgbase.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver:0:3}/$pkgbase-$pkgver.tar.xz
+        gnome-desktop-3.8.patch
+        drop-gweather-xml-include.patch
+        18_fix_force_quit_applet.patch
+        0001-Add-the-GNOME-Flashback-session.patch
+        fix-autoconf.patch)
+sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079'
+            '3a67f4b07a7dd356fad6b40a43983f3945123ed40080eb153396a481b34efc0c'
+            'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305'
+            '9d742f675d9e09a032bfe00e0523a4ef7e234589a74a6086243bf335ce212775'
+            '9db0d1dadd2183777ed39e84caca1096a857897bbcf0e18ad599996dd397f1e0'
+            '6828c097505d2dbbf465ed7ff694adbd646a0af2105c8dd864d1061bf0afea71')
+
+build() {
+  cd "$pkgbase-$pkgver"
+
+  # Port to gnome-desktop 3.8
+  patch -Np1 -i "$srcdir/gnome-desktop-3.8.patch"
+
+  # Fix build with libgweather 3.8
+  patch -Np0 -i "$srcdir/drop-gweather-xml-include.patch"
+
+  # Fix force quit applet to avoid freeze
+  patch -Np1 -i "$srcdir/18_fix_force_quit_applet.patch"
+
+  # Add GNOME Flashback session
+  # https://bugzilla.gnome.org/show_bug.cgi?id=694625
+  patch -Np1 -i "$srcdir/0001-Add-the-GNOME-Flashback-session.patch"
+
+  # Fix build
+  patch -Np1 -i "$srcdir/fix-autoconf.patch"
+
+  autoreconf -fi
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var 
--libexecdir=/usr/lib/$pkgbase \
+              --disable-static --disable-schemas-compile \
+              PYTHON=/usr/bin/python2 
+  make
+}
+
+package_gnome-panel() {
+  cd "$pkgbase-$pkgver"
+  make DESTDIR="$pkgdir" install
+
+  # Remove unneeded script
+  rm "$pkgdir/usr/lib/gnome-panel/gnome-panel-add"
+
+  # Split out the session files
+  rm -r "$pkgdir"/usr/share/{gnome-session,xsessions}
+}
+
+package_gnome-flashback-session() {
+  pkgdesc="Shell for Gnome 3 which was initially called Gnome Fallback"
+  url="https://live.gnome.org/GnomeFlashback";
+  depends=('gnome-screensaver' 'gnome-panel' 'gnome-session' 
'gnome-settings-daemon'
+           'gnome-settings-daemon-compat' 'gnome-themes-standard' 'metacity' 
'nautilus'
+           'notification-daemon' 'polkit-gnome')
+  install=
+
+  cd "$pkgbase-$pkgver"
+  make -C data DESTDIR="$pkgdir" install-sessionDATA
+  make -C data DESTDIR="$pkgdir" install-xsessionDATA
+}

Copied: 
gnome-panel/repos/community-staging-x86_64/drop-gweather-xml-include.patch 
(from rev 90805, gnome-panel/trunk/drop-gweather-xml-include.patch)
===================================================================
--- community-staging-x86_64/drop-gweather-xml-include.patch                    
        (rev 0)
+++ community-staging-x86_64/drop-gweather-xml-include.patch    2013-05-14 
07:41:14 UTC (rev 90806)
@@ -0,0 +1,10 @@
+--- applets/clock/clock.c.orig 2012-12-25 14:38:00.101601746 -0600
++++ applets/clock/clock.c      2012-12-25 14:38:30.331443803 -0600
+@@ -54,7 +54,6 @@
+ #define GNOME_DESKTOP_USE_UNSTABLE_API
+ #include <libgnome-desktop/gnome-wall-clock.h>
+ 
+-#include <libgweather/gweather-xml.h>
+ #include <libgweather/location-entry.h>
+ #include <libgweather/timezone-menu.h>
+ #include <libgweather/gweather-enum-types.h>

Copied: gnome-panel/repos/community-staging-x86_64/fix-autoconf.patch (from rev 
90805, gnome-panel/trunk/fix-autoconf.patch)
===================================================================
--- community-staging-x86_64/fix-autoconf.patch                         (rev 0)
+++ community-staging-x86_64/fix-autoconf.patch 2013-05-14 07:41:14 UTC (rev 
90806)
@@ -0,0 +1,11 @@
+diff -Naur gnome-panel-3.6.2.orig/configure.ac gnome-panel-3.6.2/configure.ac
+--- gnome-panel-3.6.2.orig/configure.ac        2012-11-12 18:51:14.000000000 
+0100
++++ gnome-panel-3.6.2/configure.ac     2013-04-10 14:50:14.132509059 +0200
+@@ -1,6 +1,6 @@
+ AC_INIT([gnome-panel], [3.6.2],
+         [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-panel])
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS(config.h)
+ AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar -Wno-portability])
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+ 

Copied: gnome-panel/repos/community-staging-x86_64/gnome-desktop-3.8.patch 
(from rev 90805, gnome-panel/trunk/gnome-desktop-3.8.patch)
===================================================================
--- community-staging-x86_64/gnome-desktop-3.8.patch                            
(rev 0)
+++ community-staging-x86_64/gnome-desktop-3.8.patch    2013-05-14 07:41:14 UTC 
(rev 90806)
@@ -0,0 +1,199 @@
+diff -Naur gnome-panel-3.6.2.orig/applets/clock/calendar-window.c 
gnome-panel-3.6.2/applets/clock/calendar-window.c
+--- gnome-panel-3.6.2.orig/applets/clock/calendar-window.c     2012-11-12 
18:35:17.000000000 +0100
++++ gnome-panel-3.6.2/applets/clock/calendar-window.c  2013-04-08 
23:10:30.451012763 +0200
+@@ -42,9 +42,6 @@
+ #include <glib/gi18n.h>
+ #include <gio/gio.h>
+ 
+-#define GNOME_DESKTOP_USE_UNSTABLE_API
+-#include <libgnome-desktop/gnome-desktop-utils.h>
+-
+ #include "calendar-window.h"
+ 
+ #include "clock.h"
+@@ -168,6 +165,13 @@
+               return;
+       }
+ 
++      /* FIXME: reintroduce terminal support if a proper GAppInfo port of 
gnome-panel is ever done */
++      if (terminal) {
++              g_printerr ("Terminal-based calendar/tasks applications are no 
longer supported, sorry. "
++                          "Please configure a different application.\n");
++              return;
++      }
++
+       command_line = g_find_program_in_path (program);
+       if (command_line == NULL) {
+               g_printerr ("Cannot launch calendar/tasks application: %s in 
path\n", program);
+@@ -189,9 +193,6 @@
+       screen = gtk_widget_get_screen (calwin->priv->calendar);
+       error = NULL;
+ 
+-      if (terminal)
+-              gnome_desktop_prepend_terminal_to_vector (&argc, &argv);
+-
+       display = gdk_screen_make_display_name (screen);
+ 
+       result = g_spawn_async (NULL, /* working directory */
+diff -Naur gnome-panel-3.6.2.orig/gnome-panel/panel-run-dialog.c 
gnome-panel-3.6.2/gnome-panel/panel-run-dialog.c
+--- gnome-panel-3.6.2.orig/gnome-panel/panel-run-dialog.c      2012-11-12 
18:35:17.000000000 +0100
++++ gnome-panel-3.6.2/gnome-panel/panel-run-dialog.c   2013-04-08 
23:10:52.408175181 +0200
+@@ -25,6 +25,7 @@
+  *    Havoc Pennington <h...@pobox.com>
+  *      George Lebl <ji...@5z.com>
+  *    Mark McLoughlin <m...@skynet.ie>
++ *    Tom Tromey (Copyright (C) 1998)
+  */
+ 
+ #include <config.h>
+@@ -42,8 +43,6 @@
+ #include <gdk/gdkkeysyms.h>
+ #include <gmenu-tree.h>
+ 
+-#include <libgnome-desktop/gnome-desktop-utils.h>
+-
+ #include <libpanel-util/panel-error.h>
+ #include <libpanel-util/panel-glib.h>
+ #include <libpanel-util/panel-gtk.h>
+@@ -335,6 +334,132 @@
+        */
+ }
+ 
++
++/**
++ * panel_run_dialog_prepend_terminal_to_vector:
++ * @argc: a pointer to the vector size
++ * @argv: a pointer to the vector
++ *
++ * Description:  Prepends a terminal (either the one configured as default in
++ * the user's GNOME setup, or one of the common xterm emulators) to the passed
++ * in vector, modifying it in the process.  The vector should be allocated 
with
++ * #g_malloc, as this will #g_free the original vector.  Also all elements 
must
++ * have been allocated separately.  That is the standard glib/GNOME way of
++ * doing vectors however.  If the integer that @argc points to is negative, 
the
++ * size will first be computed.  Also note that passing in pointers to a 
vector
++ * that is empty, will just create a new vector for you.
++ **/
++/* TODO: throw out this function if there ever is a proper GAppInfo port */
++static void
++panel_run_dialog_prepend_terminal_to_vector (int *argc, char ***argv)
++{
++        char **real_argv;
++        int real_argc;
++        int i, j;
++      char **term_argv = NULL;
++      int term_argc = 0;
++      GSettings *settings;
++
++      gchar *terminal = NULL;
++
++      char **the_argv;
++
++        g_return_if_fail (argc != NULL);
++        g_return_if_fail (argv != NULL);
++
++      /* sanity */
++        if(*argv == NULL)
++                *argc = 0;
++
++      the_argv = *argv;
++
++      /* compute size if not given */
++      if (*argc < 0) {
++              for (i = 0; the_argv[i] != NULL; i++)
++                      ;
++              *argc = i;
++      }
++
++      settings = g_settings_new 
("org.gnome.desktop.default-applications.terminal");
++      terminal = g_settings_get_string (settings, "exec");
++
++      if (terminal) {
++              gchar *command_line;
++              gchar *exec_flag;
++
++              exec_flag = g_settings_get_string (settings, "exec-arg");
++
++              if (exec_flag == NULL)
++                      command_line = g_strdup (terminal);
++              else
++                      command_line = g_strdup_printf ("%s %s", terminal,
++                                                      exec_flag);
++
++              g_shell_parse_argv (command_line,
++                                  &term_argc,
++                                  &term_argv,
++                                  NULL /* error */);
++
++              g_free (command_line);
++              g_free (exec_flag);
++              g_free (terminal);
++      }
++
++      g_object_unref (settings);
++
++      if (term_argv == NULL) {
++              char *check;
++
++              term_argc = 2;
++              term_argv = g_new0 (char *, 3);
++
++              check = g_find_program_in_path ("gnome-terminal");
++              if (check != NULL) {
++                      term_argv[0] = check;
++                      /* Note that gnome-terminal takes -x and
++                       * as -e in gnome-terminal is broken we use that. */
++                      term_argv[1] = g_strdup ("-x");
++              } else {
++                      if (check == NULL)
++                              check = g_find_program_in_path ("nxterm");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("color-xterm");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("rxvt");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("xterm");
++                      if (check == NULL)
++                              check = g_find_program_in_path ("dtterm");
++                      if (check == NULL) {
++                              g_warning (_("Cannot find a terminal, using "
++                                           "xterm, even if it may not work"));
++                              check = g_strdup ("xterm");
++                      }
++                      term_argv[0] = check;
++                      term_argv[1] = g_strdup ("-e");
++              }
++      }
++
++        real_argc = term_argc + *argc;
++        real_argv = g_new (char *, real_argc + 1);
++
++        for (i = 0; i < term_argc; i++)
++                real_argv[i] = term_argv[i];
++
++        for (j = 0; j < *argc; j++, i++)
++                real_argv[i] = (char *)the_argv[j];
++
++      real_argv[i] = NULL;
++
++      g_free (*argv);
++      *argv = real_argv;
++      *argc = real_argc;
++
++      /* we use g_free here as we sucked all the inner strings
++       * out from it into real_argv */
++      g_free (term_argv);
++}
++
+ static gboolean
+ panel_run_dialog_launch_command (PanelRunDialog *dialog,
+                                const char     *command,
+@@ -354,7 +479,7 @@
+       screen = gtk_window_get_screen (GTK_WINDOW (dialog->run_dialog));
+ 
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(dialog->terminal_checkbox)))
+-              gnome_desktop_prepend_terminal_to_vector (&argc, &argv);
++              panel_run_dialog_prepend_terminal_to_vector (&argc, &argv);
+ 
+       display = gdk_screen_make_display_name (screen);
+ 

Copied: gnome-panel/repos/community-staging-x86_64/gnome-panel.install (from 
rev 90805, gnome-panel/trunk/gnome-panel.install)
===================================================================
--- community-staging-x86_64/gnome-panel.install                                
(rev 0)
+++ community-staging-x86_64/gnome-panel.install        2013-05-14 07:41:14 UTC 
(rev 90806)
@@ -0,0 +1,12 @@
+post_install() {
+  glib-compile-schemas /usr/share/glib-2.0/schemas
+  gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}

Reply via email to