diff options
author | root <root@rshg054.dnsready.net> | 2013-08-13 01:33:19 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-08-13 01:33:19 -0700 |
commit | 7a65a910b77ad191d69881098c47f9b0c852d92e (patch) | |
tree | 9564e611af1442f8952a8cbddb3b0ad25ed71aab /community/tigervnc | |
parent | 60da6abff6c9577a783d72865f11de7a585e912e (diff) |
Tue Aug 13 01:31:08 PDT 2013
Diffstat (limited to 'community/tigervnc')
-rw-r--r-- | community/tigervnc/PKGBUILD | 70 | ||||
-rw-r--r-- | community/tigervnc/gethomedir.patch | 20 | ||||
-rw-r--r-- | community/tigervnc/getmaster.patch | 96 | ||||
-rw-r--r-- | community/tigervnc/vncserver.service | 28 | ||||
-rw-r--r-- | community/tigervnc/vncviewer.desktop | 10 |
5 files changed, 224 insertions, 0 deletions
diff --git a/community/tigervnc/PKGBUILD b/community/tigervnc/PKGBUILD new file mode 100644 index 000000000..a37192c1e --- /dev/null +++ b/community/tigervnc/PKGBUILD @@ -0,0 +1,70 @@ +# $Id: PKGBUILD 94384 2013-07-22 13:59:43Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: Uroš Vampl <mobile.leecher at gmail dot com> + +pkgname=tigervnc +pkgver=1.3.0 +pkgrel=2 +_xorgver=1.14.2 +pkgdesc="suite of VNC servers and clients. VNC 4 branch of TightVNC." +arch=('i686' 'x86_64') +url="http://www.tigervnc.org" +license=('GPL') +depends=('fltk' 'pam' 'gnutls' 'libjpeg-turbo' 'libxtst' 'libxfont' 'pixman' + 'xorg-xauth' 'xorg-xsetroot' 'xkeyboard-config' 'xorg-xkbcomp' + 'libgl' 'libgcrypt' 'perl' ) +makedepends=('cmake' 'nasm' 'xorg-font-util' 'xorg-util-macros' 'bigreqsproto' + 'compositeproto' 'damageproto' 'randrproto' 'resourceproto' + 'scrnsaverproto' 'videoproto' 'xcmiscproto' 'xf86vidmodeproto' + 'xtrans' 'mesa' 'glproto' 'dri2proto' 'imagemagick') +options=(!libtool) +conflicts=('tightvnc') +source=(http://downloads.sourceforge.net/project/tigervnc/tigervnc/$pkgver/tigervnc-$pkgver.tar.bz2 + ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${_xorgver}.tar.bz2 + vncserver.service + vncviewer.desktop + gethomedir.patch + getmaster.patch) +md5sums=('a5158228e64d14496821a39bf3851f1b' + '5d36a6483e8e301875131e8302c67727' + '0903d5a0dfa38e0b04964505b644585c' + '71cac0fb9701b0a041430f0fddfe00c8' + '22f1523a0eca56ad79cfabd0db6e2cf6' + 'e056a2502dfe0cb3b02e08cab689482f') + +prepare() { + cd ${srcdir}/${pkgname}-${pkgver} + cp -r ${srcdir}/xorg-server-${_xorgver}/* unix/xserver + + patch -Np1 -i ${srcdir}/gethomedir.patch + patch -Np1 -i ${srcdir}/getmaster.patch +} + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr + make + + cd unix/xserver + patch -Np1 -i ../xserver114.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-selective-werror \ + --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 + install -Dm0644 $srcdir/vncserver.service $pkgdir/usr/lib/systemd/system/vncserver.service + install -Dm0644 $srcdir/vncviewer.desktop $pkgdir/usr/share/applications/vncviewer.desktop +} diff --git a/community/tigervnc/gethomedir.patch b/community/tigervnc/gethomedir.patch new file mode 100644 index 000000000..5f3542de8 --- /dev/null +++ b/community/tigervnc/gethomedir.patch @@ -0,0 +1,20 @@ +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 ++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/community/tigervnc/getmaster.patch b/community/tigervnc/getmaster.patch new file mode 100644 index 000000000..cf6ce863f --- /dev/null +++ b/community/tigervnc/getmaster.patch @@ -0,0 +1,96 @@ +diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc +--- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster 2013-07-12 09:30:50.551459439 +0100 ++++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc 2013-07-12 09:38:31.037480528 +0100 +@@ -232,10 +232,7 @@ void InputDevice::PrepareInputDevices(vo + + unsigned InputDevice::getKeyboardState(void) + { +- DeviceIntPtr master; +- +- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); +- return XkbStateFieldFromRec(&master->key->xkbInfo->state); ++ return XkbStateFieldFromRec(&keyboardDev->master->key->xkbInfo->state); + } + + unsigned InputDevice::getLevelThreeMask(void) +@@ -256,7 +253,7 @@ unsigned InputDevice::getLevelThreeMask( + return 0; + } + +- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = keyboardDev->master->key->xkbInfo->desc; + + act = XkbKeyActionPtr(xkb, keycode, state); + if (act == NULL) +@@ -281,7 +278,7 @@ KeyCode InputDevice::pressShift(void) + if (state & ShiftMask) + return 0; + +- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = keyboardDev->master->key->xkbInfo->desc; + for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { + XkbAction *act; + unsigned char mask; +@@ -318,7 +315,7 @@ std::list<KeyCode> InputDevice::releaseS + if (!(state & ShiftMask)) + return keys; + +- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); ++ master = keyboardDev->master; + xkb = master->key->xkbInfo->desc; + for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { + XkbAction *act; +@@ -371,7 +368,7 @@ KeyCode InputDevice::pressLevelThree(voi + return 0; + } + +- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = keyboardDev->master->key->xkbInfo->desc; + + act = XkbKeyActionPtr(xkb, keycode, state); + if (act == NULL) +@@ -399,7 +396,7 @@ std::list<KeyCode> InputDevice::releaseL + if (!(state & mask)) + return keys; + +- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); ++ master = keyboardDev->master; + xkb = master->key->xkbInfo->desc; + for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { + XkbAction *act; +@@ -440,7 +437,7 @@ KeyCode InputDevice::keysymToKeycode(Key + if (new_state != NULL) + *new_state = state; + +- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = keyboardDev->master->key->xkbInfo->desc; + for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) { + unsigned int state_out; + KeySym dummy; +@@ -497,7 +494,7 @@ bool InputDevice::isLockModifier(KeyCode + XkbDescPtr xkb; + XkbAction *act; + +- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = keyboardDev->master->key->xkbInfo->desc; + + act = XkbKeyActionPtr(xkb, keycode, state); + if (act == NULL) +@@ -535,7 +532,7 @@ bool InputDevice::isAffectedByNumLock(Ke + if (numlock_keycode == 0) + return false; + +- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; ++ xkb = keyboardDev->master->key->xkbInfo->desc; + + act = XkbKeyActionPtr(xkb, numlock_keycode, state); + if (act == NULL) +@@ -569,7 +566,7 @@ KeyCode InputDevice::addKeysym(KeySym ke + KeySym *syms; + KeySym upper, lower; + +- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT); ++ master = keyboardDev->master; + xkb = master->key->xkbInfo->desc; + for (key = xkb->max_key_code; key >= xkb->min_key_code; key--) { + if (XkbKeyNumGroups(xkb, key) == 0) diff --git a/community/tigervnc/vncserver.service b/community/tigervnc/vncserver.service new file mode 100644 index 000000000..a5bb02ade --- /dev/null +++ b/community/tigervnc/vncserver.service @@ -0,0 +1,28 @@ +# 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= + +ExecStart=/usr/bin/vncserver %i +ExecStop=/usr/bin/vncserver -kill %i + +[Install] +WantedBy=multi-user.target diff --git a/community/tigervnc/vncviewer.desktop b/community/tigervnc/vncviewer.desktop new file mode 100644 index 000000000..5f6046db2 --- /dev/null +++ b/community/tigervnc/vncviewer.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=TigerVNC viewer +Comment=TigerVNC viewer +Exec=/usr/bin/vncviewer +Icon=tigervnc.png +Terminal=false +StartupNotify=false +Categories=Application; Network; |