From 33d6365a7b360ab05104ac49abe1dfb0e81b45a0 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 21 Jan 2020 17:26:24 -0500 Subject: [PATCH] import libglvnd-1.2.0-6.el8 --- .gitignore | 1 + .libglvnd.metadata | 1 + ...lx-Add-another-fallback-library-name.patch | 30 ++ SOURCES/egl-sync-with-khronos.patch | 42 ++ SOURCES/libglvnd-python3.patch | 54 ++ SOURCES/update-gl-h-to-match-mesa.patch | 245 +++++++++ SPECS/libglvnd.spec | 485 ++++++++++++++++++ 7 files changed, 858 insertions(+) create mode 100644 .gitignore create mode 100644 .libglvnd.metadata create mode 100644 SOURCES/0001-glx-Add-another-fallback-library-name.patch create mode 100644 SOURCES/egl-sync-with-khronos.patch create mode 100644 SOURCES/libglvnd-python3.patch create mode 100644 SOURCES/update-gl-h-to-match-mesa.patch create mode 100644 SPECS/libglvnd.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6200ec5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libglvnd-1.2.0.tar.gz diff --git a/.libglvnd.metadata b/.libglvnd.metadata new file mode 100644 index 0000000..07007ee --- /dev/null +++ b/.libglvnd.metadata @@ -0,0 +1 @@ +719e1001e235f84d104a2c6ae922f145f3276d20 SOURCES/libglvnd-1.2.0.tar.gz diff --git a/SOURCES/0001-glx-Add-another-fallback-library-name.patch b/SOURCES/0001-glx-Add-another-fallback-library-name.patch new file mode 100644 index 0000000..0c8cb95 --- /dev/null +++ b/SOURCES/0001-glx-Add-another-fallback-library-name.patch @@ -0,0 +1,30 @@ +From 24606973bfabd75285fbd489264235167ba0f44c Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Thu, 14 Jun 2018 11:25:21 -0400 +Subject: [PATCH] glx: Add another fallback library name + +This is mostly to avoid file conflicts with external packaging. + +Signed-off-by: Adam Jackson +--- + src/GLX/libglxmapping.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/GLX/libglxmapping.c b/src/GLX/libglxmapping.c +index be384f8..2016a04 100644 +--- a/src/GLX/libglxmapping.c ++++ b/src/GLX/libglxmapping.c +@@ -591,6 +591,10 @@ __GLXvendorInfo *__glXLookupVendorByScreen(Display *dpy, const int screen) + vendor = __glXLookupVendorByName(FALLBACK_VENDOR_NAME); + } + ++ if (!vendor) { ++ vendor = __glXLookupVendorByName("system"); ++ } ++ + dpyInfo->vendors[screen] = vendor; + } + __glvndPthreadFuncs.rwlock_unlock(&dpyInfo->vendorLock); +-- +2.17.0 + 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/libglvnd-python3.patch b/SOURCES/libglvnd-python3.patch new file mode 100644 index 0000000..fe72800 --- /dev/null +++ b/SOURCES/libglvnd-python3.patch @@ -0,0 +1,54 @@ +diff -up libglvnd-1.0.0/src/generate/eglFunctionList.py.jx libglvnd-1.0.0/src/generate/eglFunctionList.py +--- libglvnd-1.0.0/src/generate/eglFunctionList.py.jx 2017-11-02 12:58:38.000000000 -0400 ++++ libglvnd-1.0.0/src/generate/eglFunctionList.py 2018-03-15 12:43:19.113294070 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + """ + Contains a list of EGL functions to generate dispatch functions for. +diff -up libglvnd-1.0.0/src/generate/genCommon.py.jx libglvnd-1.0.0/src/generate/genCommon.py +--- libglvnd-1.0.0/src/generate/genCommon.py.jx 2017-11-02 12:58:38.000000000 -0400 ++++ libglvnd-1.0.0/src/generate/genCommon.py 2018-03-15 12:37:13.260268667 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (C) Copyright 2015, NVIDIA CORPORATION. + # All Rights Reserved. +diff -up libglvnd-1.0.0/src/generate/gen_egl_dispatch.py.jx libglvnd-1.0.0/src/generate/gen_egl_dispatch.py +--- libglvnd-1.0.0/src/generate/gen_egl_dispatch.py.jx 2017-11-02 12:58:38.000000000 -0400 ++++ libglvnd-1.0.0/src/generate/gen_egl_dispatch.py 2018-03-15 12:43:00.057032312 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + """ + Generates dispatch functions for EGL. +diff -up libglvnd-1.0.0/src/generate/gen_gldispatch_mapi.py.jx libglvnd-1.0.0/src/generate/gen_gldispatch_mapi.py +--- libglvnd-1.0.0/src/generate/gen_gldispatch_mapi.py.jx 2017-11-02 12:58:38.000000000 -0400 ++++ libglvnd-1.0.0/src/generate/gen_gldispatch_mapi.py 2018-03-15 12:37:13.283268982 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Copyright (C) 2010 LunarG Inc. + # (C) Copyright 2015, NVIDIA CORPORATION. +diff -up libglvnd-1.0.0/src/generate/gen_libgl_glxstubs.py.jx libglvnd-1.0.0/src/generate/gen_libgl_glxstubs.py +--- libglvnd-1.0.0/src/generate/gen_libgl_glxstubs.py.jx 2017-11-02 12:58:38.000000000 -0400 ++++ libglvnd-1.0.0/src/generate/gen_libgl_glxstubs.py 2018-03-15 12:37:10.684233282 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (C) Copyright 2015, NVIDIA CORPORATION. + # All Rights Reserved. +diff -up libglvnd-1.0.0/src/generate/gen_libOpenGL_exports.py.jx libglvnd-1.0.0/src/generate/gen_libOpenGL_exports.py +--- libglvnd-1.0.0/src/generate/gen_libOpenGL_exports.py.jx 2017-11-02 12:58:38.000000000 -0400 ++++ libglvnd-1.0.0/src/generate/gen_libOpenGL_exports.py 2018-03-15 12:37:13.308269324 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (C) Copyright 2015, NVIDIA CORPORATION. + # All Rights Reserved. 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 new file mode 100644 index 0000000..dd951d2 --- /dev/null +++ b/SPECS/libglvnd.spec @@ -0,0 +1,485 @@ +#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.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 +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 +BuildRequires: %{_bindir}/python3 +BuildRequires: python3-libxml2 +BuildRequires: pkgconfig(glproto) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xext) +BuildRequires: xorg-x11-server-Xvfb + +%if (0%{?rhel} && 0%{?rhel} <= 6) +BuildRequires: autoconf268 +%endif + +%{?_without_mesa_glvnd_default: +%if (0%{?rhel} && 0%{?rhel} <= 6) + +%{?filter_setup: +%filter_provides_in %{_libdir}/%{name} +%filter_requires_in %{_libdir}/%{name} +%filter_setup +} + +%else + +%global __provides_exclude_from %{_libdir}/%{name} +%global __requires_exclude_from %{_libdir}/%{name} + +%endif +} + +%description +libglvnd is an implementation of the vendor-neutral dispatch layer for +arbitrating OpenGL API calls between multiple vendors on a per-screen basis. + + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-opengl%{?_isa} = %{epoch}:%{version}-%{release} +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 +developing applications that use %{name}. + + +%package core-devel +Summary: Core development files for %{name} + +%description core-devel +The %{name}-core-devel package is a bootstrap trick for Mesa, which wants +to build against the %{name} headers but does not link against any of +its libraries (and, initially, has file conflicts with them). If you are +not Mesa you almost certainly want %{name}-devel instead. + + +%package opengl +Summary: OpenGL support for libglvnd +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} + +%description opengl +libOpenGL is the common dispatch interface for the workstation OpenGL API. + + +%package gles +Summary: GLES support for libglvnd +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} +} + +%description gles +libGLESv[12] are the common dispatch interface for the GLES API. + + +%package egl +Summary: EGL support for libglvnd +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 +Provides: libEGL +Provides: libEGL%{?_isa} +} + +%description egl +libEGL are the common dispatch interface for the EGL API. + + +%package glx +Summary: GLX support for libglvnd +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} +%{!?_without_mesa_glvnd_default: +# mesa is the default GL implementation provider +Requires: mesa-libGL%{?_isa} >= 13.0.4-1 +Provides: libGL +Provides: libGL%{?_isa} +} + +%description glx +libGL and libGLX are the common dispatch interface for the GLX API. + + +%prep +%autosetup -p1 -n %{name}-%{?commit0}%{?!commit0:%{version}} +%if 0%{?rhel} == 6 +autoreconf268 -vif +%else +autoreconf -vif +%endif + +%build +#Prefer asm and tls for x86* and ppc64* +#armhfp and aarch64 fallback to asm and tsd +#Others arches fallback to pure-c and tls. +%configure \ + --disable-static \ + --enable-asm \ + --enable-tls + +%make_build V=1 + + +%install +%make_install INSTALL="install -p" +find %{buildroot} -name '*.la' -delete + +%{?_without_mesa_glvnd_default: +# Avoid conflict with mesa-libGL +mkdir -p %{buildroot}%{_libdir}/%{name}/ +for l in libEGL libGL libGLESv1_CM libGLESv2 libGLX; do + mv %{buildroot}%{_libdir}/${l}.so* \ + %{buildroot}%{_libdir}/%{name}/ +done +} + +# Create directory layout +mkdir -p %{buildroot}%{_sysconfdir}/glvnd/egl_vendor.d/ +mkdir -p %{buildroot}%{_datadir}/glvnd/egl_vendor.d/ +mkdir -p %{buildroot}%{_sysconfdir}/egl/egl_external_platform.d/ +mkdir -p %{buildroot}%{_datadir}/egl/egl_external_platform.d/ + + +%check +export DO_X11_TESTS=1 +xvfb-run -s '-screen 0 640x480x24' -d make check V=1 || \ +%ifarch s390x ppc64 + : +%else + (cat `find . -name test-suite.log` ; exit 1) +%endif + + +%ldconfig_scriptlets +%files +%doc README.md +%dir %{_sysconfdir}/glvnd/ +%dir %{_datadir}/glvnd/ +%{_libdir}/libGLdispatch.so.0* + +%ldconfig_scriptlets opengl +%files opengl +%{_libdir}/libOpenGL.so.0* + +%ldconfig_scriptlets gles +%files gles +%if 0%{?_without_mesa_glvnd_default} +%{_libdir}/%{name}/libGLES*.so.* +%else +%{_libdir}/libGLES*.so.* +%endif + +%ldconfig_scriptlets glx +%files glx +%if 0%{?_without_mesa_glvnd_default} +%{_libdir}/%{name}/libGL.so.* +%{_libdir}/%{name}/libGLX.so.* +%else +%{_libdir}/libGL.so.* +%{_libdir}/libGLX.so.* +%endif + +%ldconfig_scriptlets egl +%files egl +%dir %{_sysconfdir}/glvnd/egl_vendor.d/ +%dir %{_datadir}/glvnd/egl_vendor.d/ +%dir %{_sysconfdir}/egl/ +%dir %{_sysconfdir}/egl/egl_external_platform.d/ +%dir %{_datadir}/egl/ +%dir %{_datadir}/egl/egl_external_platform.d/ +%if 0%{?_without_mesa_glvnd_default} +%{_libdir}/%{name}/libEGL*.so.* +%else +%{_libdir}/libEGL*.so.* +%endif + +%files core-devel +%dir %{_includedir}/glvnd/ +%{_includedir}/glvnd/*.h +%{_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 + +* Tue Jul 24 2018 Dave Airlie - 1.0.1-0.8.git5baa1e5 +- rename fallback to system + +* Thu Jun 14 2018 Adam Jackson - 1.0.1-0.7.git5baa1e5 +- Add another fallback GLX library name + +* Thu Apr 26 2018 Adam Jackson - 1.0.1-0.6.git5baa1e5 +- Enable %%check for all but ppc64 and s390x, which has known but low-impact + failures +- Simplify %%release + +* Wed Apr 18 2018 Adam Jackson - 1.0.1-0.5.20180327git5baa1e5 +- Go back to Requires: mesa-*, the fallout is too great (#1568881 etc) + +* Fri Apr 13 2018 Leigh Scott - 1:1.0.1-0.4.20180327git5baa1e5 +- Update snapshot to 20180327 + +* Thu Mar 15 2018 Adam Jackson - 1.0.1-0.3.20180226gitb029c24 +- Use Recommends: mesa-* not Requires. +- (Trivially) switch the build to python3 + +* Thu Mar 15 2018 Iryna Shcherbina - 1:1.0.1-0.2.20180226gitb029c24 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Feb 28 2018 Leigh Scott - 1:1.0.1-0.1.20180226gitb029c24 +- Update snapshot to 20180226 +- Update scriptlets + +* Wed Feb 07 2018 Fedora Release Engineering - 1:1.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Nov 09 2017 Leigh Scott - 1:1.0.0-1 +- Update to 1.0.0 release + +* Wed Aug 23 2017 Nicolas Chauvet - 1:0.2.999-24.20170818git8d4d03f +- Update snapshot to 20170818 + +* Mon Aug 14 2017 Ville Skyttä - 1:0.2.999-23.20170620gitd850cdd +- Own %%{_sysconfdir}/egl and %%{_datadir}/egl dirs + +* Thu Aug 03 2017 Fedora Release Engineering - 1:0.2.999-22.20170620gitd850cdd +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1:0.2.999-21.20170620gitd850cdd +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 07 2017 Igor Gnatenko - 1:0.2.999-20.20170620gitd850cdd +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Thu Jul 06 2017 Nicolas Chauvet - 1:0.2.999-19.20170620gitd850cdd +- Update snapshot to 20170620 + +* Tue Jun 13 2017 Nicolas Chauvet - 1:0.2.999-18.20170607git80d9a87 +- Update snapshot to 20170607 +- Default to asm and tls when available +- Use the fixed tsd for armhfp and aarch64 + fixed in https://github.com/NVIDIA/libglvnd/issues/116 + +* Tue Apr 04 2017 Björn Esser - 1:0.2.999-17.20170308git8e6e102 +- Add conditional to disable testsuite, when needed + +* Tue Apr 04 2017 Björn Esser - 1:0.2.999-16.20170308git8e6e102 +- Rebuilt with testsuite again + +* Tue Apr 04 2017 Björn Esser - 1:0.2.999-15.20170308git8e6e102 +- Rebuilt without testssuite + +* Tue Apr 04 2017 Björn Esser - 1:0.2.999-14.20170308git8e6e102 +- Fix conditionals for _without_mesa_glvnd_default +- Fix other RHEL-conditionals, too + +* Tue Apr 04 2017 Simone Caronni - 1:0.2.999-13.20170308git8e6e102 +- Update RPM filters for private libraries (includes GLX, fixes RHEL 6). + +* Mon Apr 03 2017 Simone Caronni - 1:0.2.999-12.20170308git8e6e102 +- Update to latest snapshot, remove upstreamed patches. +- Update release to packaging guidelines format. +- Make sure that for Fedora 24 and RHEL the libraries are always private. + +* Thu Feb 23 2017 Nicolas Chauvet - 1:0.2.999-11.gitdc16f8c +- asm enabled only for x86 - rhbz#1419944 + +* Mon Feb 6 2017 Hans de Goede - 1:0.2.999-10.gitdc16f8c +- Drop 0007-GLX-Add-GLX_SGIX_fbconfig-functions.patch the bug this works + around actually is in mesa + +* Thu Feb 2 2017 Hans de Goede - 1:0.2.999-9.gitdc16f8c +- Add eglexternalplatform spec. config dirs to -egl subpackage (rhbz#1415143) + +* Thu Feb 2 2017 Hans de Goede - 1:0.2.999-8.gitdc16f8c +- Fix GLX_SGIX_fbconfig extension, this fixes games such as "The Binding of + Isaac: Rebirth" and "Crypt of the NecroDancer" from Steam not working + +* Wed Jan 11 2017 Hans de Goede - 1:0.2.999-7.gitdc16f8c +- Epoch:1 to provide upgrade path from negativo17.org rpms +- New snapshot +- Add patches to fix building on ARM (from Rob Clark) +- Add BuildRequires: python +- Add ldconfig scriptlets for library sub-packages + +* Wed Jan 11 2017 Adam Jackson +- Don't hide libraries in a subdir (rhbz#1413579) +- Split up libraries to appropriate subpackages +- Make the req/prov filter catch more cases +- Restore libGLESv1 for ABI compliance + +* Wed Oct 26 2016 Leigh Scott - 0.2.999-6.git28867bb +- Update snapshot +- Fix EGL crash for KDE/Plasma (rfbz#4303) + +* Tue Oct 25 2016 Leigh Scott - 0.2.999-5.git295e5e5 +- Fix EGL crash (rfbz#4303) + +* Fri Oct 14 2016 Nicolas Chauvet - 0.2.999-4.git295e5e5 +- Update snapshot + +* Wed Oct 12 2016 Adam Jackson - 0.2.999-3.git14f6283 +- Restore hardened build +- Remove ExclusiveArch +- Remove some pointless Provides/Obsoletes +- BuildRequires pkgconfig(xext) not pkgconfig(xv) +- Update description to be a bit more confident +- Dump make check errors into the build log + +* Wed Oct 05 2016 Nicolas Chauvet - 0.2.999-2.git14f6283 +- Add the correct License: MIT + +* Thu Sep 15 2016 Nicolas Chauvet - 0.2.999-1.git14f6283 +- Update to 2.999 version +- Add EGL + +* Fri Sep 02 2016 Nicolas Chauvet - 0.1.1-2.gitf7fbc4b +- Update license +- Fix Obsoletes/Provides to avoid self obsolete + +* Tue Aug 30 2016 Nicolas Chauvet - 0.1.1-1.gitf7fbc4b +- Update to 1.1.gitf7fbc4b + +* Tue Jun 14 2016 Nicolas Chauvet - 0.1.0-4.git093f048 +- Update to 20160610 git commit + +* Fri May 20 2016 Nicolas Chauvet - 0.1.0-3.gita82982d +- Update to current snapshot + +* Fri May 13 2016 Nicolas Chauvet - 0.1.0-2.git509de0d +- Update to current snapshot +- Remove unused dt-auxiliary +- Add support for graphical make test +- Undefine hardened build for xorg + +* Wed May 04 2016 Nicolas Chauvet - 0.1.0-1.git8277115 +- Update to lastest snapshot + +* Thu Feb 18 2016 Nicolas Chauvet - 0.0.0-9.git4d977ea +- Remove patch to enable by default + +* Wed Feb 17 2016 Nicolas Chauvet - 0.0.0-8git20160217 +- Update to git20160217 +- Introduce --with mesa-libglvnd-default build conditional +- Avoid error on make check - testglxqueryversion.sh stil fails in mock +- Filter on provided libGL until glvnd support is in upstream mesa +- Use upstream tarball and use autoreconf + +* Fri Jan 15 2016 Nicolas Chauvet - 0.0.0-7git20160115 +- Bump for 20160115 +- Enable make check +- Description improvements +- Enable libglvnd by default +- Enable devel sub-package + +* Wed Jan 06 2016 Nicolas Chauvet - 0.0.0-6git20160106 +- Update to 20160106 snapshot +- Remove 10-x11glvnd + +* Sat Nov 21 2015 Nicolas Chauvet - 0.0.0-5git20151121 +- Update to 20151121 snapshot +- Avoid conflicts with mesa-libGL{,ES} +- Disable libGLESv1_CM + +* Tue Nov 10 2015 Nicolas Chauvet - 0.0.0-4git20151110 +- Update to today snapshot +- Fix license + +* Tue Sep 01 2015 Nicolas Chauvet - 0.0.0-3git20150901 +- Update to snapshot 20150901 + +* Fri Aug 07 2015 Nicolas Chauvet - 0.0.0-2 +- Update to today snapshoot + +* Fri Feb 6 2015 Nicolas Chauvet - 0.0.0-1 +- Initial spec file