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

xorg-server: Changes to 'debian-experimental'



 ChangeLog                                               |  271 ++++++++++++++++
 config/udev.c                                           |    8 
 configure.ac                                            |    7 
 debian/changelog                                        |    9 
 debian/patches/02_Add-libnettle-as-option-for-sha1.diff |   22 -
 dix/dispatch.c                                          |    4 
 dix/getevents.c                                         |   18 +
 hw/xfree86/common/xf86Events.c                          |   11 
 hw/xfree86/modes/xf86Crtc.c                             |    2 
 hw/xquartz/bundle/Info.plist.cpp                        |    4 
 include/dix-config.h.in                                 |    3 
 include/hotplug.h                                       |    2 
 include/list.h                                          |   21 +
 include/misc.h                                          |    1 
 mi/mipointer.c                                          |    2 
 os/log.c                                                |   50 ++
 os/utils.c                                              |   14 
 test/list.c                                             |    4 
 test/os.c                                               |    2 
 test/signal-logging.c                                   |  210 +++++++++++-
 20 files changed, 606 insertions(+), 59 deletions(-)

New commits:
commit 02f3319f1168e6f9123c1e2afeab2372ef15123f
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Thu Sep 6 12:18:11 2012 +0300

    Refresh 02_Add-libnettle-as-option-for-sha1.diff.

diff --git a/debian/changelog b/debian/changelog
index 75f601c..2d29e53 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,9 @@ xorg-server (2:1.13.0-1) UNRELEASED; urgency=low
   [ Maarten Lankhorst ]
   * Bump minimum required abi, randr, dri2 and gl protos.
 
+  [ Timo Aaltonen ]
+  * Refresh 02_Add-libnettle-as-option-for-sha1.diff.
+
  -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 22 Aug 2012 11:12:17 -0400
 
 xorg-server (2:1.12.1.902-1) unstable; urgency=medium
diff --git a/debian/patches/02_Add-libnettle-as-option-for-sha1.diff b/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
index a3fc6f6..fc184f7 100644
--- a/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
+++ b/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
@@ -8,11 +8,9 @@ Signed-off-by: Cyril Brulebois <kibi@debian.org>
 [jcristau: forward-ported from 1.7 to 1.8]
 Signed-off-by: Julien Cristau <jcristau@debian.org>
 ---
-Index: xorg-server/configure.ac
-===================================================================
---- xorg-server.orig/configure.ac	2012-07-12 14:32:56.665990355 +0200
-+++ xorg-server/configure.ac	2012-07-12 14:33:23.040019369 +0200
-@@ -1359,7 +1359,7 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1361,7 +1361,7 @@
  
  # SHA1 hashing
  AC_ARG_WITH([sha1],
@@ -21,7 +19,7 @@ Index: xorg-server/configure.ac
                              [choose SHA1 implementation])])
  AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
  if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
-@@ -1455,6 +1455,16 @@
+@@ -1457,6 +1457,16 @@
  		SHA1_CFLAGS="$OPENSSL_CFLAGS"
  	fi
  fi
@@ -38,10 +36,8 @@ Index: xorg-server/configure.ac
  AC_MSG_CHECKING([for SHA1 implementation])
  if test "x$with_sha1" = x; then
  	AC_MSG_ERROR([No suitable SHA1 implementation found])
-Index: xorg-server/include/dix-config.h.in
-===================================================================
---- xorg-server.orig/include/dix-config.h.in	2012-07-12 13:52:16.000000000 +0200
-+++ xorg-server/include/dix-config.h.in	2012-07-12 14:33:01.499195672 +0200
+--- a/include/dix-config.h.in
++++ b/include/dix-config.h.in
 @@ -160,6 +160,9 @@
  /* Define to use libsha1 for SHA1 */
  #undef HAVE_SHA1_IN_LIBSHA1
@@ -52,10 +48,8 @@ Index: xorg-server/include/dix-config.h.in
  /* Define to 1 if you have the `shmctl64' function. */
  #undef HAVE_SHMCTL64
  
