xorg-server: Changes to 'debian-unstable'
debian/changelog | 4
debian/patches/03_fedora_glx_versioning.diff | 233 ---------------------------
debian/patches/04_fedora_glx14-swrast.diff | 26 ---
debian/patches/series | 3
4 files changed, 4 insertions(+), 262 deletions(-)
New commits:
commit f0b4835e02bf18fb90342d30446f1d77cb8ce00e
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Apr 26 21:09:14 2010 +0200
Drop the GLX 1.4 patches to fix server crashes with DRI2 (closes: #567677).
diff --git a/debian/changelog b/debian/changelog
index 56b8ad8..b20d79d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,10 @@ xorg-server (2:1.7.6.901-4) UNRELEASED; urgency=low
- Point to the complete text of the GPL in debian/copyright.
* Fix typo in 10-mouse.conf: s/Mouse/Pointer/ (Closes: #579130).
+ [ Julien Cristau ]
+ * Drop the GLX 1.4 patches to fix server crashes with DRI2 (closes:
+ #567677).
+
-- Timo Aaltonen <tjaalton@ubuntu.com> Tue, 20 Apr 2010 17:46:32 +0300
xorg-server (2:1.7.6.901-3) unstable; urgency=low
diff --git a/debian/patches/03_fedora_glx_versioning.diff b/debian/patches/03_fedora_glx_versioning.diff
deleted file mode 100644
index c8a1c30..0000000
--- a/debian/patches/03_fedora_glx_versioning.diff
+++ /dev/null
@@ -1,233 +0,0 @@
-From 3ef4be8129f78afd5566a9e5d0fb901449dcb771 Mon Sep 17 00:00:00 2001
-From: Ian Romanick <ian.d.romanick@intel.com>
-Date: Tue, 29 Sep 2009 16:43:43 -0700
-Subject: [PATCH] GLX: Enable GLX 1.4 on DRI2
-
-this squashes 4 commits
-(cherry picked from commit ad5c0d9efa47476ed5cf75c82265c73919e468b4)
-(cherry picked from commit cb54cf1b3e8c4109541cfb698542c00f2473e731)
-(cherry picked from commit 4c6bfa2c09ae2b0cffdf9211a6dfbcaefe0366b5)
-(cherry picked from commit 9bf2ff4faf730913de3073f346646a8727be41d4)
----
- glx/glxcmds.c | 12 ++++++++----
- glx/glxdri2.c | 12 ++++++++++++
- glx/glxext.c | 8 +++++++-
- glx/glxscreens.c | 15 ++++++++++++---
- glx/glxscreens.h | 11 +++++++++++
- glx/glxserver.h | 3 +++
- glx/indirect_texture_compression.c | 4 ++--
- include/protocol-versions.h | 2 +-
- 8 files changed, 56 insertions(+), 11 deletions(-)
-
-diff --git a/glx/glxcmds.c b/glx/glxcmds.c
-index b1061a8..ba4c123 100644
---- a/glx/glxcmds.c
-+++ b/glx/glxcmds.c
-@@ -50,7 +50,6 @@
- #include "indirect_dispatch.h"
- #include "indirect_table.h"
- #include "indirect_util.h"
--#include "protocol-versions.h"
-
- static int
- validGlxScreen(ClientPtr client, int screen, __GLXscreen **pGlxScreen, int *err)
-@@ -739,8 +738,8 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc)
- ** client if it wants to work with older clients; however, in this
- ** implementation the server just returns its version number.
- */
-- reply.majorVersion = SERVER_GLX_MAJOR_VERSION;
-- reply.minorVersion = SERVER_GLX_MINOR_VERSION;
-+ reply.majorVersion = glxMajorVersion;
-+ reply.minorVersion = glxMinorVersion;
- reply.length = 0;
- reply.type = X_Reply;
- reply.sequenceNumber = client->sequence;
-@@ -2360,6 +2359,7 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc)
- char *buf;
- __GLXscreen *pGlxScreen;
- int err;
-+ char ver_str[16];
-
- if (!validGlxScreen(client, req->screen, &pGlxScreen, &err))
- return err;
-@@ -2369,7 +2369,11 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc)
- ptr = pGlxScreen->GLXvendor;
- break;
- case GLX_VERSION:
-- ptr = pGlxScreen->GLXversion;
-+ /* Return to the server version rather than the screen version
-+ * to prevent confusion when they do not match.
-+ */
-+ snprintf(ver_str, 16, "%d.%d", glxMajorVersion, glxMinorVersion);
-+ ptr = ver_str;
- break;
- case GLX_EXTENSIONS:
- ptr = pGlxScreen->GLXextensions;
-diff --git a/glx/glxdri2.c b/glx/glxdri2.c
-index ed7fb4c..ed7dc80 100644
---- a/glx/glxdri2.c
-+++ b/glx/glxdri2.c
-@@ -685,6 +685,18 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
- screen->base.GLXextensions);
- }
-
-+ /* We're going to assume (perhaps incorrectly?) that all DRI2-enabled
-+ * drivers support the required extensions for GLX 1.4. The extensions
-+ * we're assuming are:
-+ *
-+ * - GLX_SGI_make_current_read (1.3)
-+ * - GLX_SGIX_fbconfig (1.3)
-+ * - GLX_SGIX_pbuffer (1.3)
-+ * - GLX_ARB_multisample (1.4)
-+ */
-+ screen->base.GLXmajor = 1;
-+ screen->base.GLXminor = 4;
-+
- screen->enterVT = pScrn->EnterVT;
- pScrn->EnterVT = glxDRIEnterVT;
- screen->leaveVT = pScrn->LeaveVT;
-diff --git a/glx/glxext.c b/glx/glxext.c
-index 19d70d4..9f9c0ed 100644
---- a/glx/glxext.c
-+++ b/glx/glxext.c
-@@ -360,12 +360,18 @@ void GlxExtensionInit(void)
- pScreen = screenInfo.screens[i];
-
- for (p = __glXProviderStack; p != NULL; p = p->next) {
-- if (p->screenProbe(pScreen) != NULL) {
-+ __GLXscreen *glxScreen;
-+
-+ glxScreen = p->screenProbe(pScreen);
-+ if (glxScreen != NULL) {
-+ if (glxScreen->GLXminor < glxMinorVersion)
-+ glxMinorVersion = glxScreen->GLXminor;
- LogMessage(X_INFO,
- "GLX: Initialized %s GL provider for screen %d\n",
- p->name, i);
- break;
- }
-+
- }
-
- if (!p)
-diff --git a/glx/glxscreens.c b/glx/glxscreens.c
-index 7d29d31..674e2c6 100644
---- a/glx/glxscreens.c
-+++ b/glx/glxscreens.c
-@@ -42,6 +42,7 @@
- #include "glxserver.h"
- #include "glxutil.h"
- #include "glxext.h"
-+#include "protocol-versions.h"
-
- static int glxScreenPrivateKeyIndex;
- static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex;
-@@ -162,7 +163,8 @@ static const char GLServerExtensions[] =
- ** supported across all screens in a multi-screen system.
- */
- static char GLXServerVendorName[] = "SGI";
--static char GLXServerVersion[] = "1.2";
-+unsigned glxMajorVersion = SERVER_GLX_MAJOR_VERSION;
-+unsigned glxMinorVersion = SERVER_GLX_MINOR_VERSION;
- static char GLXServerExtensions[] =
- "GLX_ARB_multisample "
- "GLX_EXT_visual_info "
-@@ -378,9 +380,17 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
- pGlxScreen->pScreen = pScreen;
- pGlxScreen->GLextensions = xstrdup(GLServerExtensions);
- pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName);
-- pGlxScreen->GLXversion = xstrdup(GLXServerVersion);
- pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions);
-
-+ /* All GLX providers must support all of the functionality required for at
-+ * least GLX 1.2. If the provider supports a higher version, the GLXminor
-+ * version can be changed in the provider's screen-probe routine. For
-+ * most providers, the screen-probe routine is the caller of this
-+ * function.
-+ */
-+ pGlxScreen->GLXmajor = 1;
-+ pGlxScreen->GLXminor = 2;
-+
- pGlxScreen->CloseScreen = pScreen->CloseScreen;
- pScreen->CloseScreen = glxCloseScreen;
- pGlxScreen->DestroyWindow = pScreen->DestroyWindow;
-@@ -454,7 +464,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
- void __glXScreenDestroy(__GLXscreen *screen)
- {
- xfree(screen->GLXvendor);
-- xfree(screen->GLXversion);
- xfree(screen->GLXextensions);
- xfree(screen->GLextensions);
- }
-diff --git a/glx/glxscreens.h b/glx/glxscreens.h
-index 3c1bdd4..bff4363 100644
---- a/glx/glxscreens.h
-+++ b/glx/glxscreens.h
-@@ -161,6 +161,17 @@ struct __GLXscreen {
- char *GLXversion;
- char *GLXextensions;
-
-+ /**
-+ * \name GLX version supported by this screen.
-+ *
-+ * Since the GLX version advertised by the server is for the whole server,
-+ * the GLX protocol code uses the minimum version supported on all screens.
-+ */
-+ /*@{*/
-+ unsigned GLXmajor;
-+ unsigned GLXminor;
-+ /*@}*/
-+
- Bool (*CloseScreen)(int index, ScreenPtr pScreen);
- Bool (*DestroyWindow)(WindowPtr pWindow);
- };
-diff --git a/glx/glxserver.h b/glx/glxserver.h
-index 4aa8c2e..80f1b28 100644
---- a/glx/glxserver.h
-+++ b/glx/glxserver.h
-@@ -248,4 +248,7 @@ extern int __glXImageSize(GLenum format, GLenum type,
- GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
- GLint alignment);
-
-+extern unsigned glxMajorVersion;
-+extern unsigned glxMinorVersion;
-+
- #endif /* !__GLX_server_h__ */
-diff --git a/glx/indirect_texture_compression.c b/glx/indirect_texture_compression.c
-index 25c6eb3..5f44d7b 100644
---- a/glx/indirect_texture_compression.c
-+++ b/glx/indirect_texture_compression.c
-@@ -52,7 +52,7 @@ int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *p
- const GLenum target = *(GLenum *)(pc + 0);
- const GLint level = *(GLint *)(pc + 4);
- GLint compsize = 0;
-- char *answer, answerBuffer[200];
-+ char *answer = NULL, answerBuffer[200];
-
- CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize));
-
-@@ -92,7 +92,7 @@ int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyt
- const GLenum target = (GLenum) bswap_32( *(int *)(pc + 0) );
- const GLint level = (GLint ) bswap_32( *(int *)(pc + 4) );
- GLint compsize = 0;
-- char *answer, answerBuffer[200];
-+ char *answer = NULL, answerBuffer[200];
-
- CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize));
-
-diff --git a/include/protocol-versions.h b/include/protocol-versions.h
-index da9770c..d688c66 100644
---- a/include/protocol-versions.h
-+++ b/include/protocol-versions.h
-@@ -61,7 +61,7 @@
-
- /* GLX */
- #define SERVER_GLX_MAJOR_VERSION 1
--#define SERVER_GLX_MINOR_VERSION 2
-+#define SERVER_GLX_MINOR_VERSION 4
-
- /* Xinerama */
- #define SERVER_PANORAMIX_MAJOR_VERSION 1
---
-1.6.5.rc2
-
diff --git a/debian/patches/04_fedora_glx14-swrast.diff b/debian/patches/04_fedora_glx14-swrast.diff
deleted file mode 100644
index 2c51802..0000000
--- a/debian/patches/04_fedora_glx14-swrast.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-From 25a0107768c9f25e8edc5e423ca8b1d0813f2d04 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 24 Nov 2009 13:38:46 -0500
-Subject: [PATCH] Enable GLX 1.4 for swrast
-
----
- glx/glxdriswrast.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
-index 44f658f..20f9f90 100644
---- a/glx/glxdriswrast.c
-+++ b/glx/glxdriswrast.c
-@@ -510,6 +510,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
-
- __glXScreenInit(&screen->base, pScreen);
-
-+ screen->base.GLXmajor = 1;
-+ screen->base.GLXminor = 4;
-+
- LogMessage(X_INFO,
- "AIGLX: Loaded and initialized %s\n", filename);
-
---
-1.6.5.2
-
diff --git a/debian/patches/series b/debian/patches/series
index 2d94abf..36c9720 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,9 +2,6 @@
## Ubuntu patches start with 100.
001_fedora_extramodes.patch
02_Add-libgcrypt-and-libnettle-as-options-for-sha1.diff
-# 03 and 04 are backports from git master
-03_fedora_glx_versioning.diff
-04_fedora_glx14-swrast.diff
05_only_call_gamma_set_if_nonnull.diff
06_dont_trap_access_to_timer_and_keyboard.diff
07-xfree86-fix-build-with-xv-disabled.diff
Reply to: