]> source.dussan.org Git - tigervnc.git/log
tigervnc.git
3 years agoMerge branch 'documentation' of https://github.com/grulja/tigervnc
Pierre Ossman [Tue, 2 Mar 2021 12:30:11 +0000 (13:30 +0100)]
Merge branch 'documentation' of https://github.com/grulja/tigervnc

3 years agoFix some incorrect data waits
Pierre Ossman [Tue, 2 Mar 2021 12:16:34 +0000 (13:16 +0100)]
Fix some incorrect data waits

Some of these were incorrectly calculated so the server or client would
wait too long before proceeding with decoding.

Change all of these to be a more explicit calculation to avoid such
issues in the future.

3 years agoSupport TCP_NOPUSH as alternative to TCP_CORK
Pierre Ossman [Tue, 2 Mar 2021 12:15:35 +0000 (13:15 +0100)]
Support TCP_NOPUSH as alternative to TCP_CORK

TCP_CORK is a Linux thing and BSD has TCP_NOPUSH instead.

3 years agoAdd missing headers for TCP_CORK
Pierre Ossman [Tue, 2 Mar 2021 12:14:50 +0000 (13:14 +0100)]
Add missing headers for TCP_CORK

We didn't include the proper headers to get the correct define, so
corking was never enabled.

3 years agoAdd documentation to the new systemd support 1203/head
Jan Grulich [Fri, 12 Feb 2021 09:56:41 +0000 (10:56 +0100)]
Add documentation to the new systemd support

3 years agoDrop other selection on ownership change
Pierre Ossman [Mon, 1 Mar 2021 14:46:35 +0000 (15:46 +0100)]
Drop other selection on ownership change

Otherwise we might end up owners of something we cannot deliver data on,
which can hang applications.

3 years agoAdd Hebrew translation
Yaron Shahrabani [Tue, 9 Feb 2021 23:14:00 +0000 (01:14 +0200)]
Add Hebrew translation

3 years agoMerge branch 'allow-tcp-and-unix' of https://github.com/jlesage/tigervnc
Pierre Ossman [Tue, 9 Feb 2021 08:01:22 +0000 (09:01 +0100)]
Merge branch 'allow-tcp-and-unix' of https://github.com/jlesage/tigervnc

3 years agoAdded the ability to listen on both Unix socket and TCP port. 1191/head
Jocelyn Le Sage [Sat, 23 Jan 2021 00:56:53 +0000 (19:56 -0500)]
Added the ability to listen on both Unix socket and TCP port.

Setting `rfbport` to `-1` disables TCP port listening.

3 years agoMerge branch 'autoclip' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Wed, 3 Feb 2021 08:35:44 +0000 (09:35 +0100)]
Merge branch 'autoclip' of https://github.com/CendioOssman/tigervnc

3 years agoFix overloaded function signature
Pierre Ossman [Tue, 26 Jan 2021 09:38:09 +0000 (10:38 +0100)]
Fix overloaded function signature

3 years agoRemove unused attributes
Pierre Ossman [Tue, 26 Jan 2021 09:37:44 +0000 (10:37 +0100)]
Remove unused attributes

3 years agoUpdate copyright year to 2021
Pierre Ossman [Mon, 25 Jan 2021 13:04:12 +0000 (14:04 +0100)]
Update copyright year to 2021

3 years agoHeavily reduce window for bandwidth estimate
Pierre Ossman [Mon, 18 Jan 2021 16:17:43 +0000 (17:17 +0100)]
Heavily reduce window for bandwidth estimate

It took way too long to converge on a sane value, so reduce the window
by a factor of ten. This seems to work smoothly.

3 years agoMerge branch 'noblock' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 19 Jan 2021 12:45:06 +0000 (13:45 +0100)]
Merge branch 'noblock' of https://github.com/CendioOssman/tigervnc

3 years agoAdd link to discussion groups from issues
Pierre Ossman [Fri, 15 Jan 2021 15:21:20 +0000 (16:21 +0100)]
Add link to discussion groups from issues

So that people can easily find them and not file bug reports for
things that are just questions.

3 years agoHide link to create blank issues
Pierre Ossman [Fri, 15 Jan 2021 15:18:45 +0000 (16:18 +0100)]
Hide link to create blank issues

We want users to use the templates so we don't miss any relevant
information.

3 years agoFix handling of bad update requests
Pierre Ossman [Thu, 14 Jan 2021 12:07:56 +0000 (13:07 +0100)]
Fix handling of bad update requests

We computed a safe area if a client gave us a bogus one, but we didn't
actually use it. Fix this properly and make sure we don't pass on bad
coordinates further.

3 years agoMerge branch 'master' of https://github.com/johahauf/tigervnc
Pierre Ossman [Tue, 12 Jan 2021 15:14:36 +0000 (16:14 +0100)]
Merge branch 'master' of https://github.com/johahauf/tigervnc

3 years agoHave a history of used vnc servers to select from in the vncviewer 1176/head
Johannes [Mon, 11 Jan 2021 21:46:26 +0000 (22:46 +0100)]
Have a history of used vnc servers to select from in the vncviewer

3 years agoUpdate desktop if clipboard client goes away 1169/head
Pierre Ossman [Tue, 5 Jan 2021 09:26:10 +0000 (10:26 +0100)]
Update desktop if clipboard client goes away

So the current clipboard state is properly reflected in the desktop
session.

3 years agoAdd debug logging for ignored clipboard events
Pierre Ossman [Tue, 5 Jan 2021 09:25:54 +0000 (10:25 +0100)]
Add debug logging for ignored clipboard events

3 years agoFix clipboard state tracking in server
Pierre Ossman [Tue, 5 Jan 2021 09:25:17 +0000 (10:25 +0100)]
Fix clipboard state tracking in server

This was out of sync with the client handling for no good reason.

3 years agoHandle clipboard peek with missing data
Pierre Ossman [Tue, 5 Jan 2021 09:24:18 +0000 (10:24 +0100)]
Handle clipboard peek with missing data

The peer expects a response, so we should also be able to respond that
there is no clipboard data currently available.

3 years agoImprove clipboard debug logging in viewer
Pierre Ossman [Mon, 4 Jan 2021 12:17:40 +0000 (13:17 +0100)]
Improve clipboard debug logging in viewer

3 years agoHandle unsolicited clipboard transfers
Pierre Ossman [Mon, 4 Jan 2021 12:04:26 +0000 (13:04 +0100)]
Handle unsolicited clipboard transfers

The extended clipboard protocol has the ability for the peer to request
things to be sent automatically, without a request message. Make sure we
honor such settings.

3 years agoLog client/server clipboard capabilities
Pierre Ossman [Mon, 4 Jan 2021 12:01:55 +0000 (13:01 +0100)]
Log client/server clipboard capabilities

3 years agoAdd packages for CentOS 8
Brian P. Hinz [Sun, 29 Nov 2020 16:51:07 +0000 (11:51 -0500)]
Add packages for CentOS 8

3 years agoInitial support for ubuntu focal
Brian P. Hinz [Sat, 19 Dec 2020 20:30:16 +0000 (15:30 -0500)]
Initial support for ubuntu focal

3 years agoMap macOS Eisu key to XK_Eisu_toggle
Pierre Ossman [Wed, 9 Dec 2020 14:57:05 +0000 (15:57 +0100)]
Map macOS Eisu key to XK_Eisu_toggle

It's a better match for what the key symbolises, even though it is not
as common on Unix systems. But we want to avoid getting in to tailoring
things for any one specific input method implementation.

3 years agoMerge branches 'japanese_layout' and 'win_japanese_keyboard' of https://github.com...
Pierre Ossman [Wed, 9 Dec 2020 14:56:07 +0000 (15:56 +0100)]
Merge branches 'japanese_layout' and 'win_japanese_keyboard' of https://github.com/gsittyz/tigervnc

3 years agoFix bad library references for some static deps
Pierre Ossman [Mon, 7 Dec 2020 11:34:03 +0000 (12:34 +0100)]
Fix bad library references for some static deps

3 years agoAdd comment why unistring is linked dynamically
Pierre Ossman [Mon, 7 Dec 2020 11:33:50 +0000 (12:33 +0100)]
Add comment why unistring is linked dynamically

3 years agoRemove bogus strncpy() calls
Pierre Ossman [Mon, 7 Dec 2020 11:28:07 +0000 (12:28 +0100)]
Remove bogus strncpy() calls

We don't know the size of the output buffer here and giving the input
string size is just confusing and upsets the compiler in some cases.

3 years agoMerge branch 'master' of https://github.com/mriphysicist/tigervnc
Pierre Ossman [Mon, 7 Dec 2020 11:23:34 +0000 (12:23 +0100)]
Merge branch 'master' of https://github.com/mriphysicist/tigervnc

3 years agoChange to user's home directory before starting session
Pierre Ossman [Fri, 4 Dec 2020 13:34:43 +0000 (14:34 +0100)]
Change to user's home directory before starting session

This is what display managers do, so it is expected by many
environments.

3 years agoFix incorrect daemonization by vncsession
Pierre Ossman [Wed, 25 Nov 2020 11:35:32 +0000 (12:35 +0100)]
Fix incorrect daemonization by vncsession

We terminated the child instead of the parent after fork().

Reported by Jan Grulich from Red Hat.

3 years agoUpdate more references to the old vncserver script
Pierre Ossman [Wed, 25 Nov 2020 11:30:23 +0000 (12:30 +0100)]
Update more references to the old vncserver script

4 years agoFake key release events for some Japanese keys 1142/head
Pierre Ossman [Fri, 20 Nov 2020 09:51:25 +0000 (10:51 +0100)]
Fake key release events for some Japanese keys

Windows either completely omits WM_KEYUP for these, or only sends it
just before the next WM_KEYDOWN for the key.

4 years agoHandle Korean keys on Windows
Pierre Ossman [Fri, 20 Nov 2020 08:58:03 +0000 (09:58 +0100)]
Handle Korean keys on Windows

4 years agoAdd some more Japanese keys
Pierre Ossman [Fri, 20 Nov 2020 08:57:25 +0000 (09:57 +0100)]
Add some more Japanese keys

This covers some Alt+key presses as well.

4 years agoOnly handle Japanese keys when Japanese layout
Pierre Ossman [Fri, 20 Nov 2020 08:19:07 +0000 (09:19 +0100)]
Only handle Japanese keys when Japanese layout

Some of the virtual key codes for Japanese keys are used for other
things on other layouts, so we need to make sure we only use this look
up table when the layout is indeed set to Japanese.

4 years agoDon't show error dialog if exiting without message
Pierre Ossman [Mon, 16 Nov 2020 12:39:48 +0000 (13:39 +0100)]
Don't show error dialog if exiting without message

This was already handled for most exit conditions, but not the early
ones.

4 years agoProperly report connection errors to exit_vncviewer()
Pierre Ossman [Mon, 16 Nov 2020 12:38:41 +0000 (13:38 +0100)]
Properly report connection errors to exit_vncviewer()

4 years agoUpdate keycode maps to latest version
Pierre Ossman [Mon, 16 Nov 2020 12:37:44 +0000 (13:37 +0100)]
Update keycode maps to latest version

Mainly fixes for Japanese and Korean keyboard layouts.

4 years agoWindows JIS Keyboard Support
gsittyz [Sat, 31 Oct 2020 17:09:04 +0000 (02:09 +0900)]
Windows JIS Keyboard Support

