Hello all,
It looks like the planned scope of 0.9.10-incubating has been satisfied, and
there are no further open issues related to 0.9.10-incubating changes.
Included in this email is a list of all changes that have gone into the Apache
Guacamole (incubating) repositories since the pre-Incubator 0.9.9 release.
Links to the relevant issues in JIRA are included for context, as well as some
brief background info where appropriate.
To all those able, *please test as much as possible*. Once it has been
reasonably-verified that there are no blocking issues, the next logical step
will be to move forward with a release VOTE.
For now, we need:
1) To verify that previously-working things are not suddenly broken
(regressions).
2) To verify that features/fixes intended for 0.9.10-incubating do indeed work
as intended.
3) To verify that changes for 0.9.10-incubating are accurately reflected in
the documentation.
The main repositories to test against are incubator-guacamole-client and
incubator-guacamole-server, both of which must be installed for any
Guacamole deployment (see the docs):
https://github.com/apache/incubator-guacamole-client
https://github.com/apache/incubator-guacamole-server
The Guacamole documentation itself is in the form of a manual that is kept
up-to-date with each release (or at least should be - that's part of what needs
to be tested here):
https://github.com/apache/incubator-guacamole-manual
If anyone has any questions, please ask and we will do our best to assist.
Thanks!
- Mike
==========
Table of Contents:
A. Screen sharing
B. Screen recording
C. Streamlined file transfers
D. RDP audio input
E. Keyboard improvements
F. Local clipboard integration
G. Theming extensions
H. Docker improvements
I. User management
J. Partially-reverted clipboard changes
K. Concurrency options
L. Translations
M. Exposing terminal output to JavaScript
N. Miscellaneous bugs
----------------------------------------
A. Screen sharing
----------------------------------------
Explicitly supported by the database authentication backend. Can also be used
by extensions or Guacamole-driven applications in general (when written to use
the appropriate parts of the APIs).
When granted permission, users can generate temporary share links for their
active connections. Those links are invalidated when they disconnect.
* GUACAMOLE-5: Allow creation of per-connection share links
(https://issues.apache.org/jira/browse/GUACAMOLE-5)
* GUACAMOLE-13: Finally stabilize and merge GUAC-844 to master
(https://issues.apache.org/jira/browse/GUACAMOLE-13)
* GUACAMOLE-52: Do not delete history records
(https://issues.apache.org/jira/browse/GUACAMOLE-52)
----------------------------------------
B. Screen recording
----------------------------------------
All supported protocols (VNC, RDP, SSH, and telnet) can be configured to record
sessions to disk for later playback. This configuration is specified on a
per-connection basis. Session recordings are Guacamole protocol dumps of the
server -> client side of the conversation, and can be converted to a normal
video stream using the "guacenc" utility, which is part of the guacamole-server
build.
Additionally, text-based protocols (SSH and telnet) can record sessions as
text, using the same format used by the "script" and "scriptreplay" commands.
* GUACAMOLE-4: Implement session recording
(https://issues.apache.org/jira/browse/GUACAMOLE-4)
* GUACAMOLE-16: Implement text-based screen recording for SSH/telnet
(https://issues.apache.org/jira/browse/GUACAMOLE-16)
----------------------------------------
C. Streamlined file transfers
----------------------------------------
The web application will now handle file transfer via HTTP. This speeds things
up, removes limitations on file size imposed by JavaScript, and removes the
need for initiating the actual download by clicking a link.
File transfer is still handled via the Guacamole protocol. The streams are
dynamically intercepted, stripped, and exposed via HTTP by the web application
in response to specific REST API requests. This is strictly a frontend change
and does not affect the core Guacamole stack and protocol, which continues to
handle file transfer as it always has.
* GUACAMOLE-44: Upload/download of files that are more than 1 GB fail
(https://issues.apache.org/jira/browse/GUACAMOLE-44)
----------------------------------------
D. RDP audio input
----------------------------------------
Support for RDP's "AUDIO_INPUT" channel. Configuring this is tricky, and
Microsoft's documentation is somewhat misleading. It should work out-of-the-box
for Windows 7, while versions of Windows Server will need group policy changes
AND the "Remote Desktop Session Host" feature installed.
* GUACAMOLE-25: Add support for audio input
(https://issues.apache.org/jira/browse/GUACAMOLE-25)
----------------------------------------
E. Keyboard improvements
----------------------------------------
There are new keymaps which need verification, as well as some fixes. In
particular, use of the keypad was broken for RDP in 0.9.9. This should be
fixed now.
* GUACAMOLE-6: Netherlands keyboard layout created
(https://issues.apache.org/jira/browse/GUACAMOLE-6)
* GUACAMOLE-7: Wrong French keyboard layout
(https://issues.apache.org/jira/browse/GUACAMOLE-7)
* GUACAMOLE-15: Japanese keymap support on RDP
(https://issues.apache.org/jira/browse/GUACAMOLE-15)
* GUACAMOLE-19: "@" characters don't work with French keyboard under IE11
(https://issues.apache.org/jira/browse/GUACAMOLE-19)
* GUACAMOLE-51: Keypad not properly mapped in RDP, SSH, and telnet
(https://issues.apache.org/jira/browse/GUACAMOLE-51)
----------------------------------------
F. Local clipboard integration
----------------------------------------
Guacamole will now use the standard-but-clunky Clipboard API
(document.execCommand()) to attempt to read the local clipboard. If this fails,
things continue to work as they have in past releases (clipboard access via the
Guacamole menu/sidebar).
IE11 will prompt the user to allow clipboard access, which is actually pretty
nice. For Chrome, there is a third-party extension which allows the user to
grant access on a per-domain basis:
https://chrome.google.com/webstore/detail/clipboard-permission-mana/ipbhneeanpgkaleihlknhjiaamobkceh
* GUACAMOLE-24: Directly integrate local clipboard
(https://issues.apache.org/jira/browse/GUACAMOLE-24)
----------------------------------------
G. Theming extensions
----------------------------------------
* GUACAMOLE-9: Allow modification of HTML via extensions
(https://issues.apache.org/jira/browse/GUACAMOLE-9)
----------------------------------------
H. Docker improvements
----------------------------------------
Beware that the Docker images now live in the incubator-guacamole-client and
incubator-guacamole-server repositories (see GUACMOLE-27).
* GUACAMOLE-8: Allow concurrency properties to be configured within Docker
(https://issues.apache.org/jira/browse/GUACAMOLE-8)
* GUACAMOLE-21: Support LDAP within Docker image
(https://issues.apache.org/jira/browse/GUACAMOLE-21)
* GUACAMOLE-27: Bring Docker images into new git repositories
(https://issues.apache.org/jira/browse/GUACAMOLE-27)
* GUACAMOLE-50: Update Docker containers to use Java 8
(https://issues.apache.org/jira/browse/GUACAMOLE-50)
----------------------------------------
I. User management
----------------------------------------
Support for role-based access control within LDAP. Also a convenient "Clone"
button for users if the database authentication backend is being used.
* GUACAMOLE-12: Allow LDAP role-based access control for guacConfigGroups
(https://issues.apache.org/jira/browse/GUACAMOLE-12)
* GUACAMOLE-14: Add support for cloning existing users
(https://issues.apache.org/jira/browse/GUACAMOLE-14)
----------------------------------------
J. Partially-reverted clipboard changes
----------------------------------------
GUACAMOLE-55 was intended to add support for arbitrary clipboard data,
specifically copy/paste of images for RDP. The Guacamole protocol has supported
this for some time, but the web application only handled text for simplicity's
sake.
After the task grew in complexity, the RDP portion of those changes was
removed from scope and GUACAMOLE-55 was narrowed to just client-side changes.
Once THAT grew in complexity (mainly due to browser quirks surrounding
content-editable divs), I partially reverted those changes for the sake of a
stable 0.9.10-incubating.
The "non-risky" parts of GUACAMOLE-55 still remain, namely a better internal
representation of clipboard data and a convenient abstraction of the clipboard
input field, thus the clipboard functionality needs regression testing, even
though the original task was pulled from the release.
* GUACAMOLE-82: Clipboard behavior regressions since GUACAMOLE-55
(https://issues.apache.org/jira/browse/GUACAMOLE-82)
----------------------------------------
K. Concurrency options
----------------------------------------
Administrators can now restrict the total number of connections used by a
server.
For the cases where balancing groups may route users to any one of several
desktops, administrators can now enable "session affinity" on those balancing
groups, ensuring that users are directed to the same underlying connection
consistently (until they logout from Guacamole).
* GUACAMOLE-26: Add support for overall concurrency limits
(https://issues.apache.org/jira/browse/GUACAMOLE-26)
* GUACAMOLE-53: Add support for session affinity within balancing groups
(https://issues.apache.org/jira/browse/GUACAMOLE-53)
----------------------------------------
L. Translations
----------------------------------------
* GUACAMOLE-18: Fix typo in French translation
(https://issues.apache.org/jira/browse/GUACAMOLE-18)
* GUACAMOLE-22: Update missing french translations
(https://issues.apache.org/jira/browse/GUACAMOLE-22)
----------------------------------------
M. Exposing terminal output to JavaScript
----------------------------------------
Not the most easily testable feature, this is mainly useful to those that
have written applications using the Guacamole API. The protocols which leverage
the terminal emulator built into guacd (SSH and telnet) now expose their output
via the Guacamole protocol's "pipe streams" (essentially named pipes). This
output can be grabbed and handled by client-side JavaScript for whatever
purpose can be imagined.
* GUACAMOLE-17: Allow terminal output to be redirected to pipe streams
(https://issues.apache.org/jira/browse/GUACAMOLE-17)
----------------------------------------
N. Miscellaneous bugs
----------------------------------------
* GUACAMOLE-10: Keyboard focus is permanently lost after clicking the URL bar
in IE11 (https://issues.apache.org/jira/browse/GUACAMOLE-10)
* GUACAMOLE-11: No error screen during an invalid SSH login in 0.9.8
(https://issues.apache.org/jira/browse/GUACAMOLE-11)
* GUACAMOLE-23: __guac_socket_fd_select_handler() must always init fd_set
(https://issues.apache.org/jira/browse/GUACAMOLE-23)
* GUACAMOLE-66: Remove usage of Apache Commons Codec Library
(https://issues.apache.org/jira/browse/GUACAMOLE-66)
* GUACAMOLE-67: I/O error in WebSocket can cause connection tracking to fail
(https://issues.apache.org/jira/browse/GUACAMOLE-67)