[65658] trunk/dports/x11/xorg-server-devel

jeremyhu at macports.org jeremyhu at macports.org
Mon Mar 29 18:07:07 PDT 2010


Revision: 65658
          http://trac.macports.org/changeset/65658
Author:   jeremyhu at macports.org
Date:     2010-03-29 18:07:06 -0700 (Mon, 29 Mar 2010)
Log Message:
-----------
xorg-server-devel: Bump to the latest server bits with patches that match the DDX with XQuartz-2.5.0

Modified Paths:
--------------
    trunk/dports/x11/xorg-server-devel/Portfile

Added Paths:
-----------
    trunk/dports/x11/xorg-server-devel/files/0001-Revert-XQuartz-Explicitly-pass-a-bellProc-to-make-XB.patch
    trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch
    trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Minor-cleanup.patch
    trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch
    trunk/dports/x11/xorg-server-devel/files/0005-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch
    trunk/dports/x11/xorg-server-devel/files/0006-XQuartz-Constrain-the-pointer-to-the-updated-display.patch
    trunk/dports/x11/xorg-server-devel/files/0007-Cygwin-X-Fix-make-dist-after-11252ed82e1f361b99e8652.patch
    trunk/dports/x11/xorg-server-devel/files/0008-Cygwin-X-Fix-windres-rule-for-automake-silent-rules.patch
    trunk/dports/x11/xorg-server-devel/files/0009-Rename-xdmx-client-to-dmxinfo.patch
    trunk/dports/x11/xorg-server-devel/files/0010-Use-libtool-export-dynamic-flag-for-portability.patch
    trunk/dports/x11/xorg-server-devel/files/0011-kdrive-Use-MAKE-in-relink-rules.patch
    trunk/dports/x11/xorg-server-devel/files/0012-Use-EXEEXT-in-relink-rules-for-portable-DDXs.patch
    trunk/dports/x11/xorg-server-devel/files/0013-Fix-relink-targets-for-silent-rules.patch
    trunk/dports/x11/xorg-server-devel/files/0014-Respect-value-of-SED-from-configure.patch
    trunk/dports/x11/xorg-server-devel/files/0015-Fix-.man.N-targets-for-AM_SILENT_RULES.patch
    trunk/dports/x11/xorg-server-devel/files/0016-Catch-errors-in-recursive-relink-targets.patch
    trunk/dports/x11/xorg-server-devel/files/0017-mi-remove-deprecated-include-X11-extensions-xf86bigf.patch
    trunk/dports/x11/xorg-server-devel/files/0018-Xext-fix-old-style-function-definitions-in-xf86bigfo.patch
    trunk/dports/x11/xorg-server-devel/files/0019-New-header-for-XF86Bigfont-server-functions.patch
    trunk/dports/x11/xorg-server-devel/files/0020-Cygwin-X-Make-X-XWin-symlink-during-install.patch
    trunk/dports/x11/xorg-server-devel/files/0021-Xext-Fix-cursor-reference-counting-hazard.patch
    trunk/dports/x11/xorg-server-devel/files/0022-Fix-typos-in-the-swap-functions.patch
    trunk/dports/x11/xorg-server-devel/files/0023-configure-Always-define-XINPUT.patch
    trunk/dports/x11/xorg-server-devel/files/0024-xfree86-remove-if-1-from-the-dawn-of-time.patch
    trunk/dports/x11/xorg-server-devel/files/0025-XKB-Fix-garbage-initialization.patch
    trunk/dports/x11/xorg-server-devel/files/0026-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch
    trunk/dports/x11/xorg-server-devel/files/0027-kdrive-Bump-evdev-maxKeycode.patch
    trunk/dports/x11/xorg-server-devel/files/0028-os-Prevent-backtrace-from-being-stopped-in-noreturn-.patch
    trunk/dports/x11/xorg-server-devel/files/0029-xfree86-merge-driver-from-the-input-class-into-the-o.patch
    trunk/dports/x11/xorg-server-devel/files/0030-Cleanup-some-comments-in-SpriteRec.patch
    trunk/dports/x11/xorg-server-devel/files/0031-config-udev-Prefer-product-name-from-attribute-rathe.patch
    trunk/dports/x11/xorg-server-devel/files/0032-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch
    trunk/dports/x11/xorg-server-devel/files/0033-GLX-Remove-a-redundant-initialization.patch
    trunk/dports/x11/xorg-server-devel/files/0034-darwin-Generate-crash-reports-on-FatalError.patch
    trunk/dports/x11/xorg-server-devel/files/0035-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch
    trunk/dports/x11/xorg-server-devel/files/0036-fb-Revert-fb-changes-that-broke-XQuartz.patch
    trunk/dports/x11/xorg-server-devel/files/0037-OS-Add-some-noreturn-and-printflike-compiler-attribu.patch

Removed Paths:
-------------
    trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-clang-static-analysis-fixes.patch
    trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Fix-a-possible-buffer-overrun-in-quartzAudio.patch
    trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-Use-an-empty-xkb-keymap-by-default.patch
    trunk/dports/x11/xorg-server-devel/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch
    trunk/dports/x11/xorg-server-devel/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch

Modified: trunk/dports/x11/xorg-server-devel/Portfile
===================================================================
--- trunk/dports/x11/xorg-server-devel/Portfile	2010-03-30 01:03:11 UTC (rev 65657)
+++ trunk/dports/x11/xorg-server-devel/Portfile	2010-03-30 01:07:06 UTC (rev 65658)
@@ -4,8 +4,7 @@
 
 name		xorg-server-devel
 set my_name	xorg-server
-version		1.7.99.901
-revision        1
+version		1.7.99.902
 categories	x11 devel
 maintainers	jeremyhu openmaintainer
 description	The X.org / Xquartz X server.
@@ -19,9 +18,9 @@
 dist_subdir     ${my_name}
 distname        ${my_name}-${version}
 
-checksums           md5     9717fea6a0b6e84fdaf4cd2bdb74bdf9 \
-                    sha1    3c315defe501d4015829b3e536cdb6d196056ce8 \
-                    rmd160  5183de86bedd69303dd5c718e5d78e402604851e
+checksums           md5     0f4d818bad13bb643caa93964f369249 \
+                    sha1    649a77186df9d278d4d31e89dd02e48ca08d41c3 \
+                    rmd160  d3826c08fdef112e5212a998dcbd30455255bd05
 
 use_bzip2	yes
 use_parallel_build yes
@@ -76,11 +75,43 @@
 configure.cppflags-append -I/usr/include -I${filespath}/dri
 
 patchfiles \
-        0002-XQuartz-clang-static-analysis-fixes.patch \
-        0003-XQuartz-Fix-a-possible-buffer-overrun-in-quartzAudio.patch \
-        0004-XQuartz-Use-an-empty-xkb-keymap-by-default.patch \
-        0005-fb-Revert-fb-changes-that-broke-XQuartz.patch \
-        0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
+        0001-Revert-XQuartz-Explicitly-pass-a-bellProc-to-make-XB.patch \
+        0002-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch \
+        0003-XQuartz-Minor-cleanup.patch \
+        0004-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch \
+        0005-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch \
+        0006-XQuartz-Constrain-the-pointer-to-the-updated-display.patch \
+        0007-Cygwin-X-Fix-make-dist-after-11252ed82e1f361b99e8652.patch \
+        0008-Cygwin-X-Fix-windres-rule-for-automake-silent-rules.patch \
+        0009-Rename-xdmx-client-to-dmxinfo.patch \
+        0010-Use-libtool-export-dynamic-flag-for-portability.patch \
+        0011-kdrive-Use-MAKE-in-relink-rules.patch \
+        0012-Use-EXEEXT-in-relink-rules-for-portable-DDXs.patch \
+        0013-Fix-relink-targets-for-silent-rules.patch \
+        0014-Respect-value-of-SED-from-configure.patch \
+        0015-Fix-.man.N-targets-for-AM_SILENT_RULES.patch \
+        0016-Catch-errors-in-recursive-relink-targets.patch \
+        0017-mi-remove-deprecated-include-X11-extensions-xf86bigf.patch \
+        0018-Xext-fix-old-style-function-definitions-in-xf86bigfo.patch \
+        0019-New-header-for-XF86Bigfont-server-functions.patch \
+        0020-Cygwin-X-Make-X-XWin-symlink-during-install.patch \
+        0021-Xext-Fix-cursor-reference-counting-hazard.patch \
+        0022-Fix-typos-in-the-swap-functions.patch \
+        0023-configure-Always-define-XINPUT.patch \
+        0024-xfree86-remove-if-1-from-the-dawn-of-time.patch \
+        0025-XKB-Fix-garbage-initialization.patch \
+        0026-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch \
+        0027-kdrive-Bump-evdev-maxKeycode.patch \
+        0028-os-Prevent-backtrace-from-being-stopped-in-noreturn-.patch \
+        0029-xfree86-merge-driver-from-the-input-class-into-the-o.patch \
+        0030-Cleanup-some-comments-in-SpriteRec.patch \
+        0031-config-udev-Prefer-product-name-from-attribute-rathe.patch \
+        0032-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch \
+        0033-GLX-Remove-a-redundant-initialization.patch \
+        0034-darwin-Generate-crash-reports-on-FatalError.patch \
+        0035-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch \
+        0036-fb-Revert-fb-changes-that-broke-XQuartz.patch \
+        0037-OS-Add-some-noreturn-and-printflike-compiler-attribu.patch
 
 patch.args -p1
 

Added: trunk/dports/x11/xorg-server-devel/files/0001-Revert-XQuartz-Explicitly-pass-a-bellProc-to-make-XB.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0001-Revert-XQuartz-Explicitly-pass-a-bellProc-to-make-XB.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0001-Revert-XQuartz-Explicitly-pass-a-bellProc-to-make-XB.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,45 @@
+From eac7cdabecafb7c505795207182ab2578d672c06 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Tue, 16 Mar 2010 11:29:08 -0700
+Subject: [PATCH 01/37] Revert "XQuartz: Explicitly pass a bellProc to make XBell() work again."
+
+I'm not quite sure why this was necessary, but DDXRingBell is being called
+from CoreKeyboardBell, so we don't need a separate bellProc which would
+result in multiple rings.
+
+This reverts commit 9071b0d69748cfa7ecca17b4cb0e431bbb0ef2a4.
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+---
+ hw/xquartz/quartzKeyboard.c |    8 +-------
+ 1 files changed, 1 insertions(+), 7 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c
+index 7e36a9a..c9ef7cc 100644
+--- xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c
++++ xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c
+@@ -184,12 +184,6 @@ static void DarwinChangeKeyboardControl(DeviceIntPtr device, KeybdCtrl *ctrl) {
+     // keyclick, bell volume / pitch, autorepead, LED's
+ }
+ 
+-static void DarwinKeyboardBell(int volume, DeviceIntPtr pDev, pointer arg, int something) {
+-    KeybdCtrl *ctrl = arg;
+-
+-    DDXRingBell(volume, ctrl->bell_pitch, ctrl->bell_duration);
+-}
+-
+ //-----------------------------------------------------------------------------
+ // Utility functions to help parse Darwin keymap
+ //-----------------------------------------------------------------------------
+@@ -301,7 +295,7 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
+     // for a kIOHIDParamConnectType connection.
+     assert(darwinParamConnect = NXOpenEventStatus());
+ 
+-    InitKeyboardDeviceStruct(pDev, NULL, DarwinKeyboardBell, DarwinChangeKeyboardControl);
++    InitKeyboardDeviceStruct(pDev, NULL, NULL, DarwinChangeKeyboardControl);
+ 
+     DarwinKeyboardReloadHandler();
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-GLX-Fix-Availability-for-Tiger-ppc-workaroun.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,26 @@
+From bb75d0df8b5238bfe8b011bb5737fae2a3584290 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Fri, 19 Mar 2010 15:26:50 -0700
+Subject: [PATCH 02/37] XQuartz: GLX: Fix Availability for Tiger ppc workaround
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+---
+ hw/xquartz/GL/indirect.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/GL/indirect.c xorg-server-1.7.99.902/hw/xquartz/GL/indirect.c
+index c092c1d..f2af3ff 100644
+--- xorg-server-1.7.99.902/hw/xquartz/GL/indirect.c
++++ xorg-server-1.7.99.902/hw/xquartz/GL/indirect.c
+@@ -120,7 +120,7 @@
+ /* Tiger PPC doesn't have the associated symbols, but glext.h says it does.  Liars!
+  * http://trac.macports.org/ticket/20638
+  */
+-#if defined(__ppc__) && MAC_OS_X_VERSION_MIN_REQUIRED == 1040
++#if defined(__ppc__) && MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+ #undef GL_EXT_gpu_program_parameters
+ #define GL_EXT_gpu_program_parameters 0
+ #endif
+-- 
+1.7.0.2
+