Added vkey mappings for Japanese keyboards because the special keys for Japanese input do not work on TigerVNC currently.

4 years agoRegenerate icons 1141/head
Pierre Ossman [Thu, 29 Oct 2020 13:43:22 +0000 (14:43 +0100)]
Regenerate icons

4 years agoBe explicit about SVG size when building icons
Pierre Ossman [Thu, 29 Oct 2020 13:41:23 +0000 (14:41 +0100)]
Be explicit about SVG size when building icons

Not sure how this has changed, but ImageMagick is now using the first
-size to also determine how to scale the SVGs, which is not what we
want.

4 years agoGenerate icons with a depth of 8 bits
Pierre Ossman [Thu, 29 Oct 2020 13:40:54 +0000 (14:40 +0100)]
Generate icons with a depth of 8 bits

Anything else is excessive.

4 years agoHigh-resolution app icon for MacOS
Matteo Seclì [Mon, 19 Oct 2020 09:11:16 +0000 (11:11 +0200)]
High-resolution app icon for MacOS

4 years agoMerge branch 'master' of https://github.com/johnmartin-oracle/tigervnc
Pierre Ossman [Tue, 27 Oct 2020 15:22:23 +0000 (16:22 +0100)]
Merge branch 'master' of https://github.com/johnmartin-oracle/tigervnc

4 years agoOS X Japanese Keyboard Support 1137/head
gsittyz [Sun, 25 Oct 2020 05:34:45 +0000 (14:34 +0900)]
OS X Japanese Keyboard Support

Added OS X JIS Keyboard keys (kVK_JIS_Eisu, kvK_JIS_Kana). The Kana and Eisu keys are used to alter IME behavior, but currently the Kana key produces an unwanted space character and the Eisu key does not work.

4 years agoDocument that vncserver is now a service
Pierre Ossman [Wed, 14 Oct 2020 14:51:34 +0000 (16:51 +0200)]
Document that vncserver is now a service

4 years agoMerge branch 'unicode' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Mon, 5 Oct 2020 14:49:57 +0000 (16:49 +0200)]
Merge branch 'unicode' of https://github.com/CendioOssman/tigervnc

4 years agoCorrectly clear out output UTF-16 buffer 1120/head
Pierre Ossman [Mon, 5 Oct 2020 14:08:28 +0000 (16:08 +0200)]
Correctly clear out output UTF-16 buffer

Each character is more than one byte, so adjust the clearing of the
buffer to reflect that.

4 years agoCorrectly handle invalid UTF-16 code points
Pierre Ossman [Mon, 5 Oct 2020 14:07:27 +0000 (16:07 +0200)]
Correctly handle invalid UTF-16 code points

Some code points are reserved for the UTF-16 coding itself and must not
appear as input data to the algorithm.

4 years agoFix conversion of latin-1 to UTF-8
Pierre Ossman [Mon, 5 Oct 2020 14:05:15 +0000 (16:05 +0200)]
Fix conversion of latin-1 to UTF-8

Signed bug prevented anything not ASCII from being coded correctly.

4 years agoFix UTF-16 encoding/decoding of high code points
Pierre Ossman [Mon, 5 Oct 2020 14:01:55 +0000 (16:01 +0200)]
Fix UTF-16 encoding/decoding of high code points

Everything outside of BMP was handled incorrectly and was coded as
completely different code points.

4 years agoReturn the correct number of consumed UTF-8 bytes
Pierre Ossman [Mon, 5 Oct 2020 11:27:52 +0000 (13:27 +0200)]
Return the correct number of consumed UTF-8 bytes

This would mess up most conversions from UTF-8 as the caller wouldn't
know how far to step to get to the next valid character, resulting in
markers for invalid data to be injected here and there.

Also add some unit tests to avoid this reoccurring.

4 years agoFix installation of vncsession.man
Pierre Ossman [Fri, 2 Oct 2020 10:22:51 +0000 (12:22 +0200)]
Fix installation of vncsession.man

