From a9c0f93eebcd9a598ab934531cec5c0aa9c1bbf8 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 23 Jan 2016 17:39:50 +0000
Subject: tigervnc: update to 1.6.0

---
 abs/extra/tigervnc/PKGBUILD          |  89 ++++---
 abs/extra/tigervnc/cmakelists.patch  |  70 ------
 abs/extra/tigervnc/gethomedir.patch  |  24 +-
 abs/extra/tigervnc/gnutls.patch      |  36 ---
 abs/extra/tigervnc/tiger.install     |  22 --
 abs/extra/tigervnc/vncserver.service |  29 +++
 abs/extra/tigervnc/vncsvc.rules      |   4 -
 abs/extra/tigervnc/vncviewer.desktop |   9 +
 abs/extra/tigervnc/xorg111.patch     | 235 ------------------
 abs/extra/tigervnc/xorg112.patch     | 447 -----------------------------------
 abs/extra/tigervnc/xorg118.patch     |  27 +++
 11 files changed, 120 insertions(+), 872 deletions(-)
 delete mode 100644 abs/extra/tigervnc/cmakelists.patch
 delete mode 100644 abs/extra/tigervnc/gnutls.patch
 delete mode 100644 abs/extra/tigervnc/tiger.install
 create mode 100644 abs/extra/tigervnc/vncserver.service
 delete mode 100644 abs/extra/tigervnc/vncsvc.rules
 create mode 100644 abs/extra/tigervnc/vncviewer.desktop
 delete mode 100644 abs/extra/tigervnc/xorg111.patch
 delete mode 100644 abs/extra/tigervnc/xorg112.patch
 create mode 100644 abs/extra/tigervnc/xorg118.patch

diff --git a/abs/extra/tigervnc/PKGBUILD b/abs/extra/tigervnc/PKGBUILD
index 21d3013..6d5da40 100644
--- a/abs/extra/tigervnc/PKGBUILD
+++ b/abs/extra/tigervnc/PKGBUILD
@@ -1,56 +1,64 @@
-# $Id: PKGBUILD 73952 2012-07-17 11:36:12Z spupykin $
 # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
 # Maintainer: Uroš Vampl <mobile.leecher at gmail dot com>
 
 pkgname=tigervnc
-pkgver=1.2.0
-pkgrel=7
-_xorgver=1.12.3
-pkgdesc="suite of VNC servers and clients. VNC 4 branch of TightVNC."
+pkgver=1.6.0
+pkgrel=1
+_xorgver=1.18.0
+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=('pam' 'gnutls' 'libjpeg-turbo' 'libxft' 'libxinerama' 'libxcursor'
-	 'libxtst' 'libxfont' 'pixman' 'xorg-xauth' 'xorg-xsetroot'
-	 'xkeyboard-config' 'libgl' 'libgcrypt' 'perl')
+depends=('fltk' 'pam' 'gnutls' 'libjpeg-turbo' 'libxtst' 'libxfont' 'pixman'
+	 'xorg-xauth' 'xorg-xsetroot' 'xkeyboard-config' 'xorg-xkbcomp'
+	 'libgl' 'libgcrypt' 'perl' 'libxdamage')
 makedepends=('cmake' 'nasm' 'xorg-font-util' 'xorg-util-macros' 'bigreqsproto'
 	     'compositeproto' 'damageproto' 'randrproto' 'resourceproto'
 	     'scrnsaverproto' 'videoproto' 'xcmiscproto' 'xf86vidmodeproto'
-	     'xtrans' 'mesa')
-options=(!libtool)
-install=tiger.install
+	     'xtrans' 'glproto' 'dri2proto' 'dri3proto' 'presentproto'
+	     'mesa' 'imagemagick')
+optdepends=('mesa: for OpenGL functionality in Xvnc')
 conflicts=('tightvnc')
-source=(http://downloads.sourceforge.net/tigervnc/${pkgname}-${pkgver}.tar.gz
+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
-	xorg111.patch
-	xorg112.patch
-	gnutls.patch
+	vncserver.service
+	vncviewer.desktop
 	gethomedir.patch
-	cmakelists.patch vncsvc.rules)
+	xorg118.patch)
+md5sums=('78b736445781d86c48e942465a391ccc'
+         '3c1c1057d3ad27380d8dd87ffcc182cd'
+         '1aad8f06504b3e29a24ccfbaab617973'
+         'b200d83c60e80c6f9693ea19a2d9f5b0'
+         '22f1523a0eca56ad79cfabd0db6e2cf6'
+         '2fd32181679077eb7f7ca06cf25f443f')
 
