xorg-server: Changes to 'ubuntu'
debian/changelog | 6 +
debian/patches/135_rethrow_signals.patch | 42 ++++++++-
debian/patches/154_force-copykeyclass-for-key-events.patch | 58 +++++++++++++
debian/patches/series | 1
4 files changed, 101 insertions(+), 6 deletions(-)
New commits:
commit b38e509c20c5e40d6f0b9c80012164fbfb564b63
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date: Mon Dec 15 08:46:43 2008 +0200
Add 154_force-copykeyclass-for-key-events.patch
fixes bug 19048. Without this the server default layout would always be
used.
diff --git a/debian/changelog b/debian/changelog
index a73a635..0efee5f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -25,6 +25,9 @@ xorg-server (2:1.5.99.3-0ubuntu1) UNRELEASED; urgency=low
also works.
* Drop patch 136, since SwitchCoreKeyboard is gone, and patches 151/152
basically reimplement the functionality.
+ * Add 154_force-copykeyclass-for-key-events.patch, to fix fdo
+ bug 19048. Without this the server default layout would always be
+ used.
[ Bryce Harrington ]
* Patch 135 updated so that apport actually works now.
diff --git a/debian/patches/154_force-copykeyclass-for-key-events.patch b/debian/patches/154_force-copykeyclass-for-key-events.patch
new file mode 100644
index 0000000..2951977
--- /dev/null
+++ b/debian/patches/154_force-copykeyclass-for-key-events.patch
@@ -0,0 +1,58 @@
+From be205e9d6d1baeb91a010d29b2d70050d3638cbc Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 15 Dec 2008 10:46:07 +1000
+Subject: [PATCH] mi: force CopyKeyClass for key events. (#19048)
+
+While we don't want to copy all other device classes into the VCK, we need to
+copy the key class to transfer the layout from the SDs into the VCK.
+This resembles the functionality of SwitchCoreKeyboard in server 1.5.
+
+X.Org Bug 19048 <http://bugs.freedesktop.org/show_bug.cgi?id=19048>
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ Xi/exevents.c | 2 +-
+ mi/mieq.c | 8 ++++++++
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+diff --git a/Xi/exevents.c b/Xi/exevents.c
+index 1b60099..d6b4576 100644
+--- a/Xi/exevents.c
++++ b/Xi/exevents.c
+@@ -186,7 +186,7 @@ XIGetDevice(xEvent* xE)
+ * This code is basically the old SwitchCoreKeyboard.
+ */
+
+-static void
++void
+ CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
+ {
+ static DeviceIntPtr lastMapNotifyDevice = NULL;
+diff --git a/mi/mieq.c b/mi/mieq.c
+index 87cdfba..9b15752 100644
+--- a/mi/mieq.c
++++ b/mi/mieq.c
+@@ -293,6 +293,8 @@ CopyGetMasterEvent(DeviceIntPtr mdev, xEvent* original,
+ ChangeDeviceID(mdev, *master);
+ }
+ }
++extern void
++CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
+
+ /* Call this from ProcessInputEvents(). */
+ void
+@@ -352,6 +354,12 @@ mieqProcessInputEvents(void)
+ NewCurrentScreen (dev, DequeueScreen(dev), x, y);
+ }
+ else {
++ /* Force a copy of the key class into the VCK so that the layout
++ is transferred. */
++ if (event->u.u.type == DeviceKeyPress ||
++ event->u.u.type == DeviceKeyRelease)
++ CopyKeyClass(dev, master);
++
+ if (master)
+ CopyGetMasterEvent(master, event,
+ &master_event, nevents);
+--
+1.6.0.4
diff --git a/debian/patches/series b/debian/patches/series
index 1a4b918..907ec23 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -15,3 +15,4 @@
151_allow-null-as-rulesfile.patch
152_let-the-ddx-decide-on-the-xkbrulesdefaults.patch
153_make_dmx_compile.patch
+154_force-copykeyclass-for-key-events.patch
commit 91ecf3cc0675b5db642968c9d9db68adc22fb4d4
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date: Mon Dec 15 07:18:46 2008 +0200
Patch 135 updated so that apport actually works now.
diff --git a/debian/changelog b/debian/changelog
index cc7104e..a73a635 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,6 +26,9 @@ xorg-server (2:1.5.99.3-0ubuntu1) UNRELEASED; urgency=low
* Drop patch 136, since SwitchCoreKeyboard is gone, and patches 151/152
basically reimplement the functionality.
+ [ Bryce Harrington ]
+ * Patch 135 updated so that apport actually works now.
+
-- Timo Aaltonen <tjaalton@ubuntu.com> Thu, 11 Dec 2008 19:15:09 +0200
xorg-server (2:1.5.99.3-1) UNRELEASED; urgency=low
diff --git a/debian/patches/135_rethrow_signals.patch b/debian/patches/135_rethrow_signals.patch
index 947e60c..9286900 100644
--- a/debian/patches/135_rethrow_signals.patch
+++ b/debian/patches/135_rethrow_signals.patch
@@ -1,7 +1,12 @@
-diff -Nurp xorg-server-1.4.99.906-patched/hw/xfree86/common/xf86Events.c xorg-server-1.4.99.906-working/hw/xfree86/common/xf86Events.c
---- xorg-server-1.4.99.906-patched/hw/xfree86/common/xf86Events.c 2008-09-01 13:17:47.000000000 -0700
-+++ xorg-server-1.4.99.906-working/hw/xfree86/common/xf86Events.c 2008-09-01 13:19:35.000000000 -0700
-@@ -741,6 +741,8 @@ static __inline__ void xorg_backtrace(vo
+# Return from the signal handler, in order to have the newly raised
+# signal actually get processed. This now rethrows the originally
+# caught signal instead of just aborting, so that apport now actually
+# works. (LP: #226668)
+Index: xorg-server-1.5.3/hw/xfree86/common/xf86Events.c
+===================================================================
+--- xorg-server-1.5.3.orig/hw/xfree86/common/xf86Events.c 2008-12-10 22:55:34.000000000 -0800
++++ xorg-server-1.5.3/hw/xfree86/common/xf86Events.c 2008-12-10 22:55:41.000000000 -0800
+@@ -568,6 +568,8 @@
void
xf86SigHandler(int signo)
{
@@ -10,7 +15,7 @@ diff -Nurp xorg-server-1.4.99.906-patched/hw/xfree86/common/xf86Events.c xorg-se
if ((signo == SIGILL) && xf86SigIllHandler) {
(*xf86SigIllHandler)();
/* Re-arm handler just in case we unexpectedly return here */
-@@ -763,6 +765,30 @@ xf86SigHandler(int signo)
+@@ -590,6 +592,41 @@
xorg_backtrace();
@@ -31,7 +36,18 @@ diff -Nurp xorg-server-1.4.99.906-patched/hw/xfree86/common/xf86Events.c xorg-se
+#endif
+ if (!beenhere) {
+ beenhere = TRUE;
-+ AbortServer();
++ OsCleanup(TRUE);
++ CloseDownDevices();
++ SigAbortDDX(signo);
++ fflush(stderr);
++ if (CoreDump) {
++ if (signo != 0)
++ raise(signo);
++ else
++ abort();
++ }
++ /*exit (1);*/
++
+ } else {
+ abort();
+ }
@@ -41,3 +57,17 @@ diff -Nurp xorg-server-1.4.99.906-patched/hw/xfree86/common/xf86Events.c xorg-se
FatalError("Caught signal %d. Server aborting\n", signo);
}
+Index: xorg-server-1.5.3/include/os.h
+===================================================================
+--- xorg-server-1.5.3.orig/include/os.h 2008-12-10 22:55:34.000000000 -0800
++++ xorg-server-1.5.3/include/os.h 2008-12-10 22:55:41.000000000 -0800
+@@ -458,7 +458,9 @@
+ extern CallbackListPtr FlushCallback;
+
+ extern void AbortDDX(void);
++extern void SigAbortDDX(int signo);
+ extern void ddxGiveUp(void);
++extern void ddxSigGiveUp(int signo);
+ extern int TimeSinceLastInputEvent(void);
+
+ /* Logging. */
Reply to: