7051435 xorg-server 1.10.2
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Sun, 05 Jun 2011 23:52:41 -0700
changeset 1142 c235d03e9fab
parent 1141 e98284f37c98
child 1143 f9aac8f4b258
7051435 xorg-server 1.10.2
open-src/xserver/Makefile.inc
open-src/xserver/xorg/Makefile
open-src/xserver/xorg/dtlogin-userinfo.patch
open-src/xserver/xorg/patch-list
open-src/xserver/xorg/randr-check-rotate.patch
--- 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
+