Giter VIP home page Giter VIP logo

turbovnc's Introduction

About TurboVNC

Virtual Network Computing (VNC) is a remote display system that allows you to view and interact with a desktop environment that is running on a remote computer. Using VNC, you can run graphical applications on a remote machine and send only the pixels generated by those applications to your local machine. VNC is platform-independent and supports a wide variety of operating systems and architectures as both servers and clients.

TurboVNC is a high-speed version of VNC derived from TightVNC. It contains a variant of Tight encoding that is tuned to maximize performance for image-intensive applications (such as VirtualGL, video applications, and image editors) while still providing excellent performance for other types of applications. TurboVNC, in combination with VirtualGL, provides a complete solution for remotely displaying 3D applications with interactive performance.

Refer to the TurboVNC User's Guide and man pages for a more thorough description of the components that make up TurboVNC.

More information about TurboVNC can be found at https://TurboVNC.org.

Funding

TurboVNC is an independent open source project, but we rely on patronage and funded development in order to maintain that independence. The easiest way to ensure that TurboVNC remains community-focused and free of any one organization's agenda is to sponsor our project through GitHub. All sponsorship money goes directly toward funding the labor necessary to maintain TurboVNC, support the user community, and implement bug fixes and strategically important features.

Sponsor TurboVNC

Legal

TurboVNC is

Copyright (C) 2009-2024 D. R. Commander
Copyright (C) 2021 Steffen Kieß
Copyright (C) 2011-2019 Brian P. Hinz
Copyright (C) 2010 University Corporation for Atmospheric Research
Copyright (C) 2004-2008 Sun Microsystems, Inc.
Copyright (C) 2004 Landmark Graphics Corporation

TurboVNC contains code from LibVNCServer, RealVNC, TigerVNC, and TightVNC, which are

Copyright (C) 2009-2021 Pierre Ossman for Cendio AB
Copyright (C) 2005-2011 Martin Koegler
Copyright (C) 2010-2011 Joel Martin
Copyright (C) 2011 Gernot Tenchio
Copyright (C) 2010 m-privacy GmbH
Copyright (C) 2010 TigerVNC Team
Copyright (C) 2004-2009 Red Hat, Inc.
Copyright (C) 2009 TightVNC Team
Copyright (C) 2000-2006 Constantin Kaplinsky
Copyright (C) 2006 OCCAM Financial Technology
Copyright (C) 2002-2005 RealVNC Ltd.
Copyright (C) 2004-2005 Cendio AB
Copyright (C) 2003 Sun Microsystems, Inc.
Copyright (C) 2000 Tridia Corp.
Copyright (C) 1999 AT&T Laboratories Cambridge.

This software is distributed under the GNU General Public Licence as published by the Free Software Foundation. See the file LICENSE.txt for the conditions under which this software is made available. TurboVNC also contains code from other sources. See the individual source files for details of the conditions under which they are made available.

turbovnc's People

Contributors

alexgoinsnv avatar anarsoul avatar anti-social avatar ayoder770 avatar bernhardu avatar bphinz avatar cendioossman avatar dcommander avatar erik-kz avatar ivellioscolin avatar jcristau avatar jeremyhu avatar kleinerm avatar lspintzyk avatar madler avatar mherrb avatar mwiede avatar norrisjeremy avatar nwnk avatar ofourdan avatar p12tic avatar peterh avatar rmorell avatar romangg avatar sjuxax avatar sthibaul avatar taaparthur avatar tpalli avatar whot avatar wiedemam-vu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

turbovnc's Issues

Consider support for Intel KVM AMT (porotocol version 4.0)

Trying to connect to a server that supports Intel KVM AMT I noticed that Turbo VNC does not work, it authenticates and then the connection is closed with a read error. The RealVNC client works. Apparently it has to do with RFB protocol version 4.0 which is not documented anywhere.

More from here:
http://sourceforge.net/p/turbovnc/bugs/45/

This seems to be a known issue
https://software.intel.com/en-us/forums/intel-business-client-software-development/topic/280246
related to the KVM's use of RFB 4.0, which seems to be a proprietary extension to the RFB protocol. If someone can find an actual specification for this extension, then it's probably something that would be easy to support, but even RealVNC's own specification (https://www.realvnc.com/docs/rfbproto.pdf)) only seems to address versions 3.8, and the community specification that TurboVNC and TigerVNC maintain (https://github.com/rfbproto/rfbproto) also only goes to 3.8. The thread on Intel's web site above seems to indicate that dropping down to 8-bit might allow it to work with an RFB 3.8 viewer. You can try that by passing "-colors 256" to the TurboVNC Java Viewer.

Accessing :0 like x11vnc

Is there an easy way for TurboVNC to serve and connect to the actual X11 desktop, like x11vnc?

Viewer: additional toolbar functionality (toggle view-only mode & clipboard transfer, zoom in/out/reset, display toolbar in full-screen mode)

Referring to the following issues from SourceForge:

https://sourceforge.net/p/turbovnc/feature-requests/27/
https://sourceforge.net/p/turbovnc/feature-requests/28/
https://sourceforge.net/p/turbovnc/feature-requests/29/
https://sourceforge.net/p/turbovnc/feature-requests/30/

There is some demand for controls similar to those of the TightVNC v2 viewer, including:

  • A toolbar button and hotkey for toggling view-only mode
  • A toolbar button and hotkey for toggling clipboard transfer
  • A toolbar button and hotkey for zooming in and out and resetting the zoom level (when non-automatic screen scaling is enabled)
  • The ability to display the toolbar in full-screen mode, preferably using a "hotspot" on the screen (a la TightVNC)

For the Windows viewer, I implemented the hotkeys for these features in the dev branch and temporarily added them to the system menu. I like the way that the view-only hotkey works, because toggling that feature gives clear visual feedback (parts of the toolbar grey out when view-only mode is activated.) Zooming in/out gives visual feedback via the window title, which shows the scaling factor. However, I'd like for the other hotkeys-- clipboard transfer and keyboard grabbing-- to have clear visual feedback as well, to avoid confusion if they are accidentally pressed by a user. It makes the most sense to have a toolbar button for each that will change when the feature is on or off, and that would de-clutter the system menu as well.

It would also be nice to be able to control these features visually while in full-screen mode. There are a couple of ways to accomplish that:

  1. A drop-down toolbar, activated via a hotspot (similar to that of the TightVNC v2 viewer.)
    This may be tricky to implement but would present the best interface, since (per above) it would provide clear visual feedback for all of the toggles, as well as a way of zooming in/out without using the keyboard. A possible alternative would be to simply allow the toolbar to be shown/hidden via CTRL-ALT-SHIFT-T while in full-screen mode, as it is in windowed mode (although there are likely to be some ramifications to that in terms of window sizing that would need to be sorted out. Overlaying it is definitely nicer.)
  2. Using the existing F8 menu in the Java viewer and implementing a similar menu in the Windows viewer (by making F8 pop up the existing system menu.) This is adequate but not as visually appealing as the drop-down toolbar, because the user would have to press F8 to see the state of things like view-only mode and clipboard transfer, and they'd have to leave the F8 menu popped up while zooming in and out.

Although these features were requested for the Windows viewer, I try as much as possible to keep the interface consistent between the two viewers, so it would be nice to implement them in both viewers. (2) would be the easiest to implement and would maintain GUI consistency between the viewers without requiring any significant new GUI code.

Xinerama/multi-screen support

It should be straightforward to add Xinerama support to TurboVNC, so that the server will treat a large desktop as multiple screens and properly position windows from multi-screen-aware X applications. Ideally, this feature would extend the normal methods of resizing the VNC desktop. For instance, a user could run

/opt/TurboVNC/bin/vncserver -geometry 1920x1200+0+0,1920x1200+1920+0

to create a dual-screen 3840x1200 desktop or

/opt/TurboVNC/bin/vncserver -geometry 3840x1200

to create a single-screen 3840x1200 desktop. Ideally, when automatic desktop resizing is enabled, the viewer would also communicate the client's multi-screen layout to the server, so the screen boundary would be the same between the viewer and the server. We don't support multi-screen on Linux clients, because Swing doesn't seem to work properly under X11 when the window spans more than one screen. However, multi-screen client-initiated desktop resizing should work properly for OS X and Windows clients.

Windows TurboVNC Viewer will not connect to localhost

If a custom port is four digits and starts with 59, then when attempting to connect, the 59 is dropped from the port number.

This does not occur with the java based viewer.

Occurs in v2.0.1 64 bit running on Windows 7.

Implement VeNCrypt in TurboVNC Server

Sponsorship has been secured for implementing VeNCrypt and TLS encryption on the server end, to be used with the built-in VeNCrypt/TLS functionality in the Java viewer.

Windows Phone Support

