On Fri, Feb 21, 2020 at 2:40 AM Mikael Hansson <[email protected]> wrote:
> Hi, > I’ve created a new RDP keymap for Guacamole as per > https://issues.apache.org/jira/browse/GUACAMOLE-121?focusedCommentId=15721121&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15721121 > . > However when I build the Guacamole server from these sources and install > it, I don’t see the new keymap as a selectable option in the connection > settings. Obviously I’ve missed some step here. > > What I’ve done: > - I’ve cloned the Guacamole server repository from Github. > - I’ve copied a keymap file similar to what I needed, and updated its > contents. > - I’ve copied the configure script and a bunch of Makefile.* files to > their respective directories in my instance of the cloned repo from the > official guacamole-server-1.1.0.tgz archive, in response to error messages > when running the configure script. > You shouldn't do this - who knows whether what you copied is the same as what would be generated from current git. Use "autoreconf -fi" to generate the configure script and Makefile-generation input. See: http://guacamole.apache.org/doc/gug/installing-guacamole.html#guacamole-server-build-process - I’ve updated Makefile.am and Makefile.in, in src/protocols/rdp, to in > addition to the existing keymap files also know about the new one. > You only need to update the relevant Makefile.am. - I then ran make clean, ./configure > --with-systemd-dir=/etc/systemd/system, make, and sudo make install > sequentially. > - Finally I ran systemctl daemon-reload && systemctl restart guacd && > systemctl restart tomcat9, and cleared my browser cache before attempting > to change keymaps. > - /usr/local/sbin/guacd has a timestamp that makes sense, so it has been > updated by make install. > > My guess is that there’s a smarter way of generating the configure script > and Makefile.* files, and that the build system for some reason still is > unaware of the new keymap file, but I have no idea what I’m looking for. > There is (see above), but this is not going to result in the keymap being listed as a choice within the web interface. The choices within the web interface are driven by the contents of JSON files which describe the parameters of each protocol. For example, the RDP keymaps are defined here: https://github.com/apache/guacamole-client/blob/bc83918fb3df60a35279741a3dbe90a6092990da/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/rdp.json#L89-L110 The values are automatically canonicalized to translation keys, which produce the human-readable values you see in the interface: https://github.com/apache/guacamole-client/blob/bc83918fb3df60a35279741a3dbe90a6092990da/guacamole/src/main/webapp/translations/en.json#L538-L553 Please be sure to also consider contributing your keymap. Contributions are welcome, we can always use more keymaps, and we can help through the additional changes needed for your new keymap to be properly listed. - Mike
