summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--abs/extra/tigervnc/PKGBUILD89
-rw-r--r--abs/extra/tigervnc/cmakelists.patch70
-rw-r--r--abs/extra/tigervnc/gethomedir.patch24
-rw-r--r--abs/extra/tigervnc/gnutls.patch36
-rw-r--r--abs/extra/tigervnc/tiger.install22
-rw-r--r--abs/extra/tigervnc/vncserver.service29
-rw-r--r--abs/extra/tigervnc/vncsvc.rules4
-rw-r--r--abs/extra/tigervnc/vncviewer.desktop9
-rw-r--r--abs/extra/tigervnc/xorg111.patch235
-rw-r--r--abs/extra/tigervnc/xorg112.patch447
-rw-r--r--abs/extra/tigervnc/xorg118.patch27
11 files changed, 120 insertions, 872 deletions
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