The release below is from prior to Guacamole's acceptance into the Apache Incubator. It is not an Apache Software Foundation release, and is licensed under the MIT license.
The 0.9.7 release of Guacamole greatly simplifies the installation process for extensions and reduces the need for
guacamole.properties, providing reasonable defaults where possible. Extensions can now be used to theme, brand, and translate Guacamole, not only to provide custom authentication. In addition to several bug fixes, this release also marks the first public availability of Guacamole in languages other than English, and the first official release with support for Docker.
Guacamole extensions are now entirely self-contained
.jar files which can be installed simply by copying them into the
GUACAMOLE_HOME/extensions directory. The
lib-directory properties are still supported for backward compatibility, but are no longer needed. The remaining common properties, like
guacd-port, now have default values and no longer need to be specified unless your configuration deviates from the defaults.
Each extension now also provides enough information for Guacamole to determine compatibility prior to loading the extension. If an extension is not compatible, and is not forcibly loaded through the legacy
auth-provider property, Guacamole will refuse to load the extension and log an error describing the problem.
- [GUAC-631] - Remove need for guacamole.properties
- [GUAC-1069] - Detect and warn of improper extension versions
Theming and translation
In the past, Guacamole extensions could only be used to extend authentication. Extensions can now be used to augment Guacamole’s styling for the sake of theming or branding, or to add additional translations or on-screen keyboard layouts. Multiple extensions can be loaded at the same time by simply placing their
.jar files within
GUACAMOLE_HOME/extensions, though no more than one extension may provide authentication.
With this translation support in place, Guacamole has been translated into both French and Russian, and those translations have been contributed and merged into the main Guacamole codebase thanks to the generosity of Jerome Charlot and Konstantin Kozhin.
- [GUAC-587] - Allow theming/translation through extensions
- [GUAC-1053] - Allow selection of display language
- [GUAC-1187] - Merge contributed Russian translation
- [GUAC-1217] - Review and merge contributed French translation
Official Docker support
Version 0.9.7 marks the first release with official support for Docker. Experimental support for Docker and Guacamole 0.9.6 was made available prior to the 0.9.7 release, and this support is now stabilized and officially documented within the Guacamole manual.
Login screen behavior
The Guacamole home screen has little use for a user that has access to only one connection. As of 0.9.7, users will be taken immediately to their connection if only one connection is available. Further, if a user visits a page within Guacamole, but is not logged in, they will no longer be redirected to a distinct login page from which logging in redirects to the home screen. Visiting a page while not logged in now simply results in the page being replaced with a login screen - no redirect occurs. Once the user logs in, the page is allowed to load normally.
- [GUAC-1061] - Login page should redirect to destination
- [GUAC-1066] - Connection errors not cleared after logout
- [GUAC-1126] - Open connection by default if only one exists
Hanging VNC connections
Past versions of Guacamole suffered from occasional hanging connections when VNC was used, typically when data in the clipboard changed. The cause of this rare but annoying phenomenon has now been both explained and fixed.
- [GUAC-1056] - VNC client hangs when clipboard is changed
iOS bluetooth keyboard
When Guacamole 0.9.6 or older is used with iOS and a bluetooth keyboard, a bug in keyboard event handling results in Guacamole only receiving each key press. Without any corresponding key release, pressed keys act permanently stuck. A workaround is now in place which addresses this problem, ensuring pressed keys are released.
- [GUAC-661] - Stuck keys with iPad and bluetooth keyboard
Improved audio in Firefox
Although Guacamole has supported audio for quite some time, this audio support has been poor under Firefox. This is not Mozilla’s fault: Guacamole was simply using a Chrome-specific version of the Web Audio API, and thus only supported audio within Firefox using a lower-quality fallback mode. This has been fixed, and the Web Audio API is used wherever supported.
- [GUAC-1088] - Web Audio API not being used in Firefox
Restricting user accounts
User accounts within the database authentication can now be manually disabled or expired. A disabled account cannot be used, and attempts to login with a disabled account are rejected as if the account did not exist. If a user logs in with an expired account, they are prompted to change their password before login succeeds.
- [GUAC-800] - Enhanced user account restrictions
- [GUAC-1176] - Implement password expiration attribute
User management regression
Guacamole 0.9.6 was released with a regression that prevented non-admin users with user-creation permissions from editing the users they created. This has now been fixed.
- [GUAC-1188] - Created users cannot be modified
Support for specifying the name of the connecting RDP client is now available through an additional
client-name parameter. Past releases would simply send the hostname of the guacd server to the RDP server when connecting, but Guacamole 0.9.7 allows this to be explicitly specified on a per-connection basis. Setting this value affects the
CLIENTNAME environment variable of Windows RDP servers.
Support for Italian keyboards has also been added - a contribution from Denis Bernacci.
Although guacamole-server is configured to treat warnings as errors during the build process, guacamole-client was not, resulting in several warnings going unnoticed. These warnings have been resolved, and the build process is now configured to treat all warnings as errors. Warnings which were logged by the web browser while Guacamole runs have also been fixed.
- [GUAC-1170] - Fix build and browser warnings
Low-level connection/tunnel issues
Several miscellaneous, low-level improvements have been made to the Guacamole HTTP tunnel and request handling structure in general. The size and complexity of functions handling tunnel requests have been reduced, and issues involving mishandling of tunnel reconnect/disconnect have been resolved. Thanks to David Dvora and Vasily Loginov for these improvements.