diff --git a/commit-5930aeb.diff b/commit-5930aeb.diff new file mode 100644 index 0000000..a375483 --- /dev/null +++ b/commit-5930aeb.diff @@ -0,0 +1,23 @@ +commit 5930aeb45e3849df6fc9abf7373599936d515ffa +Author: Dave Miller +Date: Sat Aug 9 16:45:59 2008 +1000 + + glx: fix crash in driGetConfigAttribIndex + + Don't access GLboolean via int pointers + +diff --git a/glx/glxdricommon.c b/glx/glxdricommon.c +index 13725ae..3285835 100644 +--- a/glx/glxdricommon.c ++++ b/glx/glxdricommon.c +@@ -164,6 +164,10 @@ createModeFromConfig(const __DRIcoreExtension *core, + if (value & __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT) + config->config.bindToTextureTargets |= GLX_TEXTURE_RECTANGLE_BIT_EXT; + break; ++ case __DRI_ATTRIB_FLOAT_MODE: ++ config->config.floatMode = (value ? GL_TRUE : GL_FALSE); ++ break; ++ + default: + setScalar(&config->config, attrib, value); + break; diff --git a/commit-78f50cd.diff b/commit-78f50cd.diff new file mode 100644 index 0000000..1a83b64 --- /dev/null +++ b/commit-78f50cd.diff @@ -0,0 +1,106 @@ +commit 78f50cd5758d778a5b01aa607c04919b69a5a47f +Author: Kristian Høgsberg +Date: Tue Aug 26 10:58:35 2008 -0400 + + Fix driGetConfigAttribIndex unaligned access to GLboolean. + + We don't actually send the float mode so just drop it. Drop a couple of + other unused or redundant fields from GLXconfig. + +diff --git a/glx/glxcmds.c b/glx/glxcmds.c +index 0831135..95221a7 100644 +--- a/glx/glxcmds.c ++++ b/glx/glxcmds.c +@@ -907,7 +907,7 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc) + p = 0; + buf[p++] = modes->visualID; + buf[p++] = glxConvertToXVisualType( modes->visualType ); +- buf[p++] = modes->rgbMode; ++ buf[p++] = (modes->renderType & GLX_RGBA_BIT) ? GL_TRUE : GL_FALSE; + + buf[p++] = modes->redBits; + buf[p++] = modes->greenBits; +@@ -959,7 +959,7 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc) + return Success; + } + +-#define __GLX_TOTAL_FBCONFIG_ATTRIBS (35) ++#define __GLX_TOTAL_FBCONFIG_ATTRIBS (36) + #define __GLX_FBCONFIG_ATTRIBS_LENGTH (__GLX_TOTAL_FBCONFIG_ATTRIBS * 2) + /** + * Send the set of GLXFBConfigs to the client. There is not currently +@@ -1011,7 +1011,9 @@ DoGetFBConfigs(__GLXclientState *cl, unsigned screen) + WRITE_PAIR( GLX_FBCONFIG_ID, modes->fbconfigID ); + WRITE_PAIR( GLX_X_RENDERABLE, GL_TRUE ); + +- WRITE_PAIR( GLX_RGBA, modes->rgbMode ); ++ WRITE_PAIR( GLX_RGBA, ++ (modes->renderType & GLX_RGBA_BIT) ? GL_TRUE : GL_FALSE ); ++ WRITE_PAIR( GLX_RENDER_TYPE, modes->renderType ); + WRITE_PAIR( GLX_DOUBLEBUFFER, modes->doubleBufferMode ); + WRITE_PAIR( GLX_STEREO, modes->stereoMode ); + +diff --git a/glx/glxdricommon.c b/glx/glxdricommon.c +index 3285835..faaa3b7 100644 +--- a/glx/glxdricommon.c ++++ b/glx/glxdricommon.c +@@ -88,7 +88,6 @@ static const struct { unsigned int attrib, offset; } attribMap[] = { + __ATTRIB(__DRI_ATTRIB_TRANSPARENT_GREEN_VALUE, transparentGreen), + __ATTRIB(__DRI_ATTRIB_TRANSPARENT_BLUE_VALUE, transparentBlue), + __ATTRIB(__DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE, transparentAlpha), +- __ATTRIB(__DRI_ATTRIB_FLOAT_MODE, floatMode), + __ATTRIB(__DRI_ATTRIB_RED_MASK, redMask), + __ATTRIB(__DRI_ATTRIB_GREEN_MASK, greenMask), + __ATTRIB(__DRI_ATTRIB_BLUE_MASK, blueMask), +@@ -136,16 +135,11 @@ createModeFromConfig(const __DRIcoreExtension *core, + while (core->indexConfigAttrib(driConfig, i++, &attrib, &value)) { + switch (attrib) { + case __DRI_ATTRIB_RENDER_TYPE: +- if (value & __DRI_ATTRIB_RGBA_BIT) { ++ config->config.renderType = 0; ++ if (value & __DRI_ATTRIB_RGBA_BIT) + config->config.renderType |= GLX_RGBA_BIT; +- config->config.rgbMode = GL_TRUE; +- } else if (value & __DRI_ATTRIB_COLOR_INDEX_BIT) { ++ if (value & __DRI_ATTRIB_COLOR_INDEX_BIT) + config->config.renderType |= GLX_COLOR_INDEX_BIT; +- config->config.rgbMode = GL_FALSE; +- } else { +- config->config.renderType = 0; +- config->config.rgbMode = GL_FALSE; +- } + break; + case __DRI_ATTRIB_CONFIG_CAVEAT: + if (value & __DRI_ATTRIB_NON_CONFORMANT_CONFIG) +@@ -164,10 +158,6 @@ createModeFromConfig(const __DRIcoreExtension *core, + if (value & __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT) + config->config.bindToTextureTargets |= GLX_TEXTURE_RECTANGLE_BIT_EXT; + break; +- case __DRI_ATTRIB_FLOAT_MODE: +- config->config.floatMode = (value ? GL_TRUE : GL_FALSE); +- break; +- + default: + setScalar(&config->config, attrib, value); + break; +diff --git a/glx/glxscreens.h b/glx/glxscreens.h +index 39d162d..ea47db4 100644 +--- a/glx/glxscreens.h ++++ b/glx/glxscreens.h +@@ -58,16 +58,9 @@ void __glXSwapBarrierInit(int screen, __GLXSwapBarrierExtensionFuncs *funcs); + typedef struct __GLXconfig __GLXconfig; + struct __GLXconfig { + __GLXconfig *next; +- GLboolean rgbMode; +- GLboolean floatMode; +- GLboolean colorIndexMode; + GLuint doubleBufferMode; + GLuint stereoMode; + +- GLboolean haveAccumBuffer; +- GLboolean haveDepthBuffer; +- GLboolean haveStencilBuffer; +- + GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ + GLuint redMask, greenMask, blueMask, alphaMask; + GLint rgbBits; /* total bits for rgb */ diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 3de5e50..6cdf52e 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Aug 28 12:46:01 CEST 2008 - sndirsch@suse.de + +- commit-5930aeb.diff/commit-78f50cd.diff + * obsoletes reverting of Mesa commit 1724334 (bfo #17069) + ------------------------------------------------------------------- Fri Aug 8 10:50:48 CEST 2008 - sndirsch@suse.de diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index f5201af..a0008f6 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -29,7 +29,7 @@ BuildRequires: libjpeg-devel Url: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.3 -Release: 141 +Release: 156 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -98,6 +98,8 @@ Patch114: 64bit-portability-issue.diff Patch116: ppc.diff Patch117: acpi-warning.diff Patch118: exa-greedy.diff +Patch119: commit-5930aeb.diff +Patch120: commit-78f50cd.diff %description This package contains the X.Org Server. @@ -216,6 +218,8 @@ popd %endif %patch117 %patch118 -p1 +%patch119 -p1 +%patch120 -p1 %build pushd xorg-docs-* @@ -530,6 +534,9 @@ exit 0 %endif %changelog +* Thu Aug 28 2008 sndirsch@suse.de +- commit-5930aeb.diff/commit-78f50cd.diff + * obsoletes reverting of Mesa commit 1724334 (bfo #17069) * Fri Aug 08 2008 sndirsch@suse.de - commit-50e80c3.diff obsolete now (bnc #415680) - commit-f6401f9.diff obsolete