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

xorg-server: Changes to 'debian-unstable'



 ChangeLog                                                                    |  312 ++++++++++
 Xext/xselinux.c                                                              |  131 +---
 Xext/xselinux.h                                                              |    8 
 Xi/exevents.c                                                                |   13 
 Xi/setmode.c                                                                 |   10 
 configure.ac                                                                 |   18 
 debian/changelog                                                             |   14 
 debian/patches/12-Add-libudev-input-hotplug-backend.diff                     |    6 
 debian/patches/17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch |   83 --
 debian/patches/series                                                        |    1 
 dix/devices.c                                                                |    8 
 dix/events.c                                                                 |   83 --
 dix/getevents.c                                                              |    7 
 hw/xfree86/common/xf86VGAarbiter.c                                           |   65 --
 hw/xfree86/common/xf86cmap.c                                                 |    9 
 hw/xfree86/modes/xf86Crtc.c                                                  |   14 
 hw/xfree86/modes/xf86Crtc.h                                                  |   26 
 hw/xfree86/modes/xf86RandR12.c                                               |   14 
 hw/xfree86/os-support/solaris/sun_bell.c                                     |    5 
 hw/xquartz/GL/indirect.c                                                     |    2 
 hw/xquartz/GL/visualConfigs.c                                                |    3 
 hw/xquartz/X11Application.m                                                  |   18 
 hw/xquartz/mach-startup/bundle-main.c                                        |   30 
 hw/xquartz/mach-startup/stub.c                                               |    7 
 hw/xquartz/pbproxy/x-selection.h                                             |    9 
 hw/xquartz/quartzAudio.c                                                     |   35 -
 hw/xquartz/quartzKeyboard.c                                                  |    2 
 include/dix-config.h.in                                                      |    2 
 include/dix.h                                                                |    6 
 include/eventconvert.h                                                       |    6 
 record/record.c                                                              |  123 ++-
 31 files changed, 585 insertions(+), 485 deletions(-)

New commits:
commit c44d32de85fd585bb144aedc5871bf0a8eb0496f
Author: Brice Goglin <bgoglin@debian.org>
Date:   Fri Mar 5 07:46:33 2010 +0100

    Refresh patches.
    
    Remove 17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch,
    another fix was applied upstream.

