xorg-server: Changes to 'ubuntu'
ChangeLog | 42 ++++++++++++++++++++++++++
Xext/panoramiX.c | 17 ++++++++--
composite/compinit.c | 3 +
configure.ac | 4 +-
debian/changelog | 26 ++++++++++++++++
debian/patches/02_Disable-DRI-in-Xephyr.patch | 32 +++++++++++++++++++
debian/patches/series | 1
exa/exa.c | 10 ++++++
randr/rrxinerama.c | 18 ++++++++---
9 files changed, 142 insertions(+), 11 deletions(-)
New commits:
commit 7e2686f8387c9cf3a5d9519dd79d40b7183ba573
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date: Wed Sep 24 19:44:42 2008 +0300
Prepare changelog for release.
diff --git a/debian/changelog b/debian/changelog
index 2089e18..c7fda2d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.5.1-1ubuntu1) intrepid; urgency=low
+
+ * Merge with Debian experimental. (LP: #269388)
+
+ -- Timo Aaltonen <tepsipakki@ubuntu.com> Wed, 24 Sep 2008 19:33:34 +0300
+
xorg-server (2:1.5.1-1) experimental; urgency=low
* New upstream bugfix release.
commit ecc713926b178331ea7bf8ee1679316904507ef9
Author: Julien Cristau <jcristau@debian.org>
Date: Wed Sep 24 17:17:09 2008 +0200
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index 6bda123..a332a39 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xorg-server (2:1.5.1-1) UNRELEASED; urgency=low
+xorg-server (2:1.5.1-1) experimental; urgency=low
* New upstream bugfix release.
* 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't
work correctly.
* Merge changelog from 2:1.4.2-6 (all changes are upstream now).
- -- Julien Cristau <jcristau@debian.org> Sun, 21 Sep 2008 20:37:12 +0200
+ -- Julien Cristau <jcristau@debian.org> Wed, 24 Sep 2008 17:49:18 +0200
xorg-server (2:1.5.0-1) experimental; urgency=low
commit dfed9e40315aa0675f433740088a65cb96954abe
Author: Julien Cristau <jcristau@debian.org>
Date: Wed Sep 24 17:33:53 2008 +0200
Build fix in the xephyr patch
diff --git a/debian/patches/02_Disable-DRI-in-Xephyr.patch b/debian/patches/02_Disable-DRI-in-Xephyr.patch
index 63c7e3f..8ca1cf7 100644
--- a/debian/patches/02_Disable-DRI-in-Xephyr.patch
+++ b/debian/patches/02_Disable-DRI-in-Xephyr.patch
@@ -4,15 +4,12 @@ Date: Sun, 21 Sep 2008 20:28:16 +0200
Subject: [PATCH] Disable DRI in Xephyr
Doesn't work right, see fdo#16955
----
- configure.ac | 10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 0262274..3ca285a 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1922,11 +1922,11 @@ if test "$KDRIVE" = yes; then
+@@ -1922,11 +1922,12 @@ if test "$KDRIVE" = yes; then
XEPHYR=$xephyr
fi
XEPHYR_DRI=no
@@ -26,6 +23,7 @@ index 0262274..3ca285a 100644
+# XEPHYR_DRI_LIBS=-lGL
+# AC_SUBST(XEPHYR_DRI_LIBS)
+# fi
++ AC_SUBST(XEPHYR_DRI_LIBS)
if test x$XEPHYR_DRI = xyes ; then
AC_DEFINE(XEPHYR_DRI,1,[enable DRI extension in xephyr])
fi
commit e84ea06e3b76ebe63d603333ce1ae48662a90fcc
Author: Julien Cristau <jcristau@debian.org>
Date: Wed Sep 24 14:49:57 2008 +0200
Update changelogs
diff --git a/ChangeLog b/ChangeLog
index 9f9199d..fef4b74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+commit 97f688f2b4b8ebfba77be00db68c4e6a555a5d62
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Sep 23 14:51:33 2008 -0400
+
+ xserver 1.5.1
+
+commit 68c575cb73fd6ff6c9c0ce29a3d8105da44abfcc
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Sep 23 11:05:44 2008 -0400
+
+ Move RELEASE_DATE below AC_INIT.
+
+ Doing it the other way around clobbers the setting, which means you get
+ a null release date string in the log. Thanks autoconf!
+
+commit dba26368e5dbdd35df97d38ed517d1248503ab51
+Author: Peter Harris <peter.harris@hummingbird.com>
+Date: Thu Dec 20 15:58:01 2007 -0500
+
+ Fix panoramiX request and reply swapping
+
+ Fix panoramiX request and reply swapping
+ Set window and screen values in panoramix replies
+ Prevent buffer overrun in ProcPanoramiXGetScreenSize
+ (cherry picked from commit 2b266eda6e23d16116f8a8e258192df353970279)
+
+commit ce6424853c2df2486ad99c0369974afc91a92993
+Author: Julien Cristau <jcristau@debian.org>
+Date: Tue Sep 16 17:13:42 2008 +0200
+
+ exa: disable shared pixmaps
+
+ They got re-enabled in ee7c684f21d220d5e046bab31ae617a7d64d60f6
+ ("Reimplement ShmPutImage.")
+ (cherry picked from commit b4762c0245ed2966606171cf27f40aa745fdc76e)
+
+commit 37876602957924c7cff759a800eddd574ee2385a
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Wed Sep 17 15:48:56 2008 -0700
+
+ Conditionalize Composite-based backing store on pScreen->backingStoreSupport.
+
commit 05fb2f9e1249d0b91bf4318cec4fb309217adff4
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Sep 3 19:14:22 2008 -0400
diff --git a/debian/changelog b/debian/changelog
index 15d963a..360c163 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,6 @@
-xorg-server (2:1.5.0-2) UNRELEASED; urgency=low
+xorg-server (2:1.5.1-1) UNRELEASED; urgency=low
+ * New upstream bugfix release.
* 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't
work correctly.
commit 97f688f2b4b8ebfba77be00db68c4e6a555a5d62
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Sep 23 14:51:33 2008 -0400
xserver 1.5.1
diff --git a/configure.ac b/configure.ac
index 51d8b14..ef276cc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.5.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="3 September 2008"
+AC_INIT([xorg-server], 1.5.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="23 September 2008"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
commit 68c575cb73fd6ff6c9c0ce29a3d8105da44abfcc
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Sep 23 11:05:44 2008 -0400
Move RELEASE_DATE below AC_INIT.
Doing it the other way around clobbers the setting, which means you get
a null release date string in the log. Thanks autoconf!
diff --git a/configure.ac b/configure.ac
index 0262274..51d8b14 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-RELEASE_DATE="3 September 2008"
AC_INIT([xorg-server], 1.5.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="3 September 2008"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
commit dba26368e5dbdd35df97d38ed517d1248503ab51
Author: Peter Harris <peter.harris@hummingbird.com>
Date: Thu Dec 20 15:58:01 2007 -0500
Fix panoramiX request and reply swapping
Fix panoramiX request and reply swapping
Set window and screen values in panoramix replies
Prevent buffer overrun in ProcPanoramiXGetScreenSize
(cherry picked from commit 2b266eda6e23d16116f8a8e258192df353970279)
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 2792dc7..8bc5c42 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -936,10 +936,11 @@ ProcPanoramiXGetState(ClientPtr client)
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.state = !noPanoramiXExtension;
+ rep.window = stuff->window;
if (client->swapped) {
swaps (&rep.sequenceNumber, n);
swapl (&rep.length, n);
- swaps (&rep.state, n);
+ swapl (&rep.window, n);
}
WriteToClient (client, sizeof (xPanoramiXGetStateReply), (char *) &rep);
return client->noClientException;
@@ -963,10 +964,11 @@ ProcPanoramiXGetScreenCount(ClientPtr client)
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.ScreenCount = PanoramiXNumScreens;
+ rep.window = stuff->window;
if (client->swapped) {
swaps (&rep.sequenceNumber, n);
swapl (&rep.length, n);
- swaps (&rep.ScreenCount, n);
+ swapl (&rep.window, n);
}
WriteToClient (client, sizeof (xPanoramiXGetScreenCountReply), (char *) &rep);
return client->noClientException;
@@ -980,6 +982,9 @@ ProcPanoramiXGetScreenSize(ClientPtr client)
xPanoramiXGetScreenSizeReply rep;
register int n, rc;
+ if (stuff->screen >= PanoramiXNumScreens)
+ return BadMatch;
+
REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
if (rc != Success)
@@ -991,11 +996,15 @@ ProcPanoramiXGetScreenSize(ClientPtr client)
/* screen dimensions */
rep.width = panoramiXdataPtr[stuff->screen].width;
rep.height = panoramiXdataPtr[stuff->screen].height;
+ rep.window = stuff->window;
+ rep.screen = stuff->screen;
if (client->swapped) {
swaps (&rep.sequenceNumber, n);
swapl (&rep.length, n);
- swaps (&rep.width, n);
- swaps (&rep.height, n);
+ swapl (&rep.width, n);
+ swapl (&rep.height, n);
+ swapl (&rep.window, n);
+ swapl (&rep.screen, n);
}
WriteToClient (client, sizeof (xPanoramiXGetScreenSizeReply), (char *) &rep);
return client->noClientException;
diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
index 240fca2..e6acd5e 100644
--- a/randr/rrxinerama.c
+++ b/randr/rrxinerama.c
@@ -138,10 +138,11 @@ ProcRRXineramaGetState(ClientPtr client)
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.state = active;
+ rep.window = stuff->window;
if(client->swapped) {
swaps (&rep.sequenceNumber, n);
swapl (&rep.length, n);
- swaps (&rep.state, n);
+ swapl (&rep.window, n);
}
WriteToClient(client, sizeof(xPanoramiXGetStateReply), (char *)&rep);
return client->noClientException;
@@ -192,10 +193,11 @@ ProcRRXineramaGetScreenCount(ClientPtr client)
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.ScreenCount = RRXineramaScreenCount (pWin->drawable.pScreen);
+ rep.window = stuff->window;
if(client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
- swaps(&rep.ScreenCount, n);
+ swapl(&rep.window, n);
}
WriteToClient(client, sizeof(xPanoramiXGetScreenCountReply), (char *)&rep);
return client->noClientException;
@@ -223,11 +225,15 @@ ProcRRXineramaGetScreenSize(ClientPtr client)
rep.sequenceNumber = client->sequence;
rep.width = pRoot->drawable.width;
rep.height = pRoot->drawable.height;
+ rep.window = stuff->window;
+ rep.screen = stuff->screen;
if(client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
- swaps(&rep.width, n);
- swaps(&rep.height, n);
+ swapl(&rep.width, n);
+ swapl(&rep.height, n);
+ swapl(&rep.window, n);
+ swapl(&rep.screen, n);
}
WriteToClient(client, sizeof(xPanoramiXGetScreenSizeReply), (char *)&rep);
return client->noClientException;
@@ -351,6 +357,7 @@ SProcRRXineramaGetState(ClientPtr client)
register int n;
swaps (&stuff->length, n);
REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
+ swapl (&stuff->window, n);
return ProcRRXineramaGetState(client);
}
@@ -361,6 +368,7 @@ SProcRRXineramaGetScreenCount(ClientPtr client)
register int n;
swaps (&stuff->length, n);
REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
+ swapl (&stuff->window, n);
return ProcRRXineramaGetScreenCount(client);
}
@@ -371,6 +379,8 @@ SProcRRXineramaGetScreenSize(ClientPtr client)
register int n;
swaps (&stuff->length, n);
REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
+ swapl (&stuff->window, n);
+ swapl (&stuff->screen, n);
return ProcRRXineramaGetScreenSize(client);
}
commit ce6424853c2df2486ad99c0369974afc91a92993
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Sep 16 17:13:42 2008 +0200
exa: disable shared pixmaps
They got re-enabled in ee7c684f21d220d5e046bab31ae617a7d64d60f6
("Reimplement ShmPutImage.")
(cherry picked from commit b4762c0245ed2966606171cf27f40aa745fdc76e)
diff --git a/exa/exa.c b/exa/exa.c
index ccf148a..72539c0 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -43,6 +43,10 @@
DevPrivateKey exaScreenPrivateKey = &exaScreenPrivateKey;
DevPrivateKey exaPixmapPrivateKey = &exaPixmapPrivateKey;
+#ifdef MITSHM
+static ShmFuncs exaShmFuncs = { NULL, NULL };
+#endif
+
static _X_INLINE void*
ExaGetPixmapAddress(PixmapPtr p)
{
@@ -924,6 +928,12 @@ exaDriverInit (ScreenPtr pScreen,
}
#endif
+#ifdef MITSHM
+ /*
+ * Don't allow shared pixmaps.
+ */
+ ShmRegisterFuncs(pScreen, &exaShmFuncs);
+#endif
/*
* Hookup offscreen pixmaps
*/
commit 1707aac08a53e42b840cfed4f9bbd2ceccaace96
Author: Julien Cristau <jcristau@debian.org>
Date: Sun Sep 21 20:37:45 2008 +0200
02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr
It doesn't work correctly.
diff --git a/debian/changelog b/debian/changelog
index 693c505..15d963a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.5.0-2) UNRELEASED; urgency=low
+
+ * 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't
+ work correctly.
+
+ -- Julien Cristau <jcristau@debian.org> Sun, 21 Sep 2008 20:37:12 +0200
+
xorg-server (2:1.5.0-1) experimental; urgency=low
* New upstream release.
diff --git a/debian/patches/02_Disable-DRI-in-Xephyr.patch b/debian/patches/02_Disable-DRI-in-Xephyr.patch
new file mode 100644
index 0000000..63c7e3f
--- /dev/null
+++ b/debian/patches/02_Disable-DRI-in-Xephyr.patch
@@ -0,0 +1,34 @@
+From 1433e973251745120cac5ad5d360361f99937e8a Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Sun, 21 Sep 2008 20:28:16 +0200
+Subject: [PATCH] Disable DRI in Xephyr
+
+Doesn't work right, see fdo#16955
+---
+ configure.ac | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0262274..3ca285a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1922,11 +1922,11 @@ if test "$KDRIVE" = yes; then
+ XEPHYR=$xephyr
+ fi
+ XEPHYR_DRI=no
+- if test x$XEPHYR = xyes -a x$DRI = xyes && test "x$GLX" = xyes; then
+- XEPHYR_DRI=yes
+- XEPHYR_DRI_LIBS=-lGL
+- AC_SUBST(XEPHYR_DRI_LIBS)
+- fi
++# if test x$XEPHYR = xyes -a x$DRI = xyes && test "x$GLX" = xyes; then
++# XEPHYR_DRI=yes
++# XEPHYR_DRI_LIBS=-lGL
++# AC_SUBST(XEPHYR_DRI_LIBS)
++# fi
+ if test x$XEPHYR_DRI = xyes ; then
+ AC_DEFINE(XEPHYR_DRI,1,[enable DRI extension in xephyr])
+ fi
+--
+1.5.6.5
+
diff --git a/debian/patches/series b/debian/patches/series
index 93fe4ab..93f18a2 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
001_fedora_extramodes.patch
+02_Disable-DRI-in-Xephyr.patch
#06_use_proc_instead_of_sysfs_for_pci_domains.diff
13_debian_add_xkbpath_env_variable.diff
commit 37876602957924c7cff759a800eddd574ee2385a
Author: Aaron Plattner <aplattner@nvidia.com>
Date: Wed Sep 17 15:48:56 2008 -0700
Conditionalize Composite-based backing store on pScreen->backingStoreSupport.
diff --git a/composite/compinit.c b/composite/compinit.c
index 49b2044..3bf77e0 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -119,7 +119,8 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
pScreen->ChangeWindowAttributes = cs->ChangeWindowAttributes;
ret = pScreen->ChangeWindowAttributes(pWin, mask);
- if (ret && (mask & CWBackingStore)) {
+ if (ret && (mask & CWBackingStore) &&
+ pScreen->backingStoreSupport != NotUseful) {
if (pWin->backingStore != NotUseful) {
compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
pWin->backStorage = TRUE;
commit 986eccd61edb25eadcc7c05db5fd3ea3036c607f
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Sep 15 01:21:23 2008 +0200
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index f66ad47..2baa16c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,13 @@
-xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
+xorg-server (2:1.4.2-6) unstable; urgency=low
* Xevie: always set rep.length to 0 (closes: #497337). Thanks, Thorvald
Natvig!
* Xevie: swap replies if necessary, to not confuse clients with a different
endianness.
* Cherry-picked from upstream git:
- XF86VidMode: Correct a NULL pointer deference (closes: #498289)
+ XF86VidMode: Correct a NULL pointer dereference (closes: #498289)
- -- Julien Cristau <jcristau@debian.org> Mon, 01 Sep 2008 19:21:18 +0200
+ -- Julien Cristau <jcristau@debian.org> Mon, 15 Sep 2008 01:21:13 +0200
xorg-server (2:1.4.2-5) unstable; urgency=low
commit 13f68e9414dba88af77fd96cdd3507a09a394cf8
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Sep 9 18:31:52 2008 +0100
Update changelog for cherry-pick
diff --git a/debian/changelog b/debian/changelog
index 22c67ab..f66ad47 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,8 @@ xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
Natvig!
* Xevie: swap replies if necessary, to not confuse clients with a different
endianness.
+ * Cherry-picked from upstream git:
+ XF86VidMode: Correct a NULL pointer deference (closes: #498289)
-- Julien Cristau <jcristau@debian.org> Mon, 01 Sep 2008 19:21:18 +0200
commit 3f1d43e35cdb29b2fbd39c30ee31c12280cb51ec
Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
Date: Fri May 23 13:50:39 2008 -0300
Correct a NULL pointer deference
The problem happens if Monitor/Card combo doesn't provide EDID info,
and the XFree86-VidModeExtension extension is used.
Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
(cherry picked from commit c8af7ce35a900ac9b898f51c1b95dabad3ba1d76)
diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c
index 16a4d82..64e6a37 100644
--- a/hw/xfree86/common/xf86VidMode.c
+++ b/hw/xfree86/common/xf86VidMode.c
@@ -157,10 +157,14 @@ VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock)
return FALSE;
pScrn = xf86Screens[scrnIndex];
- *mode = (pointer)(pScrn->currentMode);
- *dotClock = pScrn->currentMode->Clock;
- return TRUE;
+ if (pScrn->currentMode) {
+ *mode = (pointer)(pScrn->currentMode);
+ *dotClock = pScrn->currentMode->Clock;
+
+ return TRUE;
+ }
+ return FALSE;
}
_X_EXPORT int
commit 797126dbf003df5474c3bf6eb0dab7be7e7f6a88
Author: Julien Cristau <jcristau@debian.org>
Date: Wed Sep 3 14:59:13 2008 +0200
Xevie: swap replies if necessary
If the client has a different endianness we need to byteswap replies before
sending them.
diff --git a/debian/changelog b/debian/changelog
index 5842698..22c67ab 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
* Xevie: always set rep.length to 0 (closes: #497337). Thanks, Thorvald
Natvig!
+ * Xevie: swap replies if necessary, to not confuse clients with a different
+ endianness.
-- Julien Cristau <jcristau@debian.org> Mon, 01 Sep 2008 19:21:18 +0200
diff --git a/debian/patches/52_xevie-swap-replies.diff b/debian/patches/52_xevie-swap-replies.diff
new file mode 100644
index 0000000..0c2fabf
--- /dev/null
+++ b/debian/patches/52_xevie-swap-replies.diff
@@ -0,0 +1,110 @@
+From b5cdcfa55c399e83d51242e93d4f25d8bc4fec1f Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Mon, 1 Sep 2008 19:45:30 +0200
+Subject: [PATCH] Xevie: swap replies as necessary
+
+---
+ Xext/xevie.c | 27 +++++++++++++++++++++++++++
+ 1 files changed, 27 insertions(+), 0 deletions(-)
+
+Index: xorg-server/Xext/xevie.c
+===================================================================
+--- xorg-server.orig/Xext/xevie.c
++++ xorg-server/Xext/xevie.c
+@@ -167,6 +167,7 @@
+ int ProcQueryVersion (register ClientPtr client)
+ {
+ xXevieQueryVersionReply rep;
++ int n;
+
+ REQUEST_SIZE_MATCH (xXevieQueryVersionReq);
+ rep.type = X_Reply;
+@@ -174,6 +175,12 @@
+ rep.sequence_number = client->sequence;
+ rep.server_major_version = XEVIE_MAJOR_VERSION;
+ rep.server_minor_version = XEVIE_MINOR_VERSION;
++ if (client->swapped) {
++ swaps(&rep.sequence_number, n);
++ swapl(&rep.length, n);
++ swaps(&rep.server_major_version, n);
++ swaps(&rep.server_minor_version, n);
++ }
+ WriteToClient (client, sizeof (xXevieQueryVersionReply), (char *)&rep);
+ return client->noClientException;
+ }
+@@ -182,6 +189,7 @@
+ int ProcStart (register ClientPtr client)
+ {
+ xXevieStartReply rep;
++ int n;
+
+ REQUEST_SIZE_MATCH (xXevieStartReq);
+ rep.pad1 = 0;
+@@ -216,6 +224,10 @@
+ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
++ if (client->swapped) {
++ swaps(&rep.sequence_number, n);
++ swapl(&rep.length, n);
++ }
+ WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
+ return client->noClientException;
+ }
+@@ -224,6 +236,7 @@
+ int ProcEnd (register ClientPtr client)
+ {
+ xXevieEndReply rep;
++ int n;
+
+ if (xevieFlag) {
+ if (client->index != xevieClientIndex)
+@@ -236,6 +249,10 @@
+ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
++ if (client->swapped) {
++ swaps(&rep.sequence_number, n);
++ swapl(&rep.length, n);
++ }
+ WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
+ return client->noClientException;
+ }
+@@ -247,6 +264,7 @@
+ xXevieSendReply rep;
+ xEvent *xE;
+ static unsigned char lastDetail = 0, lastType = 0;
++ int n;
+
+ if (client->index != xevieClientIndex)
+ return BadAccess;
+@@ -255,6 +273,10 @@
+ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
++ if (client->swapped) {
++ swaps(&rep.sequence_number, n);
++ swapl(&rep.length, n);
++ }
+ WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
+
+ switch(xE->u.u.type) {
+@@ -292,6 +314,7 @@
+ {
+ REQUEST (xXevieSelectInputReq);
+ xXevieSelectInputReply rep;
++ int n;
+
+ if (client->index != xevieClientIndex)
+ return BadAccess;
+@@ -300,6 +323,10 @@
+ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
++ if (client->swapped) {
++ swaps(&rep.sequence_number, n);
++ swapl(&rep.length, n);
++ }
+ WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);
+ return client->noClientException;
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 4d71c53..55ff4fa 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -25,6 +25,7 @@
49_x86emu_int1a_fix.diff
50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch
51_xevie-length.diff
+52_xevie-swap-replies.diff
91_ttf2pt1
91_ttf2pt1_updates
92_xprint-security-holes-fix.patch
commit c68fab55b468a46b4713e47d0a1aac7df0a0b019
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Sep 1 19:23:15 2008 +0200
Xevie: always set rep.length to 0 (closes: #497337).
Thanks, Thorvald Natvig!
diff --git a/debian/changelog b/debian/changelog
index ac9b26b..5842698 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xorg-server (2:1.4.2-6) UNRELEASED; urgency=low
+
+ * Xevie: always set rep.length to 0 (closes: #497337). Thanks, Thorvald
+ Natvig!
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 01 Sep 2008 19:21:18 +0200
+
xorg-server (2:1.4.2-5) unstable; urgency=low
* Don't pretend we support randr 1.2 when queried by swapped clients. The
diff --git a/debian/patches/51_xevie-length.diff b/debian/patches/51_xevie-length.diff
new file mode 100644
index 0000000..eb8d4a2
--- /dev/null
+++ b/debian/patches/51_xevie-length.diff
@@ -0,0 +1,42 @@
+From: Thorvald Natvig <thorvald@natvig.com>
+Subject: fix XEvIE
+
+For all the replys but ProcXevieQueryVersion, the rep.length field isn't
+set to zero, which makes the client misbehave when it gets the reply.
+
+Index: xorg-server/Xext/xevie.c
+===================================================================
+--- xorg-server.orig/Xext/xevie.c
++++ xorg-server/Xext/xevie.c
+@@ -213,6 +213,7 @@
+
+ xevieModifiersOn = FALSE;
+
++ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
+ WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
+@@ -232,6 +233,7 @@
+ XevieEnd(xevieClientIndex);
+ }
+
++ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
+ WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
+@@ -250,6 +252,7 @@
+ return BadAccess;
+
+ xE = (xEvent *)&stuff->event;
++ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
+ WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
+@@ -294,6 +297,7 @@
+ return BadAccess;
+
+ xevieMask = (long)stuff->event_mask;
++ rep.length = 0;
+ rep.type = X_Reply;
+ rep.sequence_number = client->sequence;
+ WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);
diff --git a/debian/patches/series b/debian/patches/series
index c6c3dbc..4d71c53 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -24,6 +24,7 @@
48_xaa_nooffscreenpixmaps.diff
49_x86emu_int1a_fix.diff
50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch
+51_xevie-length.diff
91_ttf2pt1
91_ttf2pt1_updates
92_xprint-security-holes-fix.patch
Reply to: