diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bcdfabc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/tigervnc-1.9.0.tar.gz
diff --git a/.tigervnc.metadata b/.tigervnc.metadata
new file mode 100644
index 0000000..60dae98
--- /dev/null
+++ b/.tigervnc.metadata
@@ -0,0 +1 @@
+c56656c596fb863bb2c4b67fb62b4165011d181f SOURCES/tigervnc-1.9.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..259d718
--- /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-covscan.patch b/SOURCES/tigervnc-covscan.patch
new file mode 100644
index 0000000..803f71a
--- /dev/null
+++ b/SOURCES/tigervnc-covscan.patch
@@ -0,0 +1,312 @@
+diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx
+index 51d77c76..9e277cbb 100644
+--- a/common/network/TcpSocket.cxx
++++ b/common/network/TcpSocket.cxx
+@@ -736,7 +736,7 @@ char* TcpFilter::patternToStr(const TcpFilter::Pattern& p) {
+                 buffer + 1, sizeof (buffer) - 2, NULL, 0, NI_NUMERICHOST);
+     strcat(buffer, "]");
+     addr.buf = rfb::strDup(buffer);
+-  } else if (p.address.u.sa.sa_family == AF_UNSPEC)
++  } else
+     addr.buf = rfb::strDup("");
+ 
+   char action;
+diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx
+index e1a31f78..d268202b 100644
+--- a/common/rfb/CSecurityTLS.cxx
++++ b/common/rfb/CSecurityTLS.cxx
+@@ -95,9 +95,9 @@ void CSecurityTLS::setDefaults()
+   delete [] homeDir;
+ 
+  if (!fileexists(caDefault.buf))
+-   X509CA.setDefaultStr(strdup(caDefault.buf));
++   X509CA.setDefaultStr(caDefault.buf);
+  if (!fileexists(crlDefault.buf))
+-   X509CRL.setDefaultStr(strdup(crlDefault.buf));
++   X509CRL.setDefaultStr(crlDefault.buf);
+ }
+ 
+ void CSecurityTLS::shutdown(bool needbye)
+diff --git a/common/rfb/SSecurityPlain.cxx b/common/rfb/SSecurityPlain.cxx
+index 6d48b65c..6f72432a 100644
+--- a/common/rfb/SSecurityPlain.cxx
++++ b/common/rfb/SSecurityPlain.cxx
+@@ -41,7 +41,7 @@ StringParameter PasswordValidator::plainUsers
+ 
+ bool PasswordValidator::validUser(const char* username)
+ {
+-  CharArray users(strDup(plainUsers.getValueStr())), user;
++  CharArray users(plainUsers.getValueStr()), user;
+ 
+   while (users.buf) {
+     strSplit(users.buf, ',', &user.buf, &users.buf);
+diff --git a/unix/tx/TXWindow.cxx b/unix/tx/TXWindow.cxx
+index a6819179..6129840e 100644
+--- a/unix/tx/TXWindow.cxx
++++ b/unix/tx/TXWindow.cxx
+@@ -24,6 +24,7 @@
+ #include <list>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <vector>
+ #include <rfb/util.h>
+ 
+ std::list<TXWindow*> windows;
+@@ -132,20 +133,20 @@ TXGlobalEventHandler* TXWindow::setGlobalEventHandler(TXGlobalEventHandler* h)
+ 
+ void TXWindow::getColours(Display* dpy, XColor* cols, int nCols)
+ {
+-  bool* got = new bool[nCols];
++  std::vector<bool> got;
++
+   bool failed = false;
+   int i;
+   for (i = 0; i < nCols; i++) {
+     if (XAllocColor(dpy, cmap, &cols[i])) {
+-      got[i] = true;
++      got.push_back(true);
+     } else {
+-      got[i] = false;
++      got.push_back(false);
+       failed = true;
+     }
+   }
+ 
+   if (!failed) {
+-    delete [] got;
+     return;
+   }
+ 
+@@ -168,12 +169,13 @@ void TXWindow::getColours(Display* dpy, XColor* cols, int nCols)
+   int cmapSize = DisplayCells(dpy,DefaultScreen(dpy));
+ 
+   XColor* cm = new XColor[cmapSize];
+-  bool* shared = new bool[cmapSize];
+-  bool* usedAsNearest = new bool[cmapSize];
++  std::vector<bool> shared;
++  std::vector<bool> usedAsNearest;
+ 
+   for (i = 0; i < cmapSize; i++) {
+     cm[i].pixel = i;
+-    shared[i] = usedAsNearest[i] = false;
++    shared.push_back(false);
++    usedAsNearest.push_back(false);
+   }
+ 
+   XQueryColors(dpy, cmap, cm, cmapSize);
+diff --git a/unix/vncpasswd/vncpasswd.cxx b/unix/vncpasswd/vncpasswd.cxx
+index 8bd4e48e..3055223e 100644
+--- a/unix/vncpasswd/vncpasswd.cxx
++++ b/unix/vncpasswd/vncpasswd.cxx
+@@ -134,7 +134,7 @@ int main(int argc, char** argv)
+     } else if (argv[i][0] == '-') {
+       usage();
+     } else if (!fname) {
+-      fname = argv[i];
++      fname = strDup(argv[i]);
+     } else {
+       usage();
+     }
+@@ -165,24 +165,37 @@ int main(int argc, char** argv)
+     FILE* fp = fopen(fname,"w");
+     if (!fp) {
+       fprintf(stderr,"Couldn't open %s for writing\n",fname);
++      delete [] fname;
++      delete obfuscated;
++      delete obfuscatedReadOnly;
+       exit(1);
+     }
+     chmod(fname, S_IRUSR|S_IWUSR);
+ 
+     if (fwrite(obfuscated->buf, obfuscated->length, 1, fp) != 1) {
+       fprintf(stderr,"Writing to %s failed\n",fname);
++      delete [] fname;
++      delete obfuscated;
++      delete obfuscatedReadOnly;
+       exit(1);
+     }
+ 
++    delete obfuscated;
++
+     if (obfuscatedReadOnly) {
+       if (fwrite(obfuscatedReadOnly->buf, obfuscatedReadOnly->length, 1, fp) != 1) {
+         fprintf(stderr,"Writing to %s failed\n",fname);
++        delete [] fname;
++        delete obfuscatedReadOnly;
+         exit(1);
+       }
+     }
+ 
+     fclose(fp);
+ 
++    delete [] fname;
++    delete obfuscatedReadOnly;
++
+     return 0;
+   }
+ }
+diff --git a/unix/xserver/hw/vnc/vncExtInit.cc b/unix/xserver/hw/vnc/vncExtInit.cc
+index d6f6b742..7ca71d94 100644
+--- a/unix/xserver/hw/vnc/vncExtInit.cc
++++ b/unix/xserver/hw/vnc/vncExtInit.cc
+@@ -184,7 +184,7 @@ void vncExtensionInit(void)
+             listeners.push_back(new network::TcpListener(vncInetdSock));
+             vlog.info("inetd wait");
+           }
+-        } else if (rfbunixpath.getValueStr()[0] != '\0') {
++        } else if (((const char*)rfbunixpath)[0] != '\0') {
+           char path[PATH_MAX];
+           int mode = (int)rfbunixmode;
+ 
+@@ -192,7 +192,7 @@ void vncExtensionInit(void)
+             strncpy(path, rfbunixpath, sizeof(path));
+           else
+             snprintf(path, sizeof(path), "%s.%d",
+-                     rfbunixpath.getValueStr(), scr);
++                     (const char*)rfbunixpath, scr);
+           path[sizeof(path)-1] = '\0';
+ 
+           listeners.push_back(new network::UnixListener(path, mode));
+diff --git a/unix/xserver/hw/vnc/vncSelection.c b/unix/xserver/hw/vnc/vncSelection.c
+index 51dfd9c6..4f3538d4 100644
+--- a/unix/xserver/hw/vnc/vncSelection.c
++++ b/unix/xserver/hw/vnc/vncSelection.c
+@@ -105,7 +105,7 @@ void vncClientCutText(const char* str, int len)
+       LOG_ERROR("Could not set PRIMARY selection");
+   }
+ 
+-  vncOwnSelection(xaCLIPBOARD);
++  rc = vncOwnSelection(xaCLIPBOARD);
+   if (rc != Success)
+     LOG_ERROR("Could not set CLIPBOARD selection");
+ }
+diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c
+index 3b4d2f31..c845ebc4 100644
+--- a/unix/xserver/hw/vnc/xvnc.c
++++ b/unix/xserver/hw/vnc/xvnc.c
+@@ -766,10 +766,13 @@ vfbUninstallColormap(ColormapPtr pmap)
+ 	    curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap,
+ 						   RT_COLORMAP);
+ #else
+-	    dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap,
+-				    RT_COLORMAP, serverClient, DixUnknownAccess);
++	    int rc =  dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap,
++					      RT_COLORMAP, serverClient, DixUnknownAccess);
++	    if (rc != Success)
++		ErrorF("Failed to uninstall color map\n");
++	    else
+ #endif
+-	    (*pmap->pScreen->InstallColormap)(curpmap);
++		(*pmap->pScreen->InstallColormap)(curpmap);
+ 	}
+     }
+ }
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index d070b648..1843485a 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -103,12 +103,12 @@ DesktopWindow::DesktopWindow(int w, int h, const char *name,
+   int geom_x = 0, geom_y = 0;
+   if (strcmp(geometry, "") != 0) {
+     int matched;
+-    matched = sscanf(geometry.getValueStr(), "+%d+%d", &geom_x, &geom_y);
++    matched = sscanf((const char*)geometry, "+%d+%d", &geom_x, &geom_y);
+     if (matched == 2) {
+       force_position(1);
+     } else {
+       int geom_w, geom_h;
+-      matched = sscanf(geometry.getValueStr(), "%dx%d+%d+%d", &geom_w, &geom_h, &geom_x, &geom_y);
++      matched = sscanf((const char*)geometry, "%dx%d+%d+%d", &geom_w, &geom_h, &geom_x, &geom_y);
+       switch (matched) {
+       case 4:
+         force_position(1);
+diff --git a/vncviewer/OptionsDialog.cxx b/vncviewer/OptionsDialog.cxx
+index b018c95b..62b5d9c5 100644
+--- a/vncviewer/OptionsDialog.cxx
++++ b/vncviewer/OptionsDialog.cxx
+@@ -282,7 +282,7 @@ void OptionsDialog::loadOptions(void)
+   /* Screen */
+   int width, height;
+ 
+-  if (sscanf(desktopSize.getValueStr(), "%dx%d", &width, &height) != 2) {
++  if (sscanf((const char*)desktopSize, "%dx%d", &width, &height) != 2) {
+     desktopSizeCheckbox->value(false);
+     desktopWidthInput->value("1024");
+     desktopHeightInput->value("768");
+diff --git a/vncviewer/ServerDialog.cxx b/vncviewer/ServerDialog.cxx
+index de67f87b..fec17896 100644
+--- a/vncviewer/ServerDialog.cxx
++++ b/vncviewer/ServerDialog.cxx
+@@ -150,7 +150,7 @@ void ServerDialog::handleLoad(Fl_Widget *widget, void *data)
+     return;
+   }
+   
+-  const char* filename = strdup(file_chooser->value());
++  const char* filename = file_chooser->value();
+ 
+   try {
+     dialog->serverName->value(loadViewerParameters(filename));
+@@ -165,8 +165,8 @@ void ServerDialog::handleLoad(Fl_Widget *widget, void *data)
+ void ServerDialog::handleSaveAs(Fl_Widget *widget, void *data)
+ { 
+   ServerDialog *dialog = (ServerDialog*)data;
+-  const char* servername = strdup(dialog->serverName->value());
+-  char* filename;
++  const char* servername = dialog->serverName->value();
++  const char* filename;
+ 
+   Fl_File_Chooser* file_chooser = new Fl_File_Chooser("", _("TigerVNC configuration (*.tigervnc)"), 
+ 						      2, _("Save the TigerVNC configuration to file"));
+@@ -187,7 +187,7 @@ void ServerDialog::handleSaveAs(Fl_Widget *widget, void *data)
+       return;
+     }
+     
+-    filename = strdup(file_chooser->value());
++    filename = file_chooser->value();
+     
+     FILE* f = fopen(filename, "r");
+     if (f) {
+@@ -235,7 +235,7 @@ void ServerDialog::handleCancel(Fl_Widget *widget, void *data)
+ void ServerDialog::handleConnect(Fl_Widget *widget, void *data)
+ {
+   ServerDialog *dialog = (ServerDialog*)data;
+-  const char* servername = strdup(dialog->serverName->value());
++  const char* servername = dialog->serverName->value();
+ 
+   dialog->hide();
+   
+diff --git a/vncviewer/parameters.cxx b/vncviewer/parameters.cxx
+index 51cce3d7..94cc1b05 100644
+--- a/vncviewer/parameters.cxx
++++ b/vncviewer/parameters.cxx
+@@ -499,6 +499,7 @@ void saveViewerParameters(const char *filename, const char *servername) {
+     }
+ 
+     snprintf(filepath, sizeof(filepath), "%sdefault.tigervnc", homeDir);
++    free(homeDir);
+   } else {
+     snprintf(filepath, sizeof(filepath), "%s", filename);
+   }
+@@ -555,6 +556,7 @@ char* loadViewerParameters(const char *filename) {
+                         "can't obtain home directory path."));
+ 
+     snprintf(filepath, sizeof(filepath), "%sdefault.tigervnc", homeDir);
++    free(homeDir);
+   } else {
+     snprintf(filepath, sizeof(filepath), "%s", filename);
+   }
+diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
+index f076565f..a9d4dfea 100644
+--- a/vncviewer/vncviewer.cxx
++++ b/vncviewer/vncviewer.cxx
+@@ -470,9 +470,9 @@ static int mktunnel()
+   int localPort = findFreeTcpPort();
+   int remotePort;
+ 
+-  gatewayHost = strDup(via.getValueStr());
+   if (interpretViaParam(remoteHost, &remotePort, localPort) != 0)
+     return 1;
++  gatewayHost = (const char*)via;
+   createTunnel(gatewayHost, remoteHost, remotePort, localPort);
+ 
+   return 0;
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-getmaster.patch b/SOURCES/tigervnc-getmaster.patch
new file mode 100644
index 0000000..23c3d58
--- /dev/null
+++ b/SOURCES/tigervnc-getmaster.patch
@@ -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)
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..8e4b9c9
--- /dev/null
+++ b/SOURCES/tigervnc-manpages.patch
@@ -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 "
diff --git a/SOURCES/tigervnc-passwd-crash-with-malloc-checks.patch b/SOURCES/tigervnc-passwd-crash-with-malloc-checks.patch
new file mode 100644
index 0000000..cf9abae
--- /dev/null
+++ b/SOURCES/tigervnc-passwd-crash-with-malloc-checks.patch
@@ -0,0 +1,13 @@
+diff --git a/common/rfb/util.h b/common/rfb/util.h
+index b678b89..9e59bd3 100644
+--- a/common/rfb/util.h
++++ b/common/rfb/util.h
+@@ -50,7 +50,7 @@ namespace rfb {
+     CharArray() : buf(0) {}
+     CharArray(char* str) : buf(str) {} // note: assumes ownership
+     CharArray(int len) {
+-      buf = new char[len];
++      buf = new char[len]();
+     }
+     ~CharArray() {
+       delete [] buf;
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-utilize-system-crypto-policies.patch b/SOURCES/tigervnc-utilize-system-crypto-policies.patch
new file mode 100644
index 0000000..dbf0dab
--- /dev/null
+++ b/SOURCES/tigervnc-utilize-system-crypto-policies.patch
@@ -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()
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..7098941
--- /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 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 ]; 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/vncserver.service b/SOURCES/vncserver.service
new file mode 100644
index 0000000..aed01e0
--- /dev/null
+++ b/SOURCES/vncserver.service
@@ -0,0 +1,59 @@
+# The vncserver service unit file
+#
+# Quick HowTo: As the User wanting to have this functionality
+#
+# 1. Copy this file to ~/.config/systemd/user/ (Optional, in case default settings are not suitable)
+#
+#   $ mkdir -p ~/.config/systemd/user
+#   $ cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/
+#
+# 2. Reload user's systemd
+#
+#    $ systemctl --user daemon-reload
+#
+# 3. Start the service immediately and enable it at boot
+#
+#    $ systemctl --user enable vncserver@:<display>.service --now
+#
+# 4. Enable lingering
+#
+#    $ loginctl enable-linger
+#
+# 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
+
+ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+ExecStart=/usr/bin/vncserver %i
+ExecStop=/usr/bin/vncserver -kill %i
+
+Restart=on-success
+RestartSec=15
+
+[Install]
+WantedBy=default.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..1abd3ce
--- /dev/null
+++ b/SPECS/tigervnc.spec
@@ -0,0 +1,989 @@
+Name:           tigervnc
+Version:        1.9.0
+Release:        9%{?dist}
+Summary:        A TigerVNC remote display system
+
+%global _hardened_build 1
+
+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-cursor.patch
+Patch6:         tigervnc-1.3.1-CVE-2014-8240.patch
+Patch7:         tigervnc-1.3.1-do-not-die-when-port-is-already-taken.patch
+Patch8:         tigervnc-let-user-know-about-not-using-view-only-password.patch
+Patch9:         tigervnc-working-tls-on-fips-systems.patch
+Patch11:        tigervnc-utilize-system-crypto-policies.patch
+Patch12:        tigervnc-passwd-crash-with-malloc-checks.patch
+
+Patch50:        tigervnc-covscan.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
+
+BuildRequires:  gcc-c++
+BuildRequires:  libX11-devel, automake, autoconf, libtool, gettext, gettext-autopoint
+BuildRequires:  libXext-devel, xorg-x11-server-source, libXi-devel
+BuildRequires:  xorg-x11-xtrans-devel, xorg-x11-util-macros, libXtst-devel
+BuildRequires:  libxkbfile-devel, openssl-devel, libpciaccess-devel
+BuildRequires:  mesa-libGL-devel, libXinerama-devel
+BuildRequires:  freetype-devel, libXdmcp-devel, libxshmfence-devel
+BuildRequires:  desktop-file-utils, java-devel, jpackage-utils
+BuildRequires:  libjpeg-turbo-devel, gnutls-devel, pam-devel
+BuildRequires:  libdrm-devel, libXt-devel, pixman-devel
+BuildRequires:  systemd, cmake
+%if 0%{?fedora} > 24 || 0%{?rhel} >= 7
+BuildRequires:  libXfont2-devel
+%else
+BuildRequires:  libXfont-devel
+%endif
+
+# 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
+
+%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): chkconfig
+Requires(preun):chkconfig
+
+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
+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.
+%endif
+
+%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
+%patch101 -p1 -b .rpath
+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).
+# Bug 1665876 - Tigervnc not starting on RHEL 7.6 server without -noxstartup option
+%patch4  -p1 -b .xstartup
+
+# Fixed viewer crash when cursor has not been set (bug #1051333).
+%patch5 -p1 -b .cursor
+
+# CVE-2014-8240 tigervnc: integer overflow flaw, leading to a heap-based
+# buffer overflow in screen size handling
+%patch6 -p1 -b .tigervnc-1.3.1-CVE-2014-8240
+
+# Bug 1322155 - Xorg socket conflict for VNC port 5901
+%patch7 -p1 -b .do-not-die-when-port-is-already-taken
+
+# Bug 1447555 - view-only accepts enter, unclear whether default password is generated or not
+%patch8 -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
+%patch9 -p1 -b .working-tls-on-fips-systems
+
+# Utilize system-wide crypto policies
+%patch11 -p1 -b .utilize-system-crypto-policies.patch
+
+%patch12 -p1 -b .passwd-crash-with-malloc-checks
+
+%patch50 -p1 -b .tigervnc-covscan
+
+%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 --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}%{_userunitdir}
+install -m644 %{SOURCE1} %{buildroot}%{_userunitdir}/vncserver@.service
+mkdir -p %{buildroot}%{_unitdir}
+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
+
+%ifarch s390 s390x
+rm -f %{buildroot}%{_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
+
+%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
+%{_userunitdir}/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
+* Fri Feb 08 2019 Jan Grulich <jgrulich@redhat.com> - 1.9.0-9
+- Make tigervnc systemd service a user service
+  Resolves: bz#1639846
+
+* Mon Jan 21 2019 Jan Grulich <jgrulich@redhat.com> - 1.9.0-8
+- Kill the session automatically only when Gnome is installed
+  Resolves: bz#1665876
+
+* Tue Nov 20 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-7
+- Improve coverity scan fixes
+  Resolves: bz#1602714
+
+  Inform whether view-only password is used or not
+  Resolves: bz#1639169
+
+  Backport fixes from RHEL 7
+  Resolves: bz#1651254
+
+* Tue Oct 09 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-6
+- Do not crash passwd when using malloc perturb checks
+  Resolves: bz#1637086
+
+* Mon Oct 08 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-5
+- Improve coverity scan fixes
+  Resolves: bz#1602714
+
+* Wed Oct 03 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-4
+- Improve coverity scan fixes
+  Resolves: bz#1602714
+
+* Wed Oct 03 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-3
+- Fix some coverity scan issues
+  Resolves: bz#1602714
+
+* Wed Aug 01 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-2
+- Remove dependency on initscripts
+
+* Tue Jul 17 2018 Jan Grulich <jgrulich@redhat.com> - 1.9.0-1
+- Update to 1.9.0 + sync with Fedora
+
+* Tue Jun 12 2018 Adam Jackson <ajax@redhat.com> - 1.8.0-10
+- Fix GLX initialization with Xorg 1.20
+
+* Tue May 29 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-9
+- Build against Xorg 1.20
+
+* Mon May 14 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-8
+- Drop BR: ImageMagick
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.8.0-6
+- Remove obsolete scriptlets
+
+* Fri Dec 15 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-5
+- Properly initialize tigervnc when started as systemd service
+
+* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Jul 13 2017 Petr Pisar <ppisar@redhat.com> - 1.8.0-2
+- perl dependency renamed to perl-interpreter
+  <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
+
+* Wed May 17 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-1
+- Update to 1.8.0
+
+* Thu Apr 20 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.90-1
+- Update to 1.7.90 (beta)
+
+* Thu Apr 06 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.1-4
+- Added systemd unit file for xvnc
+  Resolves: bz#891802
+
+* Tue Apr 04 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.1-3
+- Bug 1438704 - CVE-2017-7392 CVE-2017-7393 CVE-2017-7394
+                CVE-2017-7395 CVE-2017-7396 tigervnc: various flaws
+  + other upstream related fixes
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Thu Jan 19 2017 Jan Grulich <jgrulich@redhat.com> - 1.7.1-1
+- Update to 1.7.1
+
+* Mon Jan  9 2017 Hans de Goede <hdegoede@redhat.com> - 1.7.0-6
+- Fix -inetd no longer working (rhbz#1408724)
+
+* Wed Nov 30 2016 Jan Grulich <jgrulich@redhat.com> - 1.7.0-5
+- Fix broken vncserver.service file
+
+* Wed Nov 23 2016 Jan Grulich <jgrulich@redhat.com> - 1.7.0-4
+- Improve instructions in vncserver.service
+  Resolves: bz#1397207
+
+* Tue Oct  4 2016 Hans de Goede <hdegoede@redhat.com> - 1.7.0-3
+- Update tigervnc-1.7.0-xserver119-support.patch to also request write
+  notfication when necessary
+
+* Mon Oct  3 2016 Hans de Goede <hdegoede@redhat.com> - 1.7.0-2
+- Add patches for use with xserver-1.19
+- Rebuild against xserver-1.19
+- Cleanup specfile a bit
+
+* Mon Sep 12 2016 Jan Grulich <jgrulich@redhat.com> - 1.7.0-1
+- Update to 1.7.0
+
+* Mon Jul 18 2016 Jan Grulich <jgrulich@redhat.com> - 1.6.90-1
+- Update to 1.6.90 (1.7.0 beta)
+
+* Wed Jun 01 2016 Jan Grulich <jgrulich@redhat.com> - 1.6.0-6
+- Try to pickup upstream fix for compatibility with gtk vnc clients
+
+* Wed Jun 01 2016 Jan Grulich <jgrulich@redhat.com> - 1.6.0-5
+- Re-enable patch4 again, will need to find a way to make this work on both sides
+
+* Mon May 23 2016 Jan Grulich <jgrulich@redhat.com> - 1.6.0-4
+- Utilize system-wide crypto policies
+  Resolves: bz#1179345
+- Try to disable patch4 as it was previously written to support an
+  older version of a different client and breaks some other usage
+  Resolves: bz#1280440
+
+* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jan 13 2016 Jan Grulich <jgrulich@redhat.com> - 1.6.0-2
+- Update systemd service file
+  Resolves: bz#1211789
+
+* Mon Jan 04 2016 Jan Grulich <jgrulich@redhat.com> - 1.6.0-1
+- Update to 1.6.0
+
+* Tue Dec 01 2015 Jan Grulich <jgrulich@redhat.com> - 1.5.90-1
+- Update to 1.5.90 (1.6.0 beta)
+
+* Thu Nov 19 2015 Jan Grulich <jgrulich@redhat.com> - 1.5.0-4
+- rebuild against final xorg server 1.18 release (bug #1279146)
+
+* Tue Sep 22 2015 Kalev Lember <klember@redhat.com> - 1.5.0-3
+- xorg server 1.18 ABI rebuild
+
+* Fri Aug 21 2015 Jan Grulich <jgrulich@redhat.com> - 1.5.0-2
+- Do not fail with -inetd option
+
+* Wed Aug 19 2015 Jan Grulich <jgrulich@redhat.com> - 1.5.0-1
+- 1.5.0
+
+* Tue Aug 04 2015 Kevin Fenzi <kevin@scrye.com> - 1.4.3-12
+- Rebuild to fix broken deps and build against xorg 1.18 prerelease
+
+* Thu Jun 25 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-11
+- Rebuilt (bug #1235603).
+
+* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.3-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Mon May 04 2015 Kalev Lember <kalevlember@gmail.com> - 1.4.3-8
+- Rebuilt for nettle soname bump
+
+* Wed Apr 22 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-7
+- Removed incorrect parameters from vncviewer manpage (bug #1213199).
+
+* Tue Apr 21 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-6
+- Use full git hash for GitHub tarball release.
+
+* Fri Apr 10 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-5
+- Explicit version build dependency for fltk (bug #1208814).
+
+* Thu Apr  9 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-4
+- Drop upstream xorg-x11-server patch as it is now built (bug #1210407).
+
+* Thu Apr  9 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-3
+- Apply upstream patch to fix byte order (bug #1206060).
+
+* Fri Mar  6 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-2
+- Don't disable Xinerama extension (upstream #147).
+
+* Mon Mar  2 2015 Tim Waugh <twaugh@redhat.com> - 1.4.3-1
+- 1.4.3.
+
+* Tue Feb 24 2015 Tim Waugh <twaugh@redhat.com> - 1.4.2-3
+- Use calloc instead of xmalloc.
+- Removed unnecessary configure flags.
+
+* Wed Feb 18 2015 Rex Dieter <rdieter@fedoraproject.org> 1.4.2-2
+- rebuild (fltk)
+
+* Fri Feb 13 2015 Tim Waugh <twaugh@redhat.com> - 1.4.2-1
+- Rebased xserver116.patch against xorg-x11-server-1.17.1.
+- Allow build against xorg-x11-server-1.17.
+- 1.4.2.
+
+* Tue Sep  9 2014 Tim Waugh <twaugh@redhat.com> - 1.3.1-11
+- Added missing part of xserver114.patch (bug #1137023).
+
+* Wed Sep  3 2014 Tim Waugh <twaugh@redhat.com> - 1.3.1-10
+- Fix build against xorg-x11-server-1.16.0 (bug #1136532).
+
+* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.1-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Tue Jul 15 2014 Tim Waugh <twaugh@redhat.com> - 1.3.1-8
+- Input reset fixes from upstream (bug #1116956).
+- No longer need ppc64le patch as it's now in xorg-x11-server.
+- Rebased xserver114.patch again.
+
+* Fri Jun 20 2014 Hans de Goede <hdegoede@redhat.com> - 1.3.1-7
+- xserver 1.15.99.903 ABI rebuild
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.1-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 22 2014 Tim Waugh <twaugh@redhat.com> 1.3.1-5
+- Keep pointer in sync when using module (upstream bug #152).
+
+* Mon Apr 28 2014 Adam Jackson <ajax@redhat.com> 1.3.1-4
+- Add version interlocks for -server-module
+
+* Mon Apr 28 2014 Hans de Goede <hdegoede@redhat.com> - 1.3.1-3
+- xserver 1.15.99-20140428 git snapshot ABI rebuild
+
+* Mon Apr  7 2014 Tim Waugh <twaugh@redhat.com> 1.3.1-2
+- Allow build with dri3 and present extensions (bug #1063392).
+
+* Thu Mar 27 2014 Tim Waugh <twaugh@redhat.com> 1.3.1-1
+- 1.3.1 (bug #1078806).
+- Add ppc64le support (bug #1078495).
+
+* Wed Mar 19 2014 Tim Waugh <twaugh@redhat.com> 1.3.0-15
+- Disable dri3 to enable building (bug #1063392).
+- Fixed heap-based buffer overflow (CVE-2014-0011, bug #1050928).
+
+* Fri Feb 21 2014 Tim Waugh <twaugh@redhat.com> 1.3.0-14
+- Enabled hardened build (bug #955206).
+
+* Mon Feb 10 2014 Tim Waugh <twaugh@redhat.com> 1.3.0-13
+- Clearer xstartup file (bug #923655).
+
+* Tue Jan 14 2014 Tim Waugh <twaugh@redhat.com> 1.3.0-12
+- Fixed instructions in systemd unit file.
+
+* Fri Jan 10 2014 Tim Waugh <twaugh@redhat.com> 1.3.0-11
+- Fixed viewer crash when cursor has not been set (bug #1038701).
+
+* Thu Dec 12 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-10
+- Avoid invalid read when ZRLE connection closed (upstream bug #133).
+
+* Tue Dec  3 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-9
+- Fixed build failure with -Werror=format-security (bug #1037358).
+
+* Thu Nov 07 2013 Adam Jackson <ajax@redhat.com> 1.3.0-8
+- Rebuild against xserver 1.15RC1
+
+* Tue Sep 24 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-7
+- Removed incorrect patch (for unexpected key_is_down). Fixes stuck
+  keys bug (bug #989502).
+
+* Thu Sep 19 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-6
+- Fixed typo in 10-libvnc.conf (bug #1009111).
+
+* Wed Sep 18 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-5
+- Better fix for PIDFile problem (bug #983232).
+
+* Mon Aug  5 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-4
+- Fixed doc-related build failure (bug #992790).
+
+* Wed Jul 24 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-3
+- Avoid PIDFile problems in systemd unit file (bug #983232).
+- libvnc.so: don't use unexported key_is_down function.
+- Don't use shebang in vncserver script.
+
+* Fri Jul 12 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-2
+- Renumbered patches.
+- libvnc.so: don't use unexported GetMaster function (bug #744881 again).
+
+* Mon Jul  8 2013 Tim Waugh <twaugh@redhat.com> 1.3.0-1
+- 1.3.0.
+
+* 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