diff --git a/debian/changelog b/debian/changelog
index 898da1a..a18f95e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,18 +8,13 @@ xorg-server (2:1.7.5.901-1) UNRELEASED; urgency=low
     wacom devices are initialized by the udev backend (LP: #522318,
     closes: #568236).
 
-  [ Drew Parsons ]
-  * Add patch 17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch, 
-    taken from upstream bug #25400 https://bugs.freedesktop.org/show_bug.cgi?id=25400
-    Prevents mouse cursor getting trapped in lesstif menus (can be
-    triggered for instance by xmgrace)   
-
   [ Brice Goglin ]
   * New upstream release.
     + Allow for missing or disabled compat_output, cloes: #572268, #554450.
     + Reenable RECORD extension, closes: #570680.
     + dix: try to ring the bell even if the current device doesn't have one,
       closes: #564200.
+  * Refresh patches.
 
  -- Drew Parsons <dparsons@debian.org>  Wed, 03 Mar 2010 23:33:54 +1100
 
diff --git a/debian/patches/12-Add-libudev-input-hotplug-backend.diff b/debian/patches/12-Add-libudev-input-hotplug-backend.diff
index ee27620..cd3277e 100644
--- a/debian/patches/12-Add-libudev-input-hotplug-backend.diff
+++ b/debian/patches/12-Add-libudev-input-hotplug-backend.diff
@@ -577,10 +577,10 @@ Index: xorg-server/configure.ac
  AC_ARG_ENABLE(config-dbus,    AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no])
  AC_ARG_ENABLE(config-hal,     AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
  AC_ARG_ENABLE(xfree86-utils,     AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
-@@ -759,6 +760,26 @@
- LIBXTST="xtst >= 1.0.99.2"
+@@ -760,6 +761,26 @@
  LIBPCIACCESS="pciaccess >= 0.8.0"
  LIBGLIB="glib-2.0 >= 2.16"
+ LIBSELINUX="libselinux >= 2.0.86"
 +LIBUDEV="libudev >= 143"
 +
 +if test "x$CONFIG_UDEV" = xyes &&
@@ -604,7 +604,7 @@ Index: xorg-server/configure.ac
  
  dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
  dnl CONFIG_DBUS_API is true if we want to enable the D-Bus config
-@@ -792,13 +813,11 @@
+@@ -793,13 +814,11 @@
  	fi
  
  	AC_DEFINE(CONFIG_HAL, 1, [Use the HAL hotplug API])
diff --git a/debian/patches/17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch b/debian/patches/17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
deleted file mode 100644
index 82f4f50..0000000
--- a/debian/patches/17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 873ef3430e92b0756c0dbe5033f6aec38a20d6ad Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Wed, 16 Dec 2009 13:43:22 +1000
-Subject: [PATCH] dix: if owner-events is true for passive grabs, add the window mask (#25400)
-
-A client requesting a GrabModeSync button grab, owner-events true, with only
-the ButtonRelease mask set would never receive the press event even if the
-grab window had the ButtonPress mask set.
-
-The protocol requires that if owner-events is true, then the delivery mask
-is the combination of the grab mask + the window event mask.
-
-X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400>
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
----
- dix/events.c |   36 ++++++++++++++++++++++++++++++++++++
- 1 files changed, 36 insertions(+), 0 deletions(-)
-
-diff --git a/dix/events.c b/dix/events.c
-index 7e0867c..12b12a8 100644
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -3590,6 +3590,8 @@ CheckPassiveGrabsOnWindow(
-                 xE = &core;
-                 count = 1;
-                 mask = grab->eventMask;
-+                if (grab->ownerEvents)
-+                    mask |= pWin->eventMask;
-             } else if (match & XI2_MATCH)
-             {
-                 rc = EventToXI2((InternalEvent*)event, &xE);
-@@ -3611,6 +3613,24 @@ CheckPassiveGrabsOnWindow(
-                     mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
-                 else if (event->type == XI_Enter || event->type == XI_FocusIn)
-                     mask = grab->xi2mask[device->id][event->type/8];
-+
-+                if (grab->ownerEvents && wOtherInputMasks(grab->window))
-+                {
-+                    InputClientsPtr icp =
-+                        wOtherInputMasks(grab->window)->inputClients;
-+
-+                    while(icp)
-+                    {
-+                        if (rClient(icp) == rClient(grab))
-+                        {
-+                            int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type;
-+                            mask |= icp->xi2mask[device->id][evtype/8];
-+                            break;
-+                        }
-+
-+                        icp = icp->next;
-+                    }
-+                }
-             } else
-             {
-                 rc = EventToXI((InternalEvent*)event, &xE, &count);
-@@ -3622,6 +3642,22 @@ CheckPassiveGrabsOnWindow(
-                     continue;
-                 }
-                 mask = grab->eventMask;
-+                if (grab->ownerEvents && wOtherInputMasks(grab->window))
-+                {
-+                    InputClientsPtr icp =
-+                        wOtherInputMasks(grab->window)->inputClients;
-+
-+                    while(icp)
-+                    {
-+                        if (rClient(icp) == rClient(grab))
-+                        {
-+                            mask |= icp->mask[device->id];
-+                            break;
-+                        }
-+
-+                        icp = icp->next;
-+                    }
-+                }
-             }
- 
- 	    (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
--- 
-1.6.5.2
-
diff --git a/debian/patches/series b/debian/patches/series
index 3110cc7..f38fd97 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -13,4 +13,3 @@
 14-config-add-example-udev-rules.diff
 15-config-udev-look-for-xkb-rules-model-layout-variant-.diff
 16-config-dont-filter-input-subsys.diff
-17-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch

commit 6df27557f8fd215a431909665a41a88f1d7a3f96
Author: Brice Goglin <bgoglin@debian.org>
Date:   Fri Mar 5 07:40:19 2010 +0100

    New upstream release candidate

diff --git a/ChangeLog b/ChangeLog
index 4cbe6fd..7edf948 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,315 @@
+commit 1242e494c8abc25d51fa0f8120ba353ffcf7be08
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Mar 5 09:27:13 2010 +1000
+
+    xserver 1.7.5.901
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit d023b78c739672894d6b8196d91129845614e369
+Author: Keith Packard <keithp@keithp.com>
+Date:   Thu Feb 25 11:37:05 2010 -0800
+
+    Allow for missing or disabled compat_output
+    
+    When the compat output is missing (I don't think this is actually
+    possible), or is disabled (and hence has no crtc), we would like to
+    avoid dereferencing NULL pointers. This patch creates inline functions
+    to extract the current compat output, crtc or associated RandR crtc
+    structure, carefully checking for NULL pointers everywhere.
+    
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit de86a3a3448f0a55c1cd99aee9ea80070a589877)
+
+commit 7def5cdf7dce0ace34e0befb3a9730e1bd607b61
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Mar 4 15:42:47 2010 +1000
+
+    configure: move SELINUX_LIBS to XSERVER_SYS_LIBS
+    
+    All ddxs require linking against selinux if enabled.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
+    Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 1c2abec479cfbac9aeadc121af0825d368317658)
+    
+    Conflicts:
+    
+    	configure.ac
+
+commit 402668251135b63b7329722397fe7885e065f27c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Mar 4 15:41:53 2010 +1000
+
+    configure: move libselinux requirement up to the common section.
+    
+    Let's have all version-specific requirements in one block.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
+    Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit cab99b947c66a42dbf8a906bdb02e23aa7cab519)
+    
+    Conflicts:
+    
+    	configure.ac
+
+commit 351d11fd466fae731df860a6ff4cf50ad565f43f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Feb 25 12:49:21 2010 +1000
+
+    dix: Use DeliverGrabbedEvent for implicit passive grabs (#25400)
+    
+    A client requesting a GrabModeSync button grab, owner-events true, with only
+    the ButtonRelease mask set would never receive the press event even if the
+    grab window had the ButtonPress mask set.
+    
+    The protocol requires that if owner-events is true, then the delivery mask
+    is the combination of the grab mask + the window event mask.
+    
+    DeliverGrabbedEvents does this already for us, checking first the delivery
+    based on owner_events and then based on the grab mask. AFAICT, the device
+    cannot enter the states FREEZE_BOTH_NEXT_EVENT or FREEZE_NEXT_EVENT that
+    would be handled by DGE in any possible path here.
+    
+    Bonus point - CheckPassiveGrabsOnWindows suddenly becomes a lot lesss
+    complicated.
+    
+    X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit cf72b5437d2d620521279077a29c5df6d0fbb576)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8f743f17ed0076d10d6c60fe8bdf3f54d3432ae5
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Mon Feb 15 17:42:11 2010 -0800
+
+    Solaris xf86OSRingBell() off-by-one error in filling iov[] array
+    
+    When generating sound buffers for /dev/audio bells, insert waveform
+    for beep *or* silence, but not both, so we don't write one entry past
+    the end of the iov buffer when the final bit of soundwave ends up in
+    the final entry allocated in the iov array.
+    
+    Fixes OpenSolaris bug 6894890:
+     http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6894890
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Acked-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit d35e08b6db911c404d7baf680dab30e8a6831bc4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Feb 18 16:00:15 2010 +1000
+
+    dix: remove now-erroneous comment about frozen slave devices.
+    
+    A direct grab on a slave device through XI2 detaches it, regardless of
+    whether the grab is sync or async. So this comment doesn't apply to XI2
+    anyway.
+    
+    For XI1, aside from your life being miserable already, it doesn't matter as
+    XI1 does not have a concept of attachment. You can freeze a device and if
+    you don't freeze _all_ other devices at the same time, the master device can
+    still happily send events to the client.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Acked-by: Adam Jackson <ajax@redhat.com>
+    (cherry picked from commit c0d941913199ed251fceab62fcf65437f6f9bd31)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 11c27f261efc5b7a8594ad2de7bed4339f2a62ce
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Feb 15 16:32:16 2010 +1000
+
+    dix: try to ring the bell even if the current device doesn't have one. (#24503)
+    
+    Evdev devices do not have the bell proc set, but XTEST devices do. By
+    exiting early, the bell only rings if the last keyboard used was the XTEST
+    keyboard and hence the bell proc is still set on the master but not if an
+    evdev keyboard was used last.
+    
+    The better approach here is to try to ring the bell on all devices attached
+    to this master device in case one or more actually do produce an audible
+    sound. That's also XKB's behaviour if XkbUseCoreKbd is specified as device
+    identifier.
+    
+    X.Org Bug 24503 <http://bugs.freedesktop.org/show_bug.cgi?id=24503>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    (cherry picked from commit 758f6971750ed507e64eee817d720a77181439f2)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 1f96c0371845d5904b7d4c8fe71ee545b649faca
+Author: Eamon Walsh <ewalsh@tycho.nsa.gov>
+Date:   Wed Feb 3 15:40:47 2010 -0500
+
+    xselinux: Bump extension minor version.
+    
+    Changes introduced in this version:
+    	- 3 window-related requests now handle pixmaps also.
+    
+    Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit db4f676f25c6d8e58263d5151942be730592d444)
+
+commit dd9573d4086ca24c59a99a0a2019bf20c61b0f64
+Author: Eamon Walsh <ewalsh@tycho.nsa.gov>
+Date:   Wed Feb 3 15:38:57 2010 -0500
+
+    xselinux: Rename window-related requests that now support pixmaps.
+    
+    Renamed requests:
+    	SetWindowCreateContext -> SetDrawableCreateContext
+    	GetWindowCreateContext -> GetDrawableCreateContext
+    	GetWindowContext -> GetDrawableContext
+    
+    Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit 7cec236a03917841131941ce97bd1dfd4a027327
+Author: Eamon Walsh <ewalsh@tycho.nsa.gov>
+Date:   Wed Feb 3 15:08:40 2010 -0500
+
+    xselinux: Allow GetWindowContext to be used for pixmaps as well.
+    
+    Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit 1b6f498b84de7f79de735b004b8e16b9a31d228c
+Author: Eamon Walsh <ewalsh@tycho.nsa.gov>
+Date:   Wed Jan 6 12:52:51 2010 -0500
+
+    xselinux: Remove reference counting calls for SID objects.
+    
+    Starting with libselinux 2.0.86, SID objects are no longer
+    reference counted and the sidput() and sidget() calls are no-ops.
+    
+    Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit c030ec32b6418e6258b380c0e29971be882a84d4
+Author: Eamon Walsh <ewalsh@tycho.nsa.gov>
+Date:   Wed Oct 21 19:28:26 2009 -0400
+
+    libselinux now has a pkgconfig file.  Use it.
+    
+    Also remove HAVE_NETLINK_AVC_ACQUIRE_FD tests, because we now
+    require a version of libselinux that has it.
+    
+    Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit c8dd981c7f67d26850fad8c8a01f5de9850aa454
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Feb 18 15:49:09 2010 +1000
+
+    Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode.
+    
+    The XI protocol spec only allows for two errors on the SetDeviceMode
+    requests: BadMatch or BadMode. BadMode however is a dynamically assigned
+    extension error and the driver doesn't have access to the actual error
+    number. Hence, if a SetDeviceMode driver returns an error other than
+    BadMatch, assume BadMode.
+    
+    The two exceptions are BadAlloc and BadImplementations, pass these on to the
+    client (any request is allowed to return either of those).
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit e40ba5798c367bec584f6437b23d2c5f801fd013)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5ac8298469cd4d5e56ef7fc41af4878b88706b28
+Author: Chris Dekter <cdekter@gmail.com>
+Date:   Thu Feb 11 16:34:09 2010 +1000
+
+    Re-enable RECORD extension.
+    
+    RECORD was disabled during the switch to internal events. This patch
+    modifies the record callback to work with internal events instead of
+    xEvents. The InternalEvents are converted to core/Xi events as needed.
+    
+    Since record is a loadable extension, the EventTo* calls must be externed.
+    
+    Signed-off-by: Chris Dekter <cdekter@gmail.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 122fc0e7a0712df4ec2bd9ca6773f90bcd2095cf)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit d1732a637e479f20a0edd1426c99d1c6f2027049
+Author: Tiago Vignatti <tiago.vignatti@nokia.com>
+Date:   Mon Jan 18 14:31:12 2010 +0200
+
+    xfree86: vgaarb: remove useless debug
+    
+    This is RAC's remnant. Any sane person would use a more wise method of
+    debugging instead.
+    
+    X.Org Bug 26074 <http://bugs.freedesktop.org/show_bug.cgi?id=26074>
+    
+    Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 5e81078cf56aabbf6551d96d312c7840ba9370ae)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit dd0217fc93c1d374d7d51f1b0270e7575fd48320
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Jan 5 13:15:25 2010 +1000
+
+    dix: don't update the slave coordinates from the VCK.
+    
+    A keyboard event from a device with both valuators and keys will be posted
+    through the VCK. In this case, do not update the slave device coordinates
+    from the VCK - they're always 0/0. Leave them as-is, for the next pointer
+    event will continue where it left.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 6f265d55a61f9be323583b8acacae783be72bda9)
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8dda9ba67ab530612cdc27c540a88a1465a82173
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Mon Feb 15 16:46:21 2010 -0800
+
+    XQuartz: Fix a possible buffer overrun in quartzAudio
+    
+    Also dropped deprecated API while there
+    
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+    (cherry picked from commit 4e8bf12b13690afa6d9fee0e339d3819ef16fb3f)
+
+commit 4d8ad88b5747789b0c35bccab1088114470984cd
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date:   Wed Feb 10 17:56:30 2010 -0800
+
+    XQuartz: clang static analysis fixes
+    
+    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+    (cherry picked from commit 4127e8e5be5c366eb752bbb8d7f0ff5b519e641b)
+
 commit f0ec2e0d7d0533b3b3fcccd9d78b76e4c9002d1e
 Author: Peter Hutterer <peter.hutterer@who-t.net>
 Date:   Tue Feb 16 11:34:38 2010 +1000
