summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorUros Vampl2015-06-08 13:03:52 +0200
committerUros Vampl2015-06-08 13:03:52 +0200
commit27b30fe0f1c332fb7a22449af21d940228376cd2 (patch)
tree6209981ba6a425d66f487a97c82074e8a41e64fb
downloadaur-27b30fe0f1c332fb7a22449af21d940228376cd2.tar.gz
Initial import
-rw-r--r--.SRCINFO59
-rw-r--r--PKGBUILD73
-rw-r--r--getmaster.patch97
-rw-r--r--vncserver.service29
-rw-r--r--vncviewer.desktop9
5 files changed, 267 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..642d3b0b1517
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,59 @@
+pkgbase = tigervnc-git
+ pkgdesc = Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC.
+ pkgver = r3061.500cbe6e
+ pkgrel = 1
+ url = http://www.tigervnc.org
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = cmake
+ makedepends = nasm
+ makedepends = xorg-font-util
+ makedepends = xorg-util-macros
+ makedepends = bigreqsproto
+ makedepends = compositeproto
+ makedepends = damageproto
+ makedepends = randrproto
+ makedepends = resourceproto
+ makedepends = scrnsaverproto
+ makedepends = videoproto
+ makedepends = xcmiscproto
+ makedepends = xf86vidmodeproto
+ makedepends = xtrans
+ makedepends = glproto
+ makedepends = dri2proto
+ makedepends = dri3proto
+ makedepends = presentproto
+ makedepends = mesa
+ makedepends = git
+ depends = fltk
+ depends = pam
+ depends = gnutls
+ depends = libjpeg-turbo
+ depends = libxtst
+ depends = libxfont
+ depends = pixman
+ depends = xorg-xauth
+ depends = xorg-xsetroot
+ depends = xkeyboard-config
+ depends = xorg-xkbcomp
+ depends = libgl
+ depends = libgcrypt
+ depends = perl
+ optdepends = mesa: for OpenGL functionality in Xvnc
+ provides = tigervnc
+ conflicts = tigervnc
+ conflicts = tightvnc
+ source = git+https://github.com/TigerVNC/tigervnc.git
+ source = ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-1.17.1.tar.bz2
+ source = vncserver.service
+ source = vncviewer.desktop
+ source = getmaster.patch
+ md5sums = SKIP
+ md5sums = 5986510d59e394a50126a8e2833e79d3
+ md5sums = a8a20685c23a50f86a13c33ce96a7ba7
+ md5sums = b200d83c60e80c6f9693ea19a2d9f5b0
+ md5sums = 5ee303c958d14771affd5514de3328ca
+
+pkgname = tigervnc-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..d5bcc9231a85
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,73 @@
+# Maintainer: Uroš Vampl <mobile.leecher at gmail dot com>
+
+pkgname=tigervnc-git
+pkgver=r3061.500cbe6e
+pkgrel=1
+_xorgver=1.17.1
+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=('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' 'glproto' 'dri2proto' 'dri3proto' 'presentproto'
+ 'mesa' 'git')
+optdepends=('mesa: for OpenGL functionality in Xvnc')
+conflicts=('tigervnc' 'tightvnc')
+provides=('tigervnc')
+source=(git+https://github.com/TigerVNC/tigervnc.git
+ ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${_xorgver}.tar.bz2
+ vncserver.service
+ vncviewer.desktop
+ getmaster.patch)
+md5sums=('SKIP'
+ '5986510d59e394a50126a8e2833e79d3'
+ 'a8a20685c23a50f86a13c33ce96a7ba7'
+ 'b200d83c60e80c6f9693ea19a2d9f5b0'
+ '5ee303c958d14771affd5514de3328ca')
+
+pkgver() {
+ cd tigervnc
+ echo r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
+}
+
+prepare() {
+ cd tigervnc
+
+ patch -Np1 -i ${srcdir}/getmaster.patch
+ sed -i 's/iconic/nowin/' unix/vncserver
+
+ cd unix/xserver
+ cp -r ${srcdir}/xorg-server-${_xorgver}/* .
+ patch -Np1 -i ../xserver116.patch
+}
+
+build() {
+ cd tigervnc
+ cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr
+ make
+
+ cd unix/xserver
+ autoreconf -fiv
+ ./configure --prefix=/usr \
+ --disable-static --without-dtrace \
+ --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
+ --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
+}
+
+package() {
+ cd tigervnc
+ make DESTDIR=${pkgdir} install
+ cd unix/xserver/hw/vnc
+ make DESTDIR=${pkgdir} install
+ 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/getmaster.patch b/getmaster.patch
new file mode 100644
index 000000000000..2eb8d033f2ad
--- /dev/null
+++ b/getmaster.patch
@@ -0,0 +1,97 @@
+diff --git a/unix/xserver/hw/vnc/InputXKB.c b/unix/xserver/hw/vnc/InputXKB.c
+index 8d7ae56..e7ded9c 100644
+--- a/unix/xserver/hw/vnc/InputXKB.c
++++ b/unix/xserver/hw/vnc/InputXKB.c
+@@ -212,10 +212,7 @@ void vncPrepareInputDevices(void)
+
+ unsigned vncGetKeyboardState(void)
+ {
+- DeviceIntPtr master;
+-
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
+- return XkbStateFieldFromRec(&master->key->xkbInfo->state);
++ return XkbStateFieldFromRec(&vncKeyboardDev->master->key->xkbInfo->state);
+ }
+
+ unsigned vncGetLevelThreeMask(void)
+@@ -236,7 +233,7 @@ unsigned vncGetLevelThreeMask(void)
+ return 0;
+ }
+
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
+
+ act = XkbKeyActionPtr(xkb, keycode, state);
+ if (act == NULL)
+@@ -261,7 +258,7 @@ KeyCode vncPressShift(void)
+ if (state & ShiftMask)
+ return 0;
+
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
+ for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
+ XkbAction *act;
+ unsigned char mask;
+@@ -301,7 +298,7 @@ size_t vncReleaseShift(KeyCode *keys, size_t maxKeys)
+
+ count = 0;
+
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
++ master = vncKeyboardDev->master;
+ xkb = master->key->xkbInfo->desc;
+ for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
+ XkbAction *act;
+@@ -357,7 +354,7 @@ KeyCode vncPressLevelThree(void)
+ return 0;
+ }
+
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
+
+ act = XkbKeyActionPtr(xkb, keycode, state);
+ if (act == NULL)
+@@ -388,7 +385,7 @@ size_t vncReleaseLevelThree(KeyCode *keys, size_t maxKeys)
+
+ count = 0;
+
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
++ master = vncKeyboardDev->master;
+ xkb = master->key->xkbInfo->desc;
+ for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
+ XkbAction *act;
+@@ -431,7 +428,7 @@ KeyCode vncKeysymToKeycode(KeySym keysym, unsigned state, unsigned *new_state)
+ if (new_state != NULL)
+ *new_state = state;
+
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
+ for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
+ unsigned int state_out;
+ KeySym dummy;
+@@ -488,7 +485,7 @@ int vncIsLockModifier(KeyCode keycode, unsigned state)
+ XkbDescPtr xkb;
+ XkbAction *act;
+
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
+
+ act = XkbKeyActionPtr(xkb, keycode, state);
+ if (act == NULL)
+@@ -526,7 +523,7 @@ int vncIsAffectedByNumLock(KeyCode keycode)
+ if (numlock_keycode == 0)
+ return 0;
+
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
+
+ act = XkbKeyActionPtr(xkb, numlock_keycode, state);
+ if (act == NULL)
+@@ -560,7 +557,7 @@ KeyCode vncAddKeysym(KeySym keysym, unsigned state)
+ KeySym *syms;
+ KeySym upper, lower;
+
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
++ master = vncKeyboardDev->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/vncserver.service b/vncserver.service
new file mode 100644
index 000000000000..40151ac80913
--- /dev/null
+++ b/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=simple
+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/vncviewer.desktop b/vncviewer.desktop
new file mode 100644
index 000000000000..d8005d30748c
--- /dev/null
+++ b/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;