[Xquartz-changes] xserver: Branch 'server-1.8-apple' - 18 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Fri Apr 9 11:50:19 PDT 2010


Rebased ref, commits from common ancestor:
commit 112ee4a94baefc48b9c5b2a017f2a38656c6f95e
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Sat Mar 27 18:02:14 2010 -0700

    OS: Add some noreturn and printflike compiler attributes where appropriate
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/include/os.h b/include/os.h
index 453ab82..957fc74 100644
--- a/include/os.h
+++ b/include/os.h
@@ -83,6 +83,15 @@ typedef struct _NewClientRec *NewClientPtr;
 #include <stdio.h>
 #include <stdarg.h>
 
+/* XXX Need to check which GCC versions have the format(printf) attribute. */
+#if defined(__GNUC__) && (__GNUC__ > 2)
+#define _printf_attribute(a,b) __attribute((format(__printf__,a,b)))
+#define _noreturn_attribute __attribute((noreturn))
+#else
+#define _printf_attribute(a,b) /**/
+#define _noreturn_attribute /**/
+#endif
+
 #ifdef DDXBEFORERESET
 extern void ddxBeforeReset (void);
 #endif
@@ -226,9 +235,9 @@ extern _X_EXPORT pointer XNFrealloc(pointer /*ptr*/, unsigned long /*amount*/);
 
 extern _X_EXPORT char *Xstrdup(const char *s);
 extern _X_EXPORT char *XNFstrdup(const char *s);
-extern _X_EXPORT char *Xprintf(const char *fmt, ...);
+extern _X_EXPORT char *Xprintf(const char *fmt, ...) _printf_attribute(1,2);
 extern _X_EXPORT char *Xvprintf(const char *fmt, va_list va);
-extern _X_EXPORT char *XNFprintf(const char *fmt, ...);
+extern _X_EXPORT char *XNFprintf(const char *fmt, ...) _printf_attribute(1,2);
 extern _X_EXPORT char *XNFvprintf(const char *fmt, va_list va);
 
 typedef void (*OsSigHandlerPtr)(int /* sig */);
@@ -262,7 +271,7 @@ extern _X_EXPORT void OsBlockSignals (void);
 
 extern _X_EXPORT void OsReleaseSignals (void);
 
-extern _X_EXPORT void OsAbort (void);
+extern _X_EXPORT void OsAbort (void) _noreturn_attribute;
 
 #if !defined(WIN32)
 extern _X_EXPORT int System(char *);
@@ -488,13 +497,6 @@ typedef enum {
     X_UNKNOWN = -1		/* unknown -- this must always be last */
 } MessageType;
 
-/* XXX Need to check which GCC versions have the format(printf) attribute. */
-#if defined(__GNUC__) && (__GNUC__ > 2)
-#define _printf_attribute(a,b) __attribute((format(__printf__,a,b)))
-#else
-#define _printf_attribute(a,b) /**/
-#endif
-
 extern _X_EXPORT const char *LogInit(const char *fname, const char *backup);
 extern _X_EXPORT void LogClose(void);
 extern _X_EXPORT Bool LogSetParameter(LogParameter param, int value);
@@ -509,11 +511,7 @@ extern _X_EXPORT void LogMessage(MessageType type, const char *format, ...)
 extern _X_EXPORT void FreeAuditTimer(void);
 extern _X_EXPORT void AuditF(const char *f, ...) _printf_attribute(1,2);
 extern _X_EXPORT void VAuditF(const char *f, va_list args);
-extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2)
-#if defined(__GNUC__) && (__GNUC__ > 2)
-__attribute((noreturn))
-#endif
-;
+extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2) _noreturn_attribute;
 
 #ifdef DEBUG
 #define DebugF ErrorF
diff --git a/os/log.c b/os/log.c
index 3773315..99f3528 100644
--- a/os/log.c
+++ b/os/log.c
@@ -402,9 +402,7 @@ LogMessage(MessageType type, const char *format, ...)
     va_end(ap);
 }
 
-#ifdef __GNUC__
-void AbortServer(void) __attribute__((noreturn));
-#endif
+void AbortServer(void) _noreturn_attribute;
 
 void
 AbortServer(void)
commit a9b856b6d6cef9930ff6d85a03b7b3d24c374950
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Fri Feb 12 19:48:52 2010 -0800

    fb: Revert fb changes that broke XQuartz
    
    http://bugs.freedesktop.org/show_bug.cgi?id=26124
    
    Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5."
    Revert "fb: Adjust transform or composite coordinates for pixman operations"
    
    http://bugs.freedesktop.org/26124
    
    This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695.
    This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1.
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/fb/fb.h b/fb/fb.h
index 02d6c03..ed21f9e 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -2082,11 +2082,8 @@ fbFillRegionSolid (DrawablePtr	pDrawable,
 		   FbBits	xor);
 
 extern _X_EXPORT pixman_image_t *
-image_from_pict (PicturePtr	pict,
-		 Bool		has_clip,
-		 int		*xoff,
-		 int		*yoff);
-
+image_from_pict (PicturePtr pict,
+		 Bool       has_clip);
 extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
 
 #endif /* _FB_H_ */