-Index: xorg-server/os/xsha1.c
-===================================================================
---- xorg-server.orig/os/xsha1.c	2012-07-12 13:52:16.000000000 +0200
-+++ xorg-server/os/xsha1.c	2012-07-12 14:33:01.626295814 +0200
+--- a/os/xsha1.c
++++ b/os/xsha1.c
 @@ -190,6 +190,31 @@
      return 1;
  }

commit 526e43d8fa563d8aa01521e881ccab7129b6c64d
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Thu Sep 6 09:20:55 2012 +0300

    update the changelogs

diff --git a/ChangeLog b/ChangeLog
index 8f15c51..65ac4bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,194 @@
+commit f0bad69edd57facd6cffde8cb0863d1a735e2492
+Author: Keith Packard <keithp@keithp.com>
+Date:   Wed Sep 5 14:45:08 2012 -0700
+
+    Version bumped to 1.13
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 856f80c8d7f22b979c72d9c70b70187df6004a03
+Merge: 0db936a b8ab93d
+Author: Keith Packard <keithp@keithp.com>
+Date:   Wed Sep 5 11:02:58 2012 -0700
+
+    Merge remote-tracking branch 'jeremyhu/master'
+
+commit 0db936a5b7125d9b73633733cb34e5e4b72f01e8
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Sep 3 15:09:36 2012 +1000
+
+    xf86: call enter/leave VT for gpu screens as well
+    
+    Otherwise we can't do fast user switch properly for multiple GPUs.
+    
+    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 18deac48db0d2387242461025904eb28a0f71fac
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Aug 27 15:17:21 2012 +1000
+
+    config/udev: respect seat for hotplugged video devices.
+    
+    This respects the seat tag for hotplugged video devices at X start.
+    
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit ec740cffeba59216f4293fba829097654cde3b11
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Aug 27 15:15:19 2012 +1000
+
+    config/udev: add wrapper around check if server is not seat 0
+    
+    this is a simple clean-up that is useful to stop further propogation
+    of this construct.
+    
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 49ec57d5094be0dd2b67435ac7bb04ead780f36d
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Fri Aug 24 13:23:01 2012 +1000
+
+    dix: free default colormap before screen deletion
+    
+    If we don't free this here, it gets freed later in the resource
+    cleanups, however it then looks up up pmap->pScreen, which we
+    freed already in this function. So free the default colormap
+    when we should.
+    
+    This fixes a bug after a couple of hotplug cycles when you try
+    to exit the X server and it crashes.
+    
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 20f601a0fbc01a4f8ab85e54ee45f78f7817cdb5
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Fri Aug 24 12:56:18 2012 +1000
+
+    xf86/crtc: don't free config->name
+    
+    This is set by pre_init not screen init, so if we free it here
+    and then recycle the server, we lose all the providers.
+    
+    I think we need to wrap FreeScreen here to do this properly,
+    will investigate for 1.14 most likely, safer to just leak this
+    on server exit for now.
+    
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit b8ab93dfbc7f292b5bfe7e9113e1af824ccbd1a8
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Tue Aug 28 10:06:51 2012 -0700
+
+    list: Use offsetof() and typeof() to determine member offsets within a structure
+    
+    Some compilers have difficulty with the previous implementation which
+    relies on undefined behavior according to the C standard.  Using
+    offsetof() from <stddef.h> (which most likely just uses
+    __builtin_offsetof on modern compilers) allows us to accomplish this
+    without ambiguity.
+    
+    This fix also requires support for typeof().  If your compiler does not
+    support typeof(), then the old implementation will be used.  If you see
+    failures in test/list, please try a more modern compiler.
+    
+    v2: Added fallback if typeof() is not present.
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 148583d62b84832369e9df39b3e527b99ca96761
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Aug 29 09:11:35 2012 +1000
+
+    tests: move GCC diagnostics pragma outside of function
+    
+    This is a  a gcc 4.6+ feature.
+    
+    signal-logging.c:210: error: #pragma GCC diagnostic not allowed inside
+    functions
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit c75c947b6e9bc725821b28835f3667c4aabef9ee
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Tue Aug 28 12:43:55 2012 -0700
+
+    test/list: Fix test_xorg_list_del test
+    
+    We never use child[2], so it's state is undefined.
+    
+    This issue seems to have existed since the test was first
+    written: 92788e677be79bd04e5ef140f4ced50ad8b1bf8e
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 486038fe16957b39d39842365c5409c494c9a8df
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Mon Aug 27 22:35:51 2012 -0700
+
+    XQuartz: Bump Info.plist version to 2.7.4
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+
+commit b90b3f6eac34616c46ab693fafbf6b73a04f407b
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Mon Aug 27 17:15:19 2012 -0700
+
+    test: Make os test more compliant
+    
+    sighandler_t is not UNIX.
+    
+    Regression from: 7f09126e068015db54c56bb982b8f91065375700
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a557edca6152ad09c685a00e01534c35a1f00f2e
+Merge: 6619f5c 24ffcfc
+Author: Keith Packard <keithp@keithp.com>
+Date:   Mon Aug 27 08:06:09 2012 -0700
+
+    Merge remote-tracking branch 'whot/for-keith'
+
+commit 24ffcfcded6b4b024958801e8a6cecad36d9a3e3
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 20 10:28:26 2012 +1000
+
+    os: fix typo, fsync when WIN32 is _not_ defined
+    
+    Introduced in 164b38c72fe9c69d13ea4f9c46d4ccc46566d826
+    
+    Reported-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit d53e6e02a2595ced1882f5fcd34d08ea039b3b85
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Aug 16 13:54:42 2012 +1000
+
+    mi: don't check for core events in miPointerSetPosition (#53568)
+    
+    As of 81cfe44b1ed0de84ad1941fe2ca74bebef3fc58d, miPointerSetPosition now
+    returns the screen pointer of the device. This broke floating slave devices,
+    as soon as a motion event was submitted, miPointerSetPosition returned NULL,
+    crashing the server.
+    
+    dev->coreEvents is only false if the device is a floating slave, in which
+    case it has a sprite.
+    
+    X.Org Bug 53568 <http://bugs.freedesktop.org/show_bug.cgi?id=53568>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
 commit 6619f5c0e1086b57888ff7146e8ed5897b50d440
 Author: Keith Packard <keithp@keithp.com>
 Date:   Tue Aug 21 13:46:34 2012 -0700
