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 @@
+         <enum value="0x3490" name="EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT"/>
+             <unused start="0x3491" end="0x349F"/>
+     </enums>
++    <enums namespace="EGL" start="0x34A0" end="0x34AF" vendor="ANGLE" comment="Reserved for Ken Russell - ANGLE (via github pull request)">
++            <unused start="0x34A0" end="0x34AF"/>
++    </enums>
+ 
+ <!-- Please remember that new enumerant allocations must be obtained by
+      request to the Khronos API registrar (see comments at the top of this
+@@ -1012,8 +1015,8 @@
+ 
+ <!-- Reservable for future use. To generate a new range, allocate multiples
+      of 16 starting at the lowest available point in this block. -->
+-    <enums namespace="EGL" start="0x34A0" end="0x3FFF" vendor="KHR" comment="Reserved for future use">
+-            <unused start="0x34A0" end="0x3FFF"/>
++    <enums namespace="EGL" start="0x34B0" end="0x3FFF" vendor="KHR" comment="Reserved for future use">
++            <unused start="0x34B0" end="0x3FFF"/>
+     </enums>
+ 
+     <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL.">
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 <kbrenneman@nvidia.com>
+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 <stdlib.h>     /* 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 <windows.h>
+ #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 <airlied@redhat.com> - 1.2.0-6
+- version provides
+
+* Sat Nov 23 2019 Dave Airlie <airlied@redhat.com> - 1.2.0-5
+- Add another conflict
+
+* Sat Nov 23 2019 Dave Airlie <airlied@redhat.com> - 1.2.0-4
+- conflict
+
+* Fri Nov 22 2019 Dave Airlie <airlied@redhat.com> - 1.2.0-3
+- more conflicts
+
+* Fri Nov 22 2019 Dave Airlie <airlied@redhat.com> - 1.2.0-2
+- add conflicts
+
+* Fri Nov 22 2019 Dave Airlie <airlied@redhat.com> - 1.2.0-1
+- libglvnd 1.2.0
+
 * Tue Aug 14 2018 Petr Viktorin <pviktori@redhat.com> - 1.0.1-0.9.git5baa1e5
 - Fix BuildRequires for /usr/bin/python3
 - Resolves: #1615543