Deleted: trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-clang-static-analysis-fixes.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-clang-static-analysis-fixes.patch	2010-03-30 01:03:11 UTC (rev 65657)
+++ trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-clang-static-analysis-fixes.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -1,272 +0,0 @@
-From 4127e8e5be5c366eb752bbb8d7f0ff5b519e641b Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu at apple.com>
-Date: Wed, 10 Feb 2010 17:56:30 -0800
-Subject: [PATCH 2/6] XQuartz: clang static analysis fixes
-
-Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
----
- 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              |    1 +
- hw/xquartz/quartzKeyboard.c           |    2 +-
- 8 files changed, 37 insertions(+), 35 deletions(-)
-
-diff --git a/hw/xquartz/GL/indirect.c b/hw/xquartz/GL/indirect.c
-index 1762825..44380ff 100644
---- a/hw/xquartz/GL/indirect.c
-+++ b/hw/xquartz/GL/indirect.c
-@@ -548,7 +548,7 @@ static CGLPixelFormatObj makeFormat(__GLXconfig *conf) {
-        attr[i++] = conf->samples;
-     }
-      
--    attr[i++] = 0;
-+    attr[i + 1] = 0;
- 
-     error = CGLChoosePixelFormat(attr, &fobj, &formats);
-     if(error) {
-diff --git a/hw/xquartz/GL/visualConfigs.c b/hw/xquartz/GL/visualConfigs.c
-index f926778..bef27f0 100644
---- a/hw/xquartz/GL/visualConfigs.c
-+++ b/hw/xquartz/GL/visualConfigs.c
-@@ -62,7 +62,7 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
-     int numConfigs = 0;
-     __GLXconfig *visualConfigs, *c;
-     struct glCapabilities caps;
--    struct glCapabilitiesConfig *conf = NULL;
-+    struct glCapabilitiesConfig *conf;
-     int stereo, depth, aux, buffers, stencil, accum, color, msample;
-     
-     if(getGlCapabilities(&caps)) {
-@@ -94,7 +94,6 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
-      */
-     
-     assert(NULL != caps.configurations);
--    conf = caps.configurations;
-     
-     numConfigs = 0;
-     
-diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
-index f3c8a30..3faa1cb 100644
---- a/hw/xquartz/X11Application.m
-+++ b/hw/xquartz/X11Application.m
-@@ -482,7 +482,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
- 	return out;
- }
- 
--- (CFPropertyListRef) prefs_get:(NSString *)key {
-+- (CFPropertyListRef) prefs_get_copy:(NSString *)key {
-     CFPropertyListRef value;
- 	
-     value = CFPreferencesCopyAppValue ((CFStringRef) key, app_prefs_domain_cfstr);
-@@ -543,7 +543,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-   CFPropertyListRef value;
-   int ret;
-   
--  value = [self prefs_get:key];
-+  value = [self prefs_get_copy:key];
-   
-   if (value != NULL && CFGetTypeID (value) == CFNumberGetTypeID ())
-     CFNumberGetValue (value, kCFNumberIntType, &ret);
-@@ -561,7 +561,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-   CFPropertyListRef value;
-   const char *ret = NULL;
-   
--  value = [self prefs_get:key];
-+  value = [self prefs_get_copy:key];
-   
-   if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID ()) {
-     NSString *s = (NSString *) value;
-@@ -578,12 +578,13 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-     CFPropertyListRef value;
-     NSURL *ret = NULL;
-     
--    value = [self prefs_get:key];
-+    value = [self prefs_get_copy:key];
-     
-     if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID ()) {
-         NSString *s = (NSString *) value;
- 
-         ret = [NSURL URLWithString:s];
-+        [ret retain];
-     }
-     
-     if (value != NULL) CFRelease (value);
-@@ -595,7 +596,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-   CFPropertyListRef value;
-   float ret = def;
-   
--  value = [self prefs_get:key];
-+  value = [self prefs_get_copy:key];
-   
-   if (value != NULL
-       && CFGetTypeID (value) == CFNumberGetTypeID ()
-@@ -613,7 +614,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-   CFPropertyListRef value;
-   int ret = def;
-   
--  value = [self prefs_get:key];
-+  value = [self prefs_get_copy:key];
-   
-   if (value != NULL) {
-     if (CFGetTypeID (value) == CFNumberGetTypeID ())
-@@ -637,7 +638,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-   NSArray *ret = nil;
-   CFPropertyListRef value;
-   
--  value = [self prefs_get:key];
-+  value = [self prefs_get_copy:key];
-   
-   if (value != NULL) {
-     if (CFGetTypeID (value) == CFArrayGetTypeID ())
-@@ -757,7 +758,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) {
-     NSURL *url =  [self prefs_copy_url:@PREFS_UPDATE_FEED default:nil];
-     if(url) {
-         [[SUUpdater sharedUpdater] setFeedURL:url];
--        CFRelease(url);
-+        [url release];
-     }
- #endif
- }
-@@ -970,6 +971,7 @@ void X11ApplicationMain (int argc, char **argv, char **envp) {
- //    [[SUUpdater sharedUpdater] checkForUpdates:X11App];
- #endif
- 
-+    [pool release];
-     [NSApp run];
-     /* not reached */
- }
-diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
-index 0366f3b..4872ff5 100644
---- a/hw/xquartz/mach-startup/bundle-main.c
-+++ b/hw/xquartz/mach-startup/bundle-main.c
-@@ -641,30 +641,46 @@ static int execute(const char *command) {
- static char *command_from_prefs(const char *key, const char *default_value) {
-     char *command = NULL;
-     
--    CFStringRef cfKey = CFStringCreateWithCString(NULL, key, kCFStringEncodingASCII);
--    CFPropertyListRef PlistRef = CFPreferencesCopyAppValue(cfKey, kCFPreferencesCurrentApplication);
-+    CFStringRef cfKey;
-+    CFPropertyListRef PlistRef;
-+
-+    if(!key)
-+        return NULL;
-+
-+    cfKey = CFStringCreateWithCString(NULL, key, kCFStringEncodingASCII);
-+
-+    if(!cfKey)
-+        return NULL;
-+
-+    PlistRef = CFPreferencesCopyAppValue(cfKey, kCFPreferencesCurrentApplication);
-     
-     if ((PlistRef == NULL) || (CFGetTypeID(PlistRef) != CFStringGetTypeID())) {
-         CFStringRef cfDefaultValue = CFStringCreateWithCString(NULL, default_value, kCFStringEncodingASCII);
-         int len = strlen(default_value) + 1;
- 
-+        if(!cfDefaultValue)
-+            goto command_from_prefs_out;
-+
-         CFPreferencesSetAppValue(cfKey, cfDefaultValue, kCFPreferencesCurrentApplication);
-         CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
-+        CFRelease(cfDefaultValue);
-         
-         command = (char *)malloc(len * sizeof(char));
-         if(!command)
--            return NULL;
-+            goto command_from_prefs_out;
-         strcpy(command, default_value);
-     } else {
-         int len = CFStringGetLength((CFStringRef)PlistRef) + 1;
-         command = (char *)malloc(len * sizeof(char));
-         if(!command)
--            return NULL;
-+            goto command_from_prefs_out;
-         CFStringGetCString((CFStringRef)PlistRef, command, len,  kCFStringEncodingASCII);
--	}
--    
-+    }
-+
-+command_from_prefs_out:
-     if (PlistRef)
-         CFRelease(PlistRef);
--    
-+    if(cfKey)
-+        CFRelease(cfKey);
-     return command;
- }
-diff --git a/hw/xquartz/mach-startup/stub.c b/hw/xquartz/mach-startup/stub.c
-index 89f9e10..ccf5ab4 100644
---- a/hw/xquartz/mach-startup/stub.c
-+++ b/hw/xquartz/mach-startup/stub.c
-@@ -73,7 +73,6 @@ static void set_x11_path(void) {
- #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
- 
-     CFURLRef appURL = NULL;
--    CFBundleRef bundle = NULL;
-     OSStatus osstatus = LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(kX11AppBundleId), nil, nil, &appURL);
- 
-     switch (osstatus) {
-@@ -84,12 +83,6 @@ static void set_x11_path(void) {
-                 exit(1);
-             }
- 
--            bundle = CFBundleCreate(NULL, appURL);
--            if(!bundle) {
--                fprintf(stderr, "Xquartz: Null value returned from CFBundleCreate().\n");
--                exit(2);                
--            }
--
-             if (!CFURLGetFileSystemRepresentation(appURL, true, (unsigned char *)x11_path, sizeof(x11_path))) {
-                 fprintf(stderr, "Xquartz: Error resolving URL for %s\n", kX11AppBundleId);
-                 exit(3);
-diff --git a/hw/xquartz/pbproxy/x-selection.h b/hw/xquartz/pbproxy/x-selection.h
-index fc903d0..614c8b0 100644
---- a/hw/xquartz/pbproxy/x-selection.h
-+++ b/hw/xquartz/pbproxy/x-selection.h
-@@ -58,15 +58,6 @@ struct atom_list {
-     /* The unmapped window we use for fetching selections. */
-     Window _selection_window;
- 
--    /* Last time we declared anything on the pasteboard. */
--    int _my_last_change;
--
--    /* Name of the selection we're proxying onto the pasteboard. */
--    Atom _proxied_selection;
--
--    /* When true, we're expecting a SelectionNotify event. */
--    unsigned int _pending_notify :1;
-- 
-     Atom request_atom;
-     
-     struct {
-diff --git a/hw/xquartz/quartzAudio.c b/hw/xquartz/quartzAudio.c
-index af63d18..e4b49fc 100644
---- a/hw/xquartz/quartzAudio.c
-+++ b/hw/xquartz/quartzAudio.c
-@@ -204,6 +204,7 @@ QuartzAudioIOProc(
-     if (wasPlaying  &&  !data->playing) {
-         OSStatus err;
-         err = AudioDeviceStop(inDevice, QuartzAudioIOProc);
-+        fprintf(stderr, "Error stopping audio device: %ld\n", (long int)err);
-     }
-     pthread_mutex_unlock(&data->lock);
-     return 0;
-diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
-index 96b5fa5..3b4eac3 100644
---- a/hw/xquartz/quartzKeyboard.c
-+++ b/hw/xquartz/quartzKeyboard.c
-@@ -368,7 +368,7 @@ void DarwinKeyboardReloadHandler(void) {
-     KeySymsRec keySyms;
-     CFIndex initialKeyRepeatValue, keyRepeatValue;
-     BOOL ok;
--    DeviceIntPtr pDev = darwinKeyboard;
-+    DeviceIntPtr pDev;
-     const char *xmodmap = PROJECTROOT "/bin/xmodmap";
-     const char *sysmodmap = PROJECTROOT "/lib/X11/xinit/.Xmodmap";
-     const char *homedir = getenv("HOME");
--- 
-1.6.6.1
-

Deleted: trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Fix-a-possible-buffer-overrun-in-quartzAudio.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Fix-a-possible-buffer-overrun-in-quartzAudio.patch	2010-03-30 01:03:11 UTC (rev 65657)
+++ trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Fix-a-possible-buffer-overrun-in-quartzAudio.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -1,112 +0,0 @@
-From 4e8bf12b13690afa6d9fee0e339d3819ef16fb3f Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu at apple.com>
-Date: Mon, 15 Feb 2010 16:46:21 -0800
-Subject: [PATCH 3/6] XQuartz: Fix a possible buffer overrun in quartzAudio
-
-Also dropped deprecated API while there
-
-Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
----
- hw/xquartz/quartzAudio.c |   36 ++++++++++++++++++------------------
- 1 files changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/hw/xquartz/quartzAudio.c b/hw/xquartz/quartzAudio.c
-index e4b49fc..708202b 100644
---- a/hw/xquartz/quartzAudio.c
-+++ b/hw/xquartz/quartzAudio.c
-@@ -62,7 +62,6 @@ typedef struct QuartzAudioRec {
-     UInt32 curFrame;
-     UInt32 remainingFrames;
-     UInt32 totalFrames;
--    UInt32 bytesPerFrame;
-     double sampleRate;
-     UInt32 fadeLength;
- 
-@@ -117,9 +116,9 @@ static void QuartzFillBuffer(
-     unsigned int bufferFrameCount;
-     float multiplier, v;
-     int i;
--
-+    
-     buffer = (float *)audiobuffer->mData;
--    bufferFrameCount = audiobuffer->mDataByteSize / data->bytesPerFrame;
-+    bufferFrameCount = audiobuffer->mDataByteSize / (sizeof(float) * audiobuffer->mNumberChannels);
- 
-     frameCount = min(bufferFrameCount, data->remainingFrames);
- 
-@@ -141,7 +140,7 @@ static void QuartzFillBuffer(
-         data->prevFrame = 0;
- 
-         // adjust for space eaten by prev fade
--        buffer += audiobuffer->mNumberChannels*frame;
-+        b += audiobuffer->mNumberChannels*frame;
-         bufferFrameCount -= frame;
-         frameCount = min(bufferFrameCount, data->remainingFrames);
-     }
-@@ -204,7 +203,8 @@ QuartzAudioIOProc(
-     if (wasPlaying  &&  !data->playing) {
-         OSStatus err;
-         err = AudioDeviceStop(inDevice, QuartzAudioIOProc);
--        fprintf(stderr, "Error stopping audio device: %ld\n", (long int)err);
-+        if(err != noErr)
-+            fprintf(stderr, "Error stopping audio device: %ld\n", (long int)err);
-     }
-     pthread_mutex_unlock(&data->lock);
-     return 0;
-@@ -263,16 +263,17 @@ void QuartzAudioInit(void)
-     UInt32 propertySize;
-     OSStatus status;
-     AudioDeviceID outputDevice;
--    AudioStreamBasicDescription outputStreamDescription;
-     double sampleRate;
--
-+    AudioObjectPropertyAddress devicePropertyAddress = { kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
-+    AudioObjectPropertyAddress sampleRatePropertyAddress = { kAudioDevicePropertyNominalSampleRate, kAudioDevicePropertyScopeOutput, kAudioObjectPropertyElementMaster };
-+    
-     // Get the default output device
-     propertySize = sizeof(outputDevice);
--    status = AudioHardwareGetProperty(
--                    kAudioHardwarePropertyDefaultOutputDevice, 
--                    &propertySize, &outputDevice);
-+    status = AudioObjectGetPropertyData(kAudioObjectSystemObject, &devicePropertyAddress,
-+                                        0, NULL,
-+                                        &propertySize, &outputDevice);
-     if (status) {
--        ErrorF("QuartzAudioInit: AudioHardwareGetProperty returned %ld\n",
-+        ErrorF("QuartzAudioInit: AudioObjectGetPropertyData(output device) returned %ld\n",
-                (long)status);
-         return;
-     }
-@@ -282,23 +283,22 @@ void QuartzAudioInit(void)
-     }
- 
-     // Get the basic device description
--    propertySize = sizeof(outputStreamDescription);
--    status = AudioDeviceGetProperty(outputDevice, 0, FALSE, 
--                                    kAudioDevicePropertyStreamFormat, 
--                                    &propertySize, &outputStreamDescription);
-+    sampleRate = 0.;
-+    propertySize = sizeof(sampleRate);
-+    status = AudioObjectGetPropertyData(outputDevice, &sampleRatePropertyAddress,
-+                                        0, NULL,
-+                                        &propertySize, &sampleRate);
-     if (status) {
--        ErrorF("QuartzAudioInit: GetProperty(stream format) returned %ld\n",
-+        ErrorF("QuartzAudioInit: AudioObjectGetPropertyData(sample rate) returned %ld\n",
-                (long)status);
-         return;
-     }
--    sampleRate = outputStreamDescription.mSampleRate;
- 
-     // Fill in the playback data
-     data.frequency = 0;
-     data.amplitude = 0;
-     data.curFrame = 0;
-     data.remainingFrames = 0; 
--    data.bytesPerFrame = outputStreamDescription.mBytesPerFrame;
-     data.sampleRate = sampleRate;
-     // data.bufferByteCount = bufferByteCount;
-     data.playing = FALSE;
--- 
-1.6.6.1
-

Added: trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Minor-cleanup.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Minor-cleanup.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0003-XQuartz-Minor-cleanup.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,50 @@
+From 9c9c3a85b094a3c7b2763a572715d710325091aa Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Fri, 19 Mar 2010 17:23:12 -0700
+Subject: [PATCH 03/37] XQuartz: Minor cleanup
+
+Move RandRInit to where it will need to be (not yet implemented)
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+---
+ hw/xquartz/quartz.c |   14 +++++++-------
+ 1 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/quartz.c xorg-server-1.7.99.902/hw/xquartz/quartz.c
+index c4142a8..3c04205 100644
+--- xorg-server-1.7.99.902/hw/xquartz/quartz.c
++++ xorg-server-1.7.99.902/hw/xquartz/quartz.c
+@@ -166,6 +166,11 @@ void QuartzInitOutput(
+         FatalError("Could not register block and wakeup handlers.");
+     }
+ 
++#if defined(RANDR) && !defined(FAKE_RANDR)
++    if(!QuartzRandRInit(pScreen))
++        FatalError("Failed to init RandR extension.\n");
++#endif
++
+     // Do display mode specific initialization
+     quartzProcs->DisplayInit();
+ }
+@@ -259,16 +264,11 @@ void QuartzUpdateScreens(void) {
+     pScreen->width = width;
+     pScreen->height = height;
+     
+-#ifndef FAKE_RANDR
+-    if(!QuartzRandRInit(pScreen))
+-        FatalError("Failed to init RandR extension.\n");
+-#endif
+-    
+     DarwinAdjustScreenOrigins(&screenInfo);
+     quartzProcs->UpdateScreen(pScreen);
+     
+-    sx = dixScreenOrigins[pScreen->myNum].x + darwinMainScreenX;
+-    sy = dixScreenOrigins[pScreen->myNum].y + darwinMainScreenY;
++    sx = x + darwinMainScreenX;
++    sy = y + darwinMainScreenY;
+     
+     /* Adjust the root window. */
+     pRoot = WindowTable[pScreen->myNum];
+-- 
+1.7.0.2
+

Deleted: trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-Use-an-empty-xkb-keymap-by-default.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-Use-an-empty-xkb-keymap-by-default.patch	2010-03-30 01:03:11 UTC (rev 65657)
+++ trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-Use-an-empty-xkb-keymap-by-default.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -1,86 +0,0 @@
-From 89727d3db19a6eaa06125b982fff866a88901ce9 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu at apple.com>
-Date: Wed, 10 Feb 2010 15:52:14 -0800
-Subject: [PATCH 4/6] XQuartz: Use an empty xkb keymap by default
-
-Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
----
- hw/xquartz/darwin.c         |    6 ++++++
- hw/xquartz/quartzKeyboard.c |   16 +++++-----------
- 2 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
-index 3feacdc..066f5a5 100644
---- a/hw/xquartz/darwin.c
-+++ b/hw/xquartz/darwin.c
-@@ -45,6 +45,7 @@
- #include "site.h"
- #include "globals.h"
- #include "dix.h"
-+#include "xkbsrv.h"
- 
- #include <X11/extensions/XI.h>
- #include <X11/extensions/XIproto.h>
-@@ -461,6 +462,11 @@ int DarwinParseModifierList(const char *constmodifiers, int separatelr)
-  */
- void InitInput( int argc, char **argv )
- {
-+    XkbRMLVOSet rmlvo = { .rules = "base", .model = "empty", .layout = "empty",
-+                          .variant = NULL, .options = NULL };
-+    /* We need to really have rules... or something... */
-+    XkbSetRulesDflts(&rmlvo);
-+
-     darwinKeyboard = AddInputDevice(serverClient, DarwinKeybdProc, TRUE);
-     RegisterKeyboardDevice( darwinKeyboard );
-     darwinKeyboard->name = strdup("keyboard");
-diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
-index 3b4eac3..7e36a9a 100644
---- a/hw/xquartz/quartzKeyboard.c
-+++ b/hw/xquartz/quartzKeyboard.c
-@@ -301,9 +301,6 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
-     // for a kIOHIDParamConnectType connection.
-     assert(darwinParamConnect = NXOpenEventStatus());
- 
--    /* We need to really have rules... or something... */
--    //XkbSetRulesDflts("base", "pc105", "us", NULL, NULL);
--
-     InitKeyboardDeviceStruct(pDev, NULL, DarwinKeyboardBell, DarwinChangeKeyboardControl);
- 
-     DarwinKeyboardReloadHandler();
-@@ -775,12 +772,9 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
- #endif
-         }
- 
--        // There seems to be an issue with this in 1.5+, shift-space is not
--        // producing space, it's sending NoSymbol... ?
--        //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 (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;
-     }
- 
-     /* Fix up some things that are normally missing.. */
-@@ -791,7 +785,7 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
- 
-             if    (k[0] == NoSymbol && k[1] == NoSymbol
-                 && k[2] == NoSymbol && k[3] == NoSymbol)
--	      k[0] = k[1] = k[2] = k[3] = known_keys[i].keysym;
-+	      k[0] = known_keys[i].keysym;
-         }
-     }
- 
-@@ -804,7 +798,7 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
-             k = info->keyMap + known_numeric_keys[i].keycode * GLYPHS_PER_KEY;
- 
-             if (k[0] == known_numeric_keys[i].normal)
--                k[0] = k[1] = k[2] = k[3] = known_numeric_keys[i].keypad;
-+                k[0] = known_numeric_keys[i].keypad;
-         }
-     }
- 
--- 
-1.6.6.1
-

Added: trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0004-XQuartz-xpbproxy-Cleanup-xpbproxy-threading.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,346 @@
+From d16bc8a3cdbe0e8b9cba836c7aa2ff7c0458049e Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Sat, 20 Mar 2010 03:28:57 -0700
+Subject: [PATCH 04/37] XQuartz: xpbproxy: Cleanup xpbproxy threading
+
+Confine xpbproxy to a single thread
+Runs inside its own CFRunLoop
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+---
+ hw/xquartz/X11Application.m   |   25 +++++++++-
+ hw/xquartz/pbproxy/app-main.m |    8 +---
+ hw/xquartz/pbproxy/main.m     |   43 +++++------------
+ hw/xquartz/pbproxy/pbproxy.h  |    3 +-
+ hw/xquartz/pbproxy/x-input.m  |  100 +++++++++++++++++-----------------------
+ 5 files changed, 80 insertions(+), 99 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/X11Application.m xorg-server-1.7.99.902/hw/xquartz/X11Application.m
+index 3faa1cb..5406640 100644
+--- xorg-server-1.7.99.902/hw/xquartz/X11Application.m
++++ xorg-server-1.7.99.902/hw/xquartz/X11Application.m
+@@ -52,7 +52,7 @@
+ #include <Xplugin.h>
+ 
+ // pbproxy/pbproxy.h
+-extern BOOL xpbproxy_init (void);
++extern int xpbproxy_run (void);
+ 
+ #define DEFAULTS_FILE X11LIBDIR"/X11/xserver/Xquartz.plist"
+ 
+@@ -908,6 +908,26 @@ environment the next time you start X11?", @"Startup xinitrc dialog");
+     [X11App prefs_synchronize];
+ }
+ 
++static inline pthread_t create_thread(void *func, void *arg) {
++    pthread_attr_t attr;
++    pthread_t tid;
++    
++    pthread_attr_init(&attr);
++    pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
++    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
++    pthread_create(&tid, &attr, func, arg);
++    pthread_attr_destroy(&attr);
++    
++    return tid;
++}
++
++static void *xpbproxy_x_thread(void *args) {
++    xpbproxy_run();
++
++    fprintf(stderr, "xpbproxy thread is terminating unexpectedly.\n");
++    return NULL;
++}
++
+ void X11ApplicationMain (int argc, char **argv, char **envp) {
+     NSAutoreleasePool *pool;
+ 
+@@ -962,8 +982,7 @@ void X11ApplicationMain (int argc, char **argv, char **envp) {
+      */
+     check_xinitrc();
+     
+-    if(!xpbproxy_init())
+-        fprintf(stderr, "Error initializing xpbproxy\n");
++    create_thread(xpbproxy_x_thread, NULL);
+ 
+ #if XQUARTZ_SPARKLE
+     [[X11App controller] setup_sparkle];
+diff --git xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m
+index f3f683a..b30dfb8 100644
+--- xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m
++++ xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m
+@@ -84,16 +84,10 @@ int main (int argc, const char *argv[]) {
+     
+     app_prefs_domain_cfstr = CFStringCreateWithCString(NULL, app_prefs_domain, kCFStringEncodingUTF8);
+     
+-    if(!xpbproxy_init())
+-        return EXIT_FAILURE;
+-    
+     signal (SIGINT, signal_handler);
+     signal (SIGTERM, signal_handler);
+     signal (SIGHUP, signal_handler);
+     signal (SIGPIPE, SIG_IGN);
+ 
+-    [NSApplication sharedApplication];
+-    [NSApp run];
+-    
+-    return EXIT_SUCCESS;
++    return xpbproxy_run();
+ }
+diff --git xorg-server-1.7.99.902/hw/xquartz/pbproxy/main.m xorg-server-1.7.99.902/hw/xquartz/pbproxy/main.m
+index d26b1b1..560cf01 100644
+--- xorg-server-1.7.99.902/hw/xquartz/pbproxy/main.m
++++ xorg-server-1.7.99.902/hw/xquartz/pbproxy/main.m
+@@ -82,25 +82,12 @@ static int x_error_handler (Display *dpy, XErrorEvent *errevent) {
+     return 0;
+ }
+ 
+-static inline pthread_t create_thread(void *func, void *arg) {
+-    pthread_attr_t attr;
+-    pthread_t tid;
+-    
+-    pthread_attr_init(&attr);
+-    pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
+-    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+-    pthread_create(&tid, &attr, func, arg);
+-    pthread_attr_destroy(&attr);
+-    
+-    return tid;
+-}
+-
+-static void *xpbproxy_x_thread(void *args) {
++int xpbproxy_run (void) {
+     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+     size_t i;
+-
++    
+     wait_for_server_init();
+-
++    
+     for(i=0, xpbproxy_dpy=NULL; !xpbproxy_dpy && i<5; i++) {
+         xpbproxy_dpy = XOpenDisplay(NULL);
+         
+@@ -108,7 +95,7 @@ static void *xpbproxy_x_thread(void *args) {
+             char _display[32];
+             snprintf(_display, sizeof(_display), ":%s", display);
+             setenv("DISPLAY", _display, TRUE);
+-
++            
+             xpbproxy_dpy=XOpenDisplay(_display);
+         }
+         if(!xpbproxy_dpy)
+@@ -118,7 +105,7 @@ static void *xpbproxy_x_thread(void *args) {
+     if (xpbproxy_dpy == NULL) {
+         fprintf (stderr, "xpbproxy: can't open default display\n");
+         [pool release];
+-        return NULL;
++        return EXIT_FAILURE;
+     }
+     
+     XSetIOErrorHandler (x_io_error_handler);
+@@ -128,11 +115,11 @@ static void *xpbproxy_x_thread(void *args) {
+                                  &xpbproxy_apple_wm_error_base)) {
+         fprintf (stderr, "xpbproxy: can't open AppleWM server extension\n");
+         [pool release];
+-        return NULL;
++        return EXIT_FAILURE;
+     }
+-    
++
+     xpbproxy_have_xfixes = XFixesQueryExtension(xpbproxy_dpy, &xpbproxy_xfixes_event_base, &xpbproxy_xfixes_error_base);
+-    
++
+     XAppleWMSelectInput (xpbproxy_dpy, AppleWMActivationNotifyMask |
+                          AppleWMPasteboardNotifyMask);
+     
+@@ -140,18 +127,14 @@ static void *xpbproxy_x_thread(void *args) {
+     
+     if(!xpbproxy_input_register()) {
+         [pool release];
+-        return NULL;
++        return EXIT_FAILURE;
+     }
+-
++    
+     [pool release];
+- 
+-    xpbproxy_input_loop();
+-    return NULL;
+-}
++    
++    CFRunLoopRun();
+ 
+-BOOL xpbproxy_init (void) {
+-    create_thread(xpbproxy_x_thread, NULL);
+-    return TRUE;
++    return EXIT_SUCCESS;
+ }
+ 
+ id xpbproxy_selection_object (void) {
+diff --git xorg-server-1.7.99.902/hw/xquartz/pbproxy/pbproxy.h xorg-server-1.7.99.902/hw/xquartz/pbproxy/pbproxy.h
+index a6798ef..013f981 100644
+--- xorg-server-1.7.99.902/hw/xquartz/pbproxy/pbproxy.h
++++ xorg-server-1.7.99.902/hw/xquartz/pbproxy/pbproxy.h
+@@ -67,7 +67,7 @@ extern void xpbproxy_set_is_active (BOOL state);
+ extern BOOL xpbproxy_get_is_active (void);
+ extern id xpbproxy_selection_object (void);
+ extern Time xpbproxy_current_timestamp (void);
+-extern BOOL xpbproxy_init (void);
++extern int xpbproxy_run (void);
+ 
+ extern Display *xpbproxy_dpy;
+ extern int xpbproxy_apple_wm_event_base, xpbproxy_apple_wm_error_base;
+@@ -76,7 +76,6 @@ extern BOOL xpbproxy_have_xfixes;
+ 
+ /* from x-input.m */
+ extern BOOL xpbproxy_input_register (void);
+-extern void xpbproxy_input_loop();
+ 
+ #ifdef DEBUG
+ /* BEWARE: this can cause a string memory leak, according to the leaks program. */
+diff --git xorg-server-1.7.99.902/hw/xquartz/pbproxy/x-input.m xorg-server-1.7.99.902/hw/xquartz/pbproxy/x-input.m
+index 6ba30c6..405ba3c 100644
+--- xorg-server-1.7.99.902/hw/xquartz/pbproxy/x-input.m
++++ xorg-server-1.7.99.902/hw/xquartz/pbproxy/x-input.m
+@@ -39,17 +39,12 @@
+ 
+ #include <unistd.h>
+ 
+-#include <pthread.h>
+-
+ static CFRunLoopSourceRef xpbproxy_dpy_source;
+ 
+ #ifdef STANDALONE_XPBPROXY
+ BOOL xpbproxy_prefs_reload = NO;
+ #endif
+ 
+-static pthread_mutex_t xpbproxy_dpy_rdy_lock = PTHREAD_MUTEX_INITIALIZER;
+-static pthread_cond_t xpbproxy_dpy_rdy_cond = PTHREAD_COND_INITIALIZER;
+-
+ /* Timestamp when the X server last told us it's active */
+ static Time last_activation_time;
+ 
+@@ -88,58 +83,51 @@ static void x_event_apple_wm_notify(XAppleWMNotifyEvent *e) {
+     }
+ }
+ 
+-void xpbproxy_input_loop() {
+-    pthread_mutex_lock(&xpbproxy_dpy_rdy_lock);
+-    while(true) {
+-        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
++static void xpbproxy_process_xevents(void) {
++    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
++    
++    if(pool == nil) {
++        fprintf(stderr, "unable to allocate/init auto release pool!\n");
++        return;
++    }
++    
++    while (XPending(xpbproxy_dpy) != 0) {
++        XEvent e;
+         
+-        if(pool == nil) {
+-            fprintf(stderr, "unable to allocate/init auto release pool!\n");
+-            break;
+-        }
++        XNextEvent (xpbproxy_dpy, &e);
+         
+-        while (XPending(xpbproxy_dpy) != 0) {
+-            XEvent e;
+-            
+-            pthread_mutex_unlock(&xpbproxy_dpy_rdy_lock);
+-            XNextEvent (xpbproxy_dpy, &e);
+-            
+-            switch (e.type) {                
+-                case SelectionClear:
+-                    if([xpbproxy_selection_object() is_active])
+-                        [xpbproxy_selection_object () clear_event:&e.xselectionclear];
+-                    break;
+-                    
+-                case SelectionRequest:
+-                    [xpbproxy_selection_object () request_event:&e.xselectionrequest];
+-                    break;
+-                    
+-                case SelectionNotify:
+-                    [xpbproxy_selection_object () notify_event:&e.xselection];
+-                    break;
+-                    
+-                case PropertyNotify:
+-                    [xpbproxy_selection_object () property_event:&e.xproperty];
+-                    break;
+-                    
+-                default:
+-                    if(e.type >= xpbproxy_apple_wm_event_base &&
+-                       e.type < xpbproxy_apple_wm_event_base + AppleWMNumberEvents) {
+-                        x_event_apple_wm_notify((XAppleWMNotifyEvent *) &e);
+-                    } else if(e.type == xpbproxy_xfixes_event_base + XFixesSelectionNotify) {
+-                        [xpbproxy_selection_object() xfixes_selection_notify:(XFixesSelectionNotifyEvent *)&e];
+-                    }
+-                    break;
+-            }
+-            
+-            XFlush(xpbproxy_dpy);
+-            pthread_mutex_lock(&xpbproxy_dpy_rdy_lock);
++        switch (e.type) {                
++            case SelectionClear:
++                if([xpbproxy_selection_object() is_active])
++                    [xpbproxy_selection_object () clear_event:&e.xselectionclear];
++                break;
++                
++            case SelectionRequest:
++                [xpbproxy_selection_object () request_event:&e.xselectionrequest];
++                break;
++                
++            case SelectionNotify:
++                [xpbproxy_selection_object () notify_event:&e.xselection];
++                break;
++                
++            case PropertyNotify:
++                [xpbproxy_selection_object () property_event:&e.xproperty];
++                break;
++                
++            default:
++                if(e.type >= xpbproxy_apple_wm_event_base &&
++                   e.type < xpbproxy_apple_wm_event_base + AppleWMNumberEvents) {
++                    x_event_apple_wm_notify((XAppleWMNotifyEvent *) &e);
++                } else if(e.type == xpbproxy_xfixes_event_base + XFixesSelectionNotify) {
++                    [xpbproxy_selection_object() xfixes_selection_notify:(XFixesSelectionNotifyEvent *)&e];
++                }
++                break;
+         }
+         
+-        [pool release];
+-        
+-        pthread_cond_wait(&xpbproxy_dpy_rdy_cond, &xpbproxy_dpy_rdy_lock);
++        XFlush(xpbproxy_dpy);
+     }
++    
++    [pool release];
+ }
+ 
+ static BOOL add_input_socket (int sock, CFOptionFlags callback_types,
+@@ -161,7 +149,7 @@ static BOOL add_input_socket (int sock, CFOptionFlags callback_types,
+     if (*cf_source == NULL)
+         return FALSE;
+     
+-    CFRunLoopAddSource (CFRunLoopGetMain (),
++    CFRunLoopAddSource (CFRunLoopGetCurrent (),
+                         *cf_source, kCFRunLoopDefaultMode);
+     return TRUE;
+ }
+@@ -175,10 +163,8 @@ static void x_input_callback (CFSocketRef sock, CFSocketCallBackType type,
+         xpbproxy_prefs_reload = NO;
+     }
+ #endif
+-
+-    pthread_mutex_lock(&xpbproxy_dpy_rdy_lock);
+-    pthread_cond_broadcast(&xpbproxy_dpy_rdy_cond);
+-    pthread_mutex_unlock(&xpbproxy_dpy_rdy_lock);
++    
++    xpbproxy_process_xevents();
+ }
+ 
+ BOOL xpbproxy_input_register(void) {
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0005-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0005-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0005-XQuartz-pbproxy-Make-standalone-xpbproxy-respect-the.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,50 @@
+From 927480be12ff61deb4e8120d2f90ddef3a1a6beb Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Sat, 20 Mar 2010 11:03:28 -0700
+Subject: [PATCH 05/37] XQuartz: pbproxy: Make standalone xpbproxy respect the launchd prefix
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at freedesktop.org>
+---
+ hw/xquartz/pbproxy/Makefile.am |    6 ++++--
+ hw/xquartz/pbproxy/app-main.m  |    4 ++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/pbproxy/Makefile.am xorg-server-1.7.99.902/hw/xquartz/pbproxy/Makefile.am
+index 02da6b2..1886642 100644
+--- xorg-server-1.7.99.902/hw/xquartz/pbproxy/Makefile.am
++++ xorg-server-1.7.99.902/hw/xquartz/pbproxy/Makefile.am
+@@ -1,5 +1,7 @@
+-AM_CPPFLAGS=-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
+-AM_CFLAGS=$(XPBPROXY_CFLAGS)
++AM_CPPFLAGS=-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks \
++	-DLAUNCHD_ID_PREFIX=\"$(LAUNCHD_ID_PREFIX)\"
++
++AM_CFLAGS=$(XPBPROXY_CFLAGS) 
+ 
+ noinst_LTLIBRARIES = libxpbproxy.la
+ libxpbproxy_la_SOURCES = \
+diff --git xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m
+index b30dfb8..b00e90a 100644
+--- xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m
++++ xorg-server-1.7.99.902/hw/xquartz/pbproxy/app-main.m
+@@ -34,7 +34,7 @@
+ #include <unistd.h> /*for getpid*/
+ #include <Cocoa/Cocoa.h>
+ 
+-static const char *app_prefs_domain = "org.x.X11";
++static const char *app_prefs_domain = 	LAUNCHD_ID_PREFIX".xpbproxy";
+ CFStringRef app_prefs_domain_cfstr;
+ 
+ /* Stubs */
+@@ -73,7 +73,7 @@ int main (int argc, const char *argv[]) {
+             printf("usage: xpbproxy OPTIONS\n"
+                    "Pasteboard proxying for X11.\n\n"
+                    "--prefs-domain <domain>   Change the domain used for reading preferences\n"
+-                   "                          (default: org.x.X11)\n");
++                   "                          (default: %s)\n", app_prefs_domain);
+             return 0;
+         } else {
+             fprintf(stderr, "usage: xpbproxy OPTIONS...\n"
+-- 
+1.7.0.2
+

Deleted: trunk/dports/x11/xorg-server-devel/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch	2010-03-30 01:03:11 UTC (rev 65657)
+++ trunk/dports/x11/xorg-server-devel/files/0005-fb-Revert-fb-changes-that-broke-XQuartz.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -1,231 +0,0 @@
-From 01ff8d468f836b760a3b39bc5fad8f0c9abced3a Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu at apple.com>
-Date: Fri, 12 Feb 2010 19:48:52 -0800
-Subject: [PATCH 5/6] 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>
----
- fb/fb.h     |    7 +----
- fb/fbpict.c |   72 ++++++++++++++++++-----------------------------------------
- fb/fbtrap.c |    6 +---
- 3 files changed, 26 insertions(+), 59 deletions(-)
-
-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;
--- 
-1.6.6.1
-

Added: trunk/dports/x11/xorg-server-devel/files/0006-XQuartz-Constrain-the-pointer-to-the-updated-display.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0006-XQuartz-Constrain-the-pointer-to-the-updated-display.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0006-XQuartz-Constrain-the-pointer-to-the-updated-display.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,44 @@
+From ed31d50b5f7f25e4db986711699704e615b8afcb Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Fri, 19 Mar 2010 17:24:27 -0700
+Subject: [PATCH 06/37] XQuartz: Constrain the pointer to the updated display bounds on display reconfigure.
+
+http://xquartz.macosforge.org/trac/ticket/346
+---
+ hw/xquartz/quartz.c |   13 +++++++++++--
+ 1 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/quartz.c xorg-server-1.7.99.902/hw/xquartz/quartz.c
+index 3c04205..59107be 100644
+--- xorg-server-1.7.99.902/hw/xquartz/quartz.c
++++ xorg-server-1.7.99.902/hw/xquartz/quartz.c
+@@ -241,6 +241,7 @@ void QuartzUpdateScreens(void) {
+     WindowPtr pRoot;
+     int x, y, width, height, sx, sy;
+     xEvent e;
++    BoxRec bounds;
+     
+     if (noPseudoramiXExtension || screenInfo.numScreens != 1)
+     {
+@@ -277,8 +278,16 @@ void QuartzUpdateScreens(void) {
+     //pScreen->PaintWindowBackground (pRoot, &pRoot->borderClip,  PW_BACKGROUND);
+     miPaintWindow(pRoot, &pRoot->borderClip,  PW_BACKGROUND);
+ 
+-//  TODO: This is a noop in 1.6 and nuked in master... we may need to do something else now to handle it
+-//    DefineInitialRootWindow(pRoot);
++    /* <rdar://problem/7770779> pointer events are clipped to old display region after display reconfiguration
++     * http://xquartz.macosforge.org/trac/ticket/346
++     */
++    bounds.x1 = 0;
++    bounds.x2 = width;
++    bounds.y1 = 0;
++    bounds.y2 = height;
++    pScreen->ConstrainCursor(inputInfo.pointer, pScreen, &bounds);
++    inputInfo.pointer->spriteInfo->sprite->physLimits = bounds;
++    inputInfo.pointer->spriteInfo->sprite->hotLimits = bounds;
+ 
+     DEBUG_LOG("Root Window: %dx%d @ (%d, %d) darwinMainScreen (%d, %d) xy (%d, %d) dixScreenOrigins (%d, %d)\n", width, height, x - sx, y - sy, darwinMainScreenX, darwinMainScreenY, x, y, dixScreenOrigins[pScreen->myNum].x, dixScreenOrigins[pScreen->myNum].y);
+ 
+-- 
+1.7.0.2
+

Deleted: trunk/dports/x11/xorg-server-devel/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch	2010-03-30 01:03:11 UTC (rev 65657)
+++ trunk/dports/x11/xorg-server-devel/files/0006-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -1,84 +0,0 @@
-From 3369deaa34e73540bc3528e1ba3c32e93240c536 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer at who-t.net>
-Date: Fri, 15 Jan 2010 11:39:36 +1000
-Subject: [PATCH 6/6] 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 at who-t.net>
-Tested-by: Jim Ramsay <i.am at jimramsay.com>
----
- dix/events.c |   36 ++++++++++++++++++++++++++++++++++++
- 1 files changed, 36 insertions(+), 0 deletions(-)
-
-diff --git a/dix/events.c b/dix/events.c
-index 85c8f9a..b854d98 100644
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -3580,6 +3580,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);
-@@ -3601,6 +3603,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);
-@@ -3612,6 +3632,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.6.1
-

Added: trunk/dports/x11/xorg-server-devel/files/0007-Cygwin-X-Fix-make-dist-after-11252ed82e1f361b99e8652.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0007-Cygwin-X-Fix-make-dist-after-11252ed82e1f361b99e8652.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0007-Cygwin-X-Fix-make-dist-after-11252ed82e1f361b99e8652.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,27 @@
+From 8db894690988f2bac9c0acb96fd39811d2b42f47 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Fri, 19 Feb 2010 00:05:28 -0600
+Subject: [PATCH 07/37] Cygwin/X: Fix make dist after 11252ed82e1f361b99e86521ac9314f868bd1a3a
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Acked-by: Adam Jackson <ajax at redhat.com>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+---
+ hw/xwin/Makefile.am |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xwin/Makefile.am xorg-server-1.7.99.902/hw/xwin/Makefile.am
+index fbaf092..daba679 100644
+--- xorg-server-1.7.99.902/hw/xwin/Makefile.am
++++ xorg-server-1.7.99.902/hw/xwin/Makefile.am
+@@ -197,6 +197,7 @@ include $(top_srcdir)/cpprules.in
+ EXTRA_DIST = \
+ 	$(GLX_EXTRAS) \
+ 	$(MAN_SRCS) \
++	$(xwinconfig_DATA) \
+ 	X.ico \
+ 	XWin.rc \
+ 	xlaunch/config.cc \
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0008-Cygwin-X-Fix-windres-rule-for-automake-silent-rules.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0008-Cygwin-X-Fix-windres-rule-for-automake-silent-rules.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0008-Cygwin-X-Fix-windres-rule-for-automake-silent-rules.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,31 @@
+From fbb4903eaa23174d21ab8c640d9de1fe3eb17539 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Sun, 21 Feb 2010 02:08:08 -0600
+Subject: [PATCH 08/37] Cygwin/X: Fix windres rule for automake silent rules
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Rémi Cardona <rem at gentoo.org>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+---
+ hw/xwin/Makefile.am |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xwin/Makefile.am xorg-server-1.7.99.902/hw/xwin/Makefile.am
+index daba679..8bf6546 100644
+--- xorg-server-1.7.99.902/hw/xwin/Makefile.am
++++ xorg-server-1.7.99.902/hw/xwin/Makefile.am
+@@ -150,7 +150,7 @@ XWin_DEPENDENCIES = $(XWIN_LIBS)
+ XWin_LDADD = $(MULTIWINDOWEXTWM_LIBS) $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS)
+ 
+ .rc.o:
+-	$(WINDRES) --use-temp-file -i $< --input-format=rc -o $@ -O coff -I $(top_builddir)/include
++	$(AM_V_GEN)$(WINDRES) --use-temp-file -i $< --input-format=rc -o $@ -O coff -I $(top_builddir)/include
+ 
+ XWin_LDFLAGS = -mwindows -static
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0009-Rename-xdmx-client-to-dmxinfo.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0009-Rename-xdmx-client-to-dmxinfo.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0009-Rename-xdmx-client-to-dmxinfo.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,536 @@
+From 2a11ffa977d2267d8b2f27b76490a98e9c73b8c7 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Fri, 19 Feb 2010 14:31:28 -0600
+Subject: [PATCH 09/37] Rename xdmx client to dmxinfo
+
+The DMX Xdmx server and xdmx client cannot both be installed on
+case-insensitive file systems.  The client is undocumented and
+so renaming it is the best option.
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+---
+ hw/dmx/examples/.gitignore  |    2 +-
+ hw/dmx/examples/Makefile.am |    8 +-
+ hw/dmx/examples/dmxinfo.c   |  239 +++++++++++++++++++++++++++++++++++++++++++
+ hw/dmx/examples/xdmx.c      |  239 -------------------------------------------
+ 4 files changed, 244 insertions(+), 244 deletions(-)
+ create mode 100644 hw/dmx/examples/dmxinfo.c
+ delete mode 100644 hw/dmx/examples/xdmx.c
+
+diff --git xorg-server-1.7.99.902/hw/dmx/examples/Makefile.am xorg-server-1.7.99.902/hw/dmx/examples/Makefile.am
+index d814339..229bb57 100644
+--- xorg-server-1.7.99.902/hw/dmx/examples/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/examples/Makefile.am
+@@ -4,14 +4,14 @@ EV_PROG = ev
+ endif
+ 
+ bin_PROGRAMS = \
+-	xdmx dmxwininfo dmxreconfig dmxresize \
++	dmxinfo dmxwininfo dmxreconfig dmxresize \
+ 	dmxaddscreen dmxrmscreen \
+ 	dmxaddinput dmxrminput
+ noinst_PROGRAMS = xinput xtest evi res xled xbell $(EV_PROG)
+ 
+-xdmx_SOURCES = xdmx.c
+-xdmx_LDADD = @DMXEXAMPLES_DEP_LIBS@
+-xdmx_CFLAGS = @DMXEXAMPLES_DEP_CFLAGS@
++dmxinfo_SOURCES = dmxinfo.c
++dmxinfo_LDADD = @DMXEXAMPLES_DEP_LIBS@
++dmxinfo_CFLAGS = @DMXEXAMPLES_DEP_CFLAGS@
+ 
+ dmxwininfo_SOURCES = dmxwininfo.c
+ dmxwininfo_LDADD = @DMXXMUEXAMPLES_DEP_LIBS@
+diff --git xorg-server-1.7.99.902/hw/dmx/examples/dmxinfo.c xorg-server-1.7.99.902/hw/dmx/examples/dmxinfo.c
+new file mode 100644
+index 0000000..dedce6e
+--- /dev/null
++++ xorg-server-1.7.99.902/hw/dmx/examples/dmxinfo.c
+@@ -0,0 +1,239 @@
++/*
++ * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
++ *
++ * All Rights Reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation on the rights to use, copy, modify, merge,
++ * publish, distribute, sublicense, and/or sell copies of the Software,
++ * and to permit persons to whom the Software is furnished to do so,
++ * subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial
++ * portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
++ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ * SOFTWARE.
++ */
++
++/*
++ * Authors:
++ *   Rickard E. (Rik) Faith <faith at redhat.com>
++ *
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <X11/Xlib.h>
++#include <X11/extensions/dmxext.h>
++
++static void indent(int level)
++{
++    int i;
++    for (i = 0; i < level; i++) printf("    ");
++}
++
++static void print_window_id(const char *displayName, Display *display,
++                            Window window, int level, int child)
++{
++    char                 *name;
++    
++    if (!XFetchName(display, window, &name)) name = NULL;
++    indent(level);
++    if (child) printf("(%d) ", child);
++    printf("%s window 0x%08lx: %s%s\n",
++           displayName,
++           (long unsigned)window,
++           name ? name : "",
++           (window == DefaultRootWindow(display))
++           ? " (DMX root window)" : "");
++    if (name) XFree(name);
++}
++
++static void print_info(Display *display, Window window, int level, int child)
++{
++    DMXWindowAttributes winfo[128];
++    int                 count;
++    int                 i;
++    
++    if (!DMXGetWindowAttributes(display, window, &count, 128, winfo)) {
++        printf("Could not get window information for 0x%08lx\n",
++               (long unsigned)window);
++        exit(-2);
++    }
++    printf("\n");
++    print_window_id("DMX", display, window, level, child);
++    for (i = 0; i < count; i++) {
++        DMXScreenAttributes  sinfo;
++        Display              *backend;
++
++        /* This could also be cached -- the information doesn't change. */
++        if (!DMXGetScreenAttributes(display, winfo[i].screen, &sinfo)) {
++            printf("Could not get screen information for screen %d\n", i);
++            exit(-2);
++        }
++        if (!(backend = XOpenDisplay(sinfo.displayName))) {
++            printf("Cannot open backend display %s\n", sinfo.displayName);
++            exit(-2);
++        }
++        XCloseDisplay(backend);
++        
++        indent(level+1);
++        printf("%s window 0x%08lx: %dx%d%+d%+d",
++               sinfo.displayName,
++               (long unsigned)winfo[i].window,
++               winfo[i].pos.width, winfo[i].pos.height,
++               winfo[i].pos.x, winfo[i].pos.y);
++        if (!winfo[i].vis.width
++            && !winfo[i].vis.height
++            && !winfo[i].vis.x
++            && !winfo[i].vis.y) printf(" not visible\n");
++        else if (winfo[i].vis.width == winfo[i].pos.width
++                 && winfo[i].vis.height == winfo[i].pos.height) {
++            printf( " %+d%+d\n", winfo[i].vis.x, winfo[i].vis.y);
++        } else {
++            printf( " %dx%d%+d%+d\n",
++                    winfo[i].vis.width, winfo[i].vis.height,
++                    winfo[i].vis.x, winfo[i].vis.y);
++        }
++    }
++}
++
++static void print_tree(Display *display, Window window, int level, int child)
++{
++    Window       root, parent;
++    Window       *list;
++    unsigned int count;
++    unsigned int i;
++
++    print_info(display, window, level, child);
++    
++    if (!XQueryTree(display, window, &root, &parent, &list, &count)) {
++        printf("Cannot query window tree for 0x%08lx\n",
++               (long unsigned)window);
++        exit(-3);
++    }
++
++    if (count) {
++        indent(level+1);
++        printf("%d child%s:\n", count, count > 1 ? "ren" : "");
++        for (i = 0; i < count; i++) {
++            print_tree(display, list[i], level+1, i+1);
++        }
++    }
++}
++
++static const char *core(DMXInputAttributes *iinfo)
++{
++    if (iinfo->isCore)         return "core";
++    else if (iinfo->sendsCore) return "extension (sends core)";
++    else                       return "extension";
++}
++
++int main(int argc, char **argv)
++{
++    Display              *display = NULL;
++    Window               window   = 0;
++    int                  event_base;
++    int                  error_base;
++    int                  major_version, minor_version, patch_version;
++    DMXScreenAttributes  sinfo;
++    DMXInputAttributes   iinfo;
++    int                  count;
++    int                  i;
++
++    if (argc == 2 || argc == 3) {
++        if (!(display = XOpenDisplay(argv[1]))) {
++            printf("Cannot open display %s\n", argv[1]);
++            return -1;
++        }
++        if (argc == 3) window = strtol(argv[2], NULL, 0);
++    } else {
++        printf("Usage: %s display [windowid]\n", argv[0]);
++        return -1;
++    }
++
++    if (!display && !(display = XOpenDisplay(NULL))) {
++        printf("Cannot open default display\n");
++        return -1;
++    }
++
++    if (!DMXQueryExtension(display, &event_base, &error_base)) {
++        printf("DMX extension not present\n");
++        return -1;
++    }
++    printf("DMX extension present: event_base = %d, error_base = %d\n",
++           event_base, error_base);
++
++    if (!DMXQueryVersion(display,
++                         &major_version, &minor_version, &patch_version)) {
++        printf("Could not get extension version\n");
++        return -1;
++    }
++    printf("Extension version: %d.%d patch %d\n",
++           major_version, minor_version, patch_version);
++
++    if (!DMXGetScreenCount(display, &count)) {
++        printf("Could not get screen count\n");
++        return -1;
++    }
++    printf("Screen count = %d\n", count);
++
++    for (i = 0; i < count; i++) {
++        if (!DMXGetScreenAttributes(display, i, &sinfo)) {
++            printf("Could not get screen information for %d\n", i);
++            return -1;
++        }
++        printf("%d: %s %ux%u+%d+%d %d @%dx%d (root: %dx%d%+d%+d)\n",
++               i, sinfo.displayName,
++               sinfo.screenWindowWidth, sinfo.screenWindowHeight,
++               sinfo.screenWindowXoffset, sinfo.screenWindowYoffset,
++               sinfo.logicalScreen,
++               sinfo.rootWindowXorigin, sinfo.rootWindowYorigin,
++               sinfo.rootWindowWidth, sinfo.rootWindowHeight,
++               sinfo.rootWindowXoffset, sinfo.rootWindowYoffset);
++    }
++
++    if (major_version == 1 && minor_version >= 1) {
++        if (!DMXGetInputCount(display, &count)) {
++            printf("Could not get input count\n");
++            return -1;
++        }
++        printf("Input count = %d\n", count);
++        for (i = 0; i < count; i++) {
++            if (!DMXGetInputAttributes(display, i, &iinfo)) {
++                printf("Could not get input information for id %d\n", i);
++                return -1;
++            }
++            switch (iinfo.inputType) {
++            case DMXLocalInputType:
++                printf("  %2d local   %-20.20s %s\n", i, "", core(&iinfo));
++                break;
++            case DMXConsoleInputType:
++                printf("  %2d console %-20.20s %s\n",
++                       i, iinfo.name, core(&iinfo));
++                break;
++            case DMXBackendInputType:
++                printf("  %2d backend %-20.20s id=%2d screen=%2d %s\n",
++                       i, iinfo.name, iinfo.physicalId, iinfo.physicalScreen,
++                       core(&iinfo));
++                break;
++            }
++        }
++    }
++
++    if (window) print_info(display, window, 0, 0);
++    else        print_tree(display, DefaultRootWindow(display), 0, 0);
++    
++    XCloseDisplay(display);
++    return 0;
++}
+diff --git xorg-server-1.7.99.902/hw/dmx/examples/xdmx.c xorg-server-1.7.99.902/hw/dmx/examples/xdmx.c
+deleted file mode 100644
+index dedce6e..0000000
+--- xorg-server-1.7.99.902/hw/dmx/examples/xdmx.c
++++ /dev/null
+@@ -1,239 +0,0 @@
+-/*
+- * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
+- *
+- * All Rights Reserved.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining
+- * a copy of this software and associated documentation files (the
+- * "Software"), to deal in the Software without restriction, including
+- * without limitation on the rights to use, copy, modify, merge,
+- * publish, distribute, sublicense, and/or sell copies of the Software,
+- * and to permit persons to whom the Software is furnished to do so,
+- * subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice (including the
+- * next paragraph) shall be included in all copies or substantial
+- * portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+- * NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
+- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+- * SOFTWARE.
+- */
+-
+-/*
+- * Authors:
+- *   Rickard E. (Rik) Faith <faith at redhat.com>
+- *
+- */
+-
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <X11/Xlib.h>
+-#include <X11/extensions/dmxext.h>
+-
+-static void indent(int level)
+-{
+-    int i;
+-    for (i = 0; i < level; i++) printf("    ");
+-}
+-
+-static void print_window_id(const char *displayName, Display *display,
+-                            Window window, int level, int child)
+-{
+-    char                 *name;
+-    
+-    if (!XFetchName(display, window, &name)) name = NULL;
+-    indent(level);
+-    if (child) printf("(%d) ", child);
+-    printf("%s window 0x%08lx: %s%s\n",
+-           displayName,
+-           (long unsigned)window,
+-           name ? name : "",
+-           (window == DefaultRootWindow(display))
+-           ? " (DMX root window)" : "");
+-    if (name) XFree(name);
+-}
+-
+-static void print_info(Display *display, Window window, int level, int child)
+-{
+-    DMXWindowAttributes winfo[128];
+-    int                 count;
+-    int                 i;
+-    
+-    if (!DMXGetWindowAttributes(display, window, &count, 128, winfo)) {
+-        printf("Could not get window information for 0x%08lx\n",
+-               (long unsigned)window);
+-        exit(-2);
+-    }
+-    printf("\n");
+-    print_window_id("DMX", display, window, level, child);
+-    for (i = 0; i < count; i++) {
+-        DMXScreenAttributes  sinfo;
+-        Display              *backend;
+-
+-        /* This could also be cached -- the information doesn't change. */
+-        if (!DMXGetScreenAttributes(display, winfo[i].screen, &sinfo)) {
+-            printf("Could not get screen information for screen %d\n", i);
+-            exit(-2);
+-        }
+-        if (!(backend = XOpenDisplay(sinfo.displayName))) {
+-            printf("Cannot open backend display %s\n", sinfo.displayName);
+-            exit(-2);
+-        }
+-        XCloseDisplay(backend);
+-        
+-        indent(level+1);
+-        printf("%s window 0x%08lx: %dx%d%+d%+d",
+-               sinfo.displayName,
+-               (long unsigned)winfo[i].window,
+-               winfo[i].pos.width, winfo[i].pos.height,
+-               winfo[i].pos.x, winfo[i].pos.y);
+-        if (!winfo[i].vis.width
+-            && !winfo[i].vis.height
+-            && !winfo[i].vis.x
+-            && !winfo[i].vis.y) printf(" not visible\n");
+-        else if (winfo[i].vis.width == winfo[i].pos.width
+-                 && winfo[i].vis.height == winfo[i].pos.height) {
+-            printf( " %+d%+d\n", winfo[i].vis.x, winfo[i].vis.y);
+-        } else {
+-            printf( " %dx%d%+d%+d\n",
+-                    winfo[i].vis.width, winfo[i].vis.height,
+-                    winfo[i].vis.x, winfo[i].vis.y);
+-        }
+-    }
+-}
+-
+-static void print_tree(Display *display, Window window, int level, int child)
+-{
+-    Window       root, parent;
+-    Window       *list;
+-    unsigned int count;
+-    unsigned int i;
+-
+-    print_info(display, window, level, child);
+-    
+-    if (!XQueryTree(display, window, &root, &parent, &list, &count)) {
+-        printf("Cannot query window tree for 0x%08lx\n",
+-               (long unsigned)window);
+-        exit(-3);
+-    }
+-
+-    if (count) {
+-        indent(level+1);
+-        printf("%d child%s:\n", count, count > 1 ? "ren" : "");
+-        for (i = 0; i < count; i++) {
+-            print_tree(display, list[i], level+1, i+1);
+-        }
+-    }
+-}
+-
+-static const char *core(DMXInputAttributes *iinfo)
+-{
+-    if (iinfo->isCore)         return "core";
+-    else if (iinfo->sendsCore) return "extension (sends core)";
+-    else                       return "extension";
+-}
+-
+-int main(int argc, char **argv)
+-{
+-    Display              *display = NULL;
+-    Window               window   = 0;
+-    int                  event_base;
+-    int                  error_base;
+-    int                  major_version, minor_version, patch_version;
+-    DMXScreenAttributes  sinfo;
+-    DMXInputAttributes   iinfo;
+-    int                  count;
+-    int                  i;
+-
+-    if (argc == 2 || argc == 3) {
+-        if (!(display = XOpenDisplay(argv[1]))) {
+-            printf("Cannot open display %s\n", argv[1]);
+-            return -1;
+-        }
+-        if (argc == 3) window = strtol(argv[2], NULL, 0);
+-    } else {
+-        printf("Usage: %s display [windowid]\n", argv[0]);
+-        return -1;
+-    }
+-
+-    if (!display && !(display = XOpenDisplay(NULL))) {
+-        printf("Cannot open default display\n");
+-        return -1;
+-    }
+-
+-    if (!DMXQueryExtension(display, &event_base, &error_base)) {
+-        printf("DMX extension not present\n");
+-        return -1;
+-    }
+-    printf("DMX extension present: event_base = %d, error_base = %d\n",
+-           event_base, error_base);
+-
+-    if (!DMXQueryVersion(display,
+-                         &major_version, &minor_version, &patch_version)) {
+-        printf("Could not get extension version\n");
+-        return -1;
+-    }
+-    printf("Extension version: %d.%d patch %d\n",
+-           major_version, minor_version, patch_version);
+-
+-    if (!DMXGetScreenCount(display, &count)) {
+-        printf("Could not get screen count\n");
+-        return -1;
+-    }
+-    printf("Screen count = %d\n", count);
+-
+-    for (i = 0; i < count; i++) {
+-        if (!DMXGetScreenAttributes(display, i, &sinfo)) {
+-            printf("Could not get screen information for %d\n", i);
+-            return -1;
+-        }
+-        printf("%d: %s %ux%u+%d+%d %d @%dx%d (root: %dx%d%+d%+d)\n",
+-               i, sinfo.displayName,
+-               sinfo.screenWindowWidth, sinfo.screenWindowHeight,
+-               sinfo.screenWindowXoffset, sinfo.screenWindowYoffset,
+-               sinfo.logicalScreen,
+-               sinfo.rootWindowXorigin, sinfo.rootWindowYorigin,
+-               sinfo.rootWindowWidth, sinfo.rootWindowHeight,
+-               sinfo.rootWindowXoffset, sinfo.rootWindowYoffset);
+-    }
+-
+-    if (major_version == 1 && minor_version >= 1) {
+-        if (!DMXGetInputCount(display, &count)) {
+-            printf("Could not get input count\n");
+-            return -1;
+-        }
+-        printf("Input count = %d\n", count);
+-        for (i = 0; i < count; i++) {
+-            if (!DMXGetInputAttributes(display, i, &iinfo)) {
+-                printf("Could not get input information for id %d\n", i);
+-                return -1;
+-            }
+-            switch (iinfo.inputType) {
+-            case DMXLocalInputType:
+-                printf("  %2d local   %-20.20s %s\n", i, "", core(&iinfo));
+-                break;
+-            case DMXConsoleInputType:
+-                printf("  %2d console %-20.20s %s\n",
+-                       i, iinfo.name, core(&iinfo));
+-                break;
+-            case DMXBackendInputType:
+-                printf("  %2d backend %-20.20s id=%2d screen=%2d %s\n",
+-                       i, iinfo.name, iinfo.physicalId, iinfo.physicalScreen,
+-                       core(&iinfo));
+-                break;
+-            }
+-        }
+-    }
+-
+-    if (window) print_info(display, window, 0, 0);
+-    else        print_tree(display, DefaultRootWindow(display), 0, 0);
+-    
+-    XCloseDisplay(display);
+-    return 0;
+-}
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0010-Use-libtool-export-dynamic-flag-for-portability.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0010-Use-libtool-export-dynamic-flag-for-portability.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0010-Use-libtool-export-dynamic-flag-for-portability.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,45 @@
+From 8e5de45513577c63a33833931f2afd0cc59d42a7 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 24 Feb 2010 02:56:59 -0600
+Subject: [PATCH 10/37] Use libtool -export-dynamic flag for portability
+
+The linker flag required for exporting symbols in executables varies
+by platform.  libtool handles this with a single -export-dynamic
+flag (not to be confused with the similarly-named ELF linker flag)
+which tells it to use the correct platform-specific flag at link time.
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+---
+ configure.ac |   14 +++-----------
+ 1 files changed, 3 insertions(+), 11 deletions(-)
+
+diff --git xorg-server-1.7.99.902/configure.ac xorg-server-1.7.99.902/configure.ac
+index e497e76..d379b3a 100644
+--- xorg-server-1.7.99.902/configure.ac
++++ xorg-server-1.7.99.902/configure.ac
+@@ -1440,17 +1440,9 @@ UTILS_SYS_LIBS="${SYS_LIBS}"
+ AC_SUBST([UTILS_SYS_LIBS])
+ 
+ # The Xorg binary needs to export symbols so that they can be used from modules
+-# Some platforms require extra flags to do this.   gcc should set these flags
+-# when -rdynamic is passed to it, other compilers/linkers may need to be added
+-# here.
+-if test "x$GCC" = "xyes"; then
+-       LD_EXPORT_SYMBOLS_FLAG="-rdynamic"
+-fi
+-case $host_os in
+-       openbsd*)
+-       LD_EXPORT_SYMBOLS_FLAG="-Wl,--export-dynamic"
+-       ;;
+-esac
++# Some platforms require extra flags to do this.   libtool should set the
++# necessary flags for each platform when -export-dynamic is passed to it.
++LD_EXPORT_SYMBOLS_FLAG="-export-dynamic"
+ AC_SUBST([LD_EXPORT_SYMBOLS_FLAG])
+ 
+ dnl Imake defines SVR4 on SVR4 systems, and many files check for it, so
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0011-kdrive-Use-MAKE-in-relink-rules.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0011-kdrive-Use-MAKE-in-relink-rules.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0011-kdrive-Use-MAKE-in-relink-rules.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,63 @@
+From 037869d7b876f43158df88d63788b93a5d6187c1 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 17 Mar 2010 13:48:49 -0500
+Subject: [PATCH 11/37] kdrive: Use $(MAKE) in relink rules
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Mikhail Gusarov <dottedmag at dottedmag.net>
+Reviewed-by: Alan Coopersmith <alan.coopersmith at sun.com>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ hw/kdrive/Makefile.am       |    2 +-
+ hw/kdrive/ephyr/Makefile.am |    2 +-
+ hw/kdrive/fake/Makefile.am  |    2 +-
+ hw/kdrive/fbdev/Makefile.am |    2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/kdrive/Makefile.am xorg-server-1.7.99.902/hw/kdrive/Makefile.am
+index 906a14c..9e6c18e 100644
+--- xorg-server-1.7.99.902/hw/kdrive/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/Makefile.am
+@@ -27,4 +27,4 @@ SUBDIRS =			\
+ DIST_SUBDIRS = fbdev ephyr src linux fake
+ 
+ relink:
+-	@for i in $(SERVER_SUBDIRS) ; do make -C $$i relink ; done
++	@for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink ; done
+diff --git xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
+index ec6f445..bd74791 100644
+--- xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
+@@ -81,7 +81,7 @@ Xephyr_DEPENDENCIES =	\
+ Xephyr_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
+ 
+ relink:
+-	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
++	rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
+ 
+ MAN_SRCS = Xephyr.man.pre
+ 
+diff --git xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am
+index be0fa42..6a5cedf 100644
+--- xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am
+@@ -27,4 +27,4 @@ Xfake_DEPENDENCIES =	\
+ 	@KDRIVE_LOCAL_LIBS@
+ 
+ relink:
+-	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
++	rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
+diff --git xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am
+index 5d0ca3f..a1664ec 100644
+--- xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am
+@@ -25,5 +25,5 @@ Xfbdev_DEPENDENCIES =	\
+ Xfbdev_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
+ 
+ relink:
+-	rm -f $(bin_PROGRAMS) && make $(bin_PROGRAMS)
++	rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
+ endif
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0012-Use-EXEEXT-in-relink-rules-for-portable-DDXs.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0012-Use-EXEEXT-in-relink-rules-for-portable-DDXs.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0012-Use-EXEEXT-in-relink-rules-for-portable-DDXs.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,54 @@
+From fa7e062962d17862032bc600bfcffd486addb063 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 17 Mar 2010 13:52:38 -0500
+Subject: [PATCH 12/37] Use EXEEXT in relink rules for portable DDXs
+
+On Cygwin and MinGW, executables use the .exe suffix.  Autoconf and
+automake set EXEEXT on these platforms, and leave it empty on others
+where no suffix is used.  $(EXEEXT) must be appended to executable names
+in custom rules for portability:
+
+http://www.gnu.org/software/automake/manual/html_node/EXEEXT.html
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Alan Coopersmith <alan.coopersmith at sun.com>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ hw/dmx/Makefile.am   |    2 +-
+ hw/vfb/Makefile.am   |    2 +-
+ hw/xnest/Makefile.am |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/dmx/Makefile.am xorg-server-1.7.99.902/hw/dmx/Makefile.am
+index 3c59320..1e3e5da 100644
+--- xorg-server-1.7.99.902/hw/dmx/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/Makefile.am
+@@ -114,4 +114,4 @@ SUFFIXES = .$(APP_MAN_SUFFIX) .man
+ EXTRA_DIST = $(appman_PRE)
+ 
+ relink:
+-	rm -f Xdmx && $(MAKE) Xdmx
++	rm -f Xdmx$(EXEEXT) && $(MAKE) Xdmx$(EXEEXT)
+diff --git xorg-server-1.7.99.902/hw/vfb/Makefile.am xorg-server-1.7.99.902/hw/vfb/Makefile.am
+index c5b49a3..c6601c2 100644
+--- xorg-server-1.7.99.902/hw/vfb/Makefile.am
++++ xorg-server-1.7.99.902/hw/vfb/Makefile.am
+@@ -49,4 +49,4 @@ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ EXTRA_DIST = Xvfb.man.pre
+ 
+ relink:
+-	rm -f Xvfb && $(MAKE) Xvfb
++	rm -f Xvfb$(EXEEXT) && $(MAKE) Xvfb$(EXEEXT)
+diff --git xorg-server-1.7.99.902/hw/xnest/Makefile.am xorg-server-1.7.99.902/hw/xnest/Makefile.am
+index f95aab1..3e97490 100644
+--- xorg-server-1.7.99.902/hw/xnest/Makefile.am
++++ xorg-server-1.7.99.902/hw/xnest/Makefile.am
+@@ -89,4 +89,4 @@ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ 	$(LN_S) $< $@
+ 
+ relink:
+-	rm -f Xnest && $(MAKE) Xnest
++	rm -f Xnest$(EXEEXT) && $(MAKE) Xnest$(EXEEXT)
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0013-Fix-relink-targets-for-silent-rules.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0013-Fix-relink-targets-for-silent-rules.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0013-Fix-relink-targets-for-silent-rules.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,145 @@
+From 5e00f464c546debf9164f24c6d648623f7ee5946 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 17 Mar 2010 14:56:24 -0500
+Subject: [PATCH 13/37] Fix relink targets for silent rules
+
+Add $(AM_V_at) to all relink make targets to silence them when automake
+silent rules are in use.
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Alan Coopersmith <alan.coopersmith at sun.com>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ Makefile.am                 |    2 +-
+ hw/Makefile.am              |    2 +-
+ hw/dmx/Makefile.am          |    2 +-
+ hw/kdrive/Makefile.am       |    2 +-
+ hw/kdrive/ephyr/Makefile.am |    2 +-
+ hw/kdrive/fake/Makefile.am  |    2 +-
+ hw/kdrive/fbdev/Makefile.am |    2 +-
+ hw/vfb/Makefile.am          |    2 +-
+ hw/xfree86/Makefile.am      |    2 +-
+ hw/xnest/Makefile.am        |    2 +-
+ hw/xwin/Makefile.am         |    2 +-
+ 11 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git xorg-server-1.7.99.902/Makefile.am xorg-server-1.7.99.902/Makefile.am
+index 667c0de..8b7a2c8 100644
+--- xorg-server-1.7.99.902/Makefile.am
++++ xorg-server-1.7.99.902/Makefile.am
+@@ -94,4 +94,4 @@ DIST_SUBDIRS = \
+ 
+ # gross hack
+ relink: all
+-	$(MAKE) -C hw relink
++	$(AM_V_at)$(MAKE) -C hw relink
+diff --git xorg-server-1.7.99.902/hw/Makefile.am xorg-server-1.7.99.902/hw/Makefile.am
+index 7409906..92b007a 100644
+--- xorg-server-1.7.99.902/hw/Makefile.am
++++ xorg-server-1.7.99.902/hw/Makefile.am
+@@ -38,4 +38,4 @@ SUBDIRS =			\
+ DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
+ 
+ relink:
+-	for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink ; done
++	$(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink ; done
+diff --git xorg-server-1.7.99.902/hw/dmx/Makefile.am xorg-server-1.7.99.902/hw/dmx/Makefile.am
+index 1e3e5da..cdee586 100644
+--- xorg-server-1.7.99.902/hw/dmx/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/Makefile.am
+@@ -114,4 +114,4 @@ SUFFIXES = .$(APP_MAN_SUFFIX) .man
+ EXTRA_DIST = $(appman_PRE)
+ 
+ relink:
+-	rm -f Xdmx$(EXEEXT) && $(MAKE) Xdmx$(EXEEXT)
++	$(AM_V_at)rm -f Xdmx$(EXEEXT) && $(MAKE) Xdmx$(EXEEXT)
+diff --git xorg-server-1.7.99.902/hw/kdrive/Makefile.am xorg-server-1.7.99.902/hw/kdrive/Makefile.am
+index 9e6c18e..55d940f 100644
+--- xorg-server-1.7.99.902/hw/kdrive/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/Makefile.am
+@@ -27,4 +27,4 @@ SUBDIRS =			\
+ DIST_SUBDIRS = fbdev ephyr src linux fake
+ 
+ relink:
+-	@for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink ; done
++	$(AM_V_at)for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink ; done
+diff --git xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
+index bd74791..d1dd630 100644
+--- xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
+@@ -81,7 +81,7 @@ Xephyr_DEPENDENCIES =	\
+ Xephyr_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
+ 
+ relink:
+-	rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
++	$(AM_V_at)rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
+ 
+ MAN_SRCS = Xephyr.man.pre
+ 
+diff --git xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am
+index 6a5cedf..6d3ed05 100644
+--- xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/fake/Makefile.am
+@@ -27,4 +27,4 @@ Xfake_DEPENDENCIES =	\
+ 	@KDRIVE_LOCAL_LIBS@
+ 
+ relink:
+-	rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
++	$(AM_V_at)rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
+diff --git xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am
+index a1664ec..ec9df95 100644
+--- xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/fbdev/Makefile.am
+@@ -25,5 +25,5 @@ Xfbdev_DEPENDENCIES =	\
+ Xfbdev_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
+ 
+ relink:
+-	rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
++	$(AM_V_at)rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
+ endif
+diff --git xorg-server-1.7.99.902/hw/vfb/Makefile.am xorg-server-1.7.99.902/hw/vfb/Makefile.am
+index c6601c2..a183824 100644
+--- xorg-server-1.7.99.902/hw/vfb/Makefile.am
++++ xorg-server-1.7.99.902/hw/vfb/Makefile.am
+@@ -49,4 +49,4 @@ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ EXTRA_DIST = Xvfb.man.pre
+ 
+ relink:
+-	rm -f Xvfb$(EXEEXT) && $(MAKE) Xvfb$(EXEEXT)
++	$(AM_V_at)rm -f Xvfb$(EXEEXT) && $(MAKE) Xvfb$(EXEEXT)
+diff --git xorg-server-1.7.99.902/hw/xfree86/Makefile.am xorg-server-1.7.99.902/hw/xfree86/Makefile.am
+index 914e11f..116113b 100644
+--- xorg-server-1.7.99.902/hw/xfree86/Makefile.am
++++ xorg-server-1.7.99.902/hw/xfree86/Makefile.am
+@@ -114,7 +114,7 @@ CPP_FILES_FLAGS = \
+ 	-DMODULEPATH=\"$(DEFAULT_MODULE_PATH)\"
+ 
+ relink:
+-	rm -f Xorg && $(MAKE) Xorg
++	$(AM_V_at)rm -f Xorg && $(MAKE) Xorg
+ 
+ xorg.conf.example.pre: xorgconf.cpp
+ 	cp $(srcdir)/xorgconf.cpp $@
+diff --git xorg-server-1.7.99.902/hw/xnest/Makefile.am xorg-server-1.7.99.902/hw/xnest/Makefile.am
+index 3e97490..877ab8b 100644
+--- xorg-server-1.7.99.902/hw/xnest/Makefile.am
++++ xorg-server-1.7.99.902/hw/xnest/Makefile.am
+@@ -89,4 +89,4 @@ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ 	$(LN_S) $< $@
+ 
+ relink:
+-	rm -f Xnest$(EXEEXT) && $(MAKE) Xnest$(EXEEXT)
++	$(AM_V_at)rm -f Xnest$(EXEEXT) && $(MAKE) Xnest$(EXEEXT)
+diff --git xorg-server-1.7.99.902/hw/xwin/Makefile.am xorg-server-1.7.99.902/hw/xwin/Makefile.am
+index 8bf6546..41a4515 100644
+--- xorg-server-1.7.99.902/hw/xwin/Makefile.am
++++ xorg-server-1.7.99.902/hw/xwin/Makefile.am
+@@ -222,4 +222,4 @@ EXTRA_DIST = \
+ 	xlaunch/window/wizard.h
+ 
+ relink:
+-	rm -f XWin$(EXEEXT) && $(MAKE) XWin$(EXEEXT)
++	$(AM_V_at)rm -f XWin$(EXEEXT) && $(MAKE) XWin$(EXEEXT)
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0014-Respect-value-of-SED-from-configure.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0014-Respect-value-of-SED-from-configure.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0014-Respect-value-of-SED-from-configure.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,61 @@
+From 9be4157391edf0c5fc4ee36adfb1eb1c3bdb8e3b Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 17 Mar 2010 13:33:39 -0500
+Subject: [PATCH 14/37] Respect value of SED from configure
+
+We now use libtool, which calls AC_PROG_SED and sets SED as the path to
+a fully-functional 'sed' (which may also be called 'gsed' if GNU sed is
+installed alongside a proprietary version).  Therefore we should respect
+the value of SED so we are sure to use the correct one.
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Alan Coopersmith <alan.coopersmith at sun.com>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ cpprules.in               |    2 --
+ hw/dmx/Makefile.am        |    2 +-
+ hw/dmx/config/Makefile.am |    2 +-
+ 3 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git xorg-server-1.7.99.902/cpprules.in xorg-server-1.7.99.902/cpprules.in
+index 2e0856b..301305e 100644
+--- xorg-server-1.7.99.902/cpprules.in
++++ xorg-server-1.7.99.902/cpprules.in
+@@ -2,8 +2,6 @@
+ # Rules for generating files using the C pre-processor
+ # (Replaces CppFileTarget from Imake)
+ 
+-SED = sed
+-
+ SUFFIXES = .pre .man .man.pre
+ 
+ # Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM
+diff --git xorg-server-1.7.99.902/hw/dmx/Makefile.am xorg-server-1.7.99.902/hw/dmx/Makefile.am
+index cdee586..fc9fde7 100644
+--- xorg-server-1.7.99.902/hw/dmx/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/Makefile.am
+@@ -109,7 +109,7 @@ MAN_SUBSTS = \
+ SUFFIXES = .$(APP_MAN_SUFFIX) .man
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	sed $(MAN_SUBSTS) < $< > $@
++	$(SED) $(MAN_SUBSTS) < $< > $@
+ 
+ EXTRA_DIST = $(appman_PRE)
+ 
+diff --git xorg-server-1.7.99.902/hw/dmx/config/Makefile.am xorg-server-1.7.99.902/hw/dmx/config/Makefile.am
+index 9fa7113..7de745f 100644
+--- xorg-server-1.7.99.902/hw/dmx/config/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/config/Makefile.am
+@@ -69,7 +69,7 @@ XORGRELSTRING = @PACKAGE_STRING@
+ MAN_SUBSTS = -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' 
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	sed $(MAN_SUBSTS) < $< > $@
++	$(SED) $(MAN_SUBSTS) < $< > $@
+ 
+ EXTRA_DIST = \
+ 	$(appman_PRE) \
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0015-Fix-.man.N-targets-for-AM_SILENT_RULES.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0015-Fix-.man.N-targets-for-AM_SILENT_RULES.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0015-Fix-.man.N-targets-for-AM_SILENT_RULES.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,212 @@
+From 0820a6e2fb005b5f856dda25e1644f34fc994129 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 17 Mar 2010 13:40:41 -0500
+Subject: [PATCH 15/37] Fix .man.N targets for AM_SILENT_RULES
+
+Add $(AM_V_GEN) for sed-based rules so they appear as expected with
+automake silent rules, and $(AM_V_at) to completely hide cp/ln/rm
+commands which are not prone to fail.
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Alan Coopersmith <alan.coopersmith at sun.com>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ doc/Makefile.am                  |    4 ++--
+ hw/dmx/Makefile.am               |    2 +-
+ hw/dmx/config/Makefile.am        |    2 +-
+ hw/kdrive/ephyr/Makefile.am      |    4 ++--
+ hw/vfb/Makefile.am               |    4 ++--
+ hw/xfree86/doc/man/Makefile.am   |    8 ++++----
+ hw/xfree86/exa/Makefile.am       |    4 ++--
+ hw/xfree86/fbdevhw/Makefile.am   |    4 ++--
+ hw/xfree86/utils/gtf/Makefile.am |    4 ++--
+ hw/xnest/Makefile.am             |    4 ++--
+ hw/xquartz/doc/Makefile.am       |    2 +-
+ hw/xwin/Makefile.am              |    8 ++++----
+ 12 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git xorg-server-1.7.99.902/doc/Makefile.am xorg-server-1.7.99.902/doc/Makefile.am
+index bee64b6..2ff683c 100644
+--- xorg-server-1.7.99.902/doc/Makefile.am
++++ xorg-server-1.7.99.902/doc/Makefile.am
+@@ -14,9 +14,9 @@ CLEANFILES = $(appman_PROCESSED) $(appman_DATA)
+ include $(top_srcdir)/cpprules.in
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	cp $< $@
++	$(AM_V_at)cp $< $@
+ 
+-EXTRAMANDEFS = -D__default_font_path__="`echo $(COMPILEDDEFAULTFONTPATH) | sed -e 's/,/, /g'`"
++EXTRAMANDEFS = -D__default_font_path__="`echo $(COMPILEDDEFAULTFONTPATH) | $(SED) -e 's/,/, /g'`"
+ 
+ # Docs about X server internals that we ship with source but don't install
+ DEVEL_DOCS = smartsched
+diff --git xorg-server-1.7.99.902/hw/dmx/Makefile.am xorg-server-1.7.99.902/hw/dmx/Makefile.am
+index fc9fde7..0d06346 100644
+--- xorg-server-1.7.99.902/hw/dmx/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/Makefile.am
+@@ -109,7 +109,7 @@ MAN_SUBSTS = \
+ SUFFIXES = .$(APP_MAN_SUFFIX) .man
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	$(SED) $(MAN_SUBSTS) < $< > $@
++	$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+ 
+ EXTRA_DIST = $(appman_PRE)
+ 
+diff --git xorg-server-1.7.99.902/hw/dmx/config/Makefile.am xorg-server-1.7.99.902/hw/dmx/config/Makefile.am
+index 7de745f..25a814e 100644
+--- xorg-server-1.7.99.902/hw/dmx/config/Makefile.am
++++ xorg-server-1.7.99.902/hw/dmx/config/Makefile.am
+@@ -69,7 +69,7 @@ XORGRELSTRING = @PACKAGE_STRING@
+ MAN_SUBSTS = -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' 
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	$(SED) $(MAN_SUBSTS) < $< > $@
++	$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+ 
+ EXTRA_DIST = \
+ 	$(appman_PRE) \
+diff --git xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
+index d1dd630..8646703 100644
+--- xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/ephyr/Makefile.am
+@@ -89,8 +89,8 @@ appmandir = $(APP_MAN_DIR)
+ appman_DATA = Xephyr.$(APP_MAN_SUFFIX)
+ 
+ Xephyr.$(APP_MAN_SUFFIX): Xephyr.man
+-	-rm -f Xephyr.$(APP_MAN_SUFFIX)
+-	$(LN_S) Xephyr.man Xephyr.$(APP_MAN_SUFFIX)
++	-$(AM_V_at)rm -f Xephyr.$(APP_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) Xephyr.man Xephyr.$(APP_MAN_SUFFIX)
+ 
+ include $(top_srcdir)/cpprules.in
+ 
+diff --git xorg-server-1.7.99.902/hw/vfb/Makefile.am xorg-server-1.7.99.902/hw/vfb/Makefile.am
+index a183824..4ac0c8f 100644
+--- xorg-server-1.7.99.902/hw/vfb/Makefile.am
++++ xorg-server-1.7.99.902/hw/vfb/Makefile.am
+@@ -43,8 +43,8 @@ CLEANFILES = $(appman_PRE) $(appman_DATA)
+ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	-rm -f $@
+-	$(LN_S) $< $@
++	-$(AM_V_at)rm -f $@
++	$(AM_V_at)$(LN_S) $< $@
+ 
+ EXTRA_DIST = Xvfb.man.pre
+ 
+diff --git xorg-server-1.7.99.902/hw/xfree86/doc/man/Makefile.am xorg-server-1.7.99.902/hw/xfree86/doc/man/Makefile.am
+index d8b2aa7..737166b 100644
+--- xorg-server-1.7.99.902/hw/xfree86/doc/man/Makefile.am
++++ xorg-server-1.7.99.902/hw/xfree86/doc/man/Makefile.am
+@@ -8,12 +8,12 @@ filemandir = $(FILE_MAN_DIR)
+ fileman_DATA = xorg.conf.$(FILE_MAN_SUFFIX)
+ 
+ Xorg.$(APP_MAN_SUFFIX): Xorg.man
+-	-rm -f Xorg.$(APP_MAN_SUFFIX)
+-	$(LN_S) Xorg.man Xorg.$(APP_MAN_SUFFIX)
++	-$(AM_V_at)rm -f Xorg.$(APP_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) Xorg.man Xorg.$(APP_MAN_SUFFIX)
+ 
+ xorg.conf.$(FILE_MAN_SUFFIX): xorg.conf.man
+-	-rm -f xorg.conf.$(FILE_MAN_SUFFIX)
+-	$(LN_S) xorg.conf.man xorg.conf.$(FILE_MAN_SUFFIX)
++	-$(AM_V_at)rm -f xorg.conf.$(FILE_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) xorg.conf.man xorg.conf.$(FILE_MAN_SUFFIX)
+ 
+ include $(top_srcdir)/cpprules.in
+ 
+diff --git xorg-server-1.7.99.902/hw/xfree86/exa/Makefile.am xorg-server-1.7.99.902/hw/xfree86/exa/Makefile.am
+index 9eb2e17..da9b720 100644
+--- xorg-server-1.7.99.902/hw/xfree86/exa/Makefile.am
++++ xorg-server-1.7.99.902/hw/xfree86/exa/Makefile.am
+@@ -22,7 +22,7 @@ driverman_DATA = exa.$(DRIVER_MAN_SUFFIX)
+ CLEANFILES = $(driverman_DATA) exa.man
+ 
+ exa.$(DRIVER_MAN_SUFFIX): exa.man
+-	-rm -f exa.$(DRIVER_MAN_SUFFIX)
+-	$(LN_S) exa.man exa.$(DRIVER_MAN_SUFFIX)
++	-$(AM_V_at)rm -f exa.$(DRIVER_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) exa.man exa.$(DRIVER_MAN_SUFFIX)
+ 
+ EXTRA_DIST = exa.man.pre
+diff --git xorg-server-1.7.99.902/hw/xfree86/fbdevhw/Makefile.am xorg-server-1.7.99.902/hw/xfree86/fbdevhw/Makefile.am
+index 6a4a6e4..0663525 100644
+--- xorg-server-1.7.99.902/hw/xfree86/fbdevhw/Makefile.am
++++ xorg-server-1.7.99.902/hw/xfree86/fbdevhw/Makefile.am
+@@ -22,7 +22,7 @@ driverman_DATA = fbdevhw.$(DRIVER_MAN_SUFFIX)
+ CLEANFILES = $(driverman_DATA) fbdevhw.man
+ 
+ fbdevhw.$(DRIVER_MAN_SUFFIX): fbdevhw.man
+-	-rm -f fbdevhw.$(DRIVER_MAN_SUFFIX)
+-	$(LN_S) fbdevhw.man fbdevhw.$(DRIVER_MAN_SUFFIX)
++	-$(AM_V_at)rm -f fbdevhw.$(DRIVER_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) fbdevhw.man fbdevhw.$(DRIVER_MAN_SUFFIX)
+ 
+ EXTRA_DIST = fbpriv.h fbdevhw.man.pre README
+diff --git xorg-server-1.7.99.902/hw/xfree86/utils/gtf/Makefile.am xorg-server-1.7.99.902/hw/xfree86/utils/gtf/Makefile.am
+index 3ca568d..d1a6d61 100644
+--- xorg-server-1.7.99.902/hw/xfree86/utils/gtf/Makefile.am
++++ xorg-server-1.7.99.902/hw/xfree86/utils/gtf/Makefile.am
+@@ -40,5 +40,5 @@ CLEANFILES = $(appman_PRE) $(appman_DATA)
+ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	-rm -f $@
+-	$(LN_S) $< $@
++	-$(AM_V_at)rm -f $@
++	$(AM_V_at)$(LN_S) $< $@
+diff --git xorg-server-1.7.99.902/hw/xnest/Makefile.am xorg-server-1.7.99.902/hw/xnest/Makefile.am
+index 877ab8b..666a0f0 100644
+--- xorg-server-1.7.99.902/hw/xnest/Makefile.am
++++ xorg-server-1.7.99.902/hw/xnest/Makefile.am
+@@ -85,8 +85,8 @@ CLEANFILES = $(appman_PRE) $(appman_DATA)
+ SUFFIXES += .$(APP_MAN_SUFFIX) .man
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	-rm -f $@
+-	$(LN_S) $< $@
++	-$(AM_V_at)rm -f $@
++	$(AM_V_at)$(LN_S) $< $@
+ 
+ relink:
+ 	$(AM_V_at)rm -f Xnest$(EXEEXT) && $(MAKE) Xnest$(EXEEXT)
+diff --git xorg-server-1.7.99.902/hw/xquartz/doc/Makefile.am xorg-server-1.7.99.902/hw/xquartz/doc/Makefile.am
+index b812af1..7310de3 100644
+--- xorg-server-1.7.99.902/hw/xquartz/doc/Makefile.am
++++ xorg-server-1.7.99.902/hw/xquartz/doc/Makefile.am
+@@ -8,7 +8,7 @@ CLEANFILES = $(appman_PROCESSED) $(appman_DATA)
+ include $(top_srcdir)/cpprules.in
+ 
+ .man.$(APP_MAN_SUFFIX):
+-	cp $< $@
++	$(AM_V_at)cp $< $@
+ 
+ EXTRA_DIST = \
+ 	Xquartz.man.pre
+diff --git xorg-server-1.7.99.902/hw/xwin/Makefile.am xorg-server-1.7.99.902/hw/xwin/Makefile.am
+index 41a4515..0577300 100644
+--- xorg-server-1.7.99.902/hw/xwin/Makefile.am
++++ xorg-server-1.7.99.902/hw/xwin/Makefile.am
+@@ -180,12 +180,12 @@ filemandir = $(FILE_MAN_DIR)
+ fileman_DATA = XWinrc.$(FILE_MAN_SUFFIX)
+ 
+ XWin.$(APP_MAN_SUFFIX): XWin.man
+-	-rm -f XWin.$(APP_MAN_SUFFIX)
+-	$(LN_S) XWin.man XWin.$(APP_MAN_SUFFIX)
++	-$(AM_V_at)rm -f XWin.$(APP_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) XWin.man XWin.$(APP_MAN_SUFFIX)
+ 
+ XWinrc.$(FILE_MAN_SUFFIX): XWinrc.man
+-	-rm -f XWinrc.$(FILE_MAN_SUFFIX)
+-	$(LN_S) XWinrc.man XWinrc.$(FILE_MAN_SUFFIX)
++	-$(AM_V_at)rm -f XWinrc.$(FILE_MAN_SUFFIX)
++	$(AM_V_at)$(LN_S) XWinrc.man XWinrc.$(FILE_MAN_SUFFIX)
+ 
+ EXTRAMANDEFS = -D__logdir__=$(logdir) -D__sysconfdir__=$(sysconfdir) -D__datadir__=$(datadir)
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0016-Catch-errors-in-recursive-relink-targets.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0016-Catch-errors-in-recursive-relink-targets.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0016-Catch-errors-in-recursive-relink-targets.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,38 @@
+From 946b49ebcbf47e030a6e00ce1a699f3b055f638a Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Wed, 17 Mar 2010 17:37:05 -0500
+Subject: [PATCH 16/37] Catch errors in recursive relink targets
+
+If make relink fails in a subdirectory, we need to catch the error
+otherwise make will continue iterating the 'for' loop.
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
+---
+ hw/Makefile.am        |    2 +-
+ hw/kdrive/Makefile.am |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/Makefile.am xorg-server-1.7.99.902/hw/Makefile.am
+index 92b007a..6c2cc6b 100644
+--- xorg-server-1.7.99.902/hw/Makefile.am
++++ xorg-server-1.7.99.902/hw/Makefile.am
+@@ -38,4 +38,4 @@ SUBDIRS =			\
+ DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
+ 
+ relink:
+-	$(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink ; done
++	$(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done
+diff --git xorg-server-1.7.99.902/hw/kdrive/Makefile.am xorg-server-1.7.99.902/hw/kdrive/Makefile.am
+index 55d940f..471ca89 100644
+--- xorg-server-1.7.99.902/hw/kdrive/Makefile.am
++++ xorg-server-1.7.99.902/hw/kdrive/Makefile.am
+@@ -27,4 +27,4 @@ SUBDIRS =			\
+ DIST_SUBDIRS = fbdev ephyr src linux fake
+ 
+ relink:
+-	$(AM_V_at)for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink ; done
++	$(AM_V_at)for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0017-mi-remove-deprecated-include-X11-extensions-xf86bigf.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0017-mi-remove-deprecated-include-X11-extensions-xf86bigf.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0017-mi-remove-deprecated-include-X11-extensions-xf86bigf.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,27 @@
+From 822b9f9a3e822df8848995eda246f83864d1366f Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Sun, 21 Feb 2010 01:24:44 -0600
+Subject: [PATCH 17/37] mi: remove deprecated #include <X11/extensions/xf86bigfstr.h> in miinitext.c
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ mi/miinitext.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/mi/miinitext.c xorg-server-1.7.99.902/mi/miinitext.c
+index 2a67fd3..692be86 100644
+--- xorg-server-1.7.99.902/mi/miinitext.c
++++ xorg-server-1.7.99.902/mi/miinitext.c
+@@ -185,7 +185,7 @@ typedef void (*InitExtension)(INITARGS);
+ #include <X11/extensions/panoramiXproto.h>
+ #endif
+ #ifdef XF86BIGFONT
+-#include <X11/extensions/xf86bigfstr.h>
++#include <X11/extensions/xf86bigfproto.h>
+ #endif
+ #ifdef RES
+ #include <X11/extensions/XResproto.h>
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0018-Xext-fix-old-style-function-definitions-in-xf86bigfo.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0018-Xext-fix-old-style-function-definitions-in-xf86bigfo.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0018-Xext-fix-old-style-function-definitions-in-xf86bigfo.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,36 @@
+From 57a049ea89b008c0b60316c3b6e6ff5c8fbd4cad Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Thu, 18 Mar 2010 04:46:20 -0500
+Subject: [PATCH 18/37] Xext: fix old-style function definitions in xf86bigfont.c
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ Xext/xf86bigfont.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/Xext/xf86bigfont.c xorg-server-1.7.99.902/Xext/xf86bigfont.c
+index ba8b603..ce33fda 100644
+--- xorg-server-1.7.99.902/Xext/xf86bigfont.c
++++ xorg-server-1.7.99.902/Xext/xf86bigfont.c
+@@ -143,7 +143,7 @@ CheckForShmSyscall(void)
+ #endif
+ 
+ void
+-XFree86BigfontExtensionInit()
++XFree86BigfontExtensionInit(void)
+ {
+     if (AddExtension(XF86BIGFONTNAME,
+ 		     XF86BigfontNumberEvents,
+@@ -302,7 +302,7 @@ XF86BigfontFreeFontShm(
+ 
+ /* Called upon fatal signal. */
+ void
+-XF86BigfontCleanup()
++XF86BigfontCleanup(void)
+ {
+ #ifdef HAS_SHM
+     while (ShmList)
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0019-New-header-for-XF86Bigfont-server-functions.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0019-New-header-for-XF86Bigfont-server-functions.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0019-New-header-for-XF86Bigfont-server-functions.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,122 @@
+From abf4e0b7e349b0238b2b97a16b8a308b5026af31 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Mon, 22 Mar 2010 00:44:28 -0500
+Subject: [PATCH 19/37] New header for XF86Bigfont server functions
+
+Xext/xf86bigfont.c contains three non-static functions which are called
+elsewhere in the server.  This creates a new header containing these
+declarations in order to fix several warnings:
+
+xf86bigfont.c:285: warning: no previous prototype for `XF86BigfontFreeFontShm'
+dixfonts.c:502: warning: implicit declaration of function `XF86BigfontFreeFontS$
+dixfonts.c:502: warning: nested extern declaration of `XF86BigfontFreeFontShm'
+log.c:436: warning: implicit declaration of function `XF86BigfontCleanup'
+log.c:436: warning: nested extern declaration of `XF86BigfontCleanup'
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ Xext/Makefile.am      |    2 +-
+ Xext/xf86bigfont.c    |    1 +
+ Xext/xf86bigfontsrv.h |   34 ++++++++++++++++++++++++++++++++++
+ dix/dixfonts.c        |    3 +--
+ os/log.c              |    3 +--
+ 5 files changed, 38 insertions(+), 5 deletions(-)
+ create mode 100644 Xext/xf86bigfontsrv.h
+
+diff --git xorg-server-1.7.99.902/Xext/Makefile.am xorg-server-1.7.99.902/Xext/Makefile.am
+index 193d6e5..53cbc1f 100644
+--- xorg-server-1.7.99.902/Xext/Makefile.am
++++ xorg-server-1.7.99.902/Xext/Makefile.am
+@@ -107,7 +107,7 @@ MODULE_SRCS  += $(MULTIBUFFER_SRCS)
+ endif
+ 
+ # XF86 Big Font extension
+-BIGFONT_SRCS = xf86bigfont.c
++BIGFONT_SRCS = xf86bigfont.c xf86bigfontsrv.h
+ if XF86BIGFONT
+ BUILTIN_SRCS += $(BIGFONT_SRCS)
+ endif
+diff --git xorg-server-1.7.99.902/Xext/xf86bigfont.c xorg-server-1.7.99.902/Xext/xf86bigfont.c
+index ce33fda..a4eb3f6 100644
+--- xorg-server-1.7.99.902/Xext/xf86bigfont.c
++++ xorg-server-1.7.99.902/Xext/xf86bigfont.c
+@@ -74,6 +74,7 @@
+ #include "protocol-versions.h"
+ 
+ #include <X11/extensions/xf86bigfproto.h>
++#include "xf86bigfontsrv.h"
+ 
+ static void XF86BigfontResetProc(
+     ExtensionEntry *	/* extEntry */
+diff --git xorg-server-1.7.99.902/Xext/xf86bigfontsrv.h xorg-server-1.7.99.902/Xext/xf86bigfontsrv.h
+new file mode 100644
+index 0000000..2c78dc4
+--- /dev/null
++++ xorg-server-1.7.99.902/Xext/xf86bigfontsrv.h
+@@ -0,0 +1,34 @@
++/*
++ * Copyright © 2010 Yaakov Selkowitz
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial portions
++ * of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
++ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
++ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#ifndef _XF86BIGFONTSRV_H_
++#define _XF86BIGFONTSRV_H_
++
++#include <X11/fonts/font.h>
++
++extern void XFree86BigfontExtensionInit(void);
++extern void XF86BigfontFreeFontShm(FontPtr);
++extern void XF86BigfontCleanup(void);
++
++#endif
+diff --git xorg-server-1.7.99.902/dix/dixfonts.c xorg-server-1.7.99.902/dix/dixfonts.c
+index 329318d..6dc8193 100644
+--- xorg-server-1.7.99.902/dix/dixfonts.c
++++ xorg-server-1.7.99.902/dix/dixfonts.c
+@@ -71,8 +71,7 @@ Equipment Corporation.
+ #endif
+ 
+ #ifdef XF86BIGFONT
+-#define _XF86BIGFONT_SERVER_
+-#include <X11/extensions/xf86bigfont.h>
++#include "xf86bigfontsrv.h"
+ #endif
+ 
+ #define QUERYCHARINFO(pci, pr)  *(pr) = (pci)->metrics
+diff --git xorg-server-1.7.99.902/os/log.c xorg-server-1.7.99.902/os/log.c
+index 0002e59..f4832c1 100644
+--- xorg-server-1.7.99.902/os/log.c
++++ xorg-server-1.7.99.902/os/log.c
+@@ -99,8 +99,7 @@ OR PERFORMANCE OF THIS SOFTWARE.
+ #endif
+ 
+ #ifdef XF86BIGFONT
+-#define _XF86BIGFONT_SERVER_
+-#include <X11/extensions/xf86bigfont.h>
++#include "xf86bigfontsrv.h"
+ #endif
+ 
+ #ifdef DDXOSVERRORF
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0020-Cygwin-X-Make-X-XWin-symlink-during-install.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0020-Cygwin-X-Make-X-XWin-symlink-during-install.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0020-Cygwin-X-Make-X-XWin-symlink-during-install.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,28 @@
+From c3da76643aeebdd24047e3e14a860507eac37ec3 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Date: Thu, 18 Mar 2010 23:19:20 -0500
+Subject: [PATCH 20/37] Cygwin/X: Make X -> XWin symlink during install
+
+Signed-off-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
+Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
+---
+ hw/xwin/Makefile.am |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xwin/Makefile.am xorg-server-1.7.99.902/hw/xwin/Makefile.am
+index 0577300..89b021b 100644
+--- xorg-server-1.7.99.902/hw/xwin/Makefile.am
++++ xorg-server-1.7.99.902/hw/xwin/Makefile.am
+@@ -194,6 +194,9 @@ xwinconfig_DATA = system.XWinrc
+ 
+ include $(top_srcdir)/cpprules.in
+ 
++install-exec-hook:
++	(cd $(DESTDIR)$(bindir) && rm -f X && $(LN_S) XWin$(EXEEXT) X)
++
+ EXTRA_DIST = \
+ 	$(GLX_EXTRAS) \
+ 	$(MAN_SRCS) \
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0021-Xext-Fix-cursor-reference-counting-hazard.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0021-Xext-Fix-cursor-reference-counting-hazard.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0021-Xext-Fix-cursor-reference-counting-hazard.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,39 @@
+From 3083c5d0c4386cdd7083b7a83ac72fdad2f1e61e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer at vmware.com>
+Date: Mon, 22 Mar 2010 18:01:17 +0100
+Subject: [PATCH 21/37] Xext: Fix cursor reference counting hazard.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Make sure the reference count of the new cursor is increased before the old
+one is decreased, otherwise bad things will happen if they're one and the
+same and the reference count is 1 initially. Not sure this can actually happen
+here, but better safe than sorry.
+
+Signed-off-by: Michel Dänzer <daenzer at vmware.com>
+Reviewed-by: Roland Scheidegger <sroland at vmware.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+ Xext/saver.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/Xext/saver.c xorg-server-1.7.99.902/Xext/saver.c
+index 2549e8a..aa2e614 100644
+--- xorg-server-1.7.99.902/Xext/saver.c
++++ xorg-server-1.7.99.902/Xext/saver.c
+@@ -620,10 +620,10 @@ CreateSaverWindow (ScreenPtr pScreen)
+     	    	FreeResource (pWin->drawable.id, RT_NONE);
+     	    	return FALSE;
+ 	    }
++	pAttr->pCursor->refcnt++;
+ 	if (pWin->optional->cursor)
+ 	    FreeCursor (pWin->optional->cursor, (Cursor)0);
+ 	pWin->optional->cursor = pAttr->pCursor;
+-	pAttr->pCursor->refcnt++;
+ 	pWin->cursorIsNone = FALSE;
+ 	CheckWindowOptionalNeed (pWin);
+ 	mask |= CWCursor;
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0022-Fix-typos-in-the-swap-functions.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0022-Fix-typos-in-the-swap-functions.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0022-Fix-typos-in-the-swap-functions.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,58 @@
+From 0c2fde5c8ad6e94b4ed1588aa93256a2b64f74d9 Mon Sep 17 00:00:00 2001
+From: Tomas Carnecky <tom at dbservice.com>
+Date: Mon, 22 Mar 2010 11:20:15 -0700
+Subject: [PATCH 22/37] Fix typos in the swap functions
+
+This should fix bug #3539.
+
+Signed-off-by: Tomas Carnecky <tom at dbservice.com>
+Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+ glx/glxcmdsswap.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git xorg-server-1.7.99.902/glx/glxcmdsswap.c xorg-server-1.7.99.902/glx/glxcmdsswap.c
+index f1c0ce6..c414dc8 100644
+--- xorg-server-1.7.99.902/glx/glxcmdsswap.c
++++ xorg-server-1.7.99.902/glx/glxcmdsswap.c
+@@ -354,7 +354,7 @@ int __glXDispSwap_CreateGLXPbufferSGIX(__GLXclientState *cl, GLbyte *pc)
+ 
+ int __glXDispSwap_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+ {
+-    xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) req;
++    xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) pc;
+     __GLX_DECLARE_SWAP_VARIABLES;
+ 
+     __GLX_SWAP_INT(&req->pbuffer);
+@@ -364,7 +364,7 @@ int __glXDispSwap_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+ 
+ int __glXDispSwap_DestroyGLXPbufferSGIX(__GLXclientState *cl, GLbyte *pc)
+ {
+-    xGLXDestroyGLXPbufferSGIXReq *req = (xGLXDestroyGLXPbufferSGIXReq *) req;
++    xGLXDestroyGLXPbufferSGIXReq *req = (xGLXDestroyGLXPbufferSGIXReq *) pc;
+     __GLX_DECLARE_SWAP_VARIABLES;
+ 
+     __GLX_SWAP_INT(&req->pbuffer);
+@@ -375,7 +375,7 @@ int __glXDispSwap_DestroyGLXPbufferSGIX(__GLXclientState *cl, GLbyte *pc)
+ int __glXDispSwap_ChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+ {
+     xGLXChangeDrawableAttributesReq *req =
+-	(xGLXChangeDrawableAttributesReq *) req;
++	(xGLXChangeDrawableAttributesReq *) pc;
+     __GLX_DECLARE_SWAP_VARIABLES;
+     __GLX_DECLARE_SWAP_ARRAY_VARIABLES;
+     CARD32 *attribs;
+@@ -392,7 +392,7 @@ int __glXDispSwap_ChangeDrawableAttributesSGIX(__GLXclientState *cl,
+ 					       GLbyte *pc)
+ {
+     xGLXChangeDrawableAttributesSGIXReq *req =
+-	(xGLXChangeDrawableAttributesSGIXReq *) req;
++	(xGLXChangeDrawableAttributesSGIXReq *) pc;
+     __GLX_DECLARE_SWAP_VARIABLES;
+     __GLX_DECLARE_SWAP_ARRAY_VARIABLES;
+     CARD32 *attribs;
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0023-configure-Always-define-XINPUT.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0023-configure-Always-define-XINPUT.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0023-configure-Always-define-XINPUT.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,31 @@
+From 6389405b56d2221d8a7b80c4bb3bd3b4e1a29bab Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Mon, 22 Mar 2010 09:20:49 +1000
+Subject: [PATCH 23/37] configure: Always define XINPUT.
+
+This define was removed in e251c9e75afdc "Remove all traces of #ifdef XINPUT
+and the matching bits from the configure.ac". Drivers that support multiple
+server versions and still check for ifdef XINPUT now always build without
+XINPUT support if they're calling XORG_DRIVER_CHECK_EXT(XINPUT, inputproto).
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
+---
+ configure.ac |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.99.902/configure.ac xorg-server-1.7.99.902/configure.ac
+index d379b3a..92c34ab 100644
+--- xorg-server-1.7.99.902/configure.ac
++++ xorg-server-1.7.99.902/configure.ac
+@@ -1122,6 +1122,7 @@ MIEXT_DAMAGE_LIB='$(top_builddir)/miext/damage/libdamage.la'
+ MIEXT_DAMAGE_INC='-I$(top_srcdir)/miext/damage'
+ 
+ # XINPUT extension is integral part of the server
++AC_DEFINE(XINPUT, 1, [Support X Input extension])
+ XI_LIB='$(top_builddir)/Xi/libXi.la'
+ XI_INC='-I$(top_srcdir)/Xi'
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0024-xfree86-remove-if-1-from-the-dawn-of-time.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0024-xfree86-remove-if-1-from-the-dawn-of-time.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0024-xfree86-remove-if-1-from-the-dawn-of-time.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,42 @@
+From 0ecfab89d1754b0b7e32b3964b40663d1810cd62 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Mon, 22 Mar 2010 14:04:09 +1000
+Subject: [PATCH 24/37] xfree86: remove if 1 from the dawn of time.
+
+7+ years for an if 1 should be enough to just admit that there's no other
+option.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Reviewed-by: Fernando Carrijo <fcarrijo at yahoo.com.br>
+Reviewed-by: Corbin Simpson <MostAwesomeDude at gmail.com>
+---
+ hw/xfree86/os-support/shared/posix_tty.c |   10 ----------
+ 1 files changed, 0 insertions(+), 10 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xfree86/os-support/shared/posix_tty.c xorg-server-1.7.99.902/hw/xfree86/os-support/shared/posix_tty.c
+index bf1bb03..4ba8599 100644
+--- xorg-server-1.7.99.902/hw/xfree86/os-support/shared/posix_tty.c
++++ xorg-server-1.7.99.902/hw/xfree86/os-support/shared/posix_tty.c
+@@ -137,19 +137,9 @@ xf86OpenSerial (pointer options)
+ 
+ 	if (!isatty (fd))
+ 	{
+-#if 1
+ 		/* Allow non-tty devices to be opened. */
+ 		xfree(dev);
+ 		return (fd);
+-#else
+-		xf86Msg (X_WARNING,
+-			 "xf86OpenSerial: Specified device %s is not a tty\n",
+-			 dev);
+-		SYSCALL (close (fd));
+-		errno = EINVAL;
+-		xfree(dev);
+-		return (-1);
+-#endif
+ 	}
+ 
+ 	/* set up default port parameters */
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0025-XKB-Fix-garbage-initialization.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0025-XKB-Fix-garbage-initialization.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0025-XKB-Fix-garbage-initialization.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,32 @@
+From 8311cd5f89ca6781842bb24671b8122cdf8be148 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at freedesktop.org>
+Date: Tue, 23 Mar 2010 10:37:36 -0700
+Subject: [PATCH 25/37] XKB: Fix garbage initialization
+
+XkbEnableDisableControls set extra garbage bits on the xkbControlsNotify
+changedControls mask because it was uninitialized on the stack.
+
+Found by clang
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ xkb/xkbUtils.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/xkb/xkbUtils.c xorg-server-1.7.99.902/xkb/xkbUtils.c
+index 5b317c9..e287997 100644
+--- xorg-server-1.7.99.902/xkb/xkbUtils.c
++++ xorg-server-1.7.99.902/xkb/xkbUtils.c
+@@ -753,7 +753,7 @@ XkbSrvLedInfoPtr	sli;
+     if (cause!=NULL) {
+ 	xkbControlsNotify cn;
+ 	cn.numGroups= ctrls->num_groups;
+-	cn.changedControls|= XkbControlsEnabledMask;
++	cn.changedControls= XkbControlsEnabledMask;
+ 	cn.enabledControls= ctrls->enabled_ctrls;
+ 	cn.enabledControlChanges= (ctrls->enabled_ctrls^old);
+ 	cn.keycode= cause->kc;
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0026-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0026-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0026-Fix-crash-when-all-glyphs-of-a-given-depth-are-freed.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,45 @@
+From 185185eeb44a277c324be0f58a4b4a469b56b69b Mon Sep 17 00:00:00 2001
+From: Peter Harris <pharris at opentext.com>
+Date: Tue, 23 Mar 2010 12:08:19 -0400
+Subject: [PATCH 26/37] Fix crash when all glyphs of a given depth are freed, but not all glyphsets
+
+This is how the crash can be triggered with only two clients on the system:
+Client A: (already running)
+Client B: Connect
+Client B: CreateGlyphSet(depthN)
+Client A: Disconnect
+Server: free globalGlyphs(depthN)
+Client B: AddGlyphs(depthN)
+Server: SEGV
+
+This crash was introduced with the FindGlyphsByHash function
+in 516b96387b0e57b524a37a96da22dbeeeb041712. Before that revision,
+ResizeGlyphSet was always called before FindGlyphRef, which would
+re-create globalGlyphs(depthN) if necessary.
+
+X.Org Bug 20718 <http://bugs.freedesktop.org/show_bug.cgi?id=20718>
+
+Reviewed-by: Adam Jackson <ajax at redhat.com>
+Signed-off-by: Peter Harris <pharris at opentext.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+ render/glyph.c |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.99.902/render/glyph.c xorg-server-1.7.99.902/render/glyph.c
+index 0b864ad..f0f3b19 100644
+--- xorg-server-1.7.99.902/render/glyph.c
++++ xorg-server-1.7.99.902/render/glyph.c
+@@ -217,6 +217,9 @@ FindGlyphByHash (unsigned char sha1[20], int format)
+     GlyphRefPtr gr;
+     CARD32 signature = *(CARD32 *) sha1;
+ 
++    if (!globalGlyphs[format].hashSet)
++	return NULL;
++
+     gr = FindGlyphRef (&globalGlyphs[format],
+ 		       signature, TRUE, sha1);
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0027-kdrive-Bump-evdev-maxKeycode.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0027-kdrive-Bump-evdev-maxKeycode.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0027-kdrive-Bump-evdev-maxKeycode.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,31 @@
+From e086b99c1f5ce351b578de7cd9f616bc79d6cf64 Mon Sep 17 00:00:00 2001
+From: Mikhail Gusarov <dottedmag at dottedmag.net>
+Date: Tue, 23 Mar 2010 01:03:53 +0600
+Subject: [PATCH 27/37] kdrive: Bump evdev maxKeycode
+
+There are keycodes > 193 in evdev, e.g. KEY_WIMAX which is 246 .
+
+Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
+Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
+Acked-by: Adam Jackson <ajax at nwnk.net>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+ hw/kdrive/linux/evdev.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/kdrive/linux/evdev.c xorg-server-1.7.99.902/hw/kdrive/linux/evdev.c
+index 485a2b5..0e4c9f7 100644
+--- xorg-server-1.7.99.902/hw/kdrive/linux/evdev.c
++++ xorg-server-1.7.99.902/hw/kdrive/linux/evdev.c
+@@ -362,7 +362,7 @@ readMapping (KdKeyboardInfo *ki)
+         return;
+ 
+     ki->minScanCode = 0;
+-    ki->maxScanCode = 193;
++    ki->maxScanCode = 247;
+ }
+ 
+ static void
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0028-os-Prevent-backtrace-from-being-stopped-in-noreturn-.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0028-os-Prevent-backtrace-from-being-stopped-in-noreturn-.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0028-os-Prevent-backtrace-from-being-stopped-in-noreturn-.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,92 @@
+From 579715f830fbbca9e1ecb17dc18176132f5969e7 Mon Sep 17 00:00:00 2001
+From: Rami Ylimaki <ext-rami.ylimaki at nokia.com>
+Date: Wed, 17 Mar 2010 12:16:57 +0200
+Subject: [PATCH 28/37] os: Prevent backtrace from being stopped in noreturn functions.
+
+There are two noreturn functions in the X server: FatalError and
+AbortServer. Having any of those two functions in the middle of a call
+stack will prevent unwinding the program properly and stops the
+backtrace at those functions in gdb.
+
+The file containing FatalError and AbortServer, os/log.c, has to be
+compiled with the -mapcs-frame option on ARM to get proper
+backtraces. Automake imposes its own restrictions on compiling
+individual source files with different options. The recommended way to
+do this is to put os/log.c into a convenience library and add this
+library inside os/libos.la. See the documentation of GNU Automake
+manual, version 1.11.1, section 27.8 Per-Object Flags Emulation, for
+details.
+
+Signed-off-by: Rami Ylimaki <ext-rami.ylimaki at nokia.com>
+Reviewed-by: Daniel Stone <daniel at fooishbar.org>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+ configure.ac   |   13 +++++++++++++
+ os/Makefile.am |   17 ++++++++++++-----
+ 2 files changed, 25 insertions(+), 5 deletions(-)
+
+diff --git xorg-server-1.7.99.902/configure.ac xorg-server-1.7.99.902/configure.ac
+index d379b3a..5f08688 100644
+--- xorg-server-1.7.99.902/configure.ac
++++ xorg-server-1.7.99.902/configure.ac
+@@ -315,6 +315,19 @@ AC_CHECK_HEADER([execinfo.h],[
+     ])]
+ )
+ 
++dnl ARM needs additional compiler flags for proper backtraces if GCC is
++dnl used. Compile a dummy program with the -mapcs-frame option. If it
++dnl succeeds, we know that we are building for ARM with GCC.
++old_CFLAGS="$CFLAGS"
++CFLAGS="-mapcs-frame"
++AC_COMPILE_IFELSE(
++        AC_LANG_PROGRAM([[ ]]),
++        ARM_BACKTRACE_CFLAGS="$CFLAGS",
++        ARM_BACKTRACE_CFLAGS=""
++)
++CFLAGS="$old_CFLAGS"
++AC_SUBST(ARM_BACKTRACE_CFLAGS)
++
+ dnl ---------------------------------------------------------------------------
+ dnl Bus options and CPU capabilities.  Replaces logic in
+ dnl hw/xfree86/os-support/bus/Makefile.am, among others.
+diff --git xorg-server-1.7.99.902/os/Makefile.am xorg-server-1.7.99.902/os/Makefile.am
+index 66a4a0f..3e4f2c5 100644
+--- xorg-server-1.7.99.902/os/Makefile.am
++++ xorg-server-1.7.99.902/os/Makefile.am
+@@ -1,11 +1,19 @@
+-noinst_LTLIBRARIES = libos.la
++noinst_LTLIBRARIES = libos.la liblog.la
+ 
+ AM_CFLAGS = $(DIX_CFLAGS) $(SHA1_CFLAGS)
+ 
+ SECURERPC_SRCS = rpcauth.c
+ XDMCP_SRCS = xdmcp.c
+ STRLCAT_SRCS = strlcat.c strlcpy.c
+-XORG_SRCS = log.c
++
++# Build a convenience library liblog.la that will be added into
++# libos.la. The split is done so that log.c can be built with
++# different compiler options.
++liblog_la_SOURCES = log.c
++# Add flags needed for proper backtraces of functions marked with GCC
++# __attribute__((noreturn)). Currently those flags are needed for
++# FatalError and AbortServer in log.c.
++liblog_la_CFLAGS = $(AM_CFLAGS) $(ARM_BACKTRACE_CFLAGS)
+ 
+ libos_la_SOURCES = 	\
+ 	WaitFor.c	\
+@@ -24,9 +32,8 @@ libos_la_SOURCES = 	\
+ 	xdmauth.c	\
+ 	xsha1.c		\
+ 	xstrans.c	\
+-	xprintf.c	\
+-	$(XORG_SRCS)
+-libos_la_LIBADD = @SHA1_LIBS@ $(DLOPEN_LIBS)
++	xprintf.c
++libos_la_LIBADD = @SHA1_LIBS@ $(DLOPEN_LIBS) liblog.la
+ 
+ if SECURE_RPC
+ libos_la_SOURCES += $(SECURERPC_SRCS)
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0029-xfree86-merge-driver-from-the-input-class-into-the-o.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0029-xfree86-merge-driver-from-the-input-class-into-the-o.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0029-xfree86-merge-driver-from-the-input-class-into-the-o.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,37 @@
+From 70bd02f2ea3a91c0340df97ca3b8a4f9400f6f46 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Tue, 23 Mar 2010 12:13:56 +1000
+Subject: [PATCH 29/37] xfree86: merge driver from the input class into the options.
+
+A driver that is assigned by an input class is only present as idev->driver.
+The driver itself has no access to this information once PreInit is called.
+For devices that rely on chain-hotplugging (wacom), this means that for the
+second device the driver information is lost and the second device cannot be
+initialized through NewInputDeviceRequest. Although this could be worked
+around by hardcoding the driver name in the wacom driver, having the
+assigned driver in the options seems like the better solution.
+
+This issue only manifests itself with the udev backend. With HAL, the driver
+is assigned by HAL and the option is duplicated in config/hal.c.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
+---
+ hw/xfree86/common/xf86Xinput.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xfree86/common/xf86Xinput.c xorg-server-1.7.99.902/hw/xfree86/common/xf86Xinput.c
+index e9f7f2f..8229227 100644
+--- xorg-server-1.7.99.902/hw/xfree86/common/xf86Xinput.c
++++ xorg-server-1.7.99.902/hw/xfree86/common/xf86Xinput.c
+@@ -618,6 +618,7 @@ MergeInputClasses(IDevPtr idev, InputAttributes *attrs)
+                     "InputClass configuration");
+             return BadAlloc;
+         }
++        mergedopts = xf86ReplaceStrOption(mergedopts, "driver", idev->driver);
+     }
+     idev->commonOptions = xf86optionListMerge(idev->commonOptions, mergedopts);
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0030-Cleanup-some-comments-in-SpriteRec.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0030-Cleanup-some-comments-in-SpriteRec.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0030-Cleanup-some-comments-in-SpriteRec.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,37 @@
+From d00c3298a698ddddc8967215cef7dd941fa15804 Mon Sep 17 00:00:00 2001
+From: Fernando Carrijo <fcarrijo at yahoo.com.br>
+Date: Wed, 24 Mar 2010 20:11:34 -0300
+Subject: [PATCH 30/37] Cleanup some comments in SpriteRec
+
+Signed-off-by: Fernando Carrijo <fcarrijo at yahoo.com.br>
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ include/inputstr.h |   12 ++++++++++--
+ 1 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/include/inputstr.h xorg-server-1.7.99.902/include/inputstr.h
+index 15184d0..de4026c 100644
+--- xorg-server-1.7.99.902/include/inputstr.h
++++ xorg-server-1.7.99.902/include/inputstr.h
+@@ -386,8 +386,16 @@ typedef struct {
+     int spriteTraceSize;
+     int spriteTraceGood;
+ 
+-    ScreenPtr pEnqueueScreen; /* screen events are being delivered to */
+-    ScreenPtr pDequeueScreen; /* screen events are being dispatched to */
++    /* Due to delays between event generation and event processing, it is
++     * possible that the pointer has crossed screen boundaries between the
++     * time in which it begins generating events and the time when
++     * those events are processed.
++     *
++     * pEnqueueScreen: screen the pointer was on when the event was generated
++     * pDequeueScreen: screen the pointer was on when the event is processed
++     */
++    ScreenPtr pEnqueueScreen;
++    ScreenPtr pDequeueScreen;
+ 
+ } SpriteRec, *SpritePtr;
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0031-config-udev-Prefer-product-name-from-attribute-rathe.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0031-config-udev-Prefer-product-name-from-attribute-rathe.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0031-config-udev-Prefer-product-name-from-attribute-rathe.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,37 @@
+From aa91508356f243edc3b11795b1481edcfe0d39c2 Mon Sep 17 00:00:00 2001
+From: Dan Nicholson <dbn.lists at gmail.com>
+Date: Wed, 24 Mar 2010 23:18:35 -0700
+Subject: [PATCH 31/37] config/udev: Prefer product name from attribute rather than uevent
+
+The input device product name for evdev devices in the kernel uevent has
+embedded quotes that aren't expected here. Use the sysfs name attribute
+instead, which does not suffer this problem. The uevent name will be
+used as a fallback if no name attribute is found.
+
+Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ config/udev.c |    7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/config/udev.c xorg-server-1.7.99.902/config/udev.c
+index 69257e9..452fb5a 100644
+--- xorg-server-1.7.99.902/config/udev.c
++++ xorg-server-1.7.99.902/config/udev.c
+@@ -73,8 +73,11 @@ device_added(struct udev_device *udev_device)
+         goto unwind;
+ 
+     parent = udev_device_get_parent(udev_device);
+-    if (parent)
+-        name = udev_device_get_property_value(parent, "NAME");
++    if (parent) {
++        name = udev_device_get_sysattr_value(parent, "name");
++        if (!name)
++            name = udev_device_get_property_value(parent, "NAME");
++    }
+     if (!name)
+         name = "(unnamed)";
+     else
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0032-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0032-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0032-XQuartz-Workaround-weird-key-data-reported-on-some-l.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,32 @@
+From 339207be6f184cc783076fc7e2cc12f92f57f2ba Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Thu, 25 Mar 2010 22:15:58 -0700
+Subject: [PATCH 32/37] XQuartz: Workaround weird key data reported on some layouts
+
+This should make 'Unicode Hex Input' work as an input layout.
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Acked-by: Adam Jackson <ajax at redhat.com>
+---
+ hw/xquartz/quartzKeyboard.c |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c
+index c9ef7cc..a4a0b08 100644
+--- xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c
++++ xorg-server-1.7.99.902/hw/xquartz/quartzKeyboard.c
+@@ -735,7 +735,10 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
+                     if (err != noErr) continue;
+                 }
+ 
+-                if (len > 0 && s[0] != 0x0010) {
++                /* Not sure why 0x0010 is there.
++                 * 0x0000 - <rdar://problem/7793566> 'Unicode Hex Input' ...
++                 */
++                if (len > 0 && s[0] != 0x0010 && s[0] != 0x0000) {
+                     k[j] = ucs2keysym (s[0]);
+                     if (dead_key_state != 0) k[j] = make_dead_key (k[j]);
+                 }
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0033-GLX-Remove-a-redundant-initialization.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0033-GLX-Remove-a-redundant-initialization.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0033-GLX-Remove-a-redundant-initialization.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,27 @@
+From 73b3b67aac9f3938a96cb8822b9c270bd82ded5c Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Mon, 22 Mar 2010 09:30:51 -0700
+Subject: [PATCH 33/37] GLX: Remove a redundant initialization
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Acked-by: Adam Jackson <ajax at redhat.com>
+---
+ glx/indirect_dispatch.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/glx/indirect_dispatch.c xorg-server-1.7.99.902/glx/indirect_dispatch.c
+index 6665519..ecd2bc8 100644
+--- xorg-server-1.7.99.902/glx/indirect_dispatch.c
++++ xorg-server-1.7.99.902/glx/indirect_dispatch.c
+@@ -98,8 +98,6 @@ void __glXDisp_CallLists(GLbyte * pc)
+     const GLenum type = *(GLenum   *)(pc +  4);
+     const GLvoid * lists =  (const GLvoid *)(pc +  8);
+ 
+-    lists = (const GLvoid *) (pc + 8);
+-
+     CALL_CallLists( GET_DISPATCH(), (
+         n,
+         type,
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0034-darwin-Generate-crash-reports-on-FatalError.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0034-darwin-Generate-crash-reports-on-FatalError.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0034-darwin-Generate-crash-reports-on-FatalError.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,137 @@
+From 436d0bb9cca122bfdde32902b683d2499f61e6fc Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Sat, 27 Mar 2010 17:35:10 -0700
+Subject: [PATCH 34/37] darwin: Generate crash reports on FatalError()
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Acked-by: Adam Jackson <ajax at redhat.com>
+---
+ hw/xquartz/GL/capabilities.c          |    3 +--
+ hw/xquartz/darwin.c                   |   10 +++-------
+ hw/xquartz/mach-startup/bundle-main.c |   11 ++++++-----
+ os/log.c                              |    9 +++++++++
+ os/utils.c                            |    2 ++
+ 5 files changed, 21 insertions(+), 14 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/GL/capabilities.c xorg-server-1.7.99.902/hw/xquartz/GL/capabilities.c
+index 2c5ec65..fc7dd57 100644
+--- xorg-server-1.7.99.902/hw/xquartz/GL/capabilities.c
++++ xorg-server-1.7.99.902/hw/xquartz/GL/capabilities.c
+@@ -525,8 +525,7 @@ bool getGlCapabilities(struct glCapabilities *cap) {
+ 
+ 	    conf = malloc(sizeof(*conf));
+ 	    if(NULL == conf) {
+-            perror("malloc");
+-            OsAbort();
++                FatalError("Unable to allocate memory for OpenGL capabilities\n");
+ 	    }
+ 
+ 	    /* Copy the struct. */
+diff --git xorg-server-1.7.99.902/hw/xquartz/darwin.c xorg-server-1.7.99.902/hw/xquartz/darwin.c
+index 066f5a5..d3f4488 100644
+--- xorg-server-1.7.99.902/hw/xquartz/darwin.c
++++ xorg-server-1.7.99.902/hw/xquartz/darwin.c
+@@ -602,7 +602,7 @@ void InitOutput( ScreenInfo *pScreenInfo, int argc, char **argv )
+ 
+ 
+ /*
+- * OsVendorFataError
++ * OsVendorFatalError
+  */
+ void OsVendorFatalError( void )
+ {
+@@ -760,7 +760,7 @@ void ddxUseMsg( void )
+  */
+ void ddxGiveUp( void )
+ {
+-    ErrorF( "Quitting Xquartz...\n" );
++    ErrorF( "Quitting Xquartz\n" );
+ }
+ 
+ 
+@@ -773,11 +773,7 @@ void ddxGiveUp( void )
+ void AbortDDX( void )
+ {
+     ErrorF( "   AbortDDX\n" );
+-    /*
+-     * This is needed for a abnormal server exit, since the normal exit stuff
+-     * MUST also be performed (i.e. the vt must be left in a defined state)
+-     */
+-    ddxGiveUp();
++    OsAbort();
+ }
+ 
+ #include "mivalidate.h" // for union _Validate used by windowstr.h
+diff --git xorg-server-1.7.99.902/hw/xquartz/mach-startup/bundle-main.c xorg-server-1.7.99.902/hw/xquartz/mach-startup/bundle-main.c
+index 4872ff5..625b8b4 100644
+--- xorg-server-1.7.99.902/hw/xquartz/mach-startup/bundle-main.c
++++ xorg-server-1.7.99.902/hw/xquartz/mach-startup/bundle-main.c
+@@ -73,10 +73,11 @@ extern int noPanoramiXExtension;
+ #define XSERVER_VERSION "?"
+ #endif
+ 
+-const int __crashreporter_info__len = 4096;
+-const char *__crashreporter_info__base = "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
+-char __crashreporter_info__buf[4096];
+-char *__crashreporter_info__ = __crashreporter_info__buf;
++static char __crashreporter_info_buff__[4096] = {0};
++static const char *__crashreporter_info__ = &__crashreporter_info_buff__[0];
++asm (".desc __crashreporter_info__, 0x10");
++
++static const char *__crashreporter_info__base = "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
+ 
+ static char *launchd_id_prefix = NULL;
+ static char *server_bootstrap_name = NULL;
+@@ -548,7 +549,7 @@ int main(int argc, char **argv, char **envp) {
+     noPanoramiXExtension = TRUE;
+ 
+     /* Setup the initial crasherporter info */
+-    strlcpy(__crashreporter_info__, __crashreporter_info__base, __crashreporter_info__len);
++    strlcpy(__crashreporter_info_buff__, __crashreporter_info__base, sizeof(__crashreporter_info_buff__));
+     
+     fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
+     for(i=0; i < argc; i++) {
+diff --git xorg-server-1.7.99.902/os/log.c xorg-server-1.7.99.902/os/log.c
+index f4832c1..c1301d7 100644
+--- xorg-server-1.7.99.902/os/log.c
++++ xorg-server-1.7.99.902/os/log.c
+@@ -117,6 +117,12 @@ static char *saveBuffer = NULL;
+ static int bufferSize = 0, bufferUnused = 0, bufferPos = 0;
+ static Bool needBuffer = TRUE;
+ 
++#ifdef __APPLE__
++static char __crashreporter_info_buff__[4096] = {0};
++static const char *__crashreporter_info__ = &__crashreporter_info_buff__[0];
++asm (".desc __crashreporter_info__, 0x10");
++#endif
++
+ /* Prefix strings for log messages. */
+ #ifndef X_UNKNOWN_STRING
+ #define X_UNKNOWN_STRING		"(\?\?)"
+@@ -527,6 +533,9 @@ FatalError(const char *f, ...)
+ 	ErrorF("\nFatal server error:\n");
+ 
+     va_start(args, f);
++#ifdef __APPLE__
++    (void)vsnprintf(__crashreporter_info_buff__, sizeof(__crashreporter_info_buff__), f, args);
++#endif
+     VErrorF(f, args);
+     va_end(args);
+     ErrorF("\n");
+diff --git xorg-server-1.7.99.902/os/utils.c xorg-server-1.7.99.902/os/utils.c
+index 5a5a203..13d3b3f 100644
+--- xorg-server-1.7.99.902/os/utils.c
++++ xorg-server-1.7.99.902/os/utils.c
+@@ -1315,7 +1315,9 @@ OsReleaseSignals (void)
+ void
+ OsAbort (void)
+ {
++#ifndef __APPLE__
+     OsBlockSignals();
++#endif
+     abort();
+ }
+ 
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0035-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0035-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0035-XQuartz-Re-query-dixScreenOrigins-as-the-value-could.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,34 @@
+From 28a5f14b4089dccb8045cc4fdc923542a73dd22d Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Sun, 28 Mar 2010 13:46:23 -0700
+Subject: [PATCH 35/37] XQuartz: Re-query dixScreenOrigins as the value could've changed.
+
+Fix a regression in 9c9c3a85b094a3c7b2763a572715d710325091aa
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+Acked-by: Adam Jackson <ajax at redhat.com>
+---
+ hw/xquartz/quartz.c |    7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git xorg-server-1.7.99.902/hw/xquartz/quartz.c xorg-server-1.7.99.902/hw/xquartz/quartz.c
+index 59107be..a611854 100644
+--- xorg-server-1.7.99.902/hw/xquartz/quartz.c
++++ xorg-server-1.7.99.902/hw/xquartz/quartz.c
+@@ -268,8 +268,11 @@ void QuartzUpdateScreens(void) {
+     DarwinAdjustScreenOrigins(&screenInfo);
+     quartzProcs->UpdateScreen(pScreen);
+     
+-    sx = x + darwinMainScreenX;
+-    sy = y + darwinMainScreenY;
++    /* DarwinAdjustScreenOrigins or UpdateScreen may change dixScreenOrigins,
++     * so use it rather than x/y
++     */
++    sx = dixScreenOrigins[pScreen->myNum].x + darwinMainScreenX;
++    sy = dixScreenOrigins[pScreen->myNum].y + darwinMainScreenY;
+     
+     /* Adjust the root window. */
+     pRoot = WindowTable[pScreen->myNum];
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0036-fb-Revert-fb-changes-that-broke-XQuartz.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0036-fb-Revert-fb-changes-that-broke-XQuartz.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0036-fb-Revert-fb-changes-that-broke-XQuartz.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,231 @@
+From 14b981fcec6651fda24029eeb5cc9828085e9018 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Fri, 12 Feb 2010 19:48:52 -0800
+Subject: [PATCH 36/37] 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>
+---
+ fb/fb.h     |    7 +----
+ fb/fbpict.c |   72 ++++++++++++++++++-----------------------------------------
+ fb/fbtrap.c |    6 +---
+ 3 files changed, 26 insertions(+), 59 deletions(-)
+
+diff --git xorg-server-1.7.99.902/fb/fb.h xorg-server-1.7.99.902/fb/fb.h
+index 02d6c03..ed21f9e 100644
+--- xorg-server-1.7.99.902/fb/fb.h
++++ xorg-server-1.7.99.902/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 xorg-server-1.7.99.902/fb/fbpict.c xorg-server-1.7.99.902/fb/fbpict.c
+index dddfce8..07a2286 100644
+--- xorg-server-1.7.99.902/fb/fbpict.c
++++ xorg-server-1.7.99.902/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 xorg-server-1.7.99.902/fb/fbtrap.c xorg-server-1.7.99.902/fb/fbtrap.c
+index 515e2e1..830603a 100644
+--- xorg-server-1.7.99.902/fb/fbtrap.c
++++ xorg-server-1.7.99.902/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;
+-- 
+1.7.0.2
+

Added: trunk/dports/x11/xorg-server-devel/files/0037-OS-Add-some-noreturn-and-printflike-compiler-attribu.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0037-OS-Add-some-noreturn-and-printflike-compiler-attribu.patch	                        (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/0037-OS-Add-some-noreturn-and-printflike-compiler-attribu.patch	2010-03-30 01:07:06 UTC (rev 65658)
@@ -0,0 +1,97 @@
+From 844ab46eb166d4f1e01814e1574ca7e1cb44cc94 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu at apple.com>
+Date: Sat, 27 Mar 2010 18:02:14 -0700
+Subject: [PATCH 37/37] OS: Add some noreturn and printflike compiler attributes where appropriate
+
+Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
+---
+ include/os.h |   28 +++++++++++++---------------
+ os/log.c     |    4 +---
+ 2 files changed, 14 insertions(+), 18 deletions(-)
+
+diff --git xorg-server-1.7.99.902/include/os.h xorg-server-1.7.99.902/include/os.h
+index 453ab82..957fc74 100644
+--- xorg-server-1.7.99.902/include/os.h
++++ xorg-server-1.7.99.902/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 xorg-server-1.7.99.902/os/log.c xorg-server-1.7.99.902/os/log.c
+index c1301d7..9f24c3a 100644
+--- xorg-server-1.7.99.902/os/log.c
++++ xorg-server-1.7.99.902/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)
+-- 
+1.7.0.2
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100329/f3170d9e/attachment-0001.html>


More information about the macports-changes mailing list