--- a/open-src/xserver/Makefile.inc Sun Jun 05 23:43:37 2011 -0700
+++ b/open-src/xserver/Makefile.inc Sun Jun 05 23:52:41 2011 -0700
@@ -39,7 +39,7 @@
include $(TOP)/open-src/common/Makefile.init
# Xorg server source tarball to use sources from
-XORGSERVER_VERS=1.10.1
+XORGSERVER_VERS=1.10.2
# Patches shared between Xorg & Xvnc builds
XORG_SOURCE_PATCHES:sh=sed '/^\#/ d' ../xorg/patch-list
--- a/open-src/xserver/xorg/Makefile Sun Jun 05 23:43:37 2011 -0700
+++ b/open-src/xserver/xorg/Makefile Sun Jun 05 23:52:41 2011 -0700
@@ -32,8 +32,8 @@
MODULE_VERSION=$(XORGSERVER_VERS)
# Checksums for upstream tarball
-TARBALL_MD5 = 75f117c74f2ecaf9dd167f6a66ac98de
-TARBALL_SHA1 = 59ada4c9a59f7f1eb4b68c359e9cd58272aa4809
+TARBALL_MD5 = c9ba50bd44ea70da51f13100336a5484
+TARBALL_SHA1 = fd831b3c6297d1a68830c602d767752d87b9ca54
# Patches to apply to source after unpacking, in order
# *** Moved to patch-list file so they can be shared between Xorg & Xvnc builds
--- a/open-src/xserver/xorg/dtlogin-userinfo.patch Sun Jun 05 23:43:37 2011 -0700
+++ b/open-src/xserver/xorg/dtlogin-userinfo.patch Sun Jun 05 23:52:41 2011 -0700
@@ -19,7 +19,7 @@
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
diff --git a/configure.ac b/configure.ac
-index 524c2af..926d159 100644
+index de6665a..ac7caae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1458,6 +1458,7 @@ PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
@@ -31,7 +31,7 @@
AC_SUBST([XSERVER_SYS_LIBS])
diff --git a/dix/main.c b/dix/main.c
-index 692bec1..9c3951a 100644
+index e20ffd6..7cab838 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -115,6 +115,11 @@ Equipment Corporation.
@@ -60,16 +60,16 @@
if(serverGeneration == 1)
{
CreateWellKnownSockets();
-@@ -286,6 +298,11 @@ int main(int argc, char *argv[], char *envp[])
-
- Dispatch();
+@@ -293,6 +305,11 @@ int main(int argc, char *argv[], char *envp[])
+ pthread_mutex_unlock(&serverRunningMutex);
+ #endif
+#ifdef SUNSOFT
+ /* Return to root privs before calling the rest of close down */
+ DtloginCloseDown ();
+#endif
+
- UndisplayDevices();
+ UndisplayDevices();
/* Now free up whatever must be freed */
diff --git a/os/Makefile.am b/os/Makefile.am
--- a/open-src/xserver/xorg/patch-list Sun Jun 05 23:43:37 2011 -0700
+++ b/open-src/xserver/xorg/patch-list Sun Jun 05 23:52:41 2011 -0700
@@ -1,3 +1,4 @@
+randr-check-rotate.patch,-p1
7050250.patch,-p1
oslog-race.patch,-p1
sun-paths.patch,-p1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/xserver/xorg/randr-check-rotate.patch Sun Jun 05 23:52:41 2011 -0700
@@ -0,0 +1,65 @@
+From 50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <[email protected]>
+Date: Tue, 24 May 2011 16:02:42 -0700
+Subject: [PATCH] randr: check rotated virtual size limits correctly
+
+Commit d1107918d4626268803b54033a07405122278e7f introduced checks to
+the RandR path that cause RRSetScreenConfig requests to fail if the
+size is too large. Unfortunately, when RandR 1.1 rotation is enabled
+it compares the rotated screen dimensions to the unrotated limits,
+which causes 90- and 270-degree rotation to fail unless your screen
+happens to be square:
+
+ X Error of failed request: BadValue (integer parameter out of range for operation)
+ Major opcode of failed request: 153 (RANDR)
+ Minor opcode of failed request: 2 (RRSetScreenConfig)
+ Value in failed request: 0x780
+ Serial number of failed request: 14
+ Current serial number in output stream: 14
+
+Fix this by moving the check above the code that swaps the dimensions
+based on the rotation.
+
+Signed-off-by: Aaron Plattner <[email protected]>
+Reviewed-by: Jeremy Huddleston <[email protected]>
+Tested-by: Robert Hooker <[email protected]>
+Tested-by: Kent Baxley <[email protected]>
+Signed-off-by: Keith Packard <[email protected]>
+(cherry picked from commit b6c7b9b2f39e970cedb6bc1e073f901e28cb0fa3)
+---
+ randr/rrscreen.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/randr/rrscreen.c b/randr/rrscreen.c
+index 1bc1a9e..da6d48d 100644
+--- a/randr/rrscreen.c
++++ b/randr/rrscreen.c
+@@ -910,12 +910,6 @@ ProcRRSetScreenConfig (ClientPtr client)
+ */
+ width = mode->mode.width;
+ height = mode->mode.height;
+- if (rotation & (RR_Rotate_90|RR_Rotate_270))
+- {
+- width = mode->mode.height;
+- height = mode->mode.width;
+- }
+-
+ if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
+ client->errorValue = width;
+ free(pData);
+@@ -927,6 +921,12 @@ ProcRRSetScreenConfig (ClientPtr client)
+ return BadValue;
+ }
+
++ if (rotation & (RR_Rotate_90|RR_Rotate_270))
++ {
++ width = mode->mode.height;
++ height = mode->mode.width;
++ }
++
+ if (width != pScreen->width || height != pScreen->height)
+ {
+ int c;
+--
+1.7.3.2
+