diff --git a/fb/fbpict.c b/fb/fbpict.c
index dddfce8..07a2286 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -158,24 +158,19 @@ fbComposite (CARD8      op,
 	     CARD16     height)
 {
     pixman_image_t *src, *mask, *dest;
-    int src_xoff, src_yoff;
-    int msk_xoff, msk_yoff;
-    int dst_xoff, dst_yoff;
     
     miCompositeSourceValidate (pSrc, xSrc - xDst, ySrc - yDst, width, height);
     if (pMask)
 	miCompositeSourceValidate (pMask, xMask - xDst, yMask - yDst, width, height);
     
-    src = image_from_pict (pSrc, FALSE, &src_xoff, &src_yoff);
-    mask = image_from_pict (pMask, FALSE, &msk_xoff, &msk_yoff);
-    dest = image_from_pict (pDst, TRUE, &dst_xoff, &dst_yoff);
+    src = image_from_pict (pSrc, TRUE);
+    mask = image_from_pict (pMask, TRUE);
+    dest = image_from_pict (pDst, TRUE);
 
     if (src && dest && !(pMask && !mask))
     {
 	pixman_image_composite (op, src, mask, dest,
-				xSrc + src_xoff, ySrc + src_yoff,
-				xMask + msk_xoff, yMask + msk_yoff,
-				xDst + dst_xoff, yDst + dst_yoff,
+				xSrc, ySrc, xMask, yMask, xDst, yDst,
 				width, height);
     }
 
@@ -275,22 +270,22 @@ create_conical_gradient_image (PictGradient *gradient)
 
 static pixman_image_t *
 create_bits_picture (PicturePtr pict,
-		     Bool       has_clip,
-		     int	*xoff,
-		     int	*yoff)
+		     Bool       has_clip)
 {
-    PixmapPtr pixmap;
     FbBits *bits;
     FbStride stride;
-    int bpp;
+    int bpp, xoff, yoff;
     pixman_image_t *image;
     
-    fbGetDrawablePixmap (pict->pDrawable, pixmap, *xoff, *yoff);
-    fbGetPixmapBitsData(pixmap, bits, stride, bpp);
+    fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
+
+    bits = (FbBits*)((CARD8*)bits +
+		     (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
+		     (pict->pDrawable->x + xoff) * (bpp / 8));
 
     image = pixman_image_create_bits (
 	pict->format,
-	pixmap->drawable.width, pixmap->drawable.height,
+	pict->pDrawable->width, pict->pDrawable->height,
 	(uint32_t *)bits, stride * sizeof (FbStride));
     
     
@@ -316,52 +311,30 @@ create_bits_picture (PicturePtr pict,
 	if (pict->clientClipType != CT_NONE)
 	    pixman_image_set_has_client_clip (image, TRUE);
 
-	if (*xoff || *yoff)
-	    pixman_region_translate (pict->pCompositeClip, *xoff, *yoff);
+	pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
 
 	pixman_image_set_clip_region (image, pict->pCompositeClip);
 
-	if (*xoff || *yoff)
-	    pixman_region_translate (pict->pCompositeClip, -*xoff, -*yoff);
+	pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
     }
     
     /* Indexed table */
     if (pict->pFormat->index.devPrivate)
 	pixman_image_set_indexed (image, pict->pFormat->index.devPrivate);
 
-    /* Add in drawable origin to position within the image */
-    *xoff += pict->pDrawable->x;
-    *yoff += pict->pDrawable->y;
-
     return image;
 }
 
 static void
-set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+set_image_properties (pixman_image_t *image, PicturePtr pict)
 {
     pixman_repeat_t repeat;
     pixman_filter_t filter;
     
     if (pict->transform)
     {
-	/* For source images, adjust the transform to account
-	 * for the drawable offset within the pixman image,
-	 * then set the offset to 0 as it will be used
-	 * to compute positions within the transformed image.
-	 */
-	if (!has_clip) {
-	    struct pixman_transform	adjusted;
-
-	    adjusted = *pict->transform;
-	    pixman_transform_translate(&adjusted,
-				       NULL,
-				       pixman_int_to_fixed(*xoff),
-				       pixman_int_to_fixed(*yoff));
-	    pixman_image_set_transform (image, &adjusted);
-	    *xoff = 0;
-	    *yoff = 0;
-	} else
-	    pixman_image_set_transform (image, pict->transform);
+	pixman_image_set_transform (
+	    image, (pixman_transform_t *)pict->transform);
     }
     
     switch (pict->repeatType)
@@ -388,8 +361,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int
     
     if (pict->alphaMap)
     {
-	int alpha_xoff, alpha_yoff;
-	pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, FALSE, &alpha_xoff, &alpha_yoff);
+	pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE);
 	
 	pixman_image_set_alpha_map (
 	    image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
@@ -422,7 +394,8 @@ set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int
 }
 
 pixman_image_t *
-image_from_pict (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+image_from_pict (PicturePtr pict,
+		 Bool has_clip)
 {
     pixman_image_t *image = NULL;
 
@@ -431,7 +404,7 @@ image_from_pict (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
 
     if (pict->pDrawable)
     {
-	image = create_bits_picture (pict, has_clip, xoff, yoff);
+	image = create_bits_picture (pict, has_clip);
     }
     else if (pict->pSourcePict)
     {
@@ -452,11 +425,10 @@ image_from_pict (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
 	    else if (sp->type == SourcePictTypeConical)
 		image = create_conical_gradient_image (gradient);
 	}
-	*xoff = *yoff = 0;
     }
     
     if (image)
-	set_image_properties (image, pict, has_clip, xoff, yoff);
+	set_image_properties (image, pict);
     
     return image;
 }
diff --git a/fb/fbtrap.c b/fb/fbtrap.c
index 515e2e1..830603a 100644
--- a/fb/fbtrap.c
+++ b/fb/fbtrap.c
@@ -40,8 +40,7 @@ fbAddTraps (PicturePtr	pPicture,
 	    int		ntrap,
 	    xTrap	*traps)
 {
-    int image_xoff, image_yoff;
-    pixman_image_t *image = image_from_pict (pPicture, FALSE, &image_xoff, &image_yoff);
+    pixman_image_t *image = image_from_pict (pPicture, FALSE);
 
     if (!image)
 	return;
@@ -57,8 +56,7 @@ fbRasterizeTrapezoid (PicturePtr    pPicture,
 		      int	    x_off,
 		      int	    y_off)
 {
-    int	mask_xoff, mask_yoff;
-    pixman_image_t *image = image_from_pict (pPicture, FALSE, &mask_xoff, &mask_yoff);
+    pixman_image_t *image = image_from_pict (pPicture, FALSE);
 
     if (!image)
 	return;
commit 0e97ac0b3036aa500bee16aa1de22ee7c6cbd522
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Mon Apr 5 16:54:22 2010 -0700

    XQuartz: Blacklist some oddball legacy Mac keycodes that break wine
    
    http://xquartz.macosforge.org/trac/ticket/295
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
    (cherry picked from commit 1ac34213137cbcbdfcf4a07708e9af6ce0dbfb4a)

diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index a4a0b08..db4df89 100644
--- a/hw/xquartz/quartzKeyboard.c
+++ b/hw/xquartz/quartzKeyboard.c
@@ -39,6 +39,7 @@
 
 #define HACK_MISSING 1
 #define HACK_KEYPAD 1
+#define HACK_BLACKLIST 1
 
 #include <unistd.h>
 #include <stdio.h>
@@ -83,6 +84,7 @@ enum {
 
 #define UKEYSYM(u) ((u) | 0x01000000)
 
+#if HACK_MISSING
 /* Table of keycode->keysym mappings we use to fallback on for important
    keys that are often not in the Unicode mapping. */
 
@@ -117,7 +119,9 @@ const static struct {
     {107, XK_F14},
     {113, XK_F15},
 };
+#endif
 
+#if HACK_KEYPAD
 /* Table of keycode->old,new-keysym mappings we use to fixup the numeric
    keypad entries. */
 
@@ -143,6 +147,17 @@ const static struct {
     {91, XK_8, XK_KP_8},
     {92, XK_9, XK_KP_9},
 };
+#endif
+
+#if HACK_BLACKLIST
+/* <rdar://problem/7824370> wine notepad produces wrong characters on shift+arrow
+ * http://xquartz.macosforge.org/trac/ticket/295
+ * http://developer.apple.com/legacy/mac/library/documentation/mac/Text/Text-579.html
+ *
+ * legacy Mac keycodes for arrow keys that shift-modify to math symbols
+ */
+const static unsigned short keycode_blacklist[] = {66, 70, 72, 77};
+#endif
 
 /* Table mapping normal keysyms to their dead equivalents.
    FIXME: all the unicode keysyms (apart from circumflex) were guessed. */
@@ -772,32 +787,38 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
         if (k[3] == k[2]) k[3] = NoSymbol;
         if (k[1] == k[0]) k[1] = NoSymbol;
         if (k[0] == k[2] && k[1] == k[3]) k[2] = k[3] = NoSymbol;
+        if (k[3] == k[0] && k[2] == k[1] && k[2] == NoSymbol) k[3] = NoSymbol;
     }
 
+#if HACK_MISSING
     /* Fix up some things that are normally missing.. */
-
-    if (HACK_MISSING) {
-        for (i = 0; i < sizeof (known_keys) / sizeof (known_keys[0]); i++) {
-            k = info->keyMap + known_keys[i].keycode * GLYPHS_PER_KEY;
-
-            if    (k[0] == NoSymbol && k[1] == NoSymbol
-                && k[2] == NoSymbol && k[3] == NoSymbol)
-	      k[0] = known_keys[i].keysym;
-        }
+    
+    for (i = 0; i < sizeof (known_keys) / sizeof (known_keys[0]); i++) {
+        k = info->keyMap + known_keys[i].keycode * GLYPHS_PER_KEY;
+        
+        if (   k[0] == NoSymbol && k[1] == NoSymbol
+            && k[2] == NoSymbol && k[3] == NoSymbol)
+            k[0] = known_keys[i].keysym;
     }
-
+#endif
+    
+#if HACK_KEYPAD
     /* And some more things. We find the right symbols for the numeric
-       keypad, but not the KP_ keysyms. So try to convert known keycodes. */
-
-    if (HACK_KEYPAD) {
-        for (i = 0; i < sizeof (known_numeric_keys)
-                        / sizeof (known_numeric_keys[0]); i++) {
-            k = info->keyMap + known_numeric_keys[i].keycode * GLYPHS_PER_KEY;
-
-            if (k[0] == known_numeric_keys[i].normal)
-                k[0] = known_numeric_keys[i].keypad;
-        }
+     keypad, but not the KP_ keysyms. So try to convert known keycodes. */
+    for (i = 0; i < sizeof (known_numeric_keys) / sizeof (known_numeric_keys[0]); i++) {
+        k = info->keyMap + known_numeric_keys[i].keycode * GLYPHS_PER_KEY;
+        
+        if (k[0] == known_numeric_keys[i].normal)
+            k[0] = known_numeric_keys[i].keypad;
     }
+#endif
+    
+#if HACK_BLACKLIST
+    for (i = 0; i < sizeof (keycode_blacklist) / sizeof (keycode_blacklist[0]); i++) {
+        k = info->keyMap + keycode_blacklist[i] * GLYPHS_PER_KEY;
+        k[0] = k[1] = k[2] = k[3] = NoSymbol;
+    }
+#endif
 
     DarwinBuildModifierMaps(info);
 
commit 11afa5e56e9561d214b0a4c13ed60bc2d106fbbb
Author: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
Date:   Wed Feb 24 15:17:42 2010 -0600

    Cygwin/X: Add configure option for WindowsWM
    
    WindowsWM support is still experimental, and uses the Rootless extension
    which currently breaks the simultaneous build of the other DDXs (see
    commit b3415187e92960cbff784108b5a3a8d130dc34c5).  So we disable it by
    default for now; once the latter issue is fixed we can make this 'auto'.
    
    Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
    (cherry picked from commit c983f40fe4f30311f31a9df699cdc888709251d0)

diff --git a/configure.ac b/configure.ac
index f4a7b34..4c1034f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -644,6 +644,7 @@ AC_ARG_ENABLE(xaa,               AS_HELP_STRING([--enable-xaa], [Build XAA (defa
 AC_ARG_ENABLE(vgahw,          AS_HELP_STRING([--enable-vgahw], [Build Xorg with vga access (default: enabled)]), [VGAHW=$enableval], [VGAHW=yes])
 AC_ARG_ENABLE(vbe,            AS_HELP_STRING([--enable-vbe], [Build Xorg with VBE module (default: enabled)]), [VBE=$enableval], [VBE=yes])
 AC_ARG_ENABLE(int10-module,     AS_HELP_STRING([--enable-int10-module], [Build Xorg with int10 module (default: enabled)]), [INT10MODULE=$enableval], [INT10MODULE=yes])
+AC_ARG_ENABLE(windowswm,      AS_HELP_STRING([--enable-windowswm], [Build XWin with WindowsWM extension (default: no)]), [WINDOWSWM=$enableval], [WINDOWSWM=no])
 
 dnl DDXes.
 AC_ARG_ENABLE(xorg,    	      AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
@@ -1845,26 +1846,30 @@ fi
 AC_MSG_RESULT([$XWIN])
 
 if test "x$XWIN" = xyes; then
-	PKG_CHECK_EXISTS($WINDOWSWMPROTO, [WINDOWSWM=yes], [WINDOWSWM=no])
 	AC_DEFINE_DIR(SYSCONFDIR, sysconfdir, [Location of system.XWinrc])
 	AC_DEFINE_DIR(DEFAULT_LOGDIR, logdir, [Default log location])
 	AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
 	AC_DEFINE_UNQUOTED(__VENDORDWEBSUPPORT__, ["$VENDOR_WEB"], [Vendor web address for support])
 	AC_CHECK_TOOL(WINDRES, windres)
+
+	PKG_CHECK_MODULES([XWINMODULES],[x11 xdmcp xau xfont])
+
+	if test "x$WINDOWSWM" = xauto; then
+		PKG_CHECK_EXISTS($WINDOWSWMPROTO, [WINDOWSWM=yes], [WINDOWSWM=no])
+	fi
+	if test "x$WINDOWSWM" = xyes ; then
+		PKG_CHECK_MODULES(WINDOWSWM, $WINDOWSWMPROTO)
+		XWINMODULES_CFLAGS="$XWINMODULES_CFLAGS $WINDOWSWM_CFLAGS"
+		AC_DEFINE(ROOTLESS,1,[Build Rootless code])
+	fi
+
 	case $host_os in
 		cygwin*)
 			XWIN_SERVER_NAME=XWin
-			PKG_CHECK_MODULES([XWINMODULES],[x11 xdmcp xau xfont])
 			AC_DEFINE(HAS_DEVWINDOWS,1,[Cygwin has /dev/windows for signaling new win32 messages])
-
-			dnl if we have windowswmproto, build rootless extension for multwindowextwm mode
-			if test "x$WINDOWSWM" = xyes ; then
-			       AC_DEFINE(ROOTLESS,1,[Build Rootless code])
-			fi
 			;;
 		mingw*)
 			XWIN_SERVER_NAME=Xming
-			PKG_CHECK_MODULES([XWINMODULES],[x11 xdmcp xau xfont])
 			AC_DEFINE(RELOCATE_PROJECTROOT,1,[Make PROJECT_ROOT relative to the xserver location])
 			AC_DEFINE(HAS_WINSOCK,1,[Use Windows sockets])
 			XWIN_SYS_LIBS=-lwinsock2
commit 76e548d09195de750a532ee568171b931c1216fe
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Thu Feb 18 14:19:21 2010 -0600

    Don't enable ROOTLESS_WORKAROUND, it breaks composite
    
    This possibly brings back whatever the bug is in
    http://bugs.freedesktop.org/show_bug.cgi?id=1168 for
    -rootless mode, but since we don't have reproduction
    steps for that, I can't test that...
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Tested-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
    Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
    (cherry picked from commit 20701522be803fe47e921fcf059dadf64c7f287d)

diff --git a/configure.ac b/configure.ac
index 3176790..f4a7b34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1860,7 +1860,6 @@ if test "x$XWIN" = xyes; then
 			dnl if we have windowswmproto, build rootless extension for multwindowextwm mode
 			if test "x$WINDOWSWM" = xyes ; then
 			       AC_DEFINE(ROOTLESS,1,[Build Rootless code])
-			       CFLAGS="$CFLAGS -DROOTLESS_WORKAROUND"
 			fi
 			;;
 		mingw*)
commit 4f2489bdf36ac4d6a340e2a327798a1da394573a
Author: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
Date:   Wed Mar 24 00:08:23 2010 -0500

    Cygwin/X: Disable unsupported extensions in configure
    
    Several extensions are not supported by XWin, some of which are enabled
    by default in configure.  We forcefully disable these early on so that
    configure will succeed without arguments and without the corresponding
    proto installed.
    
    Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
    (cherry picked from commit 95c9947f6244d37592958b70760bd1ac885b625a)

diff --git a/configure.ac b/configure.ac
index 1e65c51..3176790 100644
--- a/configure.ac
+++ b/configure.ac
@@ -724,8 +724,16 @@ XORG_CHECK_LINUXDOC
 dnl Handle installing libxf86config
 AM_CONDITIONAL(INSTALL_LIBXF86CONFIG, [test "x$INSTALL_LIBXF86CONFIG" = xyes])
 
-dnl XQuartz DDX Detection... Yes, it's ugly to have it here... but we need to handle this early on
+dnl DDX Detection... Yes, it's ugly to have it here... but we need to
+dnl handle this early on so that we don't require unsupported extensions
 case $host_os in
+	cygwin*)
+		DGA=no
+		DRI2=no
+		XF86VIDMODE=no
+		XSELINUX=no
+		XV=no
+		;;
 	darwin*)
 		DRI2=no
 
@@ -1877,10 +1885,6 @@ if test "x$XWIN" = xyes; then
 
 	AC_DEFINE(DDXOSVERRORF, 1, [Use OsVendorVErrorF])
 	AC_DEFINE(DDXBEFORERESET, 1, [Use ddxBeforeReset ])
-	if test "x$XF86VIDMODE" = xyes; then
-		AC_MSG_NOTICE([Disabling XF86VidMode extension])
-		XF86VIDMODE=no
-	fi
 fi
 AM_CONDITIONAL(XWIN, [test "x$XWIN" = xyes])
 AM_CONDITIONAL(XWIN_MULTIWINDOW, [test "x$XWIN" = xyes])
commit f121ce4d22ff23f16cc374c9a125d3815765bb0c
Author: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
Date:   Mon Mar 22 12:47:52 2010 -0500

    Disable setuid configure test on Cygwin
    
    Only Xorg is installed setuid, so there is no need to run this configure
    test on Cygwin.
    
    Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
    (cherry picked from commit 24c9d48cd6999f1e90f9f0e2bbfebd8e95d314d8)

diff --git a/configure.ac b/configure.ac
index 48cb724..1e65c51 100644
--- a/configure.ac
+++ b/configure.ac
@@ -673,6 +673,7 @@ AC_ARG_ENABLE(install-setuid,
 AC_MSG_CHECKING([to see if we can install the Xorg server as root])
 if test "x$SETUID" = "xauto" ; then
 	case $host_os in
+	    cygwin*)		SETUID="no"  ;;
 	    darwin*)		SETUID="no"  ;;
 	    *)
 	   	case $host_cpu in
commit b12f6142f356a72af64665e753c5a4e61b2a6ec1
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu Apr 8 13:47:26 2010 +1000

    xfree86: remove dead input drivers from xorg.conf man page.
    
    These drivers have been deactivated for over a year now, let's not refer
    potential users to them.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 03ccbd2579948d11e5f16f88cdf68a55f57c9d26)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 4782d61..f7ff6f6 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -2405,25 +2405,16 @@ Display drivers:
 .PP
 Input drivers:
 .BR acecad (__drivermansuffix__),
-.BR calcomp (__drivermansuffix__),
 .BR citron (__drivermansuffix__),
-.BR dmc (__drivermansuffix__),
-.BR dynapro (__drivermansuffix__),
 .BR elographics (__drivermansuffix__),
 .BR evdev (__drivermansuffix__),
 .BR fpit (__drivermansuffix__),
-.BR js_x (__drivermansuffix__),
 .BR joystick (__drivermansuffix__),
 .BR kbd (__drivermansuffix__),
-.BR magictouch (__drivermansuffix__),
-.BR microtouch (__drivermansuffix__),
 .BR mousedrv (__drivermansuffix__),
 .BR mutouch (__drivermansuffix__),
-.BR palmax (__drivermansuffix__),
 .BR penmount (__drivermansuffix__),
 .BR synaptics (__drivermansuffix__),
-.BR tek4957 (__drivermansuffix__),
-.BR ur98 (__drivermansuffix__),
 .BR vmmouse (__drivermansuffix__),
 .BR void (__drivermansuffix__),
 .BR wacom (__drivermansuffix__).
commit 3e2ab9139b12b1239eebcbb6c6a23e7284dd7b44
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Sat Apr 3 09:33:51 2010 -0700

    Move 10-evdev.conf to system config dir $datadir/X11/xorg.conf.d
    
    Since the server searches in a vendor specific path now, we can install
    the evdev catchall there without disturbing local administration files.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit d4dd3d0085f8eaca8c989aaeace1a1a24c5ebf49)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/Makefile.am b/config/Makefile.am
index eed7454..675a3b2 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -9,7 +9,7 @@ AM_CFLAGS += $(UDEV_CFLAGS)
 libconfig_la_SOURCES += udev.c
 libconfig_la_LIBADD = $(UDEV_LIBS)
 
-xorgconfddir = $(prefix)/etc/X11/$(XF86CONFIGDIR)
+xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR)
 xorgconfd_DATA = 10-evdev.conf
 
 else
commit 59f96734633fce3c2bee62bce860aed33033ce3e
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Sat Apr 3 10:08:25 2010 -0700

    xfree86: Search for a system xorg.conf.d
    
    In addition to the conf files found in /etc/X11 or $sysconfdir/X11 used
    for local administration, we also reserve a system directory for vendor
    and package usage. The simple search path is:
    
    	/usr/share/X11/xorg.conf.d
    	$datadir/X11/xorg.conf.d
    
    Files from these directories will have the lowest config priority. The
    directory $datadir/X11/xorg.conf.d is exported from xorg-server.pc in
    the variable "sysconfigdir". Packages should install their .conf files
    to the directory specified by:
    
    	`pkg-config --variable=sysconfigdir xorg-server`
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 95f01bdfee8241371675f0089170fa6b2908d815)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/configure.ac b/configure.ac
index a76eda3..48cb724 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1792,8 +1792,10 @@ if test "x$XORG" = xyes; then
 	AC_SUBST([driverdir])
 	sdkdir="$includedir/xorg"
 	extdir="$includedir/X11/extensions"
+	sysconfigdir="$datadir/X11/$XF86CONFIGDIR"
 	AC_SUBST([sdkdir])
 	AC_SUBST([extdir])
+	AC_SUBST([sysconfigdir])
 	AC_SUBST([logdir])
 
 	# stuff the ABI versions into the pc file too
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index d02c22a..1e9543f 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -104,6 +104,9 @@ extern DeviceAssocRec mouse_assoc;
 #define USER_CONFIGDIRPATH	"/etc/X11/%R," "%C/X11/%R," \
 				"/etc/X11/%X," "%C/X11/%X"
 #endif
+#ifndef SYS_CONFIGDIRPATH
+#define SYS_CONFIGDIRPATH	"/usr/share/X11/%X," "%D/X11/%X"
+#endif
 #ifndef PROJECTROOT
 #define PROJECTROOT	"/usr/X11R6"
 #endif
@@ -2421,7 +2424,7 @@ checkInput(serverLayoutPtr layout, Bool implicit_layout) {
 ConfigStatus
 xf86HandleConfigFile(Bool autoconfig)
 {
-    const char *filename, *dirname;
+    const char *filename, *dirname, *sysdirname;
     char *filesearch, *dirsearch;
     MessageType filefrom = X_DEFAULT;
     MessageType dirfrom = X_DEFAULT;
@@ -2444,6 +2447,8 @@ xf86HandleConfigFile(Bool autoconfig)
 	    dirfrom = X_CMDLINE;
 
 	xf86initConfigFiles();
+	sysdirname = xf86openConfigDirFiles(SYS_CONFIGDIRPATH, NULL,
+					    PROJECTROOT);
 	dirname = xf86openConfigDirFiles(dirsearch, xf86ConfigDir, PROJECTROOT);
 	filename = xf86openConfigFile(filesearch, xf86ConfigFile, PROJECTROOT);
 	if (filename) {
@@ -2464,7 +2469,10 @@ xf86HandleConfigFile(Bool autoconfig)
 			"Unable to locate/open config directory: \"%s\"\n",
 			xf86ConfigDir);
 	}
-	if (!filename && !dirname)
+	if (sysdirname)
+	    xf86MsgVerb(X_DEFAULT, 0, "Using system config directory \"%s\"\n",
+			sysdirname);
+	if (!filename && !dirname && !sysdirname)
 	    return CONFIG_NOFILE;
     }
 
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index acfa1ca..4782d61 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -138,6 +138,18 @@ is the path specified with the
 .B \-configdir
 command line option (which may be absolute or relative).
 .PP
+Finally, configuration files will also be searched for in directories
+reserved for system use. These are to separate configuration files from
+the vendor or 3rd party packages from those of local administration.
+These files are found in the following directories:
+.PP
+.RS 4
+.nf
+.I /usr/share/X11/__xconfigdir__
+.I __datadir__/X11/__xconfigdir__
+.fi
+.RE
+.PP
 The
 .I __xconfigfile__
 and
diff --git a/xorg-server.pc.in b/xorg-server.pc.in
index 3d58dab..376cb93 100644
--- a/xorg-server.pc.in
+++ b/xorg-server.pc.in
@@ -2,8 +2,10 @@ prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
 includedir=@includedir@
+datarootdir=@datarootdir@
 moduledir=@moduledir@
 sdkdir=@sdkdir@
+sysconfigdir=@sysconfigdir@
 
 abi_ansic=@abi_ansic@
 abi_videodrv=@abi_videodrv@
commit 0c4a358eae0e77f389380bbbf39d4419f2dd6dcd
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Sat Apr 3 09:33:49 2010 -0700

    xfree86: Set a saner search path for xorg.conf.d
    
    There's no reason to carry all the oddities from xorg.conf like appended
    hostname to the search path for xorg.conf.d. This changes it to something
    very simple:
    
    	/etc/X11/<cmdline>
    	$sysconfdir/X11/<cmdline>
    	/etc/X11/xorg.conf.d
    	$sysconfdir/X11/xorg.conf.d
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit a1bae63dc634a5a79861eab128c63506081f7ed9)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/cpprules.in b/cpprules.in
index 301305e..6e43578 100644
--- a/cpprules.in
+++ b/cpprules.in
@@ -34,6 +34,7 @@ MANDEFS = \
 	-D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \
 	-D__mandir__=$(mandir) \
 	-D__projectroot__=$(prefix) \
+	-D__sysconfdir__=$(sysconfdir) \
 	-D__datadir__=$(datadir) \
 	-D__xconfigfile__=$(__XCONFIGFILE__) \
 	-D__xconfigdir__=$(__XCONFIGDIR__) \
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 718a078..d02c22a 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -97,20 +97,12 @@ extern DeviceAssocRec mouse_assoc;
 #endif
 #ifndef ROOT_CONFIGDIRPATH
 #define ROOT_CONFIGDIRPATH	"%A," "%R," \
-				"/etc/X11/%R," "%P/etc/X11/%R," \
-				"/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
-				"%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
-				"%P/etc/X11/%X," \
-				"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
-				"%P/lib/X11/%X"
+				"/etc/X11/%R," "%C/X11/%R," \
+				"/etc/X11/%X," "%C/X11/%X"
 #endif
 #ifndef USER_CONFIGDIRPATH
-#define USER_CONFIGDIRPATH	"/etc/X11/%S," "%P/etc/X11/%S," \
-				"/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
-				"%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
-				"%P/etc/X11/%X," \
-				"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
-				"%P/lib/X11/%X"
+#define USER_CONFIGDIRPATH	"/etc/X11/%R," "%C/X11/%R," \
+				"/etc/X11/%X," "%C/X11/%X"
 #endif
 #ifndef PROJECTROOT
 #define PROJECTROOT	"/usr/X11R6"
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 9a40ce3..acfa1ca 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -107,16 +107,9 @@ directories when the server is started as a normal user:
 .RS 4
 .nf
 .IR /etc/X11/ <cmdline>
