Thanks for the pointers - and sorry for missing the build instructions: It was 
way easier to do it the right way.

I’ve tested my keymap and it seems to do what it should. Pull requests have 
been created for the necessary changes to guacamole-server and guacamole-client.

//Mikael Hansson

> On 21 Feb 2020, at 21:45, Mike Jumper <[email protected]> wrote:
> 
> 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

Reply via email to