@@ -8,6 +199,86 @@ Date:   Tue Aug 21 13:46:34 2012 -0700
     
     Signed-off-by: Keith Packard <keithp@keithp.com>
 
+commit bafbd99080be49a17be97d2cc758fbe623369945
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Aug 8 11:34:32 2012 +1000
+
+    dix: work around scaling issues during WarpPointer (#53037)
+    
+    In WarpPointer calls, we get input in screen coordinates. They must be
+    scaled to device coordinates, and then back to screen coordinates for screen
+    crossing and root coordinates in events.
+    
+    The rounding errors introduced (and clipping in core/XI 1.x events) can lead
+    to the actual position being different to the requested input coordinates.
+    e.g. 200 scales to 199.9999, truncated to 199 in the event.
+    
+    Avoid this by simply overwriting the scaled screen coordinates with the
+    input coordinates for the POINTER_SCREEN case.
+    
+    X.Org Bug 53037 <http://bugs.freedesktop.org/show_bug.cgi?id=53037>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit 1ebba43052d68d874148e63c9ae38489ddfc5ec1
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Aug 15 14:49:04 2012 +1000
+
+    os: don't block signal-unsafe logging, merely warn about it.
+    
+    Throw an error into the log file, but continue anyway. And after three
+    warnings, stop complaining. Not all input drivers will be fixed in time (or
+    ever) and our printf implementation is vastly inferior, so there is still a
+    use-case for non-sigsafe logging.
+    
+    This also adds more linebreaks to the message.
+    
+    CC: Chase Douglas <chase.douglas@canonical.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit 4912b4adb666dad96b832ab2d7caaae49808723e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 13 14:44:44 2012 +1000
+
+    os: add support for %d and %i to pnprintf
+    
+    The mouse driver uses %i in some debug messages
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit 7f8c39c8b5ef89153ecd84d16331e96d8feb18ef
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 13 14:24:36 2012 +1000
+
+    Add FormatInt64 to convert signed integers in signal-safe manner
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit 36c1d92ec0ef0f3927034a12d4cb79dcc22bd185
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 13 12:24:39 2012 +1000
+
+    test: add a few tests for signal-safe logging
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit b69536b475118a8787c1726355b504207bf83f8f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 13 11:15:54 2012 +1000
+
+    test: assert from signal-safe number conversion
+    
+    Throw an assert when the conversion fails instead of just returning. Asserts
+    are more informative.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
 commit 3e091e1075dc29120e54ab2ef110b04ce7383ffd
 Author: Aaron Plattner <aplattner@nvidia.com>
 Date:   Fri Aug 17 11:26:05 2012 -0700
diff --git a/debian/changelog b/debian/changelog
index 237d1ba..75f601c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,12 +1,10 @@
-xorg-server (2:1.12.99.905-1) UNRELEASED; urgency=low
+xorg-server (2:1.13.0-1) UNRELEASED; urgency=low
+
+  * New upstream release
 
   [ Maarten Lankhorst ]
-  * New upstream release snapshot (on the way to 1.13). (rc4)
   * Bump minimum required abi, randr, dri2 and gl protos.
 
-  [ Robert Hooker ]
-  * New upstream release (rc5)
-
  -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 22 Aug 2012 11:12:17 -0400
 
 xorg-server (2:1.12.1.902-1) unstable; urgency=medium

commit f0bad69edd57facd6cffde8cb0863d1a735e2492
Author: Keith Packard <keithp@keithp.com>
Date:   Wed Sep 5 14:45:08 2012 -0700

    Version bumped to 1.13
    
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/configure.ac b/configure.ac
index ab89027..ac3bf26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,9 +26,9 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.12.99.905, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2012-08-21"
-RELEASE_NAME="Splashing Orca"
+AC_INIT([xorg-server], 1.13.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2012-09-05"
+RELEASE_NAME="Iced Tea"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE

commit 0db936a5b7125d9b73633733cb34e5e4b72f01e8
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Sep 3 15:09:36 2012 +1000

    xf86: call enter/leave VT for gpu screens as well
    
    Otherwise we can't do fast user switch properly for multiple GPUs.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 47429ec..3ad34b5 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -460,6 +460,8 @@ xf86VTSwitch(void)
         OsBlockSIGIO();
         for (i = 0; i < xf86NumScreens; i++)
             xf86Screens[i]->LeaveVT(xf86Screens[i]);
+        for (i = 0; i < xf86NumGPUScreens; i++)
+            xf86GPUScreens[i]->LeaveVT(xf86GPUScreens[i]);
 
         xf86AccessLeave();      /* We need this here, otherwise */
 
@@ -474,6 +476,10 @@ xf86VTSwitch(void)
                 if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
                     FatalError("EnterVT failed for screen %d\n", i);
             }
+            for (i = 0; i < xf86NumGPUScreens; i++) {
+                if (!xf86GPUScreens[i]->EnterVT(xf86GPUScreens[i]))
+                    FatalError("EnterVT failed for gpu screen %d\n", i);
+            }
             if (!(dispatchException & DE_TERMINATE)) {
                 for (i = 0; i < xf86NumScreens; i++) {
                     if (xf86Screens[i]->EnableDisableFBAccess)
@@ -530,6 +536,11 @@ xf86VTSwitch(void)
             if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
                 FatalError("EnterVT failed for screen %d\n", i);
         }
+        for (i = 0; i < xf86NumGPUScreens; i++) {
+            xf86GPUScreens[i]->vtSema = TRUE;
+            if (!xf86GPUScreens[i]->EnterVT(xf86GPUScreens[i]))
+                FatalError("EnterVT failed for gpu screen %d\n", i);
+        }
         for (i = 0; i < xf86NumScreens; i++) {
             if (xf86Screens[i]->EnableDisableFBAccess)
                 (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], TRUE);

commit 18deac48db0d2387242461025904eb28a0f71fac
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Aug 27 15:17:21 2012 +1000

    config/udev: respect seat for hotplugged video devices.
    
    This respects the seat tag for hotplugged video devices at X start.
    
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/config/udev.c b/config/udev.c
index 5a8f481..c2d00bb 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -454,6 +454,10 @@ config_udev_odev_probe(config_odev_probe_proc_ptr probe_callback)
 
     udev_enumerate_add_match_subsystem(enumerate, "drm");
     udev_enumerate_add_match_sysname(enumerate, "card[0-9]*");
+#ifdef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
+    if (ServerIsNotSeat0())
+        udev_enumerate_add_match_tag(enumerate, SeatId);
+#endif
     udev_enumerate_scan_devices(enumerate);
     devices = udev_enumerate_get_list_entry(enumerate);
     udev_list_entry_foreach(device, devices) {

commit ec740cffeba59216f4293fba829097654cde3b11
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Aug 27 15:15:19 2012 +1000

    config/udev: add wrapper around check if server is not seat 0
    
    this is a simple clean-up that is useful to stop further propogation
    of this construct.
    
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/config/udev.c b/config/udev.c
index 03aca28..5a8f481 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -339,7 +339,7 @@ config_udev_pre_init(void)
 #endif
 
 #ifdef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
-    if (SeatId && strcmp(SeatId, "seat0"))
+    if (ServerIsNotSeat0())
         udev_monitor_filter_add_match_tag(udev_monitor, SeatId);
 #endif
     if (udev_monitor_enable_receiving(udev_monitor)) {
@@ -368,7 +368,7 @@ config_udev_init(void)
 #endif
 
 #ifdef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
-    if (SeatId && strcmp(SeatId, "seat0"))
+    if (ServerIsNotSeat0())
         udev_enumerate_add_match_tag(enumerate, SeatId);
 #endif
 
diff --git a/include/hotplug.h b/include/hotplug.h
index 96b078d..2a95b45 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -69,4 +69,6 @@ void config_odev_probe(config_odev_probe_proc_ptr probe_callback);
 void NewGPUDeviceRequest(struct OdevAttributes *attribs);
 void DeleteGPUDeviceRequest(struct OdevAttributes *attribs);
 #endif
+
+#define ServerIsNotSeat0() (SeatId && strcmp(SeatId, "seat0"))
 #endif                          /* HOTPLUG_H */

commit 49ec57d5094be0dd2b67435ac7bb04ead780f36d
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Aug 24 13:23:01 2012 +1000

    dix: free default colormap before screen deletion
    
    If we don't free this here, it gets freed later in the resource
    cleanups, however it then looks up up pmap->pScreen, which we
    freed already in this function. So free the default colormap
    when we should.
    
    This fixes a bug after a couple of hotplug cycles when you try
    to exit the X server and it crashes.
    
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/dix/dispatch.c b/dix/dispatch.c
index 3c6a591..0ce10c2 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -3904,6 +3904,10 @@ RemoveGPUScreen(ScreenPtr pScreen)
     }
     screenInfo.numGPUScreens--;
 
+    /* this gets freed later in the resource list, but without
+     * the screen existing it causes crashes - so remove it here */
+    if (pScreen->defColormap)
+        FreeResource(pScreen->defColormap, RT_COLORMAP);
     free(pScreen);
 
 }

commit 20f601a0fbc01a4f8ab85e54ee45f78f7817cdb5
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Aug 24 12:56:18 2012 +1000

    xf86/crtc: don't free config->name
    
    This is set by pre_init not screen init, so if we free it here
    and then recycle the server, we lose all the providers.
    
    I think we need to wrap FreeScreen here to do this properly,
    will investigate for 1.14 most likely, safer to just leak this
    on server exit for now.
    
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 1947c5b..e3eaf5f 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -728,8 +728,6 @@ xf86CrtcCloseScreen(ScreenPtr screen)
 
     xf86RandR12CloseScreen(screen);
 
-    free(config->name);
-
     screen->CloseScreen(screen);
 
     for (o = 0; o < config->num_output; o++) {

commit b8ab93dfbc7f292b5bfe7e9113e1af824ccbd1a8
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Tue Aug 28 10:06:51 2012 -0700

    list: Use offsetof() and typeof() to determine member offsets within a structure
    
    Some compilers have difficulty with the previous implementation which
    relies on undefined behavior according to the C standard.  Using
    offsetof() from <stddef.h> (which most likely just uses
    __builtin_offsetof on modern compilers) allows us to accomplish this
    without ambiguity.
    
    This fix also requires support for typeof().  If your compiler does not
    support typeof(), then the old implementation will be used.  If you see
    failures in test/list, please try a more modern compiler.
    
    v2: Added fallback if typeof() is not present.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index abfe727..ab89027 100644
--- a/configure.ac
+++ b/configure.ac
@@ -137,6 +137,7 @@ AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h dlfcn.h stropts.h fnmatch.h
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
+AC_C_TYPEOF
 AC_C_BIGENDIAN([ENDIAN="X_BIG_ENDIAN"], [ENDIAN="X_LITTLE_ENDIAN"])
 
 AC_CHECK_SIZEOF([unsigned long])
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 77681a9..578f249 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -423,6 +423,9 @@
 /* Define to 64-bit byteswap macro */
 #undef bswap_64
 
+/* Define to 1 if typeof works with your compiler. */
+#undef HAVE_TYPEOF
+
 /* The compiler supported TLS storage class, prefering initial-exec if tls_model is supported */
 #undef TLS
 
diff --git a/include/list.h b/include/list.h
index d54a207..2d48a86 100644
--- a/include/list.h
+++ b/include/list.h
@@ -26,6 +26,8 @@
 #ifndef _XORG_LIST_H_
 #define _XORG_LIST_H_
 
+#include <stddef.h> /* offsetof() */
+
 /**
  * @file Classic doubly-link circular list implementation.
  * For real usage examples of the linked list, see the file test/list.c
@@ -232,7 +234,7 @@ xorg_list_is_empty(struct xorg_list *head)
  */
 #ifndef container_of
 #define container_of(ptr, type, member) \
-    (type *)((char *)(ptr) - (char *) &((type *)0)->member)
+    (type *)((char *)(ptr) - offsetof(type, member))
 #endif
 
 /**
@@ -271,9 +273,20 @@ xorg_list_is_empty(struct xorg_list *head)
 #define xorg_list_last_entry(ptr, type, member) \
     xorg_list_entry((ptr)->prev, type, member)
 
-#define __container_of(ptr, sample, member)				\
-    (void *)((char *)(ptr)						\
-	     - ((char *)&(sample)->member - (char *)(sample)))
+#ifdef HAVE_TYPEOF
+#define __container_of(ptr, sample, member)			\
+    container_of(ptr, typeof(*sample), member)
+#else
+/* This implementation of __container_of has undefined behavior according
+ * to the C standard, but it works in many cases.  If your compiler doesn't
+ * support typeof() and fails with this implementation, please try a newer
+ * compiler.
+ */
+#define __container_of(ptr, sample, member)                            \
+    (void *)((char *)(ptr)                                             \
+            - ((char *)&(sample)->member - (char *)(sample)))
+#endif
+
 /**
  * Loop through the list given by head and set pos to struct in the list.
  *

commit 148583d62b84832369e9df39b3e527b99ca96761
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 29 09:11:35 2012 +1000

    tests: move GCC diagnostics pragma outside of function
    
    This is a  a gcc 4.6+ feature.
    
    signal-logging.c:210: error: #pragma GCC diagnostic not allowed inside
    functions
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/test/signal-logging.c b/test/signal-logging.c
index 3206dde..810bd20 100644
--- a/test/signal-logging.c
+++ b/test/signal-logging.c
@@ -178,6 +178,7 @@ number_formatting(void)
         assert(check_signed_number_format_test(signed_tests + i));
 }
 
+#pragma GCC diagnostic ignored "-Wformat-security"
 static void logging_format(void)
 {
     const char *log_file_path = "/tmp/Xorg-logging-test.log";
@@ -207,9 +208,7 @@ static void logging_format(void)
     assert(strcmp(logmsg, "(EE) test message\n") == 0);
 
     /* long buf is truncated to "....en\n" */
-#pragma GCC diagnostic ignored "-Wformat-security"
     LogMessageVerbSigSafe(X_ERROR, -1, buf);
-#pragma GCC diagnostic pop "-Wformat-security"
     read_log_msg(logmsg);
     assert(strcmp(&logmsg[strlen(logmsg) - 3], "en\n") == 0);
 
@@ -298,6 +297,7 @@ static void logging_format(void)
 
 #undef read_log_msg
 }
+#pragma GCC diagnostic pop "-Wformat-security"
 
 int
 main(int argc, char **argv)

commit c75c947b6e9bc725821b28835f3667c4aabef9ee
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Tue Aug 28 12:43:55 2012 -0700

    test/list: Fix test_xorg_list_del test
    
    We never use child[2], so it's state is undefined.
    
    This issue seems to have existed since the test was first
    written: 92788e677be79bd04e5ef140f4ced50ad8b1bf8e
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/test/list.c b/test/list.c
index 82d2327..f9f54ee 100644
--- a/test/list.c
+++ b/test/list.c
@@ -137,7 +137,7 @@ static void
 test_xorg_list_del(void)
 {
     struct parent parent = { 0 };
-    struct child child[3];
+    struct child child[2];
     struct child *c;
 
     xorg_list_init(&parent.children);
@@ -178,8 +178,8 @@ test_xorg_list_del(void)
     xorg_list_add(&child[0].node, &parent.children);
     xorg_list_del(&parent.children);
     assert(xorg_list_is_empty(&parent.children));
+    assert(!xorg_list_is_empty(&child[0].node));
     assert(!xorg_list_is_empty(&child[1].node));
-    assert(!xorg_list_is_empty(&child[2].node));
 }
 
 static void

commit 486038fe16957b39d39842365c5409c494c9a8df
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Mon Aug 27 22:35:51 2012 -0700

    XQuartz: Bump Info.plist version to 2.7.4
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp
index 4b6d9d1..f76c5fc 100644
--- a/hw/xquartz/bundle/Info.plist.cpp
+++ b/hw/xquartz/bundle/Info.plist.cpp
@@ -19,9 +19,9 @@
 	<key>CFBundlePackageType</key>
 		<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-		<string>2.7.2</string>
+		<string>2.7.4</string>
 	<key>CFBundleVersion</key>
-		<string>2.7.2</string>
+		<string>2.7.4</string>
 	<key>CFBundleSignature</key>
 		<string>x11a</string>
 	<key>CSResourcesFileMapped</key>

commit b90b3f6eac34616c46ab693fafbf6b73a04f407b
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Mon Aug 27 17:15:19 2012 -0700

    test: Make os test more compliant
    
    sighandler_t is not UNIX.
    
    Regression from: 7f09126e068015db54c56bb982b8f91065375700
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/test/os.c b/test/os.c
index 8f1107d..2d005a0 100644
--- a/test/os.c
+++ b/test/os.c
@@ -149,7 +149,7 @@ static void block_sigio_test_nested(void)
                 tail guard
        tail guard must be hit.
      */
-    sighandler_t old_handler;
+    void (*old_handler)(int);
     old_handler = signal(SIGIO, sighandler);
     expect_signal = 1;
     assert(raise(SIGIO) == 0);

commit 24ffcfcded6b4b024958801e8a6cecad36d9a3e3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 20 10:28:26 2012 +1000

    os: fix typo, fsync when WIN32 is _not_ defined
    
    Introduced in 164b38c72fe9c69d13ea4f9c46d4ccc46566d826
    
    Reported-by: Jon TURNEY <jon.turney@dronecode.org.uk>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

diff --git a/os/log.c b/os/log.c
index a0628fd..4820e9a 100644
--- a/os/log.c
+++ b/os/log.c
@@ -374,7 +374,7 @@ LogSWrite(int verb, const char *buf, size_t len, Bool end_line)
     if (verb < 0 || logFileVerbosity >= verb) {
         if (inSignalContext && logFileFd >= 0) {
             write(logFileFd, buf, len);
-#ifdef WIN32
+#ifndef WIN32
             if (logFlush && logSync)
                 fsync(logFileFd);
 #endif

commit d53e6e02a2595ced1882f5fcd34d08ea039b3b85
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 16 13:54:42 2012 +1000

    mi: don't check for core events in miPointerSetPosition (#53568)
    
    As of 81cfe44b1ed0de84ad1941fe2ca74bebef3fc58d, miPointerSetPosition now
    returns the screen pointer of the device. This broke floating slave devices,
    as soon as a motion event was submitted, miPointerSetPosition returned NULL,
    crashing the server.
    
    dev->coreEvents is only false if the device is a floating slave, in which
    case it has a sprite.
    
    X.Org Bug 53568 <http://bugs.freedesktop.org/show_bug.cgi?id=53568>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

diff --git a/mi/mipointer.c b/mi/mipointer.c
index a56838e..4defaf5 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -575,7 +575,7 @@ miPointerSetPosition(DeviceIntPtr pDev, int mode, double *screenx,
 
     miPointerPtr pPointer;
 
-    if (!pDev || !pDev->coreEvents)
+    if (!pDev)
         return NULL;
 
     pPointer = MIPOINTER(pDev);

commit bafbd99080be49a17be97d2cc758fbe623369945
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 8 11:34:32 2012 +1000

    dix: work around scaling issues during WarpPointer (#53037)
    
    In WarpPointer calls, we get input in screen coordinates. They must be
    scaled to device coordinates, and then back to screen coordinates for screen
    crossing and root coordinates in events.
    
    The rounding errors introduced (and clipping in core/XI 1.x events) can lead
    to the actual position being different to the requested input coordinates.
    e.g. 200 scales to 199.9999, truncated to 199 in the event.
    
    Avoid this by simply overwriting the scaled screen coordinates with the
    input coordinates for the POINTER_SCREEN case.
    
    X.Org Bug 53037 <http://bugs.freedesktop.org/show_bug.cgi?id=53037>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

diff --git a/dix/getevents.c b/dix/getevents.c
index b3bb162..4e62507 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1327,6 +1327,7 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
     RawDeviceEvent *raw;
     double screenx = 0.0, screeny = 0.0;        /* desktop coordinate system */
     double devx = 0.0, devy = 0.0;      /* desktop-wide in device coords */
+    int sx, sy;                         /* for POINTER_SCREEN */
     ValuatorMask mask;
     ScreenPtr scr;
 
@@ -1369,8 +1370,11 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
     /* valuators are in driver-native format (rel or abs) */
 
     if (flags & POINTER_ABSOLUTE) {
-        if (flags & POINTER_SCREEN)     /* valuators are in screen coords */
+        if (flags & POINTER_SCREEN) {    /* valuators are in screen coords */
+            sx = valuator_mask_get(&mask, 0);
+            sy = valuator_mask_get(&mask, 1);
             scale_from_screen(pDev, &mask);
+        }
 
         transformAbsolute(pDev, &mask);
         clipAbsolute(pDev, &mask);
@@ -1388,6 +1392,18 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
 
     /* valuators are in device coordinate system in absolute coordinates */
     scale_to_desktop(pDev, &mask, &devx, &devy, &screenx, &screeny);
+
+    /* #53037 XWarpPointer's scaling back and forth between screen and
+       device may leave us with rounding errors. End result is that the
+       pointer doesn't end up on the pixel it should.
+       Avoid this by forcing screenx/screeny back to what the input
+       coordinates were.
+     */
+    if (flags & POINTER_SCREEN) {
+        screenx = sx;
+        screeny = sy;
+    }
+
     scr = positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
                          &mask, &devx, &devy, &screenx, &screeny);
 

commit 1ebba43052d68d874148e63c9ae38489ddfc5ec1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 15 14:49:04 2012 +1000

    os: don't block signal-unsafe logging, merely warn about it.
    
    Throw an error into the log file, but continue anyway. And after three
    warnings, stop complaining. Not all input drivers will be fixed in time (or
    ever) and our printf implementation is vastly inferior, so there is still a
    use-case for non-sigsafe logging.
    
    This also adds more linebreaks to the message.
    
    CC: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

diff --git a/os/log.c b/os/log.c
index 4348739..a0628fd 100644
--- a/os/log.c
+++ b/os/log.c
@@ -467,6 +467,7 @@ LogMessageTypeVerbString(MessageType type, int verb)
 void


Reply to: