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 <tjaal...@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.hutte...@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.hutte...@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 <tjaal...@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 <tjaal...@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. */ -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org