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

Bug#681969: marked as done (unblock: xorg-server/2:1.12.3-1)



Your message dated Sat, 4 Aug 2012 12:48:50 +0200
with message-id <20120804104850.GP17223@radis.cristau.org>
and subject line Re: Bug#681969: unblock: xorg-server/2:1.12.3-1
has caused the Debian Bug report #681969,
regarding unblock: xorg-server/2:1.12.3-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
681969: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681969
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package xorg-server.  1.12.3 is a bugfix release made
from upstream's stable branch.  The debdiff contains a lot of irrelevant
changes to autotools/yacc/lex-generated files, which we delete and
regenerate on build anyway, so you'll find something hopefully more
usable below.

unblock xorg-server/2:1.12.3-1

Cheers,
Julien

 ChangeLog                        |  360 ++++++++++++++++++++++++++++++++++++++
 Xi/extinit.c                     |    2 +-
 Xi/stubs.c                       |    1 +
 Xi/xiquerydevice.c               |    2 +-
 configure.ac                     |    4 +-
 debian/changelog                 |    7 +
 debian/xserver-common.install    |    1 +
 dix/getevents.c                  |   67 +++++--
 dix/touch.c                      |    7 +-
 hw/xfree86/common/xf86Config.c   |    1 +
 hw/xfree86/common/xf86Init.c     |    1 +
 hw/xfree86/common/xf86Xinput.c   |   94 ++++++++--
 hw/xfree86/common/xf86sbusBus.c  |    8 +-
 hw/xfree86/doc/ddxDesign.xml     |   25 ---
 hw/xfree86/modes/xf86EdidModes.c |   13 +-
 hw/xfree86/utils/man/cvt.man     |    4 +-
 hw/xquartz/X11Application.m      |   24 ++-
 hw/xquartz/console_redirect.c    |   14 ++
 hw/xquartz/quartz.c              |    6 +
 randr/randr.c                    |    2 +-
 xkb/XKBMAlloc.c                  |    6 +-
 xkb/xkbAccessX.c                 |    9 +-
 22 files changed, 580 insertions(+), 78 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 33bbced..d97f82a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,363 @@
