You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@guacamole.apache.org by Mikael Hansson <mi...@oxcrag.net.INVALID> on 2020/02/21 10:40:12 UTC

Beginner's question

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.
- 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.
- 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.

Best regards,
Mikael Hansson

Re: Beginner's question

Posted by Mike Jumper <mj...@apache.org>.
On Sat, Feb 22, 2020, 15:35 Mikael Hansson <mi...@oxcrag.net.invalid>
wrote:

> 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.
>

Excellent. Thanks!

- Mike

Re: Beginner's question

Posted by Mikael Hansson <mi...@oxcrag.net.INVALID>.
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 <mj...@apache.org> wrote:
> 
> On Fri, Feb 21, 2020 at 2:40 AM Mikael Hansson <mi...@oxcrag.net.invalid>
> 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


Re: Beginner's question

Posted by Mike Jumper <mj...@apache.org>.
On Fri, Feb 21, 2020 at 2:40 AM Mikael Hansson <mi...@oxcrag.net.invalid>
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