[arch-commits] Commit in gnome-panel/trunk (5 files)

Balló György bgyorgy at nymeria.archlinux.org
Thu Apr 11 00:00:32 UTC 2013


    Date: Thursday, April 11, 2013 @ 02:00:31
  Author: bgyorgy
Revision: 88075

upgpkg: gnome-panel 3.6.2-3

- Apply two fixes
- Introduce the Gnome Flashback session (new upstream project
  based on the GNOME Fallback mode components)

Added:
  gnome-panel/trunk/0001-Add-the-GNOME-Flashback-session.patch
  gnome-panel/trunk/18_fix_force_quit_applet.patch
  gnome-panel/trunk/fix-autoconf.patch
  gnome-panel/trunk/logout-hang-workaround.patch
Modified:
  gnome-panel/trunk/PKGBUILD

--------------------------------------------+
 0001-Add-the-GNOME-Flashback-session.patch |   95 ++++++++++++++++++++++++++
 18_fix_force_quit_applet.patch             |   98 +++++++++++++++++++++++++++
 PKGBUILD                                   |   61 +++++++++++++---
 fix-autoconf.patch                         |   11 +++
 logout-hang-workaround.patch               |   15 ++++
 5 files changed, 269 insertions(+), 11 deletions(-)

Added: 0001-Add-the-GNOME-Flashback-session.patch
===================================================================
--- 0001-Add-the-GNOME-Flashback-session.patch	                        (rev 0)
+++ 0001-Add-the-GNOME-Flashback-session.patch	2013-04-11 00:00:31 UTC (rev 88075)
@@ -0,0 +1,95 @@
+From a5b951654b856d899e8c6a4116b4ccc4f18aac91 Mon Sep 17 00:00:00 2001
+From: Jeremy Bicha <jbicha at 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 $< $@
++
++ at 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;
+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
+

Added: 18_fix_force_quit_applet.patch
===================================================================
--- 18_fix_force_quit_applet.patch	                        (rev 0)
+++ 18_fix_force_quit_applet.patch	2013-04-11 00:00:31 UTC (rev 88075)
@@ -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 <sebastien at 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");

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-04-10 23:55:34 UTC (rev 88074)
+++ PKGBUILD	2013-04-11 00:00:31 UTC (rev 88075)
@@ -2,27 +2,36 @@
 # Maintainer: Balló György <ballogyor+arch at gmail dot com>
 # Contributor: Jan de Groot <jgc at archlinux.org>
 
-pkgname=gnome-panel
+pkgbase=gnome-panel
+pkgname=('gnome-panel' 'gnome-flashback-session')
 pkgver=3.6.2
-pkgrel=2
+pkgrel=3
 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' 'itstool' 'networkmanager')
-install=$pkgname.install
+makedepends=('gobject-introspection' 'intltool' 'yelp-tools' 'networkmanager' 'gnome-common')
+install=$pkgbase.install
 options=('!libtool')
-source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz
+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)
+        drop-gweather-xml-include.patch
+        18_fix_force_quit_applet.patch
+        logout-hang-workaround.patch
+        0001-Add-the-GNOME-Flashback-session.patch
+        fix-autoconf.patch)
 sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079'
             '3a67f4b07a7dd356fad6b40a43983f3945123ed40080eb153396a481b34efc0c'
-            'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305')
+            'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305'
+            '9d742f675d9e09a032bfe00e0523a4ef7e234589a74a6086243bf335ce212775'
+            'e98391114fe618d3c9530cd5ad88e5d0d0e3b62890e4494f7db6a76ec3613a47'
+            'f313791d246749f18764ad4af13c4efe54483bc327fab371c47f9fbfc25b20a9'
+            '6828c097505d2dbbf465ed7ff694adbd646a0af2105c8dd864d1061bf0afea71')
 
 build() {
-  cd "$pkgname-$pkgver"
+  cd "$pkgbase-$pkgver"
 
   # Port to gnome-desktop 3.8
   patch -Np1 -i "$srcdir/gnome-desktop-3.8.patch"
@@ -30,16 +39,46 @@
   # Fix build with libgweather 3.8
   patch -Np0 -i "$srcdir/drop-gweather-xml-include.patch"
 
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \
+  # Fix force quit applet to avoid freeze
+  patch -Np1 -i "$srcdir/18_fix_force_quit_applet.patch"
+
+  # Apply a workaround to avoid hang on logout for 15-20 sec
+  patch -Np1 -i "$srcdir/logout-hang-workaround.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() {
-  cd "$pkgname-$pkgver"
+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
+}

Added: fix-autoconf.patch
===================================================================
--- fix-autoconf.patch	                        (rev 0)
+++ fix-autoconf.patch	2013-04-11 00:00:31 UTC (rev 88075)
@@ -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])])
+ 

Added: logout-hang-workaround.patch
===================================================================
--- logout-hang-workaround.patch	                        (rev 0)
+++ logout-hang-workaround.patch	2013-04-11 00:00:31 UTC (rev 88075)
@@ -0,0 +1,15 @@
+diff -Naur gnome-panel-3.6.2.orig/gnome-panel/panel-session.c gnome-panel-3.6.2/gnome-panel/panel-session.c
+--- gnome-panel-3.6.2.orig/gnome-panel/panel-session.c	2012-09-03 17:41:42.000000000 +0200
++++ gnome-panel-3.6.2/gnome-panel/panel-session.c	2013-04-11 00:59:42.125864185 +0200
+@@ -69,11 +69,6 @@
+ 
+ 	egg_sm_client_set_mode (mode);
+ 
+-	client = egg_sm_client_get ();
+-
+-	g_signal_connect (client, "quit",
+-			  G_CALLBACK (panel_session_handle_quit), NULL);
+-
+ 	/* We don't want the WM to try and save/restore our
+ 	 * window position */
+ 	gdk_x11_set_sm_client_id (NULL);




More information about the arch-commits mailing list