diff --git a/debian/changelog b/debian/changelog
index de88e74..898da1a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.7.5-2) UNRELEASED; urgency=low
+xorg-server (2:1.7.5.901-1) UNRELEASED; urgency=low
 
   [ Julien Cristau ]
   * config/udev: fix adding unnamed devices.
@@ -14,6 +14,13 @@ xorg-server (2:1.7.5-2) UNRELEASED; urgency=low
     Prevents mouse cursor getting trapped in lesstif menus (can be
     triggered for instance by xmgrace)   
 
+  [ Brice Goglin ]
+  * New upstream release.
+    + Allow for missing or disabled compat_output, cloes: #572268, #554450.
+    + Reenable RECORD extension, closes: #570680.
+    + dix: try to ring the bell even if the current device doesn't have one,
+      closes: #564200.
+
  -- Drew Parsons <dparsons@debian.org>  Wed, 03 Mar 2010 23:33:54 +1100
 
 xorg-server (2:1.7.5-1) unstable; urgency=low

commit 1242e494c8abc25d51fa0f8120ba353ffcf7be08
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 5 09:27:13 2010 +1000

    xserver 1.7.5.901
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index 0726bd2..08e444e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.7.5, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2010-02-16"
+AC_INIT([xorg-server], 1.7.5.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2010-03-05"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE

commit d023b78c739672894d6b8196d91129845614e369
Author: Keith Packard <keithp@keithp.com>
Date:   Thu Feb 25 11:37:05 2010 -0800

    Allow for missing or disabled compat_output
    
    When the compat output is missing (I don't think this is actually
    possible), or is disabled (and hence has no crtc), we would like to
    avoid dereferencing NULL pointers. This patch creates inline functions
    to extract the current compat output, crtc or associated RandR crtc
    structure, carefully checking for NULL pointers everywhere.
    
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    (cherry picked from commit de86a3a3448f0a55c1cd99aee9ea80070a589877)

diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c
index edd5ae9..f60d96e 100644
--- a/hw/xfree86/common/xf86cmap.c
+++ b/hw/xfree86/common/xf86cmap.c
@@ -1001,8 +1001,7 @@ xf86ChangeGammaRamp(
     CMapLinkPtr pLink;
 
     if (xf86_crtc_supports_gamma(pScrn)) {
-	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
-	RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
+	RRCrtcPtr crtc = xf86CompatRRCrtc(pScrn);
 
 	if (crtc) {
 	    if (crtc->gammaSize != size)
@@ -1076,8 +1075,7 @@ xf86GetGammaRampSize(ScreenPtr pScreen)
     CMapScreenPtr pScreenPriv;
 
     if (xf86_crtc_supports_gamma(pScrn)) {
-	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
-	RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
+	RRCrtcPtr crtc = xf86CompatRRCrtc(pScrn);
 
 	if (crtc)
 	    return crtc->gammaSize;
@@ -1106,8 +1104,7 @@ xf86GetGammaRamp(
     int shift, sigbits;
 
     if (xf86_crtc_supports_gamma(pScrn)) {
-	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
-	RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
+	RRCrtcPtr crtc = xf86CompatRRCrtc(pScrn);
 
 	if (crtc) {
 	    if (crtc->gammaSize < size)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 9370640..334fad4 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -2571,8 +2571,8 @@ xf86SetDesiredModes (ScrnInfoPtr scrn)
 	if (!crtc->enabled)
 	    continue;
 
-	if (config->output[config->compat_output]->crtc == crtc)
-	    output = config->output[config->compat_output];
+	if (xf86CompatOutput(scrn) && xf86CompatCrtc(scrn) == crtc)
+	    output = xf86CompatOutput(scrn);
 	else
 	{
 	    for (o = 0; o < config->num_output; o++)
@@ -2692,14 +2692,16 @@ xf86SetSingleMode (ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation)
 {
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(pScrn);
     Bool		ok = TRUE;
-    xf86OutputPtr	compat_output = config->output[config->compat_output];
-    DisplayModePtr	compat_mode;
+    xf86OutputPtr	compat_output;
+    DisplayModePtr	compat_mode = NULL;
     int			c;
 
     /*
      * Let the compat output drive the final mode selection
      */
-    compat_mode = xf86OutputFindClosestMode (compat_output, desired);
+    compat_output = xf86CompatOutput(pScrn);
+    if (compat_output)
+	compat_mode = xf86OutputFindClosestMode (compat_output, desired);
     if (compat_mode)
 	desired = compat_mode;
     
@@ -2894,7 +2896,7 @@ xf86OutputSetEDID (xf86OutputPtr output, xf86MonPtr edid_mon)
     }
 
     /* Set the DDC properties for the 'compat' output */
-    if (output == config->output[config->compat_output])
+    if (output == xf86CompatOutput(scrn))
         xf86SetDDCproperties(scrn, edid_mon);
 
 #ifdef RANDR_12_INTERFACE
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 9baa956..68a968c 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -689,6 +689,32 @@ extern _X_EXPORT int xf86CrtcConfigPrivateIndex;
 
 #define XF86_CRTC_CONFIG_PTR(p)	((xf86CrtcConfigPtr) ((p)->privates[xf86CrtcConfigPrivateIndex].ptr))
 
+static _X_INLINE xf86OutputPtr
+xf86CompatOutput(ScrnInfoPtr pScrn)
+{
+    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+    return config->output[config->compat_output];
+}
+
+static _X_INLINE xf86CrtcPtr
+xf86CompatCrtc(ScrnInfoPtr pScrn)
+{
+    xf86OutputPtr compat_output = xf86CompatOutput(pScrn);
+    if (!compat_output)
+	return NULL;
+    return compat_output->crtc;
+}
+
+static _X_INLINE RRCrtcPtr
+xf86CompatRRCrtc(ScrnInfoPtr pScrn)
+{
+    xf86CrtcPtr	compat_crtc = xf86CompatCrtc(pScrn);
+    if (!compat_crtc)
+	return NULL;
+    return compat_crtc->randr_crtc;
+}
+
+
 /*
  * Initialize xf86CrtcConfig structure
  */
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 1fc63c4..7ba09b6 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -805,9 +805,10 @@ xf86RandR12CreateScreenResources (ScreenPtr pScreen)
 	}
 	else
 	{
-	    xf86OutputPtr   output = config->output[config->compat_output];
+	    xf86OutputPtr   output = xf86CompatOutput(pScrn);
 
-	    if (output->conf_monitor &&
+	    if (output &&
+		output->conf_monitor &&
 		(output->conf_monitor->mon_width  > 0 &&
 		 output->conf_monitor->mon_height > 0))
 	    {
@@ -1719,10 +1720,13 @@ xf86RandR12ChangeGamma(int scrnIndex, Gamma gamma)
 {
     CARD16 *points, *red, *green, *blue;
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
-    RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
-    int size = max(0, crtc->gammaSize);
+    RRCrtcPtr crtc = xf86CompatRRCrtc(pScrn);
+    int size;
 
+    if (!crtc)
+	return Success;
+
+    size = max(0, crtc->gammaSize);
     if (!size)
 	return Success;
 

commit 7def5cdf7dce0ace34e0befb3a9730e1bd607b61
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 15:42:47 2010 +1000

    configure: move SELINUX_LIBS to XSERVER_SYS_LIBS
    
    All ddxs require linking against selinux if enabled.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
    Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    (cherry picked from commit 1c2abec479cfbac9aeadc121af0825d368317658)
    
    Conflicts:
    
    	configure.ac

diff --git a/configure.ac b/configure.ac
index 562111c..0726bd2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1326,7 +1326,7 @@ PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
 #
 XSERVER_CFLAGS="${XSERVERCFLAGS_CFLAGS} ${SHA1_CFLAGS}"
 XSERVER_LIBS="$DIX_LIB $CONFIG_LIB $MI_LIB $OS_LIB"
-XSERVER_SYS_LIBS="${XSERVERLIBS_LIBS} ${SYS_LIBS} ${LIBS} ${SHA1_LIB}"
+XSERVER_SYS_LIBS="${XSERVERLIBS_LIBS} ${SYS_LIBS} ${LIBS} ${SHA1_LIB} ${SELINUX_LIBS}"
 AC_SUBST([XSERVER_LIBS])
 AC_SUBST([XSERVER_SYS_LIBS])
 
@@ -1479,7 +1479,7 @@ if test "x$XORG" = xyes; then
 	AC_CHECK_FUNCS([pci_device_vgaarb_init])
 	LIBS=$SAVE_LIBS
 	CFLAGS=$SAVE_CFLAGS
-	XORG_SYS_LIBS="$XORG_SYS_LIBS $PCIACCESS_LIBS $DLOPEN_LIBS $GLX_SYS_LIBS $SELINUX_LIBS"
+	XORG_SYS_LIBS="$XORG_SYS_LIBS $PCIACCESS_LIBS $DLOPEN_LIBS $GLX_SYS_LIBS"
 	XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
 
 	case $host_os in

commit 402668251135b63b7329722397fe7885e065f27c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 15:41:53 2010 +1000

    configure: move libselinux requirement up to the common section.
    
    Let's have all version-specific requirements in one block.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
    Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    (cherry picked from commit cab99b947c66a42dbf8a906bdb02e23aa7cab519)
    
    Conflicts:
    
    	configure.ac

diff --git a/configure.ac b/configure.ac
index 558de87..562111c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -759,6 +759,7 @@ LIBXI="xi >= 1.2.99.1"
 LIBXTST="xtst >= 1.0.99.2"
 LIBPCIACCESS="pciaccess >= 0.8.0"
 LIBGLIB="glib-2.0 >= 2.16"
+LIBSELINUX="libselinux >= 2.0.86"
 
 dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
 dnl CONFIG_DBUS_API is true if we want to enable the D-Bus config
@@ -1014,7 +1015,7 @@ if test "x$XSELINUX" = xyes; then
 	fi
 	AC_CHECK_HEADERS([libaudit.h], [], AC_MSG_ERROR([SELinux extension requires audit system headers]))
 	AC_CHECK_LIB(audit, audit_open, [], AC_MSG_ERROR([SELinux extension requires audit system library]))
-	PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0.86])
+	PKG_CHECK_MODULES([SELINUX], $LIBSELINUX)
 	SELINUX_LIBS="$SELINUX_LIBS -laudit"
 	AC_DEFINE(XSELINUX, 1, [Build SELinux extension])
 fi

commit 351d11fd466fae731df860a6ff4cf50ad565f43f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 12:49:21 2010 +1000

    dix: Use DeliverGrabbedEvent for implicit passive grabs (#25400)
    
    A client requesting a GrabModeSync button grab, owner-events true, with only
    the ButtonRelease mask set would never receive the press event even if the
    grab window had the ButtonPress mask set.
    
    The protocol requires that if owner-events is true, then the delivery mask
    is the combination of the grab mask + the window event mask.
    
    DeliverGrabbedEvents does this already for us, checking first the delivery
    based on owner_events and then based on the grab mask. AFAICT, the device
    cannot enter the states FREEZE_BOTH_NEXT_EVENT or FREEZE_NEXT_EVENT that
    would be handled by DGE in any possible path here.
    
    Bonus point - CheckPassiveGrabsOnWindows suddenly becomes a lot lesss
    complicated.
    
    X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    (cherry picked from commit cf72b5437d2d620521279077a29c5df6d0fbb576)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/dix/events.c b/dix/events.c
index 02079be..c6aa4ab 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -3462,7 +3462,6 @@ CheckPassiveGrabsOnWindow(
     {
 	DeviceIntPtr	gdev;
 	XkbSrvInfoPtr	xkbi = NULL;
-	Mask		mask = 0;
 
 	gdev= grab->modifierDevice;
         if (grab->grabtype == GRABTYPE_CORE)
@@ -3515,10 +3514,6 @@ CheckPassiveGrabsOnWindow(
 	     (grab->confineTo->realized &&
 				BorderSizeNotEmpty(device, grab->confineTo))))
 	{
-            int rc, count = 0;
-            xEvent *xE = NULL;
-            xEvent core;
-
             event->corestate &= 0x1f00;
             event->corestate |= tempGrab.modifiersDetail.exact & (~0x1f00);
             grabinfo = &device->deviceGrab;
@@ -3565,62 +3560,8 @@ CheckPassiveGrabsOnWindow(
             }
 
 
-            if (match & CORE_MATCH)
-            {
-                rc = EventToCore((InternalEvent*)event, &core);
-                if (rc != Success)
-                {
-                    if (rc != BadMatch)
-                        ErrorF("[dix] %s: core conversion failed in CPGFW "
-                                "(%d, %d).\n", device->name, event->type, rc);
-                    continue;
-                }
-                xE = &core;
-                count = 1;
-                mask = grab->eventMask;
-            } else if (match & XI2_MATCH)
-            {
-                rc = EventToXI2((InternalEvent*)event, &xE);
-                if (rc != Success)
-                {
-                    if (rc != BadMatch)
-                        ErrorF("[dix] %s: XI2 conversion failed in CPGFW "
-                                "(%d, %d).\n", device->name, event->type, rc);
-                    continue;
-                }
-                count = 1;
-
-                /* FIXME: EventToXI2 returns NULL for enter events, so
-                 * dereferencing the event is bad. Internal event types are
-                 * aligned with core events, so the else clause is valid.
-                 * long-term we should use internal events for enter/focus
-                 * as well */
-                if (xE)
-                    mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
-                else if (event->type == XI_Enter || event->type == XI_FocusIn)
-                    mask = grab->xi2mask[device->id][event->type/8];
-            } else
-            {
-                rc = EventToXI((InternalEvent*)event, &xE, &count);
-                if (rc != Success)
-                {
-                    if (rc != BadMatch)
-                        ErrorF("[dix] %s: XI conversion failed in CPGFW "
-                                "(%d, %d).\n", device->name, event->type, rc);
-                    continue;
-                }
-                mask = grab->eventMask;
-            }
-
 	    (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
-
-            if (xE)
-            {
-                FixUpEventFromWindow(device, xE, grab->window, None, TRUE);
-
-                TryClientEvents(rClient(grab), device, xE, count, mask,
-                                       GetEventFilter(device, xE), grab);
-            }
+            DeliverGrabbedEvent((InternalEvent*)event, device, FALSE);
 
 	    if (grabinfo->sync.state == FROZEN_NO_EVENT)
 	    {
@@ -3630,8 +3571,6 @@ CheckPassiveGrabsOnWindow(
 		grabinfo->sync.state = FROZEN_WITH_EVENT;
             }
 
-            if (match & (XI_MATCH | XI2_MATCH))
-                xfree(xE); /* on core match xE == &core */
 	    return TRUE;
 	}
     }

commit 8f743f17ed0076d10d6c60fe8bdf3f54d3432ae5
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date:   Mon Feb 15 17:42:11 2010 -0800

    Solaris xf86OSRingBell() off-by-one error in filling iov[] array
    
    When generating sound buffers for /dev/audio bells, insert waveform
    for beep *or* silence, but not both, so we don't write one entry past
    the end of the iov buffer when the final bit of soundwave ends up in
    the final entry allocated in the iov array.
    
    Fixes OpenSolaris bug 6894890:
     http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6894890
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/hw/xfree86/os-support/solaris/sun_bell.c b/hw/xfree86/os-support/solaris/sun_bell.c
index 7f146ea..05d1749 100644
--- a/hw/xfree86/os-support/solaris/sun_bell.c
+++ b/hw/xfree86/os-support/solaris/sun_bell.c
@@ -126,14 +126,15 @@ xf86OSRingBell(int loudness, int pitch, int duration)
     iovcnt = 0;
 
     for (cnt = 0; cnt <= repeats; cnt++) {
-        iov[iovcnt].iov_base = (char *) samples;
-        iov[iovcnt++].iov_len = sizeof(samples);
         if (cnt == repeats) {
             /* Insert a bit of silence so that multiple beeps are distinct and
              * not compressed into a single tone.
              */
             iov[iovcnt].iov_base = (char *) silence;
             iov[iovcnt++].iov_len = sizeof(silence);
+        } else {
+            iov[iovcnt].iov_base = (char *) samples;
+            iov[iovcnt++].iov_len = sizeof(samples);
         }
         if ((iovcnt >= IOV_MAX) || (cnt == repeats)) {
             written = writev(audioFD, iov, iovcnt);

commit d35e08b6db911c404d7baf680dab30e8a6831bc4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 18 16:00:15 2010 +1000

    dix: remove now-erroneous comment about frozen slave devices.
    
    A direct grab on a slave device through XI2 detaches it, regardless of
    whether the grab is sync or async. So this comment doesn't apply to XI2
    anyway.
    
    For XI1, aside from your life being miserable already, it doesn't matter as
    XI1 does not have a concept of attachment. You can freeze a device and if
    you don't freeze _all_ other devices at the same time, the master device can
    still happily send events to the client.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Adam Jackson <ajax@redhat.com>


Reply to: