Apache Guacamole 1.5.4 is an archived release, and was originally released on 2023-12-07. The latest release of Apache Guacamole is 1.5.5.
Apache Guacamole is split into two subprojects: "guacamole-client", the HTML5 web application which serves the Guacamole client to users, and "guacamole-server", the remote desktop proxy which the web application communicates with. The source code for each of these may be downloaded below.
You must verify the integrity of any downloaded files using the OpenPGP signatures we provide with each release. The signatures should be verified against the KEYS file, which contains the OpenPGP keys of Apache Guacamole's Release Managers. Checksums of each released file are also provided.
Filename | Signatures / Hashes |
---|---|
guacamole-client-1.5.4.tar.gz | PGP SHA-256 |
guacamole-server-1.5.4.tar.gz | PGP SHA-256 |
If you do not wish to build Apache Guacamole entirely from source, pre-built versions of the web application (.war) and all extensions are provided here in binary form for convenience. Please note that guacamole-server must still be built and installed from source.
The 1.5.4 release is a bugfix release that addresses miscellaneous bugs from 1.5.3 and earlier, and updates all dependencies to their latest compatible versions. For a full list of all changes in this release, please see the changelog below.
The 1.5.4 release is compatible with older 1.x components. You should upgrade older components to 1.5.4 when possible, however things should continue to work correctly in the interim:
Regardless of inter-component compatibility, there are changes in 1.5.4 which may affect downstream users of Guacamole’s APIs. Please see the deprecation / compatibility notes section for more information.
Each 1.x release of Apache Guacamole should be compatible with components of older 1.x releases. This compatibility is intended at the Guacamole protocol level and at the extension level, but not necessarily at the API level. This means:
As of 1.5.4, the following changes have been made which affect compatibility with past releases:
join_pending_handler
)When a user joins an established connection via Guacamole’s sharing
functionality, that user’s display state must be synchronised with the existing
display state of the connection such that future updates will have the expected
effects. Historically, this synchronization was done individually for each
joining user via a single handler called join_handler
.
As of 1.5.4, join_pending_handler
has been added to allow all joining users
to be synchronized at the same time. If using this new bulk synchronization
support, the join_handler
will be used primarily to parse user-specific
connection parameters, while the join_pending_handler
will be used to
synchronize the display state to all users that are about to join. Using
join_pending_handler
avoids having to re-encode the same display state
multiple times.
The latest version of libguac provides a series of guac_mem_*()
macros
for memory management and memory-related calculations that perform checked
arithmetic. These macros are intended to replace manual usage of malloc()
,
calloc()
, realloc()
, and free()
and should be preferred.
The addition of these macros does not itself affect compatibility, however
established libguac functions that previously required returned memory to be
freed using free()
now document that returned memory should be freed with
guac_mem_free()
. Existing usage of free()
instead of guac_mem_free()
will
continue to work but should be migrated when possible.