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