From 448cb8d0708224d78c24ce3615dc7eef44d4689b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 18 Mar 2019 17:14:31 +0000
Subject: libva-intel-driver: update to 2.3.0

---
 abs/extra/libva-intel-driver/427.patch | 65 ++++++++++++++++++++++++++++++++++
 abs/extra/libva-intel-driver/PKGBUILD  | 43 +++++++++++++---------
 2 files changed, 91 insertions(+), 17 deletions(-)
 create mode 100644 abs/extra/libva-intel-driver/427.patch

diff --git a/abs/extra/libva-intel-driver/427.patch b/abs/extra/libva-intel-driver/427.patch
new file mode 100644
index 0000000..906fa8c
--- /dev/null
+++ b/abs/extra/libva-intel-driver/427.patch
@@ -0,0 +1,65 @@
+From 0abb7a1c938437000bfca1a9b3706884467c681e Mon Sep 17 00:00:00 2001
+From: Haihao Xiang <haihao.xiang@intel.com>
+Date: Fri, 7 Dec 2018 13:31:43 +0800
+Subject: [PATCH] Check the interface from libva first
+
+This fixes https://github.com/intel/intel-vaapi-driver/issues/419
+
+Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
+---
+ src/i965_output_wayland.c | 27 ++++++++++++++++-----------
+ 1 file changed, 16 insertions(+), 11 deletions(-)
+
+diff --git a/src/i965_output_wayland.c b/src/i965_output_wayland.c
+index 122db953..a637552e 100644
+--- a/src/i965_output_wayland.c
++++ b/src/i965_output_wayland.c
+@@ -397,6 +397,7 @@ i965_output_wayland_init(VADriverContextP ctx)
+     struct i965_driver_data * const i965 = i965_driver_data(ctx);
+     struct dso_handle *dso_handle;
+     struct wl_vtable *wl_vtable;
++    struct VADriverVTableWayland * const vtable = ctx->vtable_wayland;
+ 
+     static const struct dso_symbol libegl_symbols[] = {
+         {
+@@ -465,25 +466,29 @@ i965_output_wayland_init(VADriverContextP ctx)
+     if (!i965->wl_output)
+         goto error;
+ 
+-    i965->wl_output->libegl_handle = dso_open(LIBEGL_NAME);
+-    if (!i965->wl_output->libegl_handle) {
+-        i965->wl_output->libegl_handle = dso_open(LIBEGL_NAME_FALLBACK);
+-        if (!i965->wl_output->libegl_handle)
++    wl_vtable = &i965->wl_output->vtable;
++
++    if (vtable->wl_interface)
++        wl_vtable->drm_interface = vtable->wl_interface;
++    else {
++        i965->wl_output->libegl_handle = dso_open(LIBEGL_NAME);
++        if (!i965->wl_output->libegl_handle) {
++            i965->wl_output->libegl_handle = dso_open(LIBEGL_NAME_FALLBACK);
++            if (!i965->wl_output->libegl_handle)
++                goto error;
++        }
++
++        dso_handle = i965->wl_output->libegl_handle;
++        if (!dso_get_symbols(dso_handle, wl_vtable, sizeof(*wl_vtable),
++                             libegl_symbols))
+             goto error;
+     }
+ 
+-    dso_handle = i965->wl_output->libegl_handle;
+-    wl_vtable  = &i965->wl_output->vtable;
+-    if (!dso_get_symbols(dso_handle, wl_vtable, sizeof(*wl_vtable),
+-                         libegl_symbols))
+-        goto error;
+-
+     i965->wl_output->libwl_client_handle = dso_open(LIBWAYLAND_CLIENT_NAME);
+     if (!i965->wl_output->libwl_client_handle)
+         goto error;
+ 
+     dso_handle = i965->wl_output->libwl_client_handle;
+-    wl_vtable  = &i965->wl_output->vtable;
+     if (!dso_get_symbols(dso_handle, wl_vtable, sizeof(*wl_vtable),
+                          libwl_client_symbols))
+         goto error;
diff --git a/abs/extra/libva-intel-driver/PKGBUILD b/abs/extra/libva-intel-driver/PKGBUILD
index 1166e5e..f699b3b 100644
--- a/abs/extra/libva-intel-driver/PKGBUILD
+++ b/abs/extra/libva-intel-driver/PKGBUILD
@@ -1,35 +1,44 @@
-# $Id$
-# Maintainer: Ionut Biru <ibiru@archlinux.org>
-# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
 
 pkgname=libva-intel-driver
-pkgver=1.7.3
-pkgrel=1
+pkgver=2.3.0
+pkgrel=2
 pkgdesc='VA-API implementation for Intel G45 and HD Graphics family'
-arch=('i686' 'x86_64')
-url='http://freedesktop.org/wiki/Software/vaapi'
+arch=('x86_64')
+url='https://01.org/linuxmedia/vaapi'
 license=('MIT')
-depends=('libva')
+depends=('libva' 'libdrm')
+makedepends=('git' 'meson')
 replaces=('libva-driver-intel')
-source=(https://freedesktop.org/software/vaapi/releases/$pkgname/$pkgname-$pkgver.tar.bz2)
-sha1sums=('5100f187afc4e39fce5664b96fe11a38faa9afaa')
+source=("git+https://github.com/intel/intel-vaapi-driver.git#tag=${pkgver}"
+        427.patch)
+sha256sums=('SKIP'
+            'e51eaf65b1bb09bf62a1b78668da0c268722387cb8eb3c05ec2d7462c651d1c0')
 
 prepare() {
-  cd $pkgname-$pkgver
+  cd intel-vaapi-driver
+
+  # https://github.com/intel/intel-vaapi-driver/issues/419
+  patch -Np1 -i ../427.patch
 
   # Only relevant if intel-gpu-tools is installed,
   # since then the shaders will be recompiled
   sed -i '1s/python$/&2/' src/shaders/gpp.py
+
+  # Fix undefined variable in src/meson.build
+  sed -i 's/2.2.0/2.2.0.0/' meson.build
 }
 
 build() {
-  cd $pkgname-$pkgver
-  ./configure --prefix=/usr
-  make
+  arch-meson intel-vaapi-driver build
+  ninja -C build
 }
 
 package() {
-  cd $pkgname-$pkgver
-  make DESTDIR="$pkgdir" install
-  install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+  DESTDIR="${pkgdir}" meson install -C build
+  install -Dm 644 intel-vaapi-driver/COPYING -t "${pkgdir}"/usr/share/licenses/libva-intel-driver
 }
+
+# vim: ts=2 sw=2 et:
-- 
cgit v0.12

