Package init
This commit is contained in:
commit
69a765df29
19
10-libvnc.conf
Normal file
19
10-libvnc.conf
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# This file contains configuration of libvnc.so module
|
||||||
|
#
|
||||||
|
# To get libvnc.so module working, do this:
|
||||||
|
# 1. run "vncpasswd" from tigervnc-server package as root user
|
||||||
|
# 2. uncomment configuration lines below
|
||||||
|
#
|
||||||
|
# Please note you can specify any option which Xvnc accepts.
|
||||||
|
# Refer to `Xvnc -help` output for detailed list of options.
|
||||||
|
|
||||||
|
#Section "Module"
|
||||||
|
# Load "vnc"
|
||||||
|
#EndSection
|
||||||
|
|
||||||
|
#Section "Screen"
|
||||||
|
# Identifier "Screen0"
|
||||||
|
# DefaultDepth 16
|
||||||
|
# Option "SecurityTypes" "VncAuth"
|
||||||
|
# Option "PasswordFile" "/root/.vnc/passwd"
|
||||||
|
#EndSection
|
||||||
BIN
tigervnc-1.9.0.tar.gz
Normal file
BIN
tigervnc-1.9.0.tar.gz
Normal file
Binary file not shown.
88
tigervnc-getmaster.patch
Normal file
88
tigervnc-getmaster.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
diff --git a/unix/xserver/hw/vnc/InputXKB.c b/unix/xserver/hw/vnc/InputXKB.c
|
||||||
|
index a9bd11d..7b54b43 100644
|
||||||
|
--- a/unix/xserver/hw/vnc/InputXKB.c
|
||||||
|
+++ b/unix/xserver/hw/vnc/InputXKB.c
|
||||||
|
@@ -214,10 +214,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)
|
||||||
|
@@ -238,7 +235,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)
|
||||||
|
@@ -263,7 +260,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;
|
||||||
|
@@ -303,7 +300,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;
|
||||||
|
@@ -359,7 +356,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)
|
||||||
|
@@ -390,7 +387,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;
|
||||||
|
@@ -433,7 +430,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;
|
||||||
|
@@ -511,7 +508,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)
|
||||||
|
@@ -545,7 +542,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)
|
||||||
27
tigervnc-ignore-buttons-in-mouse-leave-event.patch
Normal file
27
tigervnc-ignore-buttons-in-mouse-leave-event.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From be88293952175258992c1ed2f5a1b7d8f78fe7cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre Ossman <ossman@cendio.se>
|
||||||
|
Date: Tue, 31 Jul 2018 16:06:59 +0200
|
||||||
|
Subject: Ignore buttons in mouse leave events
|
||||||
|
|
||||||
|
For KDE we can sometimes get a bunch of stray FL_LEAVE events before
|
||||||
|
gaining focus. Sending their included button information gets things
|
||||||
|
in the incorrect order with regard to other synchronisation we do on
|
||||||
|
focus. So just ignore buttons as the only information we want out of
|
||||||
|
the leave information is a position update.
|
||||||
|
|
||||||
|
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
|
||||||
|
index ff27f7bf..7b5df572 100644
|
||||||
|
--- a/vncviewer/Viewport.cxx
|
||||||
|
+++ b/vncviewer/Viewport.cxx
|
||||||
|
@@ -587,7 +587,10 @@ int Viewport::handle(int event)
|
||||||
|
|
||||||
|
case FL_LEAVE:
|
||||||
|
window()->cursor(FL_CURSOR_DEFAULT);
|
||||||
|
- // Fall through as we want a last move event to help trigger edge stuff
|
||||||
|
+ // We want a last move event to help trigger edge stuff
|
||||||
|
+ handlePointerEvent(Point(Fl::event_x() - x(), Fl::event_y() - y()), 0);
|
||||||
|
+ return 1;
|
||||||
|
+
|
||||||
|
case FL_PUSH:
|
||||||
|
case FL_RELEASE:
|
||||||
|
case FL_DRAG:
|
||||||
28
tigervnc-manpages.patch
Normal file
28
tigervnc-manpages.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/unix/vncserver b/unix/vncserver
|
||||||
|
index 9e7a6ac..139f960 100755
|
||||||
|
--- a/unix/vncserver
|
||||||
|
+++ b/unix/vncserver
|
||||||
|
@@ -684,6 +684,7 @@ sub Usage
|
||||||
|
" [-geometry <width>x<height>]\n".
|
||||||
|
" [-pixelformat rgbNNN|bgrNNN]\n".
|
||||||
|
" [-fp <font-path>]\n".
|
||||||
|
+ " [-cc <visual>]\n".
|
||||||
|
" [-fg]\n".
|
||||||
|
" [-autokill]\n".
|
||||||
|
" [-noxstartup]\n".
|
||||||
|
diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
|
||||||
|
index f076565..05669a4 100644
|
||||||
|
--- a/vncviewer/vncviewer.cxx
|
||||||
|
+++ b/vncviewer/vncviewer.cxx
|
||||||
|
@@ -352,6 +352,11 @@ static void usage(const char *programName)
|
||||||
|
" %s [parameters] -listen [port] [parameters]\n"
|
||||||
|
" %s [parameters] [.tigervnc file]\n",
|
||||||
|
programName, programName, programName);
|
||||||
|
+ fprintf(stderr,"\n"
|
||||||
|
+ "Options:\n\n"
|
||||||
|
+ " -display Xdisplay - Specifies the X display for the viewer window\n"
|
||||||
|
+ " -geometry geometry - Standard X position and sizing specification.\n");
|
||||||
|
+
|
||||||
|
fprintf(stderr,"\n"
|
||||||
|
"Parameters can be turned on with -<param> or off with -<param>=0\n"
|
||||||
|
"Parameters which take a value can be specified as "
|
||||||
41
tigervnc-passwd-crash-with-malloc-checks.patch
Normal file
41
tigervnc-passwd-crash-with-malloc-checks.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
diff --git a/common/rfb/Password.cxx b/common/rfb/Password.cxx
|
||||||
|
index 240c9d4..cf9362e 100644
|
||||||
|
--- a/common/rfb/Password.cxx
|
||||||
|
+++ b/common/rfb/Password.cxx
|
||||||
|
@@ -55,7 +55,7 @@ PlainPasswd::~PlainPasswd() {
|
||||||
|
|
||||||
|
void PlainPasswd::replaceBuf(char* b) {
|
||||||
|
if (buf)
|
||||||
|
- memset(buf, 0, strlen(buf));
|
||||||
|
+ memset(buf, 0, length ? length : strlen(buf));
|
||||||
|
CharArray::replaceBuf(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/common/rfb/util.h b/common/rfb/util.h
|
||||||
|
index b678b89..fffe322 100644
|
||||||
|
--- a/common/rfb/util.h
|
||||||
|
+++ b/common/rfb/util.h
|
||||||
|
@@ -50,16 +50,21 @@ namespace rfb {
|
||||||
|
CharArray() : buf(0) {}
|
||||||
|
CharArray(char* str) : buf(str) {} // note: assumes ownership
|
||||||
|
CharArray(int len) {
|
||||||
|
+ length = len;
|
||||||
|
buf = new char[len];
|
||||||
|
}
|
||||||
|
~CharArray() {
|
||||||
|
- delete [] buf;
|
||||||
|
+ if (buf) {
|
||||||
|
+ delete [] buf;
|
||||||
|
+ buf = nullptr;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
void format(const char *fmt, ...) __printf_attr(2, 3);
|
||||||
|
// Get the buffer pointer & clear it (i.e. caller takes ownership)
|
||||||
|
char* takeBuf() {char* tmp = buf; buf = 0; return tmp;}
|
||||||
|
- void replaceBuf(char* b) {delete [] buf; buf = b;}
|
||||||
|
+ void replaceBuf(char* b) {if (buf) delete [] buf; buf = b;}
|
||||||
|
char* buf;
|
||||||
|
+ int length = 0;
|
||||||
|
private:
|
||||||
|
CharArray(const CharArray&);
|
||||||
|
CharArray& operator=(const CharArray&);
|
||||||
9
tigervnc-shebang.patch
Normal file
9
tigervnc-shebang.patch
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
diff -up tigervnc-1.3.0/unix/vncserver.shebang tigervnc-1.3.0/unix/vncserver
|
||||||
|
--- tigervnc-1.3.0/unix/vncserver.shebang 2013-07-24 12:22:34.962158378 +0100
|
||||||
|
+++ tigervnc-1.3.0/unix/vncserver 2013-07-24 12:22:41.593188190 +0100
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/env perl
|
||||||
|
+#!/usr/bin/perl
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009-2010 D. R. Commander. All Rights Reserved.
|
||||||
|
# Copyright (C) 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||||
13
tigervnc-utilize-system-crypto-policies.patch
Normal file
13
tigervnc-utilize-system-crypto-policies.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/common/rfb/Security.cxx b/common/rfb/Security.cxx
|
||||||
|
index e623ab5..4987b29 100644
|
||||||
|
--- a/common/rfb/Security.cxx
|
||||||
|
+++ b/common/rfb/Security.cxx
|
||||||
|
@@ -52,7 +52,7 @@ static LogWriter vlog("Security");
|
||||||
|
#ifdef HAVE_GNUTLS
|
||||||
|
StringParameter Security::GnuTLSPriority("GnuTLSPriority",
|
||||||
|
"GnuTLS priority string that controls the TLS session’s handshake algorithms",
|
||||||
|
- "NORMAL");
|
||||||
|
+ "@SYSTEM");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Security::Security()
|
||||||
91
tigervnc-xserver120.patch
Normal file
91
tigervnc-xserver120.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
diff -up xserver/configure.ac.xserver116-rebased xserver/configure.ac
|
||||||
|
--- xserver/configure.ac.xserver116-rebased 2016-09-29 13:14:45.595441590 +0200
|
||||||
|
+++ xserver/configure.ac 2016-09-29 13:14:45.631442006 +0200
|
||||||
|
@@ -74,6 +74,7 @@ dnl forcing an entire recompile.x
|
||||||
|
AC_CONFIG_HEADERS(include/version-config.h)
|
||||||
|
|
||||||
|
AM_PROG_AS
|
||||||
|
+AC_PROG_CXX
|
||||||
|
AC_PROG_LN_S
|
||||||
|
LT_PREREQ([2.2])
|
||||||
|
LT_INIT([disable-static win32-dll])
|
||||||
|
@@ -1863,6 +1864,10 @@ if test "x$XVFB" = xyes; then
|
||||||
|
AC_SUBST([XVFB_SYS_LIBS])
|
||||||
|
fi
|
||||||
|
|
||||||
|
+dnl Xvnc DDX
|
||||||
|
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"])
|
||||||
|
+AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"])
|
||||||
|
+AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"])
|
||||||
|
|
||||||
|
dnl Xnest DDX
|
||||||
|
|
||||||
|
@@ -1898,6 +1903,8 @@ if test "x$XORG" = xauto; then
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$XORG])
|
||||||
|
|
||||||
|
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
|
||||||
|
+
|
||||||
|
if test "x$XORG" = xyes; then
|
||||||
|
XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
|
||||||
|
XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
|
||||||
|
@@ -2116,7 +2123,6 @@ if test "x$XORG" = xyes; then
|
||||||
|
AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
|
||||||
|
AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
|
||||||
|
AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
|
||||||
|
- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
|
||||||
|
AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
|
||||||
|
AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
|
||||||
|
AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
|
||||||
|
@@ -2691,6 +2697,7 @@ hw/dmx/Makefile
|
||||||
|
hw/dmx/man/Makefile
|
||||||
|
hw/vfb/Makefile
|
||||||
|
hw/vfb/man/Makefile
|
||||||
|
+hw/vnc/Makefile
|
||||||
|
hw/xnest/Makefile
|
||||||
|
hw/xnest/man/Makefile
|
||||||
|
hw/xwin/Makefile
|
||||||
|
diff -up xserver/hw/Makefile.am.xserver116-rebased xserver/hw/Makefile.am
|
||||||
|
--- xserver/hw/Makefile.am.xserver116-rebased 2016-09-29 13:14:45.601441659 +0200
|
||||||
|
+++ xserver/hw/Makefile.am 2016-09-29 13:14:45.631442006 +0200
|
||||||
|
@@ -38,7 +38,8 @@ SUBDIRS = \
|
||||||
|
$(DMX_SUBDIRS) \
|
||||||
|
$(KDRIVE_SUBDIRS) \
|
||||||
|
$(XQUARTZ_SUBDIRS) \
|
||||||
|
- $(XWAYLAND_SUBDIRS)
|
||||||
|
+ $(XWAYLAND_SUBDIRS) \
|
||||||
|
+ vnc
|
||||||
|
|
||||||
|
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland
|
||||||
|
|
||||||
|
diff --git xserver/mi/miinitext.c xserver/mi/miinitext.c
|
||||||
|
index 5596e21..003fc3c 100644
|
||||||
|
--- xserver/mi/miinitext.c
|
||||||
|
+++ xserver/mi/miinitext.c
|
||||||
|
@@ -107,8 +107,15 @@ SOFTWARE.
|
||||||
|
#include "os.h"
|
||||||
|
#include "globals.h"
|
||||||
|
|
||||||
|
+#ifdef TIGERVNC
|
||||||
|
+extern void vncExtensionInit(INITARGS);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* List of built-in (statically linked) extensions */
|
||||||
|
static const ExtensionModule staticExtensions[] = {
|
||||||
|
+#ifdef TIGERVNC
|
||||||
|
+ {vncExtensionInit, "VNC-EXTENSION", NULL},
|
||||||
|
+#endif
|
||||||
|
{GEExtensionInit, "Generic Event Extension", &noGEExtension},
|
||||||
|
{ShapeExtensionInit, "SHAPE", NULL},
|
||||||
|
#ifdef MITSHM
|
||||||
|
--- xserver/include/os.h~ 2016-10-03 09:07:29.000000000 +0200
|
||||||
|
+++ xserver/include/os.h 2016-10-03 14:13:00.013654506 +0200
|
||||||
|
@@ -621,7 +621,7 @@
|
||||||
|
extern _X_EXPORT void
|
||||||
|
LogClose(enum ExitCode error);
|
||||||
|
extern _X_EXPORT Bool
|
||||||
|
-LogSetParameter(LogParameter param, int value);
|
||||||
|
+LogSetParameter(enum _LogParameter param, int value);
|
||||||
|
extern _X_EXPORT void
|
||||||
|
LogVWrite(int verb, const char *f, va_list args)
|
||||||
|
_X_ATTRIBUTE_PRINTF(2, 0);
|
||||||
33
tigervnc-xstartup.patch
Normal file
33
tigervnc-xstartup.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
diff --git a/unix/vncserver b/unix/vncserver
|
||||||
|
index c4d0535..64c6744 100755
|
||||||
|
--- a/unix/vncserver
|
||||||
|
+++ b/unix/vncserver
|
||||||
|
@@ -61,27 +61,7 @@ $defaultXStartup
|
||||||
|
= ("#!/bin/sh\n\n".
|
||||||
|
"unset SESSION_MANAGER\n".
|
||||||
|
"unset DBUS_SESSION_BUS_ADDRESS\n".
|
||||||
|
- "OS=`uname -s`\n".
|
||||||
|
- "if [ \$OS = 'Linux' ]; then\n".
|
||||||
|
- " case \"\$WINDOWMANAGER\" in\n".
|
||||||
|
- " \*gnome\*)\n".
|
||||||
|
- " if [ -e /etc/SuSE-release ]; then\n".
|
||||||
|
- " PATH=\$PATH:/opt/gnome/bin\n".
|
||||||
|
- " export PATH\n".
|
||||||
|
- " fi\n".
|
||||||
|
- " ;;\n".
|
||||||
|
- " esac\n".
|
||||||
|
- "fi\n".
|
||||||
|
- "if [ -x /etc/X11/xinit/xinitrc ]; then\n".
|
||||||
|
- " exec /etc/X11/xinit/xinitrc\n".
|
||||||
|
- "fi\n".
|
||||||
|
- "if [ -f /etc/X11/xinit/xinitrc ]; then\n".
|
||||||
|
- " exec sh /etc/X11/xinit/xinitrc\n".
|
||||||
|
- "fi\n".
|
||||||
|
- "[ -r \$HOME/.Xresources ] && xrdb \$HOME/.Xresources\n".
|
||||||
|
- "xsetroot -solid grey\n".
|
||||||
|
- "xterm -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n".
|
||||||
|
- "twm &\n");
|
||||||
|
+ "exec /etc/X11/xinit/xinitrc\n");
|
||||||
|
|
||||||
|
$defaultConfig
|
||||||
|
= ("## Supported server options to pass to vncserver upon invocation can be listed\n".
|
||||||
271
tigervnc.spec
Normal file
271
tigervnc.spec
Normal file
@ -0,0 +1,271 @@
|
|||||||
|
%global _hardened_build 1
|
||||||
|
|
||||||
|
Name: tigervnc
|
||||||
|
Version: 1.9.0
|
||||||
|
Release: 3
|
||||||
|
Summary: A TigerVNC remote display system
|
||||||
|
|
||||||
|
License: GPLv2+
|
||||||
|
URL: http://www.tigervnc.com
|
||||||
|
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
Source1: vncserver.service
|
||||||
|
Source2: vncserver.sysconfig
|
||||||
|
Source3: 10-libvnc.conf
|
||||||
|
Source4: xvnc.service
|
||||||
|
Source5: xvnc.socket
|
||||||
|
|
||||||
|
Patch1: tigervnc-manpages.patch
|
||||||
|
Patch2: tigervnc-getmaster.patch
|
||||||
|
Patch3: tigervnc-shebang.patch
|
||||||
|
Patch4: tigervnc-xstartup.patch
|
||||||
|
Patch5: tigervnc-utilize-system-crypto-policies.patch
|
||||||
|
Patch6: tigervnc-ignore-buttons-in-mouse-leave-event.patch
|
||||||
|
Patch7: tigervnc-passwd-crash-with-malloc-checks.patch
|
||||||
|
|
||||||
|
Patch100: tigervnc-xserver120.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc-c++ systemd cmake automake autoconf gettext gettext-autopoint pixman-devel fltk-devel >= 1.3.3
|
||||||
|
BuildRequires: libX11-devel libtool libxkbfile-devel libpciaccess-devel libXinerama-devel libXfont2-devel
|
||||||
|
BuildRequires: libXext-devel xorg-x11-server-source libXi-devel libXdmcp-devel libxshmfence-devel
|
||||||
|
BuildRequires: xorg-x11-xtrans-devel xorg-x11-util-macros xorg-x11-server-devel libXtst-devel libdrm-devel libXt-devel
|
||||||
|
BuildRequires: openssl-devel mesa-libGL-devel freetype-devel desktop-file-utils java-devel jpackage-utils pam-devel gnutls-devel libjpeg-turbo-devel
|
||||||
|
|
||||||
|
Requires(post): coreutils
|
||||||
|
Requires(postun):coreutils
|
||||||
|
|
||||||
|
Requires: hicolor-icon-theme
|
||||||
|
Requires: tigervnc-license
|
||||||
|
Requires: tigervnc-icons
|
||||||
|
|
||||||
|
%description
|
||||||
|
Virtual Network Computing (VNC) is a remote display system which
|
||||||
|
allows you to view a computing 'desktop' environment not only on the
|
||||||
|
machine where it is running, but from anywhere on the Internet and
|
||||||
|
from a wide variety of machine architectures. This package contains a
|
||||||
|
client which will allow you to connect to other desktops running a VNC
|
||||||
|
server.
|
||||||
|
|
||||||
|
%package server
|
||||||
|
Summary: A TigerVNC server
|
||||||
|
Requires: perl-interpreter
|
||||||
|
Requires: tigervnc-server-minimal
|
||||||
|
Requires: xorg-x11-xauth
|
||||||
|
Requires: xorg-x11-xinit
|
||||||
|
Requires(post): systemd
|
||||||
|
Requires(preun): systemd
|
||||||
|
Requires(postun): systemd
|
||||||
|
Requires(post): systemd
|
||||||
|
|
||||||
|
%description server
|
||||||
|
The VNC system allows you to access the same desktop from a wide
|
||||||
|
variety of platforms. This package includes set of utilities
|
||||||
|
which make usage of TigerVNC server more user friendly. It also
|
||||||
|
contains x0vncserver program which can export your active
|
||||||
|
X session.
|
||||||
|
|
||||||
|
%package server-minimal
|
||||||
|
Summary: A minimal installation of TigerVNC server
|
||||||
|
Requires(post): systemd
|
||||||
|
Requires(preun): systemd
|
||||||
|
Requires(postun): systemd
|
||||||
|
Requires(post): systemd
|
||||||
|
|
||||||
|
Requires: mesa-dri-drivers, xkeyboard-config, xorg-x11-xkb-utils
|
||||||
|
Requires: tigervnc-license
|
||||||
|
|
||||||
|
%description server-minimal
|
||||||
|
The VNC system allows you to access the same desktop from a wide
|
||||||
|
variety of platforms. This package contains minimal installation
|
||||||
|
of TigerVNC server, allowing others to access the desktop on your
|
||||||
|
machine.
|
||||||
|
|
||||||
|
%package server-module
|
||||||
|
Summary: TigerVNC module to Xorg
|
||||||
|
Requires: xorg-x11-server-Xorg %(xserver-sdk-abi-requires ansic) %(xserver-sdk-abi-requires videodrv)
|
||||||
|
Requires: tigervnc-license
|
||||||
|
|
||||||
|
%description server-module
|
||||||
|
This package contains libvnc.so module to X server, allowing others
|
||||||
|
to access the desktop on your machine.
|
||||||
|
|
||||||
|
%package server-applet
|
||||||
|
Summary: Java TigerVNC viewer applet for TigerVNC server
|
||||||
|
Requires: tigervnc-server, java, jpackage-utils
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description server-applet
|
||||||
|
The Java TigerVNC viewer applet for web browsers. Install this package to allow
|
||||||
|
clients to use web browser when connect to the TigerVNC server.
|
||||||
|
|
||||||
|
%package license
|
||||||
|
Summary: License of TigerVNC suite
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description license
|
||||||
|
This package contains license of the TigerVNC suite
|
||||||
|
|
||||||
|
%package icons
|
||||||
|
Summary: Icons for TigerVNC viewer
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description icons
|
||||||
|
This package contains icons for TigerVNC viewer
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
cp -r /usr/share/xorg-x11-server-source/* unix/xserver
|
||||||
|
pushd unix/xserver
|
||||||
|
for all in `find . -type f -perm -001`; do
|
||||||
|
chmod -x "$all"
|
||||||
|
done
|
||||||
|
%patch100 -p1 -b .xserver120-rebased
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Synchronise manpages and --help output (bug #980870).
|
||||||
|
%patch1 -p1 -b .manpages
|
||||||
|
|
||||||
|
# libvnc.so: don't use unexported GetMaster function (bug #744881 again).
|
||||||
|
%patch2 -p1 -b .getmaster
|
||||||
|
|
||||||
|
# Don't use shebang in vncserver script.
|
||||||
|
%patch3 -p1 -b .shebang
|
||||||
|
|
||||||
|
# Clearer xstartup file (bug #923655).
|
||||||
|
%patch4 -p1 -b .xstartup
|
||||||
|
|
||||||
|
# Utilize system-wide crypto policies
|
||||||
|
%patch5 -p1 -b .utilize-system-crypto-policies
|
||||||
|
|
||||||
|
%patch6 -p1 -b .ignore-buttons-in-mouse-leave-event
|
||||||
|
|
||||||
|
%patch7 -p1 -b .tigervnc-passwd-crash-with-malloc-checks
|
||||||
|
|
||||||
|
%build
|
||||||
|
export CFLAGS="$RPM_OPT_FLAGS -fpic"
|
||||||
|
export CXXFLAGS="$CFLAGS"
|
||||||
|
|
||||||
|
%{cmake} .
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
pushd unix/xserver
|
||||||
|
autoreconf -fiv
|
||||||
|
%configure \
|
||||||
|
--disable-xorg --disable-xnest --disable-xvfb --disable-dmx --disable-xwin --disable-xephyr --disable-kdrive --disable-xwayland \
|
||||||
|
--with-pic --disable-static --with-default-font-path="catalogue:%{_sysconfdir}/X11/fontpath.d,built-ins" \
|
||||||
|
--with-fontdir=%{_datadir}/X11/fonts --with-xkb-output=%{_localstatedir}/lib/xkb --enable-install-libxf86config \
|
||||||
|
--enable-glx --disable-dri --enable-dri2 --disable-dri3 --disable-unit-tests --disable-config-hal --disable-config-udev \
|
||||||
|
--with-dri-driver-path=%{_libdir}/dri --without-dtrace --disable-devel-docs --disable-selective-werror
|
||||||
|
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build icons
|
||||||
|
pushd media
|
||||||
|
make
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build Java applet
|
||||||
|
pushd java
|
||||||
|
%{cmake} .
|
||||||
|
JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8" make
|
||||||
|
popd
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
rm -f %{buildroot}%{_docdir}/%{name}-%{version}/{README.rst,LICENCE.TXT}
|
||||||
|
|
||||||
|
pushd unix/xserver/hw/vnc
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Install systemd unit file
|
||||||
|
mkdir -p %{buildroot}%{_unitdir}
|
||||||
|
install -m644 %{SOURCE1} %{buildroot}%{_unitdir}/vncserver@.service
|
||||||
|
install -m644 %{SOURCE4} %{buildroot}%{_unitdir}/xvnc@.service
|
||||||
|
install -m644 %{SOURCE5} %{buildroot}%{_unitdir}/xvnc.socket
|
||||||
|
rm -rf %{buildroot}%{_initrddir}
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
|
||||||
|
install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/vncservers
|
||||||
|
|
||||||
|
# Install desktop stuff
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,24x24,48x48}/apps
|
||||||
|
|
||||||
|
pushd media/icons
|
||||||
|
for s in 16 24 48; do
|
||||||
|
install -m644 tigervnc_$s.png %{buildroot}%{_datadir}/icons/hicolor/${s}x$s/apps/tigervnc.png
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
|
||||||
|
# Install Java applet
|
||||||
|
pushd java
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/vnc/classes
|
||||||
|
install -m755 VncViewer.jar %{buildroot}%{_datadir}/vnc/classes
|
||||||
|
install -m644 com/tigervnc/vncviewer/index.vnc %{buildroot}%{_datadir}/vnc/classes
|
||||||
|
popd
|
||||||
|
|
||||||
|
%find_lang %{name} %{name}.lang
|
||||||
|
|
||||||
|
# remove unwanted files
|
||||||
|
rm -f %{buildroot}%{_libdir}/xorg/modules/extensions/libvnc.la
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
|
||||||
|
install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.conf
|
||||||
|
|
||||||
|
%post server
|
||||||
|
%systemd_post vncserver.service
|
||||||
|
%systemd_post xvnc.service
|
||||||
|
%systemd_post xvnc.socket
|
||||||
|
|
||||||
|
%preun server
|
||||||
|
%systemd_preun vncserver.service
|
||||||
|
%systemd_preun xvnc.service
|
||||||
|
%systemd_preun xvnc.socket
|
||||||
|
|
||||||
|
%postun server
|
||||||
|
%systemd_postun
|
||||||
|
|
||||||
|
%files -f %{name}.lang
|
||||||
|
%doc README.rst
|
||||||
|
%{_bindir}/vncviewer
|
||||||
|
%{_datadir}/applications/*
|
||||||
|
%{_mandir}/man1/vncviewer.1*
|
||||||
|
|
||||||
|
%files server
|
||||||
|
%config(noreplace) %{_sysconfdir}/sysconfig/vncservers
|
||||||
|
%{_unitdir}/vncserver@.service
|
||||||
|
%{_unitdir}/xvnc@.service
|
||||||
|
%{_unitdir}/xvnc.socket
|
||||||
|
%{_bindir}/x0vncserver
|
||||||
|
%{_bindir}/vncserver
|
||||||
|
%{_mandir}/man1/vncserver.1*
|
||||||
|
%{_mandir}/man1/x0vncserver.1*
|
||||||
|
|
||||||
|
%files server-minimal
|
||||||
|
%{_bindir}/vncconfig
|
||||||
|
%{_bindir}/vncpasswd
|
||||||
|
%{_bindir}/Xvnc
|
||||||
|
%{_mandir}/man1/Xvnc.1*
|
||||||
|
%{_mandir}/man1/vncpasswd.1*
|
||||||
|
%{_mandir}/man1/vncconfig.1*
|
||||||
|
|
||||||
|
%files server-module
|
||||||
|
%{_libdir}/xorg/modules/extensions/libvnc.so
|
||||||
|
%config %{_sysconfdir}/X11/xorg.conf.d/10-libvnc.conf
|
||||||
|
|
||||||
|
%files server-applet
|
||||||
|
%doc java/com/tigervnc/vncviewer/README
|
||||||
|
%{_datadir}/vnc/classes/*
|
||||||
|
|
||||||
|
%files license
|
||||||
|
%license LICENCE.TXT
|
||||||
|
|
||||||
|
%files icons
|
||||||
|
%{_datadir}/icons/hicolor/*/apps/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wed Jul 18 2018 openEuler Buildteam <buildteam@openeuler.org> - 1.9.0-4
|
||||||
|
- Package init
|
||||||
52
vncserver.service
Normal file
52
vncserver.service
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# The vncserver service unit file
|
||||||
|
#
|
||||||
|
# Quick HowTo:
|
||||||
|
# 1. Copy this file to /etc/systemd/system/vncserver@.service
|
||||||
|
# 2. Replace <USER> with the actual user name and edit vncserver
|
||||||
|
# parameters appropriately
|
||||||
|
# 3. Run `systemctl daemon-reload`
|
||||||
|
# 4. Run `systemctl enable vncserver@:<display>.service`
|
||||||
|
#
|
||||||
|
# DO NOT RUN THIS SERVICE if your local area network is
|
||||||
|
# untrusted! For a secure way of using VNC, you should
|
||||||
|
# limit connections to the local host and then tunnel from
|
||||||
|
# the machine you want to view VNC on (host A) to the machine
|
||||||
|
# whose VNC output you want to view (host B)
|
||||||
|
#
|
||||||
|
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
|
||||||
|
#
|
||||||
|
# this will open a connection on port 590N of your hostA to hostB's port 590M
|
||||||
|
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
|
||||||
|
# See the ssh man page for details on port forwarding)
|
||||||
|
#
|
||||||
|
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
|
||||||
|
# the help of ssh, you end up seeing what hostB makes available on port 590M
|
||||||
|
#
|
||||||
|
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
|
||||||
|
#
|
||||||
|
# Use "-localhost" to prevent remote VNC clients connecting except when
|
||||||
|
# doing so through a secure tunnel. See the "-via" option in the
|
||||||
|
# `man vncviewer' manual page.
|
||||||
|
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Remote desktop service (VNC)
|
||||||
|
After=syslog.target network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
WorkingDirectory=/home/<USER>
|
||||||
|
User=<USER>
|
||||||
|
Group=<USER>
|
||||||
|
|
||||||
|
PIDFile=/home/<USER>/.vnc/%H%i.pid
|
||||||
|
|
||||||
|
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
|
||||||
|
ExecStart=/usr/bin/vncserver -autokill %i
|
||||||
|
ExecStop=/usr/bin/vncserver -kill %i
|
||||||
|
|
||||||
|
Restart=on-success
|
||||||
|
RestartSec=15
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
1
vncserver.sysconfig
Normal file
1
vncserver.sysconfig
Normal file
@ -0,0 +1 @@
|
|||||||
|
# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
|
||||||
38
xvnc.service
Normal file
38
xvnc.service
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# The vncserver service unit file
|
||||||
|
#
|
||||||
|
# Quick HowTo:
|
||||||
|
# 1. Copy this file to /etc/systemd/system/xvnc@.service
|
||||||
|
# 2. Copy xvnc.socket to /etc/systemd/system/xvnc.socket
|
||||||
|
# 3. Run `systemctl daemon-reload`
|
||||||
|
# 4. Run `systemctl enable xvnc.socket`
|
||||||
|
#
|
||||||
|
# DO NOT RUN THIS SERVICE if your local area network is
|
||||||
|
# untrusted! For a secure way of using VNC, you should
|
||||||
|
# limit connections to the local host and then tunnel from
|
||||||
|
# the machine you want to view VNC on (host A) to the machine
|
||||||
|
# whose VNC output you want to view (host B)
|
||||||
|
#
|
||||||
|
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
|
||||||
|
#
|
||||||
|
# this will open a connection on port 590N of your hostA to hostB's port 590M
|
||||||
|
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
|
||||||
|
# See the ssh man page for details on port forwarding)
|
||||||
|
#
|
||||||
|
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
|
||||||
|
# the help of ssh, you end up seeing what hostB makes available on port 590M
|
||||||
|
#
|
||||||
|
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
|
||||||
|
#
|
||||||
|
# Use "-localhost" to prevent remote VNC clients connecting except when
|
||||||
|
# doing so through a secure tunnel. See the "-via" option in the
|
||||||
|
# `man vncviewer' manual page.
|
||||||
|
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=XVNC Per-Connection Daemon
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=-/usr/bin/Xvnc -inetd -query localhost -geometry 1024x768 -depth 24 -once -SecurityTypes=None
|
||||||
|
User=nobody
|
||||||
|
StandardInput=socket
|
||||||
|
StandardError=syslog
|
||||||
9
xvnc.socket
Normal file
9
xvnc.socket
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=XVNC Server
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
ListenStream=5900
|
||||||
|
Accept=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
Loading…
x
Reference in New Issue
Block a user