+commit 60e0d205666c1fc0c818b9430c1e20428c9d3808
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Jul 9 10:44:01 2012 +1000
+
+    configure.ac: Bump to Version 1.12.3
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 738e55ebbdf516a45b95761b815bed4e697dc726
+Author: Torsten Kaiser <just.for.lkml@googlemail.com>
+Date:   Fri Jul 6 12:10:25 2012 -0700
+
+    xfree86: EDID Est III parsing skips some modes
+    
+    This loop needs to count from 7 to 0, not only from 7 to 1.
+    The current code always skips the modes {1152, 864, 75, 0}, {1280, 1024, 85, 0},
+    {1400, 1050, 75, 0}, {1600, 1200, 70, 0} and {1920, 1200, 60, 0}.
+    
+    Signed-off-by: Torsten Kaiser <x11@ariolc.dyndns.org>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 7c9d8cbd368cac53e7aed9308292614337db3be2)
+
+commit f27fcb81c4a30cec899628e4bb3e300edbcebe4b
+Author: Torsten Kaiser <just.for.lkml@googlemail.com>
+Date:   Fri Jul 6 12:06:13 2012 -0700
+
+    xfree86: EDID Est III parsing can walk off end of array
+    
+    Using -O3 gcc notes that m could reach beyound the end of the EstIIIModes array,
+    if the last bits of the 11s byte where set.
+    Fix this, by extending the array to cover all possible bits from est.
+    
+    https://bugs.freedesktop.org/show_bug.cgi?id=45623
+    
+    Signed-off-by: Torsten Kaiser <x11@ariolc.dyndns.org>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 0b3abacb6430e6593c4358420ba457d8149bd32b)
+
+commit e4497cd002ffb59cb7cf9df69d47ccb62ab55bf4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Jun 15 10:00:51 2012 +1000
+
+    xfree86: always enable SIGIO on OsVendorInit (#50957)
+    
+    Drivers call xf86InstallSIGIOHandler() for their fd on DEVICE_ON. That
+    function does not actually enable the signal if it was blocked to begin
+    with. As a result, if one vt-switches away from the server (SIGIO is
+    blocked) and then triggers a server regeneration, the signal remains
+    blocked and input devices are dead.
+    
+    Avoid this by always unblocking SIGIO when we start the server.
+    
+    X.Org Bug 50957 <http://bugs.freedesktop.org/show_bug.cgi?id=50957>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 9f1edced9abc066f0ba47672d006fe50fb206371)
+
+commit ac85a6866fa63d1a1972dfa8fdcfe6ad76705648
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Jun 26 09:19:33 2012 +1000
+
+    Xi: extend PropagateMask to EMASKSIZE
+    
+    Number of devices is 2 + MAXDEVICES, with index 0 and 1 reserved for
+    XIAll{Master}Devices. At the current size, PropagateMask would be overrun in
+    RecalculateDeviceDeliverableEvents().
+    
+    Found by Coverity.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    (cherry picked from commit 12bfb4cf1bebb66d2c2eb76b93c18a2915b865e5)
+
+commit eca5de2f1a08b38cf17188c8b3d02bae7fc14cd5
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Jun 25 14:24:11 2012 +1000
+
+    dix: fix memory leak in TouchEventHistoryReplay
+    
+    Don't leak if ti->history is NULL.
+    
+    Found by coverity.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    (cherry picked from commit a9c09f8f8e2a97e4bfe927bc4c7f29b04ee3403a)
+
+commit c4d28c40bfb7e6ccdb921b610f26a3881bc5974a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 24 10:01:26 2011 +1000
+
+    xfree86: fix use-after-free issue in checkInput
+    
+    *dev is the condition of the while loop we're in, reset to NULL after
+    freeing
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    (cherry picked from commit e3f47be9fbc489e3eb5832445924810b2ff300f7)
+
+commit 487e8e829942fcafe2435576d1e4cf831002aed4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Jul 2 10:15:14 2012 +1000
+
+    configure.ac: Version bump to 1.12.2.902 (1.12.3 RC2)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit d21b6f0a2d767ca6fbd8f0ec387f83a50a38b486
+Author: Andy Ritger <aritger@nvidia.com>
+Date:   Thu Jun 14 09:15:37 2012 -0700
+
+    randr: Don't recurse into mieqProcessInputEvents() from RRTellChanged().
+    
+    Call UpdateCurrentTimeIf(), not UpdateCurrentTime(), from RRTellChanged().
+    The latter calls ProcessInputEvents(), which can trigger a recursion
+    into mieqProcessInputEvents().  The former omits the call to
+    ProcessInputEvents().
+    
+    Signed-off-by: Andy Ritger <aritger@nvidia.com>
+    Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit dae317e7265007b38012244722e3b3a06e904ed5)
+
+commit a6de3eac661ff6f23145cdaa49fc722381a1899e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jun 7 16:52:20 2012 +1000
+
+    dix: if the scroll valuator reaches INT_MAX, reset to 0
+    
+    Too much scrolling down may eventually trigger an overflow of the valuator.
+    If this happens, reset the valuator to 0 and skip this event for button
+    emulation. Clients will have to figure out a way to deal with this, but a
+    scroll event from (close to) INT_MAX to 0 is a hint of that it needs to be
+    ignored.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit 54476b5e4461ff523e935961affabcf0de12c556)
+
+commit b0be2d29b2c72c09de9845d2b1983e4c77c2ef17
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Apr 11 09:43:23 2012 +1000
+
+    Xi: fix XITouchClass sourceid assignment
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit 72cfc1a097dc1e09d2cd9415ef7855a2cef92351)
+
+commit 4af8e22b1a539778388fe509a7f3a25860a7879c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Jun 6 14:38:49 2012 +1000
+
+    xkb: warn if XKB SlowKeys have been automatically enabled
+    
+    Slow keys are enabled when the XKB AccessX features are generally enabled
+    (ctrls->enabled_ctrls & XkbAccessXKeysMask) and either shift key is held for
+    8 seconds. For the unsuspecting user this appears as if the keyboard
+    suddenly stops working.
+    
+    Print a warning to the log, so we can later tell them "told you so".
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
+    (cherry picked from commit ff41753b1bee414b16c0f1e8d183776e87c94065)
+
+commit 0cecc4fc0f232bb64b8ef86d74164a676d92284f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue May 29 10:17:50 2012 +0530
+
+    configure.ac: Version bump to 1.12.2.901 (1.12.3 RC1)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit aaf48906279bcf74bcfd0a1de24de099184be022
+Author: Julien Cristau <jcristau@debian.org>
+Date:   Fri May 11 21:31:49 2012 +0200
+
+    Xi: make stub DeleteInputDeviceRequest call RemoveDevice
+    
+    DeleteInputDeviceRequest is called from CloseDownDevices on reset, so
+    call RemoveDevice to avoid leaking devices in Xvfb/Xnest/Xwin.
+    
+    Signed-off-by: Julien Cristau <jcristau@debian.org>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit e4153c1d9138ed40de1c615525066a0f5bb599dc)
+
+commit f4a1ecb9280570c473631760885cc2afb5d174b9
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date:   Mon May 21 21:39:43 2012 +0200
+
+    xfree86: fix mouse wheel support for DGA clients
+    
+    xf86-input-evdev (since "smooth scrolling" support was added) can send mouse
+    motion and wheel events in one batch, so we need to handle it properly.
+    Otherwise mouse wheel events which come with motion events are lost
+    and separate mouse wheel events are handled through non-DGA path.
+    
+    Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 2d4fda4b09e67e47d3e6fc4743fc6e81bfe40f28)
+
+commit 889ce06946b8c1a246130a899e2702a3d7340fd2
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed May 9 11:30:46 2012 +1000
+
+    dix: undo transformation for missing valuators (#49347)
+    
+    last.valuators contains the transformed valuators of the device. If the
+    device submits events with x/y missing, we need to get that from
+    last.valuators and undo the transformation to that axis.
+    
+    X.Org Bug 49347 <http://bugs.freedesktop.org/show_bug.cgi?id=49347>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit 749a593e49adccdf1225be28a521412ec85333f4)
+
+commit 4c21adab7ce4290ea038e13dd20a850f50d95f23
+Author: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
+Date:   Tue May 29 10:17:50 2012 +0530
+
+    xkb: Allocate size_syms correctly when width of a type increases
+    
+    The current code seems to skip syms with width less than
+    type->num_levels when calculating the total size for the new
+    size_syms. This leads to less space being allocated than necessary
+    during the next phase, which is to copy over the syms to the new
+    location. This results in an overflow leading to a crash.
+    
+    Signed-off-by: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 42ae2e8199fe875319978249963de7499607988b)
+
+commit 472c2d1af75d8e321728589e377f73116adb29fa
+Author: Michal Suchanek <hramrach@gmail.com>
+Date:   Wed May 23 11:22:05 2012 +0200
+
+    Fix crash for motion events from devices without valuators
+    
+    A WarpPointer request may trigger a motion event on a device without
+    valuators. That request is ignored by GetPointerEvents but during smooth
+    scroll emulation we dereference dev->valuators to get the number of axes.
+    
+    Break out early if the device doesn't have valuators.
+    
+    Signed-off-by: Michal Suchanek <hramrach@gmail.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 88c767edb01ed7efb19ffe3a453e16107b27130b)
+
+commit 97cae5e07a8e81c17cf18df7843db6ab1fc6a2a7
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Thu Jan 26 15:44:40 2012 -0800
+
+    Convert sbusPaletteKey to latest DevPrivate API
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    (cherry picked from commit 96e0ab54962ab59f03275a098ee02c1f0f86b94e)
+
+commit 3484ef2de50970fefe0c2580f52357ee37d3e6f3
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Fri Apr 6 21:51:37 2012 -0700
+
+    cvt man page should use Hz, not kHz, for vertical refresh rate
+    
+    https://bugs.freedesktop.org/show_bug.cgi?id=48311
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Julien Cristau <jcristau@debian.org>
+    (cherry picked from commit c3180a74a4fc6304bcfe676e3285d707874a9fea)
+
+commit a5808eae02749507c49978f71d5aba2f3193cb07
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Fri Apr 27 13:35:32 2012 -0700
+
+    Undocument Font Module loading
+    
+    Code was deleted in commit affec10635343668839994ea2bac16c1d4524200
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    (cherry picked from commit 5a3a98fcb799c2ac8fa7494645ad9030f1cac837)
+
+commit 9a4e2d80a5e79f6818879d682bb21a47acefc550
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Fri Apr 27 13:31:56 2012 -0700
+
+    Undocument mandatory loadable modules
+    
+    The code to implement was deleted when BaseModules[] was emptied by
+    the replacement of the "pcidata" module with libpciaccess calls
+    in commit 46f55f5dead5d70cdff30531d80a72f6be042315.
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    (cherry picked from commit afcb7ba24ebd9968d48a192df438e7f1c0ecb770)
+
+commit 19126c0b36843f7c0e81631d1a1228d18e39eb62
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Thu May 17 10:08:02 2012 -0700
+
+    XQuartz: Avoid a race in initialization of darwinPointer
+    
+    http://xquartz.macosforge.org/trac/ticket/579
+    
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+    (cherry picked from commit acdc4f54ee5784d26c251ff8c941b4360ae80e9b)
+
+commit 198a876e34b880be5f7da683ec3ff21a53edcec5
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Mon May 7 17:07:27 2012 -0700
+
+    XQuartz: Provide fls implementation for Tiger
+    
+    Regression-from: 30623d6ff7bca223f9e1a825e86bd317eef8bf16
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+    (cherry picked from commit f5fc5334116ad2b0c8930ac68c52bf0f7a2f1417)
+
+commit 300970f8f80ef15614fef78215476a8011895000
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Mon May 7 16:31:38 2012 -0700
+
+    XQuartz: Tiger build fix
+    
+    http://trac.macports.org/ticket/34364
+    
+    Regression-from: 662d41acdde1dcb9774fbe4054e251c708acaffe
+    
+    Reported-by: Peter Dyballa <Peter_Dyballa@Freenet.DE>
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+    (cherry picked from commit e0097ce9719f9b0aeccf7102630c0299f8acdf93)
+
+commit 21956e2f8e506dd167f188be0d3b18e052c6913d
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Mon May 7 16:16:20 2012 -0700
+
+    XQuartz: Workaround an SDK bug on Leopard/x86_64
+    
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+    (cherry picked from commit 4acbaa3027d89728ed932616f6ef66d93537b101)
+
+commit 131fe8fbd17edb05084cd7cddc3c4d3d3b393d73
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Tue May 29 13:05:02 2012 -0700
+
+    configure.ac: Version bump to 1.12.2
+    
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
 commit 4a2b8eebd1e93a8a0d003e9f5a594430eff08dad
 Author: Jeremy Huddleston <jeremyhu@apple.com>
 Date:   Sat May 19 22:11:19 2012 -0700