It is now dynamically generated, so it will be in the build directory
and not in the source directory.

4 years agoMerge branch 'systemd' of https://github.com/grulja/tigervnc
Pierre Ossman [Fri, 2 Oct 2020 09:36:00 +0000 (11:36 +0200)]
Merge branch 'systemd' of https://github.com/grulja/tigervnc

4 years agoMerge branch 'sysconfdir' of https://github.com/metalefty/tigervnc
Pierre Ossman [Fri, 2 Oct 2020 09:29:04 +0000 (11:29 +0200)]
Merge branch 'sysconfdir' of https://github.com/metalefty/tigervnc

4 years agoUse /run instead of /var/run which is just a symlink 1115/head
Jan Grulich [Tue, 29 Sep 2020 11:37:16 +0000 (13:37 +0200)]
Use /run instead of /var/run which is just a symlink

4 years agoReplace some more hard-coded /etc with sysconfdir 1101/head
Koichiro IWAO [Wed, 23 Sep 2020 02:23:50 +0000 (11:23 +0900)]
Replace some more hard-coded /etc with sysconfdir

4 years agoTolerate specifying -BoolParam 0 and similar
Pierre Ossman [Fri, 18 Sep 2020 08:44:32 +0000 (10:44 +0200)]
Tolerate specifying -BoolParam 0 and similar

This is needed by vncserver which doesn't know which parameters are
boolean, and it cannot use the -Param=Value form as that isn't tolerated
by the Xorg code.

4 years agoDo not assume sysconfdir is always /etc
Koichiro IWAO [Wed, 16 Sep 2020 14:18:29 +0000 (23:18 +0900)]
Do not assume sysconfdir is always /etc

Refer @CMAKE_INSTALL_FULL_SYSCONF@ instead.

4 years agoMerge branch 'tlstofu' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 8 Sep 2020 12:12:57 +0000 (14:12 +0200)]
Merge branch 'tlstofu' of https://github.com/CendioOssman/tigervnc

4 years agoProperly store certificate exceptions in Java viewer
Brian P. Hinz [Tue, 8 Sep 2020 08:13:32 +0000 (10:13 +0200)]
Properly store certificate exceptions in Java viewer

Like the native viewer, the Java viewer didn't store certificate
exceptions properly. Whilst not as bad as the native viewer, it still
failed to check that a stored certificate wouldn't be maliciously used
for another server. In practice this can in most cases be used to
impersonate another server.

Handle this like the native viewer by storing exceptions for a specific
hostname/certificate combination.

4 years agoRemove incorrect umask change
Pierre Ossman [Mon, 7 Sep 2020 07:21:12 +0000 (09:21 +0200)]
Remove incorrect umask change

Not sure why this got in there, but it is incorrect as it results in
creating files with too liberal permissions.

4 years ago[java] don't show password field for secTypes that don't use it
Brian P. Hinz [Fri, 4 Sep 2020 23:09:48 +0000 (19:09 -0400)]
[java] don't show password field for secTypes that don't use it

4 years agoMerge pull request #1 from johnmartin-oracle/johnmartin-oracle-patch-1 1084/head
johnmartin-oracle [Fri, 28 Aug 2020 02:30:40 +0000 (22:30 -0400)]
Merge pull request #1 from johnmartin-oracle/johnmartin-oracle-patch-1

Update Surface_X11.cxx

4 years agoUpdate Surface_X11.cxx
johnmartin-oracle [Fri, 28 Aug 2020 02:30:23 +0000 (22:30 -0400)]
Update Surface_X11.cxx

Runtime sellection of ARGB  XImage byte order

4 years agoFix size of 16x16 icon
Pierre Ossman [Mon, 24 Aug 2020 07:40:18 +0000 (09:40 +0200)]
Fix size of 16x16 icon

For some reason it got generated at an incorrect 20x20 size last time.

4 years agoHide base SConnection methods from VNCServerST
Pierre Ossman [Fri, 21 Aug 2020 13:53:59 +0000 (15:53 +0200)]
Hide base SConnection methods from VNCServerST

It should be using the safe wrappers for everything so make sure it
cannot bypass those and call the SConnection methods directly.

4 years agoCall correct wrappers for clipboard handling
Pierre Ossman [Fri, 21 Aug 2020 13:52:45 +0000 (15:52 +0200)]
Call correct wrappers for clipboard handling

We incorrectly called the underlying functions instead of the safe
wrappers for the new clipboard functions. This had the effect of a)
crashing the entire server if one of these functions failed, and b) not
respecting the settings disabling the clipboard.

4 years agoChange development version to 1.11.80
Pierre Ossman [Wed, 19 Aug 2020 12:02:23 +0000 (14:02 +0200)]
Change development version to 1.11.80

4 years agoUpdate translation template file
Pierre Ossman [Wed, 19 Aug 2020 12:00:45 +0000 (14:00 +0200)]
Update translation template file

4 years agoMerge branch 'master-improve-ComparingUpdateTracker' of https://github.com/MarkMielke...
Pierre Ossman [Wed, 19 Aug 2020 11:49:34 +0000 (13:49 +0200)]
Merge branch 'master-improve-ComparingUpdateTracker' of https://github.com/MarkMielke/tigervnc

4 years agoUpdate build system so it will compile on Windows 10. 1039/head
Danny Park [Wed, 17 Jun 2020 19:55:02 +0000 (15:55 -0400)]
Update build system so it will compile on Windows 10.

With this commit, TigerVNC will compile for Windows using MSYS2, MinGW-w64 and Inno Setup 6.  The resulting binaries have some dll dependencies (even with BUILD_STATIC).  The required dll dependencies are not included in the installer.

Unfortunately, the latest version of MSYS2 and MinGW-w64 do not produce a working executable for Windows 7.

4 years agoComment on SELinux rule affect other commands
Pierre Ossman [Mon, 17 Aug 2020 14:07:03 +0000 (16:07 +0200)]
Comment on SELinux rule affect other commands

This line affects every command run by the user, unlike everything else
in our policy which is just for vncserver/vncsession. It's easy to miss
this so add a comment pointing it out.

4 years agoMerge branch 'vnc_home' of https://github.com/wrabcak/tigervnc
Pierre Ossman [Mon, 17 Aug 2020 14:05:58 +0000 (16:05 +0200)]
Merge branch 'vnc_home' of https://github.com/wrabcak/tigervnc

4 years agoMerge branch 'master-fix-vncserver-display-selector' of https://github.com/MarkMielke...
Pierre Ossman [Mon, 17 Aug 2020 13:51:30 +0000 (15:51 +0200)]
Merge branch 'master-fix-vncserver-display-selector' of https://github.com/MarkMielke/tigervnc

4 years agoFree memory from getaddrinfo()
Pierre Ossman [Mon, 17 Aug 2020 12:02:28 +0000 (14:02 +0200)]
Free memory from getaddrinfo()

We handled this in the failure scenario, but not in the vastly more
common successful case.

4 years agoMerge branch 'winvnc' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Mon, 17 Aug 2020 11:54:47 +0000 (13:54 +0200)]
Merge branch 'winvnc' of https://github.com/CendioOssman/tigervnc

4 years agoFix capitalisation of LICENCE.TXT 1064/head
Pierre Ossman [Mon, 17 Aug 2020 11:15:57 +0000 (13:15 +0200)]
Fix capitalisation of LICENCE.TXT

If InnoSetup is run on a case sensitive system then the configuration
files must match what the file is actually called.

4 years agoFixes for Java 11. SocketDescriptor change was a workaround for a previous java probl...
Brian P. Hinz [Sun, 9 Aug 2020 17:08:54 +0000 (13:08 -0400)]
Fixes for Java 11. SocketDescriptor change was a workaround for a previous java problem that no longer seems necessary

