Package: mesa-common-dev Version: 10.3.2-1+deb8u1 Severity: normal Dear Maintainer,
A number of typedefs that were defined in previous versions of Mesa are now missing, if <GL/gl.h> is included before <GL/glext.h>. The lack of these definitions breaks existing code. It seems the current version of glext.h and the current version of gl.h have a disagreement regarding what types are "supposed" to be defined for a given version of the API. Specifically, in version 8.0.5-4+deb7u2, the following 37 types were defined in the '#ifndef GL_VERSION_1_3_DEPRECATED' section of glext.h: PFNGLCLIENTACTIVETEXTUREPROC PFNGLMULTITEXCOORD1DPROC PFNGLMULTITEXCOORD1DVPROC PFNGLMULTITEXCOORD1FPROC PFNGLMULTITEXCOORD1FVPROC PFNGLMULTITEXCOORD1IPROC PFNGLMULTITEXCOORD1IVPROC PFNGLMULTITEXCOORD1SPROC PFNGLMULTITEXCOORD1SVPROC PFNGLMULTITEXCOORD2DPROC PFNGLMULTITEXCOORD2DVPROC PFNGLMULTITEXCOORD2FPROC PFNGLMULTITEXCOORD2FVPROC PFNGLMULTITEXCOORD2IPROC PFNGLMULTITEXCOORD2IVPROC PFNGLMULTITEXCOORD2SPROC PFNGLMULTITEXCOORD2SVPROC PFNGLMULTITEXCOORD3DPROC PFNGLMULTITEXCOORD3DVPROC PFNGLMULTITEXCOORD3FPROC PFNGLMULTITEXCOORD3FVPROC PFNGLMULTITEXCOORD3IPROC PFNGLMULTITEXCOORD3IVPROC PFNGLMULTITEXCOORD3SPROC PFNGLMULTITEXCOORD3SVPROC PFNGLMULTITEXCOORD4DPROC PFNGLMULTITEXCOORD4DVPROC PFNGLMULTITEXCOORD4FPROC PFNGLMULTITEXCOORD4FVPROC PFNGLMULTITEXCOORD4IPROC PFNGLMULTITEXCOORD4IVPROC PFNGLMULTITEXCOORD4SPROC PFNGLMULTITEXCOORD4SVPROC PFNGLLOADTRANSPOSEMATRIXFPROC PFNGLLOADTRANSPOSEMATRIXDPROC PFNGLMULTTRANSPOSEMATRIXFPROC PFNGLMULTTRANSPOSEMATRIXDPROC In version 10.3.2-1+deb8u1, these types have been moved to the 'GL_VERSION_1_3' section of glext.h, but are not defined in gl.h. Thus (since gl.h defines GL_VERSION_1_3) these types cannot be used. Likewise, the following 32 types were previously part of the 'GL_VERSION_1_2_DEPRECATED' section in glext.h: PFNGLCOLORTABLEPROC PFNGLCOLORTABLEPARAMETERFVPROC PFNGLCOLORTABLEPARAMETERIVPROC PFNGLCOPYCOLORTABLEPROC PFNGLGETCOLORTABLEPROC PFNGLGETCOLORTABLEPARAMETERFVPROC PFNGLGETCOLORTABLEPARAMETERIVPROC PFNGLCOLORSUBTABLEPROC PFNGLCOPYCOLORSUBTABLEPROC PFNGLCONVOLUTIONFILTER1DPROC PFNGLCONVOLUTIONFILTER2DPROC PFNGLCONVOLUTIONPARAMETERFPROC PFNGLCONVOLUTIONPARAMETERFVPROC PFNGLCONVOLUTIONPARAMETERIPROC PFNGLCONVOLUTIONPARAMETERIVPROC PFNGLCOPYCONVOLUTIONFILTER1DPROC PFNGLCOPYCONVOLUTIONFILTER2DPROC PFNGLGETCONVOLUTIONFILTERPROC PFNGLGETCONVOLUTIONPARAMETERFVPROC PFNGLGETCONVOLUTIONPARAMETERIVPROC PFNGLGETSEPARABLEFILTERPROC PFNGLSEPARABLEFILTER2DPROC PFNGLGETHISTOGRAMPROC PFNGLGETHISTOGRAMPARAMETERFVPROC PFNGLGETHISTOGRAMPARAMETERIVPROC PFNGLGETMINMAXPROC PFNGLGETMINMAXPARAMETERFVPROC PFNGLGETMINMAXPARAMETERIVPROC PFNGLHISTOGRAMPROC PFNGLMINMAXPROC PFNGLRESETHISTOGRAMPROC PFNGLRESETMINMAXPROC These types are now defined under 'GL_ARB_imaging' in glext.h, and are not defined in gl.h. The oldest version of Mesa that I have lying around is 6.5.2; in that version, these typedefs appear in both gl.h and glext.h, and there are no "deprecated" sections. I guess that at some point, the deprecated sections were added to glext.h, and in response, the typedefs - but not the corresponding prototypes or macros - were removed from gl.h to avoid redefining them. (Whereas the smart thing to do would have been to leave the typedefs alone, and #define GL_VERSION_1_2_DEPRECATED and GL_VERSION_1_3_DEPRECATED in gl.h.) Now that the deprecated sections have been removed, it's broken again.