diff --git a/Xi/extinit.c b/Xi/extinit.c
index 4483076..2637f08 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -365,7 +365,7 @@ RESTYPE RT_INPUTCLIENT;
 
 extern XExtensionVersion XIVersion;
 
-Mask PropagateMask[MAXDEVICES];
+Mask PropagateMask[EMASKSIZE];
 
 /*****************************************************************
  *
diff --git a/Xi/stubs.c b/Xi/stubs.c
index 8baa5a0..39bee7c 100644
--- a/Xi/stubs.c
+++ b/Xi/stubs.c
@@ -141,4 +141,5 @@ NewInputDeviceRequest(InputOption *options, InputAttributes * attrs,
 void
 DeleteInputDeviceRequest(DeviceIntPtr dev)
 {
+    RemoveDevice(dev, TRUE);
 }
diff --git a/Xi/xiquerydevice.c b/Xi/xiquerydevice.c
index 749bc24..15c8b2a 100644
--- a/Xi/xiquerydevice.c
+++ b/Xi/xiquerydevice.c
@@ -430,7 +430,7 @@ ListTouchInfo(DeviceIntPtr dev, xXITouchInfo * touch)
 {
     touch->type = XITouchClass;
     touch->length = sizeof(xXITouchInfo) >> 2;
-    touch->sourceid = touch->sourceid;
+    touch->sourceid = dev->touch->sourceid;
     touch->mode = dev->touch->mode;
     touch->num_touches = dev->touch->num_touches;
 
diff --git a/configure.ac b/configure.ac
index 5e38d50..c8dee90 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.12.1.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2012-05-19"
+AC_INIT([xorg-server], 1.12.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2012-07-09"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
diff --git a/debian/changelog b/debian/changelog
index e538edd..501d650 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.12.3-1) unstable; urgency=low
+
+  * New upstream release.
+  * Install /var/lib/xkb/README.compiled in xserver-common.
+
+ -- Julien Cristau <jcristau@debian.org>  Wed, 18 Jul 2012 08:36:57 +0200
+
 xorg-server (2:1.12.1.902-1) unstable; urgency=medium
 
   [ Julien Cristau ]
diff --git a/debian/xserver-common.install b/debian/xserver-common.install
index 232cc98..28c12bb 100644
--- a/debian/xserver-common.install
+++ b/debian/xserver-common.install
@@ -1,2 +1,3 @@
 main/usr/lib/xorg/protocol.txt	usr/lib/xorg
 main/usr/share/man/man1/Xserver.1	usr/share/man/man1
+main/var/lib/xkb/README.compiled var/lib/xkb
diff --git a/dix/getevents.c b/dix/getevents.c
index 9dc9617..b78d5ce 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -35,6 +35,7 @@
 #include <X11/keysym.h>
 #include <X11/Xproto.h>
 #include <math.h>
+#include <limits.h>
 
 #include "misc.h"
 #include "resource.h"
@@ -750,6 +751,29 @@ clipAbsolute(DeviceIntPtr dev, ValuatorMask *mask)
     }
 }
 
+static void
+add_to_scroll_valuator(DeviceIntPtr dev, ValuatorMask *mask, int valuator, double value)
+{
+    double v;
+
+    if (!valuator_mask_fetch_double(mask, valuator, &v))
+        return;
+
+    /* protect against scrolling overflow. INT_MAX for double, because
+     * we'll eventually write this as 32.32 fixed point */
+    if ((value > 0 && v > INT_MAX - value) || (value < 0 && v < INT_MIN - value)) {
+        v = 0;
+
+        /* reset last.scroll to avoid a button storm */
+        valuator_mask_set_double(dev->last.scroll, valuator, 0);
+    }
+    else
+        v += value;
+
+    valuator_mask_set_double(mask, valuator, v);
+}
+
+
 /**
  * Move the device's pointer by the values given in @valuators.
  *
@@ -768,13 +792,17 @@ moveRelative(DeviceIntPtr dev, ValuatorMask *mask)
 
         if (!valuator_mask_isset(mask, i))
             continue;
-        val += valuator_mask_get_double(mask, i);
+
+        add_to_scroll_valuator(dev, mask, i, val);
+
         /* x & y need to go over the limits to cross screens if the SD
          * isn't currently attached; otherwise, clip to screen bounds. */
         if (valuator_get_mode(dev, i) == Absolute &&
-            ((i != 0 && i != 1) || clip_xy))
+            ((i != 0 && i != 1) || clip_xy)) {
+            val = valuator_mask_get_double(mask, i);
             clipAxis(dev, i, &val);
-        valuator_mask_set_double(mask, i, val);
+            valuator_mask_set_double(mask, i, val);
+        }
     }
 }
 
@@ -1151,16 +1179,33 @@ static void
 transformAbsolute(DeviceIntPtr dev, ValuatorMask *mask)
 {
     double x, y, ox, oy;
+    int has_x, has_y;
+
+    has_x = valuator_mask_fetch_double(mask, 0, &ox);
+    has_y = valuator_mask_fetch_double(mask, 1, &oy);
+
+    if (!has_x && !has_y)
+        return;
+
+    if (!has_x || !has_y) {
+        struct pixman_f_transform invert;
+
+        /* undo transformation from last event */
+        ox = dev->last.valuators[0];
+        oy = dev->last.valuators[1];
+
+        pixman_f_transform_invert(&invert, &dev->transform);
+        transform(&invert, &ox, &oy);
+
+        x = ox;
+        y = oy;
+    }
 
     if (valuator_mask_isset(mask, 0))
         ox = x = valuator_mask_get_double(mask, 0);
-    else
-        ox = x = dev->last.valuators[0];
 
     if (valuator_mask_isset(mask, 1))
         oy = y = valuator_mask_get_double(mask, 1);
-    else
-        oy = y = dev->last.valuators[1];
 
     transform(&dev->transform, &x, &y);
 
@@ -1474,6 +1519,7 @@ emulate_scroll_button_events(InternalEvent *events,
     return num_events;
 }
 
+
 /**
  * Generate a complete series of InternalEvents (filled into the EventList)
  * representing pointer motion, or button presses.  If the device is a slave
@@ -1519,7 +1565,7 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
      * necessary. This only needs to cater for the XIScrollFlagPreferred
      * axis (if more than one scrolling axis is present) */
     if (type == ButtonPress) {
-        double val, adj;
+        double adj;
         int axis;
         int h_scroll_axis = -1;
         int v_scroll_axis = -1;
@@ -1555,8 +1601,7 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
 
         if (adj != 0.0 && axis != -1) {
             adj *= pDev->valuator->axes[axis].scroll.increment;
-            val = valuator_mask_get_double(&mask, axis) + adj;
-            valuator_mask_set_double(&mask, axis, val);
+            add_to_scroll_valuator(pDev, &mask, axis, adj);
             type = MotionNotify;
             buttons = 0;
             flags |= POINTER_EMULATED;
@@ -1574,7 +1619,7 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
     /* Now turn the smooth-scrolling axes back into emulated button presses
      * for legacy clients, based on the integer delta between before and now */
     for (i = 0; i < valuator_mask_size(&mask); i++) {
-        if (i >= pDev->valuator->numAxes)
+        if ( !pDev->valuator || (i >= pDev->valuator->numAxes))
             break;
 
         if (!valuator_mask_isset(&mask, i))
diff --git a/dix/touch.c b/dix/touch.c
index 401cb98..04733ab 100644
--- a/dix/touch.c
+++ b/dix/touch.c
@@ -460,14 +460,17 @@ TouchEventHistoryPush(TouchPointInfoPtr ti, const DeviceEvent *ev)
 void
 TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID resource)
 {
-    InternalEvent *tel = InitEventList(GetMaximumEventsNum());
-    ValuatorMask *mask = valuator_mask_new(0);
+    InternalEvent *tel;
+    ValuatorMask *mask;
     int i, nev;
     int flags;
 
     if (!ti->history)
         return;
 
+    tel = InitEventList(GetMaximumEventsNum());
+    mask = valuator_mask_new(0);
+
     valuator_mask_set_double(mask, 0, ti->history[0].valuators.data[0]);
     valuator_mask_set_double(mask, 1, ti->history[0].valuators.data[1]);
 
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index ec679df..7491f72 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -2324,6 +2324,7 @@ checkInput(serverLayoutPtr layout, Bool implicit_layout)
 
                 current = dev;
                 free(*dev);
+                *dev = NULL;
 
                 do {
                     *current = *(current + 1);
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 0974893..ba80aca 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -962,6 +962,7 @@ OsVendorInit(void)
     }
 #endif
 #endif
+    xf86UnblockSIGIO(0);
 
     beenHere = TRUE;
 }
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 77b8000..bee407b 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -1059,26 +1059,24 @@ xf86PostMotionEventP(DeviceIntPtr device,
     xf86PostMotionEventM(device, is_absolute, &mask);
 }
 
-void
-xf86PostMotionEventM(DeviceIntPtr device,
-                     int is_absolute, const ValuatorMask *mask)
+static int
+xf86CheckMotionEvent4DGA(DeviceIntPtr device, int is_absolute,
+                         const ValuatorMask *mask)
 {
-    int flags = 0;
-
-    if (valuator_mask_num_valuators(mask) > 0) {
-        if (is_absolute)
-            flags = POINTER_ABSOLUTE;
-        else
-            flags = POINTER_RELATIVE | POINTER_ACCELERATE;
-    }
+    int stolen = 0;
 
 #if XFreeXDGA
+    ScreenPtr scr = NULL;
+    int idx, i;
+
     /* The evdev driver may not always send all axes across. */
-    if (valuator_mask_isset(mask, 0) || valuator_mask_isset(mask, 1))
-        if (miPointerGetScreen(device)) {
-            int index = miPointerGetScreen(device)->myNum;
+    if (valuator_mask_isset(mask, 0) || valuator_mask_isset(mask, 1)) {
+        scr = miPointerGetScreen(device);
+        if (scr) {
             int dx = 0, dy = 0;
 
+            idx = scr->myNum;
+
             if (valuator_mask_isset(mask, 0)) {
                 dx = valuator_mask_get(mask, 0);
                 if (is_absolute)
@@ -1091,11 +1089,75 @@ xf86PostMotionEventM(DeviceIntPtr device,
                     dy -= device->last.valuators[1];
             }
 
-            if (DGAStealMotionEvent(device, index, dx, dy))
-                return;
+            if (DGAStealMotionEvent(device, idx, dx, dy))
+                stolen = 1;
+        }
+    }
+
+    for (i = 2; i < valuator_mask_size(mask); i++) {
+        AxisInfoPtr ax;
+        double incr;
+        int val, button;
+
+        if (i >= device->valuator->numAxes)
+            break;
+
+        if (!valuator_mask_isset(mask, i))
+            continue;
+
+        ax = &device->valuator->axes[i];
+
+        if (ax->scroll.type == SCROLL_TYPE_NONE)
+            continue;
+
+        if (!scr) {
+            scr = miPointerGetScreen(device);
+            if (!scr)
+                break;
+            idx = scr->myNum;
+        }
+
+        incr = ax->scroll.increment;
+        val = valuator_mask_get(mask, i);
+
+        if (ax->scroll.type == SCROLL_TYPE_VERTICAL) {
+            if (incr * val < 0)
+                button = 4; /* up */
+            else
+                button = 5; /* down */
+        } else { /* SCROLL_TYPE_HORIZONTAL */
+            if (incr * val < 0)
+                button = 6; /* left */
+            else
+                button = 7; /* right */
         }
+
+        if (DGAStealButtonEvent(device, idx, button, 1) &&
+                DGAStealButtonEvent(device, idx, button, 0))
+            stolen = 1;
+    }
+
 #endif
 
+    return stolen;
+}
+
+void
+xf86PostMotionEventM(DeviceIntPtr device,
+                     int is_absolute, const ValuatorMask *mask)
+{
+    int flags = 0;
+
+    if (xf86CheckMotionEvent4DGA(device, is_absolute, mask))
+        return;
+
+    if (valuator_mask_num_valuators(mask) > 0) {
+        if (is_absolute)
+            flags = POINTER_ABSOLUTE;
+        else
+            flags = POINTER_RELATIVE | POINTER_ACCELERATE;
+    }
+
     QueuePointerEvents(device, MotionNotify, 0, flags, mask);
 }
 
diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
index c993b60..27d24f8 100644
--- a/hw/xfree86/common/xf86sbusBus.c
+++ b/hw/xfree86/common/xf86sbusBus.c
@@ -619,8 +619,9 @@ xf86SbusUseBuiltinMode(ScrnInfoPtr pScrn, sbusDevicePtr psdp)
     pScrn->virtualY = psdp->height;
 }
 
-static sbusPaletteKeyIndex;
-static DevPrivateKey sbusPaletteKey = &sbusPaletteKeyIndex;
+static DevPrivateKeyRec sbusPaletteKeyRec;
+#define sbusPaletteKey (&sbusPaletteKeyRec)
+
 typedef struct _sbusCmap {
     sbusDevicePtr psdp;
     CloseScreenProcPtr CloseScreen;
@@ -692,6 +693,9 @@ xf86SbusHandleColormaps(ScreenPtr pScreen, sbusDevicePtr psdp)
     struct fbcmap fbcmap;
     unsigned char data[2];
 
+    if (!dixRegisterPrivateKey(sbusPaletteKey, PRIVATE_SCREEN, 0))
+        FatalError("Cannot register sbus private key");
+
     cmap = xnfcalloc(1, sizeof(sbusCmapRec));
     dixSetPrivate(&pScreen->devPrivates, sbusPaletteKey, cmap);
     cmap->psdp = psdp;
diff --git a/hw/xfree86/doc/ddxDesign.xml b/hw/xfree86/doc/ddxDesign.xml
index ca5efc9..6a08732 100644
--- a/hw/xfree86/doc/ddxDesign.xml
+++ b/hw/xfree86/doc/ddxDesign.xml
@@ -665,11 +665,6 @@ Here is what <function>InitOutput()</function> does:
       </para>
 
       <para>
-    The core server contains a list of mandatory modules.  These are loaded
-    first.  Currently the only module on this list is the bitmap font module.
-      </para>
-
-      <para>
     The next set of modules loaded are those specified explicitly in the
     &k.module; section of the config file.
       </para>
@@ -5994,26 +5989,6 @@ typedef struct {
 
 	  </blockquote></para></blockquote>
 
-      <blockquote><para>
-	  <programlisting>
-    void LoadFont(FontModule *font);
-	  </programlisting>
-	  <blockquote><para>
-    This registers the entry points for the font rasteriser module
-    identified by <parameter>font</parameter>.  The <structname>FontModule</structname>
-    struct is defined as:
-
-	      <programlisting>
- typedef struct {
-    InitFont    initFunc;
-    char *      name;
-    pointer     module;
-} FontModule;
-	      </programlisting>
-	    </para>
-
-	  </blockquote></para></blockquote>
-
     </sect2>
 
   </sect1>
diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c
index 8aa82d1..258ada5 100644
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -723,7 +723,13 @@ static const struct {
     1920, 1200, 75, 0}, {
     1920, 1200, 85, 0}, {
     1920, 1440, 60, 0}, {
-1920, 1440, 75, 0},};
+    1920, 1440, 75, 0},
+        /* fill up last byte */
+    {
+    0,0,0,0}, {
+    0,0,0,0}, {
+    0,0,0,0}, {
+    0,0,0,0}, };
 
 static DisplayModePtr
 DDCModesFromEstIII(unsigned char *est)
@@ -732,10 +738,11 @@ DDCModesFromEstIII(unsigned char *est)
     int i, j, m;
 
     for (i = 0; i < 6; i++) {
-        for (j = 7; j > 0; j--) {
+        for (j = 7; j >= 0; j--) {
             if (est[i] & (1 << j)) {
                 m = (i * 8) + (7 - j);
-                modes = xf86ModesAdd(modes,
+                if (EstIIIModes[m].w)
+                    modes = xf86ModesAdd(modes,
                                      FindDMTMode(EstIIIModes[m].w,
                                                  EstIIIModes[m].h,
                                                  EstIIIModes[m].r,
diff --git a/hw/xfree86/utils/man/cvt.man b/hw/xfree86/utils/man/cvt.man
index f5075f5..2125fd1 100644
--- a/hw/xfree86/utils/man/cvt.man
+++ b/hw/xfree86/utils/man/cvt.man
@@ -19,8 +19,8 @@ standard is printed. This modeline can be included in __xservername__
 .SH OPTIONS
 .TP 8
 .BR refresh
-Provide a vertical refresh rate in kHz.  The CVT standard prefers either 50.0,
-60.0, 75.0 or 85.0kHz.  The default is 60.0kHz.
+Provide a vertical refresh rate in Hz.  The CVT standard prefers either 50.0,
+60.0, 75.0 or 85.0Hz.  The default is 60.0Hz.
 .TP 8
 .BR \-v | \-\-verbose
 Warn verbosely when a given mode does not completely correspond with CVT
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index b686b00..339a93f 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -1281,6 +1281,11 @@ untrusted_str(NSEvent *e)
 }
 #endif
 
+extern void
+darwinEvents_lock(void);
+extern void
+darwinEvents_unlock(void);
+
 - (void) sendX11NSEvent:(NSEvent *)e
 {
     NSPoint location = NSZeroPoint;
@@ -1293,18 +1298,15 @@ untrusted_str(NSEvent *e)
     int modifierFlags;
     BOOL isMouseOrTabletEvent, isTabletEvent;
 
-#ifdef HAVE_LIBDISPATCH
-    static dispatch_once_t once_pred;
-    dispatch_once(&once_pred, ^{
-                      tilt = NSZeroPoint;
-                      darwinTabletCurrent = darwinTabletStylus;
-                  });
-#else
     if (!darwinTabletCurrent) {
+        /* Ensure that the event system is initialized */
+        darwinEvents_lock();
+        darwinEvents_unlock();
+        assert(darwinTabletStylus);
+
         tilt = NSZeroPoint;
         darwinTabletCurrent = darwinTabletStylus;
     }
-#endif
 
     isMouseOrTabletEvent = [e type] == NSLeftMouseDown ||
                            [e type] == NSOtherMouseDown ||
@@ -1593,6 +1595,11 @@ handle_mouse:
 
     case NSScrollWheel:
     {
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 1050
+        float deltaX = [e deltaX];
+        float deltaY = [e deltaY];
+        BOOL isContinuous = NO;
+#else
         CGFloat deltaX = [e deltaX];
         CGFloat deltaY = [e deltaY];
         CGEventRef cge = [e CGEvent];
@@ -1614,6 +1621,7 @@ handle_mouse:
             deltaY *= lineHeight / 5.0;
         }
 #endif
+#endif
         
 #if !defined(XPLUGIN_VERSION) || XPLUGIN_VERSION == 0
         /* If we're in the background, we need to send a MotionNotify event
diff --git a/hw/xquartz/console_redirect.c b/hw/xquartz/console_redirect.c
index 1e0e56b..91d693b 100644
--- a/hw/xquartz/console_redirect.c
+++ b/hw/xquartz/console_redirect.c
@@ -310,6 +310,20 @@ xq_asl_init(void)
     atexit(redirect_atexit);
 }
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+#define fls(v) xq_fls(v)
+
+static inline int fls(int value) {
+    unsigned int b, v;
+
+    v = *((unsigned int *)&value);
+
+    for(b=0 ; v ; v >>= 1 , b++);
+
+    return b;
+}
+#endif
+
 int
 xq_asl_log_fd(aslclient asl, aslmsg msg, int level, int fd)
 {
diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c
index ebaa567..62a2852 100644
--- a/hw/xquartz/quartz.c
+++ b/hw/xquartz/quartz.c
@@ -69,6 +69,12 @@
 #include <rootlessCommon.h>
 #include <Xplugin.h>
 
+/* Work around a bug on Leopard's headers */
+#if defined (__LP64__) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 && MAC_OS_X_VERSION_MAX_ALLOWED < 1060
+extern OSErr UpdateSystemActivity(UInt8 activity);
+#define OverallAct 0
+#endif
+
 DevPrivateKeyRec quartzScreenKeyRec;
 int aquaMenuBarHeight = 0;
 QuartzModeProcsPtr quartzProcs = NULL;
diff --git a/randr/randr.c b/randr/randr.c
index 9f3df5f..5c1f70c 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -416,7 +416,7 @@ RRTellChanged(ScreenPtr pScreen)
     int i;
 
     if (pScrPriv->changed) {
-        UpdateCurrentTime();
+        UpdateCurrentTimeIf();
         if (pScrPriv->configChanged) {
             pScrPriv->lastConfigTime = currentTime;
             pScrPriv->configChanged = FALSE;
diff --git a/xkb/XKBMAlloc.c b/xkb/XKBMAlloc.c
index 645e905..3ffd5da 100644
--- a/xkb/XKBMAlloc.c
+++ b/xkb/XKBMAlloc.c
@@ -375,8 +375,10 @@ XkbResizeKeyType(XkbDescPtr xkb,
         nResize = 0;
         for (nTotal = 1, i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
             width = XkbKeyGroupsWidth(xkb, i);
-            if (width < type->num_levels)
+            if (width < type->num_levels || width >= new_num_lvls) {
+                nTotal += XkbKeyNumSyms(xkb,i);
                 continue;
+            }
             for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
                  (g >= 0) && (!match); g--) {
                 if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
@@ -384,7 +386,7 @@ XkbResizeKeyType(XkbDescPtr xkb,
                     match = 1;
                 }
             }
-            if ((!match) || (width >= new_num_lvls))
+            if (!match)
                 nTotal += XkbKeyNumSyms(xkb, i);
             else {
                 nTotal += XkbKeyNumGroups(xkb, i) * new_num_lvls;
diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
index 111bf9f..765772b 100644
--- a/xkb/xkbAccessX.c
+++ b/xkb/xkbAccessX.c
@@ -295,10 +295,15 @@ AccessXKRGExpire(OsTimerPtr timer, CARD32 now, pointer arg)
     cn.eventType = 0;
     cn.requestMajor = 0;
     cn.requestMinor = 0;
-    if (xkbi->desc->ctrls->enabled_ctrls & XkbSlowKeysMask)
+    if (xkbi->desc->ctrls->enabled_ctrls & XkbSlowKeysMask) {
         AccessXKRGTurnOff((DeviceIntPtr) arg, &cn);
-    else
+        LogMessage(X_INFO, "XKB SlowKeys are disabled.\n");
+    }
+    else {
         AccessXKRGTurnOn((DeviceIntPtr) arg, XkbSlowKeysMask, &cn);
+        LogMessage(X_INFO, "XKB SlowKeys are now enabled. Hold shift to disable.\n");
+    }
+
     return 0;
 }
 

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
On Sat, Jul 28, 2012 at 21:23:42 +0100, Adam D. Barratt wrote:

> On Wed, 2012-07-18 at 11:06 +0200, Julien Cristau wrote:
> 
> > Please unblock package xorg-server.  1.12.3 is a bugfix release made
> > from upstream's stable branch.  The debdiff contains a lot of irrelevant
> > changes to autotools/yacc/lex-generated files, which we delete and
> > regenerate on build anyway, so you'll find something hopefully more
> > usable below.
> 
> Unblocked, but it'll need a udeb ack before it'll migrate.
> 
Talked to kibi and added the unblock-udeb last night.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: