to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
libXext/buildlink3.mk, now that it is included there.
Leave the places where its API version is set or variables from it
are used directly (about 3 packages).
New in the 0.9.13 x11vnc release:
Improved support for non-X11 touchscreen devices (e.g. handheld or
cell phone) via Linux uinput input injection. Additional
tuning parameters are added. TSLIB touchscreen calibration
is supported. Tested on Qtmoko Neo Freerunner.
A tool, misc/uinput.pl, is provided to diagnose uinput
behavior on new devices.
The env. vars. X11VNC_UINPUT_BUS and X11VNC_UINPUT_VERSION
are available if leaving them unset does not work.
The Linux uinput non-X11 input injection can now be bypassed:
events can be directly written to the /dev/input/event
devices specified by the user (direct_abs=..., etc.)
A -pipeinput input injection helper script,
misc/qt_tslib_inject.pl is provided as a tweakable
non-builtin direct input injection method.
The list of new uinput parameters for the above two features is:
pressure, tslib_cal, touch_always, dragskip, btn_touch;
direct_rel, direct_abs, direct_btn, direct_key.
The included SSL enabled Java VNC Viewers now handle Mouse
Wheel events.
miscellaneous new features and changes:
In -reflect mode, the libvncclient connection can now have
the pixel format modified via the environment
variables X11VNC_REFLECT_bitsPerSample,
X11VNC_REFLECT_samplesPerPixel, and
X11VNC_REFLECT_bytesPerPixel
In -create mode the following environment variables are added
to fine tune the behavior: FIND_DISPLAY_NO_LSOF:
do not use lsof(1) to try to determine the Linux VT,
FIND_DISPLAY_NO_VT_FIND: do not try to determine the
Linux VT at all, X11VNC_CREATE_LC_ALL_C_OK: do not bother
undoing the setting LC_ALL=C that the create_display
script sets. The performance of the -create script
has been improved for large installations (100's of
user sessions on one machine.)
In -unixpw mode, one can now Tab from login: to Password.
An environment variable, X11VNC_SB_FACTOR, allows one to scale
the -sb screenblank sleep time from the default 2 secs.
In -rawfb mode, a bug is fixed in setting the number of bits
per pixel.
Documented that -grabkbd is no longer working with some/most
window managers (it can prevent resizing and menu posting.)
The macosx deprecated interface GetMainDevice() call is removed.
Compile with -DX11VNC_MACOSX_USE_GETMAINDEVICE if needed
for an old macosx version...
Miscellaneous code cleanup.
New in the 0.9.12 x11vnc release:
One can now specify the maximum number of displays
that can be created in -create mode via the
env. var. X11VNC_CREATE_MAX_DISPLAYS
The X11VNC_NO_LIMIT_SHM env. var. is added to skip any
automatic shared memory reduction.
The kdm display manager is now detected when trying not to get
killed by the display manager.
miscellaneous new features and changes:
A compile error is fixed when using --with-system-libvncserver
pointing to LibVNCServer 0.9.7.
-nevershared -forever usage mode is documented.
Old SuSE broken thread local storage is documented.
x11vnc exit cases are documented.
A compile bug from forced use of Xdefs.h is worked around.
New in the 0.9.11 x11vnc release:
The source tree is synchronized with the most recent libvncclient
(this only affects -reflect mode.) The build is fixed
for incompatibilities when using an external LibVNCServer
(e.g. ./configure --with-system-libvncserver...)
The SSL enabled Java VNC Viewer Makefile has been modified so
that the jar files that are built are compatible back
to Java 1.4.
In -reflect mode cursor position updates are now handled
correctly.
In -create/-unixpw mode, the env. var. FD_USERPREFS may be set
to a filename in the user's home directory that includes
default username:options values (so the options do not
need to be typed every time at the login prompt.)
miscellaneous new features and changes:
An option -always_inject is provided: Even if there is no
displacement (dx = dy = 0) for a VNC mouse event force
the pointer to the indicated x,y position anyway.
New java viewer debugging and workaround applet parameters:
debugKeyboard mapF5_to_atsign forbid_Ctrl_Alt
You can set X11VNC_AVAHI_NAME, X11VNC_AVAHI_HOST, and/or
X11VNC_AVAHI_PORT environment variables to override the
default values. For example: -env X11VNC_AVAHI_NAME=wally
When opening the X11 display extra XAUTHLOCALHOSTNAME settings
are attempted.
New in the 0.9.10 x11vnc release:
IPv6 is now supported for all usage modes: forward and reverse
connections, SSL and unencrypted, etc.
The included SSL enabled Java VNC viewer applet now supports
Chained SSL Certificates (x11vnc -ssl always has.)
The applet autodects x11vnc and set GET=1 for faster
connecting via HTTPS.
A demo CGI script 'desktop.cgi' shows how to create an
SSL encrypted, multi-user x11vnc web login desktop
service. The user logs into a secure web site and gets
his/her own virtual desktop and his browser accesses it
with the SSL Java VNC Viewer applet.
A serverCert Java Viewer applet parameter is provided.
Use an authenticated HTTPS browser connection to set
this parameter (the user could set it locally too.)
The onetimekey tool has -certonly option for this scheme.
The Xdummy script (use Xorg 'dummy' driver instead of Xvfb)
no longer requires being run as root.
miscellaneous new features and changes:
In the Java viewer applet, debugCerts and debugKeyboard parameters
are provided. The debugging output of the applet is more
readable. Some corner-case bugs (e.g. socket exceptions)
are now handled gracefully. Parameters forbid_Ctrl_Alt
and mapF5_to_atsign are added.
The amount of time to wait for HTTPS applet downloads to finish
can be set in env. var. X11VNC_HTTPS_DOWNLOAD_WAIT_TIME.
The -xkb mode is automatically enabled if there are more than
4 keysyms per key.
-coe is now an alias for -connect_or_exit.
The -input_eagerly option enables this LibVNCServer feature
(it is like -allinput.)
The "%" unix password verification tricks for the -unixpw
option are now documented. They also run a command
in UNIXPW_CMD.
In -create (-svc, etc.) modes, a warning is printed out if Xvfb
cannot be found. Xvfb '+kb' option is checked for.
The -env CREATE_DISPLAY_OUTPUT=/tmp/mydebug.txt debugging
option is documented. Try to preserve user's PATH
if possible.
In XDMCP connection mode, a test for GDM listening only
on IPv6 (::1) is performed. The interface can also be
specified via FD_XDMCP_IF.
The example scripts connect_switch, ultravnc_repeater.pl, inet6to4
have settings to let them run reliably for long times
as daemons. They also support IPv6.
IPv6 notes: for some very esoteric cases (e.g. -chatwindow)
IPv4 localhost may be required for local IPC. A demo
transition tool 'inet6to4' is also included (can be
used for other apps.) x11vnc options related to IPv6:
-listen6, -6, -no6, -noipv4, -noipv6, and -connect,
-proxy.
Use STUNNEL_LISTEN in -stunnel mode to have it listen on a
particular interface. Also STUNNEL_PROG.
New remote control query options: pointer_x, pointer_y,
pointer_same, pointer_root, and pointer_mask. A demo
script using them misc/panner.pl is provided.
Remote control change of -clip option will not create new
framebuffer if the size has not changed (for panner.pl)
The X11VNC_DISABLE_SSL_CLIENT_MODE env. var. can be set to
disable SSL client role in reverse connections. This
means the VNC viewer side must be in SSL client role.
UltraVNC repeater operation can benefit from this.
The SSL_INIT_TIMEOUT is increased to 1 hour if 'repeater'
is detected in a reverse connect string.
The X property X11VNC_TRAP_XRANDR can be set on a desktop to
force x11vnc to use the -xrandr screen size change
trapping code.
The -sslScripts option prints out the SSL certificate management
scripts.
Suggest '-auth guess' and '-findauth' if X connection fails.
The TightVNC sercurity type (TightVNC features enabler) now
works for RFB version 3.8.
RECORD scroll detection is now working with the new gtk/gdk scroll
mechanism. Set X11VNC_SCROLL_MUST_EQUAL to disable.
New in the 0.9.9 x11vnc release:
A new option -findauth runs the FINDDISPLAY script that applies
heuristics to try to determine the correct XAUTHORITY
file. The use of '-auth guess' will use the XAUTHORITY
that -findauth reveals. This can be handy in with
the lastest GDM where the ability to store cookies in
~/.Xauthority has been removed.
If x11vnc is running as root (e.g. inetd or XDM/GDM/KDM)
the FD_XDM=1 mode will be tried if the above -findauth
or '-auth guess' command fails; it will find the
correct XAUTHORITY for the given display (this works for
XDM/GDM/KDM if the login greeter panel is up or if someone
has already logged into an X session.) You can also
set -env FD_XDM=1 to force it to be done on the first try.
The -unixpw_system_greeter option, when used in combined
unixpw and XDMCP FINDCREATEDISPLAY mode (e.g. -xdmsvc),
enables the user to press Escape to jump directly to the
XDM/GDM/KDM login greeter screen. This way the user
avoids entering his unix password twice at X session
creation time. For subseqent logins to the same session,
he uses the regular x11vnc unixpw "login:" prompt. Also,
the unixpw login panel now has a short help displayed
if the user presses 'F1' that lists the options.
The -appshare option enables simple application sharing based on
the -id/-sid mechanism. Every new toplevel window that
the application creates induces a new viewer window via
a reverse connection. The -id/-sid and -connect options
are required. Run 'x11vnc -appshare -help' for more info.
Heuristics are applied to try to determine if the X display
is currently in a Display Manager Greeter Login panel
(e.g. GDM.) If so, x11vnc's creation of any windows and
use of XFIXES are delayed.
This is to try to avoid x11vnc being killed after the user
logs in if the GDM KillInitClients=true is in effect.
So one no longer needs to set KillInitClients=false in
gdm.conf. Note that in recent GDM the KillInitClients
option has been removed.
Also delayed is the use of the XFIXES cursor fetching
functionality; this avoids an Xorg bug that causes Xorg
to crash right after the user logs in.
x11vnc now tries to be more aggressive in keeping up with VNC
client's framebuffer update requests. Some broken VNC
clients continuously spray these requests at VNC servers
(regardless of whether they have received any updates
or not.) The -extra_fbur option allows one to fine tune
the setting.
The "-display WAIT:cmd=...", -find, -create modes now work
correctly for the user-supplied login program scheme
"-unixpw_cmd ...", as long as the login program supports
running commands specified in the environment variable
"RFB_UNIXPW_CMD_RUN" as the logged-in user. The mode
"-unixpw_nis ..." has also been made more consistent.
The username option "tag=..." can be used to set FD_TAG.
The -stunnel option (like -ssl but uses stunnel as an external
helper program) now works with the -ssl "SAVE" and "TMP"
special certificate names. The -sslverify and -sslCRL
options now work correctly in -stunnel mode. Single port
HTTPS connections are also supported for this mode.
The remote control command -R can be used to instruct x11vnc
to resend its most recent copy of the Clipboard,
Primary, or Cutbuffer selections: "x11vnc -R
resend_clipboard", "x11vnc -R resend_primary", and
"x11vnc -R resend_cutbuffer".
miscellaneous new features and changes:
The fonts in the GUI (-gui) can now by set via environment
variables, e.g. -env X11VNC_FONT_BOLD='Helvetica -16 bold'
and -env X11VNC_FONT_FIXED='Courier -14'.
The value of the -timeout option is now also used for the timing
out of reverse connections. The -timeout exit will
occur if no client has made it to normal operating state
(instead of merely trying to connect.)
One can add extra URL parameters to the HTTPS (-ssl) urls
via X11VNC_EXTRA_HTTPS_PARAMS without needing to edit
index.vnc. E.g.: -env X11VNC_EXTRA_HTTPS_PARAMS='?GET=1'
One can make the libvncserver HTTP (non-SSL) server listen on
localhost: -env X11VNC_HTTP_LISTEN_LOCALHOST=1 (this way
only the single-port VNC+HTTPS is exposed to the network.)
Warnings are printed out at startup if $DISPLAY appears to
start with "localhost:" (SSH X11 forwarding) or
"hostname:" (remote X display; will fail w/o -noshm)
The -solid option now uses the DBUS_SESSION_BUS_ADDRESS env. var
if available. The -solid option now works in xfce.
If available, the dbus_launch(1) will be used in
FINDCREATEDISPLAY for gnome sessions.
The bcx_xattach remote control command was added to facilitate
xattach and x2x desktop cursor switching. Other new
remote control commands: grab_state, ping:mystring,
grablocal, resend_cutbuffer, resend_clipboard,
resend_primary, keycode, keysym, fakebuttonevent,
ptr, sleep, get_xprop, set_xprop, wininfo, pointer_pos,
mouse_xy, noop, guess_dbus, DIRECT:query. Remote control
scripting, -query_retries, and -remote_prefix were
also added.
In -rawfb mode the X display will not be opened at all unless
the -rawfb string is prefixed with '+' or -display
was specified on the cmdline.
For multiple, separate x11vnc instances on the same X display,
one can rename the X11VNC_REMOTE, X11VNC_TICKER, and
VNC_CONNECT property names to unique ones.
The -showrfbauth option prints out the VNC rfbauth password.
The XDAMAGE mechanism is now automatically disabled for a
period of time if a game or screensaver generates too
many XDAMAGE rectangles per second. This avoids the X11
event queue from soaking up too much memory.
x11vnc does not switch on server autorepeat if any keys are
pressed down to work around a recent Xorg server and/or
gnome bug where the key will never stop repeating.
Thse list of current clients is kept more up-to-date in the
tkx11vnc gui. Bugs in the gui setpass mode have been
fixed.
Threads stability is further improved. See under the -threads
option help info about -env X11VNC_THREADS_NEW_FB_SLEEP=ms
There is an experimental workaround: "-env X11VNC_WATCH_DX_DY=1"
that tries to avoid problems with poorly constructed
menu themes that place the initial position of the mouse
cursor inside a menu item's active zone.
The crypt(3) function is now declared inside the x11vnc code on
all platforms (not just Linux). To disable this, set
CPPFLAGS='-DDO_NOT_DECLARE_CRYPT' while configuring.
(crypt is declared to avoid problems with header files.)
Error reasons are printed for -storepasswd failures.
Two scripts are added to x11vnc/misc: connect_switch and
ultravnc_repeater.pl
Shared directories can now be created independently by the pacakges
needing them and will be removed automatically by pkg_delete when empty.
Packages needing empty directories can use the @pkgdir command in PLIST.
Discussed and ok'd in thread starting at
http://mail-index.netbsd.org/tech-pkg/2009/06/30/msg003546.html
New in the 0.9.8 x11vnc release:
Better reliability for the Java Viewer applet when connecting
through a Web Proxy via HTTPS. A proxy hostname
and port can be specified via applet parameters.
Proxy Authentication via Auth-Basic is supported.
More x11vnc printout in -ssl is provided to help
troubleshoot this mode and other ssl connections.
Stability improvements to -threads mode. Running x11vnc this
way is more reliable now. Threaded operation sometimes
gives better interactive response and faster updates. The
threaded mode now supports multiple VNC viewers using
the same VNC encoding (some only on Linux or enabled
at build time.) The threaded mode can also yield
a performance enhancement in the many client case
(e.g. class-room broadcast.) We have tested with 30 to
50 simultaneous clients. See also -reflect.
miscellaneous new features and changes:
x11vnc automatically tries to work around an Xorg server bug
involving infinitely repeating keys when turning off key
repeating. Use -repeat if the automatic workaround fails.
Also, the environment variable X11VNC_IDLE_TIMEOUT
(seconds) is provided.
In -reflect mode the environment variable X11VNC_REFLECT_PASSWORD
is provided.
The -clip mode works under -rawfb.
The -nounixpw option can disable unixpw mode if an earlier option
enables it (e.g. -svc).
Scroll detection is skipped for windows with 'OpenOffice' in
their name.
Pkgsrc changes:
* add avahi option (disabled by default).
Notes:
New in the 0.9.7 x11vnc release:
Basic support for building with VirtualGL's TurboVNC (an
enhanced TightVNC for fast LAN high framerate usage)
encoding and TightVNC modifications. More info:
http://www.karlrunge.com/x11vnc/faq.html#faq-turbovnc
and x11vnc/misc/turbovnc/README.
The -ncache_cr option has been fixed and so in -ncache mode
smooth opaque window motions are now work correctly. Try
it out to see how smooth it is even on a slow link.
Support for Linux text consoles (virtual terminals, e.g. 1-6)
is provided via, e.g., 'x11vnc -rawfb vt2' (for virtual
terminal #2).
This is like LinuxVNC (i.e. text only), it avoids using
/dev/fb and uses /dev/vcsaN instead (the '-rawfb console'
mode uses /dev/fb.) With /dev/vcsaN the text terminal
is accessible even it if is not the currently active one.
The -rawfb option now supports framebuffers with bits per pixel
less than 8 (e.g. 4 or 1 bpp.)
Reverse connections now work in Anonymous Diffie Hellman SSL/TLS
mode. Reverse connections also work for VeNCrypt and
ANONTLS modes.
miscellaneous new features and changes:
The included SSL enabled UltraVNC java viewer now has a
configurable [Home] entry in the drives drop down menu.
In the -create, -svc, etc. modes one can now specify a
range of X displays to ignore in X11VNC_SKIP_DISPLAY.
Improvements and bugfixes were made to the find_display
and create_display scripts. FD_EXTRA option is provided.
The '-rawfb video' option finds the video device file more
carefully.
The -rmflag option allows a new way to indicate to other
applications that x11vnc has started.
All of the java applet parameters are now documented in
the classes/ssl/README file.
There is now a "sendbell" remote control command.
A one-time -padgeom once:WxH mode is added.
Improvements to the CUPS Terminal Services helper mode.
If the X display cannot be opened normally then the env. var.
XAUTHLOCALHOSTNAME=localhost is tried.
Bugfix for selection transfer to a now non-existent X window
(Thunderbird can cause this.) Related, the env. variable
LIBXCB_ALLOW_SLOPPY_LOCK is now set by default.
Bugfix for -8to24 mode due to nonstandard indexed color support.
The libvncserver and x11vnc autoconf/automake settings have
been improved.
libXrandr include file is now found on Solaris.
New in the 0.9.6 x11vnc release:
x11vnc's SSL encryption is extended to support the VeNCrypt and
TLS (older; vino) SSL/TLS security type extensions to VNC.
Anonymous Diffie-Hellman key exchange (-ssl ANON) and Certificate
Revocation List support (-sslCRL) is added to the SSL
encryption mode.
The Java viewer applet can now be served up through the VNC port
(5900) in addition to the normal HTTP port (5800) via
the -http_oneport option. Previously this only worked
for SSL connections and HTTPS.
The "-rfbport PROMPT" mode presents a simple gui for the user
to select a port for the x11vnc service and a few other
settings. This enables a menu entry for naive users
that is included in x11vnc.desktop.
If x11vnc is not built with the Avahi Zeroconf library an external
helper program (avahi-publish or dns-sd on Mac OS X)
is used instead.
miscellaneous new features and changes:
The default mode for '-ssl' is now the '-ssl SAVE' mode; i.e.
the generated certificate is saved and reused in
subsequent sessions rather than being discarded.
Use '-ssl TMP' recover the old way. This change made
to for it to be more likely that the VNC Viewer can save
the accepted cert for future authentications.
The solid background color option works on the Mac OS X console.
The -reopen option enables x11vnc to try to re connect to the X
display if GDM (or other display manager) kills it just
after the user logs in.
The -dhparams option can be used to point to your own Diffie
Hellman parameters.
The -setdefer option allows tuning how quickly updates will
be sent. Default setting tuned.
The option -zeroconf is now an alias for -avahi/-mdns.
In pipeinput mode, the pipe filehandle is now closed when
x11vnc exits.
The -sshonly option turns off VeNCrypt and TLSVNC (vino) mod
leaving only the standard SSL (i.e. vncs://)
For testing, the option -rand in an alias for -rawfb rand -nopw
Minor tweaks to improve CUPS Print tunneling.
Pkgsrc changes:
Added x11 option (enabled by default).
You can still use with FB or MacOS X native display without X11.
New in the 0.9.5 x11vnc release:
Symmetric key encryption using the RC4, AES, Blowfish, and 3DES
ciphers is supported via the -enc cipher:keyfile option.
The SSVNC unix viewer 1.0.20 and later supports these
encryption methods.
Server-side scaling can now have different scale factors along
the horizontal and vertical axes. E.g. -scale 1280x1024
(same as -geometry 1280x1024) or -scale 0.8x0.75
The -chatwindow option allows a chat window to appear on the
X console during UltraVNC chats (requires the SSVNC
viewer package.)
miscellaneous new features and changes:
The HTTP Java viewer applet jar, classes/VncViewer.jar, has
been updated with an improved implementation based on
the code used by the classes/ssl applets.
A description and instructions are now printed out when
X_ShmAttach fails if one tries to attach to a remote
$DISPLAY (i.e. $DISPLAY is on a different machine from
the machine x11vnc is running on; this often happens
with SSH X redirection, X terminal servers, etc).
The -allow option now works correctly in -ssl mode.
The -remap option now works on the MacOSX console.
New in the 0.9.4 x11vnc release:
Reverse VNC connections (-connect and -connect_or_exit options)
work in the -find and -create X session FINDCREATEDISPLAY
modes.
Reverse VNC connections (either normal or using SSL) can use a
Web Proxy, a SOCKS proxy, the UltraVNC repeater proxy,
an SSH connection, or even a CGI URL to make the outgoing
connection (-proxy option). Forward connections can
use the -ssh option to set up a reachable redirection.
Support for the ZYWRLE encoding is added, this is the RealVNC ZRLE
encoding extended to do motion video and photo regions
more efficiently by way of a Wavelet based transformation.
The session finding and creating modes (-find and -create) have
been improved to be more reliable and also provide a new
desktop types (xfce) and new service redirection options.
Support for indexed colormaps (PseudoColor) with depths other
than 8 is provided (depths 1 to 16 now work).
Java viewer applet source code is provided in the x11vnc 0.9.4
tarball so now everything can be built from source.
miscellaneous new features and changes:
To unset Caps_Lock, Num_Lock and raise all keys in the X server
use -clear_all, or by remote control 'x11vnc -R clear_all'
The -autoport option gives more control over the server port
range that probes.
The -ping option can be used to help keep idle connections alive.
The -finddpy and -listdpy utilities help to debug and configure
the -find, -create, and -display WAIT:... modes.
Some automatic detection of screen resizes are handled even if
the -xrandr option is not supplied.
The -advertise_truecolor option can workaround some VNC viewer
incompatibilities with PseudoColor.
The option '-clip xinerama0' can be used to clip to the first
Xinerama sub-screen, etc.
If a fast framebuffer read rate is detected the -wait and -defer
parameters are reduced to 10 and 15 msec, respectively.
Pasting of the selection/clipboard into remote applications
(e.g. Java) is improved.
Usage with dvorak keyboards is improved. The option -macuskbd is
available on MacOSX to use the original US keyboard code.
Via a compiler option (-DENABLE_GRABLOCAL) one can use the
-grablocal n option to filter VNC client input if someone
at the console has done mouse or keyboard input n secs ago.
The -sleepin option can now sleep a random amount of time between
min and max time delays (-sleepin min-max).
New in the 0.9.3 x11vnc release:
This release provides client-side caching to improve interactive
response. Almost no VNC viewers implement caching which is why
VNC is slow compared to other remote graphics protocols.
The x11vnc caching will work with any VNC viewer, but they will
not hide the pixmap cache region that is below the main desktop
(one must adjust the window manually). The SSVNC Unix VNC viewer,
however, automatically detects and hides the region.
To enable caching, supply "-ncache n" to x11vnc, where the
number n, e.g. 10, indicates how much memory to devote to the
caching scheme.
See http://www.karlrunge.com/x11vnc/#faq-client-caching