4 years ago[SELinux] Allow vnc session create ~/.vnc 1034/head
Lukas Vrabec [Mon, 25 May 2020 09:29:44 +0000 (11:29 +0200)]
[SELinux] Allow vnc session create ~/.vnc

Allow vnc session labeled with SELinux vnc_session_t domain to create
directory in user homedir ~/.vnc labeled with SELinux label xdm_home_t.

Because also process vncpasswd creates ~/.vnc directory, file transition that
userdomain attribute SELinux domain (label for the process) can create the
directory with the same label needs to be added.

userdomain attribute contains following SELinux types:
    auditadm_t
    dbadm_t
    guest_t
    logadm_t
    secadm_t
    staff_t
    staff_wine_t
    sysadm_t
    unconfined_t
    user_t
    user_wine_t
    webadm_t
    xguest_t

Signed-off-by: Lukas Vrabec <lvrabec@redhat.com>
4 years agoMerge pull request #1069 from MarkMielke/master-tigervnc-rpm-spec-updates
Samuel Mannehed [Fri, 31 Jul 2020 12:20:56 +0000 (14:20 +0200)]
Merge pull request #1069 from MarkMielke/master-tigervnc-rpm-spec-updates

EL 7 tigervnc.spec updates

4 years agovncserver: Display check should confirm UNIX domain socket is still valid 1066/head
Mark Mielke [Wed, 29 Jul 2020 04:26:41 +0000 (00:26 -0400)]
vncserver: Display check should confirm UNIX domain socket is still valid

If the X server is not shut down cleanly, it can leave UNIX domain
sockets around that "vncserver" has previously mis-identified as
evidence that the display number is still in use.

Instead of checking for existence of /tmp/.X11-unix/X<n>, the code
will now attempt to connect to the socket to confirm that there is a
server process listening on this UNIX domain socket. This will
eliminate false positives in the case the UNIX domain socket still
exists but is not associated with a listening Xorg server. The Xorg
server does not have a problem with fixing this file when it next
starts up. It is only important to avoid using the port if it is still
in use.

4 years agovncserver: Display check should be re-factored for Perl 5
Mark Mielke [Wed, 29 Jul 2020 04:21:19 +0000 (00:21 -0400)]
vncserver: Display check should be re-factored for Perl 5

The display check and related setup code was complex due to
compatibility with Perl 4. This included different ways of obtaining
system constants and building system data structures. Perl 5 provides
direct constants and utility methods to abstract this out of the
vncserver code.

4 years agovncserver: Display check should confirm lock file is still valid
Mark Mielke [Wed, 29 Jul 2020 04:01:07 +0000 (00:01 -0400)]
vncserver: Display check should confirm lock file is still valid

If the X server is not shut down cleanly, it may leave lock files
around that "vncserver" has previously mis-identified as evidence that
the display number is still in use.

Instead of checking for existence of /tmp/.X<n>-lock, the code will
now extract the PID from the lock file and confirm that a process
exists with the same PID. This will eliminate false positives in the
case that this file references a PID that no longer exists. The Xorg
server does not have a problem with fixing this file when it next
starts up. It is only important to avoid using the port if it is still
in use.

4 years agovncserver: Display check should avoid duplicate code
Mark Mielke [Wed, 29 Jul 2020 04:11:28 +0000 (00:11 -0400)]
vncserver: Display check should avoid duplicate code

The display check had duplicate code to first check if the X11 port is
not in use, and then check that the RFB port is not in use. Eliminate
the duplicate code by using a for-loop.

4 years agovncserver: Display check should use named variables
Mark Mielke [Wed, 29 Jul 2020 03:57:22 +0000 (23:57 -0400)]
vncserver: Display check should use named variables

Several calculated values such as file paths and port numbers were
hard coded within strings or expressions, sometimes multiple
times. These values should be extracted into named variables to
improve self-documentation and avoid accidental divergence.