-build() {
+prepare() {
   cd ${srcdir}/${pkgname}-${pkgver}
 
-  cp -r ${srcdir}/xorg-server-${_xorgver}/* unix/xserver
-  patch -Np1 -i ${srcdir}/gnutls.patch
+  patch -Np1 -i ${srcdir}/xorg118.patch
   patch -Np1 -i ${srcdir}/gethomedir.patch
-  patch -Np1 -i ${srcdir}/cmakelists.patch
-  patch -Np1 -i ${srcdir}/xorg111.patch
-  patch -Np1 -i ${srcdir}/xorg112.patch
+  sed -i 's/iconic/nowin/' unix/vncserver
+
+  cd unix/xserver
+  cp -r ${srcdir}/xorg-server-${_xorgver}/* .
+  patch -Np1 -i ../xserver117.patch
+}
 
-  cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DUSE_INCLUDED_FLTK=yes
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+
+  cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr
   make
 
   cd unix/xserver
-  patch -Np1 -i ../xserver110.patch
   autoreconf -fiv
   ./configure --prefix=/usr \
-	--disable-static --disable-xinerama --without-dtrace \
+	--disable-static --without-dtrace \
 	--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
-	--disable-xwin --disable-xephyr --disable-kdrive --with-pic \
-	--disable-config-dbus --disable-config-hal --disable-config-udev \
-	--disable-unit-tests --disable-devel-docs --disable-dri \
-	--enable-dri2 --enable-glx --enable-glx-tls
+	--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
   make
 }
 
@@ -59,23 +67,8 @@ package() {
   make DESTDIR=${pkgdir} install
   cd unix/xserver/hw/vnc
   make DESTDIR=${pkgdir} install
-  sed -i 's/iconic/nowin/' ${pkgdir}/usr/bin/vncserver
-
-  cd ${srcdir}
-  #sudo rules
-  mkdir -p $startdir/pkg/etc/sudoers.d/
-  chmod 750 $startdir/pkg/etc/sudoers.d/
-  chown -R root:root $startdir/pkg/etc/sudoers.d
-  install -o root -g root -m 0750 vncsvc.rules $startdir/pkg/etc/sudoers.d/vncsvc-tigervnc
-
-
-
+  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
 }
-md5sums=('3a5755b4ed600a81c3a17976c6f8420d'
-         '65a53b11bc01dcc97ee9b201dc620c32'
-         'b680b55f7f9f569cd26ac0b330012a8b'
-         'f73e055153889ae7b5aac8e697f7a841'
-         '1a5fe8867ab3e49e20aafc70c415494f'
-         'fa059baabe72308bf82622bca73cb3e0'
-         '6ef923c71cc0e79c4b37eb3b124eea75'
-         '6f4a594581e63bfb29cd1b7b37d66d10')
diff --git a/abs/extra/tigervnc/cmakelists.patch b/abs/extra/tigervnc/cmakelists.patch
deleted file mode 100644
index cc62866..0000000
--- a/abs/extra/tigervnc/cmakelists.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -ur tigervnc-1.2.0.orig/cmake/BuildPackages.cmake tigervnc-1.2.0/cmake/BuildPackages.cmake
---- tigervnc-1.2.0.orig/cmake/BuildPackages.cmake	2011-11-08 10:16:36.000000000 +0100
-+++ tigervnc-1.2.0/cmake/BuildPackages.cmake	2012-03-30 15:27:00.808919876 +0200
-@@ -86,5 +86,5 @@
- # Common
- #
- 
--install(FILES ${CMAKE_SOURCE_DIR}/LICENCE.TXT DESTINATION doc)
--install(FILES ${CMAKE_SOURCE_DIR}/README.txt DESTINATION doc)
-+install(FILES ${CMAKE_SOURCE_DIR}/LICENCE.TXT DESTINATION share/doc/${CMAKE_PROJECT_NAME}-${VERSION})
-+install(FILES ${CMAKE_SOURCE_DIR}/README.txt DESTINATION share/doc/${CMAKE_PROJECT_NAME}-${VERSION})
-diff -ur tigervnc-1.2.0.orig/CMakeLists.txt tigervnc-1.2.0/CMakeLists.txt
---- tigervnc-1.2.0.orig/CMakeLists.txt	2012-03-09 21:34:29.000000000 +0100
-+++ tigervnc-1.2.0/CMakeLists.txt	2012-03-30 15:28:59.716911575 +0200
-@@ -316,7 +316,8 @@
-   if(APPLE)
-     set(FLTK_LIBRARIES "-framework Carbon -framework Cocoa -framework ApplicationServices")
-   elseif(NOT WIN32)
--    set(FLTK_LIBRARIES "-ldl")
-+    find_library(FONTCONFIG_LIB fontconfig)
-+    set(FLTK_LIBRARIES "-ldl" ${FONTCONFIG_LIB})
-   endif()
-   message(STATUS "Using included FLTK library")
- endif()
-diff -ur tigervnc-1.2.0.orig/unix/CMakeLists.txt tigervnc-1.2.0/unix/CMakeLists.txt
---- tigervnc-1.2.0.orig/unix/CMakeLists.txt	2011-11-03 20:01:18.000000000 +0100
-+++ tigervnc-1.2.0/unix/CMakeLists.txt	2012-03-30 15:27:00.808919876 +0200
-@@ -5,4 +5,4 @@
- add_subdirectory(x0vncserver)
- 
- install(PROGRAMS vncserver DESTINATION bin)
--install(FILES vncserver.man DESTINATION man/man1 RENAME vncserver.1)
-+install(FILES vncserver.man DESTINATION share/man/man1 RENAME vncserver.1)
-diff -ur tigervnc-1.2.0.orig/unix/vncconfig/CMakeLists.txt tigervnc-1.2.0/unix/vncconfig/CMakeLists.txt
---- tigervnc-1.2.0.orig/unix/vncconfig/CMakeLists.txt	2011-06-25 09:32:34.000000000 +0200
-+++ tigervnc-1.2.0/unix/vncconfig/CMakeLists.txt	2012-03-30 15:27:00.808919876 +0200
-@@ -12,4 +12,4 @@
- target_link_libraries(vncconfig tx rfb network rdr ${X11_LIBRARIES})
- 
- install(TARGETS vncconfig DESTINATION bin)
--install(FILES vncconfig.man DESTINATION man/man1 RENAME vncconfig.1)
-+install(FILES vncconfig.man DESTINATION share/man/man1 RENAME vncconfig.1)
-diff -ur tigervnc-1.2.0.orig/unix/vncpasswd/CMakeLists.txt tigervnc-1.2.0/unix/vncpasswd/CMakeLists.txt
---- tigervnc-1.2.0.orig/unix/vncpasswd/CMakeLists.txt	2011-06-25 09:32:34.000000000 +0200
-+++ tigervnc-1.2.0/unix/vncpasswd/CMakeLists.txt	2012-03-30 15:27:00.808919876 +0200
-@@ -6,4 +6,4 @@
- target_link_libraries(vncpasswd tx rfb rdr os)
- 
- install(TARGETS vncpasswd DESTINATION bin)
--install(FILES vncpasswd.man DESTINATION man/man1 RENAME vncpasswd.1)
-+install(FILES vncpasswd.man DESTINATION share/man/man1 RENAME vncpasswd.1)
-diff -ur tigervnc-1.2.0.orig/unix/x0vncserver/CMakeLists.txt tigervnc-1.2.0/unix/x0vncserver/CMakeLists.txt
---- tigervnc-1.2.0.orig/unix/x0vncserver/CMakeLists.txt	2011-08-19 18:41:06.000000000 +0200
-+++ tigervnc-1.2.0/unix/x0vncserver/CMakeLists.txt	2012-03-30 15:27:00.809919874 +0200
-@@ -24,4 +24,4 @@
- endif()
- 
- install(TARGETS x0vncserver DESTINATION bin)
--install(FILES x0vncserver.man DESTINATION man/man1 RENAME x0vncserver.1)
-+install(FILES x0vncserver.man DESTINATION share/man/man1 RENAME x0vncserver.1)
-diff -ur tigervnc-1.2.0.orig/vncviewer/CMakeLists.txt tigervnc-1.2.0/vncviewer/CMakeLists.txt
---- tigervnc-1.2.0.orig/vncviewer/CMakeLists.txt	2011-10-05 11:32:28.000000000 +0200
-+++ tigervnc-1.2.0/vncviewer/CMakeLists.txt	2012-03-30 15:27:00.809919874 +0200
-@@ -55,5 +55,5 @@
-   install(TARGETS vncviewer DESTINATION bin)
- endif()
- if(UNIX)
--  install(FILES vncviewer.man DESTINATION man/man1 RENAME vncviewer.1)
-+  install(FILES vncviewer.man DESTINATION share/man/man1 RENAME vncviewer.1)
- endif()
diff --git a/abs/extra/tigervnc/gethomedir.patch b/abs/extra/tigervnc/gethomedir.patch
index 9114eea..5f3542d 100644
--- a/abs/extra/tigervnc/gethomedir.patch
+++ b/abs/extra/tigervnc/gethomedir.patch
@@ -1,16 +1,20 @@
---- tigervnc-1.0.90/unix/xserver/hw/vnc/Makefile.am~	2011-04-20 13:46:16.993047050 +0200
-+++ tigervnc-1.0.90/unix/xserver/hw/vnc/Makefile.am	2011-04-20 14:03:35.942724608 +0200
-@@ -1,11 +1,12 @@
- TIGERVNC_SRCDIR=${top_srcdir}/../..
- LIB_DIR=${top_builddir}/../../common
- 
-+OS_LIB=$(LIB_DIR)/os/libos.a
- RFB_LIB=$(LIB_DIR)/rfb/librfb.la
+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
--COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
-+COMMON_LIBS=$(NETWORK_LIB) $(OS_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
++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/gnutls.patch b/abs/extra/tigervnc/gnutls.patch
deleted file mode 100644
index d0b7ef8..0000000
--- a/abs/extra/tigervnc/gnutls.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -ur tigervnc-1.2.0.orig/CMakeLists.txt tigervnc-1.2.0/CMakeLists.txt
---- tigervnc-1.2.0.orig/CMakeLists.txt	2012-03-09 21:34:29.000000000 +0100
-+++ tigervnc-1.2.0/CMakeLists.txt	2012-03-27 23:14:12.292068145 +0200
-@@ -344,7 +344,7 @@
-       # system's version (if available) to perform this test.
-       set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES};-lz)
-     endif()
--    check_function_exists(gnutls_transport_set_global_errno HAVE_OLD_GNUTLS)
-+    check_function_exists(gnutls_transport_set_global_errno HAVE_GNUTLS_GLOBAL_ERRNO)
-     check_function_exists(gnutls_x509_crt_print HAVE_GNUTLS_X509_CRT_PRINT)
-     check_type_size(gnutls_x509_crt_t GNUTLS_X509_CRT_T)
-     check_type_size(gnutls_datum_t GNUTLS_DATUM_T)
-diff -ur tigervnc-1.2.0.orig/common/rdr/TLSInStream.cxx tigervnc-1.2.0/common/rdr/TLSInStream.cxx
---- tigervnc-1.2.0.orig/common/rdr/TLSInStream.cxx	2010-09-30 08:25:28.000000000 +0200
-+++ tigervnc-1.2.0/common/rdr/TLSInStream.cxx	2012-03-27 23:14:11.166068223 +0200
-@@ -27,7 +27,7 @@
- #include <rdr/TLSInStream.h>
- #include <errno.h>
- 
--#ifdef HAVE_OLD_GNUTLS
-+#ifndef HAVE_GNUTLS_GLOBAL_ERRNO
- #define gnutls_transport_set_global_errno(A) do { errno = (A); } while(0)
- #endif
- 
-diff -ur tigervnc-1.2.0.orig/common/rdr/TLSOutStream.cxx tigervnc-1.2.0/common/rdr/TLSOutStream.cxx
---- tigervnc-1.2.0.orig/common/rdr/TLSOutStream.cxx	2010-09-30 08:25:28.000000000 +0200
-+++ tigervnc-1.2.0/common/rdr/TLSOutStream.cxx	2012-03-27 23:14:09.576068335 +0200
-@@ -27,7 +27,7 @@
- #include <rdr/TLSOutStream.h>
- #include <errno.h>
- 
--#ifdef HAVE_OLD_GNUTLS
-+#ifndef HAVE_GNUTLS_GLOBAL_ERRNO
- #define gnutls_transport_set_global_errno(A) do { errno = (A); } while(0)
- #endif
- 
diff --git a/abs/extra/tigervnc/tiger.install b/abs/extra/tigervnc/tiger.install
deleted file mode 100644
index 87e7b5e..0000000
--- a/abs/extra/tigervnc/tiger.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install(){
-  groupadd -g 78 vncsvc &>/dev/null
-  useradd -u 78 -m -g vncsvc -d /home/vncsvc -s /bin/bash vncsvc &>/dev/null
-  usermod -a -G mythtv vncsvc
-  chown -R vncsvc:vncsvc /home/vncsvc &>/dev/null
-}
-
-post_upgrade(){
-  getent group vncsvc >/dev/null 2>&1 || groupadd -g 78 vncsvc &>/dev/null
-  getent passwd vncsvc >/dev/null 2>&1 || useradd -u 78 -g vncsvc -m -d /home/vncsvc -s /bin/bash vncsvc &>/dev/null
-  usermod -a -G mythtv vncsvc
-}
-
-post_remove(){
-  if getent passwd vncsvc >/dev/null 2>&1; then
-    userdel vncsvc
-  fi
-  if getent group vncsvc >/dev/null 2>&1; then
-    groupdel vncsvc
-  fi
-}
-
diff --git a/abs/extra/tigervnc/vncserver.service b/abs/extra/tigervnc/vncserver.service
new file mode 100644
index 0000000..0c257b3
--- /dev/null
+++ b/abs/extra/tigervnc/vncserver.service
@@ -0,0 +1,29 @@
+# The vncserver service unit file
+#
+# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service
+# 2. Edit User=
+#   ("User=foo")
+# 3. Edit  and vncserver parameters appropriately
+#   ("/usr/bin/vncserver %i -arg1 -arg2 -argn")
+# 4. Run `systemctl --system daemon-reload`
+# 5. Run `systemctl enable vncserver@:<display>.service`
+#
+# DO NOT RUN THIS SERVICE if your local area network is untrusted! 
+#
+# See the wiki page for more on security
+# https://wiki.archlinux.org/index.php/Vncserver
+
+[Unit]
+Description=Remote desktop service (VNC)
+After=syslog.target network.target
+
+[Service]
+Type=forking
+User=
+
+ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || true'
+ExecStart=/usr/bin/vncserver -fg %i
+ExecStop=/usr/bin/vncserver -kill %i
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/extra/tigervnc/vncsvc.rules b/abs/extra/tigervnc/vncsvc.rules
deleted file mode 100644
index 3c1b992..0000000
--- a/abs/extra/tigervnc/vncsvc.rules
+++ /dev/null
@@ -1,4 +0,0 @@
-vncsvc ALL=(ALL) NOPASSWD: /usr/MythVantage/bin/mythinstall -s *
-vncsvc ALL=(ALL) NOPASSWD: /usr/MythVantage/bin/MythVantage -s *
-vncsvc ALL=(ALL) NOPASSWD: /usr/MythVantage/bin/systemconfig.py
-
diff --git a/abs/extra/tigervnc/vncviewer.desktop b/abs/extra/tigervnc/vncviewer.desktop
new file mode 100644
index 0000000..d8005d3
--- /dev/null
+++ b/abs/extra/tigervnc/vncviewer.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=TigerVNC Viewer
+Comment=VNC client
+Exec=/usr/bin/vncviewer
+Icon=tigervnc
+Terminal=false
+StartupNotify=false
+Categories=Network;RemoteAccess;
diff --git a/abs/extra/tigervnc/xorg111.patch b/abs/extra/tigervnc/xorg111.patch
deleted file mode 100644
index ee0ddb9..0000000
--- a/abs/extra/tigervnc/xorg111.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc
---- tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc.xorg111	2011-08-09 23:16:36.000000000 +0200
-+++ tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc	2011-11-11 11:59:14.226819903 +0100
-@@ -82,10 +82,11 @@ static KeyCode KeysymToKeycode(KeySymsPt
- /* Event queue is shared between all devices. */
- #if XORG == 15
- static xEvent *eventq = NULL;
--#else
-+#elif XORG < 111
- static EventList *eventq = NULL;
- #endif
- 
-+#if XORG < 111
- static void initEventq(void)
- {
- 	/* eventq is never free()-ed because it exists during server life. */
-@@ -100,7 +101,9 @@ static void initEventq(void)
- #endif
- 	}
- }
-+#endif /* XORG < 111 */
- 
-+#if XORG < 111
- static void enqueueEvents(DeviceIntPtr dev, int n)
- {
- 	int i;
-@@ -122,6 +125,7 @@ static void enqueueEvents(DeviceIntPtr d
- 			   );
- 	}
- }
-+#endif /* XORG < 111 */
- 
- InputDevice::InputDevice(rfb::VNCServerST *_server)
- 	: server(_server), oldButtonMask(0)
-@@ -141,12 +145,17 @@ InputDevice::InputDevice(rfb::VNCServerS
- 				     keyboardProc, TRUE);
- 	RegisterKeyboardDevice(keyboardDev);
- #endif
-+#if XORG < 111
- 	initEventq();
-+#endif
- }
- 
- void InputDevice::PointerButtonAction(int buttonMask)
- {
--	int i, n;
-+	int i;
-+#if XORG < 111
-+	int n;
-+#endif
- #if XORG >= 110
- 	ValuatorMask mask;
- #endif
-@@ -160,13 +169,17 @@ void InputDevice::PointerButtonAction(in
- #if XORG < 110
- 			n = GetPointerEvents(eventq, pointerDev, action, i + 1,
- 					     POINTER_RELATIVE, 0, 0, NULL);
--#else
-+			enqueueEvents(pointerDev, n);
-+#elif XORG < 111
- 			valuator_mask_set_range(&mask, 0, 0, NULL);
- 			n = GetPointerEvents(eventq, pointerDev, action, i + 1,
- 					     POINTER_RELATIVE, &mask);
--#endif
- 			enqueueEvents(pointerDev, n);
--
-+#else
-+			valuator_mask_set_range(&mask, 0, 0, NULL);
-+			QueuePointerEvents(pointerDev, action, i + 1,
-+					   POINTER_RELATIVE, &mask);
-+#endif
- 		}
- 	}
- 
-@@ -175,7 +188,10 @@ void InputDevice::PointerButtonAction(in
- 
- void InputDevice::PointerMove(const rfb::Point &pos)
- {
--	int n, valuators[2];
-+	int valuators[2];
-+#if XORG < 111
-+	int n;
-+#endif
- #if XORG >= 110
- 	ValuatorMask mask;
- #endif
-@@ -190,12 +206,16 @@ void InputDevice::PointerMove(const rfb:
- #if XORG < 110
- 	n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, 0,
- 			     2, valuators);
--#else
-+	enqueueEvents(pointerDev, n);
-+#elif XORG < 111
- 	valuator_mask_set_range(&mask, 0, 2, valuators);
- 	n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE,
- 			     &mask);
--#endif
- 	enqueueEvents(pointerDev, n);
-+#else
-+	valuator_mask_set_range(&mask, 0, 2, valuators);
-+	QueuePointerEvents(pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, &mask);
-+#endif
- 
- 	cursorPos = pos;
- }
-@@ -299,14 +319,20 @@ void InputDevice::initInputDevice(void)
- static inline void pressKey(DeviceIntPtr dev, int kc, bool down, const char *msg)
- {
- 	int action;
-+#if XORG < 111
- 	unsigned int n;
-+#endif
- 
- 	if (msg != NULL)
- 		vlog.debug("%s %d %s", msg, kc, down ? "down" : "up");
- 
- 	action = down ? KeyPress : KeyRelease;
--	n = GetKeyboardEvents(eventq, dev, action, kc);
-+#if XORG < 111
-+	n = GetKeyboardEvents(eventq, dev, action, kc, NULL);
- 	enqueueEvents(dev, n);
-+#else
-+	QueueKeyboardEvents(dev, action, kc, NULL);
-+#endif
- }
- 
- #define IS_PRESSED(keyc, keycode) \
-@@ -341,8 +367,11 @@ public:
- 		int state, maxKeysPerMod, keycode;
- #if XORG >= 17
- 		KeyCode *modmap = NULL;
--
-+#if XORG >= 111
-+		state = XkbStateFieldFromRec(&dev->master->key->xkbInfo->state);
-+#else /* XORG >= 111 */
- 		state = XkbStateFieldFromRec(&dev->u.master->key->xkbInfo->state);
-+#endif /* XORG >= 111 */
- #else
- 		KeyClassPtr keyc = dev->key;
- 		state = keyc->state;
-@@ -380,7 +409,11 @@ public:
- #if XORG >= 17
- 		KeyCode *modmap = NULL;
- 
-+#if XORG >= 111
-+		keyc = dev->master->key;
-+#else /* XORG >= 111 */
- 		keyc = dev->u.master->key;
-+#endif /* XORG >= 111 */
- 		state = XkbStateFieldFromRec(&keyc->xkbInfo->state);
- #else
- 		keyc = dev->key;
-@@ -596,7 +629,11 @@ void InputDevice::keyEvent(rdr::U32 keys
- 	}
- 
- #if XORG >= 17
-+#if XORG >= 111
-+	keyc = keyboardDev->master->key;
-+#else /* XORG >= 111 */
- 	keyc = keyboardDev->u.master->key;
-+#endif /* XORG >= 111 */
- 
- 	keymap = XkbGetCoreMap(keyboardDev);
- 	if (!keymap) {
-@@ -753,7 +790,11 @@ ModeSwitchFound:
- 			XkbApplyMappingChange(keyboardDev, keymap, minKeyCode,
- 					      maxKeyCode - minKeyCode + 1,
- 					      NULL, serverClient);
-+#if XORG >= 111
-+			XkbCopyDeviceKeymap(keyboardDev->master, keyboardDev);
-+#else
- 			XkbCopyDeviceKeymap(keyboardDev->u.master, keyboardDev);
-+#endif
- #endif /* XORG < 17 */
- 			break;
- 		}
-diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h
---- tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h.xorg111	2011-08-09 23:16:36.000000000 +0200
-+++ tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h	2011-11-11 11:55:32.255835319 +0100
-@@ -36,6 +36,8 @@
- #define XORG 19
- #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (10 * 100000) + (99 * 1000))
- #define XORG 110
-+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000))
-+#define XORG 111
- #else
- #error "X.Org newer than 1.10 is not supported"
- #endif
-diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc
---- tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc.xorg111	2011-08-09 23:16:36.000000000 +0200
-+++ tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc	2011-11-11 11:55:32.256835319 +0100
-@@ -211,7 +211,11 @@ static void vfbFreeFramebufferMemory(vfb
- 
- extern "C" {
- 
-+#if XORG < 111
- void ddxGiveUp()
-+#else
-+void ddxGiveUp(enum ExitCode error)
-+#endif
- {
-     int i;
- 
-@@ -221,9 +225,17 @@ void ddxGiveUp()
- }
- 
- void
-+#if XORG < 111
- AbortDDX()
-+#else
-+AbortDDX(enum ExitCode error)
-+#endif
- {
-+#if XORG < 111
-     ddxGiveUp();
-+#else
-+    ddxGiveUp(error);
-+#endif
- }
- 
- #ifdef __DARWIN__
-@@ -668,8 +680,13 @@ vfbUninstallColormap(ColormapPtr pmap)
-     {
- 	if (pmap->mid != pmap->pScreen->defColormap)
- 	{
-+#if XORG < 111
- 	    curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
- 						   RT_COLORMAP);
-+#else
-+	    dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap,
-+				    RT_COLORMAP, serverClient, DixUnknownAccess);
-+#endif
- 	    (*pmap->pScreen->InstallColormap)(curpmap);
- 	}
-     }
diff --git a/abs/extra/tigervnc/xorg112.patch b/abs/extra/tigervnc/xorg112.patch
deleted file mode 100644
index 51f259e..0000000
--- a/abs/extra/tigervnc/xorg112.patch
+++ /dev/null
@@ -1,447 +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-04-15 12:19:00.995517546 +0200
-@@ -63,7 +63,7 @@
- BUILT_SOURCES = $(nodist_Xvnc_SOURCES)
- 
- fb.h: $(top_srcdir)/fb/fb.h
--	cat $(top_srcdir)/fb/fb.h | sed -e 's,and,c_and,' -e 's,xor,c_xor,' > $(srcdir)/fb.h
-+	cat $(top_srcdir)/fb/fb.h | sed -e 's,and,c_and,g' -e 's,xor,c_xor,g' > $(srcdir)/fb.h
- 
- pixman.h:
- 	for i in ${XSERVERLIBS_CFLAGS}; do \
-@@ -78,4 +78,4 @@
- 	fi
- 
- fbrop.h: $(top_srcdir)/fb/fbrop.h
--	cat $(top_srcdir)/fb/fbrop.h | sed -e 's,and,c_and,' -e 's,xor,c_xor,' > $(srcdir)/fbrop.h
-+	cat $(top_srcdir)/fb/fbrop.h | sed -e 's,and,c_and,g' -e 's,xor,c_xor,g' > $(srcdir)/fbrop.h
-diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/vncExtInit.cc tigervnc-1.2.0/unix/xserver/hw/vnc/vncExtInit.cc
---- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/vncExtInit.cc	2011-11-07 13:51:34.000000000 +0100
-+++ tigervnc-1.2.0/unix/xserver/hw/vnc/vncExtInit.cc	2012-04-15 12:18:57.819557251 +0200
-@@ -59,6 +59,7 @@
- #include "XserverDesktop.h"
- #include "vncHooks.h"
- #include "vncExtInit.h"
-+#include "xorg-version.h"
- 
- extern "C" {
- 
-@@ -449,10 +450,16 @@
-       ev.window = cur->window;
-       ev.time = GetTimeInMillis();
-       if (cur->client->swapped) {
-+#if XORG < 112
-         int n;
-         swaps(&ev.sequenceNumber, n);
-         swapl(&ev.window, n);
-         swapl(&ev.time, n);
-+#else
-+        swaps(&ev.sequenceNumber);
-+        swapl(&ev.window);
-+        swapl(&ev.time);
-+#endif
-       }
-       WriteToClient(cur->client, sizeof(xVncExtClientCutTextNotifyEvent),
-                     (char *)&ev);
-@@ -495,9 +502,14 @@
-       ev.sequenceNumber = cur->client->sequence;
-       ev.window = cur->window;
-       if (cur->client->swapped) {
-+#if XORG < 112
-         int n;
-         swaps(&ev.sequenceNumber, n);
-         swapl(&ev.window, n);
-+#else
-+        swaps(&ev.sequenceNumber);
-+        swapl(&ev.window);
-+#endif
-       }
-       WriteToClient(cur->client, sizeof(xVncExtQueryConnectNotifyEvent),
-                     (char *)&ev);
-@@ -538,10 +550,16 @@
-       ev.window = cur->window;
-       ev.selection = selection;
-       if (cur->client->swapped) {
-+#if XORG < 112
-         int n;
-         swaps(&ev.sequenceNumber, n);
-         swapl(&ev.window, n);
-         swapl(&ev.selection, n);
-+#else
-+        swaps(&ev.sequenceNumber);
-+        swapl(&ev.window);
-+        swapl(&ev.selection);
-+#endif
-       }
-       WriteToClient(cur->client, sizeof(xVncExtSelectionChangeNotifyEvent),
-                     (char *)&ev);
-@@ -562,7 +580,6 @@
-   param.buf[stuff->paramLen] = 0;
- 
-   xVncExtSetParamReply rep;
--  int n;
-   rep.type = X_Reply;
-   rep.length = 0;
-   rep.success = 0;
-@@ -603,8 +620,14 @@
- 
- deny:
-   if (client->swapped) {
-+#if XORG < 112
-+    int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.length, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.length);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtSetParamReply), (char *)&rep);
-   return (client->noClientException);
-@@ -612,9 +635,13 @@
- 
- static int SProcVncExtSetParam(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtSetParamReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_AT_LEAST_SIZE(xVncExtSetParamReq);
-   return ProcVncExtSetParam(client);
- }
-@@ -628,7 +655,6 @@
-   param.buf[stuff->paramLen] = 0;
- 
-   xVncExtGetParamReply rep;
--  int n;
-   rep.type = X_Reply;
-   rep.sequenceNumber = client->sequence;
-   rep.success = 0;
-@@ -646,9 +672,16 @@
-   rep.length = (len + 3) >> 2;
-   rep.valueLen = len;
-   if (client->swapped) {
-+#if XORG < 112
-+    int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.length, n);
-     swaps(&rep.valueLen, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.length);
-+    swaps(&rep.valueLen);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtGetParamReply), (char *)&rep);
-   if (value)
-@@ -659,9 +692,13 @@
- 
- static int SProcVncExtGetParam(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtGetParamReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_AT_LEAST_SIZE(xVncExtGetParamReq);
-   return ProcVncExtGetParam(client);
- }
-@@ -675,7 +712,6 @@
-   param.buf[stuff->paramLen] = 0;
- 
-   xVncExtGetParamDescReply rep;
--  int n;
-   rep.type = X_Reply;
-   rep.sequenceNumber = client->sequence;
-   rep.success = 0;
-@@ -690,9 +726,16 @@
-   rep.length = (len + 3) >> 2;
-   rep.descLen = len;
-   if (client->swapped) {
-+#if XORG < 112
-+    int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.length, n);
-     swaps(&rep.descLen, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.length);
-+    swaps(&rep.descLen);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtGetParamDescReply), (char *)&rep);
-   if (desc)
-@@ -702,9 +745,13 @@
- 
- static int SProcVncExtGetParamDesc(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtGetParamDescReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_AT_LEAST_SIZE(xVncExtGetParamDescReq);
-   return ProcVncExtGetParamDesc(client);
- }
-@@ -715,7 +762,6 @@
-   REQUEST_SIZE_MATCH(xVncExtListParamsReq);
- 
-   xVncExtListParamsReply rep;
--  int n;
-   rep.type = X_Reply;
-   rep.sequenceNumber = client->sequence;
- 
-@@ -731,9 +777,16 @@
-   rep.length = (len + 3) >> 2;
-   rep.nParams = nParams;
-   if (client->swapped) {
-+#if XORG < 112
-+    int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.length, n);
-     swaps(&rep.nParams, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.length);
-+    swaps(&rep.nParams);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtListParamsReply), (char *)&rep);
-   rdr::U8* data = new rdr::U8[len];
-@@ -753,9 +806,13 @@
- 
- static int SProcVncExtListParams(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtListParamsReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_SIZE_MATCH(xVncExtListParamsReq);
-   return ProcVncExtListParams(client);
- }
-@@ -778,11 +835,19 @@
- 
- static int SProcVncExtSetServerCutText(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtSetServerCutTextReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_AT_LEAST_SIZE(xVncExtSetServerCutTextReq);
-+#if XORG < 112
-   swapl(&stuff->textLen, n);
-+#else
-+  swapl(&stuff->textLen);
-+#endif
-   return ProcVncExtSetServerCutText(client);
- }
- 
-@@ -792,15 +857,21 @@
-   REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq);
- 
-   xVncExtGetClientCutTextReply rep;
--  int n;
-   rep.type = X_Reply;
-   rep.length = (clientCutTextLen + 3) >> 2;
-   rep.sequenceNumber = client->sequence;
-   rep.textLen = clientCutTextLen;
-   if (client->swapped) {
-+#if XORG < 112
-+    int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.length, n);
-     swapl(&rep.textLen, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.length);
-+    swapl(&rep.textLen);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtGetClientCutTextReply), (char *)&rep);
-   if (clientCutText)
-@@ -810,9 +881,13 @@
- 
- static int SProcVncExtGetClientCutText(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtGetClientCutTextReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq);
-   return ProcVncExtGetClientCutText(client);
- }
-@@ -842,12 +917,21 @@
- 
- static int SProcVncExtSelectInput(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtSelectInputReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_SIZE_MATCH(xVncExtSelectInputReq);
-+#if XORG < 112
-   swapl(&stuff->window, n);
-   swapl(&stuff->mask, n);
-+#else
-+  swapl(&stuff->window);
-+  swapl(&stuff->mask);
-+#endif
-   return ProcVncExtSelectInput(client);
- }
- 
-@@ -893,9 +977,14 @@
-   rep.length = 0;
-   rep.sequenceNumber = client->sequence;
-   if (client->swapped) {
-+#if XORG < 112
-     int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.length, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.length);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtConnectReply), (char *)&rep);
-   return (client->noClientException);
-@@ -903,9 +992,13 @@
- 
- static int SProcVncExtConnect(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtConnectReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_AT_LEAST_SIZE(xVncExtConnectReq);
-   return ProcVncExtConnect(client);
- }
-@@ -925,7 +1018,6 @@
-     qcTimeout = 0;
- 
-   xVncExtGetQueryConnectReply rep;
--  int n;
-   rep.type = X_Reply;
-   rep.sequenceNumber = client->sequence;
-   rep.timeout = qcTimeout;
-@@ -934,11 +1026,20 @@
-   rep.opaqueId = (CARD32)(long)queryConnectId;
-   rep.length = (rep.userLen + rep.addrLen + 3) >> 2;
-   if (client->swapped) {
-+#if XORG < 112
-+    int n;
-     swaps(&rep.sequenceNumber, n);
-     swapl(&rep.userLen, n);
-     swapl(&rep.addrLen, n);
-     swapl(&rep.timeout, n);
-     swapl(&rep.opaqueId, n);
-+#else
-+    swaps(&rep.sequenceNumber);
-+    swapl(&rep.userLen);
-+    swapl(&rep.addrLen);
-+    swapl(&rep.timeout);
-+    swapl(&rep.opaqueId);
-+#endif
-   }
-   WriteToClient(client, sizeof(xVncExtGetQueryConnectReply), (char *)&rep);
-   if (qcTimeout)
-@@ -950,9 +1051,13 @@
- 
- static int SProcVncExtGetQueryConnect(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtGetQueryConnectReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-+#else
-+  swaps(&stuff->length);
-+#endif
-   REQUEST_SIZE_MATCH(xVncExtGetQueryConnectReq);
-   return ProcVncExtGetQueryConnect(client);
- }
-@@ -977,10 +1082,15 @@
- 
- static int SProcVncExtApproveConnect(ClientPtr client)
- {
--  register char n;
-   REQUEST(xVncExtApproveConnectReq);
-+#if XORG < 112
-+  register char n;
-   swaps(&stuff->length, n);
-   swapl(&stuff->opaqueId, n);
-+#else
-+  swaps(&stuff->length);
-+  swapl(&stuff->opaqueId);
-+#endif
-   REQUEST_SIZE_MATCH(xVncExtApproveConnectReq);
-   return ProcVncExtApproveConnect(client);
- }
-diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xf86vncModule.cc tigervnc-1.2.0/unix/xserver/hw/vnc/xf86vncModule.cc
---- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xf86vncModule.cc	2010-04-23 15:55:10.000000000 +0200
-+++ tigervnc-1.2.0/unix/xserver/hw/vnc/xf86vncModule.cc	2012-04-15 12:18:57.820557239 +0200
-@@ -26,6 +26,8 @@
- #include <rfb/Logger_stdio.h>
- #include <rfb/LogWriter.h>
- 
-+#include "xorg-version.h"
-+
- extern "C" {
- #define class c_class
- #define private c_private
-@@ -89,7 +91,12 @@
-     ScrnInfoPtr pScrn = xf86Screens[scr];
- 
-     for (ParameterIterator i(Configuration::global()); i.param; i.next()) {
--      char* val = xf86FindOptionValue(pScrn->options, i.param->getName());
-+      const char *val;
-+#if XORG < 112
-+      val = xf86FindOptionValue(pScrn->options, i.param->getName());
-+#else
-+      val = xf86FindOptionValue((XF86OptionPtr)pScrn->options, i.param->getName());
-+#endif
-       if (val)
-         i.param->setParam(val);
-     }
-diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xorg-version.h tigervnc-1.2.0/unix/xserver/hw/vnc/xorg-version.h
---- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xorg-version.h	2012-04-15 12:18:21.272014160 +0200
-+++ tigervnc-1.2.0/unix/xserver/hw/vnc/xorg-version.h	2012-04-15 12:18:57.821557227 +0200
-@@ -38,6 +38,8 @@
- #define XORG 110
- #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000))
- #define XORG 111
-+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (12 * 100000) + (99 * 1000))
-+#define XORG 112
- #else
- #error "X.Org newer than 1.10 is not supported"
- #endif
diff --git a/abs/extra/tigervnc/xorg118.patch b/abs/extra/tigervnc/xorg118.patch
new file mode 100644
index 0000000..7484200
--- /dev/null
+++ b/abs/extra/tigervnc/xorg118.patch
@@ -0,0 +1,27 @@
+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