Rumor has it (http://www.businessinsider.com/microsoft-brings-win32-desktop-apps-to-windows-phones-continuum-2015-11?r=UK&IR=T, http://news.softpedia.com/news/microsoft-looking-to-bring-win32-apps-on-windows-10-mobile-phones-with-continuum-496403.shtml) that certain phones running Windows 10 will soon support running Win32 applications, so it might be possible to get the TurboVNC Viewer up and running simply by compiling it for ARM. It also might be possible to ship a universal binary that works both on Windows mobile and desktop devices.

How to build with newer glibc such as 2.22

On ArchLinux I've glibc 2.22 and when compiling from master branch it fails with

[100%] Linking C executable ../../../../bin/Xvnc
/usr/bin/ld: ../../../../lib/libvnc.a(rfbssl_openssl.c.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
/usr/lib/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/build.make:126: recipe for target 'bin/Xvnc' failed
make[2]: *** [bin/Xvnc] Error 1
CMakeFiles/Makefile2:2233: recipe for target 'unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/all' failed
make[1]: *** [unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

any idea from where GLIBC_2.2.5 comes from?

Here's full build log

-- The C compiler identification is GNU 5.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- CMAKE_BUILD_TYPE = Release
-- VERSION = 2.0.80, BUILD = 20151003
-- CMAKE_INSTALL_PREFIX = /usr
-- TVNC_BINDIR = /usr/bin
-- TVNC_DOCDIR = /usr/share/doc/turbovnc
-- 64-bit build (x86_64)
-- TJPEG_INCLUDE_DIR = /usr/include
-- Performing Test TURBOJPEG_WORKS
-- Performing Test TURBOJPEG_WORKS - Success
-- TJPEG_LIBRARY = /usr/lib/libturbojpeg.so
-- Found Java: /usr/lib/jvm/default/bin/java (found version "1.8.0.60")
-- Java compiler flags = -source 1.5 -target 1.5 -Xlint:all,-serial,-cast,-unchecked,-rawtypes
-- TVNC_JAVADIR = /usr/java
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- X11_X11_LIB = /usr/lib64/libX11.so
-- TVNC_MANDIR = /usr/man
-- Performing Test TURBOJPEG_JNI_WORKS
-- Performing Test TURBOJPEG_JNI_WORKS - Success
-- TJPEG_JNILIBRARY = /usr/lib/libturbojpeg.so
-- Found JNI: /usr/lib64/jvm/default/jre/lib/amd64/libjawt.so
-- Using /dev/urandom for random number generation
-- Performing Test FOUND_GLIBC
-- Performing Test FOUND_GLIBC - Success
-- Performing Test FOUND_BSD44SOCKETS
-- Performing Test FOUND_BSD44SOCKETS - Failed
-- Performing Test FOUND_SVR4
-- Performing Test FOUND_SVR4 - Failed
-- Looking for strerror
-- Looking for strerror - found
-- Looking for srand48
-- Looking for srand48 - found
-- Looking for lrand48
-- Looking for lrand48 - found
-- FONT_ENCODINGS_DIRECTORY = /usr/share/X11/fonts/encodings
-- Looking for cbrt in m
-- Looking for cbrt in m - found
-- Looking for include file dlfcn.h
-- Looking for include file dlfcn.h - found
-- Looking for include file ieeefp.h
-- Looking for include file ieeefp.h - not found
-- Looking for ffs
-- Looking for ffs - found
-- Looking for getdtablesize
-- Looking for getdtablesize - found
-- Looking for getifaddrs
-- Looking for getifaddrs - found
-- Looking for getpeereid
-- Looking for getpeereid - not found
-- Looking for getpeerucred
-- Looking for getpeerucred - not found
-- Looking for getzoneid
-- Looking for getzoneid - not found
-- Looking for shmctl64
-- Looking for shmctl64 - not found
-- Looking for strcasecmp
-- Looking for strcasecmp - found
-- Looking for strcasestr
-- Looking for strcasestr - found
-- Looking for strncasecmp
-- Looking for strncasecmp - found
-- Looking for strlcat
-- Looking for strlcat - not found
-- Looking for strlcpy
-- Looking for strlcpy - not found
-- Looking for strndup
-- Looking for strndup - found
-- Looking for asprintf
-- Looking for asprintf - found
-- Looking for vasprintf
-- Looking for vasprintf - found
-- XKB_BASE_DIRECTORY = /usr/share/X11/xkb
-- XKB_BIN_DIRECTORY =
-- XKB_DFLT_RULES = xorg
-- XKB_DFLT_MODEL = pc105
-- XKB_DFLT_LAYOUT = us
-- XKB_DFLT_VARIANT =
-- XKB_DFLT_OPTIONS =
-- Found OpenSSL: /usr/lib64/libssl.so;/usr/lib64/libcrypto.so (found version "1.0.2d")
-- Enabling TLS encryption using OpenSSL
-- Compiler flags = -march=native -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -g -fvar-tracking-assignments -Wall -Wstrict-aliasing=2  -O3 -DNDEBUG
-- Linker flags =  -Wl,-O1,--sort-common,--as-needed,-z,relro
-- TVNC_CONFDIR = /usr/etc
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/GitHub/turbovnc/build/src/build
Scanning dependencies of target favicon.ico
[  0%] Built target favicon.ico
Scanning dependencies of target index.vnc
[  0%] Built target index.vnc
Scanning dependencies of target java
[  0%] Generating com/turbovnc/vncviewer/turbovnc-128.png
[  0%] Generating com/jcraft/jsch/DH.class, com/jcraft/jsch/DHG1.class, com/jcraft/jsch/DHG14.class, com/jcraft/jsch/DHGEX.class, com/jcraft/jsch/JSch.class, com/jcraft/jsch/Session.class, com/jcraft/jsch/UserAuth.class, com/jcraft/jsch/UserAuthKeyboardInteractive.class, com/jcraft/jsch/UserAuthNone.class, com/jcraft/jsch/UserAuthPassword.class, com/jcraft/jsch/UserAuthPublicKey.class, com/jcraft/jsch/jce/AES128CBC.class, com/jcraft/jsch/jce/AES128CTR.class, com/jcraft/jsch/jce/AES192CBC.class, com/jcraft/jsch/jce/AES192CTR.class, com/jcraft/jsch/jce/AES256CBC.class, com/jcraft/jsch/jce/AES256CTR.class, com/jcraft/jsch/jce/ARCFOUR.class, com/jcraft/jsch/jce/ARCFOUR128.class, com/jcraft/jsch/jce/ARCFOUR256.class, com/jcraft/jsch/jce/BlowfishCBC.class, com/jcraft/jsch/jce/DH.class, com/jcraft/jsch/jce/HMAC.class, com/jcraft/jsch/jce/HMACMD5.class, com/jcraft/jsch/jce/HMACMD596.class, com/jcraft/jsch/jce/HMACSHA1.class, com/jcraft/jsch/jce/HMACSHA196.class, com/jcraft/jsch/jce/HMACSHA256.class, com/jcraft/jsch/jce/HMACSHA512.class, com/jcraft/jsch/jce/KeyPairGenDSA.class, com/jcraft/jsch/jce/KeyPairGenRSA.class, com/jcraft/jsch/jce/MD5.class, com/jcraft/jsch/jce/PBKDF.class, com/jcraft/jsch/jce/Random.class, com/jcraft/jsch/jce/SHA1.class, com/jcraft/jsch/jce/SHA256.class, com/jcraft/jsch/jce/SignatureDSA.class, com/jcraft/jsch/jce/SignatureRSA.class, com/jcraft/jsch/jce/TripleDESCBC.class, com/jcraft/jsch/jce/TripleDESCTR.class, com/jcraft/jsch/jcraft/Compression.class, com/jcraft/jsch/jcraft/HMAC.class, com/jcraft/jsch/jcraft/HMACMD5.class, com/jcraft/jsch/jcraft/HMACMD596.class, com/jcraft/jsch/jcraft/HMACSHA1.class, com/jcraft/jsch/jcraft/HMACSHA196.class
warning: [options] bootstrap class path not set in conjunction with -source 1.5
warning: [options] source value 1.5 is obsolete and will be removed in a future release
warning: [options] target value 1.5 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
/mnt/GitHub/turbovnc/java/com/turbovnc/rfb/TightDecoder.java:445: warning: [deprecation] setJPEGImage(byte[],int) in TJDecompressor has been deprecated
        tjd.setJPEGImage(netbuf, compressedLen);
           ^
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
5 warnings
[  0%] Generating com/turbovnc/vncviewer/toolbar.png
[  0%] Generating com/turbovnc/vncviewer/turbovnc.png
[  1%] Generating com/turbovnc/vncviewer/turbovnc-sm.png
[  1%] Generating VncViewer.jar
-- Signing /mnt/GitHub/turbovnc/build/src/build/java/VncViewer.jar using self-signed certificate
[  1%] Built target java
Scanning dependencies of target checkshmpixmaps
[  1%] Building C object unix/vncviewer/CMakeFiles/checkshmpixmaps.dir/checkshmpixmaps.c.o
[  1%] Linking C executable ../../bin/checkshmpixmaps
[  1%] Built target checkshmpixmaps
Scanning dependencies of target turbovnchelper
[  1%] Building C object unix/vncviewer/CMakeFiles/turbovnchelper.dir/turbovnchelper.c.o
[  1%] Linking C shared library ../../java/libturbovnchelper.so
[  1%] Built target turbovnchelper
Scanning dependencies of target zlib
[  1%] Building C object common/zlib/CMakeFiles/zlib.dir/adler32.c.o
[  1%] Building C object common/zlib/CMakeFiles/zlib.dir/compress.c.o
[  2%] Building C object common/zlib/CMakeFiles/zlib.dir/crc32.c.o
[  2%] Building C object common/zlib/CMakeFiles/zlib.dir/deflate.c.o
[  2%] Building C object common/zlib/CMakeFiles/zlib.dir/gzio.c.o
[  2%] Building C object common/zlib/CMakeFiles/zlib.dir/infback.c.o
[  2%] Building C object common/zlib/CMakeFiles/zlib.dir/inffast.c.o
[  3%] Building C object common/zlib/CMakeFiles/zlib.dir/inflate.c.o
[  3%] Building C object common/zlib/CMakeFiles/zlib.dir/inftrees.c.o
[  3%] Building C object common/zlib/CMakeFiles/zlib.dir/trees.c.o
[  3%] Building C object common/zlib/CMakeFiles/zlib.dir/uncompr.c.o
[  3%] Building C object common/zlib/CMakeFiles/zlib.dir/zutil.c.o
[  4%] Linking C static library ../../lib/libzlib.a
[  4%] Built target zlib
Scanning dependencies of target vncauth
[  4%] Building C object unix/libvncauth/CMakeFiles/vncauth.dir/vncauth.c.o
[  4%] Building C object unix/libvncauth/CMakeFiles/vncauth.dir/__/__/common/d3des/d3des.c.o
[  4%] Linking C static library ../../lib/libvncauth.a
[  4%] Built target vncauth
Scanning dependencies of target XNVCtrl
[  4%] Building C object unix/libXNVCtrl/CMakeFiles/XNVCtrl.dir/NVCtrl.c.o
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryVersion’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:174:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLIsNvScreen’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:206:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryTargetCount’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:237:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLSetTargetAttributeAndGetStatus’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:325:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, False)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryTargetAttribute’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:378:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryTargetAttribute64’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:429:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply(dpy, (xReply *)&rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryTargetStringAttribute’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:472:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, False)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLSetTargetStringAttribute’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:544:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, False)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryValidTargetAttributeValues32’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:590:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryValidTargetStringAttributeValues’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:641:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply(dpy, (xReply *)&rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryValidTargetAttributeValues64’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:678:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply(dpy, (xReply *)&rep,
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘QueryAttributePermissionsInternal’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:781:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryGvoColorConversion’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:911:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLQueryTargetBinaryData’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:1016:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, False)) {
     ^
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c: In function ‘XNVCTRLStringOperation’:
/mnt/GitHub/turbovnc/unix/libXNVCtrl/NVCtrl.c:1105:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (!_XReply (dpy, (xReply *) &rep, 0, False)) {
     ^
[  5%] Linking C static library ../../lib/libXNVCtrl.a
[  5%] Built target XNVCtrl
Scanning dependencies of target tvncconfig
[  5%] Building C object unix/tvncconfig/CMakeFiles/tvncconfig.dir/tvncconfig.c.o
/mnt/GitHub/turbovnc/unix/tvncconfig/tvncconfig.c: In function ‘handleEvent’:
/mnt/GitHub/turbovnc/unix/tvncconfig/tvncconfig.c:193:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
       XSendEvent(dpy, se.requestor, False, 0, (XEvent*)&se);
       ^
[  6%] Building C object unix/tvncconfig/CMakeFiles/tvncconfig.dir/vncExt.c.o
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtSetParam’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:76:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetParam’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:104:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetParamDesc’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:137:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtListParams’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:166:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetClientCutText’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:237:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtConnect’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:284:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetQueryConnect’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:306:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
[  6%] Linking C executable ../../bin/tvncconfig
[  6%] Built target tvncconfig
Scanning dependencies of target vncconnect
[  7%] Building C object unix/vncconnect/CMakeFiles/vncconnect.dir/vncconnect.c.o
[  7%] Building C object unix/vncconnect/CMakeFiles/vncconnect.dir/__/tvncconfig/vncExt.c.o
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtSetParam’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:76:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetParam’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:104:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetParamDesc’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:137:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtListParams’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:166:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetClientCutText’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:237:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtConnect’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:284:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c: In function ‘XVncExtGetQueryConnect’:
/mnt/GitHub/turbovnc/unix/tvncconfig/vncExt.c:306:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
   ^
[  7%] Linking C executable ../../bin/vncconnect
[  7%] Built target vncconnect
Scanning dependencies of target vncpasswd
[  7%] Building C object unix/vncpasswd/CMakeFiles/vncpasswd.dir/vncpasswd.c.o
[  7%] Linking C executable ../../bin/vncpasswd
[  7%] Built target vncpasswd
Scanning dependencies of target bzip2
[  8%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/blocksort.c.o
[  8%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/bzlib.c.o
[  8%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/compress.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c: In function ‘BZ2_compressBlock’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c:391:54: warning: ‘cost[5]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
                                                      ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c:256:11: note: ‘cost[5]’ was declared here
    UInt16 cost[BZ_N_GROUPS];
           ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c:401:25: warning: ‘cost[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             if (cost[t] < bc) { bc = cost[t]; bt = t; };
                         ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c:256:11: note: ‘cost[3]’ was declared here
    UInt16 cost[BZ_N_GROUPS];
           ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c:401:25: warning: ‘cost[2]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             if (cost[t] < bc) { bc = cost[t]; bt = t; };
                         ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/bzip2/compress.c:256:11: note: ‘cost[2]’ was declared here
    UInt16 cost[BZ_N_GROUPS];
           ^
[  8%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/crctable.c.o
[  8%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/decompress.c.o
[  9%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/huffman.c.o
[  9%] Building C object unix/Xvnc/lib/bzip2/CMakeFiles/bzip2.dir/randtable.c.o
[  9%] Linking C static library ../../../../lib/libbzip2.a
[  9%] Built target bzip2
Scanning dependencies of target freetype2
[  9%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftsystem.c.o
[  9%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftinit.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/base/ftinit.c:76:0:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:14:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:15:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:16:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:17:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:18:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:19:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:20:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:21:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:25:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:27:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:28:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:29:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
 ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/freetype2/../../extras/freetype2/include/config/ftmodule.h:30:1: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
 ^
[  9%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftdebug.c.o
[  9%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftbase.c.o
[ 10%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftbbox.c.o
[ 10%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftglyph.c.o
[ 10%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftbdf.c.o
[ 10%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftbitmap.c.o
[ 10%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftcid.c.o
[ 11%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftfstype.c.o
[ 11%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftgasp.c.o
[ 11%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftgxval.c.o
[ 11%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftlcdfil.c.o
[ 11%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftmm.c.o
[ 12%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftotval.c.o
[ 12%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftpatent.c.o
[ 12%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftpfr.c.o
[ 12%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftstroke.c.o
[ 12%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftsynth.c.o
[ 13%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/fttype1.c.o
[ 13%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftwinfnt.c.o
[ 13%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/base/ftxf86.c.o
[ 13%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/bdf/bdf.c.o
[ 13%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/cff/cff.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cff/cff.c:34:0:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cff/cf2font.c: In function ‘cf2_getGlyphOutline’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cff/cf2font.c:463:31: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
                               (CF2_OutlineCallbacks)&font->outline,
                               ^
[ 14%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/cid/type1cid.c.o
[ 14%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/pcf/pcf.c.o
[ 14%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/pfr/pfr.c.o
[ 14%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/sfnt/sfnt.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/sfnt/sfnt.c:25:0:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/sfnt/ttcmap.c: In function ‘tt_face_build_cmaps’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/sfnt/ttcmap.c:3522:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
             ft_validator_init( FT_VALIDATOR( &valid ), cmap, limit,
             ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/sfnt/ttcmap.c:3527:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
             if ( ft_setjmp( FT_VALIDATOR( &valid )->jump_buffer) == 0 )
             ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/sfnt/ttcmap.c:3530:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
               error = clazz->validate( cmap, FT_VALIDATOR( &valid ) );
               ^
[ 14%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/truetype/truetype.c.o
[ 15%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/type1/type1.c.o
[ 15%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/type42/type42.c.o
[ 15%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/winfonts/winfnt.c.o
[ 15%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/raster/raster.c.o
[ 15%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/smooth/smooth.c.o
[ 16%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/autofit/autofit.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/autofit/autofit.c:30:0:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/autofit/aflatin.c: In function ‘af_latin_metrics_init_widths’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/autofit/aflatin.c:155:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
       af_glyph_hints_rescale( hints, (AF_StyleMetrics)dummy );
       ^
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/autofit/autofit.c:34:0:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/autofit/afcjk.c: In function ‘af_cjk_metrics_init_widths’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/autofit/afcjk.c:161:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
       af_glyph_hints_rescale( hints, (AF_StyleMetrics)dummy );
       ^
[ 16%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/cache/ftcache.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcache.c:29:0:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c:261:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   };
   ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c: In function ‘FTC_ImageCache_Lookup’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c:321:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     FTC_GCACHE_LOOKUP_CMP( cache,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c: In function ‘FTC_ImageCache_LookupScaler’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c:389:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     FTC_GCACHE_LOOKUP_CMP( cache,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c: At top level:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c:448:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   };
   ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c: In function ‘FTC_SBitCache_Lookup’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c:508:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     FTC_GCACHE_LOOKUP_CMP( cache,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c: In function ‘FTC_SBitCache_LookupScaler’:
/mnt/GitHub/turbovnc/unix/Xvnc/extras/freetype2/src/cache/ftcbasic.c:578:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     FTC_GCACHE_LOOKUP_CMP( cache,
     ^
[ 16%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/gzip/ftgzip.c.o
[ 16%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/lzw/ftlzw.c.o
[ 16%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/bzip2/ftbzip2.c.o
[ 17%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/gxvalid/gxvalid.c.o
[ 17%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/otvalid/otvalid.c.o

[ 17%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/psaux/psaux.c.o
[ 17%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/pshinter/pshinter.c.o
[ 17%] Building C object unix/Xvnc/lib/freetype2/CMakeFiles/freetype2.dir/__/__/extras/freetype2/src/psnames/psnames.c.o
[ 18%] Linking C static library ../../../../lib/libfreetype2.a
[ 18%] Built target freetype2
Scanning dependencies of target Xau
[ 18%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuDispose.c.o
[ 18%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuFileName.c.o
[ 18%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuGetAddr.c.o
[ 18%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuGetBest.c.o
[ 19%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuLock.c.o
[ 19%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuRead.c.o
[ 19%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuUnlock.c.o
[ 19%] Building C object unix/Xvnc/lib/libXau/CMakeFiles/Xau.dir/AuWrite.c.o
[ 19%] Linking C static library ../../../../lib/libXau.a
[ 19%] Built target Xau
Scanning dependencies of target Xdmcp
[ 20%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Array.c.o
[ 20%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Fill.c.o
[ 20%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Flush.c.o
[ 20%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Key.c.o
[ 20%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Read.c.o
[ 21%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Unwrap.c.o
[ 21%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Wrap.c.o
[ 21%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Wraphelp.c.o
[ 21%] Building C object unix/Xvnc/lib/libXdmcp/CMakeFiles/Xdmcp.dir/Write.c.o
[ 21%] Linking C static library ../../../../lib/libXdmcp.a
[ 21%] Built target Xdmcp
Scanning dependencies of target util
[ 21%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/atom.c.o
[ 21%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/fontaccel.c.o
[ 21%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/fontnames.c.o
[ 22%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/fontutil.c.o
[ 22%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/fontxlfd.c.o
[ 22%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/format.c.o
[ 22%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/miscutil.c.o
[ 22%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/patcache.c.o
[ 23%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/private.c.o
[ 23%] Building C object unix/Xvnc/lib/libXfont/util/CMakeFiles/util.dir/utilbitmap.c.o
[ 23%] Built target util
Scanning dependencies of target FreeType
[ 23%] Building C object unix/Xvnc/lib/libXfont/FreeType/CMakeFiles/FreeType.dir/ftfuncs.c.o
[ 23%] Building C object unix/Xvnc/lib/libXfont/FreeType/CMakeFiles/FreeType.dir/ftenc.c.o
[ 23%] Building C object unix/Xvnc/lib/libXfont/FreeType/CMakeFiles/FreeType.dir/fttools.c.o
[ 23%] Building C object unix/Xvnc/lib/libXfont/FreeType/CMakeFiles/FreeType.dir/xttcap.c.o
[ 23%] Built target FreeType
Scanning dependencies of target bitmap
[ 24%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/bdfread.c.o
[ 24%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/bdfutils.c.o
[ 24%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/bitmap.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/bitmap/bitmap.c: In function ‘bitmapGetMetrics’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/bitmap/bitmap.c:150:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
   if (glyphs[i] != (xCharInfo *) & nonExistantChar)
   ^
[ 24%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/bitmapfunc.c.o
[ 24%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/bitmaputil.c.o
[ 25%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/bitscale.c.o
[ 25%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/fontink.c.o
[ 25%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/pcfread.c.o
[ 25%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/pcfwrite.c.o
[ 25%] Building C object unix/Xvnc/lib/libXfont/bitmap/CMakeFiles/bitmap.dir/snfread.c.o
[ 25%] Built target bitmap
Scanning dependencies of target builtins
[ 26%] Building C object unix/Xvnc/lib/libXfont/builtins/CMakeFiles/builtins.dir/dir.c.o
[ 26%] Building C object unix/Xvnc/lib/libXfont/builtins/CMakeFiles/builtins.dir/file.c.o
[ 26%] Building C object unix/Xvnc/lib/libXfont/builtins/CMakeFiles/builtins.dir/fonts.c.o
[ 26%] Building C object unix/Xvnc/lib/libXfont/builtins/CMakeFiles/builtins.dir/fpe.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/builtins/fpe.c: In function ‘BuiltinResetFPE’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/builtins/fpe.c:57:22: warning: variable ‘dir’ set but not used [-Wunused-but-set-variable]
     FontDirectoryPtr dir;
                      ^
[ 26%] Building C object unix/Xvnc/lib/libXfont/builtins/CMakeFiles/builtins.dir/render.c.o
[ 26%] Built target builtins
Scanning dependencies of target fc
[ 26%] Building C object unix/Xvnc/lib/libXfont/fc/CMakeFiles/fc.dir/fsconvert.c.o
[ 26%] Building C object unix/Xvnc/lib/libXfont/fc/CMakeFiles/fc.dir/fserve.c.o
[ 27%] Building C object unix/Xvnc/lib/libXfont/fc/CMakeFiles/fc.dir/fsio.c.o
[ 27%] Building C object unix/Xvnc/lib/libXfont/fc/CMakeFiles/fc.dir/fstrans.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/../../xtrans/transport.c:67:0,
                 from /mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/fstrans.c:28:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/../../xtrans/Xtranssock.c: In function ‘_FontTransSocketUNIXConnect’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/../../xtrans/Xtranssock.c:2003:37: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (connect (ciptr->fd, (struct sockaddr *) &sockname, namelen) < 0)
                                     ^
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/../../xtrans/transport.c:73:0,
                 from /mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/fstrans.c:28:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/fstrans.c: At top level:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fc/../../xtrans/Xtransutil.c:450:1: warning: ‘is_numeric’ defined but not used [-Wunused-function]
 is_numeric (const char *str)
 ^
[ 27%] Built target fc
Scanning dependencies of target fontfile
[ 28%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/bitsource.c.o
[ 28%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/bufio.c.o
[ 28%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/bunzip2.c.o
[ 28%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/catalogue.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fontfile/catalogue.c: In function ‘CatalogueOpenFont’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fontfile/catalogue.c:288:22: warning: variable ‘dir’ set but not used [-Wunused-but-set-variable]
     FontDirectoryPtr dir;
                      ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fontfile/catalogue.c: In function ‘CatalogueListFonts’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/libXfont/fontfile/catalogue.c:322:22: warning: variable ‘dir’ set but not used [-Wunused-but-set-variable]
     FontDirectoryPtr dir;
                      ^
[ 28%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/decompress.c.o
[ 29%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/defaults.c.o
[ 29%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/dirfile.c.o
[ 29%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/fileio.c.o
[ 29%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/filewr.c.o
[ 29%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/fontdir.c.o
[ 30%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/fontencc.c.o
[ 30%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/fontfile.c.o
[ 30%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/fontscale.c.o
[ 30%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/gunzip.c.o
[ 30%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/register.c.o
[ 31%] Building C object unix/Xvnc/lib/libXfont/fontfile/CMakeFiles/fontfile.dir/renderers.c.o
[ 31%] Built target fontfile
Scanning dependencies of target stubs
[ 31%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/cauthgen.c.o
[ 32%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/csignal.c.o
[ 32%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/delfntcid.c.o
[ 32%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/errorf.c.o
[ 32%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/fatalerror.c.o
[ 32%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/findoldfnt.c.o
[ 33%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/getcres.c.o
[ 33%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/getdefptsize.c.o
[ 33%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/getnewfntcid.c.o
[ 33%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/gettime.c.o
[ 33%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/initfshdl.c.o
[ 34%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/regfpefunc.c.o
[ 34%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/rmfshdl.c.o
[ 34%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/servclient.c.o
[ 34%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/setfntauth.c.o
[ 34%] Building C object unix/Xvnc/lib/libXfont/stubs/CMakeFiles/stubs.dir/stfntcfnt.c.o
[ 34%] Built target stubs
Scanning dependencies of target Xfont
[ 34%] Linking C static library ../../../../lib/libXfont.a
[ 34%] Built target Xfont
Scanning dependencies of target fontenc
[ 34%] Building C object unix/Xvnc/lib/libfontenc/CMakeFiles/fontenc.dir/encparse.c.o
[ 34%] Building C object unix/Xvnc/lib/libfontenc/CMakeFiles/fontenc.dir/fontenc.c.o
[ 34%] Linking C static library ../../../../lib/libfontenc.a
[ 34%] Built target fontenc
Scanning dependencies of target sha1
[ 34%] Building C object unix/Xvnc/lib/libsha1/CMakeFiles/sha1.dir/sha1.c.o
[ 34%] Linking C static library ../../../../lib/libsha1.a
[ 34%] Built target sha1
Scanning dependencies of target pixman
[ 34%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-access-accessors.c.o
[ 34%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-access.c.o
[ 34%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-arm.c.o
[ 34%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-bits-image.c.o
[ 34%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-combine-float.c.o
[ 35%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-combine32.c.o
[ 35%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-conical-gradient.c.o
[ 35%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-edge.c.o
[ 35%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-edge-accessors.c.o
[ 35%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-fast-path.c.o
[ 36%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-general.c.o
[ 36%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-gradient-walker.c.o
[ 36%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-image.c.o
[ 36%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-implementation.c.o
[ 36%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-linear-gradient.c.o
[ 37%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-matrix.c.o
[ 37%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-mips.c.o
[ 37%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-noop.c.o
[ 37%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-ppc.c.o
[ 37%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-radial-gradient.c.o
[ 38%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-region16.c.o
[ 38%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-region32.c.o
[ 38%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-solid-fill.c.o
[ 38%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-trap.c.o
[ 38%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-utils.c.o
[ 39%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman-x86.c.o
[ 39%] Building C object unix/Xvnc/lib/pixman/CMakeFiles/pixman.dir/pixman.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/lib/pixman/pixman.c:29:0:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/pixman/pixman.c: In function ‘optimize_operator’:
/mnt/GitHub/turbovnc/unix/Xvnc/lib/pixman/pixman-private.h:1019:22: warning: typedef ‘compile_time_assertion’ locally defined but not used [-Wunused-local-typedefs]
     do { typedef int compile_time_assertion [(x)?1:-1]; } while (0)
                      ^
/mnt/GitHub/turbovnc/unix/Xvnc/lib/pixman/pixman.c:144:5: note: in expansion of macro ‘COMPILE_TIME_ASSERT’
     COMPILE_TIME_ASSERT (FAST_PATH_IS_OPAQUE == (1 << OPAQUE_SHIFT));
     ^
[ 39%] Linking C static library ../../../../lib/libpixman.a
[ 39%] Built target pixman
Scanning dependencies of target xkb
[ 39%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/XKBAlloc.c.o
[ 39%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/XKBGAlloc.c.o
[ 39%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/XKBMAlloc.c.o
[ 39%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/XKBMisc.c.o
[ 40%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxBeep.c.o
[ 40%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxCtrls.c.o
[ 40%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxKillSrv.c.o
[ 40%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxLEDs.c.o
[ 40%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxList.c.o
[ 41%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxLoad.c.o
[ 41%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxPrivate.c.o
[ 41%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/ddxVT.c.o
[ 41%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/maprules.c.o
[ 41%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkb.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/xkb/xkb.c: In function ‘_XkbSetNamesCheck’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/xkb/xkb.c:3977:18: warning: variable ‘names’ set but not used [-Wunused-but-set-variable]
     XkbNamesRec *names;
                  ^
[ 42%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbAccessX.c.o
[ 42%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbActions.c.o
[ 42%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbEvents.c.o
[ 42%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbInit.c.o
[ 42%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbLEDs.c.o
[ 43%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbPrKeyEv.c.o
[ 43%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbSwap.c.o
[ 43%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbUtils.c.o
[ 43%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbfmisc.c.o
[ 43%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbout.c.o
[ 44%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkbtext.c.o
[ 44%] Building C object unix/Xvnc/programs/Xserver/xkb/CMakeFiles/xkb.dir/xkmread.c.o
[ 44%] Linking C static library ../../../../../lib/libxkb.a
[ 44%] Built target xkb
Scanning dependencies of target vnc
[ 44%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/auth.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/auth.c: In function ‘rfbClientConnFailed’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/auth.c:1536:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     CARD32 *buf32 = (CARD32 *)buf;
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/auth.c: In function ‘rfbClientAuthFailed’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/auth.c:1563:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     CARD32 *buf32=(CARD32 *)buf;
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/auth.c: In function ‘setMethods’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/auth.c:481:13: warning: ‘buf’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             FatalError("ERROR: Unknown auth method name '%s'\n", p);
             ^
[ 44%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/cmap.c.o
[ 44%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/corre.c.o
[ 45%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/cursor.c.o
[ 45%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/cutpaste.c.o
[ 45%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/dispcur.c.o
[ 45%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/draw.c.o
[ 45%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/flowcontrol.c.o
[ 46%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/hextile.c.o
[ 46%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/httpd.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/httpd.c: In function ‘httpCheckFds’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/httpd.c:166:40: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
                                (struct sockaddr *)&addr, &addrlen)) < 0) {
                                        ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/httpd.c: In function ‘httpProcessInput’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/httpd.c:305:35: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     getpeername(httpSock, (struct sockaddr *)&addr, &addrlen);
                                   ^
[ 46%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/init.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/init.c: In function ‘CheckDisplayNumber’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/init.c:908:42: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
                                          ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/init.c:909:41: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     struct sockaddr_in *addr4 = (struct sockaddr_in *)&addr;
                                         ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/init.c:917:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (bind(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in6)) < 0) {
                            ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/init.c:929:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (bind(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) < 0) {
                            ^
[ 46%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/input-xkb.c.o
[ 46%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/kbdptr.c.o
[ 47%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/randr.c.o
[ 47%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/rfbserver.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c: In function ‘rfbNewClient’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c:362:31: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     getpeername(sock, (struct sockaddr *)&addr, &addrlen);
                               ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c: In function ‘rfbProcessClientInitMessage’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c:659:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     rfbServerInitMsg *si = (rfbServerInitMsg *)buf;
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c: In function ‘rfbSendFramebufferUpdate’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c:1393:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     rfbFramebufferUpdateMsg *fu = (rfbFramebufferUpdateMsg *)updateBuf;
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c: In function ‘rfbSendSetColourMapEntries’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c:2136:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     rfbSetColourMapEntriesMsg *scme = (rfbSetColourMapEntriesMsg *)buf;
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/rfbserver.c:2137:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     CARD16 *rgb = (CARD16 *)(&buf[sz_rfbSetColourMapEntriesMsg]);
     ^
[ 47%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/rre.c.o
[ 47%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/sockets.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c: In function ‘rfbCheckFds’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:222:36: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
                            (struct sockaddr *)&addr, &addrlen)) < 0) {
                                    ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:270:30: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
                      (struct sockaddr *)&addr, &addrlen) < 0) {
                              ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:287:37: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
                             (struct sockaddr *)&addr, addrlen) < 0) {
                                     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c: In function ‘ListenOnTCPPort’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:622:42: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
                                          ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:623:41: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     struct sockaddr_in *addr4 = (struct sockaddr_in *)&addr;
                                         ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:652:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (bind(sock, (struct sockaddr *)&addr, addrlen) < 0) {
                            ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:661:29: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (getnameinfo((struct sockaddr *)&addr, addrlen, hostname,
                             ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c: In function ‘ListenOnUDPPort’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:704:42: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
                                          ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:705:41: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     struct sockaddr_in *addr4 = (struct sockaddr_in *)&addr;
                                         ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/sockets.c:732:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     if (bind(sock, (struct sockaddr *)&addr, addrlen) < 0) {
                            ^
[ 47%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/sprite.c.o
[ 48%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/stats.c.o
[ 48%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/tight.c.o
[ 48%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/translate.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/translate.c: In function ‘rfbSetClientColourMapBGR233’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/translate.c:327:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     rfbSetColourMapEntriesMsg *scme = (rfbSetColourMapEntriesMsg *)buf;
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/hw/vnc/translate.c:328:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     CARD16 *rgb = (CARD16 *)(&buf[sz_rfbSetColourMapEntriesMsg]);
     ^
[ 48%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/vncextinit.c.o
[ 48%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/zlib.c.o
[ 49%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/zrle.c.o
[ 49%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/zrleoutstream.c.o
[ 49%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/zrlepalettehelper.c.o
[ 49%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/authpam.c.o
[ 49%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/nvctrlext.c.o
[ 50%] Building C object unix/Xvnc/programs/Xserver/hw/vnc/CMakeFiles/vnc.dir/rfbssl_openssl.c.o
[ 50%] Linking C static library ../../../../../../lib/libvnc.a
[ 50%] Built target vnc
Scanning dependencies of target damageext
[ 50%] Building C object unix/Xvnc/programs/Xserver/damageext/CMakeFiles/damageext.dir/damageext.c.o
[ 50%] Linking C static library ../../../../../lib/libdamageext.a
[ 50%] Built target damageext
Scanning dependencies of target Xext-server
[ 51%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/bigreq.c.o
[ 51%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/dpms.c.o
[ 51%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/dpmsstubs.c.o
[ 51%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/geext.c.o
[ 51%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/saver.c.o
[ 52%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/security.c.o
[ 52%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/shape.c.o
[ 52%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/shm.c.o
[ 52%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/sleepuntil.c.o
[ 52%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/sync.c.o
[ 53%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xace.c.o
[ 53%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xcmisc.c.o
[ 53%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xf86bigfont.c.o
[ 53%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xres.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/include/dixstruct.h:28:0,
                 from /mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/Xext/xres.c:15:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/Xext/xres.c: In function ‘ProcXResQueryVersion’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/include/dix.h:65:8: warning: unused variable ‘stuff’ [-Wunused-variable]
  type *stuff = (type *)client->requestBuffer
        ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/Xext/xres.c:29:5: note: in expansion of macro ‘REQUEST’
     REQUEST(xXResQueryVersionReq);
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/Xext/xres.c: In function ‘SProcXResQueryVersion’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/include/dix.h:65:8: warning: unused variable ‘stuff’ [-Wunused-variable]
  type *stuff = (type *)client->requestBuffer
        ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/Xext/xres.c:314:5: note: in expansion of macro ‘REQUEST’
     REQUEST(xXResQueryVersionReq);
     ^
[ 53%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xtest.c.o
[ 54%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xvdisp.c.o
[ 54%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xvmain.c.o
[ 54%] Building C object unix/Xvnc/programs/Xserver/Xext/CMakeFiles/Xext-server.dir/xvmc.c.o
[ 54%] Linking C static library ../../../../../lib/libXext-server.a
[ 54%] Built target Xext-server
Scanning dependencies of target Xi
[ 55%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/allowev.c.o
[ 55%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/chgdctl.c.o
[ 55%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/chgfctl.c.o
[ 55%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/chgkbd.c.o
[ 55%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/chgkmap.c.o
[ 56%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/chgprop.c.o
[ 56%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/chgptr.c.o
[ 56%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/closedev.c.o
[ 56%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/devbell.c.o
[ 56%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/exevents.c.o
[ 57%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/extinit.c.o
[ 57%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getbmap.c.o
[ 57%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getdctl.c.o
[ 57%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getfctl.c.o
[ 57%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getfocus.c.o
[ 58%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getkmap.c.o
[ 58%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getmmap.c.o
[ 58%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getprop.c.o
[ 58%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getselev.c.o
[ 58%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/getvers.c.o
[ 59%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/grabdev.c.o
[ 59%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/grabdevb.c.o
[ 59%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/grabdevk.c.o
[ 59%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/gtmotion.c.o
[ 59%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/listdev.c.o
[ 60%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/opendev.c.o
[ 60%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/queryst.c.o
[ 60%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/selectev.c.o
[ 60%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/sendexev.c.o
[ 60%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/setbmap.c.o
[ 61%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/setdval.c.o
[ 61%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/setfocus.c.o
[ 61%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/setmmap.c.o
[ 61%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/setmode.c.o
[ 61%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/stubs.c.o
[ 62%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/ungrdev.c.o
[ 62%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/ungrdevb.c.o
[ 62%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/ungrdevk.c.o
[ 62%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiallowev.c.o
[ 62%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xichangecursor.c.o
[ 63%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xichangehierarchy.c.o
[ 63%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xigetclientpointer.c.o
[ 63%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xigrabdev.c.o
[ 63%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xipassivegrab.c.o
[ 63%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiproperty.c.o
[ 64%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiquerydevice.c.o
[ 64%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiquerypointer.c.o
[ 64%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiqueryversion.c.o
[ 64%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiselectev.c.o
[ 64%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xisetclientpointer.c.o
[ 65%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xisetdevfocus.c.o
[ 65%] Building C object unix/Xvnc/programs/Xserver/Xi/CMakeFiles/Xi.dir/xiwarppointer.c.o
[ 65%] Linking C static library ../../../../../lib/libXi.a
[ 65%] Built target Xi
Scanning dependencies of target composite
[ 66%] Building C object unix/Xvnc/programs/Xserver/composite/CMakeFiles/composite.dir/compalloc.c.o
[ 66%] Building C object unix/Xvnc/programs/Xserver/composite/CMakeFiles/composite.dir/compext.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/composite/compext.c: In function ‘ProcCompositeReleaseOverlayWindow’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/composite/compext.c:335:15: warning: variable ‘pScreen’ set but not used [-Wunused-but-set-variable]
     ScreenPtr pScreen;
               ^
[ 66%] Building C object unix/Xvnc/programs/Xserver/composite/CMakeFiles/composite.dir/compinit.c.o
[ 66%] Building C object unix/Xvnc/programs/Xserver/composite/CMakeFiles/composite.dir/compoverlay.c.o
[ 66%] Building C object unix/Xvnc/programs/Xserver/composite/CMakeFiles/composite.dir/compwindow.c.o
[ 67%] Linking C static library ../../../../../lib/libcomposite.a
[ 67%] Built target composite
Scanning dependencies of target main
[ 67%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/main.dir/main.c.o
[ 67%] Linking C static library ../../../../../lib/libmain.a
[ 67%] Built target main
Scanning dependencies of target dix
[ 68%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/atom.c.o
[ 68%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/colormap.c.o
[ 68%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/cursor.c.o
[ 68%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/devices.c.o
[ 68%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/dispatch.c.o
[ 69%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/dixfonts.c.o
In function ‘doImageText’,
    inlined from ‘ImageText’ at /mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/dix/dixfonts.c:1523:5:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/dix/dixfonts.c:1502:9: warning: attempt to free a non-heap object ‘local_closure’ [-Wfree-nonheap-object]
         free(c);
         ^
[ 69%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/dixutils.c.o
[ 69%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/enterleave.c.o
[ 69%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/eventconvert.c.o
[ 69%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/events.c.o
[ 70%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/extension.c.o
[ 70%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/ffs.c.o
[ 70%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/gc.c.o
[ 70%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/getevents.c.o
[ 70%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/globals.c.o
[ 71%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/glyphcurs.c.o
[ 71%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/grabs.c.o
[ 71%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/initatoms.c.o
[ 71%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/inpututils.c.o
[ 71%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/pixmap.c.o
[ 72%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/privates.c.o
[ 72%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/property.c.o
[ 72%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/ptrveloc.c.o
[ 72%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/region.c.o
[ 72%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/registry.c.o
[ 73%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/resource.c.o
[ 73%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/selection.c.o
[ 73%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/swaprep.c.o
[ 73%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/swapreq.c.o
[ 73%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/tables.c.o
[ 74%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/touch.c.o
[ 74%] Building C object unix/Xvnc/programs/Xserver/dix/CMakeFiles/dix.dir/window.c.o
[ 74%] Linking C static library ../../../../../lib/libdix.a
[ 74%] Built target dix
Scanning dependencies of target fb
[ 74%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fb24_32.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fb24_32.c: In function ‘fb24_32ReformatTile’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fb24_32.c:473:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     fbGetDrawable(&pOldTile->drawable,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fb24_32.c:473:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fb24_32.c:475:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     fbGetDrawable(&pNewTile->drawable,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fb24_32.c:475:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
[ 74%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fballpriv.c.o
[ 74%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbarc.c.o
[ 75%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbbits.c.o
[ 75%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbblt.c.o
[ 75%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbbltone.c.o
[ 75%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbcmap_mi.c.o
[ 75%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbcopy.c.o
[ 76%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbfill.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c: In function ‘fbFill’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c:69:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
             fbGetDrawable(&pStip->drawable, stip, stipStride, stipBpp, stipXoff,
             ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c:69:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c:95:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
             fbGetStipDrawable(&pStip->drawable, stip, stipStride, stipBpp,
             ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c:95:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c:116:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
         fbGetDrawable(&pTile->drawable, tile, tileStride, tileBpp, tileXoff,
         ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbfill.c:116:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
[ 76%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbfillrect.c.o
[ 76%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbfillsp.c.o
[ 76%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbgc.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbgc.c: In function ‘fbPadPixmap’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbgc.c:94:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     fbGetDrawable(&pPixmap->drawable, bits, stride, bpp, xOff, yOff);
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbgc.c:94:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbgc.c: In function ‘fbCanEvenStipple’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbgc.c:172:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     fbGetDrawable(&pStipple->drawable, bits, stride, stip_bpp, stipXoff,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbgc.c:172:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
[ 76%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbgetsp.c.o
[ 77%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbglyph.c.o
[ 77%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbimage.c.o
[ 77%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbline.c.o
[ 77%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fboverlay.c.o
[ 77%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbpict.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpict.c: In function ‘fbComposite’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpict.c:62:9: warning: ‘msk_xoff’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         pixman_image_composite(op, src, mask, dest,
         ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpict.c:62:9: warning: ‘msk_yoff’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpict.c:62:9: warning: ‘src_xoff’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpict.c:62:9: warning: ‘src_yoff’ may be used uninitialized in this function [-Wmaybe-uninitialized]
[ 78%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbpixmap.c.o
[ 78%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbpoint.c.o
[ 78%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbpush.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpush.c: In function ‘fbPushPixels’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpush.c:184:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     fbGetStipDrawable(&pBitmap->drawable, stip, stipStride, stipBpp, stipXoff,
     ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/fb/fbpush.c:184:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
[ 78%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbscreen.c.o
[ 78%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbseg.c.o
[ 79%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbsetsp.c.o
[ 79%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbsolid.c.o
[ 79%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbstipple.c.o
[ 79%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbtile.c.o
[ 79%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbtrap.c.o
[ 80%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbutil.c.o
[ 80%] Building C object unix/Xvnc/programs/Xserver/fb/CMakeFiles/fb.dir/fbwindow.c.o
[ 80%] Linking C static library ../../../../../lib/libfb.a
[ 80%] Built target fb
Scanning dependencies of target mi
[ 80%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miarc.c.o
[ 81%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mibitblt.c.o
[ 81%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/micmap.c.o
[ 81%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/micopy.c.o
[ 81%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/micursor.c.o
[ 81%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/midash.c.o
[ 82%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/midispcur.c.o
[ 82%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mieq.c.o
[ 82%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miexpose.c.o
[ 82%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mifillarc.c.o
[ 82%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mifillrct.c.o
[ 83%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mifpolycon.c.o
[ 83%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/migc.c.o
[ 83%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miglblt.c.o
[ 83%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miinitext.c.o
[ 83%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mioverlay.c.o
[ 84%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipointer.c.o
[ 84%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipoly.c.o
[ 84%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolycon.c.o
[ 84%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolygen.c.o
[ 84%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolypnt.c.o
[ 85%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolyrect.c.o
[ 85%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolyseg.c.o
[ 85%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolytext.c.o
[ 85%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipolyutil.c.o
[ 85%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mipushpxl.c.o
[ 86%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miscrinit.c.o
[ 86%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mispans.c.o
[ 86%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/misprite.c.o
[ 86%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mivaltree.c.o
[ 86%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miwideline.c.o
[ 87%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/miwindow.c.o
[ 87%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mizerarc.c.o
[ 87%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mizerclip.c.o
[ 87%] Building C object unix/Xvnc/programs/Xserver/mi/CMakeFiles/mi.dir/mizerline.c.o
[ 87%] Linking C static library ../../../../../lib/libmi.a
[ 87%] Built target mi
Scanning dependencies of target damage
[ 87%] Building C object unix/Xvnc/programs/Xserver/miext/damage/CMakeFiles/damage.dir/damage.c.o
[ 87%] Linking C static library ../../../../../../lib/libdamage.a
[ 87%] Built target damage
Scanning dependencies of target sync
[ 88%] Building C object unix/Xvnc/programs/Xserver/miext/sync/CMakeFiles/sync.dir/misync.c.o
[ 88%] Linking C static library ../../../../../../lib/libsync.a
[ 88%] Built target sync
Scanning dependencies of target os
[ 89%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/WaitFor.c.o
[ 89%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/access.c.o
[ 89%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/auth.c.o
[ 89%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/backtrace.c.o
[ 89%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/client.c.o
[ 90%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/connection.c.o
[ 90%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/io.c.o
[ 90%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/log.c.o
[ 90%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/mitauth.c.o
[ 90%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/oscolor.c.o
[ 91%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/osinit.c.o
[ 91%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/rpcauth.c.o
[ 91%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/utils.c.o
[ 91%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/xdmauth.c.o
[ 91%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/xdmcp.c.o
[ 92%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/xprintf.c.o
[ 92%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/xsha1.c.o
[ 92%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/xstrans.c.o
In file included from /mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/os/../../../lib/xtrans/transport.c:67:0,
                 from /mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/os/xstrans.c:15:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/os/../../../lib/xtrans/Xtranssock.c:2449:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
  unix_nolisten,
  ^
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/os/../../../lib/xtrans/Xtranssock.c:2449:2: note: (near initialization for ‘_XSERVTransSocketUNIXFuncs.nolisten’)
[ 92%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/strlcat.c.o
[ 92%] Building C object unix/Xvnc/programs/Xserver/os/CMakeFiles/os.dir/strlcpy.c.o
[ 93%] Linking C static library ../../../../../lib/libos.a
[ 93%] Built target os
Scanning dependencies of target randr
[ 93%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/randr.c.o
[ 93%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrcrtc.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/randr/rrcrtc.c: In function ‘ProcRRSetCrtcConfig’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/randr/rrcrtc.c:828:15: warning: variable ‘configTime’ set but not used [-Wunused-but-set-variable]
     TimeStamp configTime;
               ^
[ 94%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrdispatch.c.o
[ 94%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrinfo.c.o
[ 94%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrmode.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/randr/rrmode.c: In function ‘ProcRRCreateMode’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/randr/rrmode.c:288:18: warning: variable ‘pScrPriv’ set but not used [-Wunused-but-set-variable]
     rrScrPrivPtr pScrPriv;
                  ^
[ 94%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rroutput.c.o
[ 94%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrpointer.c.o
[ 95%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrproperty.c.o
[ 95%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrscreen.c.o
[ 95%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrsdispatch.c.o
[ 95%] Building C object unix/Xvnc/programs/Xserver/randr/CMakeFiles/randr.dir/rrtransform.c.o
[ 95%] Linking C static library ../../../../../lib/librandr.a
[ 95%] Built target randr
Scanning dependencies of target render
[ 96%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/animcur.c.o
[ 96%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/filter.c.o
[ 96%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/glyph.c.o
[ 96%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/matrix.c.o
[ 96%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/miindex.c.o
[ 97%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/mipict.c.o
[ 97%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/mirect.c.o
[ 97%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/mitrap.c.o
[ 97%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/mitri.c.o
[ 97%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/picture.c.o
[ 98%] Building C object unix/Xvnc/programs/Xserver/render/CMakeFiles/render.dir/render.c.o
[ 98%] Linking C static library ../../../../../lib/librender.a
[ 98%] Built target render
Scanning dependencies of target xfixes
[ 99%] Building C object unix/Xvnc/programs/Xserver/xfixes/CMakeFiles/xfixes.dir/cursor.c.o
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/xfixes/cursor.c: In function ‘CursorCloseScreen’:
/mnt/GitHub/turbovnc/unix/Xvnc/programs/Xserver/xfixes/cursor.c:199:34: warning: variable ‘constrain_proc’ set but not used [-Wunused-but-set-variable]
     ConstrainCursorHarderProcPtr constrain_proc;
                                  ^
[ 99%] Building C object unix/Xvnc/programs/Xserver/xfixes/CMakeFiles/xfixes.dir/region.c.o
[ 99%] Building C object unix/Xvnc/programs/Xserver/xfixes/CMakeFiles/xfixes.dir/saveset.c.o
[ 99%] Building C object unix/Xvnc/programs/Xserver/xfixes/CMakeFiles/xfixes.dir/select.c.o
[ 99%] Building C object unix/Xvnc/programs/Xserver/xfixes/CMakeFiles/xfixes.dir/xfixes.c.o
[100%] Linking C static library ../../../../../lib/libxfixes.a
[100%] Built target xfixes
Scanning dependencies of target Xvnc
[100%] Building C object unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/dummy.c.o
[100%] Linking C executable ../../../../bin/Xvnc
/usr/bin/ld: ../../../../lib/libvnc.a(rfbssl_openssl.c.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
/usr/lib/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/build.make:126: recipe for target 'bin/Xvnc' failed
make[2]: *** [bin/Xvnc] Error 1
CMakeFiles/Makefile2:2233: recipe for target 'unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/all' failed
make[1]: *** [unix/Xvnc/programs/Xserver/CMakeFiles/Xvnc.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Wayland Support

My (admittedly limited) understanding of Wayland is that it is essentially frame-based and image-based from the get-go. All of the drawing and rendering takes place within the application, and the application then tells the Wayland compositor, "Here's a frame. Display it in this window." This is a very natural fit for VNC, since a VNC server could simply be a Wayland compositor that processes each frame from an application and converts it into a single RFB framebuffer update. It would greatly simplify the VNC server, since it would no longer be necessary for it to hook into low-level drawing primitives or to convert the inherently single-buffered, fine-grained drawing approach used by X11 into a more "frame-like", coarse-grained, image-based approach suitable for remote interaction.

At first glance, it also seems like this could provide a straightforward way of supporting:

  • Seamless windows. Since each Wayland application is generating frames, not primitives, each window essentially acts-- from the point of view of the compositor-- like a video stream, so it would be straightforward to have a server-side compositor that translates the windows into separate RFB streams and a client application that translates them back into windows.
  • Remote 3D. The details are still sketchy, but my understanding is that Wayland applications will be required to handle GPU access on their own, which may eliminate the need for VirtualGL (except for supporting legacy X11 applications.) One would assume that a typical Wayland OpenGL application would already be doing off-screen rendering (via EGL) and that calling eglSwapBuffers() would move the off-screen image into the compositor, but I'm just guessing at this point. It may still be necessary to have a VirtualGL-like solution that straightforwardly marshals EGL commands to the Wayland compositor that is attached to the GPU rather than the hypothetical TurboVNC Wayland compositor.
  • Frame-based video codecs like H.264. Since Wayland actually does have a concept of frames, it would be natural to design a Wayland VNC server such that particular windows (3D windows, for instance) are transmitted as H.264 streams, thus eliminating all of the problems inherent with using H.264 in the existing VNC architecture.

Use Arithmetic or Progressive Huffman Encoding to Improve JPEG Compression on Low-Bandwidth Networks

JPEGs using arithmetic entropy coding are part of the official spec but are not widely used. Using arithmetic coding decreases compression/decompression performance significantly (2-3x), but modern hardware has become fast enough that it should still be possible to maintain 25-30 fps on a 2-megapixel image stream without encountering a CPU bottleneck. Furthermore, arithmetic coding decreases the size of the JPEG images by 15-20%, which would correspond to a similar decrease in the network footprint of the image stream for applications that produce a high number of unique colors. That could increase the frame rate significantly on low-bandwidth networks, or it could allow users to increase the quality of the JPEG images without compromising frame rate. The arithmetic codec in libjpeg-turbo isn't very highly optimized, so there is probably a lot of potential for accelerating it by using similar techniques to the ones we used on the Huffman codec.

The TurboVNC decoder doesn't really care what type of JPEG image it receives, as long as it's decompressible by libjpeg-turbo, so we could implement this feature in several different ways:

  1. Arithmetic coding could be enabled in the TurboVNC Server by requesting one of the currently unused Tight compression levels (Levels 3 and 8, for instance.)
  2. Arithmetic coding could be enabled by using the existing (and not-widely-advertised) Compression Level 9, which is meant to be the most extreme level of compression. This makes a certain amount of sense, becuase CL 9 imparts a similar sort of trade-off (10-20% increase in compression ratio, 2x decrease in performance) for non-JPEG subrectangles. CL 9 is currently not useful for 3D applications, but adding arithmetic coding support to it would change that.
  3. Arithmetic coding could be enabled using an as-yet-to-be-defined RFB pseudo-encoding.

Option 1 is the least disruptive, since it would preserve the existing behavior of all of the other compression levels. Option 3 is the most flexible, since it could be enabled/disabled independently of the other options. Option 2 probably makes the most sense from a usability point of view, and if CL 9 could be altered such that it is useful for 3D applications, then we could expose that option in the GUI (currently CL 9 can only be selected from the TurboVNC Viewer command line.)

"Authentication is required to access the PC/SC daemon" dialog when launching GNOME 3 using TurboVNC

When launching GNOME 3 (including Classic) in TurboVNC on Fedora 24, a dialog pops up ("Authentication is required to access the PC/SC daemon"), and it cannot be dismissed unless your user account has sudo privileges. This seems to be a problem endemic to all X proxies running on recent Linux distros that use GNOME 3 (yet another reason to use MATE instead, at least with TurboVNC.)

This is very similar to #47, and the workaround is similar as well. Create a new file under /etc/polkit.1/rules.d (I call mine "03-allow-pcscd.rules"), then give it the following contents:

polkit.addRule(function(action, subject) {
    if (action.id == "org.debian.pcsc-lite.access_pcsc" &&
        subject.isInGroup("{group}")) {
            return polkit.Result.YES;
    }
});

where {group} is a group that you designate (I personally use the vglusers group, but it can be any group containing the users to whom you wish to grant access to the PC/SC daemon.)

Implement Tight + LZ4 encoding type

This would be a new RFB encoding that would use LZ4 instead of zlib. LZ4 can compress much much faster but not generally as well as zlib level 1 (https://code.google.com/p/lz4/), so the idea here is to replace the Lossless Tight mode with something that offers at least some compression but still uses very little CPU time.

Pros:

  • Should provide compression somewhere between Lossless Tight and Lossless Tight + Zlib, but with very minimal CPU usage (probably a bit more than Lossless Tight, but not much more.)
  • Does not require the use of the unofficial rfbTightNoZlib extension

Cons:

  • Not sure if anyone cares about Lossless Tight anymore. It was implemented originally in the SPARC days as a way of supporting installations that had slow server CPUs but fast networks.

Tasks:

  • Low-level experiments with the TurboVNC Benchmark Tools to ascertain how useful this new encoding would be for various types of app workloads, as well as to compare it to Lossless Tight (+ Zlib) and to dial in the appropriate palette threshold and other parameters.
  • Registering the encoding as part of the official RFB spec
  • Implementing it in the server and viewers (will require lz4-java for the Java viewer.)

Implement VeNCrypt in Windows Viewer

VeNCrypt has been implemented in the TurboVNC 2.1 Server. Since the Java viewer already has full VeNCrypt support (including GnuTLS encryption), implementing VeNCrypt in the native Windows viewer is not a high strategic priority for the project, but if anyone wants to fund the development of this feature, it is certainly doable.

UltraVNC Repeater in TurboVNC

hi, plz tell me how to use repeater (ultravnc) in turboVNC

Features/fixes introduced in 2.0 beta1:
[12]
vncconnect can now be used to connect a TurboVNC Server session to an
instance of the UltraVNC Repeater in Mode II.

VeNCrypt handshake freezes when connecting to TurboVNC Server running on Solaris 11

For reasons unexplained (and believe me, I spent some time digging into it), the two version bytes that are sent in rfbVeNCryptAuthenticate() are never received by the viewer when connecting to the TurboVNC Server running on Solaris 11. Works fine if VeNCrypt is disabled (for instance, by running the viewer with -SecurityTypes vncauth. Works fine if the server is running on Solaris 10. Fails with both the TigerVNC and TurboVNC Viewers. The TigerVNC Server on Solaris 11 is quite old (v1.1.0) and thus doesn't support VeNCrypt, so there is no easy way to test whether newer TigerVNC Server revisions also suffer from this. I strongly suspect an O/S issue of some sort-- perhaps even a VirtualBox-specific thing.

Things I tried:

  • Changing the build system so that it doesn't do anything SunOS-specific (such as define SVR4 or include the secure RPC stuff under unix/Xvnc/programs/Xserver/os/)
  • Flushing the socket (with fsync()) immediately after the two bytes are written.
  • Writing junk data to attempt to goad the TCP layer into flushing its buffers.

Java viewer to slow to connect

When I connect using the Java viewer, it takes about 14 seconds from authenticating to actually seeing the VNC window. It is pretty consistently 14 seconds. Using the Windows Viewer, it is almost instant. I see this behavior using PAM and VNC authentication.

Why is the Java viewer slow to connect? Is there any sort of setting I can change to speed this up?

Cannot disable new 'Reconnect' behaviour

Hello,

In 2.0.80, we see the new behaviour described here:

turbovnc/ChangeLog.txt

Lines 335 to 337 in b248f76

[17]
The Java TurboVNC Viewer will now offer an option to reconnect if the
connection fails for any reason.

Unfortunately, we have not found a way to prevent the client asking to reconnect. We don't want this behaviour as its perfectly acceptable in our situation for the session to be terminated from the external session manager.

We looked at the nonewconn option, but this doesnt seem to affect the behaviour of the Reconnect dialog, plus we dont want to disable the 'Close Connection' entry in the F8 menu.

Scrollbars sometimes unnecessarily appear in the Java viewer when using manual desktop sizing

If the remote desktop width is greater than the local desktop width but the remote desktop height is less than the local desktop height, or if the remote desktop height is greater than the local desktop height but the remote desktop width is less than the local desktop width, then the viewer will display two scrollbars, when actually only one is needed.

I tried to accommodate this by adjusting up the window size to accommodate the necessary scrollbar (thus eliminating the unnecessary one), if adjusting the window size wouldn't cause it to exceed the local desktop size. Unfortunately, however, this introduced other problems. Further study is needed.

Add the ability to dynamically switch between embedded & windowed mode in the TurboVNC Viewer applet

Add the ability to undock the Java TurboVNC Viewer from the browser when running in embedded applet mode. This will cause the viewer to switch to windowed mode, and subsequently closing the window will redock the viewer into the browser.

We might be able to use the draggable applet feature in Java 6 and later to help achieve this:

http://www.oracle.com/technetwork/java/javase/index-135519.html#EXPERIMENTAL_FUNCTIONALITY
http://docs.oracle.com/javase/tutorial/deployment/applet/draggableApplet.html
http://docs.oracle.com/javase/tutorial/deployment/applet/examples/dist/applet_Draggable/AppletPage.html

Possible pitfalls: dragging the applet might not be the best approach, given that normal mouse drag commands that are meant to be sent to the server might be misinterpreted. But it should be possible to undock the applet using some other means, such as a toolbar button.

Feature has secured a sponsor and is currently slated for TurboVNC 2.1.

Wacom support on OS X

Budget unfortunately ran out on the Wacom project, so there is not yet support in the OS X viewer. Please consider sponsoring this feature if your organization could benefit from it.

Linux Mint 17.2 MATE 1.10 TurboVNC server stops working after screen saver kicks in

Using Linux Mint 17.2 with MATE 1.10 on a server.
Screen saver configured to Blank, kicks in 1 hr after idle, set to lock with a password
Power settings set to turn off the display after 30 min. (not sure whether this actually makes a difference)

If I connect to the vnc server after the screen server kicks in and locks with a password, the screen is not rendered correctly, I don't see the lock window where I'm supposed to enter the password. The server looks like it's frozen, but it's not. I can type the password and it unlocks, but then the session is still messed up, the mouse is erratic, it seems to be clicking in the wrong place and so is the keyboard, it doesn't looks like I can type anything, though after a while some characters show up.

Note that I tried the TigerVNC server and it does not have this problem, so it can be used as a reference to figure out what may be different.

GNOME 3: Background sometimes disappears when resizing screen (SLES 12)

It appears that GNOME 3 is drawing a solid background, then the wallpaper, every time the screen is resized. Sometimes, however, the wallpaper doesn't get redrawn, for unknown reasons. This happens with TigerVNC 1.4.3 el5 (xorg-xserver 1.12.x/X.org 7.7) and the build of TigerVNC 1.4.3 that ships with SLES 12 (xorg-xserver 1.15.x) as well, so it appears to be YAG3B (Yet Another GNOME 3 Bug.) I also verified that it happens in TigerVNC both with a custom Mesa/Xlib build and no GLX extension (simulating TurboVNC), as well as the default TigerVNC configuration (using the system's Mesa build with the GLX extension.) The issue also occurs when using TurboVNC with -3dwm (running the WM in VirtualGL), although on my particular configuration, this is also ultimately using Mesa (I'm running SLES 12 in a virtual machine with no 3D acceleration.) So the issue may be Mesa-specific, but I have no way of testing that at the moment.

Toggle remote cursor rendering breaks updates on keyboard input

After toggling the remote cursor rendering option in an active connection between to linux boxes, it seems to break something with the udpinputport as entered text is not seen anymore. It seems keyboard input do nor more trigger an update of the vnc screen, whereas the enetered text gets visible when moving the editor window inside vnc.

"Authentication is required to create a color managed device" dialog when launching GNOME 3 or Unity 7.4 using TurboVNC

When launching GNOME 3 (including Classic) in TurboVNC or resizing the remote desktop under GNOME 3, a dialog pops up ("Authentication is required to create a color managed device"), and it cannot be dismissed without authenticating using the root password. This seems to be a problem endemic to all X proxies running on recent Linux distros that use GNOME 3 (yet another reason to use MATE instead, at least with TurboVNC.)

Refer to:
https://bugzilla.redhat.com/show_bug.cgi?id=1149893
for further information, as well as a workaround.

Filing this issue to track it.

I've personally verified that the issue exists with TurboVNC 2.1 beta and TigerVNC 1.6 (both the "el5" flavor, which is based on the same X.org 7.7/xorg-xserver 1.12 code as TurboVNC, and the "el6" flavor, which is based on xorg-xserver 1.15.) Verified that the workaround listed at the above link solves the problem, but since that workaround requires specifying a group to which to grant colord permissions, it isn't exactly a generic solution.

This issue is known to exist in current versions of RHEL 7, SLES 12, Fedora 22, and Fedora 24 as of this writing. On Fedora 24, an additional dialog pops up ("Authentication is required to access to PC/SC daemon.") Refer to #52 for the workaround to that issue.

Ctrl Key sticks after Ctrl+C or Ctrl+V

Below issue is applicable for TightVNC Server 2.7.10.0. It is not obvious, but that server is buggy, and no-longer supported. It is recommended by TurboVNC to use UltraVNC Server on Windows machines that wish to share their desktop.

http://www.turbovnc.org/Documentation/UltraVNC

Issue:
This is a super old issue that goes all the way back to tight1.3.
When I use the keyboard shortcuts for Copy, Cut or Paste, the Ctrl key seems to stick.

Some indicators that might be handy:

  1. The Ctrl indicator on the menubar shows it as off, but clicking on single items in a list highlights each one as if the Ctrl Key was held down.

  2. Using the Context Menus to Copy And Paste does not cause the issue.

  3. The issue occurs whether the Clipboard transfer is enabled or not.

  4. Clicking the Ctrl+Alt+Del menu button seems to always release the Ctrl key, but Drag/Drop functionality is lost. 2 or 3 iterations of Ctrl_Alt_Del menu button Followed By WinLogo menu button will usually clear up both the stick Ctrl and the Drag/Drop issue.

  5. Closing and reopening the connection immediately will not usually fix the problem, but waiting a while before reconnecting will usually fix the problem. This indicates a server issue to me.

  6. All combinations of server/client connections cause this issue:
    WinXP <-> Win7 <-> Win8.1 <->WinXP I'll confirm Win10 today.

That's the brunt of my research over several years.

Many thanks for a great project!

vncviewer: exception on setting apply

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at com.turbovnc.vncviewer.CConn.getOptions(CConn.java:1548)
        at com.turbovnc.vncviewer.OptionsDialog.actionPerformed(OptionsDialog.java:789)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

Java: java-1.8.0-openjdk-amd64

Improve SSH tunneling support in the Windows TurboVNC Viewer

  1. Address limitations in the experimental -via and -tunnel options implemented in the Windows TurboVNC Viewer (such as the inability to use the feature with PuTTY.)
  2. Investigate using libssh to provide a more integrated solution.
  3. Provide GUI support for the SSH tunneling features.

vncviewer fails to connect to vncserver

Hi,

This is in pursuant to @dcommander suggestion at VirtualGL/virtualgl#11 (comment)

Platform: TurboVNC v2.0.1-20151105 in Ubuntu 14.04 Trusty.

I started a vncserver (official .deb from sf.net installed to /opt/TurboVNC/ folder by default) in reference to https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04

$ sudo service vncserver start
 * Starting vncserver for user 'zenny' on localhost:2...                                                            
Desktop 'TurboVNC: MACHINE-GA-970A-D3:2 (zenny)' started on display MACHINE-GA-970A-D3:2

Starting applications specified in /home/zenny/.vnc/xstartup.turbovnc
Log file is /home/zenny/.vnc/MACHINE-GA-970A-D3:2.log

But when I try to connect with ssh it says,

channel_setup_fwd_listener: cannot listen to port: 5902
Could not request local forwarding.

I checked /etc/ssh/sshd_config`to check whether X11 forwarding was disabled, but was not the case.

$ grep Forwarding /etc/ssh/sshd_config
X11Forwarding yes

Obviously, vncviewer died with:

$ /opt/TurboVNC/bin/vncviewer 
libjawt.so path: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64
Could not connect: Connection refused

'netstat -plant | grep Xvnc' gives Xvnc instant running in port 5902

tcp        0      0 0.0.0.0:5902            0.0.0.0:*               LISTEN      9911/Xvnc       
tcp        0      0 0.0.0.0:6002            0.0.0.0:*               LISTEN      9911/Xvnc              
tcp        0      0 0.0.0.0:5802            0.0.0.0:*               LISTEN      9911/Xvnc       
tcp6       0      0 :::6002                 :::*                    LISTEN      9911/Xvnc  

Appreciate any hints on the right way to use TurboVNC! Thanks!

H.264 support

Referring to http://www.turbovnc.org/About/H264, H.264 isn't necessarily a good fit for VNC, because H.264 is designed for encoding video content with a fixed frame size, and VNC doesn't really have a concept of frames per se. When using frame-based applications (such as video players and 3D applications, i.e. VirtualGL) within VNC, the frames generated by those applications are usually translated into individual RFB framebuffer updates, but with other applications, that is usually not the case. When typing into a terminal window, for instance, only a few pixels may change as you are typing, but H.264 would require that minimally the entire window (if not the whole desktop) be re-encoded every time even the smallest change occurs. This is necessary because H.264 does its own interframe comparison, and thus each encode operation needs access to the entire frame so that it can determine which pixels have changed and generate the interframe-compressed video stream accordingly. For all intents and purposes, H.264 has a constant compression overhead. Every time you compress a frame, it takes about the same amount of CPU time, regardless of how many pixels have changed.

Furthermore, the x264 open source H.264 encoder is too slow to be viable for remote 3D in most cases. It would be necessary to use NvENC or another GPU-based encoding mechanism (AMD now has VCE, which is similar in concept) to achieve decent performance with H.264, but this creates other challenges. There are generally three approaches that might work for adding H.264 encoding functionality to TurboVNC with decent performance.

  1. Treat the entire VNC desktop as a single H.264 stream
    As described above, the main issue inherent in this approach is that it is very inefficient for applications that only update small portions of the screen at a time. Even if only a few pixels have changed, the entire framebuffer has to be re-encoded so that the H.264 codec can detect those changes. Thus, it is likely that this approach would only really make sense if the frame rate was somehow limited. That is, one would want to specify that no more than, say, 30 frames/second would be encoded, so that a lot of small updates could be coalesced into larger updates. The existing deferred update timer mechanism in VNC might provide a means of accomplishing this, although past experience has proven that mechanism to be problematic in terms of performance (due to the fact that the server is single-threaded and due to how it processes updates for the viewers-- really long story.) The deferred update timer mechanism would likely have to be revisited if it were to serve as a sort of frame rate governor.

    The other problem is that TurboVNC's framebuffer sits in main memory. We would ideally want to avoid transmitting the 3D pixels over the bus three times (drawing the uncompressed pixels from VirtualGL into Xvnc, uploading the uncompressed pixels back to the GPU for compression, and downloading the compressed H.264 stream back into main memory for transmission.) One way around that might be simply to store the VNC framebuffer in GPU memory. If VirtualGL knew about the framebuffer, it could draw the 3D pixels directly into it (notifying VirtualGL of the framebuffer's existence might be accomplished through the use of an X root window property.) It is unclear, however, how or if this GPU-based framebuffer would work with regular X drawing operations. In all likelihood, the X server would need to lock the GPU memory region prior to drawing and unlock it afterwards, which is likely to create a great deal of overhead, not to mention the overhead associated with moving the fine-grained X data back and forth to and from GPU memory (it goes without saying that X will do a lot of read-modify-write operations.) It is also unclear whether this might create GPU contention with 3D applications or, with a large number of users, whether it might exhaust GPU memory. Thinking out loud, though, doesn't DRI already accomplish something similar to this, except using a visible as opposed to an offscreen framebuffer on the GPU?

    Another approach would be to keep the VNC framebuffer in main memory but to create a YUV "holding buffer" on the GPU. In this case, only the updated rectangles would be sent down to the GPU. VirtualGL could also generate YUV images and write them directly into the holding buffer, but again, it would have to know of the existence of that buffer. Also, if X needed to access pixels generated by OpenGL, it would have to inform VirtualGL of that fact so that VirtualGL could draw a copy of the frame using the X11 Transport.

  2. Pre-encode the H.264 stream in VirtualGL
    This makes more sense, since VirtualGL is generating a frame-based image stream that is a more natural fit for a video codec such as H.264. This eliminates the issues of efficiency and the need to encode at a fixed frame rate, because it is assumed that-- at least with double-buffered OpenGL applications-- each frame sent through VirtualGL will share few pixels with the previous frame (but, in some cases, the differences will be within the scope of H.264's predictive abilities.)

    Encoding the video stream is easy, because the pixels are already on the GPU. VirtualGL would simply encode them using NvENC or similar and transmit the H.264 stream directly from GPU memory. But that's where things get dicey. How would we transmit the stream through the TurboVNC Server and to the client? We could implement some sort of "compressed PutImage extension", whereby the compressed stream could be passed through unmodified by the TurboVNC Server and decompressed by the viewer, but this introduces all-new problems:

    • How would we handle window overlapping? The hypothetical compressed PutImage extension would have to communicate the structure of an overlapped window image back to VirtualGL so that it could break the image down into component rectangles and send each separately, or perhaps we could just make the simplifying assumption that, if the window is overlapped or obscured, H.264 will be temporarily disabled for that window.
    • How would we handle combined OpenGL and X operations? An OpenGL/X11 application is well within its rights to request a copy of the OpenGL-rendered pixels using X11 functions (XGetImage(), for instance), assuming that it has called glXWaitGL() to ensure that the pixels have been delivered to the X server. So how would the TurboVNC Server accommodate that request if the OpenGL-rendered pixels are being passed through as an encoded H.264 stream. It would have to keep a copy of the video stream all the way back to the last I-frame, or it would have to somehow notify VirtualGL that it needs an uncompressed copy of the current frame (problematic, since VirtualGL may not have it anymore), or VirtualGL would have to deliver two copies of the frame to the X server-- one compressed and one uncompressed. Delivering two copies isn't a huge deal, since the current VirtualGL/TurboVNC solution already delivers an uncompressed version of the frame. The increase in bus usage would be only incremental, due to the addition of delivering the compressed H.264 version of the frame.
    • How would we ensure that the viewer can handle H.264? This is normally negotiated by the VNC server, and since it has access to all of the framebuffer pixels, it can (and does) encode those pixels differently for each viewer. Pre-encoding in VirtualGL would require passing some information about the connected viewers back to VirtualGL, so it could determine whether it is OK to use H.264. Also, since the viewer can request a new copy of any region of the remote desktop at any time (and does, via the Lossless Refresh and Refresh features), the server would have to always maintain a copy of the H.264 pixels in uncompressed form, per above. Maintaining a copy of the H.264 pixels in uncompressed form would also be necessary in order to support Automatic Lossless Refresh.
  3. Deferred readback and encoding (PBO PutImage extension)
    VirtualGL/virtualgl#9 proposes a mechanism for deferring the readback of OpenGL pixels so that readback doesn't occur in the rendering thread but instead occurs in the image transport-- basically the pixels would be copied into a PBO instead of read back, and the image transport would access the PBO and compress the pixels directly from GPU memory (or perhaps even compress the pixels with the GPU.)

    This could be taken one step further, and instead of the image transport compressing/transmitting the pixels, it could conceivably pass a PBO handle to TurboVNC using some as-yet-to-be-defined custom X extension. This extension could work similarly to MIT-SHM, except that it would allow a PBO handle to be passed in rather than a shared memory segment ID. The TurboVNC Server would then take that handle and copy the pixels into its own framebuffer as well as generate an H.264 frame from them. This would require only an incremental amount of additional bus traffic (the copying of uncompressed pixels from graphics memory into main memory is already occurring now. The only addition here would be copying the compressed H.264 frame from graphics memory into main memory.)

    The main advantage this has over Approach 2 is that it allows the TurboVNC Server to handle the pixels as it sees fit, rather than enforcing a particular encoding scheme upon it. This greatly simplifies the implementation, since the server can decide whether it wants to use H.264 based on whether a particular viewer supports it, and it can decide to temporarily turn off H.264 and transfer only the unobscured rectangles from an obscured window, etc.

    One concern here, however, is synchronization. VirtualGL cannot grant the TurboVNC Server access to the PBO for an unlimited period of time, since VirtualGL will only have a limited pool of PBOs (no more than 3) to work with. This is awkward at best, since the TurboVNC Server doesn't necessarily generate a framebuffer update immediately when VirtualGL draws a frame. The VNC server basically acts as another layer of frame spoiling, since it can coalesce multiple frames from VirtualGL into one framebuffer update as a result of the deferred update timer or as a result of the RFB flow control extensions (which prevent updates from being sent faster than the network or viewer can handle them.) At first glance, it might seem possible to make the proposed PBO PutImage extension asynchronous and thereby essentially treat the TurboVNC Server as VirtualGL's image transport thread. In other words, VirtualGL would, within the application rendering thread, use the PBO PutImage extension to request a free PBO from the pool, and TurboVNC would block on that request until a PBO is free, then VirtualGL would fill the PBO with pixels and send back another request notifying TurboVNC that the PBO is ready to transmit. However, that scheme is likely not possible due to the fact that the TurboVNC Server is single-threaded (as are all X servers.) It will probably be necessary for the TurboVNC Server to pre-compress the H.264 pixels within the body of the PBO PutImage function and then to just store those pixels in a holding buffer until the next RFB framebuffer update.

Approach #3 seems to be the most promising, but I suspect it would take hundreds of hours of labor to make it happen, and in the grand scheme of things, it may make more sense to wait for Wayland, since Wayland's architecture is much more conducive to the use of frame-based codecs such as H.264 (refer to #18) and probably GPU-based encoding as well. Furthermore, referring to the article on TurboVNC.org, H.264 doesn't necessarily benefit all types of applications. It is clear that it can benefit applications like video players, Google Earth, games, etc., but for ordinary CAD applications, the jury is still out.

There are additional challenges inherent with decoding the H.264 stream with reasonable performance. As with JPEG, it would likely be necessary to use some sort of H.264 decoder accessed through JNI in the Java viewers, or perhaps to leverage the built-in decoders on some GPUs (if available.)

Auto resizing in GNOME 2 puts applets in the wrong spot

I tested this in 2 cases:
TigerVNC server (nightly) + TurboVNC Java Viewer
TurboVNC server (2.1alpha) + TurboVNC Java Viewer

With the TigerVNC server, if you make the Viewer window full screen, it arranges the GNOME 2 applet icons properly in the panel (for instance the clock on the top right is "snapped" to the right edge). With the TurboVNC server, it "leaves them where they were", making the panel look a little jumbled.

I have attached a screenshot that demonstrates the problem.

12-22-2015 1-59-13 pm

Xvnc unusable without flow control enabled

TurboVNC Server (Xvnc) 64-bit v2.0.91 (build 20160610d)

Description:
When connecting to TurboVNC Server without flow control/continuous updates, Xvnc starts to send 1x1 pixel rectangle updates. For clients that don't throttle the RFBUR, this causes them to use %100 CPU and ton of bandwidth. Essentially making both the server, network and client super slow. This is also an issue for any older client (i.e. TurboVNC 1.1).

Steps:
1- ./Xvnc :1 -interframe -securitytypes none -geometry 1920x1200
2- /opt/TurboVNC/bin/vncviewer -nocu localhost:1
2- or use turbo vncviewer V1.1 (vncviewer localhost:1)
3- mwm -display :1 (or start anything that changes the shape of the pointer)

To work around this problem, you must disable "X-style cursor updates" and "full-color cursor updates", then the problem goes away. But of course, that is not a solution. It is as if the Xvnc server continuously thinks that the cursor position or shape are getting updated. I think something inside rfbSendFramebufferUpdate is messing with the cursor causing an semi-infinite loop.

Details from debugging:
So here is the sequence of events as I understand it through debugging the Xvnc server:
1- After initialization, client sends RFBUpdateRequest to the server
2- Server starts processing request
3- Server decides for some reason to call rfbSendFramebufferUpdate. Perhaps something is wrong with FB_UPDATE_PENDING
4- rfbSendFramebufferUpdate then seems to try to update some buffer to remove the mouse pointer (because X-Style updates are enabled)
5- Black magic inside rfbSpriteRemoveCursorAllDev ends up modifying cl->modifyedRegion
6- rfbSendFramebufferUpdate tries to send the update but detects that there is no actual change in the buffer
7- Code introduced in 17e8741 then decides to send a single pixel update.
8 - Client gets the update then back to step 1

If I comment out the call to rfbSpriteRemoveCursorAllDev in rfbSendFramebufferUpdate(), the the issue doesn't happen.

I also verified via wireshark that the 1x1 rectangle is all that is actually changing.
vnc no change in frame buffer

It seems like this would an easy fix for someone that knows what "sprite" is. Any help would be greatly appreciated.

GNOME 3: Screen is locked immediately upon starting TurboVNC session

This seems to be related to the systemd XDG session stuff. Testing under RHEL/CentOS 7 confirms that:

  • When the screensaver/lock screen activates within a VNC session, it is still active when the session is shut down and restarted, regardless of whether it is restarted from the same SSH session or a new one (different SSH sessions have different XDG ID's but share the same XDG session directory.)
  • If the lock screen is unlocked within the VNC session, then it doesn't re-appear when the session is shut down and restarted-- provided that it is restarted in a timely manner.
  • The same thing happens with all of the builds of TigerVNC I tested, so this doesn't appear to be related to anything in TurboVNC or X.org 7.7.

My hypothesis is that there is some sort of timer stored in the XDG session, and somehow the screensaver is using that rather than the timer provided by the X server. Thus, after you've been logged into SSH for a certain amount of time, starting a GNOME session will make the screensaver appear immediately, because the timer ran out.

Workaround:
For me, adding the following to ~/.vnc/xstartup.turbovnc works around the issue:

export XDG_RUNTIME_DIR=$HOME/.vnc/xdg

If that proves to be a general solution, then vncserver should set that environment variable automatically based on the value of $vncUserDir.

VNC client copy/paste stops working after a while

I am running TurboVNC 2.0.1 64-bit on Windows 7 Pro, connecting to a TurboVNC 2 VNC server on XUbuntu 14.04. When the VNC client starts up copy/paste works fine. After a while, it is no longer possible to put new text into the paste buffer from apps running on the client's OS (in other words, text copied from Windows apps is not synchronized with the TurboVNC client's paste buffer). Also, after the failure occurs, selecting text in an app running in VNC causes the text to be copied to the paste buffer (this is not the usual behavior).

GNOME 3 is unresponsive with Mesa > 10.0.5

When using GNOME 3.14.x (including Classic) with Mesa (tried 10.6.9 and 12.0.1) under RHEL/CentOS 7, the window manager becomes unresponsive to keyboard/mouse inputs after a few keystrokes are typed in rapid succession. Same thing occurs with the latest & greatest TigerVNC (tested the "el7" build of 1.7.0 beta, which uses the same X.org 1.17.2 X server as RHEL 7, and the "el6" build of 1.6.0, which uses X.org 1.15.0.) Note that the only way I could make TigerVNC 1.6.0 or 1.7.0 beta work with GNOME 3 under RHEL 7 was to use Mesa or VirtualGL. The built-in OpenGL support in TigerVNC didn't work properly on my test machine for some reason (GLX extension claimed to initialize but did not appear in the list of available extensions.)

Workaround: Run the window manager with VirtualGL.

Font issues in latest build

I'm running into font issues in the latest (Dec 17 http://turbovnc.sourceforge.net/vnc.nightly/) build.

I ran into these issues when I built TurboVNC myself, but I thought it was just my system.

These are the messages I get in my VNC log file:
_FontTransOpen: Unable to Parse address catalogue:/etc/X11/fontpath.d
[dix] Could not init font path element catalogue:/etc/X11/fontpath.d, removing from list!

And when I open an xterm:
Warning: Cannot convert string "nil2" to type FontStruct
xterm: cannot load font 8x16

The result: the Xvnc server runs, but the fonts are all wrong and tiny. When I built TurboVNC myself, Xvnc wouldn't start at all, and I had to add:
-xkbdir /usr/share/X11/xkb
To the "vncserver" command, this made Xvnc start, but the fonts were still incorrect and I had those same error messages.

I don't have these issues in TurboVNC 2.0.1. My system is RHEL 6.

Keyboard grab feature in Java viewer on Windows platforms

Adding this artifact to document the need for a keyboard grab feature in the Java viewer on Windows, similar to the one in the native viewer. This feature has already been implemented in the Java viewer on Un*x using a JNI library called TurboVNC Helper. A similar library would need to be developed and deployed on Windows in order to access the low-level Win32 functions for keyboard grabbing.

The keyboard grab feature on Unx was implemented using the VirtualGL General Fund, in order to avoid feature regression vs. 1.2.x (since TurboVNC 2.0 is providing only the Java viewer for Unx platforms.) On Windows, there aren't any immediate plans to eliminate the native viewer, so adding this feature on the Java side isn't as critical, but if someone prefers the Java viewer on Windows for other reasons-- the built-in SSH client, for instance, or VeNCrypt support, then it would be beneficial to have keyboard grabbing in that viewer as well. The feature is not likely to happen anytime soon without funding or code contributions.

Pointer disappears in GNOME 3 when mousing over top bar

This is a known issue in mutter. See:

https://bugzilla.gnome.org/show_bug.cgi?id=763159
https://bugzilla.redhat.com/show_bug.cgi?id=1316010
https://ask.fedoraproject.org/en/question/31186/my-mouse-cursor-dissapears-when-using-gnome3/

As of this writing, the issue is known to affect the latest RHEL/CentOS 7, SuSE Linux Enterprise 12, and Fedora 22 builds when running GNOME 3 (including Classic) in TurboVNC (using Mesa or using -3dwm with VirtualGL.) The issue does not affect the latest build of F24 as of this writing, since it is now using a newer version of Mutter that no longer contains the bug.

The workaround is to run

dconf write /org/gnome/settings-daemon/plugins/cursor/active false

This only needs to be done once (the setting is persistent.)

for every affected user. This issue also affects the "el5" builds of TigerVNC that use X.org 7.7 but not TigerVNC builds that use a newer X.org code base, so it is apparently an interaction issue between X.org 7.7 (which TurboVNC also uses) and the GNOME 3 infrastructure.

Dead keys don't fully work with the Java viewer under Linux and Java 6

Refer to 00c436d. More detailed issue description:

Java 6, Windows:

  • Press/release of a "modified" dead key (a dead key pressed along with Shift or AltGr to produce a different diacritic) causes Java to generate the key code for the unmodified dead key. It might be possible to work around this, since the key character associated with the erroneous key code can be traced back to the correct dead key (for instance, when pressing dead tilde, the key character is always "~", even though the key code varies depending on the keyboard layout.)

Java 6 and 8, Windows:

  • 2nd and subsequent even-numbered presses/releases of a modified dead key also cause Java to generate the key code for the unmodified dead key, as described above. No known way to work around this, since the key character produced for these events is always 65535 (thus, there is no way to distinguish whether the event corresponds to a modified or unmodified dead key without knowing the specifics of the keyboard layout.) This is not a serious issue, since it only prevents one from double-pressing a dead key to produce the corresponding "live" key symbol (but pressing the dead key + space still works.)

Java 6, Mac:

  • Unmodified dead keys produce correct behavior, but modified dead keys produce incorrect key codes (and the key codes unfortunately are not distinguishable from key codes for non-dead-key events, nor is the key character helpful in these cases-- it is generally 65535 for the odd-numbered presses/releases and the "live" key symbol for even-numbered presses/releases)

Java 8, Mac:

  • Depending on the keyboard layout, some dead keys do not produce KeyPress events (similar issue to Linux-- see below), and the others produce different key codes for the key release and key press events. The key codes used for the release events are layout-dependent, and there is unfortunately no way of distinguishing those release events from non-dead-key release events.

Java, Linux:

  • Does not seem to ever produce KeyPress events for dead keys. Argh.

TVNC 2.0.91 and gnome-terminal-3.10.2 on SLES 12 SP1

We are performing tests on SLES 12 SP1 and have run into an issue with TVNC. SLES 12 SP1 ships with gnome 3.10 and according to SuSE, they support MESA with llvmpipe on machines which do not have hardware accelerated graphics. Gnome starts fine but we ran into an issue with gnome-terminal, the application crashes as soon as we click on any of the menu items. A stacktrace is below:

#0  0x00002b6625be7139 in g_logv () from /usr/lib64/libglib-2.0.so.0
#1  0x00002b6625be7282 in g_log () from /usr/lib64/libglib-2.0.so.0
#2  0x00002b6624d076f1 in ?? () from /usr/lib64/libgdk-3.so.0
#3  0x00002b6624d0fe41 in ?? () from /usr/lib64/libgdk-3.so.0
#4  0x00002b66260e32cb in _XError () from /usr/lib64/libX11.so.6
#5  0x00002b66260e0367 in ?? () from /usr/lib64/libX11.so.6
#6  0x00002b66260e0415 in ?? () from /usr/lib64/libX11.so.6
#7  0x00002b66260e12f8 in _XReply () from /usr/lib64/libX11.so.6
#8  0x00002b662782fd7b in XIGrabDevice () from /usr/lib64/libXi.so.6
#9  0x00002b6624d014cb in ?? () from /usr/lib64/libgdk-3.so.0
#10 0x00002b6624ce359a in gdk_device_grab () from /usr/lib64/libgdk-3.so.0
#11 0x00002b662476749b in ?? () from /usr/lib64/libgtk-3.so.0
#12 0x00002b66247693fd in gtk_menu_popup_for_device () from /usr/lib64/libgtk-3.so.0
#13 0x00002b6624769932 in gtk_menu_popup () from /usr/lib64/libgtk-3.so.0
#14 0x00002b662476f51b in ?? () from /usr/lib64/libgtk-3.so.0
#15 0x00002b6624770b53 in ?? () from /usr/lib64/libgtk-3.so.0
#16 0x00002b6625954dc8 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#17 0x00002b6625965f57 in ?? () from /usr/lib64/libgobject-2.0.so.0
#18 0x00002b662596e429 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#19 0x00002b662596e6e2 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#20 0x00002b6624773f46 in ?? () from /usr/lib64/libgtk-3.so.0
#21 0x00002b66247741a0 in ?? () from /usr/lib64/libgtk-3.so.0
#22 0x00002b66247578de in ?? () from /usr/lib64/libgtk-3.so.0
#23 0x00002b6625954ff7 in ?? () from /usr/lib64/libgobject-2.0.so.0
#24 0x00002b662596da88 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#25 0x00002b662596e6e2 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#26 0x00002b6624880264 in ?? () from /usr/lib64/libgtk-3.so.0
#27 0x00002b6624755c7c in ?? () from /usr/lib64/libgtk-3.so.0
#28 0x00002b66247574ba in gtk_main_do_event () from /usr/lib64/libgtk-3.so.0
#29 0x00002b6624d0cfb2 in ?? () from /usr/lib64/libgdk-3.so.0
#30 0x00002b6625be0166 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#31 0x00002b6625be04b8 in ?? () from /usr/lib64/libglib-2.0.so.0
#32 0x00002b6625be055c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#33 0x00002b662567c30c in g_application_run () from /usr/lib64/libgio-2.0.so.0
#34 0x00000000004127cf in main (argc=1, argv=0x7ffd2bbdfb98) at server.c:133

Note that, TigerVNC, version 1.4.3, an update provided by SLES 12 SP1 works fine, however tigervnc-1.3.0, shipped with SLES 12 SP1 displays the same behavior as TVNC 2.0.91.

Improve server-side cursor rendering

Referring to 6e203d9, there are still some minor issues with server-side cursor rendering that are caused by the underlying X.org sprite implementation and are apparently endemic to all "software cursor" implementations for modern X.org releases (https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-fbdev/+bug/1034470). The solution is to use a mechanism similar to TigerVNC's, whereby the remote cursor is not drawn on the framebuffer at all. Rather, if server-side cursor rendering is enabled, TigerVNC stores the cursor as an image and sends the image as a framebuffer update to any clients that need it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.