Open oliver-tenhafen opened 3 months ago
I think the issue is not related to Nova itself. In Kolla we install the spice-html5 package provided by Ubuntu in the nova-spicehtml5proxy container image:
()[root@e5c6bf4af5bc /]# dpkg -l | grep spice
ii spice-html5 0.2.2-0ubuntu3 all Spice Web client which runs entirely within a modern browser
Latest spice-html5 release (0.3.0) is a few years old (https://gitlab.freedesktop.org/spice/spice-html5/-/releases). The referenced merged MR is 4 months old:
commit 9c8377f86c3423010e5705861429761074ed63e2
Author: David Edler <david.edler@canonical.com>
Date: Tue Jan 2 09:59:44 2024 +0100
fix keyboard mappings for international keyboard layouts
Key presses by a client with an international keyboard layout will often fail.
I.e. the key AltGr creates an error message "No mapping for key 255". This key is important to produce the @ symbol i.e. on German language keyboard. The currently used e.keyCode differs by browser vendor and is ambiguous for some keys.
This change relies instead on the event.code, which is stable for most common keys and more complete.
I keep the old implementation to rely on e.keyCode as a fallback if the e.code is not available or the mapping for it is missing.
See merge request spice/spice-html5!14
Signed-off-by: David Edler <david.edler@canonical.com>
Acked-by: Frediano Ziglio <freddy77@gmail.com>
Probably we can simple uninstall the spice-html5 package in the nova-spicehtml5proxy container image and use a copy of the files in the spice/spice-html5 repository.
Yes indeed not not a nova issue then. Your suggestion seems a viable workaround.
@berendt can you update the package inside the container? Or even switch to git checkout for this? I know the last Spice-HTML upstream release is from 2020, but according to the changelog for Ubuntu 22.04 there are downstream patches.
We have 0.2.2-0ubuntu3 installed. At least 0.2.2-0ubuntu3 does not include the relevant commit. I think it makes most sense to simply use the files from the repository. I will prepare an overlay for the nova-spicehtml5proxy container image.
@oliver-tenhafen @killermoehre PR prepared. When CI is done, I'll merge it. Images will then be available later in the day. You would then have to test this with quay.io/nova/nova-spice5htmlproxy:2023.2 as we use the NoVNC proxy ourselves.
@berendt The image should just be chosen when we deploy nova, right? Or do we need to do something special in the configuration to include the image?
You have to add 2 parameters to your environments/kolla/images.yml
file:
nova_spicehtml5proxy_image: "quay.io/osism/nova-spicehtml5proxy"
nova_spicehtml5proxy_tag: "2023.2"
Afterwards it should be sufficient to run osism apply -a pull nova -l TESTNODE
followed by osism apply -a refresh-containers -l TESTNODE
.
Merged. Build is running.
Build failed because of Gitlab maintenance. Hope nightly builds will work again.
Nightly builds are fine again. Can be tested.
The container is broken, trying to start it spews
<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}}>>>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}>>{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<}}>>{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<}}>>{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{{<<{<{<{<{<{<{<{<{<{<{<{<}>{<{{<<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{{<<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}}>>>{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}}>>>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<}}>>{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}}>>>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{{<<{<{<{<{<{<{<{<{<{<{<{<{<{<{{<<{<{<}>{<{<{<}}>>{<{<{<{<{<{<{<{<{<{{<<{<{<{<{<{<}>{{<<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{{<<{{<<{<{<{<{{<<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}>>{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{{<<{<{<{<{<{<{<}>{<{<{<{{<<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<}}>>{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{{<<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<}}>>{<{<{<{<{<{<{<{{<<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}}>>{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<{<}>{{<<{<}>{<{<{{<<}>{{<<{<}>{{<<}>{<{<{<{<{<{<}>{<{<{<{{<<{<{<{{<<{<{<}>{{<<{{<<{<}>{{<<{{<<{<}>{<{<{<{{<<{<{<{<}>{<{<{<}>{<{<}>{<{<}>{{<<{<}>{<}>{<}>{<}>{<}}>>{<{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}}>>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>}>{<{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<}>{<
in the logs
OSISM release version
7.0.2
What's the problem?
When opening a spice console to a nova instance we get errors with german layout keyboards. e.g. a number sign
#
returns ano map for 163
error. This commit mitigates the issue but is not yet added to nova.References to existing reports
No response
Severity
medium
Urgency
medium