-.IR __projectroot__/etc/X11/ <cmdline>
-.I /etc/X11/__xconfigdir__\-4
+.IR __sysconfdir__/X11/ <cmdline>
 .I /etc/X11/__xconfigdir__
-.I /etc/__xconfigdir__
-.IR __projectroot__/etc/X11/__xconfigdir__. <hostname>
-.I __projectroot__/etc/X11/__xconfigdir__\-4
-.I __projectroot__/etc/X11/__xconfigdir__
-.IR __projectroot__/lib/X11/__xconfigdir__. <hostname>
-.I __projectroot__/lib/X11/__xconfigdir__\-4
-.I __projectroot__/lib/X11/__xconfigdir__
+.I __sysconfdir__/X11/__xconfigdir__
 .fi
 .RE
 .PP
@@ -133,16 +126,9 @@ config directory search locations are as follows:
 .nf
 <cmdline>
 .IR /etc/X11/ <cmdline>
-.IR __projectroot__/etc/X11/ <cmdline>
-.I /etc/X11/__xconfigdir__\-4
+.IR __sysconfdir__/X11/ <cmdline>
 .I /etc/X11/__xconfigdir__
-.I /etc/__xconfigdir__
-.IR __projectroot__/etc/X11/__xconfigdir__. <hostname>
-.I __projectroot__/etc/X11/__xconfigdir__\-4
-.I __projectroot__/etc/X11/__xconfigdir__
-.IR __projectroot__/lib/X11/__xconfigdir__. <hostname>
-.I __projectroot__/lib/X11/__xconfigdir__\-4
-.I __projectroot__/lib/X11/__xconfigdir__
+.I __sysconfdir__/X11/__xconfigdir__
 .fi
 .RE
 .PP
