diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..923db3a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/tigervnc-1.8.0.tar.gz
diff --git a/.tigervnc.metadata b/.tigervnc.metadata
new file mode 100644
index 0000000..fc4bd8c
--- /dev/null
+++ b/.tigervnc.metadata
@@ -0,0 +1 @@
+dbb280afb066073d7b44e99bd75d7f9bdb5a81e0 SOURCES/tigervnc-1.8.0.tar.gz
diff --git a/SOURCES/0001-rpath-hack.patch b/SOURCES/0001-rpath-hack.patch
new file mode 100644
index 0000000..689de34
--- /dev/null
+++ b/SOURCES/0001-rpath-hack.patch
@@ -0,0 +1,28 @@
+From 2489f2f38eb32d9dd03718a36cbdbdf13d2f8b9b Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Thu, 12 Nov 2015 11:10:11 -0500
+Subject: [PATCH] rpath hack
+
+Normally, rpath is undesirable.  But for the X server we _know_ we need
+Mesa's libGL, which will always be in %{_libdir}, and not any third-party
+libGL that may be configured using ld.so.conf.
+
+---
+ configure.ac       | 1 +
+ 1 files changed, 1 insertions(+), 0 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index fa15a2d..a5af1e0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1357,6 +1357,7 @@ else
+ fi
+ AM_CONDITIONAL(GLX, test "x$GLX" = xyes)
+
++GLX_SYS_LIBS="$GLX_SYS_LIBS -Wl,-rpath=\$(libdir)"
+ AC_SUBST([GLX_DEFINES])
+ AC_SUBST([GLX_SYS_LIBS])
+
+--
+2.5.0
+
diff --git a/SOURCES/10-libvnc.conf b/SOURCES/10-libvnc.conf
new file mode 100644
index 0000000..a053a7d
--- /dev/null
+++ b/SOURCES/10-libvnc.conf
@@ -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
diff --git a/SOURCES/tigervnc-1.3.1-CVE-2014-8240.patch b/SOURCES/tigervnc-1.3.1-CVE-2014-8240.patch
new file mode 100644
index 0000000..09217f1
--- /dev/null
+++ b/SOURCES/tigervnc-1.3.1-CVE-2014-8240.patch
@@ -0,0 +1,74 @@
+diff --git a/unix/x0vncserver/Image.cxx b/unix/x0vncserver/Image.cxx
+index f998c6a..fb9dbd4 100644
+--- a/unix/x0vncserver/Image.cxx
++++ b/unix/x0vncserver/Image.cxx
+@@ -80,6 +80,14 @@ void Image::Init(int width, int height)
+   xim = XCreateImage(dpy, vis, DefaultDepth(dpy, DefaultScreen(dpy)),
+                      ZPixmap, 0, 0, width, height, BitmapPad(dpy), 0);
+
++  if (xim->bytes_per_line <= 0 ||
++      xim->height <= 0 ||
++      xim->height >= INT_MAX / xim->bytes_per_line) {
++    vlog.error("Invalid display size");
++    XDestroyImage(xim);
++    exit(1);
++  }
++
+   xim->data = (char *)malloc(xim->bytes_per_line * xim->height);
+   if (xim->data == NULL) {
+     vlog.error("malloc() failed");
+@@ -256,6 +264,17 @@ void ShmImage::Init(int width, int height, const XVisualInfo *vinfo)
+     return;
+   }
+
++  if (xim->bytes_per_line <= 0 ||
++      xim->height <= 0 ||
++      xim->height >= INT_MAX / xim->bytes_per_line) {
++    vlog.error("Invalid display size");
++    XDestroyImage(xim);
++    xim = NULL;
++    delete shminfo;
++    shminfo = NULL;
++    return;
++  }
++
+   shminfo->shmid = shmget(IPC_PRIVATE,
+                           xim->bytes_per_line * xim->height,
+                           IPC_CREAT|0777);
+diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx
+index a2b506d..9266d9f 100644
+--- a/vncviewer/PlatformPixelBuffer.cxx
++++ b/vncviewer/PlatformPixelBuffer.cxx
+@@ -49,6 +49,15 @@ PlatformPixelBuffer::PlatformPixelBuffer(int width, int height) :
+     if (!xim)
+       throw rdr::Exception("XCreateImage");
+
++    if (xim->bytes_per_line <= 0 ||
++       xim->height <= 0 ||
++       xim->height >= INT_MAX / xim->bytes_per_line) {
++      if (xim)
++       XDestroyImage(xim);
++      xim = NULL;
++      throw rdr::Exception("Invalid display size");
++    }
++
+     xim->data = (char*)malloc(xim->bytes_per_line * xim->height);
+     if (!xim->data)
+       throw rdr::Exception("malloc");
+@@ -152,6 +161,16 @@ bool PlatformPixelBuffer::setupShm()
+   if (!xim)
+     goto free_shminfo;
+
++  if (xim->bytes_per_line <= 0 ||
++      xim->height <= 0 ||
++      xim->height >= INT_MAX / xim->bytes_per_line) {
++    XDestroyImage(xim);
++    xim = NULL;
++    delete shminfo;
++    shminfo = NULL;
++    throw rdr::Exception("Invalid display size");
++  }
++
+   shminfo->shmid = shmget(IPC_PRIVATE,
+                           xim->bytes_per_line * xim->height,
+                           IPC_CREAT|0600);
diff --git a/SOURCES/tigervnc-1.3.1-do-not-die-when-port-is-already-taken.patch b/SOURCES/tigervnc-1.3.1-do-not-die-when-port-is-already-taken.patch
new file mode 100644
index 0000000..3623b14
--- /dev/null
+++ b/SOURCES/tigervnc-1.3.1-do-not-die-when-port-is-already-taken.patch
@@ -0,0 +1,14 @@
+diff --git a/unix/vncserver b/unix/vncserver
+index a6c890f..687ef72 100755
+--- a/unix/vncserver
++++ b/unix/vncserver
+@@ -208,7 +208,8 @@ if ((@ARGV > 0) && ($ARGV[0] =~ /^:(\d+)$/)) {
+     $displayNumber = $1;
+     shift(@ARGV);
+     if (!&CheckDisplayNumber($displayNumber)) {
+-	die "A VNC server is already running as :$displayNumber\n";
++        warn "A VNC server is already running as :$displayNumber\n";
++        $displayNumber = &GetDisplayNumber();
+     }
+ } elsif ((@ARGV > 0) && ($ARGV[0] !~ /^-/) && ($ARGV[0] !~ /^\+/)) {
+     &Usage();
diff --git a/SOURCES/tigervnc-broken-scrolling.patch b/SOURCES/tigervnc-broken-scrolling.patch
new file mode 100644
index 0000000..97bb92c
--- /dev/null
+++ b/SOURCES/tigervnc-broken-scrolling.patch
@@ -0,0 +1,31 @@
+From e8d25d83463805c0f6ef623dba2ac9a276df3587 Mon Sep 17 00:00:00 2001
+From: Luke Shumaker <lukeshu@lukeshu.com>
+Date: Tue, 23 May 2017 02:16:27 -0400
+Subject: vncviewer: Fix fullscreen scrolling
+
+
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index 47fe8f89..946b162c 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -1120,11 +1120,6 @@ void DesktopWindow::scrollTo(int x, int y)
+   hscroll->value(x);
+   vscroll->value(y);
+ 
+-  if (!hscroll->visible())
+-    x = -viewport->x();
+-  if (!vscroll->visible())
+-    y = -viewport->y();
+-
+   // Scrollbar position results in inverse movement of
+   // the viewport widget
+   x = -x;
+@@ -1189,7 +1184,7 @@ void DesktopWindow::handleEdgeScroll(void *data)
+   if ((dx == 0) && (dy == 0))
+     return;
+ 
+-  self->scrollTo(self->hscroll->value() + dx, self->vscroll->value() + dy);
++  self->scrollTo(self->hscroll->value() - dx, self->vscroll->value() - dy);
+ 
+   Fl::repeat_timeout(0.1, handleEdgeScroll, data);
+ }
diff --git a/SOURCES/tigervnc-cursor.patch b/SOURCES/tigervnc-cursor.patch
new file mode 100644
index 0000000..1f95df8
--- /dev/null
+++ b/SOURCES/tigervnc-cursor.patch
@@ -0,0 +1,12 @@
+diff -up tigervnc-1.3.0/vncviewer/Viewport.cxx.cursor tigervnc-1.3.0/vncviewer/Viewport.cxx
+--- tigervnc-1.3.0/vncviewer/Viewport.cxx.cursor	2013-12-17 13:28:23.170400013 +0000
++++ tigervnc-1.3.0/vncviewer/Viewport.cxx	2013-12-17 13:29:46.095784064 +0000
+@@ -248,7 +248,7 @@ void Viewport::setCursor(int width, int height, const Point& hotspot,
+     }
+   }
+
+-  if (Fl::belowmouse() == this)
++  if (Fl::belowmouse() == this && cursor)
+     window()->cursor(cursor, cursorHotspot.x, cursorHotspot.y);
+ }
+
diff --git a/SOURCES/tigervnc-fix-rendering-on-big-endian-systems.patch b/SOURCES/tigervnc-fix-rendering-on-big-endian-systems.patch
new file mode 100644
index 0000000..87a0c79
--- /dev/null
+++ b/SOURCES/tigervnc-fix-rendering-on-big-endian-systems.patch
@@ -0,0 +1,51 @@
+diff --git a/vncviewer/Surface_X11.cxx b/vncviewer/Surface_X11.cxx
+index 3523da3..6562634 100644
+--- a/vncviewer/Surface_X11.cxx
++++ b/vncviewer/Surface_X11.cxx
+@@ -109,6 +109,7 @@ void Surface::blend(Surface* dst, int src_x, int src_y, int x, int y, int w, int
+
+ void Surface::alloc()
+ {
++  XRenderPictFormat templ;
+   XRenderPictFormat* format;
+
+   // Might not be open at this point
+@@ -117,7 +118,37 @@ void Surface::alloc()
+   pixmap = XCreatePixmap(fl_display, XDefaultRootWindow(fl_display),
+                          width(), height(), 32);
+
+-  format = XRenderFindStandardFormat(fl_display, PictStandardARGB32);
++  // Our code assumes a BGRA byte order, regardless of what the endian
++  // of the machine is or the native byte order of XImage, so make sure
++  // we find such a format
++  templ.type = PictTypeDirect;
++  templ.depth = 32;
++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
++  templ.direct.alpha = 0;
++  templ.direct.red   = 8;
++  templ.direct.green = 16;
++  templ.direct.blue  = 24;
++#else
++  templ.direct.alpha = 24;
++  templ.direct.red   = 16;
++  templ.direct.green = 8;
++  templ.direct.blue  = 0;
++#endif
++  templ.direct.alphaMask = 0xff;
++  templ.direct.redMask = 0xff;
++  templ.direct.greenMask = 0xff;
++  templ.direct.blueMask = 0xff;
++
++  format = XRenderFindFormat(fl_display, PictFormatType | PictFormatDepth |
++                             PictFormatRed | PictFormatRedMask |
++                             PictFormatGreen | PictFormatGreenMask |
++                             PictFormatBlue | PictFormatBlueMask |
++                             PictFormatAlpha | PictFormatAlphaMask,
++                             &templ, 0);
++
++  if (!format)
++    throw rdr::Exception("XRenderFindFormat");
++
+   picture = XRenderCreatePicture(fl_display, pixmap, format, 0, NULL);
+
+   visFormat = XRenderFindVisualFormat(fl_display, fl_visual->visual);
diff --git a/SOURCES/tigervnc-ignore-fake-focus-events-from-xgrabkeyboard.patch b/SOURCES/tigervnc-ignore-fake-focus-events-from-xgrabkeyboard.patch
new file mode 100644
index 0000000..8ee3181
--- /dev/null
+++ b/SOURCES/tigervnc-ignore-fake-focus-events-from-xgrabkeyboard.patch
@@ -0,0 +1,138 @@
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index 47fe8f8..8f387dc 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -1,16 +1,16 @@
+ /* Copyright (C) 2002-2005 RealVNC Ltd.  All Rights Reserved.
+  * Copyright 2011 Pierre Ossman <ossman@cendio.se> for Cendio AB
+- * 
++ *
+  * This is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation; either version 2 of the License, or
+  * (at your option) any later version.
+- * 
++ *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+- * 
++ *
+  * You should have received a copy of the GNU General Public License
+  * along with this software; if not, write to the Free Software
+  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+@@ -662,20 +662,16 @@ int DesktopWindow::fltkHandle(int event, Fl_Window *win)
+ 
+   if (dw && fullscreenSystemKeys) {
+     switch (event) {
++    // Focus might not stay with us just because we have grabbed the
++    // keyboard. E.g. we might have sub windows, or we're not using
++    // all monitors and the user clicked on another application.
++    // Make sure we update our grabs with the focus changes.
+     case FL_FOCUS:
+-      // FIXME: We reassert the keyboard grabbing on focus as FLTK there are
+-      //        some issues we need to work around:
+-      //        a) Fl::grab(0) on X11 will release the keyboard grab for us.
+-      //        b) Gaining focus on the system level causes FLTK to switch
+-      //           window level on OS X.
+       if (dw->fullscreen_active())
+         dw->grabKeyboard();
+       break;
+ 
+     case FL_UNFOCUS:
+-      // FIXME: We need to relinquish control when the entire window loses
+-      //        focus as it is very tied to this specific window on some
+-      //        platforms and we want to be able to open subwindows.
+       dw->ungrabKeyboard();
+       break;
+     }
+@@ -729,6 +725,23 @@ void DesktopWindow::fullscreen_on()
+   fullscreen();
+ }
+ 
++#if !defined(WIN32) && !defined(__APPLE__)
++Bool eventIsFocusWithSerial(Display *display, XEvent *event, XPointer arg)
++{
++  unsigned long serial;
++
++  serial = *(unsigned long*)arg;
++
++  if (event->xany.serial != serial)
++    return False;
++
++  if ((event->type != FocusIn) && (event->type != FocusOut))
++   return False;
++
++  return True;
++}
++#endif
++
+ void DesktopWindow::grabKeyboard()
+ {
+   // Grabbing the keyboard is fairly safe as FLTK reroutes events to the
+@@ -739,19 +752,24 @@ void DesktopWindow::grabKeyboard()
+ 
+ #if defined(WIN32)
+   int ret;
+-  
++
+   ret = win32_enable_lowlevel_keyboard(fl_xid(this));
+   if (ret != 0)
+     vlog.error(_("Failure grabbing keyboard"));
+ #elif defined(__APPLE__)
+   int ret;
+-  
++
+   ret = cocoa_capture_display(this, fullScreenAllMonitors);
+   if (ret != 0)
+     vlog.error(_("Failure grabbing keyboard"));
+ #else
+   int ret;
+ 
++  XEvent xev;
++  unsigned long serial;
++
++  serial = XNextRequest(fl_display);
++
+   ret = XGrabKeyboard(fl_display, fl_xid(this), True,
+                       GrabModeAsync, GrabModeAsync, CurrentTime);
+   if (ret) {
+@@ -774,6 +792,16 @@ void DesktopWindow::grabKeyboard()
+                      None, None, CurrentTime);
+   if (ret)
+     vlog.error(_("Failure grabbing mouse"));
++
++  // Xorg 1.20+ generates FocusIn/FocusOut even when there is no actual
++  // change of focus. This causes us to get stuck in an endless loop
++  // grabbing and ungrabbing the keyboard. Avoid this by filtering out
++  // any focus events generated by XGrabKeyboard().
++  XSync(fl_display, False);
++  while (XCheckIfEvent(fl_display, &xev, &eventIsFocusWithSerial,
++                       (XPointer)&serial) == True) {
++    vlog.debug("Ignored synthetic focus event cause by grab change");
++  }
+ #endif
+ }
+ 
+@@ -791,8 +819,20 @@ void DesktopWindow::ungrabKeyboard()
+   if (Fl::grab())
+     return;
+ 
++  XEvent xev;
++  unsigned long serial;
++
++  serial = XNextRequest(fl_display);
++
+   XUngrabPointer(fl_display, fl_event_time);
+   XUngrabKeyboard(fl_display, fl_event_time);
++
++  // See grabKeyboard()
++  XSync(fl_display, False);
++  while (XCheckIfEvent(fl_display, &xev, &eventIsFocusWithSerial,
++                       (XPointer)&serial) == True) {
++    vlog.debug("Ignored synthetic focus event cause by grab change");
++  }
+ #endif
+ }
+ 
diff --git a/SOURCES/tigervnc-let-user-know-about-not-using-view-only-password.patch b/SOURCES/tigervnc-let-user-know-about-not-using-view-only-password.patch
new file mode 100644
index 0000000..e28ffa9
--- /dev/null
+++ b/SOURCES/tigervnc-let-user-know-about-not-using-view-only-password.patch
@@ -0,0 +1,13 @@
+diff --git a/unix/vncpasswd/vncpasswd.cxx b/unix/vncpasswd/vncpasswd.cxx
+index 16c925ee..6398121e 100644
+--- a/unix/vncpasswd/vncpasswd.cxx
++++ b/unix/vncpasswd/vncpasswd.cxx
+@@ -150,6 +150,8 @@ int main(int argc, char** argv)
+     char yesno[3];
+     if (fgets(yesno, 3, stdin) != NULL && (yesno[0] == 'y' || yesno[0] == 'Y')) {
+       obfuscatedReadOnly = readpassword();
++    } else {
++      fprintf(stderr, "A view-only password is not used\n");
+     }
+
+     FILE* fp = fopen(fname,"w");
diff --git a/SOURCES/tigervnc-manpages.patch b/SOURCES/tigervnc-manpages.patch
new file mode 100644
index 0000000..5919226
--- /dev/null
+++ b/SOURCES/tigervnc-manpages.patch
@@ -0,0 +1,28 @@
+diff --git a/unix/vncserver b/unix/vncserver
+index c4d0535..08a9308 100755
+--- a/unix/vncserver
++++ b/unix/vncserver
+@@ -637,6 +637,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 a2bc029..6923d0e 100644
+--- a/vncviewer/vncviewer.cxx
++++ b/vncviewer/vncviewer.cxx
+@@ -338,6 +338,11 @@ static void usage(const char *programName)
+           "       %s [parameters] -listen [port] [parameters]\n",
+           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 "
+           "-<param> <value>\n"
diff --git a/SOURCES/tigervnc-reduce-size-of-context-menu-hint.patch b/SOURCES/tigervnc-reduce-size-of-context-menu-hint.patch
new file mode 100644
index 0000000..6923213
--- /dev/null
+++ b/SOURCES/tigervnc-reduce-size-of-context-menu-hint.patch
@@ -0,0 +1,50 @@
+From 9fbf94db8b85eeee1d233089243a0da71f5b544f Mon Sep 17 00:00:00 2001
+From: Pierre Ossman <ossman@cendio.se>
+Date: Thu, 19 Jul 2018 13:10:08 +0200
+Subject: Reduce size of context menu hint
+
+It can get a bit intrusive for experienced users, so try to reduce
+the impact of it.
+
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index e8750b4e..d5edfb87 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -498,6 +498,9 @@ void DesktopWindow::menuOverlay(void* data)
+ 
+ void DesktopWindow::setOverlay(const char* text, ...)
+ {
++  const Fl_Fontsize fontsize = 16;
++  const int margin = 10;
++
+   va_list ap;
+   char textbuf[1024];
+ 
+@@ -528,22 +531,22 @@ void DesktopWindow::setOverlay(const char* text, ...)
+     fl_gc = XDefaultGC(fl_display, 0);
+ #endif
+ 
+-  fl_font(FL_HELVETICA, FL_NORMAL_SIZE * 2);
++  fl_font(FL_HELVETICA, fontsize);
+   w = 0;
+   fl_measure(textbuf, w, h);
+ 
+   // Margins
+-  w += 80;
+-  h += 40;
++  w += margin * 2 * 2;
++  h += margin * 2;
+ 
+   surface = new Fl_Image_Surface(w, h);
+   surface->set_current();
+ 
+   fl_rectf(0, 0, w, h, 0, 0, 0);
+ 
+-  fl_font(FL_HELVETICA, FL_NORMAL_SIZE * 2);
++  fl_font(FL_HELVETICA, fontsize);
+   fl_color(FL_WHITE);
+-  fl_draw(textbuf, 40, 20 + fl_height() - fl_descent());
++  fl_draw(textbuf, 0, 0, w, h, FL_ALIGN_CENTER);
+ 
+   imageText = surface->image();
+   delete surface;
diff --git a/SOURCES/tigervnc-release-pointer-grab-when-cursor-leaves-window.patch b/SOURCES/tigervnc-release-pointer-grab-when-cursor-leaves-window.patch
new file mode 100644
index 0000000..3002876
--- /dev/null
+++ b/SOURCES/tigervnc-release-pointer-grab-when-cursor-leaves-window.patch
@@ -0,0 +1,182 @@
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index f5ae425..cec8a68 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -65,6 +65,7 @@ DesktopWindow::DesktopWindow(int w, int h, const char *name,
+   : Fl_Window(w, h), cc(cc_), offscreen(NULL), overlay(NULL),
+     firstUpdate(true),
+     delayedFullscreen(false), delayedDesktopSize(false),
++    keyboardGrabbed(false), mouseGrabbed(false),
+     statsLastFrame(0), statsLastPixels(0), statsLastPosition(0),
+     statsGraph(NULL)
+ {
+@@ -630,9 +631,18 @@ int DesktopWindow::handle(int event)
+     break;
+ 
+   case FL_ENTER:
++      if (keyboardGrabbed)
++          grabPointer();
+   case FL_LEAVE:
+   case FL_DRAG:
+   case FL_MOVE:
++    // We don't get FL_LEAVE with a grabbed pointer, so check manually
++    if (mouseGrabbed) {
++      if ((Fl::event_x() < 0) || (Fl::event_x() >= w()) ||
++          (Fl::event_y() < 0) || (Fl::event_y() >= h())) {
++        ungrabPointer();
++      }
++    }
+     if (fullscreen_active()) {
+       if (((viewport->x() < 0) && (Fl::event_x() < EDGE_SCROLL_SIZE)) ||
+           ((viewport->x() + viewport->w() > w()) && (Fl::event_x() > w() - EDGE_SCROLL_SIZE)) ||
+@@ -677,6 +687,16 @@ int DesktopWindow::fltkHandle(int event, Fl_Window *win)
+     case FL_UNFOCUS:
+       dw->ungrabKeyboard();
+       break;
++
++    case FL_RELEASE:
++      // We usually fail to grab the mouse if a mouse button was
++      // pressed when we gained focus (e.g. clicking on our window),
++      // so we may need to try again when the button is released.
++      // (We do it here rather than handle() because a window does not
++      // see FL_RELEASE events if a child widget grabs it first)
++      if (dw->keyboardGrabbed && !dw->mouseGrabbed)
++        dw->grabPointer();
++      break;
+     }
+   }
+ 
+@@ -757,14 +777,18 @@ void DesktopWindow::grabKeyboard()
+   int ret;
+ 
+   ret = win32_enable_lowlevel_keyboard(fl_xid(this));
+-  if (ret != 0)
++  if (ret != 0) {
+     vlog.error(_("Failure grabbing keyboard"));
++    return;
++  }
+ #elif defined(__APPLE__)
+   int ret;
+ 
+   ret = cocoa_capture_display(this, fullScreenAllMonitors);
+-  if (ret != 0)
++  if (ret != 0) {
+     vlog.error(_("Failure grabbing keyboard"));
++    return;
++  }
+ #else
+   int ret;
+ 
+@@ -784,18 +808,9 @@ void DesktopWindow::grabKeyboard()
+     } else {
+       vlog.error(_("Failure grabbing keyboard"));
+     }
++    return;
+   }
+ 
+-  // We also need to grab the pointer as some WMs like to grab buttons
+-  // combined with modifies (e.g. Alt+Button0 in metacity).
+-  ret = XGrabPointer(fl_display, fl_xid(this), True,
+-                     ButtonPressMask|ButtonReleaseMask|
+-                     ButtonMotionMask|PointerMotionMask,
+-                     GrabModeAsync, GrabModeAsync,
+-                     None, None, CurrentTime);
+-  if (ret)
+-    vlog.error(_("Failure grabbing mouse"));
+-
+   // Xorg 1.20+ generates FocusIn/FocusOut even when there is no actual
+   // change of focus. This causes us to get stuck in an endless loop
+   // grabbing and ungrabbing the keyboard. Avoid this by filtering out
+@@ -806,6 +821,11 @@ void DesktopWindow::grabKeyboard()
+     vlog.debug("Ignored synthetic focus event cause by grab change");
+   }
+ #endif
++
++  keyboardGrabbed = true;
++
++  if (contains(Fl::belowmouse()))
++    grabPointer();
+ }
+ 
+ 
+@@ -813,6 +833,10 @@ void DesktopWindow::ungrabKeyboard()
+ {
+   Fl::remove_timeout(handleGrab, this);
+ 
++  keyboardGrabbed = false;
++
++  ungrabPointer();
++
+ #if defined(WIN32)
+   win32_disable_lowlevel_keyboard(fl_xid(this));
+ #elif defined(__APPLE__)
+@@ -827,7 +851,6 @@ void DesktopWindow::ungrabKeyboard()
+ 
+   serial = XNextRequest(fl_display);
+ 
+-  XUngrabPointer(fl_display, CurrentTime);
+   XUngrabKeyboard(fl_display, CurrentTime);
+ 
+   // See grabKeyboard()
+@@ -839,6 +862,38 @@ void DesktopWindow::ungrabKeyboard()
+ #endif
+ }
+ 
++void DesktopWindow::grabPointer()
++{
++#if !defined(WIN32) && !defined(__APPLE__)
++  int ret;
++
++  // We also need to grab the pointer as some WMs like to grab buttons
++  // combined with modifies (e.g. Alt+Button0 in metacity).
++  ret = XGrabPointer(fl_display, fl_xid(this), True,
++                     ButtonPressMask|ButtonReleaseMask|
++                     ButtonMotionMask|PointerMotionMask,
++                     GrabModeAsync, GrabModeAsync,
++                     None, None, CurrentTime);
++  if (ret) {
++    // Having a button pressed prevents us from grabbing, we make
++    // a new attempt in fltkHandle()
++    if (ret == AlreadyGrabbed)
++      return;
++    vlog.error(_("Failure grabbing mouse"));
++    return;
++  }
++#endif
++
++  mouseGrabbed = true;
++}
++
++void DesktopWindow::ungrabPointer()
++{
++  mouseGrabbed = false;
++#if !defined(WIN32) && !defined(__APPLE__)
++  XUngrabPointer(fl_display, CurrentTime);
++#endif
++}
+ 
+ void DesktopWindow::handleGrab(void *data)
+ {
+diff --git a/vncviewer/DesktopWindow.h b/vncviewer/DesktopWindow.h
+index 4224699..2135be8 100644
+--- a/vncviewer/DesktopWindow.h
++++ b/vncviewer/DesktopWindow.h
+@@ -84,6 +84,8 @@ private:
+ 
+   void grabKeyboard();
+   void ungrabKeyboard();
++  void grabPointer();
++  void ungrabPointer();
+ 
+   static void handleGrab(void *data);
+ 
+@@ -120,6 +122,9 @@ private:
+   bool delayedFullscreen;
+   bool delayedDesktopSize;
+ 
++  bool keyboardGrabbed;
++  bool mouseGrabbed;
++
+   struct statsEntry {
+     unsigned fps;
+     unsigned pps;
diff --git a/SOURCES/tigervnc-shebang.patch b/SOURCES/tigervnc-shebang.patch
new file mode 100644
index 0000000..f76af87
--- /dev/null
+++ b/SOURCES/tigervnc-shebang.patch
@@ -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.
diff --git a/SOURCES/tigervnc-support-xorg120.patch b/SOURCES/tigervnc-support-xorg120.patch
new file mode 100644
index 0000000..d60e602
--- /dev/null
+++ b/SOURCES/tigervnc-support-xorg120.patch
@@ -0,0 +1,76 @@
+diff -up tigervnc-1.8.0/unix/xserver/hw/vnc/xorg-version.h.jx tigervnc-1.8.0/unix/xserver/hw/vnc/xorg-version.h
+--- tigervnc-1.8.0/unix/xserver/hw/vnc/xorg-version.h.jx	2017-05-16 09:53:28.000000000 -0400
++++ tigervnc-1.8.0/unix/xserver/hw/vnc/xorg-version.h	2018-06-06 15:42:07.388157181 -0400
+@@ -52,8 +52,10 @@
+ #define XORG 118
+ #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (19 * 100000) + (99 * 1000))
+ #define XORG 119
++#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (20 * 100000) + (99 * 1000))
++#define XORG 120
+ #else
+-#error "X.Org newer than 1.19 is not supported"
++#error "X.Org newer than 1.20 is not supported"
+ #endif
+
+ #endif
+diff -up tigervnc-1.8.0/unix/xserver/hw/vnc/xvnc.c.jx tigervnc-1.8.0/unix/xserver/hw/vnc/xvnc.c
+--- tigervnc-1.8.0/unix/xserver/hw/vnc/xvnc.c.jx	2017-05-16 09:53:28.000000000 -0400
++++ tigervnc-1.8.0/unix/xserver/hw/vnc/xvnc.c	2018-06-06 15:42:58.384936550 -0400
+@@ -46,6 +46,7 @@ from the X Consortium.
+ #include <X11/Xproto.h>
+ #include <X11/Xos.h>
+ #include "scrnintstr.h"
++#include "glx_extinit.h"
+ #include "servermd.h"
+ #include "fb.h"
+ #include "mi.h"
+@@ -202,6 +202,7 @@ vfbBitsPerPixel(int depth)
+
+ static void vfbFreeFramebufferMemory(vfbFramebufferInfoPtr pfb);
+
++#if XORG < 120
+ #ifdef DPMSExtension
+     /* Why support DPMS? Because stupid modern desktop environments
+        such as Unity 2D on Ubuntu 11.10 crashes if DPMS is not
+@@ -219,6 +220,7 @@ Bool DPMSSupported(void)
+     return FALSE;
+ }
+ #endif
++#endif
+
+ #if XORG < 111
+ void ddxGiveUp()
+@@ -1491,6 +1493,12 @@ vfbCloseScreen(ScreenPtr pScreen)
+ #endif
+ }
+
++#if XORG >= 120
++static void vncDPMS(ScreenPtr pScreen, int level)
++{
++}
++#endif
++
+ static Bool
+ #if XORG < 113
+ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
+@@ -1661,6 +1669,9 @@ vfbScreenInit(ScreenPtr pScreen, int arg
+     if (!ret) return FALSE;
+ #endif
+
++#if XORG >= 120
++    pScreen->DPMS = vncDPMS;
++#endif
+
+   return TRUE;
+
+@@ -1696,7 +1707,9 @@ InitOutput(ScreenInfo *scrInfo, int argc
+
+     vncPrintBanner();
+
+-#if XORG >= 113
++#if XORG >= 120
++    xorgGlxCreateVendor();
++#elif XORG >= 113
+ #ifdef GLXEXT
+     if (serverGeneration == 1)
+ #if XORG >= 116
diff --git a/SOURCES/tigervnc-use-current-server-time-for-ungrab.patch b/SOURCES/tigervnc-use-current-server-time-for-ungrab.patch
new file mode 100644
index 0000000..3bc3c1c
--- /dev/null
+++ b/SOURCES/tigervnc-use-current-server-time-for-ungrab.patch
@@ -0,0 +1,15 @@
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index 8f387dc..a93aa50 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -824,8 +824,8 @@ void DesktopWindow::ungrabKeyboard()
+ 
+   serial = XNextRequest(fl_display);
+ 
+-  XUngrabPointer(fl_display, fl_event_time);
+-  XUngrabKeyboard(fl_display, fl_event_time);
++  XUngrabPointer(fl_display, CurrentTime);
++  XUngrabKeyboard(fl_display, CurrentTime);
+ 
+   // See grabKeyboard()
+   XSync(fl_display, False);
diff --git a/SOURCES/tigervnc-working-tls-on-fips-systems.patch b/SOURCES/tigervnc-working-tls-on-fips-systems.patch
new file mode 100644
index 0000000..841ac2f
--- /dev/null
+++ b/SOURCES/tigervnc-working-tls-on-fips-systems.patch
@@ -0,0 +1,13 @@
+diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx
+index b946022..2daefa2 100644
+--- a/common/rfb/SSecurityTLS.cxx
++++ b/common/rfb/SSecurityTLS.cxx
+@@ -186,7 +186,7 @@ void SSecurityTLS::setParams(gnutls_session_t session)
+   if (gnutls_dh_params_init(&dh_params) != GNUTLS_E_SUCCESS)
+     throw AuthFailureException("gnutls_dh_params_init failed");
+
+-  if (gnutls_dh_params_generate2(dh_params, DH_BITS) != GNUTLS_E_SUCCESS)
++  if (gnutls_dh_params_generate2(dh_params, gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, GNUTLS_SEC_PARAM_MEDIUM)) != GNUTLS_E_SUCCESS)
+     throw AuthFailureException("gnutls_dh_params_generate2 failed");
+
+   if (anon) {
diff --git a/SOURCES/tigervnc-xserver120.patch b/SOURCES/tigervnc-xserver120.patch
new file mode 100644
index 0000000..e7eae3c
--- /dev/null
+++ b/SOURCES/tigervnc-xserver120.patch
@@ -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);
diff --git a/SOURCES/tigervnc-xstartup.patch b/SOURCES/tigervnc-xstartup.patch
new file mode 100644
index 0000000..740c583
--- /dev/null
+++ b/SOURCES/tigervnc-xstartup.patch
@@ -0,0 +1,40 @@
+diff --git a/unix/vncserver b/unix/vncserver
+index bb4f2feb..b038dd3b 100755
+--- a/unix/vncserver
++++ b/unix/vncserver
+@@ -58,27 +58,14 @@ $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");
++       "/etc/X11/xinit/xinitrc\n".
++       "# Assume either Gnome or KDE will be started by default when installed\n".
++       "# We want to kill the session automatically in this case when user logs out. In case you modify\n".
++       "# /etc/X11/xinit/Xclients or ~/.Xclients yourself to achieve a different result, then you should\n".
++       "# be responsible to modify below code to avoid that your session will be automatically killed\n".
++       "if [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; then\n".
++       "    vncserver -kill \$DISPLAY\n".
++       "fi\n");
+ 
+ $defaultConfig
+     = ("## Supported server options to pass to vncserver upon invocation can be listed\n".
diff --git a/SOURCES/tigervnc-xvnc-update-manpage.patch b/SOURCES/tigervnc-xvnc-update-manpage.patch
new file mode 100644
index 0000000..58f987e
--- /dev/null
+++ b/SOURCES/tigervnc-xvnc-update-manpage.patch
@@ -0,0 +1,215 @@
+diff --git a/unix/xserver/hw/vnc/Xvnc.man b/unix/xserver/hw/vnc/Xvnc.man
+index 04e8f94..cfccf4e 100644
+--- a/unix/xserver/hw/vnc/Xvnc.man
++++ b/unix/xserver/hw/vnc/Xvnc.man
+@@ -1,9 +1,9 @@
+ .TH Xvnc 1 "" "TigerVNC" "Virtual Network Computing"
+ .SH NAME
+-Xvnc \- the X VNC server 
++Xvnc \- the X VNC server
+ .SH SYNOPSIS
+ .B Xvnc
+-.RI [ options ] 
++.RI [ options ]
+ .RI : display#
+ .SH DESCRIPTION
+ .B Xvnc
+@@ -52,7 +52,7 @@ for depth 16 is RGB565 and for depth 24 is RGB888.
+ Listen on interface. By default Xvnc listens on all available interfaces.
+ .
+ .TP
+-.B \-inetd 
++.B \-inetd
+ This significantly changes Xvnc's behaviour so that it can be launched from
+ inetd.  See the section below on usage with inetd.
+ .
+@@ -83,12 +83,19 @@ protocol used in VNC is called RFB - "remote framebuffer").  The default is
+ 5900 plus the display number.
+ .
+ .TP
++.B \-UseIPv4
++Use IPv4 for incoming and outgoing connections. Default is on.
++.
++.TP
++.B \-UseIPv6
++Use IPv6 for incoming and outgoing connections. Default is on.
++.
++.TP
+ .B \-rfbwait \fItime\fP, \-ClientWaitTimeMillis \fItime\fP
+-
+-Time in milliseconds to wait for a viewer which is blocking Xvnc.  This is
+-necessary because Xvnc is single-threaded and sometimes blocks until the viewer
+-has finished sending or receiving a message - note that this does not mean an
+-update will be aborted after this time.  Default is 20000 (20 seconds).
++Time in milliseconds to wait for a viewer which is blocking the server. This is
++necessary because the server is single-threaded and sometimes blocks until the
++viewer has finished sending or receiving a message - note that this does not
++mean an update will be aborted after this time.  Default is 20000 (20 seconds).
+ .
+ .TP
+ .B \-httpd \fIdirectory\fP
+@@ -105,29 +112,14 @@ the display number.
+ .
+ .TP
+ .B \-rfbauth \fIpasswd-file\fP, \-PasswordFile \fIpasswd-file\fP
+-Specifies the file containing the password used to authenticate viewers.  The
+-file is accessed each time a connection comes in, so it can be changed on the
+-fly via \fBvncpasswd\fP(1).
+-.
+-.TP
+-.B \-DeferUpdate \fItime\fP
+-Xvnc uses a "deferred update" mechanism which enhances performance in many
+-cases. After any change to the framebuffer, Xvnc waits for this number of
+-milliseconds (default 1) before sending an update to any waiting clients. This
+-means that more changes tend to get coalesced together in a single
+-update. Setting it to 0 results in the same behaviour as earlier versions of
+-Xvnc, where the first change to the framebuffer causes an immediate update to
+-any waiting clients.
+-.
+-.TP
+-.B \-AlwaysSetDeferUpdateTimer
+-Keep delaying sending the screen update to the client(s) each time the
+-screen is updated. Otherwise the delay is from the first update. Default
+-is off.
++Password file for VNC authentication.  There is no default, you should
++specify the password file explicitly.  Password file should be created with
++the \fBvncpasswd\fP(1) utility.  The file is accessed each time a connection
++comes in, so it can be changed on the fly.
+ .
+ .TP
+ .B \-AcceptCutText
+-Accept clipboard updates from clients (default is on).
++Accept clipboard updates from clients. Default is on.
+ .
+ .TP
+ .B \-MaxCutText \fIbytes\fP
+@@ -136,7 +128,7 @@ Default is \fB262144\fP.
+ .
+ .TP
+ .B \-SendCutText
+-Send clipboard changes to clients (default is on).
++Send clipboard changes to clients. Default is on.
+ .
+ .TP
+ .B \-SendPrimary
+@@ -144,42 +136,58 @@ Send the primary selection and cut buffer to the server as well as the
+ clipboard selection. Default is on.
+ .
+ .TP
++.B \-SetPrimary
++Set the PRIMARY as well as the CLIPBOARD selection. Default is on.
++.
++.TP
+ .B \-AcceptPointerEvents
+-Accept pointer press and release events from clients (default is on).
++Accept pointer press and release events from clients. Default is on.
+ .
+ .TP
+ .B \-AcceptKeyEvents
+-Accept key press and release events from clients (default is on).
++Accept key press and release events from clients. Default is on.
++.
++.TP
++.B \-AcceptSetDesktopSize
++Accept requests to resize the size of the desktop. Default is on.
+ .
+ .TP
+ .B \-DisconnectClients
+-Disconnect existing clients if an incoming connection is non-shared (default is
+-on). If \fBDisconnectClients\fP is false, then a new non-shared connection will
++Disconnect existing clients if an incoming connection is non-shared. Default is
++on. If \fBDisconnectClients\fP is false, then a new non-shared connection will
+ be refused while there is a client active.  When combined with
+ \fBNeverShared\fP this means only one client is allowed at a time.
+ .
+ .TP
+ .B \-NeverShared
+ Never treat incoming connections as shared, regardless of the client-specified
+-setting (default is off).
++setting. Default is off.
+ .
+ .TP
+ .B \-AlwaysShared
+ Always treat incoming connections as shared, regardless of the client-specified
+-setting (default is off).
++setting. Default is off.
+ .
+ .TP
+ .B \-Protocol3.3
+ Always use protocol version 3.3 for backwards compatibility with badly-behaved
+-clients (default is off).
++clients. Default is off.
+ .
+ .TP
+-.B \-CompareFB
+-Perform pixel comparison on framebuffer to reduce unnecessary updates (default
+-is on).
++.B \-FrameRate \fIfps\fP
++The maximum number of updates per second sent to each client. If the screen
++updates any faster then those changes will be aggregated and sent in a single
++update to the client. Note that this only controls the maximum rate and a
++client may get a lower rate when resources are limited. Default is \fB60\fP.
+ .
+ .TP
+-.B \-ZlibLevel
++.B \-CompareFB \fImode\fP
++Perform pixel comparison on framebuffer to reduce unnecessary updates. Can
++be either \fB0\fP (off), \fB1\fP (always) or \fB2\fP (auto). Default is
++\fB2\fP.
++.
++.TP
++.B \-ZlibLevel \fIlevel\fP
+ Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
+ Acceptable values are between 0 and 9.  Default is to use the standard
+ compression level provided by the \fBzlib\fP(3) compression library.
+@@ -226,6 +234,11 @@ Private key counter part to the certificate given in \fBX509Cert\fP. Must
+ also be in PEM format.
+ .
+ .TP
++.B \-GnuTLSPriority \fIpriority\fP
++GnuTLS priority string that controls the TLS session’s handshake algorithms.
++See the GnuTLS manual for possible values. Default is \fBNORMAL\fP.
++.
++.TP
+ .B \-BlacklistThreshold \fIcount\fP
+ The number of unauthenticated connection attempts allowed from any individual
+ host before that host is black-listed.  Default is 5.
+@@ -237,8 +250,8 @@ cannot re-attempt a connection until the timeout expires.  Default is 10.
+ .
+ .TP
+ .B \-IdleTimeout \fIseconds\fP
+-The number of seconds after which an idle VNC connection will be dropped
+-(default is 0, which means that idle connections will never be dropped).
++The number of seconds after which an idle VNC connection will be dropped.
++Default is 0, which means that idle connections will never be dropped.
+ .
+ .TP
+ .B \-MaxDisconnectionTime \fIseconds\fP
+@@ -257,13 +270,10 @@ Terminate after \fIN\fP seconds of user inactivity.  Default is 0.
+ .TP
+ .B \-QueryConnect
+ Prompts the user of the desktop to explicitly accept or reject incoming
+-connections.  This is most useful when using the vnc.so module or
+-\fBx0vncserver\fP(1) program to access an existing X desktop via VNC.
++connections. Default is off.
+ 
+ The \fBvncconfig\fP(1) program must be running on the desktop in order for
+-QueryConnect to be supported by the \fBvnc.so\fP(1) module or
+-\fBXvnc\fP(1) program.  The \fBx0vncserver\fP(1) program does not require
+-\fBvncconfig\fP(1) to be running.
++QueryConnect to be supported.
+ .
+ .TP
+ .B \-QueryConnectTimeout \fIseconds\fP
+@@ -294,8 +304,10 @@ or
+ where
+ .I char
+ is a hexadecimal keysym. For example, to exchange the " and @ symbols you would specify the following:
+-.IP "" 10
++
++.RS 10
+ RemapKeys=0x22<>0x40
++.RE
+ .
+ .TP
+ .B \-AvoidShiftNumLock
diff --git a/SOURCES/vncserver.service b/SOURCES/vncserver.service
new file mode 100644
index 0000000..5077e82
--- /dev/null
+++ b/SOURCES/vncserver.service
@@ -0,0 +1,48 @@
+# 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
+#    (ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
+#     PIDFile=/home/<USER>/.vnc/%H%i.pid)
+# 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
+
+# Clean any existing files in /tmp/.X11-unix environment
+ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
+PIDFile=/home/<USER>/.vnc/%H%i.pid
+ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+
+[Install]
+WantedBy=multi-user.target
diff --git a/SOURCES/vncserver.sysconfig b/SOURCES/vncserver.sysconfig
new file mode 100644
index 0000000..4d0489b
--- /dev/null
+++ b/SOURCES/vncserver.sysconfig
@@ -0,0 +1 @@
+# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
diff --git a/SOURCES/xvnc.service b/SOURCES/xvnc.service
new file mode 100644
index 0000000..3471e1f
--- /dev/null
+++ b/SOURCES/xvnc.service
@@ -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
diff --git a/SOURCES/xvnc.socket b/SOURCES/xvnc.socket
new file mode 100644
index 0000000..9b3f92d
--- /dev/null
+++ b/SOURCES/xvnc.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=XVNC Server
+
+[Socket]
+ListenStream=5900
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/SPECS/tigervnc.spec b/SPECS/tigervnc.spec
new file mode 100644
index 0000000..37570cb
--- /dev/null
+++ b/SPECS/tigervnc.spec
@@ -0,0 +1,951 @@
+Name:           tigervnc
+Version:        1.8.0
+Release:        18%{?dist}
+Summary:        A TigerVNC remote display system
+
+Group:          User Interface/Desktops
+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
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires:  libX11-devel, automake, autoconf, libtool, gettext, gettext-autopoint
+BuildRequires:  libXext-devel, xorg-x11-server-source, libXi-devel, libxshmfence-devel
+BuildRequires:  xorg-x11-xtrans-devel, xorg-x11-util-macros, libXtst-devel
+BuildRequires:  libdrm-devel, libXt-devel, pixman-devel libXfont-devel
+BuildRequires:  libxkbfile-devel, openssl-devel, libpciaccess-devel
+BuildRequires:  mesa-libGL-devel, libXinerama-devel
+BuildRequires:  freetype-devel, libXdmcp-devel
+BuildRequires:  desktop-file-utils, java-devel, jpackage-utils
+BuildRequires:  libjpeg-turbo-devel, gnutls-devel, pam-devel
+BuildRequires:  systemd, cmake, fltk-devel
+
+BuildRequires:  libXfont2-devel
+
+# TigerVNC 1.4.x requires fltk 1.3.3 for keyboard handling support
+# See https://github.com/TigerVNC/tigervnc/issues/8, also bug #1208814
+BuildRequires:  fltk-devel >= 1.3.3
+%ifnarch s390 s390x
+BuildRequires:  xorg-x11-server-devel
+%endif
+
+Requires(post):   coreutils
+Requires(postun): coreutils
+
+Requires:       hicolor-icon-theme
+Requires:       tigervnc-license
+Requires:       tigervnc-icons
+
+Provides:       vnc = 4.1.3-2, vnc-libs = 4.1.3-2
+Obsoletes:      vnc < 4.1.3-2, vnc-libs < 4.1.3-2
+Provides:       tightvnc = 1.5.0-0.15.20090204svn3586
+Obsoletes:      tightvnc < 1.5.0-0.15.20090204svn3586
+
+Patch2:        tigervnc-shebang.patch
+Patch3:        tigervnc-manpages.patch
+Patch4:        tigervnc-cursor.patch
+Patch6:        tigervnc-xstartup.patch
+Patch7:        tigervnc-1.3.1-CVE-2014-8240.patch
+Patch8:        tigervnc-1.3.1-do-not-die-when-port-is-already-taken.patch
+Patch9:        tigervnc-let-user-know-about-not-using-view-only-password.patch
+Patch10:       tigervnc-working-tls-on-fips-systems.patch
+Patch11:       tigervnc-broken-scrolling.patch
+Patch12:       tigervnc-reduce-size-of-context-menu-hint.patch
+Patch13:       tigervnc-support-xorg120.patch
+Patch14:       tigervnc-ignore-fake-focus-events-from-xgrabkeyboard.patch
+Patch15:       tigervnc-use-current-server-time-for-ungrab.patch
+Patch16:       tigervnc-fix-rendering-on-big-endian-systems.patch
+Patch17:       tigervnc-xvnc-update-manpage.patch
+Patch18:       tigervnc-release-pointer-grab-when-cursor-leaves-window.patch
+
+# This is tigervnc-%{version}/unix/xserver116.patch rebased on the latest xorg
+Patch100:       tigervnc-xserver120.patch
+# 1326867 - [RHEL7.3] GLX applications in an Xvnc session fails to start
+Patch101:       0001-rpath-hack.patch
+
+%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
+Group:          User Interface/X
+Provides:       vnc-server = 4.1.3-2, vnc-libs = 4.1.3-2
+Obsoletes:      vnc-server < 4.1.3-2, vnc-libs < 4.1.3-2
+Provides:       tightvnc-server = 1.5.0-0.15.20090204svn3586
+Obsoletes:      tightvnc-server < 1.5.0-0.15.20090204svn3586
+Requires:       perl
+Requires:       tigervnc-server-minimal
+Requires:       xorg-x11-xauth
+Requires:       xorg-x11-xinit
+Requires(post):   systemd
+Requires(preun):  systemd
+Requires(postun): systemd
+Requires(post):   systemd-sysv chkconfig
+
+%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
+Group:          User Interface/X
+Requires(post):   chkconfig
+Requires(preun):  chkconfig
+Requires(preun):  initscripts
+Requires(postun): initscripts
+
+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.
+
+%ifnarch s390 s390x
+%package server-module
+Summary:        TigerVNC module to Xorg
+Group:          User Interface/X
+Provides:       vnc-server = 4.1.3-2, vnc-libs = 4.1.3-2
+Obsoletes:      vnc-server < 4.1.3-2, vnc-libs < 4.1.3-2
+Provides:       tightvnc-server-module = 1.5.0-0.15.20090204svn3586
+Obsoletes:      tightvnc-server-module < 1.5.0-0.15.20090204svn3586
+Requires:       xorg-x11-server-Xorg
+Requires:       tigervnc-license
+
+%description server-module
+This package contains libvnc.so module to X server, allowing others
+to access the desktop on your machine.
+%endif
+
+%package server-applet
+Summary:        Java TigerVNC viewer applet for TigerVNC server
+Group:          User Interface/X
+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
+Group:          User Interface/X
+BuildArch:      noarch
+
+%description license
+This package contains license of the TigerVNC suite
+
+%package icons
+Summary:        Icons for TigerVNC viewer
+Group:          User Interface/X
+BuildArch:      noarch
+
+%description icons
+This package contains icons for TigerVNC viewer
+
+%prep
+%setup -q -n %{name}-%{version}
+
+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
+%patch101 -p1 -b .rpath
+popd
+
+# Don't use shebang in vncserver script.
+%patch2 -p1 -b .shebang
+
+%patch3 -p1 -b .manpages
+
+# Fixed viewer crash when cursor has not been set (bug #1051333).
+%patch4 -p1 -b .cursor
+
+# Clearer xstartup file (bug #923655).
+# Bug 1646889 - Tigervnc not starting on RHEL 7.6 server without -noxstartup option
+%patch6 -p1 -b .xstartup
+
+# CVE-2014-8240 tigervnc: integer overflow flaw, leading to a heap-based
+# buffer overflow in screen size handling
+%patch7 -p1 -b .tigervnc-1.3.1-CVE-2014-8240
+
+# Bug 1322155 - Xorg socket conflict for VNC port 5901
+%patch8 -p1 -b .do-not-die-when-port-is-already-taken
+
+# Bug 1447555 - view-only accepts enter, unclear whether default password is generated or not
+%patch9 -p1 -b .let-user-know-about-not-using-view-only-password
+
+# Bug 1492107 - VNC cannot be used when FIPS is enabled because DH_BITS is too low
+%patch10 -p1 -b .working-tls-on-fips-systems
+
+# Bug 1499018 - bump scrolling is broken in tigervnc 1.8.0
+%patch11 -p1 -b .broken-scrolling
+
+%patch12 -p1 -b .reduce-size-of-context-menu-hint
+
+%patch13 -p1 -b .support-xorg120
+
+%patch14 -p1 -b .ignore-fake-focus-events-from-xgrabkeyboard
+
+%patch15 -p1 -b .use-current-server-time-for-ungrab
+
+%patch16 -p1 -b .fix-rendering-on-big-endian-systems
+
+%patch17 -p1 -b .xvnc-update-manpage
+
+%patch18 -p1 -b .release-pointer-grab-when-cursor-leaves-window
+
+%build
+%ifarch sparcv9 sparc64 s390 s390x
+export CFLAGS="$RPM_OPT_FLAGS -fPIC"
+%else
+export CFLAGS="$RPM_OPT_FLAGS -fpic"
+%endif
+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 --with-pic \
+        --disable-static --disable-xwayland \
+        --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 \
+        --enable-listen-tcp
+
+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 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/{README.txt,LICENCE.TXT}
+
+pushd unix/xserver/hw/vnc
+make install DESTDIR=$RPM_BUILD_ROOT
+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 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vncservers
+
+# Install desktop stuff
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/{16x16,24x24,48x48}/apps
+
+pushd media/icons
+for s in 16 24 48; do
+install -m644 tigervnc_$s.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x$s/apps/tigervnc.png
+done
+popd
+
+# Install Java applet
+pushd java
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/vnc/classes
+install -m755 VncViewer.jar $RPM_BUILD_ROOT%{_datadir}/vnc/classes
+install -m644 com/tigervnc/vncviewer/index.vnc $RPM_BUILD_ROOT%{_datadir}/vnc/classes
+popd
+
+%find_lang %{name} %{name}.lang
+
+# remove unwanted files
+rm -f  $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/libvnc.la
+
+%ifarch s390 s390x
+rm -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/libvnc.so
+%else
+mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
+install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.conf
+%endif
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+touch -c %{_datadir}/icons/hicolor
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+        %{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor || :
+fi
+
+%postun
+touch -c %{_datadir}/icons/hicolor
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+        %{_bindir}/gtk-update-icon-cache -q %{_datadir}/icons/hicolor || :
+fi
+
+%post server
+%systemd_post vncserver.service
+%systemd_post xvnc.service
+%systemd_post xvnc.socket
+
+%triggerun -- tigervnc-server < 1.0.90-6
+%{_bindir}/systemd-sysv-convert --save vncserver >/dev/null 2>&1 ||:
+/sbin/chkconfig --del vncserver >/dev/null 2>&1 || :
+
+%preun server
+%systemd_preun vncserver.service
+%systemd_preun xvnc.service
+%systemd_preun xvnc.socket
+
+%postun server
+%systemd_postun
+
+%files -f %{name}.lang
+%doc README.txt
+%{_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*
+
+%ifnarch s390 s390x
+%files server-module
+%{_libdir}/xorg/modules/extensions/libvnc.so
+%config %{_sysconfdir}/X11/xorg.conf.d/10-libvnc.conf
+%endif
+
+%files server-applet
+%doc java/com/tigervnc/vncviewer/README
+%{_datadir}/vnc/classes/*
+
+%files license
+%license LICENCE.TXT
+
+%files icons
+%{_datadir}/icons/hicolor/*/apps/*
+
+%changelog
+* Tue Aug 13 2019 Adam Jackson <ajax@redhat.com> - 1.8.0-18
+- Rebuild against newer X server to pick up backing store crash fixes
+  Resolves: bz#1670342
+
+* Mon Feb 18 2019 Jan Grulich <jgrulich@redhat.com> - 1.8.0-17
+- Release pointer grab when cursor leaves window
+  Resolves: bz#1664801
+
+* Mon Jan 21 2019 Jan Grulich <jgrulich@redhat.com> - 1.8.0-16
+- Automatically kill session only when gnome or kde is installed
+  Resolves: bz#1646889
+
+* Mon Jan 14 2019 Jan Grulich <jgrulich@redhat.com> - 1.8.0-15
+- Reduce size of context menu hint
+  Resolves: bz#1491608
+
+* Mon Jan 14 2019 Jan Grulich <jgrulich@redhat.com> - 1.8.0-14
+- Fix rendering on big endian system
+  Resolves: bz#1618777
+
+  Do not automatically kill sessions
+  Resolves: bz#1646889
+
+* Wed Aug 29 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-13
+- Add one remaining option to Xvnc manpage
+  Resolves: bz#1601880
+
+* Wed Aug 29 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-12
+- Add missing options to Xvnc manpage
+  Resolves: bz#1601880
+
+* Fri Aug 17 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-11
+- Properly kill session after user logs out
+  Resolves: bz#1259757
+
+* Fri Aug 17 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-10
+- Check endianness when constructing platform pixel buffer
+  Resolves: bz#1613264
+
+* Mon Jul 23 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-9
+- Use current server time for XUngrabPointer and XUngrabKeyboard
+  Resolves: bz#1605325
+
+* Thu Jul 19 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-8
+- Ignore fake focus events from XGrabKeyboard()
+  Resolves: bz#1602855
+
+* Wed Jun 27 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-7
+  Properly support Xorg 1.20
+  Resolves: bz#1564061
+
+* Tue May 29 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-6
+- Kill session after user logs out
+  Resolves: bz#1259757
+
+  Build against Xorg 1.20
+  Resolves: bz#1564061
+
+* Thu Jan 18 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-5
+- Fix broken scrolling
+  Resolves: bz#1499018
+
+* Fri Oct 27 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-4
+- Properly initialize tigervnc when started as systemd service
+  Resolves: bz#1506273
+
+* Tue Sep 19 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-3
+- Make TLS work on FIPS systems
+  Resolves: bz#1492107
+
+* Tue Sep 12 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-2
+- Let user know that view-only password will not be used
+  Resolves: bz#1447555
+
+* Wed May 17 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-1
+- Update to 1.8.0
+  Resolves: bz#1388620
+
+* Tue May 02 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.90-2
+- Make RandR callbacks optional
+  Resolves: bz#1444948
+
+* Thu Apr 20 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.90-1
+- Update to 1.7.90
+  Resolves: bz#1388620
+
+* Wed Apr 05 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.1-3
+- Delete underlying ssecurity in SSecurityVeNCrypt [CCVE-2017-7392]
+  Resolves: bz#1439127
+  Prevent double free by crafted fences [CVE-2017-7393]
+  Resolves: bz#1439134
+
+* Wed Apr 05 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.1-2
+- Be more restrictive with shared memory mode bits
+  Resolves: bz#1152552
+  Limit max username/password size in SSecurityPlain [CVE-2017-7394]
+  Resolves: bz#1438737
+  Fix crash from integer overflow in SMsgReader::readClientCutText [CVE-2017-7395]
+  Resolves: bz#1438742
+
+* Tue Feb 21 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.1-1
+- Update to 1.7.1
+  Resolves: bz#1388620
+  Resolves: bz#1343899
+  Resolves: bz#1410164
+  Resolves: bz#1415547
+  Resolves: bz#1418945
+  Resolves: bz#1416290
+  Resolves: bz#1342956
+- Fix shared memory leakage
+  Resolves: bz#1358090
+- Added systemd unit file for xvnc
+  Resolves: bz#1393971
+
+* Tue Sep 13 2016 Adam Jackson <ajax@redhat.com> - 1.3.1-9
+- Force DT_RUNPATH to point to Mesa's libGL
+  Resolves: bz#1326867
+
+* Thu Jun 02 2016 Jan Grulich <jgrulich@redhat.com> - 1.3.1-8
+- Make other security types work
+  Resolves: bz#1341969
+
+* Wed May 25 2016 Jan Grulich <jgrulich@redhat.com> - 1.3.1-7
+- Restore default behaviour to listen on TCP
+  Resolves: bz#1304646
+
+* Tue May 24 2016 Jan Grulich <jgrulich@redhat.com> - 1.3.1-6
+- Do not fail to bind a network socket
+  Resolves: bz#1332575
+- Do not die when port is already taken
+  Resolves: bz#1322155
+
+* Thu Mar 24 2016 Jan Grulich <jgrulich@redhat.com> - 1.3.1-5
+- Update comments in vncserver configuration file example
+  Resolves: bz#1295275
+
+* Tue Feb 02 2016 Jan Grulich <jgrulich@redhat.com> - 1.3.1-4
+- Do not crash when using -inetd option
+  Resolves: bz#1283925
+
+* Wed Sep 02 2015 Jan Grulich <jgrulich@redhat.com> - 1.3.1-3
+- Do not mention that display number is required in the file name
+  Resolves: bz#1195266
+
+* Thu Jul 30 2015 Jan Grulich <jgrulich@redhat.com> - 1.3.1-2
+- Resolves: bz#1248422
+  CVE-2014-8240 CVE-2014-8241 tigervnc: various flaws
+
+* Wed Apr 15 2015 Jan Grulich <jgrulich@redhat.com> - 1.3.1-1
+- Drop unecessary patches
+- Re-base to 1.3.1 (bug #1199453)
+- Re-build against re-based xserver (bug #1194898)
+- Check the return value from XShmAttach (bug #1072733)
+- Add missing part of xserver114.patch (bug #1140603)
+- Keep pointer in sync (bug #1100661)
+- Make input device class global (bug #1119640)
+- Add IPv6 support (bug #1162722)
+- Set initial mode as prefered (bug #1181287)
+- Do not mention that display number is required in the file name (bug #1195266)
+- Enable Xinerama extension (bug #1199437)
+- Specify full path for runuser command (bug #1208817)
+
+* Tue Sep 23 2014 Tim Waugh <twaugh@redhat.com> - 1.2.80-0.31.20130314svn5065
+- Rebuilt against xorg-x11-server to pick up ppc64le fix (bug #1140424).
+
+* Mon Mar 10 2014 Tim Waugh <twaugh@redhat.com> - 1.2.80-0.30.20130314svn5065
+- Fixed heap-based buffer overflow (CVE-2014-0011, bug #1050928).
+
+* Tue Feb 18 2014 Tim Waugh <twaugh@redhat.com> - 1.2.80-0.29.20130314svn5065
+- Previous patch was not applied.
+
+* Mon Feb 10 2014 Tim Waugh <twaugh@redhat.com> - 1.2.80-0.28.20130314svn5065
+- Clearer xstartup file (bug #923655).
+
+* Tue Jan 28 2014 Tim Waugh <twaugh@redhat.com> - 1.2.80-0.27.20130314svn5065
+- Use keyboard input code from tigervnc-1.3.0 (bug #1053536).
+
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.2.80-0.26.20130314svn5065
+- Mass rebuild 2014-01-24
+
+* Fri Jan 10 2014 Tim Waugh <twaugh@redhat.com> - 1.2.80-0.25.20130314svn5065
+- Fixed viewer crash when cursor has not been set (bug #1051333).
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.2.80-0.24.20130314svn5065
+- Mass rebuild 2013-12-27
+
+* Thu Dec 12 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.23.20130314svn5065
+- Avoid invalid read when ZRLE connection closed (bug #1039926).
+
+* Tue Dec 10 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.22.20130314svn5065
+- Fixed GLX initialisation (bug #1039126).
+
+* Tue Nov 19 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.21.20130314svn5065
+- Better fix for PIDFile problem (bug #1031625).
+
+* Fri Nov 08 2013 Adam Jackson <ajax@redhat.com> 1.2.80-0.20.20130314svn5065
+- Rebuild against xserver 1.15RC1
+
+* Wed Jul 24 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.18.20130314svn5065
+- Avoid PIDFile problems in systemd unit file (bug #983232).
+- Don't use shebang in vncserver script.
+
+* Wed Jul  3 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.18.20130314svn5065
+- Removed systemd_requires macro in order to fix the build.
+
+* Wed Jul  3 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.17.20130314svn5065
+- Synchronise manpages and --help output (bug #980870).
+
+* Mon Jun 17 2013 Adam Jackson <ajax@redhat.com> 1.2.80-0.16.20130314svn5065
+- tigervnc-setcursor-crash.patch: Attempt to paper over a crash in Xvnc when
+  setting the cursor.
+
+* Sat Jun 08 2013 Dennis Gilmore <dennis@ausil.us> 1.2.80-0.15.20130314svn5065
+- bump to rebuild and pick up bugfix causing X to crash on ppc and arm
+
+* Thu May 23 2013 Tim Waugh <twaugh@redhat.com> 1.2.80-0.14.20130314svn5065
+- Use systemd rpm macros (bug #850340).  Moved systemd requirements
+  from main package to server sub-package.
+- Applied Debian patch to fix busy loop when run from inetd in nowait
+  mode (bug #920373).
+- Added dependency on xorg-x11-xinit to server sub-package so that
+  default window manager can be found (bug #896284, bug #923655).
+- Fixed bogus changelog date.
+
+* Thu Mar 14 2013 Adam Jackson <ajax@redhat.com> 1.2.80-0.13.20130314svn5065
+- Less RHEL customization
+
+* Thu Mar 14 2013 Adam Tkac <atkac redhat com> - 1.2.80-0.12.20130314svn5065
+- include /etc/X11/xorg.conf.d/10-libvnc.conf sample configuration (#712482)
+- vncserver now honors specified -geometry parameter (#755947)
+
+* Tue Mar 12 2013 Adam Tkac <atkac redhat com> - 1.2.80-0.11.20130307svn5060
+- update to r5060
+- split icons to separate package to avoid multilib issues
+
+* Tue Feb 19 2013 Adam Tkac <atkac redhat com> - 1.2.80-0.10.20130219svn5047
+- update to r5047 (X.Org 1.14 support)
+
+* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.80-0.9.20121126svn5015
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Jan 21 2013 Adam Tkac <atkac redhat com> - 1.2.80-0.8.20121126svn5015
+- rebuild due to "jpeg8-ABI" feature drop
+
+* Wed Jan 16 2013 Adam Tkac <atkac redhat com> 1.2.80-0.7.20121126svn5015
+- rebuild
+
+* Tue Dec 04 2012 Adam Tkac <atkac redhat com> 1.2.80-0.6.20121126svn5015
+- rebuild against new fltk
+
+* Mon Nov 26 2012 Adam Tkac <atkac redhat com> 1.2.80-0.5.20121126svn5015
+- update to r5015
+- build with -fpic instead of -fPIC on all archs except s390/sparc
+
+* Wed Nov  7 2012 Peter Robinson <pbrobinson@fedoraproject.org> 1.2.80-0.4.20120905svn4996
+- Build with -fPIC to fix FTBFS on ARM
+
+* Wed Oct 31 2012 Adam Jackson <ajax@redhat.com> 1.2.80-0.3.20120905svn4996
+- tigervnc12-xorg113-glx.patch: Fix to only init glx on the first server
+  generation
+
+* Fri Sep 28 2012 Adam Jackson <ajax@redhat.com> 1.2.80-0.2.20120905svn4996
+- tigervnc12-xorg113-glx.patch: Re-enable GLX against xserver 1.13
+
+* Fri Aug 17 2012 Adam Tkac <atkac redhat com> 1.2.80-0.1.20120905svn4996
+- update to 1.2.80
+- remove deprecated patches
+  - tigervnc-102434.patch
+  - tigervnc-viewer-reparent.patch
+  - tigervnc11-java7.patch
+- patches merged
+  - tigervnc11-xorg111.patch
+  - tigervnc11-xorg112.patch
+
+* Fri Aug 10 2012 Dave Airlie <airlied@redhat.com> 1.1.0-10
+- fix build against newer X server
+
+* Mon Jul 23 2012 Adam Jackson <ajax@redhat.com> 1.1.0-9
+- Build with the Composite extension for feature parity with other X servers
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Thu Jul 19 2012 Dave Airlie <airlied@redhat.com> 1.1.0-7
+- fix building against X.org 1.13
+
+* Wed Apr 04 2012 Adam Jackson <ajax@redhat.com> 1.1.0-6
+- RHEL exclusion for -server-module on ppc* too
+
+* Mon Mar 26 2012 Adam Tkac <atkac redhat com> - 1.1.0-5
+- clean Xvnc's /tmp environment in service file before startup
+- fix building against the latest JAVA 7 and X.Org 1.12
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Nov 22 2011 Adam Tkac <atkac redhat com> - 1.1.0-3
+- don't build X.Org devel docs (#755782)
+- applet: BR generic java-devel instead of java-gcj-devel (#755783)
+- use runuser to start Xvnc in systemd service file (#754259)
+- don't attepmt to restart Xvnc session during update/erase (#753216)
+
+* Fri Nov 11 2011 Adam Tkac <atkac redhat com> - 1.1.0-2
+- libvnc.so: don't use unexported GetMaster function (#744881)
+- remove nasm buildreq
+
+* Mon Sep 12 2011 Adam Tkac <atkac redhat com> - 1.1.0-1
+- update to 1.1.0
+- update the xorg11 patch
+- patches merged
+  - tigervnc11-glx.patch
+  - tigervnc11-CVE-2011-1775.patch
+  - 0001-Use-memmove-instead-of-memcpy-in-fbblt.c-when-memory.patch
+
+* Thu Jul 28 2011 Adam Tkac <atkac redhat com> - 1.0.90-6
+- add systemd service file and remove legacy SysV initscript (#717227)
+
+* Thu May 12 2011 Adam Tkac <atkac redhat com> - 1.0.90-5
+- make Xvnc buildable against X.Org 1.11
+
+* Tue May 10 2011 Adam Tkac <atkac redhat com> - 1.0.90-4
+- viewer can send password without proper validation of X.509 certs
+  (CVE-2011-1775)
+
+* Wed Apr 13 2011 Adam Tkac <atkac redhat com> - 1.0.90-3
+- fix wrong usage of memcpy which caused screen artifacts (#652590)
+- don't point to inaccessible link in sysconfig/vncservers (#644975)
+
+* Fri Apr 08 2011 Adam Tkac <atkac redhat com> - 1.0.90-2
+- improve compatibility with vinagre client (#692048)
+
+* Tue Mar 22 2011 Adam Tkac <atkac redhat com> - 1.0.90-1
+- update to 1.0.90
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.90-0.32.20110117svn4237
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Jan 17 2011 Adam Tkac <atkac redhat com> 1.0.90-0.31.20110117svn4237
+- fix libvnc.so module loading
+
+* Mon Jan 17 2011 Adam Tkac <atkac redhat com> 1.0.90-0.30.20110117svn4237
+- update to r4237
+- patches merged
+  - tigervnc11-optionsdialog.patch
+  - tigervnc11-rh607866.patch
+
+* Fri Jan 14 2011 Adam Tkac <atkac redhat com> 1.0.90-0.29.20101208svn4225
+- improve patch for keyboard issues
+
+* Fri Jan 14 2011 Adam Tkac <atkac redhat com> 1.0.90-0.28.20101208svn4225
+- attempt to fix various keyboard-related issues (key repeating etc)
+
+* Fri Jan 07 2011 Adam Tkac <atkac redhat com> 1.0.90-0.27.20101208svn4225
+- render "Ok" and "Cancel" buttons in the options dialog correctly
+
+* Wed Dec 15 2010 Jan Görig <jgorig redhat com> 1.0.90-0.26.20101208svn4225
+- added vncserver lock file (#662784)
+
+* Fri Dec 10 2010 Adam Tkac <atkac redhat com> 1.0.90-0.25.20101208svn4225
+- update to r4225
+- patches merged
+  - tigervnc11-rh611677.patch
+  - tigervnc11-rh633931.patch
+  - tigervnc11-xorg1.10.patch
+- enable VeNCrypt and PAM support
+
+* Mon Dec 06 2010 Adam Tkac <atkac redhat com> 1.0.90-0.24.20100813svn4123
+- rebuild against xserver 1.10.X
+- 0001-Return-Success-from-generate_modkeymap-when-max_keys.patch merged
+
+* Wed Sep 29 2010 jkeating - 1.0.90-0.23.20100813svn4123
+- Rebuilt for gcc bug 634757
+
+* Tue Sep 21 2010 Adam Tkac <atkac redhat com> 1.0.90-0.22.20100420svn4030
+- drop xorg-x11-fonts-misc dependency (#636170)
+
+* Tue Sep 21 2010 Adam Tkac <atkac redhat com> 1.0.90-0.21.20100420svn4030
+- improve patch for #633645 (fix tcsh incompatibilities)
+
+* Thu Sep 16 2010 Adam Tkac <atkac redhat com> 1.0.90-0.20.20100813svn4123
+- press fake modifiers correctly (#633931)
+- supress unneeded debug information emitted from initscript (#633645)
+
+* Wed Aug 25 2010 Adam Tkac <atkac redhat com> 1.0.90-0.19.20100813svn4123
+- separate Xvnc, vncpasswd and vncconfig to -server-minimal subpkg (#626946)
+- move license to separate subpkg and Requires it from main subpkgs
+- Xvnc: handle situations when no modifiers exist well (#611677)
+
+* Fri Aug 13 2010 Adam Tkac <atkac redhat com> 1.0.90-0.18.20100813svn4123
+- update to r4123 (#617973)
+- add perl requires to -server subpkg (#619791)
+
+* Thu Jul 22 2010 Adam Tkac <atkac redhat com> 1.0.90-0.17.20100721svn4113
+- update to r4113
+- patches merged
+  - tigervnc11-rh586406.patch
+  - tigervnc11-libvnc.patch
+  - tigervnc11-rh597172.patch
+  - tigervnc11-rh600070.patch
+  - tigervnc11-options.patch
+- don't own %%{_datadir}/icons directory (#614301)
+- minor improvements in the .desktop file (#616340)
+- bundled libjpeg configure requires nasm; is executed even if system-wide
+  libjpeg is used
+
+* Fri Jul 02 2010 Adam Tkac <atkac redhat com> 1.0.90-0.16.20100420svn4030
+- build against system-wide libjpeg-turbo (#494458)
+- build no longer requires nasm
+
+* Mon Jun 28 2010 Adam Tkac <atkac redhat com> 1.0.90-0.15.20100420svn4030
+- vncserver: accept <+optname> option when specified as the first one
+
+* Thu Jun 24 2010 Adam Tkac <atkac redhat com> 1.0.90-0.14.20100420svn4030
+- fix memory leak in Xvnc input code (#597172)
+- don't crash when receive negative encoding (#600070)
+- explicitly disable udev configuration support
+- add gettext-autopoint to BR
+
+* Mon Jun 14 2010 Adam Tkac <atkac redhat com> 1.0.90-0.13.20100420svn4030
+- update URL about SSH tunneling in the sysconfig file (#601996)
+
+* Fri Jun 11 2010 Adam Tkac <atkac redhat com> 1.0.90-0.12.20100420svn4030
+- use newer gettext
+- autopoint now uses git instead of cvs, adjust BuildRequires appropriately
+
+* Thu May 13 2010 Adam Tkac <atkac redhat com> 1.0.90-0.11.20100420svn4030
+- link libvnc.so "now" to catch "undefined symbol" errors during Xorg startup
+- use always XkbConvertCase instead of XConvertCase (#580159, #586406)
+- don't link libvnc.so against libXi.la, libdix.la and libxkb.la; use symbols
+  from Xorg instead
+
+* Thu May 13 2010 Adam Tkac <atkac redhat com> 1.0.90-0.10.20100420svn4030
+- update to r4030 snapshot
+- patches merged to upstream
+  - tigervnc11-rh522369.patch
+  - tigervnc11-rh551262.patch
+  - tigervnc11-r4002.patch
+  - tigervnc11-r4014.patch
+
+* Thu Apr 08 2010 Adam Tkac <atkac redhat com> 1.0.90-0.9.20100219svn3993
+- add server-applet subpackage which contains Java vncviewer applet
+- fix Java applet; it didn't work when run from web browser
+- add xorg-x11-xkb-utils to server Requires
+
+* Fri Mar 12 2010 Adam Tkac <atkac redhat com> 1.0.90-0.8.20100219svn3993
+- add French translation to vncviewer.desktop (thanks to Alain Portal)
+
+* Thu Mar 04 2010 Adam Tkac <atkac redhat com> 1.0.90-0.7.20100219svn3993
+- don't crash during pixel format change (#522369, #551262)
+
+* Mon Mar 01 2010 Adam Tkac <atkac redhat com> 1.0.90-0.6.20100219svn3993
+- add mesa-dri-drivers and xkeyboard-config to -server Requires
+- update to r3993 1.0.90 snapshot
+  - tigervnc11-noexecstack.patch merged
+  - tigervnc11-xorg18.patch merged
+  - xserver18.patch is no longer needed
+
+* Wed Jan 27 2010 Jan Gorig <jgorig redhat com> 1.0.90-0.5.20091221svn3929
+- initscript LSB compliance fixes (#523974)
+
+* Fri Jan 22 2010 Adam Tkac <atkac redhat com> 1.0.90-0.4.20091221svn3929
+- mark stack as non-executable in jpeg ASM code
+- add xorg-x11-xauth to Requires
+- add support for X.Org 1.8
+- drop shave sources, they are no longer needed
+
+* Thu Jan 21 2010 Adam Tkac <atkac redhat com> 1.0.90-0.3.20091221svn3929
+- drop tigervnc-xorg25909.patch, it has been merged to X.Org upstream
+
+* Thu Jan 07 2010 Adam Tkac <atkac redhat com> 1.0.90-0.2.20091221svn3929
+- add patch for upstream X.Org issue #25909
+- add libXdmcp-devel to build requires to build Xvnc with XDMCP support (#552322)
+
+* Mon Dec 21 2009 Adam Tkac <atkac redhat com> 1.0.90-0.1.20091221svn3929
+- update to 1.0.90 snapshot
+- patches merged
+  - tigervnc10-compat.patch
+  - tigervnc10-rh510185.patch
+  - tigervnc10-rh524340.patch
+  - tigervnc10-rh516274.patch
+
+* Mon Oct 26 2009 Adam Tkac <atkac redhat com> 1.0.0-3
+- create Xvnc keyboard mapping before first keypress (#516274)
+
+* Thu Oct 08 2009 Adam Tkac <atkac redhat com> 1.0.0-2
+- update underlying X source to 1.6.4-0.3.fc11
+- remove bogus '-nohttpd' parameter from /etc/sysconfig/vncservers (#525629)
+- initscript LSB compliance fixes (#523974)
+- improve -LowColorSwitch documentation and handling (#510185)
+- honor dotWhenNoCursor option (and it's changes) every time (#524340)
+
+* Fri Aug 28 2009 Adam Tkac <atkac redhat com> 1.0.0-1
+- update to 1.0.0
+- tigervnc10-rh495457.patch merged to upstream
+
+* Mon Aug 24 2009 Karsten Hopp <karsten@redhat.com> 0.0.91-0.17
+- fix ifnarch s390x for server-module
+
+* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 0.0.91-0.16
+- rebuilt with new openssl
+
+* Tue Aug 04 2009 Adam Tkac <atkac redhat com> 0.0.91-0.15
+- make Xvnc compilable
+
+* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.91-0.14.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon Jul 13 2009 Adam Tkac <atkac redhat com> 0.0.91-0.13.1
+- don't write warning when initscript is called with condrestart param (#508367)
+
+* Tue Jun 23 2009 Adam Tkac <atkac redhat com> 0.0.91-0.13
+- temporary use F11 Xserver base to make Xvnc compilable
+- BuildRequires: libXi-devel
+- don't ship tigervnc-server-module on s390/s390x
+
+* Mon Jun 22 2009 Adam Tkac <atkac redhat com> 0.0.91-0.12
+- fix local rendering of cursor (#495457)
+
+* Thu Jun 18 2009 Adam Tkac <atkac redhat com> 0.0.91-0.11
+- update to 0.0.91 (1.0.0 RC1)
+- patches merged
+  - tigervnc10-rh499401.patch
+  - tigervnc10-rh497592.patch
+  - tigervnc10-rh501832.patch
+- after discusion in upstream drop tigervnc-bounds.patch
+- configure flags cleanup
+
+* Thu May 21 2009 Adam Tkac <atkac redhat com> 0.0.90-0.10
+- rebuild against 1.6.1.901 X server (#497835)
+- disable i18n, vncviewer is not UTF-8 compatible (#501832)
+
+* Mon May 18 2009 Adam Tkac <atkac redhat com> 0.0.90-0.9
+- fix vncpasswd crash on long passwords (#499401)
+- start session dbus daemon correctly (#497592)
+
+* Mon May 11 2009 Adam Tkac <atkac redhat com> 0.0.90-0.8.1
+- remove merged tigervnc-manminor.patch
+
+* Tue May 05 2009 Adam Tkac <atkac redhat com> 0.0.90-0.8
+- update to 0.0.90
+
+* Thu Apr 30 2009 Adam Tkac <atkac redhat com> 0.0.90-0.7.20090427svn3789
+- server package now requires xorg-x11-fonts-misc (#498184)
+
+* Mon Apr 27 2009 Adam Tkac <atkac redhat com> 0.0.90-0.6.20090427svn3789
+- update to r3789
+  - tigervnc-rh494801.patch merged
+- tigervnc-newfbsize.patch is no longer needed
+- fix problems when vncviewer and Xvnc run on different endianess (#496653)
+- UltraVNC and TightVNC clients work fine again (#496786)
+
+* Wed Apr 08 2009 Adam Tkac <atkac redhat com> 0.0.90-0.5.20090403svn3751
+- workaround broken fontpath handling in vncserver script (#494801)
+
+* Fri Apr 03 2009 Adam Tkac <atkac redhat com> 0.0.90-0.4.20090403svn3751
+- update to r3751
+- patches merged
+  - tigervnc-xclients.patch
+  - tigervnc-clipboard.patch
+  - tigervnc-rh212985.patch
+- basic RandR support in Xvnc (resize of the desktop)
+- use built-in libjpeg (SSE2/MMX accelerated encoding on x86 platform)
+- use Tight encoding by default
+- use TigerVNC icons
+
+* Tue Mar 03 2009 Adam Tkac <atkac redhat com> 0.0.90-0.3.20090303svn3631
+- update to r3631
+
+* Tue Mar 03 2009 Adam Tkac <atkac redhat com> 0.0.90-0.2.20090302svn3621
+- package review related fixes
+
+* Mon Mar 02 2009 Adam Tkac <atkac redhat com> 0.0.90-0.1.20090302svn3621
+- initial package, r3621