diff --git a/.gitignore b/.gitignore index dc176ee..6200ec5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libglvnd-5baa1e5.tar.gz +SOURCES/libglvnd-1.2.0.tar.gz diff --git a/.libglvnd.metadata b/.libglvnd.metadata index 8a52842..07007ee 100644 --- a/.libglvnd.metadata +++ b/.libglvnd.metadata @@ -1 +1 @@ -24d2da61c11750acd880ee3f9ad4ee9ca4d4f521 SOURCES/libglvnd-5baa1e5.tar.gz +719e1001e235f84d104a2c6ae922f145f3276d20 SOURCES/libglvnd-1.2.0.tar.gz diff --git a/SOURCES/egl-sync-with-khronos.patch b/SOURCES/egl-sync-with-khronos.patch new file mode 100644 index 0000000..9f048e4 --- /dev/null +++ b/SOURCES/egl-sync-with-khronos.patch @@ -0,0 +1,42 @@ +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h +index 29ab288b57eb6ccce0476f0e76c8b4da94225091..5ab49c1d4ea4564cc5d94a2a7ffa842ac6b3eeb1 100644 +--- a/include/EGL/eglplatform.h ++++ b/include/EGL/eglplatform.h +@@ -116,6 +116,12 @@ typedef intptr_t EGLNativeDisplayType; + typedef intptr_t EGLNativePixmapType; + typedef intptr_t EGLNativeWindowType; + ++#elif defined(__unix__) && defined(EGL_NO_X11) ++ ++typedef void *EGLNativeDisplayType; ++typedef khronos_uintptr_t EGLNativePixmapType; ++typedef khronos_uintptr_t EGLNativeWindowType; ++ + #elif defined(__unix__) || defined(USE_X11) + + /* X11 (tentative) */ +diff --git a/src/generate/xml/egl.xml b/src/generate/xml/egl.xml +index c27f1726b677f311d792a136e86c5e01ae467e5f..6bc2ea2886aaf628d9741a7de2629bd8e38f37c8 100644 +--- a/src/generate/xml/egl.xml ++++ b/src/generate/xml/egl.xml +@@ -1002,6 +1002,9 @@ + + + ++ ++ ++ + + +- +- ++ ++ + + + diff --git a/SOURCES/update-gl-h-to-match-mesa.patch b/SOURCES/update-gl-h-to-match-mesa.patch new file mode 100644 index 0000000..9e1f26a --- /dev/null +++ b/SOURCES/update-gl-h-to-match-mesa.patch @@ -0,0 +1,245 @@ +From 5dfdc5a6dc60a3bdc63cd4510dabacba388da13a Mon Sep 17 00:00:00 2001 +From: Kyle Brenneman +Date: Tue, 22 Oct 2019 16:46:09 -0600 +Subject: [PATCH] Update GL/gl.h to match Mesa. + +Updated GL/gl.h to match the copy from Mesa at commit +a0829cf23b307ca44ab8c4505974fb7c8d71a35a. +--- + include/GL/gl.h | 147 ++++++------------------------------------------ + 1 file changed, 17 insertions(+), 130 deletions(-) + +diff --git a/include/GL/gl.h b/include/GL/gl.h +index 3f8cb62..2518dfb 100644 +--- a/include/GL/gl.h ++++ b/include/GL/gl.h +@@ -27,40 +27,24 @@ + #ifndef __gl_h_ + #define __gl_h_ + +-#if defined(USE_MGL_NAMESPACE) +-#include "gl_mangle.h" +-#endif +- +- + /********************************************************************** +- * Begin system-specific stuff. Do not do any of this when building +- * for SciTech SNAP, as this is all done before this header file is +- * included. ++ * Begin system-specific stuff. + */ +-#if !defined(__SCITECH_SNAP__) +- +-#if defined(__BEOS__) +-#include /* to get some BeOS-isms */ +-#endif +- +-#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) +-#define OPENSTEP +-#endif + + #if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) + #define __WIN32__ + #endif + +-#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) ++#if defined(__WIN32__) && !defined(__CYGWIN__) + # if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ + # define GLAPI __declspec(dllexport) + # elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ + # define GLAPI __declspec(dllimport) + # else /* for use with static link lib build of Win32 edition only */ + # define GLAPI extern +-# endif /* _STATIC_MESA support */ ++# endif + # if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ +-# define GLAPIENTRY ++# define GLAPIENTRY + # else + # define GLAPIENTRY __stdcall + # endif +@@ -72,10 +56,6 @@ + # define GLAPIENTRY + #endif /* WIN32 && !CYGWIN */ + +-#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) +-# define PRAGMA_EXPORT_SUPPORTED 1 +-#endif +- + /* + * WINDOWS: Include windows.h here to define APIENTRY. + * It is also useful when applications include this file by +@@ -91,10 +71,6 @@ + #include + #endif + +-#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED +-#pragma import on +-#endif +- + #ifndef GLAPI + #define GLAPI extern + #endif +@@ -116,15 +92,6 @@ + #define GLAPIENTRYP GLAPIENTRY * + #endif + +-#ifdef CENTERLINE_CLPP +-#define signed +-#endif +- +-#if defined(PRAGMA_EXPORT_SUPPORTED) +-#pragma export on +-#endif +- +-#endif /* !__SCITECH_SNAP__ */ + /* + * End system-specific stuff. + **********************************************************************/ +@@ -718,7 +685,7 @@ typedef double GLclampd; /* double precision float in [0,1] */ + #define GL_LIST_BIT 0x00020000 + #define GL_TEXTURE_BIT 0x00040000 + #define GL_SCISSOR_BIT 0x00080000 +-#define GL_ALL_ATTRIB_BITS 0x000FFFFF ++#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF + + + /* OpenGL 1.1 */ +@@ -1738,6 +1705,7 @@ GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, + + + ++ + /* + * OpenGL 1.3 + */ +@@ -2085,26 +2053,6 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh + + + +-#if GL_ARB_shader_objects +- +-#ifndef GL_MESA_shader_debug +-#define GL_MESA_shader_debug 1 +- +-#define GL_DEBUG_OBJECT_MESA 0x8759 +-#define GL_DEBUG_PRINT_MESA 0x875A +-#define GL_DEBUG_ASSERT_MESA 0x875B +- +-GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void); +-GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); +-GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength, +- GLsizei *length, GLcharARB *debugLog); +-GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); +- +-#endif /* GL_MESA_shader_debug */ +- +-#endif /* GL_ARB_shader_objects */ +- +- + /* + * ???. GL_MESA_packed_depth_stencil + * XXX obsolete +@@ -2121,60 +2069,6 @@ GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logTyp + #endif /* GL_MESA_packed_depth_stencil */ + + +-#ifndef GL_MESA_program_debug +-#define GL_MESA_program_debug 1 +- +-#define GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 +-#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 +-#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 +-#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 +-#define GL_VERTEX_PROGRAM_POSITION_MESA 0x8bb4 +-#define GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8bb5 +-#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 +-#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 +- +-typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data); +- +-GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data); +- +-GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v); +- +-#endif /* GL_MESA_program_debug */ +- +- +-#ifndef GL_MESA_texture_array +-#define GL_MESA_texture_array 1 +- +-/* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. +- */ +-#ifndef GL_EXT_texture_array +- +-#ifdef GL_GLEXT_PROTOTYPES +-GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, +- GLenum attachment, GLuint texture, GLint level, GLint layer); +-#endif /* GL_GLEXT_PROTOTYPES */ +- +-#if 0 +-/* (temporarily) disabled because of collision with typedef in glext.h +- * that happens if apps include both gl.h and glext.h +- */ +-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, +- GLenum attachment, GLuint texture, GLint level, GLint layer); +-#endif +- +-#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +-#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +-#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +-#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +-#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +-#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +-#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +-#endif +- +-#endif +- +- + #ifndef GL_ATI_blend_equation_separate + #define GL_ATI_blend_equation_separate 1 + +@@ -2186,27 +2080,20 @@ typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLen + #endif /* GL_ATI_blend_equation_separate */ + + +-/** +- ** NOTE!!!!! If you add new functions to this file, or update +- ** glext.h be sure to regenerate the gl_mangle.h file. See comments +- ** in that file for details. +- **/ +- +- +- +-/********************************************************************** +- * Begin system-specific stuff +- */ +-#if defined(PRAGMA_EXPORT_SUPPORTED) +-#pragma export off ++/* GL_OES_EGL_image */ ++#if !defined(GL_OES_EGL_image) && !defined(GL_EXT_EGL_image_storage) ++typedef void* GLeglImageOES; + #endif + +-#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED +-#pragma import off ++#ifndef GL_OES_EGL_image ++#define GL_OES_EGL_image 1 ++#ifdef GL_GLEXT_PROTOTYPES ++GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); ++GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); ++#endif ++typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); ++typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); + #endif +-/* +- * End system-specific stuff +- **********************************************************************/ + + + #ifdef __cplusplus +-- +2.22.0 + diff --git a/SPECS/libglvnd.spec b/SPECS/libglvnd.spec index f9045fd..dd951d2 100644 --- a/SPECS/libglvnd.spec +++ b/SPECS/libglvnd.spec @@ -1,23 +1,25 @@ -%global commit0 5baa1e5cfc422eb53e66f12ffb80c93d4a693cd9 -%global shortcommit0 %%(c=%%{commit0}; echo ${c:0:7}) +#global commit0 5baa1e5cfc422eb53e66f12ffb80c93d4a693cd9 +#global shortcommit0 %%(c=%%{commit0}; echo ${c:0:7}) %if 0%{?rhel} && 0%{?rhel} <= 7 %global _without_mesa_glvnd_default 1 %endif Name: libglvnd -Version: 1.0.1 -Release: 0.9%{?commit0:.git%{shortcommit0}}%{?dist} +Version: 1.2.0 +Release: 6%{?commit0:.git%{shortcommit0}}%{?dist} # Provide an upgrade path from the negativo17.org pkgs which have Epoch 1 Epoch: 1 Summary: The GL Vendor-Neutral Dispatch library License: MIT URL: https://github.com/NVIDIA/libglvnd -#Source0: %%{url}/archive/v%%{version}/%%{name}-%%{version}.tar.gz -Source0: %{url}/archive/%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +#Source0: %%{url}/archive/%%{commit0}.tar.gz#/%%{name}-%%{shortcommit0}.tar.gz Patch0: libglvnd-python3.patch Patch1: 0001-glx-Add-another-fallback-library-name.patch +Patch2: egl-sync-with-khronos.patch +Patch3: update-gl-h-to-match-mesa.patch BuildRequires: libtool BuildRequires: gcc @@ -62,6 +64,21 @@ Requires: %{name}-gles%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-glx%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-egl%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-core-devel%{?_isa} = %{epoch}:%{version}-%{release} +# Required by any glx.h users. +Requires: libX11-devel%{?_isa} +# We might split into more sub-packages +Obsoletes: mesa-libGLES-devel < 19.3.0~rc1 +Provides: mesa-libGLES-devel = %{epoch}:%{version}-%{release} +Provides: mesa-libGLES-devel%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: mesa-khr-devel < 19.3.0~rc1 +Provides: mesa-khr-devel = %{epoch}:%{version}-%{release} +Provides: mesa-khr-devel%{?_isa} = %{epoch}:%{version}-%{release} +Provides: libGLES-devel = %{epoch}:%{version}-%{release} +Provides: libGLES-devel%{?_isa} = %{epoch}:%{version}-%{release} +Conflicts: mesa-libEGL-devel < 19.3.0-rc1 +Conflicts: mesa-libGL-devel < 19.3.0-rc1 +Conflicts: mesa-libGLES-devel < 19.3.0-rc1 +Conflicts: mesa-khr-devel < 19.3.0-rc1 %description devel The %{name}-devel package contains libraries and header files for @@ -92,6 +109,9 @@ Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} %{!?_without_mesa_glvnd_default: # mesa is the default EGL implementation provider Requires: mesa-libEGL%{?_isa} >= 13.0.4-1 +Obsoletes: mesa-libGLES < 19.2.2-2 +Provides: mesa-libGLES +Provides: mesa-libGLES%{?_isa} Provides: libGLES Provides: libGLES%{?_isa} } @@ -224,16 +244,49 @@ xvfb-run -s '-screen 0 640x480x24' -d make check V=1 || \ %files core-devel %dir %{_includedir}/glvnd/ %{_includedir}/glvnd/*.h -%{_libdir}/pkgconfig/*.pc +%{_libdir}/pkgconfig/libglvnd.pc %files devel +%dir %{_includedir}/EGL/ +%dir %{_includedir}/GL/ +%dir %{_includedir}/GLES/ +%dir %{_includedir}/GLES2/ +%dir %{_includedir}/GLES3/ +%dir %{_includedir}/KHR/ +%{_includedir}/EGL/*.h +%{_includedir}/GL/*.h +%{_includedir}/GLES/*.h +%{_includedir}/GLES2/*.h +%{_includedir}/GLES3/*.h +%{_includedir}/KHR/*.h %{_libdir}/lib*.so %if 0%{?_without_mesa_glvnd_default} %{_libdir}/%{name}/lib*.so %endif +%{_libdir}/pkgconfig/gl*.pc +%{_libdir}/pkgconfig/egl.pc +%{_libdir}/pkgconfig/opengl.pc %changelog +* Mon Nov 25 2019 Dave Airlie - 1.2.0-6 +- version provides + +* Sat Nov 23 2019 Dave Airlie - 1.2.0-5 +- Add another conflict + +* Sat Nov 23 2019 Dave Airlie - 1.2.0-4 +- conflict + +* Fri Nov 22 2019 Dave Airlie - 1.2.0-3 +- more conflicts + +* Fri Nov 22 2019 Dave Airlie - 1.2.0-2 +- add conflicts + +* Fri Nov 22 2019 Dave Airlie - 1.2.0-1 +- libglvnd 1.2.0 + * Tue Aug 14 2018 Petr Viktorin - 1.0.1-0.9.git5baa1e5 - Fix BuildRequires for /usr/bin/python3 - Resolves: #1615543