commit a4516965de447332794ee0afb9503c351fff6fe8
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Sat Apr 3 09:33:48 2010 -0700

    xfree86: Document how -configdir affects the xorg.conf.d search path
    
    Explain the "safe" path dance for -configdir, too.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 2ac33888a9a5766aaf88bc92a8bd1d489873524c)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 93c8ac4..9a40ce3 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -102,10 +102,12 @@ is the machine's hostname as reported by
 .BR gethostname (__libmansuffix__).
 .PP
 Additional configuration files are searched for in the following
-directories:
+directories when the server is started as a normal user:
 .PP
 .RS 4
 .nf
+.IR /etc/X11/ <cmdline>
+.IR __projectroot__/etc/X11/ <cmdline>
 .I /etc/X11/__xconfigdir__\-4
 .I /etc/X11/__xconfigdir__
 .I /etc/__xconfigdir__
@@ -118,6 +120,38 @@ directories:
 .fi
 .RE
 .PP
+where
+.I <cmdline>
+is a relative path (with no \(lq..\(rq components) specified with the
+.B \-configdir
+command line option.
+.PP
+When the __xservername__ server is started by the \(lqroot\(rq user, the
+config directory search locations are as follows:
+.PP
+.RS 4
+.nf
+<cmdline>
+.IR /etc/X11/ <cmdline>
+.IR __projectroot__/etc/X11/ <cmdline>
+.I /etc/X11/__xconfigdir__\-4
+.I /etc/X11/__xconfigdir__
+.I /etc/__xconfigdir__
+.IR __projectroot__/etc/X11/__xconfigdir__. <hostname>
+.I __projectroot__/etc/X11/__xconfigdir__\-4
+.I __projectroot__/etc/X11/__xconfigdir__
+.IR __projectroot__/lib/X11/__xconfigdir__. <hostname>
+.I __projectroot__/lib/X11/__xconfigdir__\-4
+.I __projectroot__/lib/X11/__xconfigdir__
+.fi
+.RE
+.PP
+where
+.I <cmdline>
+is the path specified with the
+.B \-configdir
+command line option (which may be absolute or relative).
+.PP
 The
 .I __xconfigfile__
 and
commit eb07b8606f9a1349baf8114bb36dc2712e5d3419
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Sat Apr 3 09:33:47 2010 -0700

    xfree86: Allow adding sysconfdir and datadir to config search paths
    
    We could just use $projectroot/etc and $projectroot/share, but the user
    might have other plans for them.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 2460e921d18fd264e6f6374be0908f4100442650)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
index 49c191f..caf7079 100644
--- a/hw/xfree86/parser/Makefile.am
+++ b/hw/xfree86/parser/Makefile.am
@@ -34,7 +34,9 @@ libxf86config_a_SOURCES = \
 	$(INTERNAL_SOURCES)
 libxf86config_a_CFLAGS = $(AM_CFLAGS)
 
-AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) \
+	-DSYSCONFDIR=\"$(sysconfdir)\" \
+	-DDATADIR=\"$(datadir)\"
 
 EXTRA_DIST = \
 	Configint.h \
diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index cdca9ca..8aab0cf 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -599,6 +599,8 @@ xf86pathIsSafe(const char *path)
  *    %F    config file environment ($XORGCONFIG) as a relative path
  *    %G    config file environment ($XORGCONFIG) as a safe path
  *    %P    projroot
+ *    %C    sysconfdir
+ *    %D    datadir
  *    %M    major version number
  *    %%    %
  */
@@ -615,6 +617,12 @@ xf86pathIsSafe(const char *path)
 #ifndef PROJECTROOT
 #define PROJECTROOT	"/usr/X11R6"
 #endif
+#ifndef SYSCONFDIR
+#define SYSCONFDIR	PROJECTROOT "/etc"
+#endif
+#ifndef DATADIR
+#define DATADIR		PROJECTROOT "/share"
+#endif
 #ifndef XCONFENV
 #define XCONFENV	"XORGCONFIG"
 #endif
@@ -755,6 +763,12 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
 				else
 					BAIL_OUT;
 				break;
+			case 'C':
+				APPEND_STR(SYSCONFDIR);
+				break;
+			case 'D':
+				APPEND_STR(DATADIR);
+				break;
 			case 'M':
 				if (!majorvers[0]) {
 					if (XF86_VERSION_MAJOR < 0 || XF86_VERSION_MAJOR > 99) {
commit ad6c5e450cacee3777e7c541d4841ee580339a5d
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Apr 7 10:04:38 2010 +1000

    config: only match sane devices in 10-evdev.conf
    
    Having a generic catchall also adds devices like accelerometers. These
    devices make X unusable, hence restrict matching to "known sane" devices
    like pointers, touchpads, keyboards, tablets and touchscreens.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Acked-by: Julien Cristau <jcristau at debian.org>
    Acked-by: Dan Nicholson <dbn.lists at gmail.com>
    Acked-by: James Cloos <cloos at jhcloos.com>
    (cherry picked from commit c8a608cb6ce8f9c86258c1ab49084f691fa9cc51)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/10-evdev.conf b/config/10-evdev.conf
index 7406f4e..cc83ab2 100644
--- a/config/10-evdev.conf
+++ b/config/10-evdev.conf
@@ -1,8 +1,40 @@
 #
 # Catch-all evdev loader for udev-based systems
-#
+# We don't simply match on any device since that also adds accelerometers
+# and other devices that we don't really want to use. The list below
+# matches everything but joysticks.
+
 Section "InputClass"
-        Identifier "evdev-catchall"
+        Identifier "evdev pointer catchall"
+        MatchIsPointer "on"
+        MatchDevicePath "/dev/input/event*"
         Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev keyboard catchall"
+        MatchIsKeyboard "on"
         MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev touchpad catchall"
+        MatchIsTouchpad "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev tablet catchall"
+        MatchIsTablet "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev touchscreen catchall"
+        MatchIsTouchscreen "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
 EndSection
commit c01250576ffadcd6c4591978b78da878d91ec11c
Author: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
Date:   Fri Apr 2 12:48:21 2010 -0700

    Don't keep a pointer to a possibly freed cursor when changing screens, preventing a crash in xf86CursorEnableDisableFBAccess() trying to restore it.
    
    Signed-off-by: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 6b09f66d8c6ebcee70382b5cca1ba82b68f20afa)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c
index 7f23d9e..f5f0873 100644
--- a/hw/xfree86/ramdac/xf86Cursor.c
+++ b/hw/xfree86/ramdac/xf86Cursor.c
@@ -312,6 +312,7 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs,
             xf86SetCursor(pScreen, NullCursor, x, y);
             ScreenPriv->isUp = FALSE;
         }
+        ScreenPriv->CurrentCursor = NullCursor;
         return;
     }
 
commit 50ddc4af59f41a1c96088c1e22a4917b21aaf098
Author: Gaetan Nadon <memsize at videotron.ca>
Date:   Mon Apr 5 19:12:22 2010 -0400

    doc: specify 1.6.1 as the minimum version for doxygen.
    
    Older versions generate filenames that are different from
    the ones listed in the Makefile.
    
    Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
    Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit 6150595bdbacde13bb4f9aba81b15435089bee94)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/configure.ac b/configure.ac
index 591d2b4..a76eda3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -34,10 +34,10 @@ AM_MAINTAINER_MODE
 
 # Require xorg-macros: XORG_DEFAULT_OPTIONS
 m4_ifndef([XORG_MACROS_VERSION],
-          [m4_fatal([must install xorg-macros 1.5 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.5)
+          [m4_fatal([must install xorg-macros 1.6 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.6)
 XORG_DEFAULT_OPTIONS
-XORG_WITH_DOXYGEN
+XORG_WITH_DOXYGEN(1.6.1)
 
 m4_ifndef([XORG_FONT_MACROS_VERSION], [m4_fatal([must install fontutil 1.1 or later before running autoconf/autogen])])
 XORG_FONT_MACROS_VERSION(1.1)
commit a68b0e27b6c60921c97f61daa2d9d723e0a5d98f
Author: Paulo Ricardo Zanoni <pzanoni at mandriva.com>
Date:   Thu Mar 11 14:28:18 2010 -0300

    dix: be more verbose when we run out of opcodes
    
    If we run out of opcodes, nothing is print on the log, making the
    problem hard to debug. In the current Xserver, if you enable some
    extensions like multibuffer (+2 events) and use nvidia binary driver (+5
    events) you can run out of opcode numbers.
    
    Signed-off-by: Paulo Ricardo Zanoni <pzanoni at mandriva.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Julien Cristau <jcristau at debian.org>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit a9fe7cfa77ccee64d68732dc3f37d35cbfc27a65)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/dix/extension.c b/dix/extension.c
index fb83af1..f348665 100644
--- a/dix/extension.c
+++ b/dix/extension.c
@@ -83,8 +83,11 @@ AddExtension(char *name, int NumEvents, int NumErrors,
     if (!MainProc || !SwappedMainProc || !MinorOpcodeProc)
         return((ExtensionEntry *) NULL);
     if ((lastEvent + NumEvents > LAST_EVENT) || 
-	        (unsigned)(lastError + NumErrors > LAST_ERROR))
+	        (unsigned)(lastError + NumErrors > LAST_ERROR)) {
+        LogMessage(X_ERROR, "Not enabling extension %s: maximum number of "
+                   "events or errors exceeded.\n", name);
         return((ExtensionEntry *) NULL);
+    }
 
     ext = xalloc(sizeof(ExtensionEntry));
     if (!ext)
commit 5201d3c230e52c9d1ba90ab1712307541e024a6b
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date:   Thu Apr 8 14:01:21 2010 -0700

    Convert x86emu fixed size int typedefs to use stdint types
    
    Fixes x86emu builds when using non-gnu compilers now that u64 is required
    
    Before this fix, the u64 type would not be defined, causing
    x86emu/sys.c to fail to build:
    "sys.c", line 102: syntax error before or at: ldq_u
    "sys.c", line 102: syntax error before or at: *
    
    Since Keith requested using <stdint.h>, converted all the x86emu
    typedefs to use the stdint types.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
    Acked-by: Matt Turner <mattst88 at gmail.com>
    Acked-by: Tiago Vignatti <tiago.vignatti at nokia.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit 82cf3a4ae01811917f7903d6f62ba9b7132adf7e)
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/x86emu/x86emu/types.h b/hw/xfree86/x86emu/x86emu/types.h
index c18e11c..fa23800 100644
--- a/hw/xfree86/x86emu/x86emu/types.h
+++ b/hw/xfree86/x86emu/x86emu/types.h
@@ -61,45 +61,21 @@
 
 /*---------------------- Macros and type definitions ----------------------*/
 
-/* Currently only for Linux/32bit */
-#undef  __HAS_LONG_LONG__
-#if defined(__GNUC__) && !defined(NO_LONG_LONG)
-#define __HAS_LONG_LONG__
-#endif
-
-/* Taken from Xmd.h */
-#undef NUM32
-#if defined (_LP64) || \
-    defined(__alpha) || defined(__alpha__) || \
-    defined(__ia64__) || defined(ia64) || \
-    defined(__sparc64__) || \
-    defined(__s390x__) || \
-    defined(__hppa__) && defined(__LP64) || \
-    defined(__amd64__) || defined(amd64) 
-#define NUM32 int
-#else
-#define NUM32 long
-#endif
+#include <stdint.h>
 
-typedef unsigned char 		u8;
-typedef unsigned short 		u16;
-typedef unsigned NUM32 		u32;
-#ifdef __HAS_LONG_LONG__
-typedef unsigned long long 	u64;
-#endif
+typedef uint8_t				u8;
+typedef uint16_t			u16;
+typedef uint32_t			u32;
+typedef uint64_t	 		u64;
 
-typedef char 				s8;
-typedef short 				s16;
-typedef NUM32 				s32;
-#ifdef __HAS_LONG_LONG__
-typedef long long 			s64;
-#endif
+typedef int8_t 				s8;
+typedef int16_t				s16;
+typedef int32_t				s32;
+typedef int64_t				s64;
 
 typedef unsigned int			uint;
 typedef int 				sint;
 
 typedef u16 X86EMU_pioAddr;
 
-#undef NUM32
-
 #endif	/* __X86EMU_TYPES_H */


More information about the Xquartz-changes mailing list