From c5486fd51cc93df1a4bc4826cc19b6f766260979 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Fri, 24 Aug 2012 23:11:24 -0500 Subject: tigervnc: replacing tightvnc with tigervnc --- abs/extra/tigervnc/PKGBUILD | 70 ++++++ abs/extra/tigervnc/cmakelists.patch | 70 ++++++ abs/extra/tigervnc/gethomedir.patch | 16 ++ abs/extra/tigervnc/gnutls.patch | 36 +++ abs/extra/tigervnc/tiger.install | 20 ++ abs/extra/tigervnc/xorg111.patch | 235 +++++++++++++++++++ abs/extra/tigervnc/xorg112.patch | 447 ++++++++++++++++++++++++++++++++++++ 7 files changed, 894 insertions(+) create mode 100644 abs/extra/tigervnc/PKGBUILD create mode 100644 abs/extra/tigervnc/cmakelists.patch create mode 100644 abs/extra/tigervnc/gethomedir.patch create mode 100644 abs/extra/tigervnc/gnutls.patch create mode 100644 abs/extra/tigervnc/tiger.install create mode 100644 abs/extra/tigervnc/xorg111.patch create mode 100644 abs/extra/tigervnc/xorg112.patch diff --git a/abs/extra/tigervnc/PKGBUILD b/abs/extra/tigervnc/PKGBUILD new file mode 100644 index 0000000..061a7f7 --- /dev/null +++ b/abs/extra/tigervnc/PKGBUILD @@ -0,0 +1,70 @@ +# $Id: PKGBUILD 73952 2012-07-17 11:36:12Z spupykin $ +# Maintainer: Sergej Pupykin +# Maintainer: Uroš Vampl + +pkgname=tigervnc +pkgver=1.2.0 +pkgrel=7 +_xorgver=1.12.3 +pkgdesc="suite of VNC servers and clients. 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') +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 +conflicts=('tightvnc') +source=(http://downloads.sourceforge.net/tigervnc/${pkgname}-${pkgver}.tar.gz + ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${_xorgver}.tar.bz2 + xorg111.patch + xorg112.patch + gnutls.patch + gethomedir.patch + cmakelists.patch) +md5sums=('3a5755b4ed600a81c3a17976c6f8420d' + '65a53b11bc01dcc97ee9b201dc620c32' + 'b680b55f7f9f569cd26ac0b330012a8b' + 'f73e055153889ae7b5aac8e697f7a841' + '1a5fe8867ab3e49e20aafc70c415494f' + 'fa059baabe72308bf82622bca73cb3e0' + '6ef923c71cc0e79c4b37eb3b124eea75') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + cp -r ${srcdir}/xorg-server-${_xorgver}/* unix/xserver + patch -Np1 -i ${srcdir}/gnutls.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 + + cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DUSE_INCLUDED_FLTK=yes + make + + cd unix/xserver + patch -Np1 -i ../xserver110.patch + autoreconf -fiv + ./configure --prefix=/usr \ + --disable-static --disable-xinerama --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 + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + cd unix/xserver/hw/vnc + make DESTDIR=${pkgdir} install + sed -i 's/iconic/nowin/' ${pkgdir}/usr/bin/vncserver +} diff --git a/abs/extra/tigervnc/cmakelists.patch b/abs/extra/tigervnc/cmakelists.patch new file mode 100644 index 0000000..cc62866 --- /dev/null +++ b/abs/extra/tigervnc/cmakelists.patch @@ -0,0 +1,70 @@ +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 new file mode 100644 index 0000000..9114eea --- /dev/null +++ b/abs/extra/tigervnc/gethomedir.patch @@ -0,0 +1,16 @@ +--- 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 + 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) + + noinst_LTLIBRARIES = libvnccommon.la + diff --git a/abs/extra/tigervnc/gnutls.patch b/abs/extra/tigervnc/gnutls.patch new file mode 100644 index 0000000..d0b7ef8 --- /dev/null +++ b/abs/extra/tigervnc/gnutls.patch @@ -0,0 +1,36 @@ +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 + #include + +-#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 + #include + +-#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 new file mode 100644 index 0000000..5aa9395 --- /dev/null +++ b/abs/extra/tigervnc/tiger.install @@ -0,0 +1,20 @@ +post_install(){ + groupadd -g 78 vncsvc &>/dev/null + useradd -u 78 -m -g vncsvc -d /home/vncsvc -s /bin/bash vncsvc &>/dev/null + 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 +} + +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/xorg111.patch b/abs/extra/tigervnc/xorg111.patch new file mode 100644 index 0000000..ee0ddb9 --- /dev/null +++ b/abs/extra/tigervnc/xorg111.patch @@ -0,0 +1,235 @@ +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 new file mode 100644 index 0000000..51f259e --- /dev/null +++ b/abs/extra/tigervnc/xorg112.patch @@ -0,0 +1,447 @@ +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 + #include + ++#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 -- cgit v0.12