From 15a29ebe80f3370a635c0610c1ffc0f03c36679f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 19 Apr 2017 15:04:20 +0000
Subject: mkinitcpio: update to 23

---
 abs/core/mkinitcpio/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/mkinitcpio/PKGBUILD b/abs/core/mkinitcpio/PKGBUILD
index e62fef0..4dcf850 100644
--- a/abs/core/mkinitcpio/PKGBUILD
+++ b/abs/core/mkinitcpio/PKGBUILD
@@ -3,7 +3,7 @@
 # Maintainer: Thomas Bächler <thomas@archlinux.org>
 
 pkgname=mkinitcpio
-pkgver=22
+pkgver=23
 pkgrel=1
 pkgdesc="Modular initramfs image creation utility"
 arch=('any')
@@ -20,7 +20,7 @@ backup=('etc/mkinitcpio.conf')
 source=("https://sources.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig}
         'mkinitcpio.patch')
 install=mkinitcpio.install
-sha256sums=('54c1fc0fc128ae486e72362f49f52e94acd5fcfea9f44b719dc33250e42664eb'
+sha256sums=('80f12a07f0dceef81dfe87200f099bd2149e0990391dda6defebaa5697f8a35a'
             'SKIP'
             'dbc98f69a56f07c4a0f1c7fc3f7143c1719bdb30b75fbb29d75581bb51b5e98a')
 validpgpkeys=('487EACC08557AD082088DABA1EB2638FF56C0C53'   # Dave Reisner
-- 
cgit v0.12


From 5e2efed5fda6a8752272c52cfff0d4769c6e46dd Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 20 Apr 2017 16:02:44 +0000
Subject: e16_theme_settings: font changes and warp focus text color

---
 abs/core/e16_theme_settings/PKGBUILD                                  | 2 +-
 .../e16_theme_settings/e16_config_dir/themes/Summer/fonts.theme.cfg   | 4 ++--
 .../e16_theme_settings/e16_config_dir/themes/Summer/textclasses.cfg   | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/e16_theme_settings/PKGBUILD b/abs/core/e16_theme_settings/PKGBUILD
index 0c32c32..6e535de 100644
--- a/abs/core/e16_theme_settings/PKGBUILD
+++ b/abs/core/e16_theme_settings/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=e16_theme_settings
 pkgver=8.4
-pkgrel=3
+pkgrel=4
 pkgdesc="Default settings for e16"
 depends=('enlightenment' 'ttf-overlock')
 source=()
diff --git a/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/fonts.theme.cfg b/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/fonts.theme.cfg
index d57f452..99965b5 100644
--- a/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/fonts.theme.cfg
+++ b/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/fonts.theme.cfg
@@ -5,7 +5,7 @@ __E_CFG_VERSION 1
    $Id: fonts.theme.cfg 47 2009-04-13 18:57:37Z don $ */
 
 __FONTS __BGN
-  font-border "Overlock-Bold/16"
+  font-border "Overlock-Bold/14"
   font-coords "Overlock-Bold/17"
   font-dialog "Overlock-Regular/18"
   font-dialog-hilite "Overlock-Bold/18"
@@ -15,6 +15,6 @@ __FONTS __BGN
   font-epplet-small "Overlock-Regular/16"
   font-focus "Overlock-Bold/18"
   font-init "Overlock-Bold/19"
-  font-menu "Overlock-Regular/16"
+  font-menu "Overlock-Regular/14"
   font-tooltip "Overlock-Regular/17"
 __END
diff --git a/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/textclasses.cfg b/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/textclasses.cfg
index a05c1cd..02c7e73 100644
--- a/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/textclasses.cfg
+++ b/abs/core/e16_theme_settings/e16_config_dir/themes/Summer/textclasses.cfg
@@ -196,8 +196,8 @@ __TCLASS __BGN
   __NAME WARPFOCUS
   __JUSTIFICATION 0
   __NORMAL "*font-focus"
-  __FORGROUND_COLOR 0 0 0
+  __FORGROUND_COLOR 255 255 255
   __CLICKED "*font-focus"
-  __FORGROUND_COLOR 0 0 0
+  __FORGROUND_COLOR 255 255 255
 __END
 
-- 
cgit v0.12


From 70f1b7bcacb0c337ac8fcda52cf9488305538235 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 20 Apr 2017 16:05:25 +0000
Subject: enlightenment: update to 1.0.18

add patch to remove starting message
---
 abs/core/enlightenment/PKGBUILD              | 11 +++++++----
 abs/core/enlightenment/disableStartMsg.patch | 13 +++++++++++++
 2 files changed, 20 insertions(+), 4 deletions(-)
 create mode 100644 abs/core/enlightenment/disableStartMsg.patch

diff --git a/abs/core/enlightenment/PKGBUILD b/abs/core/enlightenment/PKGBUILD
index 137a84b..9b3cf1b 100644
--- a/abs/core/enlightenment/PKGBUILD
+++ b/abs/core/enlightenment/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Eric Bélanger <eric@archlinux.org>
 
 pkgname=enlightenment
-pkgver=1.0.17
+pkgver=1.0.18
 _themever=1.0.1
 pkgrel=1
 pkgdesc="A fast, flexible, and very extensible Window Manager"
@@ -13,11 +13,13 @@ depends=('libxinerama' 'imlib2' 'perl' 'pango' 'libxcomposite' \
          'libxdamage' 'libxrandr'  'audiofile')
 options=('!libtool')
 source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/e16-${pkgver}.tar.gz \
-	startup.patch)
+        startup.patch
+        disableStartMsg.patch)
 
 build() {
   cd "${srcdir}/e16-${pkgver}"
   patch -p0 < $srcdir/startup.patch || return 1
+  patch -p0 < $srcdir/disableStartMsg.patch || return 1
 
   ./configure --prefix=/usr --sysconfdir=/etc 
   make
@@ -35,5 +37,6 @@ package() {
 #  make DESTDIR="${pkgdir}" install
 #  chown -R root:root "${pkgdir}"/usr/share/*
 }
-md5sums=('29bc6aeaabd081bb1138abda3d6eb958'
-         '0098d0a6469ec539bf12eeda2171d540')
+md5sums=('fec7bddd0fa2a37d926b46a47f07ec8e'
+         '0098d0a6469ec539bf12eeda2171d540'
+         'c2e94af712cb4df437ad452a82fd193c')
diff --git a/abs/core/enlightenment/disableStartMsg.patch b/abs/core/enlightenment/disableStartMsg.patch
new file mode 100644
index 0000000..b9c037a
--- /dev/null
+++ b/abs/core/enlightenment/disableStartMsg.patch
@@ -0,0 +1,13 @@
+--- src/config.c.orig	2017-04-19 18:38:43.695152796 +0000
++++ src/config.c	2017-04-19 18:41:05.296440791 +0000
+@@ -612,8 +612,8 @@
+ 
+ 	     if ((i > 1) && (!p))
+ 	       {
+-		  p = ProgressbarCreate(_("Enlightenment Starting..."), 400,
+-					16);
++		  /*p = ProgressbarCreate(_("Enlightenment Starting..."), 400,
++					16); */
+ 		  if (p)
+ 		     ProgressbarShow(p);
+ 	       }
-- 
cgit v0.12


From c06539203f2197d2363728f33d6c616868eb2fa8 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 20 Apr 2017 16:16:05 +0000
Subject: google-chrome: update to 58.0.3029.81

---
 abs/extra/google-chrome/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/extra/google-chrome/PKGBUILD b/abs/extra/google-chrome/PKGBUILD
index 0c3a393..dadb51e 100644
--- a/abs/extra/google-chrome/PKGBUILD
+++ b/abs/extra/google-chrome/PKGBUILD
@@ -5,7 +5,7 @@
 # or use: $ curl -s https://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/other.xml.gz | gzip -df | awk -F\" '/pkgid/{ sub(".*-","",$4); print $4": "$10 }'
 
 pkgname=google-chrome
-pkgver=57.0.2987.110
+pkgver=58.0.3029.81
 pkgrel=1
 pkgdesc="An attempt at creating a safer, faster, and more stable browser (Stable Channel)"
 arch=('x86_64')
@@ -22,9 +22,6 @@ _channel=stable
 source=("google-chrome-${_channel}_${pkgver}_amd64.deb::https://dl.google.com/linux/direct/google-chrome-${_channel}_current_amd64.deb"
         "$url/browser/privacy/eula_text.html"
         'google-chrome-stable.sh')
-md5sums=('ba137093ddd19e643988e66d5821eb3d'
-         'SKIP'
-         'ed4cf73982461af7d0d944c1cbf9f4e8')
 
 package() {
   msg2 "Extracting the data.tar.xz..."
@@ -54,3 +51,6 @@ package() {
   rm -r "$pkgdir"/etc/cron.daily/ "$pkgdir"/opt/google/chrome/cron/
   rm "$pkgdir"/opt/google/chrome/product_logo_*.png
 }
+md5sums=('65b7afdac7796e9a1ec21008fa82e403'
+         'da54da9383ddffa44c5db45513239da2'
+         'ed4cf73982461af7d0d944c1cbf9f4e8')
-- 
cgit v0.12


From 950f9e3ca5fd4d3034ef35b4649d6da763b24eed Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 21 Apr 2017 19:59:04 +0000
Subject: ffmpeg-compat: remove. OpenPHT no longer needs this

---
 abs/extra/ffmpeg-compat/PKGBUILD                   | 85 ----------------------
 abs/extra/ffmpeg-compat/__changelog                |  1 -
 .../ffmpeg-compat/ffmpeg-0.10-libvpx-1.5.patch     | 24 ------
 3 files changed, 110 deletions(-)
 delete mode 100644 abs/extra/ffmpeg-compat/PKGBUILD
 delete mode 100644 abs/extra/ffmpeg-compat/__changelog
 delete mode 100644 abs/extra/ffmpeg-compat/ffmpeg-0.10-libvpx-1.5.patch

diff --git a/abs/extra/ffmpeg-compat/PKGBUILD b/abs/extra/ffmpeg-compat/PKGBUILD
deleted file mode 100644
index 5b5879f..0000000
--- a/abs/extra/ffmpeg-compat/PKGBUILD
+++ /dev/null
@@ -1,85 +0,0 @@
-# $Id$
-# Maintainer:  Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Ionut Biru <ibiru@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Contributor: Paul Mattal <paul@archlinux.org>
-
-pkgname=ffmpeg-compat
-pkgver=0.10.16
-pkgrel=4
-epoch=1
-pkgdesc='Complete and free Internet live audio and video broadcasting solution'
-arch=('i686' 'x86_64')
-url='http://ffmpeg.org/'
-license=('GPL')
-depends=(
-      'alsa-lib' 'bzip2' 'gsm' 'lame' 'libass' 'libmodplug'
-      'libtheora' 'libva' 'opencore-amr' 'openjpeg' 'rtmpdump' 'schroedinger'
-      'sdl' 'speex' 'v4l-utils' 'xvidcore' 'zlib'
-      'libvorbisenc.so' 'libvorbis.so' 'libvpx.so' 'libx264.so'
-)
-makedepends=('libvdpau' 'yasm' 'x264')
-provides=('libavcodec.so' 'libavutil.so' 'libpostproc.so' 'libswscale.so'
-          'libswresample.so' 'libavformat.so' 'libavfilter.so' 'libavdevice.so')
-source=(http://ffmpeg.org/releases/ffmpeg-$pkgver.tar.bz2{,.asc}
-        ffmpeg-0.10-libvpx-1.5.patch)
-validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') # ffmpeg-devel
-sha256sums=('e77823cbd58dfdb61f88059476070bc432d80e3821c14abcf804ef709d2f3fd1'
-            'SKIP'
-            'd6797973889582b82b7c81b91a39c222e09b5ccf8a7e031c364ae1e9275a497d')
-
-
-prepare() {
-  cd ffmpeg-$pkgver
-  patch -p1 -i ../ffmpeg-0.10-libvpx-1.5.patch
-}
-
-build() {
-  cd ffmpeg-$pkgver
-
-  CFLAGS+=" -I/usr/include/openjpeg-1.5" \
-  ./configure \
-    --prefix=/usr \
-    --incdir=/usr/include/ffmpeg-compat \
-    --libdir=/usr/lib/ffmpeg-compat \
-    --shlibdir=/usr/lib/ffmpeg-compat \
-    --disable-debug \
-    --disable-static \
-    --enable-gpl \
-    --enable-libass \
-    --enable-libfreetype \
-    --enable-libgsm \
-    --enable-libmodplug \
-    --enable-libmp3lame \
-    --enable-libopencore_amrnb \
-    --enable-libopencore_amrwb \
-    --enable-libopenjpeg \
-    --disable-libpulse \
-    --enable-librtmp \
-    --enable-libschroedinger \
-    --enable-libspeex \
-    --enable-libtheora \
-    --enable-libv4l2 \
-    --enable-libvorbis \
-    --enable-libvpx \
-    --enable-libx264 \
-    --enable-libxvid \
-    --enable-postproc \
-    --enable-runtime-cpudetect \
-    --enable-shared \
-    --enable-vdpau \
-    --enable-version3 \
-    --enable-x11grab
-
-  make
-}
-
-package() {
-  cd ffmpeg-$pkgver
-  make DESTDIR="$pkgdir" install
-  rm -rf "$pkgdir"/usr/{bin,share}
-
-  install -dm755 "$pkgdir"/etc/ld.so.conf.d/
-  echo -e '/usr/lib/\n/usr/lib/ffmpeg-compat/' > "$pkgdir"/etc/ld.so.conf.d/$pkgname.conf
-}
diff --git a/abs/extra/ffmpeg-compat/__changelog b/abs/extra/ffmpeg-compat/__changelog
deleted file mode 100644
index 105d5aa..0000000
--- a/abs/extra/ffmpeg-compat/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-PKGBUILD - remove libpulse as dep and disable pulse in compile
diff --git a/abs/extra/ffmpeg-compat/ffmpeg-0.10-libvpx-1.5.patch b/abs/extra/ffmpeg-compat/ffmpeg-0.10-libvpx-1.5.patch
deleted file mode 100644
index 740bb74..0000000
--- a/abs/extra/ffmpeg-compat/ffmpeg-0.10-libvpx-1.5.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
-index 1d33ce9..dface51 100644
---- a/libavcodec/libvpxenc.c
-+++ b/libavcodec/libvpxenc.c
-@@ -78,19 +78,11 @@ typedef struct VP8EncoderContext {
- 
- /** String mappings for enum vp8e_enc_control_id */
- static const char *ctlidstr[] = {
--    [VP8E_UPD_ENTROPY]           = "VP8E_UPD_ENTROPY",
--    [VP8E_UPD_REFERENCE]         = "VP8E_UPD_REFERENCE",
--    [VP8E_USE_REFERENCE]         = "VP8E_USE_REFERENCE",
--    [VP8E_SET_ROI_MAP]           = "VP8E_SET_ROI_MAP",
--    [VP8E_SET_ACTIVEMAP]         = "VP8E_SET_ACTIVEMAP",
--    [VP8E_SET_SCALEMODE]         = "VP8E_SET_SCALEMODE",
-     [VP8E_SET_CPUUSED]           = "VP8E_SET_CPUUSED",
-     [VP8E_SET_ENABLEAUTOALTREF]  = "VP8E_SET_ENABLEAUTOALTREF",
-     [VP8E_SET_NOISE_SENSITIVITY] = "VP8E_SET_NOISE_SENSITIVITY",
--    [VP8E_SET_SHARPNESS]         = "VP8E_SET_SHARPNESS",
-     [VP8E_SET_STATIC_THRESHOLD]  = "VP8E_SET_STATIC_THRESHOLD",
-     [VP8E_SET_TOKEN_PARTITIONS]  = "VP8E_SET_TOKEN_PARTITIONS",
--    [VP8E_GET_LAST_QUANTIZER]    = "VP8E_GET_LAST_QUANTIZER",
-     [VP8E_SET_ARNR_MAXFRAMES]    = "VP8E_SET_ARNR_MAXFRAMES",
-     [VP8E_SET_ARNR_STRENGTH]     = "VP8E_SET_ARNR_STRENGTH",
-     [VP8E_SET_ARNR_TYPE]         = "VP8E_SET_ARNR_TYPE",
-- 
cgit v0.12


From 3d71d69cedeee1dd5bf749014bd64025bdd74807 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 21 Apr 2017 20:30:52 +0000
Subject: ffmpeg2.8: update to 2.8.11

---
 abs/extra/ffmpeg2.8/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/extra/ffmpeg2.8/PKGBUILD b/abs/extra/ffmpeg2.8/PKGBUILD
index c676e62..f203567 100644
--- a/abs/extra/ffmpeg2.8/PKGBUILD
+++ b/abs/extra/ffmpeg2.8/PKGBUILD
@@ -6,11 +6,11 @@
 # Contributor: Paul Mattal <paul@archlinux.org>
 
 pkgname=ffmpeg2.8
-pkgver=2.8.9
-pkgrel=1
+pkgver=2.8.11
+pkgrel=2
 pkgdesc='Complete solution to record, convert and stream audio and video'
 arch=('i686' 'x86_64')
-url='http://ffmpeg.org/'
+url='https://ffmpeg.org/'
 license=('GPL3')
 depends=('alsa-lib' 'bzip2' 'fontconfig' 'fribidi' 'gnutls' 'gsm' 'lame'
          'libass' 'libbluray' 'libmodplug' 'libsoxr' 'libssh'
@@ -23,14 +23,14 @@ optdepends=('ladspa: LADSPA filters')
 provides=('libavcodec.so' 'libavdevice.so' 'libavfilter.so' 'libavformat.so'
           'libavresample.so' 'libavutil.so' 'libpostproc.so' 'libswresample.so'
           'libswscale.so')
-source=("http://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.bz2"
-        "http://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.bz2.asc"
+source=("http://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.xz"
+        "http://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.xz.asc"
         'ffmpeg-2.8-kodi.patch'
         'ffmpeg-2.8-Resolve-plex-direct-domains.patch'
         'ffmpeg-99.0011-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch'
         'ffmpeg-Speed_up_wtv_index_creation.patch'
 )
-validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8')
+validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') # ffmpeg-devel
 
 prepare() {
   cd ${srcdir}/ffmpeg-${pkgver}
@@ -101,7 +101,7 @@ package() {
 
 # vim: ts=2 sw=2 et:
 
-md5sums=('67adbe4671838e3a203bd425ff94fde6'
+md5sums=('b8c6953c65d0c9ef120a878064282c75'
          'SKIP'
          '83bc99a06f1ca6fd70ed35056937a522'
          '6c1e7519c3b5d414ca98ad624691517d'
-- 
cgit v0.12


From d2cc8870f89ecacc7d513c07b09a540dbad40a29 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 22 Apr 2017 13:12:46 +0000
Subject: openpht: update to 1.8.0.148

---
 abs/extra/openpht/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/extra/openpht/PKGBUILD b/abs/extra/openpht/PKGBUILD
index 06afae1..4962a65 100644
--- a/abs/extra/openpht/PKGBUILD
+++ b/abs/extra/openpht/PKGBUILD
@@ -3,9 +3,9 @@
 # Contributor: Daniel Wallace <daniel.wallace@gatech.edu>
 
 pkgname=openpht
-pkgver=1.7.1.137
-_pkghash=b604995c
-pkgrel=2
+pkgver=1.8.0.148
+_pkghash=573b6d73
+pkgrel=1
 pkgdesc='OpenPHT is a community driven fork of Plex Home Theater'
 arch=('i686' 'x86_64')
 url='https://github.com/RasPlex/OpenPHT/'
@@ -65,7 +65,7 @@ package() {
   # add in plex_lib.conf
   install -D -m0744 ${srcdir}/plex_lib.conf ${pkgdir}/etc/gen_lib_xml.d/plex_lib.conf
 }
-md5sums=('9a7a2205a30f1002b2600cf8e240fb98'
+md5sums=('cd2fff943de57123008c0f10f7fb20d1'
          'b9524fe29d0cc65087ba447d1b892da2'
          'a5980579c1b6341a6d06e80d9da2a924'
          'e530e2b4d8333863ba1c87862c291ba1')
-- 
cgit v0.12


From 80d74665392ac284e312ec659dc691a5c15db2e0 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 24 Apr 2017 12:09:31 +0000
Subject: system-templates: add default streamzap wol-lircrc

---
 abs/core/system-templates/PKGBUILD                 |  2 +-
 .../remotes/favorites/streamzap/wol-lircrc         | 66 ++++++++++++++++++++++
 2 files changed, 67 insertions(+), 1 deletion(-)
 create mode 100644 abs/core/system-templates/templates/remotes/favorites/streamzap/wol-lircrc

diff --git a/abs/core/system-templates/PKGBUILD b/abs/core/system-templates/PKGBUILD
index b496d1c..e72d48b 100755
--- a/abs/core/system-templates/PKGBUILD
+++ b/abs/core/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=8.4
-pkgrel=2
+pkgrel=3
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/core/system-templates/templates/remotes/favorites/streamzap/wol-lircrc b/abs/core/system-templates/templates/remotes/favorites/streamzap/wol-lircrc
new file mode 100644
index 0000000..46c8eb2
--- /dev/null
+++ b/abs/core/system-templates/templates/remotes/favorites/streamzap/wol-lircrc
@@ -0,0 +1,66 @@
+# wol-lircrc for Streamzap
+begin
+    prog = irxevent
+    button = STOP
+    config = Key ctrl-shift-q CurrentWindow
+end
+begin
+# Exit Chrome back to Myth
+    prog = irxevent
+    button = EXIT
+    config = Key Escape CurrentWindow 
+end
+begin
+    prog = irxevent
+    button = UP
+    config = Key Up CurrentWindow
+end
+begin
+    prog = irxevent
+    button = DOWN
+    config = Key Down CurrentWindow
+end
+begin
+    prog = irxevent
+    button = LEFT
+    config = Key Left CurrentWindow
+end
+begin
+    prog = irxevent
+    button = RIGHT
+    config = Key Right CurrentWindow
+end
+begin
+# Play/Pause
+    prog = irxevent
+    button = OK
+    config = Key Return CurrentWindow
+end
+begin
+# Play/Pause
+    prog = irxevent
+    button = PAUSE
+    config = Key Return CurrentWindow
+end
+begin
+# Play/Pause
+    prog = irxevent
+    button = PLAY
+    config = Key Return CurrentWindow
+end
+begin
+    prog = irxevent
+    button = CH_UP
+    config = Key alt-Right CurrentWindow
+end
+begin
+    prog = irxevent
+    button = CH_DOWN
+    config = Key alt-Left CurrentWindow
+end
+begin
+# Stop watching and return to Netflix Browse
+    prog = irxevent
+    button = MENU
+    config = Key alt-Left CurrentWindow
+end
-- 
cgit v0.12


From e7c7bcc8e72ca2ceff29d3586ca75dad8f3dc176 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 24 Apr 2017 14:12:40 +0000
Subject: lsdvd: update to 0.17

---
 abs/core/lsdvd/PKGBUILD           | 33 +++++++++++++++++----------------
 abs/core/lsdvd/stdint_usage.patch | 22 ----------------------
 2 files changed, 17 insertions(+), 38 deletions(-)
 delete mode 100644 abs/core/lsdvd/stdint_usage.patch

diff --git a/abs/core/lsdvd/PKGBUILD b/abs/core/lsdvd/PKGBUILD
index 0323625..3145f65 100644
--- a/abs/core/lsdvd/PKGBUILD
+++ b/abs/core/lsdvd/PKGBUILD
@@ -1,28 +1,29 @@
-# $Id: PKGBUILD 150946 2012-02-24 09:46:48Z pierre $
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# $Id$
+# Maintainer: Jonathan Steel <jsteel at archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Mathieu Clabaut <mathieu.clabaut@gmail.com>
 
 pkgname=lsdvd
-pkgver=0.16
-pkgrel=6
-pkgdesc="A C application for reading the contents of a DVD and printing the contents to your terminal"
+pkgver=0.17
+pkgrel=1
+pkgdesc="Console application that displays the content of a DVD"
 arch=('i686' 'x86_64')
 url="http://sourceforge.net/projects/lsdvd/"
-depends=('libdvdread')
 license=('GPL2')
-#Special thanks to Mathieu Clabaut <mathieu.clabaut@gmail.com> for patches
-source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
-        'stdint_usage.patch')
-md5sums=('340e1abe5c5e5abf7ff8031e78f49ee7'
-         '6cbcbfde873f894bd3c784f65141b2fc')
+depends=('libdvdread')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('32e63ff932ee2867e023ad3e74e14dcb')
 
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/stdint_usage.patch"
-  ./configure --prefix=/usr --mandir=/usr/share/man
+  cd $pkgname-$pkgver
+
+  ./configure --prefix=/usr
+
   make
 }
 
 package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make DESTDIR="${pkgdir}" install
+  cd $pkgname-$pkgver
+
+  make DESTDIR="$pkgdir" install
 }
diff --git a/abs/core/lsdvd/stdint_usage.patch b/abs/core/lsdvd/stdint_usage.patch
deleted file mode 100644
index 67b9ee8..0000000
--- a/abs/core/lsdvd/stdint_usage.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/lsdvd.c	2006-03-02 07:48:11.000000000 -0600
-+++ b/lsdvd.c	2007-09-27 19:15:28.000000000 -0500
-@@ -13,6 +13,7 @@
-  *  2003-04-19  Cleanups get_title_name, added dvdtime2msec, added helper macros,
-  *			  output info structures in form of a Perl module, by Henk Vergonet.
-  */
-+#include <stdint.h>
- #include <dvdread/ifo_read.h>
- #include <string.h>
- #include <sys/stat.h>
---- a/configure	2005-12-12 14:22:45.000000000 -0600
-+++ b/configure	2007-09-27 19:15:13.000000000 -0500
-@@ -2887,8 +2887,8 @@
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
--#include <dvdread/ifo_read.h>
- 		#include <stdint.h>
-+#include <dvdread/ifo_read.h>
- int
- main ()
- {
-- 
cgit v0.12


From 17ac17bc0228bb66d4c36782f1ca15453042555a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 24 Apr 2017 16:45:00 +0000
Subject: handbrake: update to 1.0.7

---
 abs/extra/handbrake/PKGBUILD                       | 52 +++++++---------------
 .../handbrake-fix-missing-x265-link-flag.patch     | 13 ------
 2 files changed, 17 insertions(+), 48 deletions(-)
 delete mode 100644 abs/extra/handbrake/handbrake-fix-missing-x265-link-flag.patch

diff --git a/abs/extra/handbrake/PKGBUILD b/abs/extra/handbrake/PKGBUILD
index 3b0c3e4..bf66a04 100644
--- a/abs/extra/handbrake/PKGBUILD
+++ b/abs/extra/handbrake/PKGBUILD
@@ -4,52 +4,34 @@
 # Contributor: Sebastien Piccand <sebcactus gmail com>
 
 pkgname=('handbrake' 'handbrake-cli')
-pkgver=1.0.2
-pkgrel=1
+pkgver=1.0.7
+pkgrel=2
 arch=('i686' 'x86_64')
 url="https://handbrake.fr/"
 license=('GPL')
-makedepends=('intltool' 'python2' 'yasm' 'wget' 'bzip2' 'gcc-libs' 'libnotify'
-             'gst-plugins-base' 'gtk3' 'dbus-glib' 'fribidi' 'libass' 'lame'
-             'fontconfig' 'freetype2' 'libxml2' 'libogg' 'libvorbis' 'cmake'
-             'libtheora' 'libsamplerate' 'ffmpeg' 'x264' 'libx264' 'x265'
-             'libvpx' 'libdvdnav' 'jansson' 'librsvg' 'libgudev')
-source=(https://handbrake.fr/mirror/HandBrake-$pkgver.tar.bz2
-        handbrake-fix-missing-x265-link-flag.patch)
-sha256sums=('18e4563cc150309df03f7e73462b823ba2eca61644a7a536c9930611f3f9aa1e'
-            '05e212e76b6e0b94a04de02cbeb7bf9db607059e19297b5bd3d0d143135285c4')
-
-prepare() {
-  cd "$srcdir/HandBrake-$pkgver"
-
-  # https://bugs.gentoo.org/show_bug.cgi?id=552792
-  patch -Np1 -i ../handbrake-fix-missing-x265-link-flag.patch
-
-  # Use more system libs
-  # Bundled libbluray is kept because it is patched locally
-  for _lib in ffmpeg x265 libvpx libdvdnav libdvdread; do
-    sed -i "/MODULES += contrib\/$_lib/d" make/include/main.defs
-  done
-}
+makedepends=('intltool' 'python2' 'yasm' 'wget' 'cmake' 'bzip2' 'gcc-libs'
+             'zlib' 'libnotify' 'gst-plugins-base' 'gtk3' 'dbus-glib' 'libass'
+             'lame' 'libxml2' 'opus' 'libvorbis' 'libtheora' 'libsamplerate'
+             'x264' 'libx264' 'jansson' 'librsvg' 'libgudev')
+source=(https://handbrake.fr/mirror/HandBrake-$pkgver.tar.bz2)
+sha256sums=('ffdee112f0288f0146b965107956cd718408406b75db71c44d2188f5296e677f')
 
 build() {
   cd "$srcdir/HandBrake-$pkgver"
 
-  ./configure \
-    --prefix=/usr \
-    --disable-gtk-update-checks
+  ./configure --prefix=/usr
   make -C build
 }
 
 package_handbrake() {
   pkgdesc="Multithreaded video transcoder"
-  depends=('bzip2' 'gcc-libs' 'gst-plugins-base' 'libnotify' 'dbus-glib'
-           'fribidi' 'libass' 'lame' 'gtk3' 'fontconfig' 'freetype2' 'libxml2'
-           'libogg' 'libvorbis' 'libtheora' 'libsamplerate' 'ffmpeg' 'libx264'
-           'x265' 'libvpx' 'libdvdnav' 'jansson' 'librsvg' 'libgudev'
+  depends=('bzip2' 'gcc-libs' 'zlib' 'gst-plugins-base' 'libnotify' 'dbus-glib'
+           'gtk3' 'libass' 'lame' 'libxml2' 'opus' 'libvorbis' 'libtheora'
+           'libsamplerate' 'libx264' 'jansson' 'librsvg' 'libgudev'
            'desktop-file-utils' 'hicolor-icon-theme')
   optdepends=('gst-plugins-good: for video previews'
-              'gst-libav: for video previews')
+              'gst-libav: for video previews'
+              'libdvdcss: for decoding encrypted DVDs')
 
   cd "$srcdir/HandBrake-$pkgver/build"
 
@@ -59,9 +41,9 @@ package_handbrake() {
 
 package_handbrake-cli() {
   pkgdesc="Multithreaded video transcoder (CLI)"
-  depends=('bzip2' 'gcc-libs' 'zlib' 'fribidi' 'libass' 'lame' 'libxml2'
-           'libtheora' 'libsamplerate' 'ffmpeg' 'libx264' 'x265' 'libvpx'
-           'libdvdnav' 'jansson')
+  depends=('bzip2' 'gcc-libs' 'zlib' 'libass' 'lame' 'libxml2' 'opus'
+           'libvorbis' 'libtheora' 'libsamplerate' 'libx264' 'jansson')
+  optdepends=('libdvdcss: for decoding encrypted DVDs')
 
   cd "$srcdir/HandBrake-$pkgver/build"
   install -D HandBrakeCLI "$pkgdir/usr/bin/HandBrakeCLI"
diff --git a/abs/extra/handbrake/handbrake-fix-missing-x265-link-flag.patch b/abs/extra/handbrake/handbrake-fix-missing-x265-link-flag.patch
deleted file mode 100644
index a963fe0..0000000
--- a/abs/extra/handbrake/handbrake-fix-missing-x265-link-flag.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Written by: Peter Foley <pefoley2@pefoley.com>
-Gentoo Bug: #552792
-
---- a/test/module.defs
-+++ b/test/module.defs
-@@ -25,6 +25,7 @@
- 
- ifeq (1,$(FEATURE.x265))
-     TEST.GCC.D += USE_X265
-+    TEST.GCC.l += x265
- endif
- 
- TEST.GCC.l += $(foreach m,$(MODULES.NAMES),$($m.OSL.libs))
-- 
cgit v0.12


From c63a8008721d6257eb1cb6185b8792da8d4d9672 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 24 Apr 2017 19:00:45 +0000
Subject: LinHES-system: ripD_eject.sh: update handbrake profiles.

use dvdbackup to detect dvd in a loop
---
 abs/core/LinHES-system/PKGBUILD      |   4 +-
 abs/core/LinHES-system/ripD_eject.sh | 104 +++++++++++++++++++----------------
 2 files changed, 60 insertions(+), 48 deletions(-)

diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index 3de7853..fbf5ae1 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-system
 pkgver=8.4
-pkgrel=24
+pkgrel=25
 arch=('i686' 'x86_64')
 install=system.install
 pkgdesc="Everything that makes LinHES an automated system"
@@ -134,7 +134,7 @@ md5sums=('c6e6b83a1f4c35ef4501e277657ab2ac'
          'ff689f2e9572a78d88384b2e5774f579'
          '28f29578e5b3ba84fdf2aa57cf475bcf'
          '4a1fda884dcd7d65fb2690fbdbd92a83'
-         '2b7fe3b57592823a4c7e3ec132dcb7f4'
+         '29f451783db3220b612e00c29e3ded73'
          'de3028ed75b53bd2f85ffbfdf64c44c2'
          '95c092f67036a361ef7a57436f44332e'
          '410795ef9039e4c6c0484e706ecfd567'
diff --git a/abs/core/LinHES-system/ripD_eject.sh b/abs/core/LinHES-system/ripD_eject.sh
index 715d0dd..baef7a1 100755
--- a/abs/core/LinHES-system/ripD_eject.sh
+++ b/abs/core/LinHES-system/ripD_eject.sh
@@ -9,7 +9,7 @@ Bsnd='/usr/share/sounds/init.wav'	# Begin sound file
 Esnd='/usr/share/sounds/complete.wav'	# End   sound file
 DATE=$(date +%Y%m%d_%H%M)		# current date/time
 LOG='/var/log/mythtv/ripD.log'			# name of Log file.
-TRACK=$(lsdvd | grep -i longest | awk '{print $3}')		#Finds longest track
+#TRACK=$(lsdvd | grep -i longest | awk '{print $3}')		#Finds longest track
 FILE=$TITLE
 #-----------------------------------------------------------------------
 [ -r /etc/rip.cfg ] && . /etc/rip.cfg
@@ -18,30 +18,51 @@ LOCK=/tmp/.ripLock.$$
 [ "$DISPLAY" == "" ] && export DISPLAY=:0
 ########################################################################
 function osd { # $1=text, $2=delay
+    msg_client.py --clear ripD
     msg_client.py --kill
-    msg_client.py --msg "$1" --timeout $2
+    msg_client.py --msg "$1" --timeout $2 --tag ripD
 } >& /dev/null
+
 function osd_loop() {
     FN=$1 ; shift
     TXT="to $dir/$FILE"
     N=0
     while [ -f "$LOCK" ]; do
-    osd "Backing up '$TITLE' $TXT" 70
-    N=$(($N+1))
-#	[ -d "$FN" ] && SIZE=$(du -sh $FN | awk '{print $1}')
-#	TXT="$SIZE of $MAX @ $N min. elapsed"
-    TXT="($N min. elapsed)"
-    sleep 60
+        osd "Backing up '$TITLE' $TXT" 70
+        N=$(($N+1))
+        TXT="($N min. elapsed)"
+        sleep 60
     done
 }
 ########################################################################
 osd "Detecting DVD..." 60 &
-echo "`date` detected DVD" >> $LOG
-rm -f /tmp/.ripLock.*
+# first make sure DMA is on:
+sudo hdparm -d1 -u1 $DEV >& /dev/null
+dvdFound=false
+for c in {1..10}; do
+    dvdBACKlog=$(dvdbackup -i /dev/sr0 -I)
+    if [[ $dvdBACKlog == *"information"* ]]; then
+        echo "`date` detected DVD" >> $LOG
+        rm -f /tmp/.ripLock.*
+        # attempt to get the DVD information:
+        TITLE=$(dvdbackup -i /dev/sr0 -I | grep information | awk '{ s = ""; for (i = 8; i <= NF; i++) s = s $i " "; print s }' | tr -d '"' | sed 's/ /_/g' | sed 's/_$//g')
+        dvdFound=true
+        osd "Found DVD '$TITLE'" 10 &
+        sleep 1
+        break
+    fi
+    sleep 3
+done
+if ! $dvdFound ; then
+    echo "no DVD" >> $LOG
+    osd "DVD not found" 10 &
+    eject ; eject
+    exit 0
+fi
 #=======================================================================
 for dir in $Ddir ; do
     if [ -d $dir -a -w $dir ]; then
-	break
+	    break
     fi
 done
 #-----------------------------------------------------------------------
@@ -58,61 +79,52 @@ if [ ! -w "$dir" ]; then
     exit 0
 fi
 #-----------------------------------------------------------------------
-mount $DEV >& /dev/null
-dev=$(readlink $DEV)
-df=$(df -h /dev/$dev | grep /dev/$dev)
-MAX=$(echo $df | while read d v r ; do echo $v ; done)
-echo " backup $MAX to $dir" >> $LOG
+#mount $DEV >& /dev/null
+#dev=$(readlink $DEV)
+#df=$(df -h /dev/$dev | grep /dev/$dev)
+#MAX=$(echo $df | while read d v r ; do echo $v ; done)
+#echo " backup $MAX to $dir" >> $LOG
 #=======================================================================
-# first make sure DMA is on:
-sudo hdparm -d1 -u1 $DEV >& /dev/null
-# attempt to get the DVD information:
-TITLE=$(dvdbackup -i /dev/sr0 -I | grep information | awk '{ s = ""; for (i = 8; i <= NF; i++) s = s $i " "; print s }' | tr -d '"' | sed 's/ /_/g' | sed 's/_$//g')
 if [ "$TITLE" == "DVD_VIDEO" -o "$TITLE" == "" \
-	-o "$TITLE" == " " -o "$TITLE" == "[ ].*" ]; then
+    -o "$TITLE" == " " -o "$TITLE" == "[ ].*" ]; then
     # if not a good title,
     TITLE="dvdbackup_$DATE"
 fi
 echo " $TITLE" >> $LOG
-if [ $1 = m ]
-then
-	COMMAND="dvdbackup -M -i $DEV -o $dir -n $TITLE"
-	elif [ $1 = h ]
-	then
-#	COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=320:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 720 -o $dir/$TITLE.avi"
-	COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "High\ Profile" --main-feature"
-	FILE=$TITLE.mp4
-	elif [ $1 = n ]
-	then
-#	COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=160:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 512 -o $dir/$TITLE.avi"
-	COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Normal" --main-feature"
-	FILE=$TITLE.mp4
-	elif [ $1 = l ]
-	then
-#	COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=96:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 320 -o $dir/$TITLE.avi"
-	COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Classic" --main-feature"
-	FILE=$TITLE.mp4
-	elif [ $1 = i ]
-	then
-	COMMAND="dd if=$DEV of=$dir/$TITLE.iso bs=2048"
-	FILE=$TITLE.iso
+if [[ $1 = "m" ]]; then
+    COMMAND='dvdbackup -M -i $DEV -o $dir -n $TITLE'
+    FILE=$TITLE
+elif [[ $1 = "h" ]]; then
+    COMMAND='HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "HQ 480p30 Surround" --main-feature'
+    FILE=$TITLE.mp4
+elif [[ $1 = "n" ]]; then
+    COMMAND='HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Fast 480p30" --main-feature'
+    FILE=$TITLE.mp4
+elif [[ $1 = "l" ]]; then
+    COMMAND='HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Very Fast 480p30" --main-feature'
+    FILE=$TITLE.mp4
+else
+    COMMAND='dd if=$DEV of=$dir/$TITLE.iso bs=2048'
+    FILE=$TITLE.iso
 fi
 { # for the redir below:
     # Begin:
     touch $LOCK
     osd_loop "$dir/$TITLE" "$TITLE" &
-    dvdbackup -i $DEV -I
     sleep 1 ; aplay $Bsnd
-    $COMMAND
+    eval $COMMAND
     # Finish:
     rm -f $LOCK
+    sleep 1
     osd "Done Backing up '$TITLE' to $dir/$FILE" 5 &
-    sleep 1 ; aplay $Esnd
+    sleep 1
+    aplay $Esnd
     # Eject the media:
     sudo eject ; sudo eject
 } > $dir/.$TITLE.log 2>&1
 echo " `du -sh $dir/$FILE`" >> $LOG
 echo " `date` finished DVD"  >> $LOG
+echo "" >> $LOG
 exit 0
 ########################################################################
 # End
-- 
cgit v0.12


From 1b44c5155a096f665e3aeacada82c244407132e4 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 25 Apr 2017 18:05:17 +0000
Subject: xymon: add inode and disk exceptions to frontend systems

---
 abs/core/xymon/PKGBUILD           |  4 ++--
 abs/core/xymon/analysis.cfg.patch | 33 ++++++++++++++++++++-------------
 2 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD
index 4ecc620..12649cb 100755
--- a/abs/core/xymon/PKGBUILD
+++ b/abs/core/xymon/PKGBUILD
@@ -1,7 +1,7 @@
 pkgbase=xymon
 pkgname=('xymonserver' 'xymonclient')
 pkgver=4.3.28
-pkgrel=3
+pkgrel=4
 pkgdesc="Xymon is a system for monitoring of hosts and networks"
 license=('GPL')
 arch=('i686' 'x86_64')
@@ -177,7 +177,7 @@ package_xymonclient(){
 
 md5sums=('14501ab2cfce9a332c1590543dfcbd0f'
          '9af2ad60ac4c3cb653754618f603e311'
-         '77fd7ab6ebbe72d14092ee53c5958f97'
+         'ecf9c4c878b676ca8be5a547888359ed'
          'd210c43fb9ee9ad6cd7648e0c2e0efea'
          '0c808fa12672289f86b0651545381308'
          '0469d775db9fdd18ea95dd41937ada82'
diff --git a/abs/core/xymon/analysis.cfg.patch b/abs/core/xymon/analysis.cfg.patch
index 3539ae3..d93b70d 100644
--- a/abs/core/xymon/analysis.cfg.patch
+++ b/abs/core/xymon/analysis.cfg.patch
@@ -1,12 +1,12 @@
---- analysis.cfg.orig	2017-01-18 19:50:46.758666909 +0000
-+++ analysis.cfg	2017-01-18 20:01:50.480263760 +0000
-@@ -353,12 +353,108 @@
+--- analysis.cfg.orig	2017-04-25 17:21:23.686051680 +0000
++++ analysis.cfg	2017-04-25 17:23:11.332110989 +0000
+@@ -353,12 +353,115 @@
  # to all hosts, add a new section with "HOSTS=*"
  
  
 +HOST=_MASTERBACKEND_
-+    PROC sshd 1 
-+    PROC lighttpd  
++    PROC sshd 1
++    PROC lighttpd
 +    PROC xymond
 +    PROC crond
 +    PROC mysql
@@ -25,8 +25,8 @@
 +
 +HOST=_MASTERFRONTEND_
 +    PROC mythfrontend 1 5 yellow
-+    PROC sshd 1 
-+    PROC lighttpd  
++    PROC sshd 1
++    PROC lighttpd
 +    PROC xymond
 +    PROC crond
 +    PROC mysql
@@ -44,14 +44,21 @@
 +    PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
 +
 +HOST=_FRONTEND_
-+    PROC sshd 1 
++    PROC sshd 1
 +    PROC crond
 +    PROC mythfrontend 1 5 yellow
 +    PROC msg_daemon.py
++    DISK    %^/cdrom.* IGNORE
++    DISK    %^/mnt.* IGNORE
++    DISK    %^/media.* IGNORE
++    DISK  *  95 99
++    INODE    %^/cdrom.* IGNORE
++    INODE    %^/mnt.* IGNORE
++    INODE    %^/media.* IGNORE
 +    PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
 +
 +HOST=_SLAVEBACKEND_
-+    PROC sshd 1 
++    PROC sshd 1
 +    PROC crond
 +    PROC mythbackend
 +    DISK    %^/cdrom.* IGNORE
@@ -64,8 +71,8 @@
 +    PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
 +
 +HOST=_SLAVEFRONTEND_
-+    PROC sshd 1 
-+    PROC lighttpd  
++    PROC sshd 1
++    PROC lighttpd
 +    PROC hobbitd
 +    PROC crond
 +    PROC mythbackend
@@ -82,8 +89,8 @@
 +
 +HOST=_STANDALONE_
 +    PROC mythfrontend 1 5 yellow
-+    PROC sshd 1 
-+    PROC lighttpd  
++    PROC sshd 1
++    PROC lighttpd
 +    PROC xymond
 +    PROC crond
 +    PROC mysql
-- 
cgit v0.12


From 3b886177b0f21189145db829efafa70ab78fe5b1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 27 Apr 2017 19:26:16 +0000
Subject: plex-media-server: readd plexmediascanner.sh

---
 abs/extra/plex-media-server/PKGBUILD | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/abs/extra/plex-media-server/PKGBUILD b/abs/extra/plex-media-server/PKGBUILD
index 6d14e83..52425c2 100644
--- a/abs/extra/plex-media-server/PKGBUILD
+++ b/abs/extra/plex-media-server/PKGBUILD
@@ -9,7 +9,7 @@
 pkgname=plex-media-server
 pkgver=1.5.5.3634
 _pkgsum=995f1dead
-pkgrel=1
+pkgrel=2
 pkgdesc='Plex Media Server'
 arch=('armv7h' 'i686' 'x86_64')
 url='https://plex.tv/'
@@ -47,6 +47,8 @@ package() {
   install -m 644 plexmediaserver.conf.d "${pkgdir}"/etc/conf.d/plexmediaserver
   install -Dm 644 "$srcdir/plex.sysusers" "$pkgdir/usr/lib/sysusers.d/plex.conf"
 
+  install -m 755 -D plexmediascanner.sh "${pkgdir}"/usr/LH/bin/plexmediascanner.sh
+
   install -dm 755 "${pkgdir}"/usr/share/licenses/${pkgname}
   install -m 644 terms.txt "${pkgdir}"/usr/share/licenses/${pkgname}/
 }
-- 
cgit v0.12


From ce90dcc793820964d9299b51547041814e6701df Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 28 Apr 2017 12:12:58 +0000
Subject: mythtv & mythplugins: update to latest fixes

mythtv: recording: as of v1.5 Plex Media Scanner outputs on tty instead of stdout
---
 abs/core/mythtv/stable-0.28/git_src/git_hash     | 2 +-
 abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD | 2 +-
 abs/core/mythtv/stable-0.28/mythtv/PKGBUILD      | 4 ++--
 abs/core/mythtv/stable-0.28/mythtv/recordings    | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash b/abs/core/mythtv/stable-0.28/git_src/git_hash
index 4576c63..a1f3383 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash
@@ -1 +1 @@
-70266230d3d3afcf9c356cf503fce210fe67ab07
+e26a33c69af48399b8c52b1d76872d64a944d137
diff --git a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
index b0aad15..1a038b1 100644
--- a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('mytharchive'
          'mythweather'
          'mythzoneminder')
 pkgver=0.28.1
-pkgrel=5
+pkgrel=6
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
diff --git a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
index 4848244..5fdc4ad 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.28.1
-pkgrel=5
+pkgrel=6
 commit_hash=`cat ../git_src/git_hash`
 pkgdesc="A Homebrew PVR project $commit_hash"
 arch=('i686' 'x86_64')
@@ -123,4 +123,4 @@ md5sums=('e30b482dcd5f3e71c6419fd753bab2b1'
          '6add9c16bbb988067e82029327e567b2'
          '6f916ebc2b1d0ca75c9aa6cec62c6fbb'
          'decae343fa612feb6609c65d1fc2ad14'
-         'e73bb7c5036e44a68b6f6aa2f1bac077')
+         '633cd853a89aeee5388daaad21ccec28')
diff --git a/abs/core/mythtv/stable-0.28/mythtv/recordings b/abs/core/mythtv/stable-0.28/mythtv/recordings
index 1c588f3..5dff16f 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/recordings
+++ b/abs/core/mythtv/stable-0.28/mythtv/recordings
@@ -133,7 +133,7 @@ then
     if [[ `pidof "Plex Media Server"` ]]
     then
         #get plex section and update
-        /usr/LH/bin/plexmediascanner.sh -l | grep -i myth | cut -d: -f1 | while read -r line
+        script -q -c '/usr/LH/bin/plexmediascanner.sh -l' | grep -i myth | cut -d: -f1 | while read -r line
         do
             /usr/LH/bin/plexmediascanner.sh --scan --refresh --section $line
         done
-- 
cgit v0.12


From 207975cd3d0fdfed694fb389b41fbe923fbfd0ce Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 6 Jun 2017 13:32:08 +0000
Subject: mythtv, mythplugins, mythweb: update to latest fixes

---
 abs/core/mythtv/stable-0.28/git_src/git_hash     | 2 +-
 abs/core/mythtv/stable-0.28/git_src/git_hash_web | 2 +-
 abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD | 2 +-
 abs/core/mythtv/stable-0.28/mythtv/PKGBUILD      | 2 +-
 abs/core/mythtv/stable-0.28/mythweb/PKGBUILD     | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash b/abs/core/mythtv/stable-0.28/git_src/git_hash
index a1f3383..8b261e1 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash
@@ -1 +1 @@
-e26a33c69af48399b8c52b1d76872d64a944d137
+b3480d043721848bda06d841eca09a6a2149c7e1
diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash_web b/abs/core/mythtv/stable-0.28/git_src/git_hash_web
index 5c91202..3909319 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash_web
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash_web
@@ -1 +1 @@
-d94cf0bb5e1ffb7feaab27aae68d8214371ae266
+fdfca9075fda339dc30b65a1b62ed181ee6933dc
diff --git a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
index 1a038b1..54ebf17 100644
--- a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('mytharchive'
          'mythweather'
          'mythzoneminder')
 pkgver=0.28.1
-pkgrel=6
+pkgrel=7
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
diff --git a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
index 5fdc4ad..7af806e 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.28.1
-pkgrel=6
+pkgrel=7
 commit_hash=`cat ../git_src/git_hash`
 pkgdesc="A Homebrew PVR project $commit_hash"
 arch=('i686' 'x86_64')
diff --git a/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD b/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
index 04b2561..6595f68 100644
--- a/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythweb
 pkgver=0.28.1
-pkgrel=2
+pkgrel=3
 commit_hash=`cat ../git_src/git_hash_web`
 pkgdesc="Web interface for MythTV's backend, $commit_hash"
 arch=('i686' 'x86_64')
-- 
cgit v0.12


From bf9dfc26c2c0c5d2d39e4ecb0114c7f4f461e66d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 6 Jun 2017 14:43:14 +0000
Subject: google-chrome: update to 59.0.3071.86

---
 abs/extra/google-chrome/PKGBUILD | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/abs/extra/google-chrome/PKGBUILD b/abs/extra/google-chrome/PKGBUILD
index dadb51e..dd41c55 100644
--- a/abs/extra/google-chrome/PKGBUILD
+++ b/abs/extra/google-chrome/PKGBUILD
@@ -5,7 +5,7 @@
 # or use: $ curl -s https://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/other.xml.gz | gzip -df | awk -F\" '/pkgid/{ sub(".*-","",$4); print $4": "$10 }'
 
 pkgname=google-chrome
-pkgver=58.0.3029.81
+pkgver=59.0.3071.86
 pkgrel=1
 pkgdesc="An attempt at creating a safer, faster, and more stable browser (Stable Channel)"
 arch=('x86_64')
@@ -15,7 +15,9 @@ depends=('alsa-lib' 'gconf' 'gtk2' 'libxss' 'libxtst' 'nss')
 optdepends=('kdialog: needed for file dialogs in KDE'
             'gnome-keyring: for storing passwords in GNOME keyring'
             'kwallet: for storing passwords in KWallet'
-            'ttf-liberation: fix fonts for some PDFs (CRBug #369991)')
+            'libunity: download progress on KDE'
+            'ttf-liberation: fix fonts for some PDFs (CRBug #369991)'
+            'xdg-utils')
 options=('!emptydirs' '!strip')
 install=$pkgname.install
 _channel=stable
@@ -51,6 +53,6 @@ package() {
   rm -r "$pkgdir"/etc/cron.daily/ "$pkgdir"/opt/google/chrome/cron/
   rm "$pkgdir"/opt/google/chrome/product_logo_*.png
 }
-md5sums=('65b7afdac7796e9a1ec21008fa82e403'
+md5sums=('686ea970b43c71f4cff37cf58d9c7738'
          'da54da9383ddffa44c5db45513239da2'
          'ed4cf73982461af7d0d944c1cbf9f4e8')
-- 
cgit v0.12


From 5442ece6509b59faacc1ace5bd1ec7af429478b8 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 6 Jun 2017 14:46:56 +0000
Subject: web-on-linhes: web-on-linhes.sh: don't use user-data-dir

---
 abs/extra/web-on-linhes/PKGBUILD         | 8 ++++----
 abs/extra/web-on-linhes/web-on-linhes.sh | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/extra/web-on-linhes/PKGBUILD b/abs/extra/web-on-linhes/PKGBUILD
index 4e52115..660efb5 100644
--- a/abs/extra/web-on-linhes/PKGBUILD
+++ b/abs/extra/web-on-linhes/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=web-on-linhes
 pkgver=1.3
-pkgrel=1
+pkgrel=2
 pkgdesc="Added multiple websites with 10' UIs to Play Online Streams."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -16,8 +16,8 @@ package() {
 	cd ${srcdir}
 	install -d ${pkgdir}/usr/LH/bin
 	install -D -m755 *.sh ${pkgdir}/usr/LH/bin
-  	#add in file for gen_is.xml
-  	install -D -m0744 ${srcdir}/web-on-linhes_is.conf ${pkgdir}/etc/gen_is_xml.d/web-on-linhes_is.conf
+    #add in file for gen_is.xml
+    install -D -m0744 ${srcdir}/web-on-linhes_is.conf ${pkgdir}/etc/gen_is_xml.d/web-on-linhes_is.conf
 }
-md5sums=('b04992d48e45411bdeed23e6aa9f95f7'
+md5sums=('c38cbf334b0b6c35a1fd49da9924a0f5'
          '475addc194b389ecc4bc5cde3aa5a8ea')
diff --git a/abs/extra/web-on-linhes/web-on-linhes.sh b/abs/extra/web-on-linhes/web-on-linhes.sh
index 7d9b99b..115d0b0 100644
--- a/abs/extra/web-on-linhes/web-on-linhes.sh
+++ b/abs/extra/web-on-linhes/web-on-linhes.sh
@@ -7,7 +7,7 @@ irxPID=$!
 stop_xss.sh &
 xssPID=$!
 #Launches chrome in full screen
-google-chrome --no-first-run --user-data-dir=/home/mythtv/.cache/google-chrome/Default/ --kiosk $@
+google-chrome --no-first-run --kiosk $@
 #Once done, stops irxevent and stop_xss.sh
 kill $irxPID
 kill $xssPID
-- 
cgit v0.12


From d29ba7ce21bbbadf558d4862f26ffefb377bb707 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 14:43:53 +0000
Subject: linhes-theme: browser-ui.xml.patch: add homepage checkbox

---
 abs/core/linhes-theme/PKGBUILD             |  5 ++-
 abs/core/linhes-theme/browser-ui.xml.patch | 60 ++++++++++++++++++++++++++++++
 2 files changed, 63 insertions(+), 2 deletions(-)
 create mode 100644 abs/core/linhes-theme/browser-ui.xml.patch

diff --git a/abs/core/linhes-theme/PKGBUILD b/abs/core/linhes-theme/PKGBUILD
index 713c753..07cb1b5 100755
--- a/abs/core/linhes-theme/PKGBUILD
+++ b/abs/core/linhes-theme/PKGBUILD
@@ -1,12 +1,12 @@
 pkgname=linhes-theme
 pkgver=8.4
-pkgrel=21
+pkgrel=22
 pkgdesc="Default LinHES MythTV theme"
 arch=('i686' 'x86_64')
 license=('GPL2')
 url="http://linhes.org/"
 
-patches=('readme.txt.patch' 'osd.xml.patch' 'base.xml.patch'
+patches=('readme.txt.patch' 'osd.xml.patch' 'base.xml.patch' 'browser-ui.xml.patch'
          'controls-ui.xml.patch' 'menu-ui-vert.xml.patch'
          'music-base.xml.patch' 'music-ui.xml.patch'
          'notification-ui.xml.patch' 'qtlook.txt.patch'
@@ -96,6 +96,7 @@ package() {
 md5sums=('2dca856c2a4d1f959473512c94e43b60'
          '3fc2c8838a9e331a2d19c114760a5acb'
          '66dd0365257d88b48ffeec00289e3b22'
+         '66436e11442b31bf8238f36eae453298'
          'ed56a335f8523d288609a81c005cab3f'
          'b90b745c72a057c78ebd0b6f2c5530b9'
          'a0ea2d3e386c0b483b31aa1a2703f9eb'
diff --git a/abs/core/linhes-theme/browser-ui.xml.patch b/abs/core/linhes-theme/browser-ui.xml.patch
new file mode 100644
index 0000000..b307572
--- /dev/null
+++ b/abs/core/linhes-theme/browser-ui.xml.patch
@@ -0,0 +1,60 @@
+--- browser-ui.xml.orig	2017-06-07 14:40:58.276800749 +0000
++++ browser-ui.xml	2017-06-07 14:39:39.636910230 +0000
+@@ -411,40 +411,50 @@
+         </textarea>
+ 
+         <textarea name="categorylabel" from="basetextarea">
+-            <area>78,101,104,40</area>
++            <area>30,101,120,40</area>
+             <align>right,vcenter</align>
+             <value>Category:</value>
+         </textarea>
+ 
+         <textedit name="category" from="base_textedit">
+-            <area>192,101,287,40</area>
++            <area>160,101,406,40</area>
+         </textedit>
+ 
+         <button name="findcategory" from="base_button">
+             <area>586,101,150,40</area>
+-            <value>Find</value>
++            <value>Find...</value>
+         </button>
+ 
+         <textarea name="namelabel" from="basetextarea">
+-            <area>50,203,100,40</area>
++            <area>50,169,100,40</area>
+             <align>right,vcenter</align>
+             <value>Name:</value>
+         </textarea>
+ 
+         <textedit name="name" from="base_textedit">
+-            <area>160,203,580,40</area>
++            <area>160,169,580,40</area>
+         </textedit>
+ 
+         <textarea name="urllabel" from="basetextarea">
+-            <area>50,305,100,40</area>
++            <area>50,237,100,40</area>
+             <align>right,vcenter</align>
+             <value>URL:</value>
+         </textarea>
+ 
+         <textedit name="url" from="base_textedit">
+-            <area>160,305,580,40</area>
++            <area>160,237,580,40</area>
+         </textedit>
+ 
++        <textarea name="homepagelabel" from="basetextarea">
++            <area>30,305,120,40</area>
++            <align>right,vcenter</align>
++            <value>Homepage:</value>
++        </textarea>
++
++        <checkbox name="homepage" from="base_checkbox">
++            <position>160,310</position>
++        </checkbox>
++
+         <button name="cancel" from="base_button">
+             <area>38,443,350,40</area>
+             <value>Cancel</value>
-- 
cgit v0.12


From 863ddc02b291dfbfb43ba7724950998027aea9fe Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 19:28:00 +0000
Subject: libdrm: update to 2.4.81

---
 abs/core/libdrm/PKGBUILD | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/abs/core/libdrm/PKGBUILD b/abs/core/libdrm/PKGBUILD
index ad2bab9..964dc57 100644
--- a/abs/core/libdrm/PKGBUILD
+++ b/abs/core/libdrm/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libdrm
-pkgver=2.4.75
+pkgver=2.4.81
 pkgrel=1
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
@@ -14,9 +14,9 @@ replaces=('libdrm-new' 'libdrm-nouveau')
 url="http://dri.freedesktop.org/"
 source=(https://dri.freedesktop.org/$pkgname/$pkgname-$pkgver.tar.bz2{,.sig}
         COPYING)
-sha256sums=('2d5a500eef412cc287d12268eed79d571e262d4957a2ec9258073f305985054f'
+sha512sums=('5f7a1524acad59890d3f890bed90a660a424e18a88d587ca356223bde4a7446d1c540f97ec11cb10d2e7ed1b4ae86127957634354a1be6d04199295ab24782e5'
             'SKIP'
-            '9631d4f694952e3e6ae5a05534c2e93e994e47d3413677a3a00e45c8cef6db93')
+            'b0ca349b882a4326b19f81f22804fabdb6fb7aef31cdc7b16b0a7ae191bfbb50c7daddb2fc4e6c33f1136af06d060a273de36f6f3412ea326f16fa4309fda660')
 validpgpkeys=('B97BD6A80CAC4981091AE547FE558C72A67013C3') # Maarten Lankhorst <maarten.lankhorst@canonical.com>
 validpgpkeys+=('215DEE688925CCB965BE5DA97C03D7797B6E1AE2') # Damien Lespiau <damien.lespiau@intel.com>
 validpgpkeys+=('10A6D91DA1B05BD29F6DEBAC0C74F35979C486BE') # David Airlie <airlied@redhat.com>
@@ -26,15 +26,9 @@ validpgpkeys+=('E8EB5B34081CE1EEA26EFE195B5BDA071D49CC38') # Kenneth Graunke <ke
 validpgpkeys+=('FC9BAE1435A9F7F664B82057B5D62936D1FC9EE8') # Eric Anholt <eric@anholt.net>
 validpgpkeys+=('3BB639E56F861FA2E86505690FDD682D974CA72A') # Matt Turner <mattst88@gmail.com>
 validpgpkeys+=('C20F5C4490D7D64B4C9A09998CD1DF552975297B') # Robert Bragg <robert@sixbynine.org>
+validpgpkeys+=('CD47C5341A375F33BEF7BAFAFDD15D5ACEF0F2B1') # Marek Olšák <maraeo@gmail.com>
+validpgpkeys+=('A66D805F7C9329B4C5D82767CCC4F07FAC641EFF') # Daniel Stone <daniels@collabora.com>
 
-prepare() {
-  cd $pkgname-$pkgver
-  
-  # pthread is useless in Linux
-  sed -i "/pthread-stubs/d" configure.ac
-  autoreconf --force --install
-
-}
 build() {
   cd $pkgname-$pkgver
   ./configure --prefix=/usr --enable-udev
-- 
cgit v0.12


From 1283aca0786d6bb3dd0167138788c03298dcd102 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 19:31:55 +0000
Subject: tigervnc: update to 1.8.0

---
 abs/extra/tigervnc/PKGBUILD          | 54 +++++++++++++++---------------------
 abs/extra/tigervnc/gethomedir.patch  | 20 -------------
 abs/extra/tigervnc/vncserver.service |  2 +-
 abs/extra/tigervnc/xorg118.patch     | 27 ------------------
 4 files changed, 24 insertions(+), 79 deletions(-)
 delete mode 100644 abs/extra/tigervnc/gethomedir.patch
 delete mode 100644 abs/extra/tigervnc/xorg118.patch

diff --git a/abs/extra/tigervnc/PKGBUILD b/abs/extra/tigervnc/PKGBUILD
index db327ef..8460632 100644
--- a/abs/extra/tigervnc/PKGBUILD
+++ b/abs/extra/tigervnc/PKGBUILD
@@ -2,16 +2,16 @@
 # Maintainer: Uroš Vampl <mobile.leecher at gmail dot com>
 
 pkgname=tigervnc
-pkgver=1.6.0
+pkgver=1.8.0
 pkgrel=2
-_xorgver=1.18.0
+_xorgver=1.19.3
 pkgdesc="Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC."
 arch=('i686' 'x86_64')
 url="http://www.tigervnc.org"
 license=('GPL')
 depends=('fltk' 'pam' 'gnutls' 'libjpeg-turbo' 'libxtst' 'libxfont' 'pixman'
 	 'xorg-xauth' 'xorg-xsetroot' 'xkeyboard-config' 'xorg-xkbcomp'
-	 'libgl' 'libgcrypt' 'perl' 'libxdamage')
+	 'libgl' 'libgcrypt' 'perl' 'libxdamage' 'libxfont2')
 makedepends=('cmake' 'nasm' 'xorg-font-util' 'xorg-util-macros' 'bigreqsproto'
 	     'compositeproto' 'damageproto' 'randrproto' 'resourceproto'
 	     'scrnsaverproto' 'videoproto' 'xcmiscproto' 'xf86vidmodeproto'
@@ -23,27 +23,21 @@ install=tiger.install
 source=($pkgname-$pkgver.tar.gz::https://github.com/TigerVNC/tigervnc/archive/v${pkgver}.tar.gz
 	ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${_xorgver}.tar.bz2
 	vncserver.service
-	vncviewer.desktop
-    vncsvc.rules
-	gethomedir.patch
-	xorg118.patch)
+	vncsvc.rules
+	vncviewer.desktop)
 
 prepare() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-
-  patch -Np1 -i ${srcdir}/xorg118.patch
-  patch -Np1 -i ${srcdir}/gethomedir.patch
-  sed -i 's/iconic/nowin/' unix/vncserver
-
+  cd "$srcdir"/${pkgname}-${pkgver}
   cd unix/xserver
-  cp -r ${srcdir}/xorg-server-${_xorgver}/* .
-  patch -Np1 -i ../xserver117.patch
+  cp -r "$srcdir"/xorg-server-${_xorgver}/* .
+  patch -Np1 -i ../xserver119.patch
 }
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
+  cd "$srcdir"/${pkgname}-${pkgver}
 
-  cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr
+  cmake -G "Unix Makefiles" \
+    -DCMAKE_INSTALL_PREFIX=/usr
   make
 
   cd unix/xserver
@@ -54,19 +48,19 @@ build() {
 	--disable-xwin --disable-xephyr --disable-kdrive --disable-xwayland \
 	--disable-config-hal --disable-config-udev --with-pic \
 	--disable-unit-tests --disable-devel-docs --disable-selective-werror \
-	--disable-dri --enable-dri2 --enable-dri3 --enable-glx --enable-glx-tls
+	--disable-dri --enable-dri2 --enable-dri3 --enable-glx
   make
 }
 
 package() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  make DESTDIR=${pkgdir} install
+  cd "$srcdir"/${pkgname}-${pkgver}
+  make DESTDIR="$pkgdir" install
   cd unix/xserver/hw/vnc
-  make DESTDIR=${pkgdir} install
-  install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/user/vncserver@.service \
-    $pkgdir/usr/lib/systemd/user/vncserver@.service
-  install -Dm0644 $srcdir/vncserver.service $pkgdir/usr/lib/systemd/system/vncserver.service
-  install -Dm0644 $srcdir/vncviewer.desktop $pkgdir/usr/share/applications/vncviewer.desktop
+  make DESTDIR="$pkgdir" install
+  install -Dm0644 "$srcdir"/${pkgname}-${pkgver}/contrib/systemd/user/vncserver@.service \
+    "$pkgdir"/usr/lib/systemd/user/vncserver@.service
+  install -Dm0644 "$srcdir"/vncserver.service "$pkgdir"/usr/lib/systemd/system/vncserver.service
+  install -Dm0644 "$srcdir"/vncviewer.desktop "$pkgdir"/usr/share/applications/vncviewer.desktop
 
   #LinHES sudo rules
   mkdir -p $pkgdir/etc/sudoers.d/
@@ -74,10 +68,8 @@ package() {
   chown -R root:root $pkgdir/etc/sudoers.d
   install -o root -g root -m 0750 $srcdir/vncsvc.rules $pkgdir/etc/sudoers.d/vncsvc-tigervnc
 }
-md5sums=('78b736445781d86c48e942465a391ccc'
-         '3c1c1057d3ad27380d8dd87ffcc182cd'
-         '1aad8f06504b3e29a24ccfbaab617973'
-         'b200d83c60e80c6f9693ea19a2d9f5b0'
+md5sums=('5c9a80dd4b99b4eb19f535db5ce5830f'
+         '015d2fc4b9f2bfe7a626edb63a62c65e'
+         'a8a20685c23a50f86a13c33ce96a7ba7'
          'f333a228ddbefffc6ce945754bc9c5c5'
-         '22f1523a0eca56ad79cfabd0db6e2cf6'
-         '2fd32181679077eb7f7ca06cf25f443f')
+         'b200d83c60e80c6f9693ea19a2d9f5b0')
diff --git a/abs/extra/tigervnc/gethomedir.patch b/abs/extra/tigervnc/gethomedir.patch
deleted file mode 100644
index 5f3542d..0000000
--- a/abs/extra/tigervnc/gethomedir.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/Makefile.am tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
---- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/Makefile.am	2011-10-31 09:14:40.000000000 +0100
-+++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am	2012-09-06 19:44:04.431123087 +0200
-@@ -5,6 +5,7 @@
- RDR_LIB=$(LIB_DIR)/rdr/librdr.la
- NETWORK_LIB=$(LIB_DIR)/network/libnetwork.la
- XREGION_LIB=$(LIB_DIR)/Xregion/libXregion.la
-+OS_LIB=$(LIB_DIR)/os/libos.la
- COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
- 
- noinst_LTLIBRARIES = libvnccommon.la
-@@ -55,7 +56,7 @@
- 
- libvnc_la_LDFLAGS = -module -avoid-version
- 
--libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS)
-+libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS) $(OS_LIB)
- 
- EXTRA_DIST = Xvnc.man
- 
diff --git a/abs/extra/tigervnc/vncserver.service b/abs/extra/tigervnc/vncserver.service
index 0c257b3..40151ac 100644
--- a/abs/extra/tigervnc/vncserver.service
+++ b/abs/extra/tigervnc/vncserver.service
@@ -18,7 +18,7 @@ Description=Remote desktop service (VNC)
 After=syslog.target network.target
 
 [Service]
-Type=forking
+Type=simple
 User=
 
 ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || true'
diff --git a/abs/extra/tigervnc/xorg118.patch b/abs/extra/tigervnc/xorg118.patch
deleted file mode 100644
index 7484200..0000000
--- a/abs/extra/tigervnc/xorg118.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -wbBur tigervnc-1.5.0/unix/xserver/hw/vnc/Input.c tigervnc-1.5.0.q/unix/xserver/hw/vnc/Input.c
---- tigervnc-1.5.0/unix/xserver/hw/vnc/Input.c	2015-07-11 16:00:36.000000000 +0300
-+++ tigervnc-1.5.0.q/unix/xserver/hw/vnc/Input.c	2015-11-25 19:04:24.278747038 +0300
-@@ -300,6 +300,8 @@
- #if XORG < 111
- 	n = GetKeyboardEvents(eventq, dev, action, kc);
- 	enqueueEvents(dev, n);
-+#elif XORG > 117
-+	QueueKeyboardEvents(dev, action, kc);
- #else
- 	QueueKeyboardEvents(dev, action, kc, NULL);
- #endif
-diff -wbBur tigervnc-1.5.0/unix/xserver/hw/vnc/xorg-version.h tigervnc-1.5.0.q/unix/xserver/hw/vnc/xorg-version.h
---- tigervnc-1.5.0/unix/xserver/hw/vnc/xorg-version.h	2015-07-11 16:00:36.000000000 +0300
-+++ tigervnc-1.5.0.q/unix/xserver/hw/vnc/xorg-version.h	2015-11-25 19:02:47.688751421 +0300
-@@ -48,8 +48,10 @@
- #define XORG 116
- #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (17 * 100000) + (99 * 1000))
- #define XORG 117
-+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (18 * 100000) + (99 * 1000))
-+#define XORG 118
- #else
--#error "X.Org newer than 1.17 is not supported"
-+#error "X.Org newer than 1.18 is not supported"
- #endif
- 
- #endif
-- 
cgit v0.12


From 3774881544aeaf07e08f8aaf1113b23655b87b9b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 19:36:33 +0000
Subject: ceton_infinitv: rebuild for linux 4.9.31

---
 abs/core/ceton_infinitv/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/ceton_infinitv/PKGBUILD b/abs/core/ceton_infinitv/PKGBUILD
index d575351..113e3eb 100755
--- a/abs/core/ceton_infinitv/PKGBUILD
+++ b/abs/core/ceton_infinitv/PKGBUILD
@@ -2,10 +2,10 @@
 
 pkgname=ceton_infinitv
 #_kernver=`uname -r`
-_kernver=4.9.20-1-ARCH
+_kernver=4.9.31-1-ARCH
 _extramods="extramodules-4.9-ARCH"
 pkgver=2013.0326.2226
-pkgrel=20
+pkgrel=21
 usb_pkgver=0.1.0
 pci_pkgver=`echo $pkgver | tr . _`
 pkgdesc="Drivers for Ceton InfiniTV4 - pci/usb "
-- 
cgit v0.12


From 458fba1475b635bc6566ce4213f4a8a9e54b419e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 19:38:00 +0000
Subject: linux: update to 4.9.31

---
 abs/core/linux/PKGBUILD          | 4 ++--
 abs/core/linux/linux.install.pkg | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/linux/PKGBUILD b/abs/core/linux/PKGBUILD
index 1e30ad9..bcf5a85 100644
--- a/abs/core/linux/PKGBUILD
+++ b/abs/core/linux/PKGBUILD
@@ -4,7 +4,7 @@
 pkgbase=linux
 #pkgbase=linux-custom
 _srcname=linux-4.9
-pkgver=4.9.20
+pkgver=4.9.31
 pkgrel=1
 arch=('i686' 'x86_64')
 url="https://www.kernel.org/"
@@ -294,7 +294,7 @@ for _p in ${pkgname[@]}; do
 done
 md5sums=('0a68ef3615c64bd5ee54a3320e46667d'
          'SKIP'
-         '1d336b33f01320e3bdbdc2d9b52aadbd'
+         '8a9cc9b791f63c40c02c765ee39fc806'
          'SKIP'
          '2d73fc24ab59870bebde25e591e1bfb8'
          'eca4246ff4ef81f714e0d909b5293b64'
diff --git a/abs/core/linux/linux.install.pkg b/abs/core/linux/linux.install.pkg
index 9f7c302..b129b47 100644
--- a/abs/core/linux/linux.install.pkg
+++ b/abs/core/linux/linux.install.pkg
@@ -2,7 +2,7 @@
 # arg 2:  the old package version
 
 KERNEL_NAME=
-KERNEL_VERSION=4.9.20-1-ARCH
+KERNEL_VERSION=4.9.31-1-ARCH
 
 post_install () {
   # updating module dependencies
-- 
cgit v0.12


From 1102bb0c5ca441eff2cdfdb07ae9f7e7678e7740 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 20:42:58 +0000
Subject: nvidia & nvidia-utils: update to 381.22

---
 abs/core/nvidia-utils/PKGBUILD    |   8 +-
 abs/core/nvidia/PKGBUILD          |  12 +-
 abs/core/nvidia/kernel_4.10.patch | 382 --------------------------------------
 3 files changed, 8 insertions(+), 394 deletions(-)
 delete mode 100644 abs/core/nvidia/kernel_4.10.patch

diff --git a/abs/core/nvidia-utils/PKGBUILD b/abs/core/nvidia-utils/PKGBUILD
index eed11f8..de2e364 100644
--- a/abs/core/nvidia-utils/PKGBUILD
+++ b/abs/core/nvidia-utils/PKGBUILD
@@ -5,8 +5,8 @@
 
 pkgbase=nvidia-utils
 pkgname=('nvidia-utils' 'opencl-nvidia')
-pkgver=378.13
-pkgrel=6
+pkgver=381.22
+pkgrel=1
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 license=('custom')
@@ -15,8 +15,8 @@ source=('nvidia-drm-outputclass.conf')
 source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
 md5sums=('a433deeb5f9cc661e537f42bde2f1df7')
-md5sums_i686=('dd1077750af9a067739ec291fb24175f')
-md5sums_x86_64=('fe4d25b19a780a690cafc8e3b7c0113f')
+md5sums_i686=('8825cec1640739521689bd80121d1425')
+md5sums_x86_64=('0e9590d48703c8baa034b6f0f8bbf1e5')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
diff --git a/abs/core/nvidia/PKGBUILD b/abs/core/nvidia/PKGBUILD
index 2ebee1f..470343c 100644
--- a/abs/core/nvidia/PKGBUILD
+++ b/abs/core/nvidia/PKGBUILD
@@ -5,21 +5,19 @@
 
 pkgbase=nvidia
 pkgname=(nvidia nvidia-dkms)
-pkgver=378.13
+pkgver=381.22
 _extramodules=extramodules-4.9-ARCH
-pkgrel=5
+pkgrel=2
 pkgdesc="NVIDIA drivers for linux"
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 makedepends=('nvidia-libgl' "nvidia-utils=${pkgver}" 'linux' 'linux-headers>=4.9' 'linux-headers<4.10')
 license=('custom')
 options=('!strip')
-source=('kernel_4.10.patch')
 source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-md5sums=('e81769b830b7a1e60c635e3bbe559f59')
-md5sums_i686=('dd1077750af9a067739ec291fb24175f')
-md5sums_x86_64=('fe4d25b19a780a690cafc8e3b7c0113f')
+md5sums_i686=('8825cec1640739521689bd80121d1425')
+md5sums_x86_64=('0e9590d48703c8baa034b6f0f8bbf1e5')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -28,8 +26,6 @@ prepare() {
     sh "${_pkg}.run" --extract-only
     cd "${_pkg}"
 
-#    patch -Np1 --no-backup-if-mismatch -i ../kernel_4.10.patch
-
     cp -a kernel kernel-dkms
     cd kernel-dkms
     sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
diff --git a/abs/core/nvidia/kernel_4.10.patch b/abs/core/nvidia/kernel_4.10.patch
deleted file mode 100644
index 4ad9f8a..0000000
--- a/abs/core/nvidia/kernel_4.10.patch
+++ /dev/null
@@ -1,382 +0,0 @@
-From ca8b106738521823707f3567cedb41ca158792a3 Mon Sep 17 00:00:00 2001
-From: Alberto Milone <alberto.milone@canonical.com>
-Date: Wed, 15 Feb 2017 10:53:42 +0100
-Subject: [PATCH 1/1] Add support for Linux 4.10
-
----
- common/inc/nv-mm.h            |  9 ++++--
- nvidia-drm/nvidia-drm-fence.c | 72 +++++++++++++++++++++++++++++++++++++++++++
- nvidia-drm/nvidia-drm-gem.h   |  6 ++++
- nvidia-drm/nvidia-drm-priv.h  |  7 +++++
- nvidia/nv-pat.c               | 40 ++++++++++++++++++++++++
- 5 files changed, 132 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h
-index 06d7da4..e5cc56a 100644
---- a/kernel/common/inc/nv-mm.h
-+++ b/kernel/common/inc/nv-mm.h
-@@ -46,6 +46,8 @@
-  *   2016 Dec 14:5b56d49fc31dbb0487e14ead790fc81ca9fb2c99
-  */
- 
-+#include <linux/version.h>
-+
- #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
-     #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
-         #define NV_GET_USER_PAGES           get_user_pages
-@@ -92,10 +94,13 @@
-                                             pages, vmas, NULL);
- 
-         #else
--
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-                return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
-                                             pages, vmas);
--
-+#else
-+               return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
-+                                            pages, vmas, NULL);
-+#endif
-         #endif
- 
-         }
-diff --git a/kernel/nvidia-drm/nvidia-drm-fence.c b/kernel/nvidia-drm/nvidia-drm-fence.c
-index 5e98c5f..fa2c508 100644
---- a/kernel/nvidia-drm/nvidia-drm-fence.c
-+++ b/kernel/nvidia-drm/nvidia-drm-fence.c
-@@ -31,7 +31,11 @@
- 
- #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
- struct nv_fence {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence base;
-+#else
-+    struct dma_fence base;
-+#endif
-     spinlock_t lock;
- 
-     struct nvidia_drm_device *nv_dev;
-@@ -51,7 +55,11 @@ nv_fence_ready_to_signal(struct nv_fence *nv_fence)
- 
- static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
- (
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence
-+#else
-+    struct dma_fence *fence
-+#endif
- )
- {
-     return "NVIDIA";
-@@ -59,7 +67,11 @@ static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
- 
- static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
- (
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence
-+#else
-+    struct dma_fence *fence
-+#endif
- )
- {
-     return "nvidia.prime";
-@@ -67,7 +79,11 @@ static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
- 
- static bool nvidia_drm_gem_prime_fence_op_signaled
- (
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence
-+#else
-+    struct dma_fence *fence
-+#endif
- )
- {
-     struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
-@@ -99,7 +115,11 @@ unlock_struct_mutex:
- 
- static bool nvidia_drm_gem_prime_fence_op_enable_signaling
- (
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence
-+#else
-+    struct dma_fence *fence
-+#endif
- )
- {
-     bool ret = true;
-@@ -107,7 +127,11 @@ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
-     struct nvidia_drm_gem_object *nv_gem = nv_fence->nv_gem;
-     struct nvidia_drm_device *nv_dev = nv_fence->nv_dev;
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     if (fence_is_signaled(fence))
-+#else
-+    if (dma_fence_is_signaled(fence))
-+#endif
-     {
-         return false;
-     }
-@@ -136,7 +160,11 @@ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
-     }
- 
-     nv_gem->fenceContext.softFence = fence;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     fence_get(fence);
-+#else
-+    dma_fence_get(fence);
-+#endif
- 
- unlock_struct_mutex:
-     mutex_unlock(&nv_dev->dev->struct_mutex);
-@@ -146,7 +174,11 @@ unlock_struct_mutex:
- 
- static void nvidia_drm_gem_prime_fence_op_release
- (
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence
-+#else
-+    struct dma_fence *fence
-+#endif
- )
- {
-     struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
-@@ -155,7 +187,11 @@ static void nvidia_drm_gem_prime_fence_op_release
- 
- static signed long nvidia_drm_gem_prime_fence_op_wait
- (
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence,
-+#else
-+    struct dma_fence *fence,
-+#endif
-     bool intr,
-     signed long timeout
- )
-@@ -170,12 +206,20 @@ static signed long nvidia_drm_gem_prime_fence_op_wait
-      * that it should never get hit during normal operation, but not so long
-      * that the system becomes unresponsive.
-      */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     return fence_default_wait(fence, intr,
-+#else
-+    return dma_fence_default_wait(fence, intr,
-+#endif
-                               (timeout == MAX_SCHEDULE_TIMEOUT) ?
-                                   msecs_to_jiffies(96) : timeout);
- }
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
- static const struct fence_ops nvidia_drm_gem_prime_fence_ops = {
-+#else
-+static const struct dma_fence_ops nvidia_drm_gem_prime_fence_ops = {
-+#endif
-     .get_driver_name = nvidia_drm_gem_prime_fence_op_get_driver_name,
-     .get_timeline_name = nvidia_drm_gem_prime_fence_op_get_timeline_name,
-     .signaled = nvidia_drm_gem_prime_fence_op_signaled,
-@@ -285,7 +329,11 @@ static void nvidia_drm_gem_prime_fence_signal
-     bool force
- )
- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     struct fence *fence = nv_gem->fenceContext.softFence;
-+#else
-+    struct dma_fence *fence = nv_gem->fenceContext.softFence;
-+#endif
- 
-     WARN_ON(!mutex_is_locked(&nv_dev->dev->struct_mutex));
- 
-@@ -301,10 +349,18 @@ static void nvidia_drm_gem_prime_fence_signal
- 
-         if (force || nv_fence_ready_to_signal(nv_fence))
-         {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-             fence_signal(&nv_fence->base);
-+#else
-+            dma_fence_signal(&nv_fence->base);
-+#endif
- 
-             nv_gem->fenceContext.softFence = NULL;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-             fence_put(&nv_fence->base);
-+#else
-+            dma_fence_put(&nv_fence->base);
-+#endif
- 
-             nvKms->disableChannelEvent(nv_dev->pDevice,
-                                        nv_gem->fenceContext.cb);
-@@ -320,7 +376,11 @@ static void nvidia_drm_gem_prime_fence_signal
- 
-         nv_fence = container_of(fence, struct nv_fence, base);
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-         fence_signal(&nv_fence->base);
-+#else
-+        dma_fence_signal(&nv_fence->base);
-+#endif
-     }
- }
- 
-@@ -513,7 +573,11 @@ int nvidia_drm_gem_prime_fence_init
-      * fence_context_alloc() cannot fail, so we do not need to check a return
-      * value.
-      */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     nv_gem->fenceContext.context = fence_context_alloc(1);
-+#else
-+    nv_gem->fenceContext.context = dma_fence_context_alloc(1);
-+#endif
- 
-     ret = nvidia_drm_gem_prime_fence_import_semaphore(
-               nv_dev, nv_gem, p->index,
-@@ -670,7 +734,11 @@ int nvidia_drm_gem_prime_fence_attach
-     nv_fence->nv_gem = nv_gem;
- 
-     spin_lock_init(&nv_fence->lock);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
-+#else
-+    dma_fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
-+#endif
-                &nv_fence->lock, nv_gem->fenceContext.context,
-                p->sem_thresh);
- 
-@@ -680,7 +748,11 @@ int nvidia_drm_gem_prime_fence_attach
- 
-     reservation_object_add_excl_fence(&nv_gem->fenceContext.resv,
-                                       &nv_fence->base);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-     fence_put(&nv_fence->base); /* Reservation object has reference */
-+#else
-+    dma_fence_put(&nv_fence->base);
-+#endif
- 
-     ret = 0;
- 
-diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h
-index 4ff45e8..394576b 100644
---- a/kernel/nvidia-drm/nvidia-drm-gem.h
-+++ b/kernel/nvidia-drm/nvidia-drm-gem.h
-@@ -29,6 +29,8 @@
- 
- #include "nvidia-drm-priv.h"
- 
-+#include <linux/version.h>
-+
- #include <drm/drmP.h>
- #include "nvkms-kapi.h"
- 
-@@ -98,7 +100,11 @@ struct nvidia_drm_gem_object
-         /* Software signaling structures */
-         struct NvKmsKapiChannelEvent *cb;
-         struct nvidia_drm_gem_prime_soft_fence_event_args *cbArgs;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-         struct fence *softFence; /* Fence for software signaling */
-+#else
-+        struct dma_fence *softFence;
-+#endif
-     } fenceContext;
- #endif
- };
-diff --git a/kernel/nvidia-drm/nvidia-drm-priv.h b/kernel/nvidia-drm/nvidia-drm-priv.h
-index 1e9b9f9..ae171e7 100644
---- a/kernel/nvidia-drm/nvidia-drm-priv.h
-+++ b/kernel/nvidia-drm/nvidia-drm-priv.h
-@@ -25,6 +25,8 @@
- 
- #include "conftest.h" /* NV_DRM_AVAILABLE */
- 
-+#include <linux/version.h>
-+
- #if defined(NV_DRM_AVAILABLE)
- 
- #include <drm/drmP.h>
-@@ -34,7 +36,12 @@
- #endif
- 
- #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
- #include <linux/fence.h>
-+#else
-+#include <linux/dma-fence.h>
-+#endif
-+
- #include <linux/reservation.h>
- #endif
- 
-diff --git a/kernel/nvidia/nv-pat.c b/kernel/nvidia/nv-pat.c
-index df78020..0af7d47 100644
---- a/kernel/nvidia/nv-pat.c
-+++ b/kernel/nvidia/nv-pat.c
-@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
- }
- 
- #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
- static int
- nvidia_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
- {
-@@ -234,6 +235,34 @@ static struct notifier_block nv_hotcpu_nfb = {
-     .notifier_call = nvidia_cpu_callback,
-     .priority = 0
- };
-+#else
-+static int nvidia_cpu_online(unsigned int hcpu)
-+{
-+    unsigned int cpu = get_cpu();
-+    if (cpu == hcpu)
-+        nv_setup_pat_entries(NULL);
-+    else
-+        NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, (void *)(long int)hcpu, 1);
-+
-+    put_cpu();
-+
-+    return 0;
-+}
-+
-+static int nvidia_cpu_down_prep(unsigned int hcpu)
-+{
-+    unsigned int cpu = get_cpu();
-+    if (cpu == hcpu)
-+        nv_restore_pat_entries(NULL);
-+    else
-+        NV_SMP_CALL_FUNCTION(nv_restore_pat_entries, (void *)(long int)hcpu, 1);
-+
-+    put_cpu();
-+
-+    return 0;
-+}
-+#endif
-+
- #endif
- 
- int nv_init_pat_support(nvidia_stack_t *sp)
-@@ -255,7 +284,14 @@ int nv_init_pat_support(nvidia_stack_t *sp)
- #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
-         if (nv_pat_mode == NV_PAT_MODE_BUILTIN)
-         {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-             if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
-+#else
-+            if (cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
-+                                  "gpu/nvidia:online",
-+                                  nvidia_cpu_online,
-+                                  nvidia_cpu_down_prep) != 0)
-+#endif
-             {
-                 nv_disable_pat_support();
-                 nv_printf(NV_DBG_ERRORS,
-@@ -280,7 +316,11 @@ void nv_teardown_pat_support(void)
-     {
-         nv_disable_pat_support();
- #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-         unregister_hotcpu_notifier(&nv_hotcpu_nfb);
-+#else
-+        cpuhp_remove_state_nocalls(CPUHP_AP_ONLINE_DYN);
-+#endif
- #endif
-     }
- }
--- 
-2.7.4
-
-- 
cgit v0.12


From 092fbc5206087dd046ba1619fa7f053d712b825f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 20:49:26 +0000
Subject: nvidia-340xx: rebuild for linux 4.9.31

---
 abs/core/nvidia-340xx/4.11.0_kernel.patch | 112 ++++++++++++++++++++++++++++++
 abs/core/nvidia-340xx/PKGBUILD            |  10 +--
 2 files changed, 118 insertions(+), 4 deletions(-)
 create mode 100644 abs/core/nvidia-340xx/4.11.0_kernel.patch

diff --git a/abs/core/nvidia-340xx/4.11.0_kernel.patch b/abs/core/nvidia-340xx/4.11.0_kernel.patch
new file mode 100644
index 0000000..5ee3e4f
--- /dev/null
+++ b/abs/core/nvidia-340xx/4.11.0_kernel.patch
@@ -0,0 +1,112 @@
+--- a/kernel/nv-drm.c
++++ b/kernel/nv-drm.c
+@@ -22,6 +22,8 @@
+ #include <drm/drm_gem.h>
+ #endif
+ 
++#include <linux/version.h>
++
+ extern nv_linux_state_t *nv_linux_devices;
+ 
+ struct nv_gem_object {
+@@ -48,7 +50,11 @@
+     return -ENODEV;
+ }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ static int nv_drm_unload(
++#else
++static void nv_drm_unload(
++#endif
+     struct drm_device *dev
+ )
+ {
+@@ -60,11 +66,19 @@
+         {
+             BUG_ON(nvl->drm != dev);
+             nvl->drm = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+             return 0;
++#else
++            return;
++#endif
+         }
+     }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+     return -ENODEV;
++#else
++    return;
++#endif
+ }
+ 
+ static void nv_gem_free(
+
+--- a/kernel/uvm/nvidia_uvm_linux.h
++++ b/kernel/uvm/nvidia_uvm_linux.h
+@@ -124,6 +124,9 @@
+ #include <linux/delay.h>            /* mdelay, udelay                   */
+ 
+ #include <linux/sched.h>            /* suser(), capable() replacement   */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++#include <linux/sched/signal.h>
++#endif
+ #include <linux/moduleparam.h>      /* module_param()                   */
+ #if !defined(NV_VMWARE)
+ #include <asm/tlbflush.h>           /* flush_tlb(), flush_tlb_all()     */
+@@ -362,6 +365,7 @@
+     void address_space_init_once(struct address_space *mapping);
+ #endif
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ #if !defined(NV_FATAL_SIGNAL_PENDING_PRESENT)
+     static inline int __fatal_signal_pending(struct task_struct *p)
+     {
+@@ -372,6 +376,7 @@
+     {
+         return signal_pending(p) && __fatal_signal_pending(p);
+     }
++#endif
+ #endif
+ 
+ //
+
+--- a/kernel/uvm/nvidia_uvm_lite.c
++++ b/kernel/uvm/nvidia_uvm_lite.c
+@@ -818,7 +818,11 @@
+ }
+ 
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++int _fault(struct vm_fault *vmf)
++#else
+ int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++#endif
+ {
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     unsigned long vaddr = (unsigned long)vmf->virtual_address;
+@@ -828,7 +832,11 @@
+     struct page *page = NULL;
+     int retval;
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++    retval = _fault_common(NULL, vaddr, &page, vmf->flags);
++#else
+     retval = _fault_common(vma, vaddr, &page, vmf->flags);
++#endif
+ 
+     vmf->page = page;
+ 
+@@ -866,7 +874,11 @@
+ // it's dealing with anonymous mapping (see handle_pte_fault).
+ //
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++int _sigbus_fault(struct vm_fault *vmf)
++#else
+ int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++#endif
+ {
+     vmf->page = NULL;
+     return VM_FAULT_SIGBUS;
+
diff --git a/abs/core/nvidia-340xx/PKGBUILD b/abs/core/nvidia-340xx/PKGBUILD
index 5f404fa..c2b6f16 100644
--- a/abs/core/nvidia-340xx/PKGBUILD
+++ b/abs/core/nvidia-340xx/PKGBUILD
@@ -6,18 +6,19 @@ pkgbase=nvidia-340xx
 pkgname=(nvidia-340xx nvidia-340xx-dkms)
 pkgver=340.102
 _extramodules=extramodules-4.9-ARCH
-pkgrel=6
+pkgrel=7
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 makedepends=("nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.9' 'linux-headers<4.10')
 conflicts=('nvidia')
 license=('custom')
 options=(!strip)
-source=('fs52243.patch' '4.10.0_kernel.patch')
+source=('fs52243.patch' '4.10.0_kernel.patch' '4.11.0_kernel.patch')
 source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
 sha512sums=('de4f697d64f8e73c4aadec1a407884a6bc459c0020d4bfd19740fe4177a60bb801fe8a74ef6f7fa2e89c6cd648ea4daf152799ae344a145c06480a6eef0c5bca'
-            '88a2b448c1e8445dc43820328e86d8f20eb7e3cb5774e704cd44191a9fa26064264510c1adc9ea938fa2c92075496f3a27bd52ae6e6f4ec5fa6d4a829dd961e8')
+            '88a2b448c1e8445dc43820328e86d8f20eb7e3cb5774e704cd44191a9fa26064264510c1adc9ea938fa2c92075496f3a27bd52ae6e6f4ec5fa6d4a829dd961e8'
+            '48eb48dfd118a5d76d0e01c3bb5aedb7e6ec153a40680c0ebd6842c74fe1dda49e1cc8dc2b2493b7355de47d3013c578a13c254c5bb3eecdbfcf8f4ebc7c7c34')
 sha512sums_i686=('bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca')
 sha512sums_x86_64=('2a29e6418244ea384e4237d74057bd8e56247b1c503cf623dea34a3b1065d8783879aa7e6a802dd31f0a10cf81cfcab2a1b1a8269b97996f15fa1838c0a3a44b')
 
@@ -30,7 +31,8 @@ prepare() {
     # patches here
 
     patch -Np0 < "${srcdir}"/fs52243.patch
-#    patch -Np1 < "${srcdir}"/4.10.0_kernel.patch
+    patch -Np1 < "${srcdir}"/4.10.0_kernel.patch
+    patch -Np1 < "${srcdir}"/4.11.0_kernel.patch
 
     cp -a kernel kernel-dkms
 }
-- 
cgit v0.12


From 16d4d6268e749161516b7ea3149bd8ae11134326 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 21:01:09 +0000
Subject: mesa: update to 17.1.2

---
 ...plement-the-libglvnd-interface-for-EGL-v2.patch | 3952 --------------------
 ...1-glapi-Link-with-glapi-when-built-shared.patch |   82 -
 ...mplement-the-libglvnd-interface-for-EGL-v.patch |   33 -
 abs/core/mesa/0002-glvnd-fix-gl-dot-pc.patch       |   12 +
 abs/core/mesa/PKGBUILD                             |   50 +-
 abs/core/mesa/__changelog                          |    1 -
 abs/core/mesa/glvnd-fix-gl-dot-pc.patch            |   12 -
 abs/core/mesa/remove-libpthread-stubs.patch        |   13 -
 8 files changed, 32 insertions(+), 4123 deletions(-)
 delete mode 100644 abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
 delete mode 100644 abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch
 delete mode 100644 abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
 create mode 100644 abs/core/mesa/0002-glvnd-fix-gl-dot-pc.patch
 delete mode 100644 abs/core/mesa/__changelog
 delete mode 100644 abs/core/mesa/glvnd-fix-gl-dot-pc.patch
 delete mode 100644 abs/core/mesa/remove-libpthread-stubs.patch

diff --git a/abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch b/abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
deleted file mode 100644
index 913a9dd..0000000
--- a/abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
+++ /dev/null
@@ -1,3952 +0,0 @@
-From 97b447ee480a09a744094562da36b019a3eeb10f Mon Sep 17 00:00:00 2001
-From: Kyle Brenneman <kbrenneman@nvidia.com>
-Date: Wed, 4 Jan 2017 11:31:58 -0700
-Subject: [PATCH 1/2] EGL: Implement the libglvnd interface for EGL (v2)
-
-Added separate --enable-libglvnd-glx and --enable-libglvnd-egl configure
-options to enable libglvnd for GLX and EGL. The existing --enable-libglvnd
-option will now enable both EGL and GLX.
-
-The new interface mostly just sits on top of the existing library. The only
-change to the existing EGL code is to split the client extension string into
-platform extensions and everything else. On non-glvnd builds, eglQueryString
-will just concatenate the two strings.
-
-The EGL dispatch stubs are all generated. The script is based on the one used
-to generate entrypoints in libglvnd itself.
-
-v2:
-
-Rebased against master.
-
-Reworked the EGL makefile to use separate libtool targets instead of an
-automake substitution "lib@EGL_LIB@_la_*" in the variable names. Using the
-substitution broke automake's dependency tracking for "make dist".
-
-Made the EGL code generation scripts work with Python 2 or 3.
-
-Change gen_egl_dispatch.py to use argparse for the command line arguments.
-
-Assorted formatting and style cleanup in the Python scripts.
----
- configure.ac                         |  154 ++-
- src/egl/Makefile.am                  |   97 +-
- src/egl/generate/egl.xml             | 2412 ++++++++++++++++++++++++++++++++++
- src/egl/generate/eglFunctionList.py  |  197 +++
- src/egl/generate/egl_other.xml       |   47 +
- src/egl/generate/genCommon.py        |  223 ++++
- src/egl/generate/gen_egl_dispatch.py |  250 ++++
- src/egl/main/50_mesa.json            |    6 +
- src/egl/main/eglapi.c                |    6 +-
- src/egl/main/egldispatchstubs.c      |  110 ++
- src/egl/main/egldispatchstubs.h      |   26 +
- src/egl/main/eglglobals.c            |   47 +-
- src/egl/main/eglglobals.h            |   13 +-
- src/egl/main/eglglvnd.c              |   82 ++
- 14 files changed, 3576 insertions(+), 94 deletions(-)
- create mode 100755 src/egl/generate/egl.xml
- create mode 100644 src/egl/generate/eglFunctionList.py
- create mode 100644 src/egl/generate/egl_other.xml
- create mode 100644 src/egl/generate/genCommon.py
- create mode 100755 src/egl/generate/gen_egl_dispatch.py
- create mode 100644 src/egl/main/50_mesa.json
- create mode 100644 src/egl/main/egldispatchstubs.c
- create mode 100644 src/egl/main/egldispatchstubs.h
- create mode 100644 src/egl/main/eglglvnd.c
-
-diff --git a/configure.ac b/configure.ac
-index de8af874ec..839b25c057 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -528,8 +528,6 @@ else
-    DEFINES="$DEFINES -DNDEBUG"
- fi
- 
--DEFAULT_GL_LIB_NAME=GL
--
- dnl
- dnl Check if linker supports -Bsymbolic
- dnl
-@@ -627,23 +625,6 @@ esac
- 
- AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
- 
--DEFAULT_GL_LIB_NAME=GL
--
--dnl
--dnl Libglvnd configuration
--dnl
--AC_ARG_ENABLE([libglvnd],
--    [AS_HELP_STRING([--enable-libglvnd],
--        [Build for libglvnd @<:@default=disabled@:>@])],
--    [enable_libglvnd="$enableval"],
--    [enable_libglvnd=no])
--AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
--#AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"])
--if test "x$enable_libglvnd" = xyes ; then
--    DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
--    DEFAULT_GL_LIB_NAME=GLX_mesa
--fi
--
- dnl
- dnl library names
- dnl
-@@ -677,36 +658,6 @@ esac
- 
- AC_SUBST([LIB_EXT])
- 
--AC_ARG_WITH([gl-lib-name],
--  [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
--    [specify GL library name @<:@default=GL@:>@])],
--  [GL_LIB=$withval],
--  [GL_LIB="$DEFAULT_GL_LIB_NAME"])
--AC_ARG_WITH([osmesa-lib-name],
--  [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
--    [specify OSMesa library name @<:@default=OSMesa@:>@])],
--  [OSMESA_LIB=$withval],
--  [OSMESA_LIB=OSMesa])
--AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
--AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
--
--dnl
--dnl Mangled Mesa support
--dnl
--AC_ARG_ENABLE([mangling],
--  [AS_HELP_STRING([--enable-mangling],
--    [enable mangled symbols and library name @<:@default=disabled@:>@])],
--  [enable_mangling="${enableval}"],
--  [enable_mangling=no]
--)
--if test "x${enable_mangling}" = "xyes" ; then
--  DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
--  GL_LIB="Mangled${GL_LIB}"
--  OSMESA_LIB="Mangled${OSMESA_LIB}"
--fi
--AC_SUBST([GL_LIB])
--AC_SUBST([OSMESA_LIB])
--
- dnl
- dnl potentially-infringing-but-nobody-knows-for-sure stuff
- dnl
-@@ -1335,31 +1286,94 @@ AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib)
- dnl
- dnl Libglvnd configuration
- dnl
-+
-+DEFAULT_GL_LIB_NAME=GL
-+
- AC_ARG_ENABLE([libglvnd],
-     [AS_HELP_STRING([--enable-libglvnd],
--        [Build for libglvnd @<:@default=disabled@:>@])],
-+        [Build GLX and EGL for libglvnd @<:@default=disabled@:>@])],
-     [enable_libglvnd="$enableval"],
-     [enable_libglvnd=no])
--AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
--if test "x$enable_libglvnd" = xyes ; then
--    dnl XXX: update once we can handle more than libGL/glx.
--    dnl Namely: we should error out if neither of the glvnd enabled libraries
--    dnl are built
--    case "x$enable_glx" in
--    xno)
--        AC_MSG_ERROR([cannot build libglvnd without GLX])
--        ;;
--    xxlib | xgallium-xlib )
--        AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
--        ;;
--    xdri)
--        ;;
--    esac
-+AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes)
-+
-+AC_ARG_ENABLE([libglvnd-glx],
-+    [AS_HELP_STRING([--enable-libglvnd-glx],
-+        [Build GLX for libglvnd @<:@default=disabled@:>@])],
-+    [enable_libglvnd_glx="$enableval"],
-+    [enable_libglvnd_glx="$enable_libglvnd"])
-+AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes)
-+
-+AC_ARG_ENABLE([libglvnd-egl],
-+    [AS_HELP_STRING([--enable-libglvnd-egl],
-+        [Build EGL for libglvnd @<:@default=disabled@:>@])],
-+    [enable_libglvnd_egl="$enableval"],
-+    [enable_libglvnd_egl="$enable_libglvnd"])
-+AM_CONDITIONAL(USE_LIBGLVND_EGL, test "x$enable_libglvnd_egl" = xyes)
-+
-+if test "x$enable_libglvnd_glx" = xyes -o "x$enable_libglvnd_egl" = xyes ; then
-+    PKG_CHECK_VAR(LIBGLVND_DATADIR, libglvnd, datadir)
-+    AC_SUBST([LIBGLVND_DATADIR])
-+
-+    if test "x$enable_libglvnd_egl" = xyes ; then
-+        PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0)
-+
-+        if test "x$enable_egl" != xyes ; then
-+            AC_MSG_ERROR([cannot build libglvnd without EGL])
-+        fi
-+        DEFINES="${DEFINES} -DUSE_LIBGLVND_EGL=1"
-+    else
-+        PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
-+    fi
-+
-+    if test "x$enable_libglvnd_glx" = xyes ; then
-+        dnl XXX: update once we can handle more than libGL/glx.
-+        dnl Namely: we should error out if neither of the glvnd enabled libraries
-+        dnl are built
-+        case "x$enable_glx" in
-+        xno)
-+            AC_MSG_ERROR([cannot build libglvnd without GLX])
-+            ;;
-+        xxlib | xgallium-xlib )
-+            AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
-+            ;;
-+        xdri)
-+            ;;
-+        esac
-+
-+        DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
-+        DEFAULT_GL_LIB_NAME=GLX_mesa
-+    fi
-+fi
-+
-+AC_ARG_WITH([gl-lib-name],
-+  [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
-+    [specify GL library name @<:@default=GL@:>@])],
-+  [GL_LIB=$withval],
-+  [GL_LIB="$DEFAULT_GL_LIB_NAME"])
-+AC_ARG_WITH([osmesa-lib-name],
-+  [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
-+    [specify OSMesa library name @<:@default=OSMesa@:>@])],
-+  [OSMESA_LIB=$withval],
-+  [OSMESA_LIB=OSMesa])
-+AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
-+AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
- 
--    PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
--    DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
--    DEFAULT_GL_LIB_NAME=GLX_mesa
-+dnl
-+dnl Mangled Mesa support
-+dnl
-+AC_ARG_ENABLE([mangling],
-+  [AS_HELP_STRING([--enable-mangling],
-+    [enable mangled symbols and library name @<:@default=disabled@:>@])],
-+  [enable_mangling="${enableval}"],
-+  [enable_mangling=no]
-+)
-+if test "x${enable_mangling}" = "xyes" ; then
-+  DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
-+  GL_LIB="Mangled${GL_LIB}"
-+  OSMESA_LIB="Mangled${OSMESA_LIB}"
- fi
-+AC_SUBST([GL_LIB])
-+AC_SUBST([OSMESA_LIB])
- 
- # Check for libdrm
- PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
-@@ -2759,11 +2773,15 @@ xgallium-xlib)
-     echo "        GLX:             $enable_glx"
-     ;;
- esac
-+if test "x$enable_glx" != xno; then
-+    echo "        GLX libglvnd:    $enable_libglvnd_glx"
-+fi
- 
- dnl EGL
- echo ""
- echo "        EGL:             $enable_egl"
- if test "$enable_egl" = yes; then
-+    echo "        EGL libglvnd:    $enable_libglvnd_egl"
-     echo "        EGL platforms:   $egl_platforms"
- 
-     egl_drivers=""
-diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
-index 78cf525951..3bc62d550f 100644
---- a/src/egl/Makefile.am
-+++ b/src/egl/Makefile.am
-@@ -32,19 +32,16 @@ AM_CFLAGS = \
- 	$(EGL_CFLAGS) \
- 	-D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM)
- 
--lib_LTLIBRARIES = libEGL.la
--
--libEGL_la_SOURCES = \
-+# Depending on whether libglvnd is enabled, we'll build the EGL library as
-+# either libEGL.so.1 or libEGL_mesa.so.0. Using an automake substitution
-+# in the variable names breaks "make dist" target, so use a conenience library
-+# instead.
-+noinst_LTLIBRARIES = libEGL_common.la
-+libEGL_common_la_SOURCES = \
- 	$(LIBEGL_C_FILES)
- 
--libEGL_la_LIBADD = \
-+libEGL_common_la_LIBADD = \
- 	$(EGL_LIB_DEPS)
--libEGL_la_LDFLAGS = \
--	-no-undefined \
--	-version-number 1:0 \
--	$(BSYMBOLIC) \
--	$(GC_SECTIONS) \
--	$(LD_NO_UNDEFINED)
- 
- dri2_backend_FILES =
- dri3_backend_FILES =
-@@ -52,7 +49,7 @@ dri3_backend_FILES =
- if HAVE_PLATFORM_X11
- AM_CFLAGS += -DHAVE_X11_PLATFORM
- AM_CFLAGS += $(XCB_DRI2_CFLAGS)
--libEGL_la_LIBADD += $(XCB_DRI2_LIBS)
-+libEGL_common_la_LIBADD += $(XCB_DRI2_LIBS)
- dri2_backend_FILES += drivers/dri2/platform_x11.c
- 
- if HAVE_DRI3
-@@ -60,22 +57,22 @@ dri3_backend_FILES += \
- 	drivers/dri2/platform_x11_dri3.c \
- 	drivers/dri2/platform_x11_dri3.h
- 
--libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la
-+libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la
- endif
- endif
- 
- if HAVE_PLATFORM_WAYLAND
- AM_CFLAGS += -DHAVE_WAYLAND_PLATFORM
- AM_CFLAGS += $(WAYLAND_CFLAGS)
--libEGL_la_LIBADD += $(WAYLAND_LIBS)
--libEGL_la_LIBADD += $(LIBDRM_LIBS)
--libEGL_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
-+libEGL_common_la_LIBADD += $(WAYLAND_LIBS)
-+libEGL_common_la_LIBADD += $(LIBDRM_LIBS)
-+libEGL_common_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
- dri2_backend_FILES += drivers/dri2/platform_wayland.c
- endif
- 
- if HAVE_EGL_PLATFORM_DRM
- AM_CFLAGS += -DHAVE_DRM_PLATFORM
--libEGL_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la
-+libEGL_common_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la
- dri2_backend_FILES += drivers/dri2/platform_drm.c
- endif
- 
-@@ -87,7 +84,7 @@ endif
- if HAVE_EGL_PLATFORM_ANDROID
- AM_CFLAGS += -DHAVE_ANDROID_PLATFORM
- AM_CFLAGS += $(ANDROID_CFLAGS)
--libEGL_la_LIBADD += $(ANDROID_LIBS)
-+libEGL_common_la_LIBADD += $(ANDROID_LIBS)
- dri2_backend_FILES += drivers/dri2/platform_android.c
- endif
- 
-@@ -101,13 +98,68 @@ AM_CFLAGS += \
- 	-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
- 	-D_EGL_BUILT_IN_DRIVER_DRI2
- 
--libEGL_la_SOURCES += \
-+libEGL_common_la_SOURCES += \
- 	$(dri2_backend_core_FILES) \
- 	$(dri2_backend_FILES) \
- 	$(dri3_backend_FILES)
- 
--libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader.la
--libEGL_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB)
-+libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader.la
-+libEGL_common_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB)
-+
-+GLVND_GEN_DEPS = generate/gen_egl_dispatch.py \
-+	generate/egl.xml generate/eglFunctionList.py generate/genCommon.py \
-+	generate/egl_other.xml
-+
-+PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
-+g_egldispatchstubs.c: $(GLVND_GEN_DEPS)
-+	$(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py source \
-+		$(top_srcdir)/src/egl/generate/eglFunctionList.py \
-+		$(top_srcdir)/src/egl/generate/egl.xml \
-+		$(top_srcdir)/src/egl/generate/egl_other.xml > $@
-+
-+g_egldispatchstubs.h: $(GLVND_GEN_DEPS)
-+	$(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py header \
-+		$(top_srcdir)/src/egl/generate/eglFunctionList.py \
-+		$(top_srcdir)/src/egl/generate/egl.xml \
-+		$(top_srcdir)/src/egl/generate/egl_other.xml > $@
-+
-+BUILT_SOURCES = g_egldispatchstubs.c g_egldispatchstubs.h
-+CLEANFILES = $(BUILT_SOURCES)
-+
-+if USE_LIBGLVND_EGL
-+AM_CFLAGS += \
-+	$(GLVND_CFLAGS)
-+
-+vendorjsondir = @LIBGLVND_DATADIR@/glvnd/egl_vendor.d
-+vendorjson_DATA = main/50_mesa.json
-+
-+lib_LTLIBRARIES = libEGL_mesa.la
-+libEGL_mesa_la_SOURCES = \
-+	main/eglglvnd.c \
-+	main/egldispatchstubs.h \
-+	main/egldispatchstubs.c \
-+	g_egldispatchstubs.c
-+libEGL_mesa_la_LIBADD = libEGL_common.la
-+libEGL_mesa_la_LDFLAGS = \
-+	-no-undefined \
-+	-version-number 0 \
-+	$(BSYMBOLIC) \
-+	$(GC_SECTIONS) \
-+	$(LD_NO_UNDEFINED)
-+
-+else # USE_LIBGLVND_EGL
-+
-+lib_LTLIBRARIES = libEGL.la
-+libEGL_la_SOURCES =
-+libEGL_la_LIBADD = libEGL_common.la
-+libEGL_la_LDFLAGS = \
-+	-no-undefined \
-+	-version-number 1:0 \
-+	$(BSYMBOLIC) \
-+	$(GC_SECTIONS) \
-+	$(LD_NO_UNDEFINED)
-+
-+endif # USE_LIBGLVND_EGL
- 
- include $(top_srcdir)/install-lib-links.mk
- 
-@@ -133,4 +185,7 @@ EXTRA_DIST = \
- 	SConscript \
- 	drivers/haiku \
- 	main/egl.def \
--	main/README.txt
-+	main/README.txt \
-+	$(GLVND_GEN_DEPS) \
-+	main/50_mesa.json
-+
-diff --git a/src/egl/generate/egl.xml b/src/egl/generate/egl.xml
-new file mode 100755
-index 0000000000..f6dbbc0f26
---- /dev/null
-+++ b/src/egl/generate/egl.xml
-@@ -0,0 +1,2412 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<registry>
-+    <!--
-+    Copyright (c) 2013-2014 The Khronos Group Inc.
-+
-+    Permission is hereby granted, free of charge, to any person obtaining a
-+    copy of this software and/or associated documentation files (the
-+    "Materials"), to deal in the Materials without restriction, including
-+    without limitation the rights to use, copy, modify, merge, publish,
-+    distribute, sublicense, and/or sell copies of the Materials, and to
-+    permit persons to whom the Materials are furnished to do so, subject to
-+    the following conditions:
-+
-+    The above copyright notice and this permission notice shall be included
-+    in all copies or substantial portions of the Materials.
-+
-+    THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-+    MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-+    -->
-+    <!--
-+    This file, egl.xml, is the EGL API Registry. The older ".spec" file
-+    format has been retired and will no longer be updated with new
-+    extensions and API versions. The canonical version of the registry,
-+    together with documentation, schema, and Python generator scripts used
-+    to generate C header files for EGL, can be found in the Khronos Registry
-+    at
-+        http://www.opengl.org/registry/
-+    -->
-+
-+    <!-- SECTION: EGL type definitions. Does not include GL types. -->
-+    <types>
-+            <!-- These are dependencies EGL types require to be declared legally -->
-+        <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
-+        <type name="eglplatform" requires="khrplatform">#include &lt;EGL/eglplatform.h&gt;</type>
-+        <type name="khronos_utime_nanoseconds_t" requires="khrplatform"/>
-+        <type name="khronos_uint64_t" requires="khrplatform"/>
-+        <type name="khronos_ssize_t" requires="khrplatform"/>
-+        <type name="EGLNativeDisplayType" requires="eglplatform"/>
-+        <type name="EGLNativePixmapType" requires="eglplatform"/>
-+        <type name="EGLNativeWindowType" requires="eglplatform"/>
-+        <type name="EGLint" requires="eglplatform"/>
-+        <type name="NativeDisplayType" requires="eglplatform"/>
-+        <type name="NativePixmapType" requires="eglplatform"/>
-+        <type name="NativeWindowType" requires="eglplatform"/>
-+        <!-- Dummy placeholders for non-EGL types -->
-+        <type name="Bool"/>
-+            <!-- These are actual EGL types.  -->
-+        <type>typedef unsigned int <name>EGLBoolean</name>;</type>
-+        <type>typedef unsigned int <name>EGLenum</name>;</type>
-+        <type requires="khrplatform">typedef intptr_t <name>EGLAttribKHR</name>;</type>
-+        <type requires="khrplatform">typedef intptr_t <name>EGLAttrib</name>;</type>
-+        <type>typedef void *<name>EGLClientBuffer</name>;</type>
-+        <type>typedef void *<name>EGLConfig</name>;</type>
-+        <type>typedef void *<name>EGLContext</name>;</type>
-+        <type>typedef void *<name>EGLDeviceEXT</name>;</type>
-+        <type>typedef void *<name>EGLDisplay</name>;</type>
-+        <type>typedef void *<name>EGLImage</name>;</type>
-+        <type>typedef void *<name>EGLImageKHR</name>;</type>
-+        <type>typedef void *<name>EGLLabelKHR</name>;</type>
-+        <type>typedef void *<name>EGLObjectKHR</name>;</type>
-+        <type>typedef void *<name>EGLOutputLayerEXT</name>;</type>
-+        <type>typedef void *<name>EGLOutputPortEXT</name>;</type>
-+        <type>typedef void *<name>EGLStreamKHR</name>;</type>
-+        <type>typedef void *<name>EGLSurface</name>;</type>
-+        <type>typedef void *<name>EGLSync</name>;</type>
-+        <type>typedef void *<name>EGLSyncKHR</name>;</type>
-+        <type>typedef void *<name>EGLSyncNV</name>;</type>
-+        <type>typedef void (*<name>__eglMustCastToProperFunctionPointerType</name>)(void);</type>
-+        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeKHR</name>;</type>
-+        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTime</name>;</type>
-+        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeNV</name>;</type>
-+        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLuint64NV</name>;</type>
-+        <type requires="khrplatform">typedef khronos_uint64_t <name>EGLuint64KHR</name>;</type>
-+        <type>typedef int <name>EGLNativeFileDescriptorKHR</name>;</type>
-+        <type requires="khrplatform">typedef khronos_ssize_t <name>EGLsizeiANDROID</name>;</type>
-+        <type requires="EGLsizeiANDROID">typedef void (*<name>EGLSetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);</type>
-+        <type requires="EGLsizeiANDROID">typedef EGLsizeiANDROID (*<name>EGLGetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);</type>
-+        <type>struct <name>EGLClientPixmapHI</name> {
-+    void  *pData;
-+    EGLint iWidth;
-+    EGLint iHeight;
-+    EGLint iStride;
-+};</type>
-+        <type>typedef void (<apientry/> *<name>EGLDEBUGPROCKHR</name>)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);</type>
-+    </types>
-+
-+    <!-- SECTION: EGL enumerant (token) definitions. -->
-+
-+    <!-- Bitmasks each have their own namespace, as do a few other
-+         categories of enumeration -->
-+
-+    <enums namespace="EGLSurfaceTypeMask" type="bitmask" comment="EGL_SURFACE_TYPE bits">
-+        <enum value="0x0001" name="EGL_PBUFFER_BIT"/>
-+        <enum value="0x0002" name="EGL_PIXMAP_BIT"/>
-+        <enum value="0x0004" name="EGL_WINDOW_BIT"/>
-+        <enum value="0x0008" name="EGL_PBUFFER_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
-+        <enum value="0x0010" name="EGL_PBUFFER_PALETTE_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
-+        <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
-+        <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
-+        <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
-+        <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
-+        <enum value="0x0080" name="EGL_LOCK_SURFACE_BIT_KHR"/>
-+        <enum value="0x0100" name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
-+        <enum value="0x0200" name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
-+        <enum value="0x0400" name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
-+        <enum value="0x0800" name="EGL_STREAM_BIT_KHR"/>
-+            <!--
-+        <enum value="0x0800"      name="EGL_STREAM_BIT_NV" comment="Draft EGL_NV_stream_producer_eglsurface extension (bug 8064)"/>
-+            -->
-+    </enums>
-+
-+    <enums namespace="EGLRenderableTypeMask" type="bitmask" comment="EGL_RENDERABLE_TYPE bits">
-+        <enum value="0x0001" name="EGL_OPENGL_ES_BIT"/>
-+        <enum value="0x0002" name="EGL_OPENVG_BIT"/>
-+        <enum value="0x0004" name="EGL_OPENGL_ES2_BIT"/>
-+        <enum value="0x0008" name="EGL_OPENGL_BIT"/>
-+        <enum value="0x0010" name="EGL_INTEROP_BIT_KHR" comment="EGL_KHR_interop"/>
-+        <enum value="0x0020" name="EGL_OPENMAX_IL_BIT_KHR" comment="EGL_KHR_interop"/>
-+        <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT"/>
-+        <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT_KHR" alias="EGL_OPENGL_ES3_BIT"/>
-+    </enums>
-+
-+    <enums namespace="EGLLockUsageHintKHRMask" type="bitmask" comment="EGL_LOCK_USAGE_HINT_KHR bits">
-+        <enum value="0x0001" name="EGL_READ_SURFACE_BIT_KHR"/>
-+        <enum value="0x0002" name="EGL_WRITE_SURFACE_BIT_KHR"/>
-+    </enums>
-+
-+    <enums namespace="EGLSyncFlagsKHR" type="bitmask" comment="Fence/reusable sync wait bits">
-+        <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
-+        <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
-+        <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
-+    </enums>
-+
-+    <enums namespace="EGLDRMBufferUseMESAMask" type="bitmask" comment="EGL_DRM_BUFFER_USE_MESA bits">
-+        <enum value="0x00000001" name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
-+        <enum value="0x00000002" name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
-+    </enums>
-+
-+    <!-- Should be shared with GL, but aren't aren't since the
-+         FORWARD_COMPATIBLE and DEBUG_BIT values are swapped in the
-+         corresponding GL enums. Oops :-( -->
-+    <enums namespace="EGLContextFlagMask" type="bitmask" comment="EGL_CONTEXT_FLAGS_KHR bits">
-+        <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
-+        <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
-+        <enum value="0x00000004" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
-+    </enums>
-+
-+    <enums namespace="EGLContextProfileMask" type="bitmask" comment="Shared with GL">
-+        <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
-+        <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
-+        <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
-+        <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
-+    </enums>
-+
-+    <!-- The default ("API") enum namespace starts here. While some
-+         assigned values may overlap, and different parts of the
-+         namespace are reserved for different purposes, it is a single
-+         namespace. The "class" attribute indicates some of the reserved
-+         purposes but is by no means complete (and cannot be, since many
-+         tokens are reused for different purposes in different
-+         extensions and API versions). -->
-+
-+    <enums namespace="EGL" start="0x0000" end="0x2FFF" vendor="ARB"/>
-+
-+    <enums namespace="EGL" group="Boolean" vendor="ARB">
-+        <enum value="0" name="EGL_FALSE"/>
-+        <enum value="1" name="EGL_TRUE"/>
-+    </enums>
-+
-+    <enums namespace="EGL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
-+        <enum value="((EGLint)-1)" name="EGL_DONT_CARE"/>
-+        <enum value="((EGLint)-1)" name="EGL_UNKNOWN"/>
-+        <enum value="-1" name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
-+        <enum value="0" name="EGL_DEPTH_ENCODING_NONE_NV"/>
-+        <enum value="((EGLContext)0)" name="EGL_NO_CONTEXT"/>
-+        <enum value="((EGLDeviceEXT)(0))" name="EGL_NO_DEVICE_EXT"/>
-+        <enum value="((EGLDisplay)0)" name="EGL_NO_DISPLAY"/>
-+        <enum value="((EGLImage)0)" name="EGL_NO_IMAGE"/>
-+        <enum value="((EGLImageKHR)0)" name="EGL_NO_IMAGE_KHR"/>
-+        <enum value="((EGLNativeDisplayType)0)" name="EGL_DEFAULT_DISPLAY"/>
-+        <enum value="((EGLNativeFileDescriptorKHR)(-1))" name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
-+        <enum value="((EGLOutputLayerEXT)0)" name="EGL_NO_OUTPUT_LAYER_EXT"/>
-+        <enum value="((EGLOutputPortEXT)0)" name="EGL_NO_OUTPUT_PORT_EXT"/>
-+        <enum value="((EGLStreamKHR)0)" name="EGL_NO_STREAM_KHR"/>
-+        <enum value="((EGLSurface)0)" name="EGL_NO_SURFACE"/>
-+        <enum value="((EGLSync)0)" name="EGL_NO_SYNC"/>
-+        <enum value="((EGLSyncKHR)0)" name="EGL_NO_SYNC_KHR" alias="EGL_NO_SYNC"/>
-+        <enum value="((EGLSyncNV)0)" name="EGL_NO_SYNC_NV" alias="EGL_NO_SYNC"/>
-+        <enum value="10000" name="EGL_DISPLAY_SCALING"/>
-+        <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER" type="ull"/>
-+        <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_KHR" type="ull" alias="EGL_FOREVER"/>
-+        <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_NV" type="ull" alias="EGL_FOREVER"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3000" end="0x305F" vendor="KHR">
-+        <enum value="0x3000" name="EGL_SUCCESS"/>
-+        <enum value="0x3001" name="EGL_NOT_INITIALIZED"/>
-+        <enum value="0x3002" name="EGL_BAD_ACCESS"/>
-+        <enum value="0x3003" name="EGL_BAD_ALLOC"/>
-+        <enum value="0x3004" name="EGL_BAD_ATTRIBUTE"/>
-+        <enum value="0x3005" name="EGL_BAD_CONFIG"/>
-+        <enum value="0x3006" name="EGL_BAD_CONTEXT"/>
-+        <enum value="0x3007" name="EGL_BAD_CURRENT_SURFACE"/>
-+        <enum value="0x3008" name="EGL_BAD_DISPLAY"/>
-+        <enum value="0x3009" name="EGL_BAD_MATCH"/>
-+        <enum value="0x300A" name="EGL_BAD_NATIVE_PIXMAP"/>
-+        <enum value="0x300B" name="EGL_BAD_NATIVE_WINDOW"/>
-+        <enum value="0x300C" name="EGL_BAD_PARAMETER"/>
-+        <enum value="0x300D" name="EGL_BAD_SURFACE"/>
-+        <enum value="0x300E" name="EGL_CONTEXT_LOST"/>
-+            <unused start="0x300F" end="0x301F" comment="for additional errors"/>
-+        <enum value="0x3020" name="EGL_BUFFER_SIZE"/>
-+        <enum value="0x3021" name="EGL_ALPHA_SIZE"/>
-+        <enum value="0x3022" name="EGL_BLUE_SIZE"/>
-+        <enum value="0x3023" name="EGL_GREEN_SIZE"/>
-+        <enum value="0x3024" name="EGL_RED_SIZE"/>
-+        <enum value="0x3025" name="EGL_DEPTH_SIZE"/>
-+        <enum value="0x3026" name="EGL_STENCIL_SIZE"/>
-+        <enum value="0x3027" name="EGL_CONFIG_CAVEAT"/>
-+        <enum value="0x3028" name="EGL_CONFIG_ID"/>
-+        <enum value="0x3029" name="EGL_LEVEL"/>
-+        <enum value="0x302A" name="EGL_MAX_PBUFFER_HEIGHT"/>
-+        <enum value="0x302B" name="EGL_MAX_PBUFFER_PIXELS"/>
-+        <enum value="0x302C" name="EGL_MAX_PBUFFER_WIDTH"/>
-+        <enum value="0x302D" name="EGL_NATIVE_RENDERABLE"/>
-+        <enum value="0x302E" name="EGL_NATIVE_VISUAL_ID"/>
-+        <enum value="0x302F" name="EGL_NATIVE_VISUAL_TYPE"/>
-+        <enum value="0x3031" name="EGL_SAMPLES"/>
-+        <enum value="0x3032" name="EGL_SAMPLE_BUFFERS"/>
-+        <enum value="0x3033" name="EGL_SURFACE_TYPE"/>
-+        <enum value="0x3034" name="EGL_TRANSPARENT_TYPE"/>
-+        <enum value="0x3035" name="EGL_TRANSPARENT_BLUE_VALUE"/>
-+        <enum value="0x3036" name="EGL_TRANSPARENT_GREEN_VALUE"/>
-+        <enum value="0x3037" name="EGL_TRANSPARENT_RED_VALUE"/>
-+        <enum value="0x3038" name="EGL_NONE" comment="Attribute list terminator"/>
-+        <enum value="0x3039" name="EGL_BIND_TO_TEXTURE_RGB"/>
-+        <enum value="0x303A" name="EGL_BIND_TO_TEXTURE_RGBA"/>
-+        <enum value="0x303B" name="EGL_MIN_SWAP_INTERVAL"/>
-+        <enum value="0x303C" name="EGL_MAX_SWAP_INTERVAL"/>
-+        <enum value="0x303D" name="EGL_LUMINANCE_SIZE"/>
-+        <enum value="0x303E" name="EGL_ALPHA_MASK_SIZE"/>
-+        <enum value="0x303F" name="EGL_COLOR_BUFFER_TYPE"/>
-+        <enum value="0x3040" name="EGL_RENDERABLE_TYPE"/>
-+        <enum value="0x3041" name="EGL_MATCH_NATIVE_PIXMAP"/>
-+        <enum value="0x3042" name="EGL_CONFORMANT"/>
-+        <enum value="0x3042" name="EGL_CONFORMANT_KHR"/>
-+        <enum value="0x3043" name="EGL_MATCH_FORMAT_KHR"/>
-+            <unused start="0x3044" end="0x304F" comment="for additional config attributes"/>
-+        <enum value="0x3050" name="EGL_SLOW_CONFIG"/>
-+        <enum value="0x3051" name="EGL_NON_CONFORMANT_CONFIG"/>
-+        <enum value="0x3052" name="EGL_TRANSPARENT_RGB"/>
-+        <enum value="0x3053" name="EGL_VENDOR"/>
-+        <enum value="0x3054" name="EGL_VERSION"/>
-+        <enum value="0x3055" name="EGL_EXTENSIONS"/>
-+        <enum value="0x3056" name="EGL_HEIGHT"/>
-+        <enum value="0x3057" name="EGL_WIDTH"/>
-+        <enum value="0x3058" name="EGL_LARGEST_PBUFFER"/>
-+        <enum value="0x3059" name="EGL_DRAW"/>
-+        <enum value="0x305A" name="EGL_READ"/>
-+        <enum value="0x305B" name="EGL_CORE_NATIVE_ENGINE"/>
-+        <enum value="0x305C" name="EGL_NO_TEXTURE"/>
-+        <enum value="0x305D" name="EGL_TEXTURE_RGB"/>
-+        <enum value="0x305E" name="EGL_TEXTURE_RGBA"/>
-+        <enum value="0x305F" name="EGL_TEXTURE_2D"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3060-0x306F" vendor="TAO" comment="Reserved for Phil Huxley">
-+        <unused start="0x3060" end="0x306F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3070-0x307F" vendor="NOK" comment="Reserved for Jani Vaarala">
-+        <unused start="0x3070" end="0x307E"/>
-+        <enum value="0x307F" name="EGL_Y_INVERTED_NOK"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3080-0x30AF" vendor="KHR">
-+        <enum value="0x3080" name="EGL_TEXTURE_FORMAT"/>
-+        <enum value="0x3081" name="EGL_TEXTURE_TARGET"/>
-+        <enum value="0x3082" name="EGL_MIPMAP_TEXTURE"/>
-+        <enum value="0x3083" name="EGL_MIPMAP_LEVEL"/>
-+        <enum value="0x3084" name="EGL_BACK_BUFFER"/>
-+        <enum value="0x3085" name="EGL_SINGLE_BUFFER"/>
-+        <enum value="0x3086" name="EGL_RENDER_BUFFER"/>
-+        <enum value="0x3087" name="EGL_COLORSPACE" alias="EGL_VG_COLORSPACE"/>
-+        <enum value="0x3087" name="EGL_VG_COLORSPACE"/>
-+        <enum value="0x3088" name="EGL_ALPHA_FORMAT" alias="EGL_VG_ALPHA_FORMAT"/>
-+        <enum value="0x3088" name="EGL_VG_ALPHA_FORMAT"/>
-+        <enum value="0x3089" name="EGL_COLORSPACE_sRGB"/>
-+        <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB" alias="EGL_COLORSPACE_sRGB"/>
-+        <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB_KHR" alias="EGL_COLORSPACE_sRGB"/>
-+        <enum value="0x3089" name="EGL_VG_COLORSPACE_sRGB" alias="EGL_COLORSPACE_sRGB"/>
-+        <enum value="0x308A" name="EGL_COLORSPACE_LINEAR"/>
-+        <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
-+        <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR_KHR" alias="EGL_COLORSPACE_LINEAR"/>
-+        <enum value="0x308A" name="EGL_VG_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
-+        <enum value="0x308B" name="EGL_ALPHA_FORMAT_NONPRE" alias="EGL_VG_ALPHA_FORMAT_NONPRE"/>
-+        <enum value="0x308B" name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
-+        <enum value="0x308C" name="EGL_ALPHA_FORMAT_PRE" alias="EGL_VG_ALPHA_FORMAT_PRE"/>
-+        <enum value="0x308C" name="EGL_VG_ALPHA_FORMAT_PRE"/>
-+        <enum value="0x308D" name="EGL_CLIENT_APIS"/>
-+        <enum value="0x308E" name="EGL_RGB_BUFFER"/>
-+        <enum value="0x308F" name="EGL_LUMINANCE_BUFFER"/>
-+        <enum value="0x3090" name="EGL_HORIZONTAL_RESOLUTION"/>
-+        <enum value="0x3091" name="EGL_VERTICAL_RESOLUTION"/>
-+        <enum value="0x3092" name="EGL_PIXEL_ASPECT_RATIO"/>
-+        <enum value="0x3093" name="EGL_SWAP_BEHAVIOR"/>
-+        <enum value="0x3094" name="EGL_BUFFER_PRESERVED"/>
-+        <enum value="0x3095" name="EGL_BUFFER_DESTROYED"/>
-+        <enum value="0x3096" name="EGL_OPENVG_IMAGE"/>
-+        <enum value="0x3097" name="EGL_CONTEXT_CLIENT_TYPE"/>
-+        <enum value="0x3098" name="EGL_CONTEXT_CLIENT_VERSION"/>
-+        <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION" alias="EGL_CONTEXT_CLIENT_VERSION"/>
-+        <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION_KHR" alias="EGL_CONTEXT_CLIENT_VERSION"/>
-+        <enum value="0x3099" name="EGL_MULTISAMPLE_RESOLVE"/>
-+        <enum value="0x309A" name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
-+        <enum value="0x309B" name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
-+        <enum value="0x309C" name="EGL_CL_EVENT_HANDLE"/>
-+        <enum value="0x309C" name="EGL_CL_EVENT_HANDLE_KHR" alias="EGL_CL_EVENT_HANDLE"/>
-+        <enum value="0x309D" name="EGL_GL_COLORSPACE"/>
-+        <enum value="0x309D" name="EGL_GL_COLORSPACE_KHR" alias="EGL_GL_COLORSPACE"/>
-+            <unused start="0x309E" end="0x309F"/>
-+        <enum value="0x30A0" name="EGL_OPENGL_ES_API"/>
-+        <enum value="0x30A1" name="EGL_OPENVG_API"/>
-+        <enum value="0x30A2" name="EGL_OPENGL_API"/>
-+            <unused start="0x30A3" end="0x30AF" comment="for additional client API names"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x30B0-0x30BF" vendor="NV" comment="Reserved for Ignacio Llamas">
-+        <enum value="0x30B0" name="EGL_NATIVE_PIXMAP_KHR"/>
-+        <enum value="0x30B1" name="EGL_GL_TEXTURE_2D"/>
-+        <enum value="0x30B1" name="EGL_GL_TEXTURE_2D_KHR" alias="EGL_GL_TEXTURE_2D"/>
-+        <enum value="0x30B2" name="EGL_GL_TEXTURE_3D"/>
-+        <enum value="0x30B2" name="EGL_GL_TEXTURE_3D_KHR" alias="EGL_GL_TEXTURE_3D"/>
-+        <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
-+        <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
-+        <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
-+        <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
-+        <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
-+        <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
-+        <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
-+        <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
-+        <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
-+        <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
-+        <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
-+        <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
-+        <enum value="0x30B9" name="EGL_GL_RENDERBUFFER"/>
-+        <enum value="0x30B9" name="EGL_GL_RENDERBUFFER_KHR" alias="EGL_GL_RENDERBUFFER"/>
-+        <enum value="0x30BA" name="EGL_VG_PARENT_IMAGE_KHR"/>
-+        <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL"/>
-+        <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL_KHR" alias="EGL_GL_TEXTURE_LEVEL"/>
-+        <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET"/>
-+        <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET_KHR" alias="EGL_GL_TEXTURE_ZOFFSET"/>
-+        <enum value="0x30BE" name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
-+        <enum value="0x30BF" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT" alias="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x30C0-0x30CF" vendor="KHR">
-+        <enum value="0x30C0" name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
-+        <enum value="0x30C1" name="EGL_FORMAT_RGB_565_KHR"/>
-+        <enum value="0x30C2" name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
-+        <enum value="0x30C3" name="EGL_FORMAT_RGBA_8888_KHR"/>
-+        <enum value="0x30C4" name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
-+        <enum value="0x30C5" name="EGL_LOCK_USAGE_HINT_KHR"/>
-+        <enum value="0x30C6" name="EGL_BITMAP_POINTER_KHR"/>
-+        <enum value="0x30C7" name="EGL_BITMAP_PITCH_KHR"/>
-+        <enum value="0x30C8" name="EGL_BITMAP_ORIGIN_KHR"/>
-+        <enum value="0x30C9" name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
-+        <enum value="0x30CA" name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
-+        <enum value="0x30CB" name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
-+        <enum value="0x30CC" name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
-+        <enum value="0x30CD" name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
-+        <enum value="0x30CE" name="EGL_LOWER_LEFT_KHR"/>
-+        <enum value="0x30CF" name="EGL_UPPER_LEFT_KHR"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x30D0" end="0x30DF" vendor="Symbian" comment="Reserved for Robert Palmer (bug #2545)">
-+            <unused start="0x30D0" end="0x30D1"/>
-+        <enum value="0x30D2" name="EGL_IMAGE_PRESERVED"/>
-+        <enum value="0x30D2" name="EGL_IMAGE_PRESERVED_KHR"/>
-+            <unused start="0x30D3" end="0x30D9"/>
-+        <enum value="0x30DA" name="EGL_SHARED_IMAGE_NOK" comment="Unreleased extension"/>
-+            <unused start="0x30DB" end="0x30DF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x30E0" end="0x30EF" vendor="NV" comment="Reserved for Russell Pflughaupt (bug #3314)">
-+        <enum value="0x30E0" name="EGL_COVERAGE_BUFFERS_NV"/>
-+        <enum value="0x30E1" name="EGL_COVERAGE_SAMPLES_NV"/>
-+        <enum value="0x30E2" name="EGL_DEPTH_ENCODING_NV"/>
-+        <enum value="0x30E3" name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
-+            <unused start="0x30E4" end="0x30E5"/>
-+        <enum value="0x30E6" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
-+        <enum value="0x30E7" name="EGL_SYNC_STATUS_NV"/>
-+        <enum value="0x30E8" name="EGL_SIGNALED_NV"/>
-+        <enum value="0x30E9" name="EGL_UNSIGNALED_NV"/>
-+        <enum value="0x30EA" name="EGL_ALREADY_SIGNALED_NV"/>
-+        <enum value="0x30EB" name="EGL_TIMEOUT_EXPIRED_NV"/>
-+        <enum value="0x30EC" name="EGL_CONDITION_SATISFIED_NV"/>
-+        <enum value="0x30ED" name="EGL_SYNC_TYPE_NV"/>
-+        <enum value="0x30EE" name="EGL_SYNC_CONDITION_NV"/>
-+        <enum value="0x30EF" name="EGL_SYNC_FENCE_NV"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x30F0" end="0x30FF" vendor="KHR">
-+        <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
-+        <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR" alias="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
-+        <enum value="0x30F1" name="EGL_SYNC_STATUS"/>
-+        <enum value="0x30F1" name="EGL_SYNC_STATUS_KHR" alias="EGL_SYNC_STATUS"/>
-+        <enum value="0x30F2" name="EGL_SIGNALED"/>
-+        <enum value="0x30F2" name="EGL_SIGNALED_KHR" alias="EGL_SIGNALED"/>
-+        <enum value="0x30F3" name="EGL_UNSIGNALED"/>
-+        <enum value="0x30F3" name="EGL_UNSIGNALED_KHR" alias="EGL_UNSIGNALED"/>
-+        <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED"/>
-+        <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED_KHR" alias="EGL_TIMEOUT_EXPIRED"/>
-+        <enum value="0x30F6" name="EGL_CONDITION_SATISFIED"/>
-+        <enum value="0x30F6" name="EGL_CONDITION_SATISFIED_KHR" alias="EGL_CONDITION_SATISFIED"/>
-+        <enum value="0x30F7" name="EGL_SYNC_TYPE"/>
-+        <enum value="0x30F7" name="EGL_SYNC_TYPE_KHR" alias="EGL_SYNC_TYPE"/>
-+        <enum value="0x30F8" name="EGL_SYNC_CONDITION"/>
-+        <enum value="0x30F8" name="EGL_SYNC_CONDITION_KHR" alias="EGL_SYNC_CONDITION"/>
-+        <enum value="0x30F9" name="EGL_SYNC_FENCE"/>
-+        <enum value="0x30F9" name="EGL_SYNC_FENCE_KHR" alias="EGL_SYNC_FENCE"/>
-+        <enum value="0x30FA" name="EGL_SYNC_REUSABLE_KHR"/>
-+        <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION"/>
-+        <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION_KHR" alias="EGL_CONTEXT_MINOR_VERSION"/>
-+        <enum value="0x30FC" name="EGL_CONTEXT_FLAGS_KHR"/>
-+        <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
-+        <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR" alias="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
-+        <enum value="0x30FE" name="EGL_SYNC_CL_EVENT"/>
-+        <enum value="0x30FE" name="EGL_SYNC_CL_EVENT_KHR" alias="EGL_SYNC_CL_EVENT"/>
-+        <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE"/>
-+        <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE_KHR" alias="EGL_SYNC_CL_EVENT_COMPLETE"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3100" end="0x310F" vendor="IMG" comment="Reserved for Ben Bowman (Khronos bug 4748)">
-+        <enum value="0x3100" name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
-+        <enum value="0x3101" name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
-+        <enum value="0x3102" name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
-+        <enum value="0x3103" name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
-+            <unused start="0x3104" end="0x310F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3110" end="0x311F" vendor="ATX" comment="Reserved for Tim Renouf, Antix (Khronos bug 4949)">
-+        <enum value="0x3110" name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
-+            <unused start="0x3111" end="0x311F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3120" end="0x312F" vendor="AMD" comment="Reserved for David Garcia (Khronos bug 5149)">
-+            <unused start="0x3120" end="0x312F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3130" end="0x313F" vendor="NV" comment="Reserved for Greg Prisament (Khronos bug 5166)">
-+            <unused start="0x3130"/>
-+        <enum value="0x3131" name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
-+        <enum value="0x3132" name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
-+        <enum value="0x3133" name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
-+        <enum value="0x3134" name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
-+            <unused start="0x3135"/>
-+        <enum value="0x3136" name="EGL_AUTO_STEREO_NV"/>
-+            <unused start="0x3137"/>
-+        <enum value="0x3138" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
-+            <unused start="0x3139" end="0x313C"/>
-+        <enum value="0x313D" name="EGL_BUFFER_AGE_KHR"/>
-+        <enum value="0x313D" name="EGL_BUFFER_AGE_EXT" alias="EGL_BUFFER_AGE_KHR"/>
-+            <unused start="0x313E" end="0x313F"/>
-+        <enum value="0x313F" name="EGL_PLATFORM_DEVICE_EXT"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3140" end="0x314F" vendor="Google" comment="Reserved for Mathias Agopian (Khronos bug 5199)">
-+        <enum value="0x3140" name="EGL_NATIVE_BUFFER_ANDROID"/>
-+        <enum value="0x3141" name="EGL_PLATFORM_ANDROID_KHR"/>
-+        <enum value="0x3142" name="EGL_RECORDABLE_ANDROID"/>
-+            <unused start="0x3143"/>
-+        <enum value="0x3144" name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
-+        <enum value="0x3145" name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
-+        <enum value="0x3146" name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
-+        <enum value="0x3147" name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
-+            <unused start="0x3148" end="0x314F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3150" end="0x315F" vendor="NOK" comment="Reserved for Robert Palmer (Khronos bug 5368)">
-+            <unused start="0x3150" end="0x315F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3160" end="0x316F" vendor="Seaweed" comment="Reserved for Sree Sridharan (Khronos public bug 198)">
-+            <unused start="0x3160" end="0x316F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3170" end="0x318F" vendor="QNX" comment="Reserved for Joel Pilon (Khronos bug 5834)">
-+            <unused start="0x3170" end="0x318F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3190" end="0x31AF" vendor="FSL" comment="Reserved for Brian Murray, Freescale (Khronos bug 5939)">
-+            <unused start="0x3190" end="0x31AF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x31B0" end="0x31BF" vendor="KHR" comment="Reserved for Marcus Lorentzon (Khronos bug 6437)">
-+        <enum value="0x31B0" name="EGL_CONTEXT_OPENGL_DEBUG"/>
-+        <enum value="0x31B1" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
-+        <enum value="0x31B2" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
-+        <enum value="0x31B3" name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
-+            <unused start="0x31B4" end="0x31BC" comment="0x31B3-0x31BC formerly reserved for EGL_image_stream"/>
-+        <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR" alias="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
-+        <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
-+        <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION"/>
-+        <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_KHR" alias="EGL_NO_RESET_NOTIFICATION"/>
-+        <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_EXT" alias="EGL_NO_RESET_NOTIFICATION"/>
-+        <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET"/>
-+        <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_KHR" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
-+        <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_EXT" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x31C0" end="0x31CF" vendor="QCOM" comment="Reserved for Maurice Ribble (Khronos bug 6644) - EGL_QCOM_create_image spec TBD">
-+            <unused start="0x31C0" end="0x31CF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x31D0" end="0x31DF" vendor="MESA" comment="Reserved for Kristian H&#248;gsberg (Khronos bug 6757)">
-+        <enum value="0x31D0" name="EGL_DRM_BUFFER_FORMAT_MESA"/>
-+        <enum value="0x31D1" name="EGL_DRM_BUFFER_USE_MESA"/>
-+        <enum value="0x31D2" name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
-+        <enum value="0x31D3" name="EGL_DRM_BUFFER_MESA"/>
-+        <enum value="0x31D4" name="EGL_DRM_BUFFER_STRIDE_MESA"/>
-+        <enum value="0x31D5" name="EGL_PLATFORM_X11_KHR"/>
-+        <enum value="0x31D5" name="EGL_PLATFORM_X11_EXT" alias="EGL_PLATFORM_X11_KHR"/>
-+        <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_KHR"/>
-+        <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_EXT" alias="EGL_PLATFORM_X11_SCREEN_KHR"/>
-+        <enum value="0x31D7" name="EGL_PLATFORM_GBM_KHR"/>
-+        <enum value="0x31D7" name="EGL_PLATFORM_GBM_MESA" alias="EGL_PLATFORM_GBM_KHR"/>
-+        <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_KHR"/>
-+        <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_EXT" alias="EGL_PLATFORM_WAYLAND_KHR"/>
-+            <unused start="0x31D9" end="0x31DF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x31E0" end="0x31EF" vendor="HI" comment="Reserved for Mark Callow (Khronos bug 6799)">
-+            <unused start="0x31E0" end="0x31EF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x31F0" end="0x31FF" vendor="KHR">
-+            <unused start="0x31F0" end="0x31FB" comment="Placeholders for draft extensions follow"/>
-+        <!--
-+            <enum value="0x31F0" name="EGL_IMAGE_USE_AS_OPENGL_ES1_RENDERBUFFER_KHR"        comment="Draft KHR_image_use_gl1_renderbuffer"/>
-+            <enum value="0x31F1" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_2D_KHR"          comment="Draft KHR_image_use_gl1_texture_2d"/>
-+            <enum value="0x31F2" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_EXTERNAL_KHR"    comment="Draft KHR_image_use_gl1_texture_external"/>
-+            <enum value="0x31F3" name="EGL_IMAGE_USE_AS_OPENGL_ES2_RENDERBUFFER_KHR"        comment="Draft KHR_image_use_gl2_renderbuffer"/>
-+            <enum value="0x31F4" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_2D_KHR"          comment="Draft KHR_image_use_gl2_texture_2d"/>
-+            <enum value="0x31F5" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_EXTERNAL_KHR"    comment="Draft KHR_image_use_gl2_texture_external"/>
-+            <enum value="0x31F6" name="EGL_IMAGE_USE_AS_OPENVG_IMAGE_KHR"                   comment="Draft KHR_image_use_vg_vgimage"/>
-+            <enum value="0x31F7" name="EGL_STREAM_CONSUMER_ATTACHMENT_MESA"                 comment="Draft EGL_MESA_image_stream_internal"/>
-+            <enum value="0x31F8" name="EGL_NO_FORMAT_MESA"                                  comment="Draft EGL_MESA_image_stream_internal"/>
-+            <enum value="0x31F9" name="EGL_FORMAT_RGBA8888_MESA"                            comment="Draft EGL_MESA_image_stream_internal"/>
-+            <enum value="0x31FA" name="EGL_FORMAT_RGB888_MESA"                              comment="Draft EGL_MESA_image_stream_internal"/>
-+            <enum value="0x31FB" name="EGL_FORMAT_RGB565_MESA"                              comment="Draft EGL_MESA_image_stream_internal"/>
-+        -->
-+        <enum value="0x31FC" name="EGL_STREAM_FIFO_LENGTH_KHR"/>
-+        <enum value="0x31FD" name="EGL_STREAM_TIME_NOW_KHR"/>
-+        <enum value="0x31FE" name="EGL_STREAM_TIME_CONSUMER_KHR"/>
-+        <enum value="0x31FF" name="EGL_STREAM_TIME_PRODUCER_KHR"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3200" end="0x320F" vendor="ANGLE" comment="Reserved for Daniel Koch, ANGLE Project (Khronos bug 7139)">
-+        <enum value="0x3200" name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
-+        <enum value="0x3201" name="EGL_FIXED_SIZE_ANGLE"/>
-+            <unused start="0x3202" end="0x320F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3210" end="0x321F" vendor="KHR">
-+        <enum value="0x3210" name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
-+            <unused start="0x3211"/>
-+        <enum value="0x3212" name="EGL_PRODUCER_FRAME_KHR"/>
-+        <enum value="0x3213" name="EGL_CONSUMER_FRAME_KHR"/>
-+        <enum value="0x3214" name="EGL_STREAM_STATE_KHR"/>
-+        <enum value="0x3215" name="EGL_STREAM_STATE_CREATED_KHR"/>
-+        <enum value="0x3216" name="EGL_STREAM_STATE_CONNECTING_KHR"/>
-+        <enum value="0x3217" name="EGL_STREAM_STATE_EMPTY_KHR"/>
-+        <enum value="0x3218" name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
-+        <enum value="0x3219" name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
-+        <enum value="0x321A" name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
-+        <enum value="0x321B" name="EGL_BAD_STREAM_KHR"/>
-+        <enum value="0x321C" name="EGL_BAD_STATE_KHR"/>
-+        <enum value="0x321D" name="EGL_BUFFER_COUNT_NV" comment="From EGL_NV_stream_producer_eglsurface, which has no known specification and was replaced by a KHR extension"/>
-+        <enum value="0x321E" name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
-+        <enum value="0x321F" name="EGL_SYNC_NEW_FRAME_NV"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3220" end="0x325F" vendor="NV" comment="Reserved for Greg Roth (Bug 8220)">
-+            <unused start="0x3220" end="0x322A"/>
-+        <enum value="0x322B" name="EGL_BAD_DEVICE_EXT"/>
-+        <enum value="0x322C" name="EGL_DEVICE_EXT"/>
-+        <enum value="0x322D" name="EGL_BAD_OUTPUT_LAYER_EXT"/>
-+        <enum value="0x322E" name="EGL_BAD_OUTPUT_PORT_EXT"/>
-+        <enum value="0x322F" name="EGL_SWAP_INTERVAL_EXT"/>
-+            <unused start="0x3230" end="0x3232"/>
-+        <enum value="0x3233" name="EGL_DRM_DEVICE_FILE_EXT"/>
-+        <enum value="0x3234" name="EGL_DRM_CRTC_EXT"/>
-+        <enum value="0x3235" name="EGL_DRM_PLANE_EXT"/>
-+        <enum value="0x3236" name="EGL_DRM_CONNECTOR_EXT"/>
-+        <enum value="0x3237" name="EGL_OPENWF_DEVICE_ID_EXT"/>
-+        <enum value="0x3238" name="EGL_OPENWF_PIPELINE_ID_EXT"/>
-+        <enum value="0x3239" name="EGL_OPENWF_PORT_ID_EXT"/>
-+        <enum value="0x323A" name="EGL_CUDA_DEVICE_NV"/>
-+        <enum value="0x323B" name="EGL_CUDA_EVENT_HANDLE_NV"/>
-+        <enum value="0x323C" name="EGL_SYNC_CUDA_EVENT_NV"/>
-+        <enum value="0x323D" name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
-+            <unused start="0x323E" end="0x325F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3260" end="0x326F" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Public bug 620)">
-+            <unused start="0x3260" end="0x326F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3270" end="0x328F" vendor="ARM" comment="Reserved for Tom Cooksey (Bug 9963)">
-+        <enum value="0x3270" name="EGL_LINUX_DMA_BUF_EXT"/>
-+        <enum value="0x3271" name="EGL_LINUX_DRM_FOURCC_EXT"/>
-+        <enum value="0x3272" name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
-+        <enum value="0x3273" name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
-+        <enum value="0x3274" name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
-+        <enum value="0x3275" name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
-+        <enum value="0x3276" name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
-+        <enum value="0x3277" name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
-+        <enum value="0x3278" name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
-+        <enum value="0x3279" name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
-+        <enum value="0x327A" name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
-+        <enum value="0x327B" name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
-+        <enum value="0x327C" name="EGL_SAMPLE_RANGE_HINT_EXT"/>
-+        <enum value="0x327D" name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
-+        <enum value="0x327E" name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
-+        <enum value="0x327F" name="EGL_ITU_REC601_EXT"/>
-+        <enum value="0x3280" name="EGL_ITU_REC709_EXT"/>
-+        <enum value="0x3281" name="EGL_ITU_REC2020_EXT"/>
-+        <enum value="0x3282" name="EGL_YUV_FULL_RANGE_EXT"/>
-+        <enum value="0x3283" name="EGL_YUV_NARROW_RANGE_EXT"/>
-+        <enum value="0x3284" name="EGL_YUV_CHROMA_SITING_0_EXT"/>
-+        <enum value="0x3285" name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
-+        <enum value="0x3286" name="EGL_DISCARD_SAMPLES_ARM"/>
-+            <unused start="0x3287" end="0x328F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3290" end="0x329F" vendor="MESA" comment="Reserved for John K&#229;re Alsaker (Public bug 757)">
-+            <unused start="0x3290" end="0x329F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x32A0" end="0x32AF" vendor="Samsung" comment="Reserved for Dongyeon Kim (Public bug 880)">
-+        <enum value="0x32A0" name="EGL_NATIVE_BUFFER_TIZEN"/>
-+        <enum value="0x32A1" name="EGL_NATIVE_SURFACE_TIZEN"/>
-+            <unused start="0x32A2" end="0x32AF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x32B0" end="0x32BF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 10663) - EGL_QCOM_lock_image spec TBD">
-+            <unused start="0x32B0" end="0x32BF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x32C0" end="0x32CF" vendor="Vivante" comment="Reserved for Yanjun Zhang (Bug 11498)">
-+        <enum value="0x32C0" name="EGL_PROTECTED_CONTENT_EXT"/>
-+            <unused start="0x32C1" end="0x32CF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x32D0" end="0x32EF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 11735) - EGL_QCOM_gpu_perf spec TBD + Bug 12286 - EGL_QCOM_content_protection spec TBD">
-+            <unused start="0x32D0" end="0x32EF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x32F0" end="0x32FF" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Bug 12870)">
-+            <unused start="0x32F0" end="0x32FF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3300" end="0x331F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 12973,12849) - EGL_EXT_yuv_surface spec TBD">
-+        <enum value="0x3300" name="EGL_YUV_BUFFER_EXT"/>
-+        <enum value="0x3301" name="EGL_YUV_ORDER_EXT"/>
-+        <enum value="0x3302" name="EGL_YUV_ORDER_YUV_EXT"/>
-+        <enum value="0x3303" name="EGL_YUV_ORDER_YVU_EXT"/>
-+        <enum value="0x3304" name="EGL_YUV_ORDER_YUYV_EXT"/>
-+        <enum value="0x3305" name="EGL_YUV_ORDER_UYVY_EXT"/>
-+        <enum value="0x3306" name="EGL_YUV_ORDER_YVYU_EXT"/>
-+        <enum value="0x3307" name="EGL_YUV_ORDER_VYUY_EXT"/>
-+        <enum value="0x3308" name="EGL_YUV_ORDER_AYUV_EXT"/>
-+            <unused start="0x3309"/>
-+        <enum value="0x330A" name="EGL_YUV_CSC_STANDARD_EXT"/>
-+        <enum value="0x330B" name="EGL_YUV_CSC_STANDARD_601_EXT"/>
-+        <enum value="0x330C" name="EGL_YUV_CSC_STANDARD_709_EXT"/>
-+        <enum value="0x330D" name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
-+            <unused start="0x330E" end="0x3310"/>
-+        <enum value="0x3311" name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
-+        <enum value="0x3312" name="EGL_YUV_SUBSAMPLE_EXT"/>
-+        <enum value="0x3313" name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
-+        <enum value="0x3314" name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
-+        <enum value="0x3315" name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
-+            <unused start="0x3316"/>
-+        <enum value="0x3317" name="EGL_YUV_DEPTH_RANGE_EXT"/>
-+        <enum value="0x3318" name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
-+        <enum value="0x3319" name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
-+        <enum value="0x331A" name="EGL_YUV_PLANE_BPP_EXT"/>
-+        <enum value="0x331B" name="EGL_YUV_PLANE_BPP_0_EXT"/>
-+        <enum value="0x331C" name="EGL_YUV_PLANE_BPP_8_EXT"/>
-+        <enum value="0x331D" name="EGL_YUV_PLANE_BPP_10_EXT"/>
-+            <unused start="0x331E" end="0x331F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x3320" end="0x339F" vendor="NV" comment="Reserved for James Jones (Bug 13209)">
-+            <unused start="0x3320" end="0x339F"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x33A0" end="0x33AF" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 13175)">
-+        <enum value="0x33A0" name="EGL_D3D9_DEVICE_ANGLE"/>
-+        <enum value="0x33A1" name="EGL_D3D11_DEVICE_ANGLE"/>
-+            <unused start="0x33A2" end="0x33AF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x33B0" end="0x33BF" vendor="KHR" comment="Reserved for EGL_KHR_debug / Jeff Vigil (Bug 13357)">
-+        <enum value="0x33B0" name="EGL_OBJECT_THREAD_KHR"/>
-+        <enum value="0x33B1" name="EGL_OBJECT_DISPLAY_KHR"/>
-+        <enum value="0x33B2" name="EGL_OBJECT_CONTEXT_KHR"/>
-+        <enum value="0x33B3" name="EGL_OBJECT_SURFACE_KHR"/>
-+        <enum value="0x33B4" name="EGL_OBJECT_IMAGE_KHR"/>
-+        <enum value="0x33B5" name="EGL_OBJECT_SYNC_KHR"/>
-+        <enum value="0x33B6" name="EGL_OBJECT_STREAM_KHR"/>
-+            <unused start="0x33B7"/>
-+        <enum value="0x33B8" name="EGL_DEBUG_CALLBACK_KHR"/>
-+        <enum value="0x33B9" name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
-+        <enum value="0x33BA" name="EGL_DEBUG_MSG_ERROR_KHR"/>
-+        <enum value="0x33BB" name="EGL_DEBUG_MSG_WARN_KHR"/>
-+        <enum value="0x33BC" name="EGL_DEBUG_MSG_INFO_KHR"/>
-+            <unused start="0x33BD" end="0x33BF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x33C0" end="0x33DF" vendor="BCOM" comment="Reserved for Gary Sweet (Bug 12203)">
-+            <unused start="0x33C0" end="0x33DF"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x33E0" end="0x342F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 10663,13364)">
-+            <unused start="0x33E0" end="0x342F"/>
-+    </enums>
-+
-+<!-- Please remember that new enumerant allocations must be obtained by
-+     request to the Khronos API registrar (see comments at the top of this
-+     file) File requests in the Khronos Bugzilla, EGL project, Registry
-+     component. Also note that some EGL enum values are shared with other
-+     Khronos APIs, and new ranges should be allocated with such overlaps in
-+     mind. -->
-+
-+<!-- 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="0x3420" end="0x3FFF" vendor="KHR">
-+            <unused start="0x3420" end="0x3FFF" comment="Reserved for future use"/>
-+    </enums>
-+
-+    <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL.">
-+        <enum value="0x8F70" name="EGL_COLOR_FORMAT_HI"/>
-+        <enum value="0x8F71" name="EGL_COLOR_RGB_HI"/>
-+        <enum value="0x8F72" name="EGL_COLOR_RGBA_HI"/>
-+        <enum value="0x8F73" name="EGL_COLOR_ARGB_HI"/>
-+        <enum value="0x8F74" name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
-+    </enums>
-+
-+    <!-- SECTION: EGL command definitions. -->
-+    <commands namespace="EGL">
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglBindAPI</name></proto>
-+            <param><ptype>EGLenum</ptype> <name>api</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglBindTexImage</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>buffer</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglChooseConfig</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+            <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
-+            <param><ptype>EGLint</ptype> <name>config_size</name></param>
-+            <param><ptype>EGLint</ptype> *<name>num_config</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglClientWaitSync</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSync</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>flags</name></param>
-+            <param><ptype>EGLTime</ptype> <name>timeout</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>flags</name></param>
-+            <param><ptype>EGLTimeKHR</ptype> <name>timeout</name></param>
-+            <alias name="eglClientWaitSync"/>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncNV</name></proto>
-+            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>flags</name></param>
-+            <param><ptype>EGLTimeNV</ptype> <name>timeout</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglCopyBuffers</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLNativePixmapType</ptype> <name>target</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLContext</ptype> <name>eglCreateContext</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param><ptype>EGLContext</ptype> <name>share_context</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLImageKHR</ptype> <name>eglCreateDRMImageMESA</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSyncNV</ptype> <name>eglCreateFenceSyncNV</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLenum</ptype> <name>condition</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLImage</ptype> <name>eglCreateImage</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
-+            <param><ptype>EGLenum</ptype> <name>target</name></param>
-+            <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLImageKHR</ptype> <name>eglCreateImageKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
-+            <param><ptype>EGLenum</ptype> <name>target</name></param>
-+            <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferFromClientBuffer</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLenum</ptype> <name>buftype</name></param>
-+            <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferSurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param><ptype>EGLNativePixmapType</ptype> <name>pixmap</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurfaceHI</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>struct <ptype>EGLClientPixmapHI</ptype> *<name>pixmap</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>void *<name>native_pixmap</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurfaceEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>void *<name>native_pixmap</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>void *<name>native_window</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurfaceEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param>void *<name>native_window</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamFromFileDescriptorKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLNativeFileDescriptorKHR</ptype> <name>file_descriptor</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreateStreamProducerSurfaceKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateStreamSyncNV</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param><ptype>EGLenum</ptype> <name>type</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSync</ptype> <name>eglCreateSync</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLenum</ptype> <name>type</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSyncKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLenum</ptype> <name>type</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSync64KHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLenum</ptype> <name>type</name></param>
-+            <param>const <ptype>EGLAttribKHR</ptype> *<name>attrib_list</name></param>
-+            <alias name="eglCreateSync"/>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglCreateWindowSurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param><ptype>EGLNativeWindowType</ptype> <name>win</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglDebugMessageControlKHR</name></proto>
-+            <param><ptype>EGLDEBUGPROCKHR</ptype> <name>callback</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyContext</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImage</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLImage</ptype> <name>image</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImageKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
-+            <alias name="eglDestroyImage"/>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyStreamKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySync</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSync</ptype> <name>sync</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
-+            <alias name="eglDestroySync"/>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncNV</name></proto>
-+            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglDupNativeFenceFDANDROID</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageMESA</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
-+            <param>int *<name>fds</name></param>
-+            <param><ptype>EGLint</ptype> *<name>strides</name></param>
-+            <param><ptype>EGLint</ptype> *<name>offsets</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageQueryMESA</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
-+            <param>int *<name>fourcc</name></param>
-+            <param>int *<name>num_planes</name></param>
-+            <param><ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglExportDRMImageMESA</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
-+            <param><ptype>EGLint</ptype> *<name>name</name></param>
-+            <param><ptype>EGLint</ptype> *<name>handle</name></param>
-+            <param><ptype>EGLint</ptype> *<name>stride</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglFenceNV</name></proto>
-+            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigAttrib</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> <name>config</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigs</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
-+            <param><ptype>EGLint</ptype> <name>config_size</name></param>
-+            <param><ptype>EGLint</ptype> *<name>num_config</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLContext</ptype> <name>eglGetCurrentContext</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLDisplay</ptype> <name>eglGetCurrentDisplay</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLSurface</ptype> <name>eglGetCurrentSurface</name></proto>
-+            <param><ptype>EGLint</ptype> <name>readdraw</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLDisplay</ptype> <name>eglGetDisplay</name></proto>
-+            <param><ptype>EGLNativeDisplayType</ptype> <name>display_id</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglGetError</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputLayersEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+            <param><ptype>EGLOutputLayerEXT</ptype> *<name>layers</name></param>
-+            <param><ptype>EGLint</ptype> <name>max_layers</name></param>
-+            <param><ptype>EGLint</ptype> *<name>num_layers</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputPortsEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+            <param><ptype>EGLOutputPortEXT</ptype> *<name>ports</name></param>
-+            <param><ptype>EGLint</ptype> <name>max_ports</name></param>
-+            <param><ptype>EGLint</ptype> *<name>num_ports</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplay</name></proto>
-+            <param><ptype>EGLenum</ptype> <name>platform</name></param>
-+            <param>void *<name>native_display</name></param>
-+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplayEXT</name></proto>
-+            <param><ptype>EGLenum</ptype> <name>platform</name></param>
-+            <param>void *<name>native_display</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>__eglMustCastToProperFunctionPointerType</ptype> <name>eglGetProcAddress</name></proto>
-+            <param>const char *<name>procname</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLNativeFileDescriptorKHR</ptype> <name>eglGetStreamFileDescriptorKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttrib</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSync</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribNV</name></proto>
-+            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeFrequencyNV</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeNV</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglInitialize</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLint</ptype> *<name>major</name></param>
-+            <param><ptype>EGLint</ptype> *<name>minor</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglLabelObjectKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>display</name></param>
-+            <param><ptype>EGLenum</ptype> <name>objectType</name></param>
-+            <param><ptype>EGLObjectKHR</ptype> <name>object</name></param>
-+            <param><ptype>EGLLabelKHR</ptype> <name>label</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglLockSurfaceKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglMakeCurrent</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>draw</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>read</name></param>
-+            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglOutputLayerAttribEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> <name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglOutputPortAttribEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> <name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglPostSubBufferNV</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>x</name></param>
-+            <param><ptype>EGLint</ptype> <name>y</name></param>
-+            <param><ptype>EGLint</ptype> <name>width</name></param>
-+            <param><ptype>EGLint</ptype> <name>height</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLenum</ptype> <name>eglQueryAPI</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryContext</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDebugKHR</name></proto>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDeviceAttribEXT</name></proto>
-+            <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto>const char *<name>eglQueryDeviceStringEXT</name></proto>
-+            <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
-+            <param><ptype>EGLint</ptype> <name>name</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDevicesEXT</name></proto>
-+            <param><ptype>EGLint</ptype> <name>max_devices</name></param>
-+            <param><ptype>EGLDeviceEXT</ptype> *<name>devices</name></param>
-+            <param><ptype>EGLint</ptype> *<name>num_devices</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeDisplayNV</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLNativeDisplayType</ptype> *<name>display_id</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativePixmapNV</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surf</name></param>
-+            <param><ptype>EGLNativePixmapType</ptype> *<name>pixmap</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeWindowNV</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surf</name></param>
-+            <param><ptype>EGLNativeWindowType</ptype> *<name>window</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputLayerAttribEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto>const char *<name>eglQueryOutputLayerStringEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
-+            <param><ptype>EGLint</ptype> <name>name</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputPortAttribEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto>const char *<name>eglQueryOutputPortStringEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
-+            <param><ptype>EGLint</ptype> <name>name</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamTimeKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLTimeKHR</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamu64KHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLuint64KHR</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto>const char *<name>eglQueryString</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLint</ptype> <name>name</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface64KHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLAttribKHR</ptype> *<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurfacePointerANGLE</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param>void **<name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglReleaseTexImage</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>buffer</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglReleaseThread</name></proto>
-+        </command>
-+        <command>
-+            <proto>void <name>eglSetBlobCacheFuncsANDROID</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSetBlobFuncANDROID</ptype> <name>set</name></param>
-+            <param><ptype>EGLGetBlobFuncANDROID</ptype> <name>get</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSetDamageRegionKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> *<name>rects</name></param>
-+            <param><ptype>EGLint</ptype> <name>n_rects</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
-+            <param><ptype>EGLenum</ptype> <name>mode</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncNV</name></proto>
-+            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
-+            <param><ptype>EGLenum</ptype> <name>mode</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglStreamAttribKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> <name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerAcquireKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerOutputEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerReleaseKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSurfaceAttrib</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint</ptype> <name>value</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffers</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageEXT</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> *<name>rects</name></param>
-+            <param><ptype>EGLint</ptype> <name>n_rects</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> *<name>rects</name></param>
-+            <param><ptype>EGLint</ptype> <name>n_rects</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegionNOK</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>numRects</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegion2NOK</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLint</ptype> <name>numRects</name></param>
-+            <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglSwapInterval</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLint</ptype> <name>interval</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglTerminate</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglUnlockSurfaceKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglWaitClient</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglWaitGL</name></proto>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglWaitNative</name></proto>
-+            <param><ptype>EGLint</ptype> <name>engine</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLBoolean</ptype> <name>eglWaitSync</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSync</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>flags</name></param>
-+        </command>
-+        <command>
-+            <proto><ptype>EGLint</ptype> <name>eglWaitSyncKHR</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
-+            <param><ptype>EGLint</ptype> <name>flags</name></param>
-+        </command>
-+    </commands>
-+
-+    <!-- SECTION: EGL API interface definitions. -->
-+    <feature api="egl" name="EGL_VERSION_1_0" number="1.0">
-+        <require>
-+            <enum name="EGL_ALPHA_SIZE"/>
-+            <enum name="EGL_BAD_ACCESS"/>
-+            <enum name="EGL_BAD_ALLOC"/>
-+            <enum name="EGL_BAD_ATTRIBUTE"/>
-+            <enum name="EGL_BAD_CONFIG"/>
-+            <enum name="EGL_BAD_CONTEXT"/>
-+            <enum name="EGL_BAD_CURRENT_SURFACE"/>
-+            <enum name="EGL_BAD_DISPLAY"/>
-+            <enum name="EGL_BAD_MATCH"/>
-+            <enum name="EGL_BAD_NATIVE_PIXMAP"/>
-+            <enum name="EGL_BAD_NATIVE_WINDOW"/>
-+            <enum name="EGL_BAD_PARAMETER"/>
-+            <enum name="EGL_BAD_SURFACE"/>
-+            <enum name="EGL_BLUE_SIZE"/>
-+            <enum name="EGL_BUFFER_SIZE"/>
-+            <enum name="EGL_CONFIG_CAVEAT"/>
-+            <enum name="EGL_CONFIG_ID"/>
-+            <enum name="EGL_CORE_NATIVE_ENGINE"/>
-+            <enum name="EGL_DEPTH_SIZE"/>
-+            <enum name="EGL_DONT_CARE"/>
-+            <enum name="EGL_DRAW"/>
-+            <enum name="EGL_EXTENSIONS"/>
-+            <enum name="EGL_FALSE"/>
-+            <enum name="EGL_GREEN_SIZE"/>
-+            <enum name="EGL_HEIGHT"/>
-+            <enum name="EGL_LARGEST_PBUFFER"/>
-+            <enum name="EGL_LEVEL"/>
-+            <enum name="EGL_MAX_PBUFFER_HEIGHT"/>
-+            <enum name="EGL_MAX_PBUFFER_PIXELS"/>
-+            <enum name="EGL_MAX_PBUFFER_WIDTH"/>
-+            <enum name="EGL_NATIVE_RENDERABLE"/>
-+            <enum name="EGL_NATIVE_VISUAL_ID"/>
-+            <enum name="EGL_NATIVE_VISUAL_TYPE"/>
-+            <enum name="EGL_NONE"/>
-+            <enum name="EGL_NON_CONFORMANT_CONFIG"/>
-+            <enum name="EGL_NOT_INITIALIZED"/>
-+            <enum name="EGL_NO_CONTEXT"/>
-+            <enum name="EGL_NO_DISPLAY"/>
-+            <enum name="EGL_NO_SURFACE"/>
-+            <enum name="EGL_PBUFFER_BIT"/>
-+            <enum name="EGL_PIXMAP_BIT"/>
-+            <enum name="EGL_READ"/>
-+            <enum name="EGL_RED_SIZE"/>
-+            <enum name="EGL_SAMPLES"/>
-+            <enum name="EGL_SAMPLE_BUFFERS"/>
-+            <enum name="EGL_SLOW_CONFIG"/>
-+            <enum name="EGL_STENCIL_SIZE"/>
-+            <enum name="EGL_SUCCESS"/>
-+            <enum name="EGL_SURFACE_TYPE"/>
-+            <enum name="EGL_TRANSPARENT_BLUE_VALUE"/>
-+            <enum name="EGL_TRANSPARENT_GREEN_VALUE"/>
-+            <enum name="EGL_TRANSPARENT_RED_VALUE"/>
-+            <enum name="EGL_TRANSPARENT_RGB"/>
-+            <enum name="EGL_TRANSPARENT_TYPE"/>
-+            <enum name="EGL_TRUE"/>
-+            <enum name="EGL_VENDOR"/>
-+            <enum name="EGL_VERSION"/>
-+            <enum name="EGL_WIDTH"/>
-+            <enum name="EGL_WINDOW_BIT"/>
-+            <command name="eglChooseConfig"/>
-+            <command name="eglCopyBuffers"/>
-+            <command name="eglCreateContext"/>
-+            <command name="eglCreatePbufferSurface"/>
-+            <command name="eglCreatePixmapSurface"/>
-+            <command name="eglCreateWindowSurface"/>
-+            <command name="eglDestroyContext"/>
-+            <command name="eglDestroySurface"/>
-+            <command name="eglGetConfigAttrib"/>
-+            <command name="eglGetConfigs"/>
-+            <command name="eglGetCurrentDisplay"/>
-+            <command name="eglGetCurrentSurface"/>
-+            <command name="eglGetDisplay"/>
-+            <command name="eglGetError"/>
-+            <command name="eglGetProcAddress"/>
-+            <command name="eglInitialize"/>
-+            <command name="eglMakeCurrent"/>
-+            <command name="eglQueryContext"/>
-+            <command name="eglQueryString"/>
-+            <command name="eglQuerySurface"/>
-+            <command name="eglSwapBuffers"/>
-+            <command name="eglTerminate"/>
-+            <command name="eglWaitGL"/>
-+            <command name="eglWaitNative"/>
-+        </require>
-+    </feature>
-+    <feature api="egl" name="EGL_VERSION_1_1" number="1.1">
-+        <require>
-+            <enum name="EGL_BACK_BUFFER"/>
-+            <enum name="EGL_BIND_TO_TEXTURE_RGB"/>
-+            <enum name="EGL_BIND_TO_TEXTURE_RGBA"/>
-+            <enum name="EGL_CONTEXT_LOST"/>
-+            <enum name="EGL_MIN_SWAP_INTERVAL"/>
-+            <enum name="EGL_MAX_SWAP_INTERVAL"/>
-+            <enum name="EGL_MIPMAP_TEXTURE"/>
-+            <enum name="EGL_MIPMAP_LEVEL"/>
-+            <enum name="EGL_NO_TEXTURE"/>
-+            <enum name="EGL_TEXTURE_2D"/>
-+            <enum name="EGL_TEXTURE_FORMAT"/>
-+            <enum name="EGL_TEXTURE_RGB"/>
-+            <enum name="EGL_TEXTURE_RGBA"/>
-+            <enum name="EGL_TEXTURE_TARGET"/>
-+            <command name="eglBindTexImage"/>
-+            <command name="eglReleaseTexImage"/>
-+            <command name="eglSurfaceAttrib"/>
-+            <command name="eglSwapInterval"/>
-+        </require>
-+    </feature>
-+    <feature api="egl" name="EGL_VERSION_1_2" number="1.2">
-+        <require>
-+            <enum name="EGL_ALPHA_FORMAT"/>
-+            <enum name="EGL_ALPHA_FORMAT_NONPRE"/>
-+            <enum name="EGL_ALPHA_FORMAT_PRE"/>
-+            <enum name="EGL_ALPHA_MASK_SIZE"/>
-+            <enum name="EGL_BUFFER_PRESERVED"/>
-+            <enum name="EGL_BUFFER_DESTROYED"/>
-+            <enum name="EGL_CLIENT_APIS"/>
-+            <enum name="EGL_COLORSPACE"/>
-+            <enum name="EGL_COLORSPACE_sRGB"/>
-+            <enum name="EGL_COLORSPACE_LINEAR"/>
-+            <enum name="EGL_COLOR_BUFFER_TYPE"/>
-+            <enum name="EGL_CONTEXT_CLIENT_TYPE"/>
-+            <enum name="EGL_DISPLAY_SCALING"/>
-+            <enum name="EGL_HORIZONTAL_RESOLUTION"/>
-+            <enum name="EGL_LUMINANCE_BUFFER"/>
-+            <enum name="EGL_LUMINANCE_SIZE"/>
-+            <enum name="EGL_OPENGL_ES_BIT"/>
-+            <enum name="EGL_OPENVG_BIT"/>
-+            <enum name="EGL_OPENGL_ES_API"/>
-+            <enum name="EGL_OPENVG_API"/>
-+            <enum name="EGL_OPENVG_IMAGE"/>
-+            <enum name="EGL_PIXEL_ASPECT_RATIO"/>
-+            <enum name="EGL_RENDERABLE_TYPE"/>
-+            <enum name="EGL_RENDER_BUFFER"/>
-+            <enum name="EGL_RGB_BUFFER"/>
-+            <enum name="EGL_SINGLE_BUFFER"/>
-+            <enum name="EGL_SWAP_BEHAVIOR"/>
-+            <enum name="EGL_UNKNOWN"/>
-+            <enum name="EGL_VERTICAL_RESOLUTION"/>
-+            <command name="eglBindAPI"/>
-+            <command name="eglQueryAPI"/>
-+            <command name="eglCreatePbufferFromClientBuffer"/>
-+            <command name="eglReleaseThread"/>
-+            <command name="eglWaitClient"/>
-+        </require>
-+    </feature>
-+    <feature api="egl" name="EGL_VERSION_1_3" number="1.3">
-+        <require>
-+            <enum name="EGL_CONFORMANT"/>
-+            <enum name="EGL_CONTEXT_CLIENT_VERSION"/>
-+            <enum name="EGL_MATCH_NATIVE_PIXMAP"/>
-+            <enum name="EGL_OPENGL_ES2_BIT"/>
-+            <enum name="EGL_VG_ALPHA_FORMAT"/>
-+            <enum name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
-+            <enum name="EGL_VG_ALPHA_FORMAT_PRE"/>
-+            <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
-+            <enum name="EGL_VG_COLORSPACE"/>
-+            <enum name="EGL_VG_COLORSPACE_sRGB"/>
-+            <enum name="EGL_VG_COLORSPACE_LINEAR"/>
-+            <enum name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
-+        </require>
-+    </feature>
-+    <feature api="egl" name="EGL_VERSION_1_4" number="1.4">
-+        <require>
-+            <enum name="EGL_DEFAULT_DISPLAY"/>
-+            <enum name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
-+            <enum name="EGL_MULTISAMPLE_RESOLVE"/>
-+            <enum name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
-+            <enum name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
-+            <enum name="EGL_OPENGL_API"/>
-+            <enum name="EGL_OPENGL_BIT"/>
-+            <enum name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
-+            <command name="eglGetCurrentContext"/>
-+        </require>
-+    </feature>
-+    <feature api="egl" name="EGL_VERSION_1_5" number="1.5">
-+        <require comment="EGL_KHR_create_context features">
-+            <enum name="EGL_CONTEXT_MAJOR_VERSION"/>
-+            <enum name="EGL_CONTEXT_MINOR_VERSION"/>
-+            <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
-+            <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
-+            <enum name="EGL_NO_RESET_NOTIFICATION"/>
-+            <enum name="EGL_LOSE_CONTEXT_ON_RESET"/>
-+            <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
-+            <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
-+            <enum name="EGL_CONTEXT_OPENGL_DEBUG"/>
-+            <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
-+            <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
-+            <enum name="EGL_OPENGL_ES3_BIT"/>
-+        </require>
-+        <require comment="EGL_EXT_create_context_robustness">
-+            <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
-+            <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
-+        </require>
-+        <require comment="EGL_EXT_client_extensions"/>
-+        <require comment="EGL_KHR_cl_event2">
-+            <enum name="EGL_CL_EVENT_HANDLE"/>
-+            <enum name="EGL_SYNC_CL_EVENT"/>
-+            <enum name="EGL_SYNC_CL_EVENT_COMPLETE"/>
-+        </require>
-+        <require comment="EGL_KHR_fence_sync">
-+            <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
-+            <enum name="EGL_SYNC_TYPE"/>
-+            <enum name="EGL_SYNC_STATUS"/>
-+            <enum name="EGL_SYNC_CONDITION"/>
-+            <enum name="EGL_SIGNALED"/>
-+            <enum name="EGL_UNSIGNALED"/>
-+            <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
-+            <enum name="EGL_FOREVER"/>
-+            <enum name="EGL_TIMEOUT_EXPIRED"/>
-+            <enum name="EGL_CONDITION_SATISFIED"/>
-+            <enum name="EGL_NO_SYNC"/>
-+            <enum name="EGL_SYNC_FENCE"/>
-+            <command name="eglCreateSync"/>
-+            <command name="eglDestroySync"/>
-+            <command name="eglClientWaitSync"/>
-+            <command name="eglGetSyncAttrib"/>
-+        </require>
-+        <require comment="EGL_KHR_get_all_proc_addresses"/>
-+        <require comment="EGL_KHR_client_get_all_proc_addresses"/>
-+        <require comment="EGL_KHR_gl_colorspace">
-+            <enum name="EGL_GL_COLORSPACE"/>
-+            <enum name="EGL_GL_COLORSPACE_SRGB"/>
-+            <enum name="EGL_GL_COLORSPACE_LINEAR"/>
-+        </require>
-+        <require comment="EGL_KHR_gl_renderbuffer_image">
-+            <enum name="EGL_GL_RENDERBUFFER"/>
-+        </require>
-+        <require comment="EGL_KHR_gl_texture_2D_image">
-+            <enum name="EGL_GL_TEXTURE_2D"/>
-+            <enum name="EGL_GL_TEXTURE_LEVEL"/>
-+        </require>
-+        <require comment="EGL_KHR_gl_texture_3D_image">
-+            <enum name="EGL_GL_TEXTURE_3D"/>
-+            <enum name="EGL_GL_TEXTURE_ZOFFSET"/>
-+        </require>
-+        <require comment="EGL_KHR_gl_texture_cubemap_image">
-+            <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
-+            <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
-+            <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
-+            <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
-+            <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
-+            <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
-+        </require>
-+        <require comment="EGL_KHR_image_base">
-+            <enum name="EGL_IMAGE_PRESERVED"/>
-+            <enum name="EGL_NO_IMAGE"/>
-+            <command name="eglCreateImage"/>
-+            <command name="eglDestroyImage"/>
-+        </require>
-+        <require comment="EGL_EXT_platform_base">
-+            <command name="eglGetPlatformDisplay"/>
-+            <command name="eglCreatePlatformWindowSurface"/>
-+            <command name="eglCreatePlatformPixmapSurface"/>
-+        </require>
-+        <require comment="EGL_KHR_surfaceless_context - just relaxes an error condition"/>
-+        <require comment="EGL_KHR_wait_sync">
-+            <command name="eglWaitSync"/>
-+        </require>
-+    </feature>
-+
-+    <!-- SECTION: EGL extension interface definitions -->
-+    <extensions>
-+        <extension name="EGL_ANDROID_blob_cache" supported="egl">
-+            <require>
-+                <command name="eglSetBlobCacheFuncsANDROID"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANDROID_framebuffer_target" supported="egl">
-+            <require>
-+                <enum name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANDROID_image_native_buffer" supported="egl">
-+            <require>
-+                <enum name="EGL_NATIVE_BUFFER_ANDROID"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANDROID_native_fence_sync" supported="egl">
-+            <require>
-+                <enum name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
-+                <enum name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
-+                <enum name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
-+                <enum name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
-+                <command name="eglDupNativeFenceFDANDROID"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANDROID_recordable" supported="egl">
-+            <require>
-+                <enum name="EGL_RECORDABLE_ANDROID"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANGLE_d3d_share_handle_client_buffer" supported="egl">
-+            <require>
-+                <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANGLE_device_d3d" supported="egl">
-+            <require>
-+                <enum name="EGL_D3D9_DEVICE_ANGLE"/>
-+                <enum name="EGL_D3D11_DEVICE_ANGLE"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANGLE_query_surface_pointer" supported="egl">
-+            <require>
-+                <command name="eglQuerySurfacePointerANGLE"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANGLE_surface_d3d_texture_2d_share_handle" supported="egl">
-+            <require>
-+                <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ANGLE_window_fixed_size" supported="egl">
-+            <require>
-+                <enum name="EGL_FIXED_SIZE_ANGLE"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_ARM_pixmap_multisample_discard" supported="egl">
-+            <require>
-+                <enum name="EGL_DISCARD_SAMPLES_ARM"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_buffer_age" supported="egl">
-+            <require>
-+                <enum name="EGL_BUFFER_AGE_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_client_extensions" supported="egl"/>
-+        <extension name="EGL_EXT_create_context_robustness" supported="egl">
-+            <require>
-+                <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/>
-+                <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
-+                <enum name="EGL_NO_RESET_NOTIFICATION_EXT"/>
-+                <enum name="EGL_LOSE_CONTEXT_ON_RESET_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_device_base" supported="egl">
-+            <require>
-+                <enum name="EGL_NO_DEVICE_EXT"/>
-+                <enum name="EGL_BAD_DEVICE_EXT"/>
-+                <enum name="EGL_DEVICE_EXT"/>
-+                <command name="eglQueryDeviceAttribEXT"/>
-+                <command name="eglQueryDeviceStringEXT"/>
-+                <command name="eglQueryDevicesEXT"/>
-+                <command name="eglQueryDisplayAttribEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_device_drm" supported="egl">
-+            <require>
-+                <enum name="EGL_DRM_DEVICE_FILE_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_device_enumeration" supported="egl">
-+            <require>
-+                <command name="eglQueryDevicesEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_device_openwf" supported="egl">
-+            <require>
-+                <enum name="EGL_OPENWF_DEVICE_ID_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_device_query" supported="egl">
-+            <require>
-+                <enum name="EGL_NO_DEVICE_EXT"/>
-+                <enum name="EGL_BAD_DEVICE_EXT"/>
-+                <enum name="EGL_DEVICE_EXT"/>
-+                <command name="eglQueryDeviceAttribEXT"/>
-+                <command name="eglQueryDeviceStringEXT"/>
-+                <command name="eglQueryDisplayAttribEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_image_dma_buf_import" supported="egl">
-+            <require>
-+                <enum name="EGL_LINUX_DMA_BUF_EXT"/>
-+                <enum name="EGL_LINUX_DRM_FOURCC_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
-+                <enum name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
-+                <enum name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
-+                <enum name="EGL_SAMPLE_RANGE_HINT_EXT"/>
-+                <enum name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
-+                <enum name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
-+                <enum name="EGL_ITU_REC601_EXT"/>
-+                <enum name="EGL_ITU_REC709_EXT"/>
-+                <enum name="EGL_ITU_REC2020_EXT"/>
-+                <enum name="EGL_YUV_FULL_RANGE_EXT"/>
-+                <enum name="EGL_YUV_NARROW_RANGE_EXT"/>
-+                <enum name="EGL_YUV_CHROMA_SITING_0_EXT"/>
-+                <enum name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_multiview_window" supported="egl">
-+            <require>
-+                <enum name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_output_base" supported="egl">
-+            <require>
-+                <type name="EGLOutputLayerEXT"/>
-+                <type name="EGLOutputPortEXT"/>
-+                <enum name="EGL_NO_OUTPUT_LAYER_EXT"/>
-+                <enum name="EGL_NO_OUTPUT_PORT_EXT"/>
-+                <enum name="EGL_BAD_OUTPUT_LAYER_EXT"/>
-+                <enum name="EGL_BAD_OUTPUT_PORT_EXT"/>
-+                <enum name="EGL_SWAP_INTERVAL_EXT"/>
-+                <command name="eglGetOutputLayersEXT"/>
-+                <command name="eglGetOutputPortsEXT"/>
-+                <command name="eglOutputLayerAttribEXT"/>
-+                <command name="eglQueryOutputLayerAttribEXT"/>
-+                <command name="eglQueryOutputLayerStringEXT"/>
-+                <command name="eglOutputPortAttribEXT"/>
-+                <command name="eglQueryOutputPortAttribEXT"/>
-+                <command name="eglQueryOutputPortStringEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_output_drm" supported="egl">
-+            <require>
-+                <enum name="EGL_DRM_CRTC_EXT"/>
-+                <enum name="EGL_DRM_PLANE_EXT"/>
-+                <enum name="EGL_DRM_CONNECTOR_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_output_openwf" supported="egl">
-+            <require>
-+                <enum name="EGL_OPENWF_PIPELINE_ID_EXT"/>
-+                <enum name="EGL_OPENWF_PORT_ID_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_platform_base" supported="egl">
-+            <require>
-+                <command name="eglGetPlatformDisplayEXT"/>
-+                <command name="eglCreatePlatformWindowSurfaceEXT"/>
-+                <command name="eglCreatePlatformPixmapSurfaceEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_platform_device" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_DEVICE_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_platform_wayland" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_WAYLAND_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_platform_x11" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_X11_EXT"/>
-+                <enum name="EGL_PLATFORM_X11_SCREEN_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_protected_surface" supported="egl">
-+            <require>
-+                <enum name="EGL_PROTECTED_CONTENT_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_stream_consumer_egloutput" supported="egl">
-+            <require>
-+                <command name="eglStreamConsumerOutputEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_swap_buffers_with_damage" supported="egl">
-+            <require>
-+                <command name="eglSwapBuffersWithDamageEXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_EXT_yuv_surface" supported="egl">
-+            <require>
-+                <enum name="EGL_YUV_ORDER_EXT"/>
-+                <enum name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
-+                <enum name="EGL_YUV_SUBSAMPLE_EXT"/>
-+                <enum name="EGL_YUV_DEPTH_RANGE_EXT"/>
-+                <enum name="EGL_YUV_CSC_STANDARD_EXT"/>
-+                <enum name="EGL_YUV_PLANE_BPP_EXT"/>
-+                <enum name="EGL_YUV_BUFFER_EXT"/>
-+                <enum name="EGL_YUV_ORDER_YUV_EXT"/>
-+                <enum name="EGL_YUV_ORDER_YVU_EXT"/>
-+                <enum name="EGL_YUV_ORDER_YUYV_EXT"/>
-+                <enum name="EGL_YUV_ORDER_UYVY_EXT"/>
-+                <enum name="EGL_YUV_ORDER_YVYU_EXT"/>
-+                <enum name="EGL_YUV_ORDER_VYUY_EXT"/>
-+                <enum name="EGL_YUV_ORDER_AYUV_EXT"/>
-+                <enum name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
-+                <enum name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
-+                <enum name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
-+                <enum name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
-+                <enum name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
-+                <enum name="EGL_YUV_CSC_STANDARD_601_EXT"/>
-+                <enum name="EGL_YUV_CSC_STANDARD_709_EXT"/>
-+                <enum name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
-+                <enum name="EGL_YUV_PLANE_BPP_0_EXT"/>
-+                <enum name="EGL_YUV_PLANE_BPP_8_EXT"/>
-+                <enum name="EGL_YUV_PLANE_BPP_10_EXT"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_HI_clientpixmap" supported="egl">
-+            <require>
-+                <enum name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
-+                <command name="eglCreatePixmapSurfaceHI"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_HI_colorformats" supported="egl">
-+            <require>
-+                <enum name="EGL_COLOR_FORMAT_HI"/>
-+                <enum name="EGL_COLOR_RGB_HI"/>
-+                <enum name="EGL_COLOR_RGBA_HI"/>
-+                <enum name="EGL_COLOR_ARGB_HI"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_IMG_context_priority" supported="egl">
-+            <require>
-+                <enum name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
-+                <enum name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
-+                <enum name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
-+                <enum name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_cl_event" supported="egl">
-+            <require>
-+                <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
-+                <enum name="EGL_SYNC_CL_EVENT_KHR"/>
-+                <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_cl_event2" supported="egl">
-+            <require>
-+                <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
-+                <enum name="EGL_SYNC_CL_EVENT_KHR"/>
-+                <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
-+                <command name="eglCreateSync64KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_config_attribs" supported="egl">
-+            <require>
-+                <enum name="EGL_CONFORMANT_KHR"/>
-+                <enum name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
-+                <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_client_get_all_proc_addresses" supported="egl" comment="Alias of EGL_KHR_get_all_proc_addresses"/>
-+        <extension name="EGL_KHR_create_context" supported="egl">
-+            <require>
-+                <enum name="EGL_CONTEXT_MAJOR_VERSION_KHR"/>
-+                <enum name="EGL_CONTEXT_MINOR_VERSION_KHR"/>
-+                <enum name="EGL_CONTEXT_FLAGS_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR"/>
-+                <enum name="EGL_NO_RESET_NOTIFICATION_KHR"/>
-+                <enum name="EGL_LOSE_CONTEXT_ON_RESET_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR"/>
-+                <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR"/>
-+                <enum name="EGL_OPENGL_ES3_BIT"/>
-+                <enum name="EGL_OPENGL_ES3_BIT_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_create_context_no_error" supported="egl">
-+            <require>
-+                <enum name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_debug" supported="egl">
-+            <require>
-+                    <!-- Explicit dependencies require to get EGLDEBUGPROCKHR dependencies correct -->
-+                <type name="EGLLabelKHR"/>
-+                <type name="EGLObjectKHR"/>
-+                <enum name="EGL_OBJECT_THREAD_KHR"/>
-+                <enum name="EGL_OBJECT_DISPLAY_KHR"/>
-+                <enum name="EGL_OBJECT_CONTEXT_KHR"/>
-+                <enum name="EGL_OBJECT_SURFACE_KHR"/>
-+                <enum name="EGL_OBJECT_IMAGE_KHR"/>
-+                <enum name="EGL_OBJECT_SYNC_KHR"/>
-+                <enum name="EGL_OBJECT_STREAM_KHR"/>
-+                <enum name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
-+                <enum name="EGL_DEBUG_MSG_ERROR_KHR"/>
-+                <enum name="EGL_DEBUG_MSG_WARN_KHR"/>
-+                <enum name="EGL_DEBUG_MSG_INFO_KHR"/>
-+                <enum name="EGL_DEBUG_CALLBACK_KHR"/>
-+                <command name="eglDebugMessageControlKHR"/>
-+                <command name="eglQueryDebugKHR"/>
-+                <command name="eglLabelObjectKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_fence_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
-+            <require>
-+                <!-- Most interfaces also defined by EGL_KHR_reusable sync -->
-+                <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR"/>
-+                <enum name="EGL_SYNC_CONDITION_KHR"/>
-+                <enum name="EGL_SYNC_FENCE_KHR"/>
-+                <command name="eglCreateSyncKHR"/>
-+                <command name="eglDestroySyncKHR"/>
-+                <command name="eglClientWaitSyncKHR"/>
-+                <command name="eglGetSyncAttribKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_get_all_proc_addresses" supported="egl"/>
-+        <extension name="EGL_KHR_gl_colorspace" supported="egl">
-+            <require>
-+                <enum name="EGL_GL_COLORSPACE_KHR"/>
-+                <enum name="EGL_GL_COLORSPACE_SRGB_KHR"/>
-+                <enum name="EGL_GL_COLORSPACE_LINEAR_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_gl_renderbuffer_image" supported="egl">
-+            <require>
-+                <enum name="EGL_GL_RENDERBUFFER_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_gl_texture_2D_image" supported="egl">
-+            <require>
-+                <enum name="EGL_GL_TEXTURE_2D_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_LEVEL_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_gl_texture_3D_image" supported="egl">
-+            <require>
-+                <enum name="EGL_GL_TEXTURE_3D_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_ZOFFSET_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_gl_texture_cubemap_image" supported="egl">
-+            <require>
-+                <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR"/>
-+                <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_image" supported="egl">
-+            <require>
-+                <enum name="EGL_NATIVE_PIXMAP_KHR"/>
-+                <enum name="EGL_NO_IMAGE_KHR"/>
-+                <command name="eglCreateImageKHR"/>
-+                <command name="eglDestroyImageKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_image_base" supported="egl">
-+            <require>
-+                <enum name="EGL_IMAGE_PRESERVED_KHR"/>
-+                <enum name="EGL_NO_IMAGE_KHR"/>
-+                <command name="eglCreateImageKHR"/>
-+                <command name="eglDestroyImageKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_image_pixmap" supported="egl">
-+            <require>
-+                <enum name="EGL_NATIVE_PIXMAP_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_lock_surface" supported="egl">
-+            <require>
-+                <enum name="EGL_READ_SURFACE_BIT_KHR"/>
-+                <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
-+                <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
-+                <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
-+                <enum name="EGL_MATCH_FORMAT_KHR"/>
-+                <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
-+                <enum name="EGL_FORMAT_RGB_565_KHR"/>
-+                <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
-+                <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
-+                <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
-+                <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
-+                <enum name="EGL_BITMAP_POINTER_KHR"/>
-+                <enum name="EGL_BITMAP_PITCH_KHR"/>
-+                <enum name="EGL_BITMAP_ORIGIN_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
-+                <enum name="EGL_LOWER_LEFT_KHR"/>
-+                <enum name="EGL_UPPER_LEFT_KHR"/>
-+                <command name="eglLockSurfaceKHR"/>
-+                <command name="eglUnlockSurfaceKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_lock_surface2" supported="egl">
-+            <require>
-+                <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_lock_surface3" supported="egl">
-+            <require>
-+                <enum name="EGL_READ_SURFACE_BIT_KHR"/>
-+                <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
-+                <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
-+                <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
-+                <enum name="EGL_MATCH_FORMAT_KHR"/>
-+                <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
-+                <enum name="EGL_FORMAT_RGB_565_KHR"/>
-+                <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
-+                <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
-+                <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
-+                <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
-+                <enum name="EGL_BITMAP_PITCH_KHR"/>
-+                <enum name="EGL_BITMAP_ORIGIN_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
-+                <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
-+                <enum name="EGL_BITMAP_POINTER_KHR"/>
-+                <enum name="EGL_LOWER_LEFT_KHR"/>
-+                <enum name="EGL_UPPER_LEFT_KHR"/>
-+                <command name="eglLockSurfaceKHR"/>
-+                <command name="eglUnlockSurfaceKHR"/>
-+                <command name="eglQuerySurface64KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_partial_update" supported="egl">
-+            <require>
-+                <enum name="EGL_BUFFER_AGE_KHR"/>
-+                <command name="eglSetDamageRegionKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_platform_android" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_ANDROID_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_platform_gbm" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_GBM_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_platform_wayland" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_WAYLAND_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_platform_x11" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_X11_KHR"/>
-+                <enum name="EGL_PLATFORM_X11_SCREEN_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_reusable_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
-+            <require>
-+                <enum name="EGL_SYNC_STATUS_KHR"/>
-+                <enum name="EGL_SIGNALED_KHR"/>
-+                <enum name="EGL_UNSIGNALED_KHR"/>
-+                <enum name="EGL_TIMEOUT_EXPIRED_KHR"/>
-+                <enum name="EGL_CONDITION_SATISFIED_KHR"/>
-+                <enum name="EGL_SYNC_TYPE_KHR"/>
-+                <enum name="EGL_SYNC_REUSABLE_KHR"/>
-+                <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR"/>
-+                <enum name="EGL_FOREVER_KHR"/>
-+                <enum name="EGL_NO_SYNC_KHR"/>
-+                <command name="eglCreateSyncKHR"/>
-+                <command name="eglDestroySyncKHR"/>
-+                <command name="eglClientWaitSyncKHR"/>
-+                <command name="eglSignalSyncKHR"/>
-+                <command name="eglGetSyncAttribKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_stream" protect="KHRONOS_SUPPORT_INT64" supported="egl">
-+            <require>
-+                <enum name="EGL_NO_STREAM_KHR"/>
-+                <enum name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
-+                <enum name="EGL_PRODUCER_FRAME_KHR"/>
-+                <enum name="EGL_CONSUMER_FRAME_KHR"/>
-+                <enum name="EGL_STREAM_STATE_KHR"/>
-+                <enum name="EGL_STREAM_STATE_CREATED_KHR"/>
-+                <enum name="EGL_STREAM_STATE_CONNECTING_KHR"/>
-+                <enum name="EGL_STREAM_STATE_EMPTY_KHR"/>
-+                <enum name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
-+                <enum name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
-+                <enum name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
-+                <enum name="EGL_BAD_STREAM_KHR"/>
-+                <enum name="EGL_BAD_STATE_KHR"/>
-+                <command name="eglCreateStreamKHR"/>
-+                <command name="eglDestroyStreamKHR"/>
-+                <command name="eglStreamAttribKHR"/>
-+                <command name="eglQueryStreamKHR"/>
-+                <command name="eglQueryStreamu64KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_stream_consumer_gltexture" protect="EGL_KHR_stream" supported="egl">
-+            <require>
-+                <enum name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
-+                <command name="eglStreamConsumerGLTextureExternalKHR"/>
-+                <command name="eglStreamConsumerAcquireKHR"/>
-+                <command name="eglStreamConsumerReleaseKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_stream_cross_process_fd" protect="EGL_KHR_stream" supported="egl">
-+            <require>
-+                <enum name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
-+                <command name="eglGetStreamFileDescriptorKHR"/>
-+                <command name="eglCreateStreamFromFileDescriptorKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_stream_fifo" protect="EGL_KHR_stream" supported="egl">
-+            <require>
-+                <enum name="EGL_STREAM_FIFO_LENGTH_KHR"/>
-+                <enum name="EGL_STREAM_TIME_NOW_KHR"/>
-+                <enum name="EGL_STREAM_TIME_CONSUMER_KHR"/>
-+                <enum name="EGL_STREAM_TIME_PRODUCER_KHR"/>
-+                <command name="eglQueryStreamTimeKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_stream_producer_aldatalocator" protect="EGL_KHR_stream" supported="egl"/>
-+        <extension name="EGL_KHR_stream_producer_eglsurface" protect="EGL_KHR_stream" supported="egl">
-+            <require>
-+                <enum name="EGL_STREAM_BIT_KHR"/>
-+                <command name="eglCreateStreamProducerSurfaceKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_surfaceless_context" supported="egl" comment="Just relaxes an error condition"/>
-+        <extension name="EGL_KHR_swap_buffers_with_damage" supported="egl">
-+            <require>
-+                <command name="eglSwapBuffersWithDamageKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_vg_parent_image" supported="egl">
-+            <require>
-+                <enum name="EGL_VG_PARENT_IMAGE_KHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_KHR_wait_sync" supported="egl">
-+            <require>
-+                <command name="eglWaitSyncKHR"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_MESA_drm_image" supported="egl">
-+            <require>
-+                <enum name="EGL_DRM_BUFFER_FORMAT_MESA"/>
-+                <enum name="EGL_DRM_BUFFER_USE_MESA"/>
-+                <enum name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
-+                <enum name="EGL_DRM_BUFFER_MESA"/>
-+                <enum name="EGL_DRM_BUFFER_STRIDE_MESA"/>
-+                <enum name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
-+                <enum name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
-+                <command name="eglCreateDRMImageMESA"/>
-+                <command name="eglExportDRMImageMESA"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_MESA_image_dma_buf_export" supported="egl">
-+            <require>
-+                <type name="EGLuint64KHR"/>
-+                <command name="eglExportDMABUFImageQueryMESA"/>
-+                <command name="eglExportDMABUFImageMESA"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_MESA_platform_gbm" supported="egl">
-+            <require>
-+                <enum name="EGL_PLATFORM_GBM_MESA"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NOK_swap_region" supported="egl">
-+            <require>
-+                <command name="eglSwapBuffersRegionNOK"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NOK_swap_region2" supported="egl">
-+            <require>
-+                <command name="eglSwapBuffersRegion2NOK"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NOK_texture_from_pixmap" supported="egl">
-+            <require>
-+                <enum name="EGL_Y_INVERTED_NOK"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_3dvision_surface" supported="egl">
-+            <require>
-+                <enum name="EGL_AUTO_STEREO_NV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_coverage_sample" supported="egl">
-+            <require>
-+                <enum name="EGL_COVERAGE_BUFFERS_NV"/>
-+                <enum name="EGL_COVERAGE_SAMPLES_NV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_coverage_sample_resolve" supported="egl">
-+            <require>
-+                <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
-+                <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
-+                <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_cuda_event" supported="egl">
-+            <require>
-+                <enum name="EGL_CUDA_EVENT_HANDLE_NV"/>
-+                <enum name="EGL_SYNC_CUDA_EVENT_NV"/>
-+                <enum name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_depth_nonlinear" supported="egl">
-+            <require>
-+                <enum name="EGL_DEPTH_ENCODING_NV"/>
-+                <enum name="EGL_DEPTH_ENCODING_NONE_NV"/>
-+                <enum name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_device_cuda" supported="egl">
-+            <require>
-+                <enum name="EGL_CUDA_DEVICE_NV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_native_query" supported="egl">
-+            <require>
-+                <command name="eglQueryNativeDisplayNV"/>
-+                <command name="eglQueryNativeWindowNV"/>
-+                <command name="eglQueryNativePixmapNV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_post_convert_rounding" supported="egl">
-+            <require>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_post_sub_buffer" supported="egl">
-+            <require>
-+                <enum name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
-+                <command name="eglPostSubBufferNV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_stream_sync" supported="egl">
-+            <require>
-+                <enum name="EGL_SYNC_TYPE_KHR"/>
-+                <enum name="EGL_SYNC_NEW_FRAME_NV"/>
-+                <command name="eglCreateStreamSyncNV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
-+            <require>
-+                <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
-+                <enum name="EGL_SYNC_STATUS_NV"/>
-+                <enum name="EGL_SIGNALED_NV"/>
-+                <enum name="EGL_UNSIGNALED_NV"/>
-+                <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV"/>
-+                <enum name="EGL_FOREVER_NV"/>
-+                <enum name="EGL_ALREADY_SIGNALED_NV"/>
-+                <enum name="EGL_TIMEOUT_EXPIRED_NV"/>
-+                <enum name="EGL_CONDITION_SATISFIED_NV"/>
-+                <enum name="EGL_SYNC_TYPE_NV"/>
-+                <enum name="EGL_SYNC_CONDITION_NV"/>
-+                <enum name="EGL_SYNC_FENCE_NV"/>
-+                <enum name="EGL_NO_SYNC_NV"/>
-+                <command name="eglCreateFenceSyncNV"/>
-+                <command name="eglDestroySyncNV"/>
-+                <command name="eglFenceNV"/>
-+                <command name="eglClientWaitSyncNV"/>
-+                <command name="eglSignalSyncNV"/>
-+                <command name="eglGetSyncAttribNV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_NV_system_time" protect="KHRONOS_SUPPORT_INT64" supported="egl">
-+            <require>
-+                <command name="eglGetSystemTimeFrequencyNV"/>
-+                <command name="eglGetSystemTimeNV"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_TIZEN_image_native_buffer" supported="egl">
-+            <require>
-+                <enum name="EGL_NATIVE_BUFFER_TIZEN"/>
-+            </require>
-+        </extension>
-+        <extension name="EGL_TIZEN_image_native_surface" supported="egl">
-+            <require>
-+                <enum name="EGL_NATIVE_SURFACE_TIZEN"/>
-+            </require>
-+        </extension>
-+    </extensions>
-+</registry>
-diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py
-new file mode 100644
-index 0000000000..b19b5f7193
---- /dev/null
-+++ b/src/egl/generate/eglFunctionList.py
-@@ -0,0 +1,197 @@
-+#!/usr/bin/env python
-+
-+"""
-+Contains a list of EGL functions to generate dispatch functions for.
-+
-+This is used from gen_egl_dispatch.py.
-+
-+EGL_FUNCTIONS is a sequence of (name, eglData) pairs, where name is the name
-+of the function, and eglData is a dictionary containing data about that
-+function.
-+
-+The values in the eglData dictionary are:
-+- method (string):
-+    How to select a vendor library. See "Method values" below.
-+
-+- prefix (string):
-+    This string is prepended to the name of the dispatch function. If
-+    unspecified, the default is "" (an empty string).
-+
-+- static (boolean)
-+  If True, this function should be declared static.
-+
-+- "public" (boolean)
-+    If True, the function should be exported from the library. Vendor libraries
-+    generally should not use this.
-+
-+- extension (string):
-+    If specified, this is the name of a macro to check for before defining a
-+    function. Used for checking for extension macros and such.
-+
-+- retval (string):
-+    If specified, this is a C expression with the default value to return if we
-+    can't find a function to call. By default, it will try to guess from the
-+    return type: EGL_NO_whatever for the various handle types, NULL for
-+    pointers, and zero for everything else.
-+
-+method values:
-+- "custom"
-+    The dispatch stub will be hand-written instead of generated.
-+
-+- "none"
-+    No dispatch function exists at all, but the function should still have an
-+    entry in the index array. This is for other functions that a stub may need
-+    to call that are implemented in libEGL itself.
-+
-+- "display"
-+    Select a vendor from an EGLDisplay argument.
-+
-+- "device"
-+    Select a vendor from an EGLDeviceEXT argument.
-+
-+- "current"
-+    Select the vendor that owns the current context.
-+"""
-+
-+def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None):
-+    """
-+    A convenience function to define an entry in the EGL function list.
-+    """
-+    if inheader is None:
-+        inheader = (not public)
-+    values = {
-+        "method" : method,
-+        "prefix" : prefix,
-+        "extension" : extension,
-+        "retval" : retval,
-+        "static" : static,
-+        "public" : public,
-+        "inheader" : inheader,
-+    }
-+    return (name, values)
-+
-+EGL_FUNCTIONS = (
-+    # EGL_VERSION_1_0
-+    _eglFunc("eglChooseConfig",                      "none"),
-+    _eglFunc("eglCopyBuffers",                       "none"),
-+    _eglFunc("eglCreateContext",                     "none"),
-+    _eglFunc("eglCreatePbufferSurface",              "none"),
-+    _eglFunc("eglCreatePixmapSurface",               "none"),
-+    _eglFunc("eglCreateWindowSurface",               "none"),
-+    _eglFunc("eglDestroyContext",                    "none"),
-+    _eglFunc("eglDestroySurface",                    "none"),
-+    _eglFunc("eglGetConfigAttrib",                   "none"),
-+    _eglFunc("eglGetConfigs",                        "none"),
-+    _eglFunc("eglQueryContext",                      "none"),
-+    _eglFunc("eglQuerySurface",                      "none"),
-+    _eglFunc("eglSwapBuffers",                       "none"),
-+    _eglFunc("eglWaitGL",                            "none"),
-+    _eglFunc("eglWaitNative",                        "none"),
-+    _eglFunc("eglTerminate",                         "none"),
-+    _eglFunc("eglInitialize",                        "none"),
-+
-+    _eglFunc("eglGetCurrentDisplay",                 "none"),
-+    _eglFunc("eglGetCurrentSurface",                 "none"),
-+    _eglFunc("eglGetDisplay",                        "none"),
-+    _eglFunc("eglGetError",                          "none"),
-+    _eglFunc("eglGetProcAddress",                    "none"),
-+    _eglFunc("eglMakeCurrent",                       "none"),
-+    _eglFunc("eglQueryString",                       "none"),
-+
-+    # EGL_VERSION_1_1
-+    _eglFunc("eglBindTexImage",                      "none"),
-+    _eglFunc("eglReleaseTexImage",                   "none"),
-+    _eglFunc("eglSurfaceAttrib",                     "none"),
-+    _eglFunc("eglSwapInterval",                      "none"),
-+
-+    # EGL_VERSION_1_2
-+    _eglFunc("eglCreatePbufferFromClientBuffer",     "none"),
-+    _eglFunc("eglWaitClient",                        "none"),
-+    _eglFunc("eglBindAPI",                           "none"),
-+    _eglFunc("eglQueryAPI",                          "none"),
-+    _eglFunc("eglReleaseThread",                     "none"),
-+
-+    # EGL_VERSION_1_4
-+    _eglFunc("eglGetCurrentContext",                 "none"),
-+
-+    # EGL_VERSION_1_5
-+    _eglFunc("eglCreateSync",                        "none"),
-+    _eglFunc("eglDestroySync",                       "none"),
-+    _eglFunc("eglClientWaitSync",                    "none"),
-+    _eglFunc("eglGetSyncAttrib",                     "none"),
-+    _eglFunc("eglCreateImage",                       "none"),
-+    _eglFunc("eglDestroyImage",                      "none"),
-+    _eglFunc("eglCreatePlatformWindowSurface",       "none"),
-+    _eglFunc("eglCreatePlatformPixmapSurface",       "none"),
-+    _eglFunc("eglWaitSync",                          "none"),
-+    _eglFunc("eglGetPlatformDisplay",                "none"),
-+
-+    # EGL_EXT_platform_base
-+    _eglFunc("eglCreatePlatformWindowSurfaceEXT",    "display"),
-+    _eglFunc("eglCreatePlatformPixmapSurfaceEXT",    "display"),
-+    _eglFunc("eglGetPlatformDisplayEXT",             "none"),
-+
-+    # TODO: Most of these extensions should be provided by the vendor
-+    # libraries, not by libEGL. They're here now to make testing everything
-+    # else easier.
-+
-+    # EGL_EXT_swap_buffers_with_damage
-+    _eglFunc("eglSwapBuffersWithDamageEXT",          "display"),
-+
-+    # KHR_EXT_swap_buffers_with_damage
-+    _eglFunc("eglSwapBuffersWithDamageKHR",          "display"),
-+
-+    # EGL_KHR_cl_event2
-+    _eglFunc("eglCreateSync64KHR",                   "display"),
-+
-+    # EGL_KHR_fence_sync
-+    _eglFunc("eglCreateSyncKHR",                     "display"),
-+    _eglFunc("eglDestroySyncKHR",                    "display"),
-+    _eglFunc("eglClientWaitSyncKHR",                 "display"),
-+    _eglFunc("eglGetSyncAttribKHR",                  "display"),
-+
-+    # EGL_KHR_image
-+    _eglFunc("eglCreateImageKHR",                    "display"),
-+    _eglFunc("eglDestroyImageKHR",                   "display"),
-+
-+    # EGL_KHR_image_base
-+    # eglCreateImageKHR already defined in EGL_KHR_image
-+    # eglDestroyImageKHR already defined in EGL_KHR_image
-+
-+    # EGL_KHR_reusable_sync
-+    _eglFunc("eglSignalSyncKHR",                     "display"),
-+    # eglCreateSyncKHR already defined in EGL_KHR_fence_sync
-+    # eglDestroySyncKHR already defined in EGL_KHR_fence_sync
-+    # eglClientWaitSyncKHR already defined in EGL_KHR_fence_sync
-+    # eglGetSyncAttribKHR already defined in EGL_KHR_fence_sync
-+
-+    # EGL_KHR_wait_sync
-+    _eglFunc("eglWaitSyncKHR",                       "display"),
-+
-+    # EGL_MESA_drm_image
-+    _eglFunc("eglCreateDRMImageMESA",                "display"),
-+    _eglFunc("eglExportDRMImageMESA",                "display"),
-+
-+    # EGL_MESA_image_dma_buf_export
-+    _eglFunc("eglExportDMABUFImageQueryMESA",        "display"),
-+    _eglFunc("eglExportDMABUFImageMESA",             "display"),
-+
-+    # EGL_NOK_swap_region
-+    _eglFunc("eglSwapBuffersRegionNOK",              "display"),
-+
-+    # EGL_NV_post_sub_buffer
-+    _eglFunc("eglPostSubBufferNV",                   "display"),
-+
-+    # EGL_WL_bind_wayland_display
-+    _eglFunc("eglCreateWaylandBufferFromImageWL",    "display"),
-+    _eglFunc("eglUnbindWaylandDisplayWL",            "display"),
-+    _eglFunc("eglQueryWaylandBufferWL",              "display"),
-+    _eglFunc("eglBindWaylandDisplayWL",              "display"),
-+
-+    # EGL_CHROMIUM_get_sync_values
-+    _eglFunc("eglGetSyncValuesCHROMIUM",             "display"),
-+
-+    # EGL_ANDROID_native_fence_sync
-+    _eglFunc("eglDupNativeFenceFDANDROID",           "display"),
-+)
-+
-diff --git a/src/egl/generate/egl_other.xml b/src/egl/generate/egl_other.xml
-new file mode 100644
-index 0000000000..7fe3a9e272
---- /dev/null
-+++ b/src/egl/generate/egl_other.xml
-@@ -0,0 +1,47 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<registry>
-+    <comment>
-+        This file contains any EGL extension functions that are missing from
-+        the normal egl.xml list.
-+    </comment>
-+    <commands namespace="EGL">
-+        <!-- EGL_WL_bind_wayland_display -->
-+        <command>
-+            <proto>struct wl_buffer * <name>eglCreateWaylandBufferFromImageWL</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>EGLImage</ptype> <name>image</name></param>
-+        </command>
-+
-+        <command>
-+            <proto>EGLBoolean <name>eglUnbindWaylandDisplayWL</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>struct wl_display *</ptype> <name>display</name></param>
-+        </command>
-+
-+        <command>
-+            <proto>EGLBoolean <name>eglQueryWaylandBufferWL</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>struct wl_resource *</ptype> <name>buffer</name></param>
-+            <param><ptype>EGLint</ptype> <name>attribute</name></param>
-+            <param><ptype>EGLint *</ptype> <name>value</name></param>
-+        </command>
-+
-+        <command>
-+            <proto>EGLBoolean <name>eglBindWaylandDisplayWL</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-+            <param><ptype>struct wl_display *</ptype> <name>display</name></param>
-+        </command>
-+
-+        <!-- EGL_CHROMIUM_get_sync_values -->
-+        <command>
-+            <proto>EGLBoolean <name>eglGetSyncValuesCHROMIUM</name></proto>
-+            <param><ptype>EGLDisplay</ptype> <name>display</name></param>
-+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
-+            <param><ptype>EGLuint64KHR *</ptype> <name>ust</name></param>
-+            <param><ptype>EGLuint64KHR *</ptype> <name>msc</name></param>
-+            <param><ptype>EGLuint64KHR *</ptype> <name>sbc</name></param>
-+        </command>
-+    </commands>
-+</registry>
-+
-+
-diff --git a/src/egl/generate/genCommon.py b/src/egl/generate/genCommon.py
-new file mode 100644
-index 0000000000..d493d7bf29
---- /dev/null
-+++ b/src/egl/generate/genCommon.py
-@@ -0,0 +1,223 @@
-+#!/usr/bin/env python
-+
-+# (C) Copyright 2015, NVIDIA CORPORATION.
-+# All Rights Reserved.
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining a
-+# copy of this software and associated documentation files (the "Software"),
-+# to deal in the Software without restriction, including without limitation
-+# on the rights to use, copy, modify, merge, publish, distribute, sub
-+# license, and/or sell copies of the Software, and to permit persons to whom
-+# the Software is furnished to do so, subject to the following conditions:
-+#
-+# The above copyright notice and this permission notice (including the next
-+# paragraph) shall be included in all copies or substantial portions of the
-+# Software.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
-+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-+# IN THE SOFTWARE.
-+#
-+# Authors:
-+#    Kyle Brenneman <kbrenneman@nvidia.com>
-+
-+import collections
-+import re
-+import sys
-+import xml.etree.cElementTree as etree
-+
-+MAPI_TABLE_NUM_DYNAMIC = 4096
-+
-+_LIBRARY_FEATURE_NAMES = {
-+    # libGL and libGLdiapatch both include every function.
-+    "gl" : None,
-+    "gldispatch" : None,
-+    "opengl" : frozenset(( "GL_VERSION_1_0", "GL_VERSION_1_1",
-+        "GL_VERSION_1_2", "GL_VERSION_1_3", "GL_VERSION_1_4", "GL_VERSION_1_5",
-+        "GL_VERSION_2_0", "GL_VERSION_2_1", "GL_VERSION_3_0", "GL_VERSION_3_1",
-+        "GL_VERSION_3_2", "GL_VERSION_3_3", "GL_VERSION_4_0", "GL_VERSION_4_1",
-+        "GL_VERSION_4_2", "GL_VERSION_4_3", "GL_VERSION_4_4", "GL_VERSION_4_5",
-+    )),
-+    "glesv1" : frozenset(("GL_VERSION_ES_CM_1_0", "GL_OES_point_size_array")),
-+    "glesv2" : frozenset(("GL_ES_VERSION_2_0", "GL_ES_VERSION_3_0",
-+            "GL_ES_VERSION_3_1" "GL_ES_VERSION_3_2",
-+    )),
-+}
-+
-+def getFunctions(xmlFiles):
-+    """
-+    Reads an XML file and returns all of the functions defined in it.
-+
-+    xmlFile should be the path to Khronos's gl.xml file. The return value is a
-+    sequence of FunctionDesc objects, ordered by slot number.
-+    """
-+    roots = [ etree.parse(xmlFile).getroot() for xmlFile in xmlFiles ]
-+    return getFunctionsFromRoots(roots)
-+
-+def getFunctionsFromRoots(roots):
-+    functions = {}
-+    for root in roots:
-+        for func in _getFunctionList(root):
-+            functions[func.name] = func
-+    functions = functions.values()
-+
-+    # Sort the function list by name.
-+    functions = sorted(functions, key=lambda f: f.name)
-+
-+    # Assign a slot number to each function. This isn't strictly necessary,
-+    # since you can just look at the index in the list, but it makes it easier
-+    # to include the slot when formatting output.
-+    for i in range(len(functions)):
-+        functions[i] = functions[i]._replace(slot=i)
-+
-+    return functions
-+
-+def getExportNamesFromRoots(target, roots):
-+    """
-+    Goes through the <feature> tags from gl.xml and returns a set of OpenGL
-+    functions that a library should export.
-+
-+    target should be one of "gl", "gldispatch", "opengl", "glesv1", or
-+    "glesv2".
-+    """
-+    featureNames = _LIBRARY_FEATURE_NAMES[target]
-+    if featureNames is None:
-+        return set(func.name for func in getFunctionsFromRoots(roots))
-+
-+    names = set()
-+    for root in roots:
-+        features = []
-+        for featElem in root.findall("feature"):
-+            if featElem.get("name") in featureNames:
-+                features.append(featElem)
-+        for featElem in root.findall("extensions/extension"):
-+            if featElem.get("name") in featureNames:
-+                features.append(featElem)
-+        for featElem in features:
-+            for commandElem in featElem.findall("require/command"):
-+                names.add(commandElem.get("name"))
-+    return names
-+
-+class FunctionArg(collections.namedtuple("FunctionArg", "type name")):
-+    @property
-+    def dec(self):
-+        """
-+        Returns a "TYPE NAME" string, suitable for a function prototype.
-+        """
-+        rv = str(self.type)
-+        if not rv.endswith("*"):
-+            rv += " "
-+        rv += self.name
-+        return rv
-+
-+class FunctionDesc(collections.namedtuple("FunctionDesc", "name rt args slot")):
-+    def hasReturn(self):
-+        """
-+        Returns true if the function returns a value.
-+        """
-+        return (self.rt != "void")
-+
-+    @property
-+    def decArgs(self):
-+        """
-+        Returns a string with the types and names of the arguments, as you
-+        would use in a function declaration.
-+        """
-+        if not self.args:
-+            return "void"
-+        else:
-+            return ", ".join(arg.dec for arg in self.args)
-+
-+    @property
-+    def callArgs(self):
-+        """
-+        Returns a string with the names of the arguments, as you would use in a
-+        function call.
-+        """
-+        return ", ".join(arg.name for arg in self.args)
-+
-+    @property
-+    def basename(self):
-+        assert self.name.startswith("gl")
-+        return self.name[2:]
-+
-+def _getFunctionList(root):
-+    for elem in root.findall("commands/command"):
-+        yield _parseCommandElem(elem)
-+
-+def _parseCommandElem(elem):
-+    protoElem = elem.find("proto")
-+    (rt, name) = _parseProtoElem(protoElem)
-+
-+    args = []
-+    for ch in elem.findall("param"):
-+        # <param> tags have the same format as a <proto> tag.
-+        args.append(FunctionArg(*_parseProtoElem(ch)))
-+    func = FunctionDesc(name, rt, tuple(args), slot=None)
-+
-+    return func
-+
-+def _parseProtoElem(elem):
-+    # If I just remove the tags and string the text together, I'll get valid C code.
-+    text = _flattenText(elem)
-+    text = text.strip()
-+    m = re.match(r"^(.+)\b(\w+)(?:\s*\[\s*(\d*)\s*\])?$", text, re.S)
-+    if m:
-+        typename = _fixupTypeName(m.group(1))
-+        name = m.group(2)
-+        if m.group(3):
-+            # HACK: glPathGlyphIndexRangeNV defines an argument like this:
-+            # GLuint baseAndCount[2]
-+            # Convert it to a pointer and hope for the best.
-+            typename += "*"
-+        return (typename, name)
-+    else:
-+        raise ValueError("Can't parse element %r -> %r" % (elem, text))
-+
-+def _flattenText(elem):
-+    """
-+    Returns the text in an element and all child elements, with the tags
-+    removed.
-+    """
-+    text = ""
-+    if elem.text is not None:
-+        text = elem.text
-+    for ch in elem:
-+        text += _flattenText(ch)
-+        if ch.tail is not None:
-+            text += ch.tail
-+    return text
-+
-+def _fixupTypeName(typeName):
-+    """
-+    Converts a typename into a more consistent format.
-+    """
-+
-+    rv = typeName.strip()
-+
-+    # Replace "GLvoid" with just plain "void".
-+    rv = re.sub(r"\bGLvoid\b", "void", rv)
-+
-+    # Remove the vendor suffixes from types that have a suffix-less version.
-+    rv = re.sub(r"\b(GLhalf|GLintptr|GLsizeiptr|GLint64|GLuint64)(?:ARB|EXT|NV|ATI)\b", r"\1", rv)
-+
-+    rv = re.sub(r"\bGLvoid\b", "void", rv)
-+
-+    # Clear out any leading and trailing whitespace.
-+    rv = rv.strip()
-+
-+    # Remove any whitespace before a '*'
-+    rv = re.sub(r"\s+\*", r"*", rv)
-+
-+    # Change "foo*" to "foo *"
-+    rv = re.sub(r"([^\*])\*", r"\1 *", rv)
-+
-+    # Condense all whitespace into a single space.
-+    rv = re.sub(r"\s+", " ", rv)
-+
-+    return rv
-+
-diff --git a/src/egl/generate/gen_egl_dispatch.py b/src/egl/generate/gen_egl_dispatch.py
-new file mode 100755
-index 0000000000..eeb3f3f9a5
---- /dev/null
-+++ b/src/egl/generate/gen_egl_dispatch.py
-@@ -0,0 +1,250 @@
-+#!/usr/bin/env python
-+
-+# (C) Copyright 2016, NVIDIA CORPORATION.
-+# All Rights Reserved.
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining a
-+# copy of this software and associated documentation files (the "Software"),
-+# to deal in the Software without restriction, including without limitation
-+# on the rights to use, copy, modify, merge, publish, distribute, sub
-+# license, and/or sell copies of the Software, and to permit persons to whom
-+# the Software is furnished to do so, subject to the following conditions:
-+#
-+# The above copyright notice and this permission notice (including the next
-+# paragraph) shall be included in all copies or substantial portions of the
-+# Software.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
-+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-+# IN THE SOFTWARE.
-+#
-+# Authors:
-+#    Kyle Brenneman <kbrenneman@nvidia.com>
-+
-+"""
-+Generates dispatch functions for EGL.
-+
-+The list of functions and arguments is read from the Khronos's XML files, with
-+additional information defined in the module eglFunctionList.
-+"""
-+
-+import argparse
-+import collections
-+import imp
-+import sys
-+import textwrap
-+
-+import genCommon
-+
-+def main():
-+    parser = argparse.ArgumentParser()
-+    parser.add_argument("target", choices=("header", "source"),
-+            help="Whether to build the source or header file.")
-+    parser.add_argument("func_list_file", help="The function list .py file.")
-+    parser.add_argument("xml_files", nargs="+", help="The XML files with the EGL function lists.")
-+
-+    args = parser.parse_args()
-+
-+    # The function list is a Python module, but it's specified on the command
-+    # line.
-+    eglFunctionList = imp.load_source("eglFunctionList", args.func_list_file)
-+
-+    xmlFunctions = genCommon.getFunctions(args.xml_files)
-+    xmlByName = dict((f.name, f) for f in xmlFunctions)
-+    functions = []
-+    for (name, eglFunc) in eglFunctionList.EGL_FUNCTIONS:
-+        func = xmlByName[name]
-+        eglFunc = fixupEglFunc(func, eglFunc)
-+        functions.append((func, eglFunc))
-+
-+    # Sort the function list by name.
-+    functions = sorted(functions, key=lambda f: f[0].name)
-+
-+    if args.target == "header":
-+        text = generateHeader(functions)
-+    elif args.target == "source":
-+        text = generateSource(functions)
-+    sys.stdout.write(text)
-+
-+def fixupEglFunc(func, eglFunc):
-+    result = dict(eglFunc)
-+    if result.get("prefix") is None:
-+        result["prefix"] = ""
-+
-+    if result.get("extension") is not None:
-+        text = "defined(" + result["extension"] + ")"
-+        result["extension"] = text
-+
-+    if result["method"] in ("none", "custom"):
-+        return result
-+
-+    if result["method"] not in ("display", "device", "current"):
-+        raise ValueError("Invalid dispatch method %r for function %r" % (result["method"], func.name))
-+
-+    if func.hasReturn():
-+        if result.get("retval") is None:
-+            result["retval"] = getDefaultReturnValue(func.rt)
-+
-+    return result
-+
-+def generateHeader(functions):
-+    text = textwrap.dedent(r"""
-+    #ifndef G_EGLDISPATCH_STUBS_H
-+    #define G_EGLDISPATCH_STUBS_H
-+
-+    #ifdef __cplusplus
-+    extern "C" {
-+    #endif
-+
-+    #include <EGL/egl.h>
-+    #include <EGL/eglext.h>
-+    #include "glvnd/libeglabi.h"
-+
-+    """.lstrip("\n"))
-+
-+    text += "enum {\n"
-+    for (func, eglFunc) in functions:
-+        text += generateGuardBegin(func, eglFunc)
-+        text += "    __EGL_DISPATCH_" + func.name + ",\n"
-+        text += generateGuardEnd(func, eglFunc)
-+    text += "    __EGL_DISPATCH_COUNT\n"
-+    text += "};\n"
-+
-+    for (func, eglFunc) in functions:
-+        if eglFunc["inheader"]:
-+            text += generateGuardBegin(func, eglFunc)
-+            text += "{f.rt} EGLAPIENTRY {ex[prefix]}{f.name}({f.decArgs});\n".format(f=func, ex=eglFunc)
-+            text += generateGuardEnd(func, eglFunc)
-+
-+    text += textwrap.dedent(r"""
-+    #ifdef __cplusplus
-+    }
-+    #endif
-+    #endif // G_EGLDISPATCH_STUBS_H
-+    """)
-+    return text
-+
-+def generateSource(functions):
-+    # First, sort the function list by name.
-+    text = ""
-+    text += '#include "egldispatchstubs.h"\n'
-+    text += '#include "g_egldispatchstubs.h"\n'
-+    text += "\n"
-+
-+    for (func, eglFunc) in functions:
-+        if eglFunc["method"] not in ("custom", "none"):
-+            text += generateGuardBegin(func, eglFunc)
-+            text += generateDispatchFunc(func, eglFunc)
-+            text += generateGuardEnd(func, eglFunc)
-+
-+    text += "\n"
-+    text += "const char * const __EGL_DISPATCH_FUNC_NAMES[__EGL_DISPATCH_COUNT + 1] = {\n"
-+    for (func, eglFunc) in functions:
-+        text += generateGuardBegin(func, eglFunc)
-+        text += '    "' + func.name + '",\n'
-+        text += generateGuardEnd(func, eglFunc)
-+    text += "    NULL\n"
-+    text += "};\n"
-+
-+    text += "const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[__EGL_DISPATCH_COUNT + 1] = {\n"
-+    for (func, eglFunc) in functions:
-+        text += generateGuardBegin(func, eglFunc)
-+        if eglFunc["method"] != "none":
-+            text += "    (__eglMustCastToProperFunctionPointerType) " + eglFunc.get("prefix", "") + func.name + ",\n"
-+        else:
-+            text += "    NULL, // " + func.name + "\n"
-+        text += generateGuardEnd(func, eglFunc)
-+    text += "    NULL\n"
-+    text += "};\n"
-+
-+    return text
-+
-+def generateGuardBegin(func, eglFunc):
-+    ext = eglFunc.get("extension")
-+    if ext is not None:
-+        return "#if " + ext + "\n"
-+    else:
-+        return ""
-+
-+def generateGuardEnd(func, eglFunc):
-+    if eglFunc.get("extension") is not None:
-+        return "#endif\n"
-+    else:
-+        return ""
-+
-+def generateDispatchFunc(func, eglFunc):
-+    text = ""
-+
-+    if eglFunc.get("static"):
-+        text += "static "
-+    elif eglFunc.get("public"):
-+        text += "PUBLIC "
-+    text += textwrap.dedent(
-+    r"""
-+    {f.rt} EGLAPIENTRY {ef[prefix]}{f.name}({f.decArgs})
-+    {{
-+        typedef {f.rt} EGLAPIENTRY (* _pfn_{f.name})({f.decArgs});
-+    """).lstrip("\n").format(f=func, ef=eglFunc)
-+
-+    if func.hasReturn():
-+        text += "    {f.rt} _ret = {ef[retval]};\n".format(f=func, ef=eglFunc)
-+
-+    text += "    _pfn_{f.name} _ptr_{f.name} = (_pfn_{f.name}) ".format(f=func)
-+    if eglFunc["method"] == "current":
-+        text += "__eglDispatchFetchByCurrent(__EGL_DISPATCH_{f.name});\n".format(f=func)
-+
-+    elif eglFunc["method"] in ("display", "device"):
-+        if eglFunc["method"] == "display":
-+            lookupFunc = "__eglDispatchFetchByDisplay"
-+            lookupType = "EGLDisplay"
-+        else:
-+            assert eglFunc["method"] == "device"
-+            lookupFunc = "__eglDispatchFetchByDevice"
-+            lookupType = "EGLDeviceEXT"
-+
-+        lookupArg = None
-+        for arg in func.args:
-+            if arg.type == lookupType:
-+                lookupArg = arg.name
-+                break
-+        if lookupArg is None:
-+            raise ValueError("Can't find %s argument for function %s" % (lookupType, func.name,))
-+
-+        text += "{lookupFunc}({lookupArg}, __EGL_DISPATCH_{f.name});\n".format(
-+                f=func, lookupFunc=lookupFunc, lookupArg=lookupArg)
-+    else:
-+        raise ValueError("Unknown dispatch method: %r" % (eglFunc["method"],))
-+
-+    text += "    if(_ptr_{f.name} != NULL) {{\n".format(f=func)
-+    text += "        "
-+    if func.hasReturn():
-+        text += "_ret = "
-+    text += "_ptr_{f.name}({f.callArgs});\n".format(f=func)
-+    text += "    }\n"
-+
-+    if func.hasReturn():
-+        text += "    return _ret;\n"
-+    text += "}\n"
-+    return text
-+
-+def getDefaultReturnValue(typename):
-+    if typename.endswith("*"):
-+        return "NULL"
-+    elif typename == "EGLDisplay":
-+        return "EGL_NO_DISPLAY"
-+    elif typename == "EGLContext":
-+        return "EGL_NO_CONTEXT"
-+    elif typename == "EGLSurface":
-+        return "EGL_NO_SURFACE"
-+    elif typename == "EGLBoolean":
-+        return "EGL_FALSE";
-+
-+    return "0"
-+
-+if __name__ == "__main__":
-+    main()
-+
-diff --git a/src/egl/main/50_mesa.json b/src/egl/main/50_mesa.json
-new file mode 100644
-index 0000000000..8aaaa100ff
---- /dev/null
-+++ b/src/egl/main/50_mesa.json
-@@ -0,0 +1,6 @@
-+{
-+    "file_format_version" : "1.0.0",
-+    "ICD" : {
-+        "library_path" : "libEGL_mesa.so.0"
-+    }
-+}
-diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
-index cab05c2301..5f21f3457d 100644
---- a/src/egl/main/eglapi.c
-+++ b/src/egl/main/eglapi.c
-@@ -651,7 +651,11 @@ eglQueryString(EGLDisplay dpy, EGLint name)
-    _EGLDriver *drv;
- 
-    if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS) {
--      RETURN_EGL_SUCCESS(NULL, _eglGlobal.ClientExtensionString);
-+      const char *ret = _eglGetClientExtensionString();
-+      if (ret != NULL)
-+         RETURN_EGL_SUCCESS(NULL, ret);
-+      else
-+         RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, NULL);
-    }
- 
-    disp = _eglLockDisplay(dpy);
-diff --git a/src/egl/main/egldispatchstubs.c b/src/egl/main/egldispatchstubs.c
-new file mode 100644
-index 0000000000..e02abd7a9e
---- /dev/null
-+++ b/src/egl/main/egldispatchstubs.c
-@@ -0,0 +1,110 @@
-+#include "egldispatchstubs.h"
-+#include "g_egldispatchstubs.h"
-+
-+#include <string.h>
-+
-+#include "eglcurrent.h"
-+
-+static const __EGLapiExports *exports;
-+
-+const int __EGL_DISPATCH_FUNC_COUNT = __EGL_DISPATCH_COUNT;
-+int __EGL_DISPATCH_FUNC_INDICES[__EGL_DISPATCH_COUNT + 1];
-+
-+static int FindProcIndex(const char *name)
-+{
-+    unsigned first = 0;
-+    unsigned last = __EGL_DISPATCH_COUNT - 1;
-+
-+    while (first <= last) {
-+        unsigned middle = (first + last) / 2;
-+        int comp = strcmp(name,
-+                          __EGL_DISPATCH_FUNC_NAMES[middle]);
-+
-+        if (comp > 0)
-+            first = middle + 1;
-+        else if (comp < 0)
-+            last = middle - 1;
-+        else
-+            return middle;
-+    }
-+
-+    /* Just point to the dummy entry at the end of the respective table */
-+    return __EGL_DISPATCH_COUNT;
-+}
-+
-+void __eglInitDispatchStubs(const __EGLapiExports *exportsTable)
-+{
-+    int i;
-+    exports = exportsTable;
-+    for (i=0; i<__EGL_DISPATCH_FUNC_COUNT; i++) {
-+        __EGL_DISPATCH_FUNC_INDICES[i] = -1;
-+    }
-+}
-+
-+void __eglSetDispatchIndex(const char *name, int dispatchIndex)
-+{
-+    int index = FindProcIndex(name);
-+    __EGL_DISPATCH_FUNC_INDICES[index] = dispatchIndex;
-+}
-+
-+void *__eglDispatchFindDispatchFunction(const char *name)
-+{
-+    int index = FindProcIndex(name);
-+    return (void *) __EGL_DISPATCH_FUNCS[index];
-+}
-+
-+static __eglMustCastToProperFunctionPointerType FetchVendorFunc(__EGLvendorInfo *vendor,
-+        int index, EGLint errorCode)
-+{
-+    __eglMustCastToProperFunctionPointerType func = NULL;
-+
-+    if (vendor != NULL) {
-+        func = exports->fetchDispatchEntry(vendor, __EGL_DISPATCH_FUNC_INDICES[index]);
-+    }
-+    if (func == NULL) {
-+        if (errorCode != EGL_SUCCESS) {
-+            _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]);
-+        }
-+        return NULL;
-+    }
-+
-+    if (!exports->setLastVendor(vendor)) {
-+        // Don't bother trying to set an error code in libglvnd. If
-+        // setLastVendor failed, then setEGLError would also fail.
-+        _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]);
-+        return NULL;
-+    }
-+
-+    return func;
-+}
-+
-+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index)
-+{
-+    __EGLvendorInfo *vendor;
-+
-+    // Note: This is only used for the eglWait* functions. For those, if
-+    // there's no current context, then they're supposed to do nothing but
-+    // return success.
-+    exports->threadInit();
-+    vendor = exports->getCurrentVendor();
-+    return FetchVendorFunc(vendor, index, EGL_SUCCESS);
-+}
-+
-+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index)
-+{
-+    __EGLvendorInfo *vendor;
-+
-+    exports->threadInit();
-+    vendor = exports->getVendorFromDisplay(dpy);
-+    return FetchVendorFunc(vendor, index, EGL_BAD_DISPLAY);
-+}
-+
-+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dev, int index)
-+{
-+    __EGLvendorInfo *vendor;
-+
-+    exports->threadInit();
-+    vendor = exports->getVendorFromDevice(dev);
-+    return FetchVendorFunc(vendor, index, EGL_BAD_DEVICE_EXT);
-+}
-+
-diff --git a/src/egl/main/egldispatchstubs.h b/src/egl/main/egldispatchstubs.h
-new file mode 100644
-index 0000000000..7861ea5e61
---- /dev/null
-+++ b/src/egl/main/egldispatchstubs.h
-@@ -0,0 +1,26 @@
-+#ifndef EGLDISPATCHSTUBS_H
-+#define EGLDISPATCHSTUBS_H
-+
-+#include "glvnd/libeglabi.h"
-+
-+// These variables are all generated along with the dispatch stubs.
-+extern const int __EGL_DISPATCH_FUNC_COUNT;
-+extern const char * const __EGL_DISPATCH_FUNC_NAMES[];
-+extern int __EGL_DISPATCH_FUNC_INDICES[];
-+extern const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[];
-+
-+void __eglInitDispatchStubs(const __EGLapiExports *exportsTable);
-+void __eglSetDispatchIndex(const char *name, int index);
-+
-+/**
-+ * Returns the dispatch function for the given name, or \c NULL if the function
-+ * isn't supported.
-+ */
-+void *__eglDispatchFindDispatchFunction(const char *name);
-+
-+// Helper functions used by the generated stubs.
-+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index);
-+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dpy, int index);
-+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index);
-+
-+#endif // EGLDISPATCHSTUBS_H
-diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c
-index cb41063e32..baf96bb1ec 100644
---- a/src/egl/main/eglglobals.c
-+++ b/src/egl/main/eglglobals.c
-@@ -29,6 +29,8 @@
- 
- 
- #include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
- #include <assert.h>
- #include "c11/threads.h"
- 
-@@ -50,9 +52,13 @@ struct _egl_global _eglGlobal =
-       _eglFiniDisplay
-    },
- 
--   /* ClientExtensionString */
-+   /* ClientOnlyExtensionString */
-    "EGL_EXT_client_extensions"
-    " EGL_EXT_platform_base"
-+   " EGL_KHR_client_get_all_proc_addresses"
-+   " EGL_KHR_debug",
-+
-+   /* PlatformExtensionString */
- #ifdef HAVE_WAYLAND_PLATFORM
-    " EGL_EXT_platform_wayland"
- #endif
-@@ -65,8 +71,9 @@ struct _egl_global _eglGlobal =
- #ifdef HAVE_SURFACELESS_PLATFORM
-    " EGL_MESA_platform_surfaceless"
- #endif
--   " EGL_KHR_client_get_all_proc_addresses"
--   " EGL_KHR_debug",
-+   "",
-+
-+   NULL, /* ClientExtensionsString */
- 
-    NULL, /* debugCallback */
-    _EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR, /* debugTypesEnabled */
-@@ -101,3 +108,37 @@ _eglAddAtExitCall(void (*func)(void))
-       mtx_unlock(_eglGlobal.Mutex);
-    }
- }
-+
-+const char *
-+_eglGetClientExtensionString(void)
-+{
-+   const char *ret;
-+
-+   mtx_lock(_eglGlobal.Mutex);
-+
-+   if (_eglGlobal.ClientExtensionString == NULL) {
-+      size_t clientLen = strlen(_eglGlobal.ClientOnlyExtensionString);
-+      size_t platformLen = strlen(_eglGlobal.PlatformExtensionString);
-+
-+      _eglGlobal.ClientExtensionString = (char *) malloc(clientLen + platformLen + 1);
-+      if (_eglGlobal.ClientExtensionString != NULL) {
-+         char *ptr = _eglGlobal.ClientExtensionString;
-+
-+         memcpy(ptr, _eglGlobal.ClientOnlyExtensionString, clientLen);
-+         ptr += clientLen;
-+
-+         if (platformLen > 0) {
-+            // Note that if PlatformExtensionString is not empty, then it will
-+            // already have a leading space.
-+            assert(_eglGlobal.PlatformExtensionString[0] == ' ');
-+            memcpy(ptr, _eglGlobal.PlatformExtensionString, platformLen);
-+            ptr += platformLen;
-+         }
-+         *ptr = '\0';
-+      }
-+   }
-+   ret = _eglGlobal.ClientExtensionString;
-+
-+   mtx_unlock(_eglGlobal.Mutex);
-+   return ret;
-+}
-diff --git a/src/egl/main/eglglobals.h b/src/egl/main/eglglobals.h
-index ec4f3d04a3..c6ef59d482 100644
---- a/src/egl/main/eglglobals.h
-+++ b/src/egl/main/eglglobals.h
-@@ -57,7 +57,15 @@ struct _egl_global
-    EGLint NumAtExitCalls;
-    void (*AtExitCalls[10])(void);
- 
--   const char *ClientExtensionString;
-+   /*
-+    * Under libglvnd, the client extension string has to be split into two
-+    * strings, one for platform extensions, and one for everything else. So,
-+    * define separate strings for them. _eglGetClientExtensionString will
-+    * concatenate them together for a non-libglvnd build.
-+    */
-+   const char *ClientOnlyExtensionString;
-+   const char *PlatformExtensionString;
-+   char *ClientExtensionString;
- 
-    EGLDEBUGPROCKHR debugCallback;
-    unsigned int debugTypesEnabled;
-@@ -76,4 +84,7 @@ static inline unsigned int DebugBitFromType(EGLenum type)
-    return (1 << (type - EGL_DEBUG_MSG_CRITICAL_KHR));
- }
- 
-+extern const char *
-+_eglGetClientExtensionString(void);
-+
- #endif /* EGLGLOBALS_INCLUDED */
-diff --git a/src/egl/main/eglglvnd.c b/src/egl/main/eglglvnd.c
-new file mode 100644
-index 0000000000..6b984ed6c2
---- /dev/null
-+++ b/src/egl/main/eglglvnd.c
-@@ -0,0 +1,82 @@
-+#include <string.h>
-+#include <assert.h>
-+
-+#include <glvnd/libeglabi.h>
-+
-+#include "eglcurrent.h"
-+#include "egldispatchstubs.h"
-+#include "eglglobals.h"
-+
-+static const __EGLapiExports *__eglGLVNDApiExports = NULL;
-+
-+static const char * EGLAPIENTRY
-+__eglGLVNDQueryString(EGLDisplay dpy, EGLenum name)
-+{
-+   // For client extensions, return the list of non-platform extensions. The
-+   // platform extensions are returned by __eglGLVNDGetVendorString.
-+   if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS)
-+      return _eglGlobal.ClientOnlyExtensionString;
-+
-+   // For everything else, forward to the normal eglQueryString function.
-+   return eglQueryString(dpy, name);
-+}
-+
-+static const char *
-+__eglGLVNDGetVendorString(int name)
-+{
-+   if (name == __EGL_VENDOR_STRING_PLATFORM_EXTENSIONS) {
-+      const char *str = _eglGlobal.PlatformExtensionString;
-+      // The platform extension string may have a leading space. If it does,
-+      // then skip over it.
-+      while (*str == ' ') {
-+         str++;
-+      }
-+      return str;
-+   }
-+
-+   return NULL;
-+}
-+
-+static EGLDisplay
-+__eglGLVNDGetPlatformDisplay(EGLenum platform, void *native_display,
-+      const EGLAttrib *attrib_list)
-+{
-+   if (platform == EGL_NONE) {
-+      assert(native_display == (void *) EGL_DEFAULT_DISPLAY);
-+      assert(attrib_list == NULL);
-+      return eglGetDisplay((EGLNativeDisplayType) native_display);
-+   } else {
-+      return eglGetPlatformDisplay(platform, native_display, attrib_list);
-+   }
-+}
-+
-+static void *
-+__eglGLVNDGetProcAddress(const char *procName)
-+{
-+   if (strcmp(procName, "eglQueryString") == 0)
-+      return (void *) __eglGLVNDQueryString;
-+
-+   return (void *) eglGetProcAddress(procName);
-+}
-+
-+EGLAPI EGLBoolean
-+__egl_Main(uint32_t version, const __EGLapiExports *exports,
-+     __EGLvendorInfo *vendor, __EGLapiImports *imports)
-+{
-+   if (EGL_VENDOR_ABI_GET_MAJOR_VERSION(version) !=
-+       EGL_VENDOR_ABI_MAJOR_VERSION)
-+      return EGL_FALSE;
-+
-+   __eglGLVNDApiExports = exports;
-+   __eglInitDispatchStubs(exports);
-+
-+   imports->getPlatformDisplay = __eglGLVNDGetPlatformDisplay;
-+   imports->getSupportsAPI = _eglIsApiValid;
-+   imports->getVendorString = __eglGLVNDGetVendorString;
-+   imports->getProcAddress = __eglGLVNDGetProcAddress;
-+   imports->getDispatchAddress = __eglDispatchFindDispatchFunction;
-+   imports->setDispatchIndex = __eglSetDispatchIndex;
-+
-+   return EGL_TRUE;
-+}
-+
--- 
-2.11.0
-
diff --git a/abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch b/abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch
deleted file mode 100644
index 376828e..0000000
--- a/abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 16875ea5b9170f2213fd486d763f27a9d6dfc1b5 Mon Sep 17 00:00:00 2001
-From: Nicolas Chauvet <kwizart@gmail.com>
-Date: Tue, 25 Oct 2016 09:35:13 +0200
-Subject: [PATCH 1/3] glapi: Link with glapi when built shared
-
-This patch explicitly links to libglapi when built shared.
-This was specially needed to avoid undefined non-weak-symbol as shown
-with:
-
-ldd  -r /usr/lib64/dri/i915_dri.so
-	linux-vdso.so.1 (0x00007fff821f4000)
-	libdrm_intel.so.1 => /lib64/libdrm_intel.so.1 (0x00007f6adf2c7000)
-	libdrm_nouveau.so.2 => /lib64/libdrm_nouveau.so.2 (0x00007f6adf0be000)
-	libdrm_radeon.so.1 => /lib64/libdrm_radeon.so.1 (0x00007f6adeeb2000)
-	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6adec8b000)
-	libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f6adea7c000)
-	libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6ade84f000)
-	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6ade633000)
-	libdl.so.2 => /lib64/libdl.so.2 (0x00007f6ade42f000)
-	libm.so.6 => /lib64/libm.so.6 (0x00007f6ade125000)
-	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6addf0e000)
-	libc.so.6 => /lib64/libc.so.6 (0x00007f6addb4c000)
-	/lib64/ld-linux-x86-64.so.2 (0x000056274e913000)
-	libpciaccess.so.0 => /lib64/libpciaccess.so.0 (0x00007f6add941000)
-	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f6add6ce000)
-undefined symbol: _glapi_get_dispatch_table_size	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_get_context	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_add_dispatch	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_check_multithread	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_tls_Context	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_set_context	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_set_dispatch	(/usr/lib64/dri/i915_dri.so)
-undefined symbol: _glapi_tls_Dispatch	(/usr/lib64/dri/i915_dri.so)
-
-v3: Add gallium counterpart for radeon cases
-Reported-by: Jonathan Dieter <jdieter@lesbg.com>
-
-v2: Add Bugzilla and Signed-off
-
-Fixes: 0cbc90c57c ("mesa: dri: Add shared glapi to LIBADD on Android")
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98428
-Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
----
- src/gallium/targets/dri/Makefile.am | 2 --
- src/mesa/drivers/dri/Makefile.am    | 3 ---
- 2 files changed, 5 deletions(-)
-
-diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
-index bca747f..05f6c8c 100644
---- a/src/gallium/targets/dri/Makefile.am
-+++ b/src/gallium/targets/dri/Makefile.am
-@@ -1,10 +1,8 @@
- include $(top_srcdir)/src/gallium/Automake.inc
- 
--if HAVE_ANDROID
- if HAVE_SHARED_GLAPI
- SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la
- endif
--endif
- 
- AM_CFLAGS = \
- 	-I$(top_srcdir)/src/mapi \
-diff --git a/src/mesa/drivers/dri/Makefile.am b/src/mesa/drivers/dri/Makefile.am
-index 1c6dd08..8e68fc0 100644
---- a/src/mesa/drivers/dri/Makefile.am
-+++ b/src/mesa/drivers/dri/Makefile.am
-@@ -6,12 +6,9 @@ MEGADRIVERS_DEPS =
- 
- SUBDIRS+=common
- 
--# On Android, we need to explicitly link to libglapi.so.
--if HAVE_ANDROID
- if HAVE_SHARED_GLAPI
- SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la
- endif
--endif
- 
- if HAVE_I915_DRI
- SUBDIRS += i915
--- 
-2.7.4
-
diff --git a/abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch b/abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
deleted file mode 100644
index f3b0f99..0000000
--- a/abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 2d4094c2caad6cef2f5544b3966fcc37ceb32036 Mon Sep 17 00:00:00 2001
-From: Kyle Brenneman <kbrenneman@nvidia.com>
-Date: Thu, 5 Jan 2017 14:29:47 -0700
-Subject: [PATCH 2/2] fixup! EGL: Implement the libglvnd interface for EGL (v2)
-
----
- src/egl/generate/eglFunctionList.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py
-index b19b5f7193..80cb83437c 100644
---- a/src/egl/generate/eglFunctionList.py
-+++ b/src/egl/generate/eglFunctionList.py
-@@ -53,12 +53,14 @@ method values:
-     Select the vendor that owns the current context.
- """
- 
--def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None):
-+def _eglFunc(name, method, static=None, public=False, inheader=None, prefix="dispatch_", extension=None, retval=None):
-     """
-     A convenience function to define an entry in the EGL function list.
-     """
-+    if static is None:
-+        static = (not public and method != "custom")
-     if inheader is None:
--        inheader = (not public)
-+        inheader = (not static)
-     values = {
-         "method" : method,
-         "prefix" : prefix,
--- 
-2.11.0
-
diff --git a/abs/core/mesa/0002-glvnd-fix-gl-dot-pc.patch b/abs/core/mesa/0002-glvnd-fix-gl-dot-pc.patch
new file mode 100644
index 0000000..68118f4
--- /dev/null
+++ b/abs/core/mesa/0002-glvnd-fix-gl-dot-pc.patch
@@ -0,0 +1,12 @@
+diff -up mesa-12.0.3/src/mesa/gl.pc.in.jx mesa-12.0.3/src/mesa/gl.pc.in
+--- mesa-12.0.3/src/mesa/gl.pc.in.jx	2016-01-18 02:39:26.000000000 -0500
++++ mesa-12.0.3/src/mesa/gl.pc.in	2016-10-25 13:06:44.013159358 -0400
+@@ -7,7 +7,7 @@ Name: gl
+ Description: Mesa OpenGL library
+ Requires.private: @GL_PC_REQ_PRIV@
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -l@GL_LIB@
++Libs: -L${libdir} -lGL
+ Libs.private: @GL_PC_LIB_PRIV@
+ Cflags: -I${includedir} @GL_PC_CFLAGS@
+ glx_tls: @GLX_TLS@
diff --git a/abs/core/mesa/PKGBUILD b/abs/core/mesa/PKGBUILD
index 5b30ea2..3c0f62b 100644
--- a/abs/core/mesa/PKGBUILD
+++ b/abs/core/mesa/PKGBUILD
@@ -4,47 +4,34 @@
 
 pkgbase=mesa
 pkgname=('opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
-pkgver=17.0.2
-pkgrel=2
+pkgver=17.1.2
+pkgrel=1
 arch=('i686' 'x86_64')
 makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto' 
              'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'elfutils' 'llvm'
-             'libomxil-bellagio' 'libclc' 'clang' 'libglvnd')
+             'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors')
 url="http://mesa3d.sourceforge.net"
 license=('custom')
 source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
         LICENSE
-        remove-libpthread-stubs.patch
-        0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
         0001-Fix-linkage-against-shared-glapi.patch
-        0001-glapi-Link-with-glapi-when-built-shared.patch
-        0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
-        glvnd-fix-gl-dot-pc.patch)
-sha256sums=('f8f191f909e01e65de38d5bdea5fb057f21649a3aed20948be02348e77a689d4'
+        0002-glvnd-fix-gl-dot-pc.patch)
+sha256sums=('0937804f43746339b1f9540d8f9c8b4a1bb3d3eec0e4020eac283b8799798239'
             'SKIP'
             '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2'
-            '75ab53ad44b95204c788a2988e97a5cb963bdbf6072a5466949a2afb79821c8f'
-            '1d3475dc2f4f3e450cf313130d3ce965f933f396058828fa843c0df8115feeb9'
             'c68d1522f9bce4ce31c92aa7a688da49f13043f5bb2254795b76dea8f47130b7'
-            '064dcd5a3ab1b7c23383e2cafbd37859e4c353f8839671d9695c6f7c2ef3260b'
-            '81d0ced62f61677ea0cf5f69a491093409fa1370f2ef045c41106ca8bf9c46f6'
             '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966')
 validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.velikov@gmail.com>
-
+validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # Andres Gomez <tanty@igalia.com>
+validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasuarez@igalia.com>"
+ 
 prepare() {
   cd ${srcdir}/mesa-${pkgver}
 
-  # Now mesa checks for libpthread-stubs - so remove the check
-  patch -Np1 -i ../remove-libpthread-stubs.patch
-  
   # glvnd support patches - from Fedora
-  # https://patchwork.freedesktop.org/series/12354/, v3 & v4
-  patch -Np1 -i ../0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
-  patch -Np1 -i ../0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
   # non-upstreamed ones
-  patch -Np1 -i ../glvnd-fix-gl-dot-pc.patch
   patch -Np1 -i ../0001-Fix-linkage-against-shared-glapi.patch
-  patch -Np1 -i ../0001-glapi-Link-with-glapi-when-built-shared.patch
+  patch -Np1 -i ../0002-glvnd-fix-gl-dot-pc.patch
 
   autoreconf -fiv
 }
@@ -55,15 +42,17 @@ build() {
   ./configure --prefix=/usr \
     --sysconfdir=/etc \
     --with-dri-driverdir=/usr/lib/xorg/modules/dri \
-    --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast,virgl \
+    --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast,virgl,swr \
     --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \
-    --with-egl-platforms=x11,drm,wayland \
+    --with-platforms=x11,drm,wayland \
     --with-vulkan-drivers=intel,radeon \
     --disable-xvmc \
-    --enable-gallium-llvm \
+    --enable-llvm \
     --enable-llvm-shared-libs \
     --enable-shared-glapi \
     --enable-libglvnd \
+    --enable-libunwind \
+    --enable-lmsensors \
     --enable-egl \
     --enable-glx \
     --enable-glx-tls \
@@ -72,6 +61,7 @@ build() {
     --enable-gbm \
     --enable-dri \
     --enable-gallium-osmesa \
+    --enable-gallium-extra-hud \
     --enable-texture-float \
     --enable-xa \
     --enable-vdpau \
@@ -80,7 +70,6 @@ build() {
     --enable-opencl \
     --enable-opencl-icd \
     --with-clang-libdir=/usr/lib
-    #--with-sha1=libgcrypt \
 
   make
 
@@ -91,7 +80,7 @@ build() {
 
 package_opencl-mesa() {
   pkgdesc="OpenCL support for AMD/ATI Radeon mesa drivers"
-  depends=('expat' 'libdrm' 'libelf' 'libclc' 'clang')
+  depends=('expat' 'libdrm' 'libelf' 'lm_sensors' 'libunwind' 'libclc' 'clang')
   optdepends=('opencl-headers: headers necessary for OpenCL development')
   provides=('opencl-driver')
 
@@ -139,7 +128,7 @@ package_vulkan-radeon() {
 
 package_libva-mesa-driver() {
   pkgdesc="VA-API implementation for gallium"
-  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')
+  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence' 'lm_sensors' 'libunwind')
 
   install -m755 -d ${pkgdir}/usr/lib
   cp -rv ${srcdir}/fakeinstall/usr/lib/dri ${pkgdir}/usr/lib
@@ -150,7 +139,7 @@ package_libva-mesa-driver() {
 
 package_mesa-vdpau() {
   pkgdesc="Mesa VDPAU drivers"
-  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')
+  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence' 'lm_sensors' 'libunwind')
 
   install -m755 -d ${pkgdir}/usr/lib
   cp -rv ${srcdir}/fakeinstall/usr/lib/vdpau ${pkgdir}/usr/lib
@@ -162,7 +151,7 @@ package_mesa-vdpau() {
 package_mesa() {
   pkgdesc="an open-source implementation of the OpenGL specification"
   depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' 
-           'libomxil-bellagio' 'libtxc_dxtn' 'llvm-libs' 'libglvnd')
+           'libomxil-bellagio' 'libtxc_dxtn' 'libunwind' 'llvm-libs' 'lm_sensors' 'libglvnd')
   optdepends=('opengl-man-pages: for the OpenGL API man pages'
               'mesa-vdpau: for accelerated video playback'
               'libva-mesa-driver: for accelerated video playback')
@@ -186,6 +175,7 @@ package_mesa() {
   cp -rv ${srcdir}/fakeinstall/usr/lib/libOSMesa.so* ${pkgdir}/usr/lib/
   cp -rv ${srcdir}/fakeinstall/usr/lib/libwayland*.so* ${pkgdir}/usr/lib/
   cp -rv ${srcdir}/fakeinstall/usr/lib/libxatracker.so* ${pkgdir}/usr/lib/
+  cp -rv ${srcdir}/fakeinstall/usr/lib/libswrAVX*.so* ${pkgdir}/usr/lib/
 
   cp -rv ${srcdir}/fakeinstall/usr/include ${pkgdir}/usr
   cp -rv ${srcdir}/fakeinstall/usr/lib/pkgconfig ${pkgdir}/usr/lib/
diff --git a/abs/core/mesa/__changelog b/abs/core/mesa/__changelog
deleted file mode 100644
index 2d07d92..0000000
--- a/abs/core/mesa/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-PKGBUILD: add llvm-39.patch
diff --git a/abs/core/mesa/glvnd-fix-gl-dot-pc.patch b/abs/core/mesa/glvnd-fix-gl-dot-pc.patch
deleted file mode 100644
index 68118f4..0000000
--- a/abs/core/mesa/glvnd-fix-gl-dot-pc.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up mesa-12.0.3/src/mesa/gl.pc.in.jx mesa-12.0.3/src/mesa/gl.pc.in
---- mesa-12.0.3/src/mesa/gl.pc.in.jx	2016-01-18 02:39:26.000000000 -0500
-+++ mesa-12.0.3/src/mesa/gl.pc.in	2016-10-25 13:06:44.013159358 -0400
-@@ -7,7 +7,7 @@ Name: gl
- Description: Mesa OpenGL library
- Requires.private: @GL_PC_REQ_PRIV@
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -l@GL_LIB@
-+Libs: -L${libdir} -lGL
- Libs.private: @GL_PC_LIB_PRIV@
- Cflags: -I${includedir} @GL_PC_CFLAGS@
- glx_tls: @GLX_TLS@
diff --git a/abs/core/mesa/remove-libpthread-stubs.patch b/abs/core/mesa/remove-libpthread-stubs.patch
deleted file mode 100644
index efe8aad..0000000
--- a/abs/core/mesa/remove-libpthread-stubs.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 54416b4..8a708d3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -824,7 +824,7 @@ test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
- 
- dnl pthread-stubs is mandatory on targets where it exists
- case "$host_os" in
--cygwin* )
-+cygwin* | linux* )
-     pthread_stubs_possible="no"
-     ;;
- * )
-- 
cgit v0.12


From 71de50f17a5df12b5a628c02627762ba66fa6640 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Jun 2017 21:01:42 +0000
Subject: nvidia-304xx: rebuild for linux 4.9.31

---
 abs/core/nvidia-304xx/PKGBUILD | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/abs/core/nvidia-304xx/PKGBUILD b/abs/core/nvidia-304xx/PKGBUILD
index a61edee..3ce7ce4 100644
--- a/abs/core/nvidia-304xx/PKGBUILD
+++ b/abs/core/nvidia-304xx/PKGBUILD
@@ -6,7 +6,7 @@ pkgbase=nvidia-304xx
 pkgname=(nvidia-304xx nvidia-304xx-dkms)
 pkgver=304.135
 _extramodules=extramodules-4.9-ARCH
-pkgrel=4
+pkgrel=5
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 makedepends=('linux' 'linux-headers>=4.9' 'linux-headers<4.10')
@@ -15,12 +15,14 @@ license=('custom')
 options=('!strip')
 source=('disable-mtrr.patch'
         'drm-driver-legacy.patch'
-        'kernel_4.10.patch')
+        'kernel_4.10.patch'
+	'kernel_4.11.patch')
 source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
 sha512sums=('54e8825e523f11706890e09e476498f3a30f75ce4e350ff2ff8a1e1c3af574d9ccfb8903543766b6863d94cdfbf46e68cd3d33380867dd976cafc8dd2dd78774'
             'fa39dee5c9f1ea98286c87165f683ee194b2cb4056aa6b556e822b9ee760dcf3683ea001c3704e79b9ac9712314d7df5690dc7f68440cda7a96791f94425455d'
-            '68dabbf6ad889c46bd0c01ebb697b80f4aa526ef1cdc53de008343a243adefc6ce7f2778be7005f2d79f3d23c0a3ff69f67ecdb9f97c0feb0ec99405a0c1046a')
+            '68dabbf6ad889c46bd0c01ebb697b80f4aa526ef1cdc53de008343a243adefc6ce7f2778be7005f2d79f3d23c0a3ff69f67ecdb9f97c0feb0ec99405a0c1046a'
+            'da3d1698af8b97e8fc3b6d3c690925e0258f8b6ad26a24f8d32c04a5a82701655208021f9f5af0ce44cb397a7422e2776a05193204bc7e4ac2b98f6e173984ea')
 sha512sums_i686=('c2645cc9a6f23641d8b6da51e72e203980068c05e365fcc73b32322a6875ce95e81f4e0d893276e14e84e93464488539c16db6b3be04f5324cf7d7a12bb557f8')
 sha512sums_x86_64=('a5aa48baa75eb267bd193e59328aa5fbc15d41045bb7e97aa1b96b918b9e68a1c1bf95624d9d494336256e0af2c41e188d30fe91be4967084de3387f50d3805c')
 
@@ -32,7 +34,8 @@ prepare() {
     sh "${_pkg}.run" --extract-only
     cd "${_pkg}"
     # patches here
-#    patch -Np1 --no-backup-if-mismatch -i ../kernel_4.10.patch
+    patch -Np1 --no-backup-if-mismatch -i ../kernel_4.10.patch
+    patch -Np1 --no-backup-if-mismatch -i ../kernel_4.11.patch
 
     # FS#47092
     #(cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/disable-mtrr.patch)
-- 
cgit v0.12


From f8d1d319d2e5d53c26624adab41f02747c502f14 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 8 Jun 2017 17:14:17 +0000
Subject: lm-sensors: update to 3.4.0

---
 abs/extra/lm_sensors/PKGBUILD | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/abs/extra/lm_sensors/PKGBUILD b/abs/extra/lm_sensors/PKGBUILD
index 78f622e..43c813e 100644
--- a/abs/extra/lm_sensors/PKGBUILD
+++ b/abs/extra/lm_sensors/PKGBUILD
@@ -2,8 +2,8 @@
 # Maintainer: Eric Bélanger <eric@archlinux.org>
 
 pkgname=lm_sensors
-pkgver=3.3.5
-pkgrel=1
+pkgver=3.4.0
+pkgrel=2
 pkgdesc="Collection of user space tools for general SMBus access and hardware monitoring"
 arch=('i686' 'x86_64')
 url="http://www.lm-sensors.org/"
@@ -12,31 +12,31 @@ depends=('perl' 'sysfsutils')
 makedepends=('rrdtool')
 optdepends=('rrdtool: for logging with sensord')
 backup=('etc/sensors3.conf' 'etc/healthd.conf' 'etc/conf.d/sensord')
-source=(http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${pkgver}.tar.bz2{,.sig}
+source=($pkgname-$pkgver::https://github.com/groeck/lm-sensors/archive/V${pkgver//\./-}.tar.gz
 	healthd healthd.conf healthd.service sensord.conf
         lm_sensors-fancontrol.patch)
-sha1sums=('179989a52bae8f01ba8ed77e8a15af6ec653d89e'
-          'SKIP'
+sha1sums=('4a9026e4db894c98ee7cea0bec1188108e415f71'
           '1c91ae403d3cd02b6177ad1f1b2f2c3a7a3257f5'
           '1edd4d72ade22adfc128fb8d670e85c633fd1d18'
           'd72ec328e9303acef86342483b6f8537de6117d9'
           'f4b5f21fdb3b2a55aa353afa1603f953b207b73b'
           'b0bc977348610d6a008d75a43f65800251c4c9f7')
+validpgpkeys=('7CA69F4460F1BDC41FD2C858A5526B9BB3CD4E6A')
 
 prepare() {
-  cd ${pkgname}-${pkgver}
+  cd ${pkgname/_/-}-${pkgver//\./-}
   sed -i 's|/etc/sysconfig|/etc/conf.d|' prog/{detect/sensors-detect,init/{sensord,lm_sensors}.service}
   sed -i 's/EnvironmentFile=/EnvironmentFile=-/' prog/init/lm_sensors.service
   patch -p0 -i "${srcdir}/lm_sensors-fancontrol.patch"
 }
 
 build() {
-  cd ${pkgname}-${pkgver}
+  cd ${pkgname/_/-}-${pkgver//\./-}
   make PREFIX=/usr
 }
 
 package() {
-  cd ${pkgname}-${pkgver}
+  cd ${pkgname/_/-}-${pkgver//\./-}
   make PROG_EXTRA=sensord BUILD_STATIC_LIB=0 \
     PREFIX=/usr SBINDIR=/usr/bin MANDIR=/usr/share/man DESTDIR="${pkgdir}" install
 
-- 
cgit v0.12


From 39939b77f5be04020bce74f1d4aaf7bb5d0c4c00 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 8 Jun 2017 17:23:26 +0000
Subject: runit-scripts: vnc/run: force LD_LIBRARY_PATH so that mesa libGL is
 used instead of nvidia so that opengl apps will run

---
 abs/core/runit-scripts/PKGBUILD                      | 2 +-
 abs/core/runit-scripts/runitscripts/services/vnc/run | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD
index 96959be..1c4c342 100755
--- a/abs/core/runit-scripts/PKGBUILD
+++ b/abs/core/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=8.4
-pkgrel=4
+pkgrel=5
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license=('BSD')
diff --git a/abs/core/runit-scripts/runitscripts/services/vnc/run b/abs/core/runit-scripts/runitscripts/services/vnc/run
index c168251..70118cc 100755
--- a/abs/core/runit-scripts/runitscripts/services/vnc/run
+++ b/abs/core/runit-scripts/runitscripts/services/vnc/run
@@ -11,5 +11,5 @@ geometry=1920x1080
 #. /etc/conf.d/vncserver 2>/dev/null
 cp -f $MV_ROOT/templates/vnc.service /etc/avahi/services/vnc.service 2>/dev/null
 cd ~vncsvc
-exec su vncsvc -c "/usr/bin/vncserver -fg -geometry $geometry :1" 2>/var/log/vnc.log
+exec su vncsvc -c "LD_LIBRARY_PATH=/usr/lib /usr/bin/vncserver -fg -geometry $geometry :1" 2>/var/log/vnc.log
 #exec sudo -u vncsvc -i /usr/bin/vncserver -fg -geometry $geometry :1 2>/var/log/vnc.log
-- 
cgit v0.12