[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: