From 55d668083b9db52e79abda641e4844aa8ab9e796 Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Tue, 6 Feb 2018 13:48:51 +1100
Subject: [PATCH] upgpkg : 1.19.6+13+gd0d1a694f-2

---
 PKGBUILD                 |  72 ++++++++++++++-------------
 revert-udev-changes.diff | 104 ---------------------------------------
 xwrap-suid-race.patch    |  14 ------
 3 files changed, 38 insertions(+), 152 deletions(-)
 delete mode 100644 revert-udev-changes.diff
 delete mode 100644 xwrap-suid-race.patch

diff --git a/PKGBUILD b/PKGBUILD
index b25f47c..667d334 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,8 +6,8 @@
 pkgbase=xorg-server
 pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb'
 		'xorg-server-xnest' 'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
-pkgver=1.19.6
-pkgrel=4
+pkgver=1.19.6+13+gd0d1a694f
+pkgrel=2
 arch=('x86_64')
 license=('custom')
 groups=('xorg')
@@ -18,41 +18,36 @@ makedepends=('pixman' 'libx11' 'mesa' 'mesa-libgl' 'xf86driproto' 'xcmiscproto'
              'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres'
              'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'glproto' 'dri2proto' 'libgcrypt' 'libepoxy'
              'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms' 'dri3proto'
-             'libxshmfence' 'libunwind' 'wayland-protocols') 
-source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
+             'libxshmfence' 'libunwind' 'wayland-protocols' 'git') 
+_commit=d0d1a694f967af770fba0d36043fd5218ff20984 # branch 1.19
+#source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
+source=("git+https://anongit.freedesktop.org/git/xorg/xserver.git#commit=$_commit"
         xvfb-run
 		xvfb-run.1
 		nvidia-add-modulepath-support.patch
-		xserver-autobind-hotplug.patch
-		revert-udev-changes.diff
-		xwrap-suid-race.patch)
+		xserver-autobind-hotplug.patch)
 		
-sha256sums=('a732502f1db000cf36a376cd0c010ffdbf32ecdd7f1fa08ba7f5bdf9601cc197'
+sha256sums=('SKIP'
             'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
             '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
             '23f2fd69a53ef70c267becf7d2a9e7e07b739f8ec5bec10adb219bc6465099c7'
-            '67aaf8668c5fb3c94b2569df28e64bfa1dc97ce429cbbc067c309113caff6369'
-            'c551dd768de10dd8a47213696003d118edb248ca6c09c0d9f1591abb0632d199'
-            '1c74554f98cad4a8b1d827b6aff221058a1f3f4d9b7111346acb22502ac5e59d')
+            '67aaf8668c5fb3c94b2569df28e64bfa1dc97ce429cbbc067c309113caff6369')
 validpgpkeys=('6DD4217456569BA711566AC7F06E8FDE7B45DAAC') # Eric Vidal
 
+pkgver() {
+  cd xserver
+  git describe --tags | sed 's/^xorg-server-//;s/_/./g;s/-/+/g'
+}
 prepare() {
-  cd "${pkgbase}-${pkgver}"
+  #cd "${pkgbase}-${pkgver}"
+  cd xserver
   
   # merged upstream in trunk
   patch -Np1 -i ../nvidia-add-modulepath-support.patch
 
   # patch from Fedora, not yet merged
   patch -Np1 -i ../xserver-autobind-hotplug.patch
-  
-  # https://bugs.archlinux.org/task/56804 
-  # https://bugs.freedesktop.org/show_bug.cgi?id=104382
-  patch -Rp1 -i ../revert-udev-changes.diff
-  
-  # https://bugs.archlinux.org/task/56893
-  # Fixes Makefile race condition when installing Xorg.wrap
-  patch -Np1 -i ../xwrap-suid-race.patch
-
+ 
   autoreconf -vfi
 }
 
@@ -65,7 +60,8 @@ build() {
   export CXXFLAGS=${CXXFLAGS/-fno-plt}
   export LDFLAGS=${LDFLAGS/,-z,now}
   
-  cd "${pkgbase}-${pkgver}"
+ # cd "${pkgbase}-${pkgver}"
+ cd xserver
   ./configure --prefix=/usr \
       --enable-ipv6 \
       --enable-dri \
@@ -115,7 +111,8 @@ package_xorg-server-common() {
   pkgdesc="Xorg server common files"
   depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap')
 
-  cd "${pkgbase}-${pkgver}"
+  cd xserver
+#  cd "${pkgbase}-${pkgver}"
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
   
@@ -139,7 +136,8 @@ package_xorg-server() {
   replaces=('glamor-egl' 'xf86-video-modesetting')
   install=xorg-server.install
 
-  cd "${pkgbase}-${pkgver}"
+  cd xserver
+  #cd "${pkgbase}-${pkgver}"
   make DESTDIR="${pkgdir}" install
 
   # distro specific files must be installed in /usr/share/X11/xorg.conf.d
@@ -163,8 +161,9 @@ package_xorg-server-xephyr() {
   pkgdesc="A nested X server that runs as an X application"
   depends=('libxfont2' 'libgl' 'libepoxy' 'libunwind' 'libxv' 'pixman' 'xorg-server-common' 'xcb-util-image'
            'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms')
-
-  cd "${pkgbase}-${pkgver}/hw/kdrive"
+  
+  cd xserver/hw/kdrive
+  #cd "${pkgbase}-${pkgver}/hw/kdrive"
   make DESTDIR="${pkgdir}" install
 
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
@@ -174,8 +173,9 @@ package_xorg-server-xephyr() {
 package_xorg-server-xvfb() {
   pkgdesc="Virtual framebuffer X server"
   depends=('libxfont2' 'libunwind' 'pixman' 'xorg-server-common' 'xorg-xauth' 'libgl')
-
-  cd "${pkgbase}-${pkgver}/hw/vfb"
+  
+  cd xserver/hw/vfb
+  #cd "${pkgbase}-${pkgver}/hw/vfb"
   make DESTDIR="${pkgdir}" install
 
   install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
@@ -189,7 +189,8 @@ package_xorg-server-xnest() {
   pkgdesc="A nested X server that runs as an X application"
   depends=('libxfont2' 'libxext' 'libunwind' 'pixman' 'xorg-server-common')
 
-  cd "${pkgbase}-${pkgver}/hw/xnest"
+  cd xserver/hw/xnest
+  #cd "${pkgbase}-${pkgver}/hw/xnest"
   make DESTDIR="${pkgdir}" install
 
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
@@ -199,8 +200,9 @@ package_xorg-server-xnest() {
 package_xorg-server-xdmx() {
   pkgdesc="Distributed Multihead X Server and utilities"
   depends=('libxfont2' 'libxi' 'libxaw' 'libxrender' 'libdmx' 'libxfixes' 'libunwind' 'pixman' 'xorg-server-common')
-
-  cd "${pkgbase}-${pkgver}/hw/dmx"
+  
+  cd xserver/hw/dmx
+  #cd "${pkgbase}-${pkgver}/hw/dmx"
   make DESTDIR="${pkgdir}" install
 
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
@@ -210,8 +212,9 @@ package_xorg-server-xdmx() {
 package_xorg-server-xwayland() {
   pkgdesc="run X clients under wayland"
   depends=('libxfont2' 'libepoxy' 'libunwind' 'libgl' 'pixman' 'xorg-server-common')
-
-  cd "${pkgbase}-${pkgver}/hw/xwayland"
+  
+  cd xserver/hw/xwayland
+  #cd "${pkgbase}-${pkgver}/hw/xwayland"
   make DESTDIR="${pkgdir}" install
 
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xwayland"
@@ -228,7 +231,8 @@ package_xorg-server-devel() {
            # not technically required but almost every Xorg pkg needs it to build
            'xorg-util-macros')
 
-  cd "${pkgbase}-${pkgver}"
+  cd xserver
+  #cd "${pkgbase}-${pkgver}"
   make DESTDIR="${pkgdir}" install
 
   rm -rf "${pkgdir}/usr/bin"
diff --git a/revert-udev-changes.diff b/revert-udev-changes.diff
deleted file mode 100644
index d25a0c7..0000000
--- a/revert-udev-changes.diff
+++ /dev/null
@@ -1,104 +0,0 @@
-From 5a5b6d6cca469521daa6ac9087f3589b7489ab55 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Tue, 26 Sep 2017 15:21:59 +1000
-Subject: config/udev: consider ID_INPUT_FOO=0 as 'unset'
-
-Historically we didn't need to care about this case but more devices are
-having invalid types set and they cannot be unset with a hwdb entry (which
-doesn't handle the empty string). Allow for "0" to mean "unset" because
-anything else would be crazy anyway.
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit 5aad81445c8c3d6b7b30d503cfe26027fa482870)
----
- config/udev.c | 65 +++++++++++++++++++++++++++++------------------------------
- 1 file changed, 32 insertions(+), 33 deletions(-)
-
-(limited to 'config/udev.c')
-
-diff --git a/config/udev.c b/config/udev.c
-index 932f230..e198e86 100644
---- a/config/udev.c
-+++ b/config/udev.c
-@@ -134,7 +134,8 @@ device_added(struct udev_device *udev_device)
-     }
- #endif
- 
--    if (!udev_device_get_property_value(udev_device, "ID_INPUT")) {
-+    value = udev_device_get_property_value(udev_device, "ID_INPUT");
-+    if (value && !strcmp(value, "0")) {
-         LogMessageVerb(X_INFO, 10,
-                        "config/udev: ignoring device %s without "
-                        "property ID_INPUT set\n", path);
-@@ -237,38 +238,36 @@ device_added(struct udev_device *udev_device)
-         else if (!strcmp(key, "ID_VENDOR")) {
-             LOG_PROPERTY(path, key, value);
-             attrs.vendor = strdup(value);
--        }
--        else if (!strcmp(key, "ID_INPUT_KEY")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_KEY;
--        }
--        else if (!strcmp(key, "ID_INPUT_KEYBOARD")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_KEYBOARD;
--        }
--        else if (!strcmp(key, "ID_INPUT_MOUSE")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_POINTER;
--        }
--        else if (!strcmp(key, "ID_INPUT_JOYSTICK")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_JOYSTICK;
--        }
--        else if (!strcmp(key, "ID_INPUT_TABLET")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_TABLET;
--        }
--        else if (!strcmp(key, "ID_INPUT_TABLET_PAD")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_TABLET_PAD;
--        }
--        else if (!strcmp(key, "ID_INPUT_TOUCHPAD")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_TOUCHPAD;
--        }
--        else if (!strcmp(key, "ID_INPUT_TOUCHSCREEN")) {
--            LOG_PROPERTY(path, key, value);
--            attrs.flags |= ATTR_TOUCHSCREEN;
-+        } else if (!strncmp(key, "ID_INPUT_", 9)) {
-+            const struct pfmap {
-+                const char *property;
-+                unsigned int flag;
-+            } map[] = {
-+                { "ID_INPUT_KEY", ATTR_KEY },
-+                { "ID_INPUT_KEYBOARD", ATTR_KEYBOARD },
-+                { "ID_INPUT_MOUSE", ATTR_POINTER },
-+                { "ID_INPUT_JOYSTICK", ATTR_JOYSTICK },
-+                { "ID_INPUT_TABLET", ATTR_TABLET },
-+                { "ID_INPUT_TABLET_PAD", ATTR_TABLET_PAD },
-+                { "ID_INPUT_TOUCHPAD", ATTR_TOUCHPAD },
-+                { "ID_INPUT_TOUCHSCREEN", ATTR_TOUCHSCREEN },
-+                { NULL, 0 },
-+            };
-+
-+            /* Anything but the literal string "0" is considered a
-+             * boolean true. The empty string isn't a thing with udev
-+             * properties anyway */
-+            if (value && strcmp(value, "0")) {
-+                const struct pfmap *m = map;
-+
-+                while (m->property != NULL) {
-+                    if (!strcmp(m->property, key)) {
-+                        LOG_PROPERTY(path, key, value);
-+                        attrs.flags |= m->flag;
-+                    }
-+                    m++;
-+                }
-+            }
-         }
-     }
- 
--- 
-cgit v1.1
-
diff --git a/xwrap-suid-race.patch b/xwrap-suid-race.patch
deleted file mode 100644
index 3502472..0000000
--- a/xwrap-suid-race.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
-index b876b79ab..458720052 100644
---- a/hw/xfree86/Makefile.am
-+++ b/hw/xfree86/Makefile.am
-@@ -84,8 +84,8 @@ Xorg_DEPENDENCIES = $(LOCAL_LIBS)
- Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
- 
- if SUID_WRAPPER
--wrapdir = $(SUID_WRAPPER_DIR)
--wrap_PROGRAMS = Xorg.wrap
-+wrapexecdir = $(SUID_WRAPPER_DIR)
-+wrapexec_PROGRAMS = Xorg.wrap
- Xorg_wrap_SOURCES = xorg-wrapper.c
- endif
-- 
GitLab