4 years agovncserver: Display check should check for lock file first
Mark Mielke [Wed, 29 Jul 2020 03:46:02 +0000 (23:46 -0400)]
vncserver: Display check should check for lock file first

Checking for the existence of `/tmp/.X<n>-lock` is a fast read-only
operation, while calls to bind() or connect() are more expensive and
may have side effects. Perform the fast operation first.

4 years agovncserver: Remove legacy HP-UX support
Mark Mielke [Wed, 29 Jul 2020 03:35:19 +0000 (23:35 -0400)]
vncserver: Remove legacy HP-UX support

The check for existence of `/usr/spool/sockets/X11/<n>` has been
removed. This file is only relevant on HP-UX, and TigerVNC dropped
support for HP-UX in commit 31e5aa3.

4 years agoEL 7 tigervnc.spec updates 1069/head
Mark Mielke [Tue, 28 Jul 2020 03:28:35 +0000 (23:28 -0400)]
EL 7 tigervnc.spec updates

Add missing build requirements: libpng-devel, zlib-devel

Remove obsolete build requirements: libXfont-devel

Fix unexpected rpm macro expansion `%{VERSION}` which is supposed
to be passed through as literal to `rpm -q --qf`. This hasn't
caused problems before, but it was found to cause problems when
built from EL 8 when it expanded to "1.10.1".

4 years agoEnhanced ComparingUpdateTracker to crop changed blocks 1031/head
Mark Mielke [Mon, 22 Jun 2020 03:54:55 +0000 (23:54 -0400)]
Enhanced ComparingUpdateTracker to crop changed blocks

64x64 changed block can be large for fine changes such as cursor
movement and typing in terminal windows, or an update to a clock.

If the block can be efficiently cropped, this will reduce latency
and bandwidth. Every pixel cropped is a pixel less to analyze, encode,
transmit, and decode.

The previous code already detected the top of the change in order
to determine if the block had changed. However, it did not use
this information to reduce the size of the change rectangle, nor
did it calculate any of the other edges.

The new code introduces detection of the other edges, and uses
the information to build a reduced area change rectangle. This
has the additional effect of reducing the number of discrete pixel
values in the change block which may allow a more efficient
encoding algorithm to be selected.

As this section of code is performance sensitive, the method
of detecting the edges has been optimized to quickly fall back
to pessimistic values as soon as a single comparison fails on
each edge. In the case that full 64x64 block are changing,
there will be three extra comparisons per block.

In cases where the change rectangle can be reduced from 64x64,
the reduced size of the change rectangle represents reduced
effort to encode, transfer, and decode the contained pixels.

In the case of images with high frequency changes, which
specifically includes text, the lossy JPEG encoding can be
highly distorted, especially with JPEG level 6 or less. The
quick flash from a distorted JPEG to a lossless JPEG can
appear as a flickering to some people. This effect was more
obvious when the surrounding area is not expected to change,
but is being distorted anyways due to being part of the 64x64
blocking algorithm.

In the case of a user typing in a terminal window, this change
may commonly reduce the number of pixels updated with every
character typed from 4096 pixels (64x64) to 640 pixels (32x20)
or less.

4 years agoWarn that WinVNC is unmaintained
Pierre Ossman [Thu, 16 Jul 2020 11:52:05 +0000 (13:52 +0200)]
Warn that WinVNC is unmaintained

4 years agoSplit WinVNC to a separate installer
Pierre Ossman [Thu, 16 Jul 2020 11:45:51 +0000 (13:45 +0200)]
Split WinVNC to a separate installer

It doesn't work very well so it shouldn't be included by default.

4 years agoRun maketarball through bash
Pierre Ossman [Thu, 16 Jul 2020 12:28:53 +0000 (14:28 +0200)]
Run maketarball through bash

It uses bash-isms so a POSIX shell will not work correctly.