spice-gtk issueshttps://gitlab.freedesktop.org/spice/spice-gtk/-/issues2024-03-28T20:15:08Zhttps://gitlab.freedesktop.org/spice/spice-gtk/-/issues/183GNOME/Mutter - Wayland Fractional Scaling Breaks VM Display Resolution2024-03-28T20:15:08ZAdonnen DagnirGNOME/Mutter - Wayland Fractional Scaling Breaks VM Display ResolutionI originally reported this to the applications Virt-Manager and GNOME Boxes, which this bug affects. I then sent it to QEMU ([qemu-project/qemu#2231](https://gitlab.com/qemu-project/qemu/-/issues/2231)), but they said this would be the c...I originally reported this to the applications Virt-Manager and GNOME Boxes, which this bug affects. I then sent it to QEMU ([qemu-project/qemu#2231](https://gitlab.com/qemu-project/qemu/-/issues/2231)), but they said this would be the correct forum. Below is an edited version of my QEMU report:
## Host environment
* Operating system: Fedora 39
* OS/kernel version: Linux 6.7.9-200.fc39.x86_64
* Architecture: x86
* QEMU flavor: qemu-system-x86_64 (I think)
* QEMU version: 8.1.3 (qemu-8.1.3.4.fc39)
* QEMU command line: I am a new user, and I am running via GUIs, namely virt-manager and GNOME Boxes, not the CLI
## Emulated/Virtualized environment
* Operating system: any (Tested Fedora 38,39, GNOME OS Nightly, and Windows 10,11)
* OS/kernel version: any
* Architecture: x86
## Description of problem
VMs are rendered at a higher resolution than the pixel count of their window, seemingly because mutter is rendering at a higher resolution then downscaling for fractional scaling. Spice reports the higher-than-native resolution to the guest OS, which then resizes to the higher resolution, and is downscaled to the actual resolution by GNOME.
## Steps to reproduce
1. Enable GNOME Mutter experimental fractional scaling
2. Launch VM
## Additional information
This only occurs when wayland fractional scaling is enabled, not when text is scaled. Since GNOME/mutter accomplishes fractional scaling by downscaling, I think the VM is being told its window has a higher resolution than it actually has, so it is rendering the VM at a higher resolution, which is then downscaled by GNOME and displayed at the display's real resolution. This VM should render at the actual resolution of the panel when set to do so. The display itself should not be scaled; only the VM viewer's GUI should be affected by this. This is a problem because it is still slightly blurry, takes more resources, and prevents me from using VMs to test graphical and scaling-related issues on my laptop without toggling scaling to 100% every time I launch a VM.
In the screenshot below, my resolution is 2256 x 1504 and I have set fractional scaling to 125%. It is worth noting (2256 / 1.25) / 3606 is approximately 0.5.
EDIT: Uploaded wrong screenshot![Screenshot_from_2024-03-19_16-38-02](/uploads/3156a9f3ed81e48197531342a733f4b2/Screenshot_from_2024-03-19_16-38-02.png)
I apologize if the report is unsatisfactory. I will provide more detail if instructed.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/182Has the MacOS remote viewer client been abandoned?2024-03-23T17:34:19Zpresi 300Has the MacOS remote viewer client been abandoned?I'm not sure if this is the correct place to add an issue about this, if it isn't, please do tell me.
The MacOS remote viewer spice client is in a horrible state. It looks and feels straight out of 2013, as that's when the copyright dat...I'm not sure if this is the correct place to add an issue about this, if it isn't, please do tell me.
The MacOS remote viewer spice client is in a horrible state. It looks and feels straight out of 2013, as that's when the copyright dates say it was last updated, however, this isn't the reason why I'm saying that it's in a horrible state. It's not the fact that no one has bothered to rebuild it for apple silicon, nor to update the build instructions in 10 years either.
The big issue with it is that it leaks memory all over the place, causing a system crash after a few hours of continuous use.
-So why not just restart it?
Because closing the application is also broken. It closes, the icon disappears from the dock, yet it's still running in the background with the only way to actually close it being to go to the system monitor and force quit it from there...
My question is, since obviously nobody hasn't given any attention to this application in 10 years, is it considered abandoned? And if yes, why isn't there any indication anywhere that it is abandoned?https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/176Incorrect auto resize VM with window when using Plasma KDE Wayland rescaled2024-02-27T06:44:24ZxndpxsIncorrect auto resize VM with window when using Plasma KDE Wayland rescaledI am getting a 3072 x 1410 when a 1080p monitor is rescaled to 125%, and 5120x2160 when rescaled to 150%.
Normal Behavior:
This should keep in a resolution above ~= 1920 x 900 even if a monitor on KDE plasma is rescaled.I am getting a 3072 x 1410 when a 1080p monitor is rescaled to 125%, and 5120x2160 when rescaled to 150%.
Normal Behavior:
This should keep in a resolution above ~= 1920 x 900 even if a monitor on KDE plasma is rescaled.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/180How to use a Port Channel on Windows guest?2024-02-16T19:54:41ZXws ZqHow to use a Port Channel on Windows guest?I'm trying to communicate between linux(host) and windows(guest) by using a Port Channel.
Based on the example provided in spicy I know how to implement the host side but not sure what to do on windows.
Is there any example code on how...I'm trying to communicate between linux(host) and windows(guest) by using a Port Channel.
Based on the example provided in spicy I know how to implement the host side but not sure what to do on windows.
Is there any example code on how to connect to my Port Channel from windows?https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/143Guest sees multiple caps_lock events when caps_lock is remapped to ctrl on th...2023-11-22T16:49:37ZDaniel BerrangeGuest sees multiple caps_lock events when caps_lock is remapped to ctrl on the clientOriginally reported against virt-viewer
https://gitlab.com/virt-viewer/virt-viewer/-/issues/29
Running on Fedora 33, with GNOME desktop, launch ```gnome-tweaks```
Under additional keyboard options, ```Caps lock behaviour```, select ``...Originally reported against virt-viewer
https://gitlab.com/virt-viewer/virt-viewer/-/issues/29
Running on Fedora 33, with GNOME desktop, launch ```gnome-tweaks```
Under additional keyboard options, ```Caps lock behaviour```, select ```Caps lock is also ctrl```.
Now attempt to interact with a guest, pressing Caps lock.
Since SPICE is forwarding raw scancodes, the guest is still going to see a "Caps lock" scancode of course.
The wierd part is that a ```press+release``` on the client results in ```press+release```, then a short delay, then ```press+release``` in the guest.
It looks like the remapping of capslock to be a modifier in the client is confusing spice-gtk somewhere, causing it to inject an extra set of input events.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/14Keys are stuck and not released in virt-viewer under excellent network condit...2023-07-11T13:07:13ZBugzilla Migration UserKeys are stuck and not released in virt-viewer under excellent network conditions## Submitted by Victor Toso
Assigned to **Spice Bug List**
**[Link to original bug (#94205)](https://bugs.freedesktop.org/show_bug.cgi?id=94205)**
## Description
++ This bug was originally reported in https://bugzilla.redhat.com/s...## Submitted by Victor Toso
Assigned to **Spice Bug List**
**[Link to original bug (#94205)](https://bugs.freedesktop.org/show_bug.cgi?id=94205)**
## Description
++ This bug was originally reported in https://bugzilla.redhat.com/show_bug.cgi?id=1286808 ++
Description of problem:
Intermittently keys are getting "stuck", using remote-viewer v2.00 and spice-gtk 0.30. I think the issue is similar to the following bug reports:
https://bugzilla.redhat.com/show_bug.cgi?id=1086650
https://bugzilla.redhat.com/show_bug.cgi?id=812347
The main difference being that it happens on a low latency/low jitter network, and the keys getting stuck are primarily modifier keys (CTRL the most, sometimes ALT & SHIFT). The most common case is using CTRL+C/CTRL+V to copy/paste, and the CTRL gets stuck or the "C" gets stuck.
Latency/Jitter example (local gigabit network):
PING 10.7.5.11 (10.7.5.11) 56(84) bytes of data.
64 bytes from 10.7.5.11: icmp_seq=1 ttl=64 time=0.222 ms
64 bytes from 10.7.5.11: icmp_seq=2 ttl=64 time=0.191 ms
64 bytes from 10.7.5.11: icmp_seq=3 ttl=64 time=0.205 ms
64 bytes from 10.7.5.11: icmp_seq=4 ttl=64 time=0.198 ms
64 bytes from 10.7.5.11: icmp_seq=5 ttl=64 time=0.200 ms
64 bytes from 10.7.5.11: icmp_seq=6 ttl=64 time=0.161 ms
64 bytes from 10.7.5.11: icmp_seq=7 ttl=64 time=0.121 ms
64 bytes from 10.7.5.11: icmp_seq=8 ttl=64 time=0.183 ms
64 bytes from 10.7.5.11: icmp_seq=9 ttl=64 time=0.130 ms
64 bytes from 10.7.5.11: icmp_seq=10 ttl=64 time=0.192 ms
--- 10.7.5.11 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8997ms
rtt min/avg/max/mdev = 0.121/0.180/0.222/0.032 ms
Version-Release number of selected component (if applicable):
remote-viewer v2.00
spice-gtk 0.30
How reproducible:
Unfortunately we can't reproduce it at will, but it seems to happen about 1-3x per day, even with "xset r off" on the client.
Previously when using spicec or remote-viewer v1.00 and spice-gtk 0.28 it seemed to happen around 4-6x per day and with more than just the modifier keys. However since upgrading to remote-viewer v2.00 and spice-gtk 0.30 it has reduced the occurrences significantly. Usually tapping the key that got stuck a few more times seems to "unstick" it.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/154Android client: gstreamer h264 crash2023-07-11T02:46:19Zdstmath dstmathAndroid client: gstreamer h264 crashspice-server: 0.15
spice-gtk: 0.39
I modified the spice-server to use h264 as default:
```
--- a/server/reds.cpp
+++ b/server/reds.cpp
@@ -3428,11 +3428,12 @@ err:
static const char default_renderer[] = "sw";
#if defined(HAVE_GSTREA...spice-server: 0.15
spice-gtk: 0.39
I modified the spice-server to use h264 as default:
```
--- a/server/reds.cpp
+++ b/server/reds.cpp
@@ -3428,11 +3428,12 @@ err:
static const char default_renderer[] = "sw";
#if defined(HAVE_GSTREAMER_1_0) || defined(HAVE_GSTREAMER_0_10)
-#define GSTREAMER_CODECS "gstreamer:mjpeg;gstreamer:h264;gstreamer:vp8;gstreamer:vp9;"
+#define GSTREAMER_CODECS "gstreamer:h264;gstreamer:mjpeg;gstreamer:vp8;gstreamer:vp9;"
#else
#define GSTREAMER_CODECS ""
#endif
-static const char default_video_codecs[] = "spice:mjpeg;" GSTREAMER_CODECS;
+//static const char default_video_codecs[] = "spice:mjpeg;" GSTREAMER_CODECS;
+static const char default_video_codecs[] = GSTREAMER_CODECS "spice:mjpeg;";
```
Then I test the linux client and windows client,they are all normal.But the Android client(aSPICE) crashed:
```
the server paly video with encode h264, the android client crashed.
2022-03-01 10:05:08.721 13727-13984/com.iiordanov.freeaSPICE D/GLib+GSpice: ../src/decode-glz.c:338 decode_header: 32x19, id 343, ref 0
2022-03-01 10:05:08.733 13727-13975/com.iiordanov.freeaSPICE E/GLib+GLib-GObject: g_type_set_qdata: assertion 'node != NULL' failed
2022-03-01 10:05:08.733 13727-13975/com.iiordanov.freeaSPICE E/GLib+GLib: g_once_init_leave: assertion 'result != 0' failed
2022-03-01 10:05:08.722 13727-13984/com.iiordanov.freeaSPICE D/GLib+GSpice: ../src/decode-glz.c:338 decode_header: 32x11, id 344, ref 0
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE E/GLib+GLib: g_once_init_leave: assertion 'result != 0' failed
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE E/signal_handler: Signal handler called with signal: 11,
2022-03-01 10:05:08.724 13727-13727/com.iiordanov.freeaSPICE W/RenderThread: type=1400 audit(0.0:95945): avc: denied { write } for name="sched_assist_boost_freq" dev="proc" ino=4026533817 scontext=u:r:untrusted_app:s0:c40,c257,c512,c768 tcontext=u:object_r:proc_slide_enable:s0 tclass=file permissive=0 app=com.iiordanov.freeaSPICE
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE I/disconnect: Disconnecting the session.
2022-03-01 10:05:08.733 13727-13975/com.iiordanov.freeaSPICE E/GLib+GLib-GObject: g_pointer_type_register_static: assertion 'g_type_from_name (name) == 0' failed
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE D/GLib+GSpice: ../src/spice-session.c:2025 session: disconnecting 0
2022-03-01 10:05:08.733 13727-13975/com.iiordanov.freeaSPICE E/GLib+GLib: g_once_init_leave: assertion 'result != 0' failed
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE E/GLib+GLib: g_once_init_leave: assertion 'result != 0' failed
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE E/signal_handler: Signal handler called with signal: 11,
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE I/disconnect: Disconnecting the session.
2022-03-01 10:05:08.734 13727-13975/com.iiordanov.freeaSPICE D/GLib+GSpice: ../src/spice-session.c:2025 session: disconnecting 0
```
I comment the signal_handle in JNI_OnLoad, and got the tombstone.The crash stack trace:
```
********** Crash dump: **********
Build fingerprint: 'OPPO/PFCM00/OP5259:11/RP1A.200720.011/1644216948985:user/release-keys'
#00 0x000000000012855c /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libspice.so (gst_buffer_get_video_meta+72) (BuildId: a6355ef17e9ba13882afe292d29245263d4e3c8b)
gst_buffer_get_video_meta
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/gst-plugins-base-1.0-1.18.4/_builddir/../gst-libs/gst/video/gstvideometa.c:175:34
#01 0x00000000000692f8 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libspice.so (BuildId: a6355ef17e9ba13882afe292d29245263d4e3c8b)
spice_gst_buffer_get_stride
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/spice-gtk-0.39.3/_builddir/../src/channel-display-gst.c:131:27
display_frame
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/spice-gtk-0.39.3/_builddir/../src/channel-display-gst.c:179:0
#02 0x0000000001edd478 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libgstreamer_android.so
g_timeout_dispatch
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/glib-2.62.6/_builddir/../glib/gmain.c:4835:11
#03 0x0000000001ee06d4 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libgstreamer_android.so (g_main_context_dispatch+252)
g_main_dispatch
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/glib-2.62.6/_builddir/../glib/gmain.c:3299:27
g_main_context_dispatch
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/glib-2.62.6/_builddir/../glib/gmain.c:4011:0
#04 0x0000000001ee0a18 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libgstreamer_android.so
g_main_context_iterate
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/glib-2.62.6/_builddir/../glib/gmain.c:4084:5
#05 0x0000000001ee0d28 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libgstreamer_android.so (g_main_loop_run+248)
g_main_loop_run
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/libs/cerbero/build/sources/android_universal/arm64/glib-2.62.6/_builddir/../glib/gmain.c:4278:5
#06 0x00000000000477e0 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libspice.so (connectSession+108) (BuildId: a6355ef17e9ba13882afe292d29245263d4e3c8b)
connectSession
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/android/android-service.c:344:9
#07 0x0000000000047658 /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/lib/arm64/libspice.so (Java_com_undatech_opaque_SpiceCommunicator_SpiceClientConnect+392) (BuildId: a6355ef17e9ba13882afe292d29245263d4e3c8b)
spiceClientConnect
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/android/android-service.c:319:9
Java_com_undatech_opaque_SpiceCommunicator_SpiceClientConnect
/home/toor/project/spice/android/remote-desktop-clients/remoteClientLib/jni/android/android-service.c:297:0
#08 0x000000000013ced4 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 35130ee764a37d8340be345bbfd36501)
#09 0x0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 35130ee764a37d8340be345bbfd36501)
#10 0x00000000001a8a6c /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 35130ee764a37d8340be345bbfd36501)
#11 0x0000000000316afc /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 35130ee764a37d8340be345bbfd36501)
#12 0x000000000030dc1c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+696) (BuildId: 35130ee764a37d8340be345bbfd36501)
#13 0x0000000000674794 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualRange+704) (BuildId: 35130ee764a37d8340be345bbfd36501)
#14 0x000000000012db14 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_range+20) (BuildId: 35130ee764a37d8340be345bbfd36501)
#15 0x00000000000057f8 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~m5pDxFas9RwkXmggY0GflA==/com.iiordanov.freeaSPICE-rFls7MPuO6-P5JXiYu7gtA==/base.apk!classes5.dex] (com.undatech.opaque.SpiceCommunicator$SpiceThread.run+36)
#16 0x00000000003042f0 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16518117543533139501)+268) (BuildId: 35130ee764a37d8340be345bbfd36501)
#17 0x000000000065fba4 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+760) (BuildId: 35130ee764a37d8340be345bbfd36501)
#18 0x000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 35130ee764a37d8340be345bbfd36501)
#19 0x0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 35130ee764a37d8340be345bbfd36501)
#20 0x00000000001a8a6c /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 35130ee764a37d8340be345bbfd36501)
#21 0x000000000054c048 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460) (BuildId: 35130ee764a37d8340be345bbfd36501)
#22 0x0000000000599c58 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1292) (BuildId: 35130ee764a37d8340be345bbfd36501)
#23 0x00000000000d991c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) (BuildId: 12976b407d82bfa84d157ca5cabe7dbc)
#24 0x000000000007a010 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 12976b407d82bfa84d157ca5cabe7dbc)
Crash dump is completed
```
```
gst_buffer_get_video_meta (GstBuffer * buffer)
{
gpointer state = NULL;
GstVideoMeta *out = NULL;
GstMeta *meta;
const GstMetaInfo *info = GST_VIDEO_META_INFO;
while ((meta = gst_buffer_iterate_meta (buffer, &state))) {
if (meta->info->api == info->api) {
GstVideoMeta *vmeta = (GstVideoMeta *) meta;
if (vmeta->id == 0)
return vmeta; /* Early out for id 0 */
if (out == NULL || vmeta->id < out->id)
out = vmeta;
}
}
return out;
}
```
info->api, info is NULL。https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/172openssl_verify: Error in server certificate verification: CA signature digest...2023-07-04T19:47:03Zdarkblaze69openssl_verify: Error in server certificate verification: CA signature digest algorithm too weakWe cannot connect with virt-viewer to old oVirt instance with old CA certificate
`(remote-viewer:12662): Spice-WARNING \*\*: 17:44:19.398: ../spice-gtk-0.42/subprojects/spice-common/common/ssl_verify.c:480:openssl_verify: Error in serve...We cannot connect with virt-viewer to old oVirt instance with old CA certificate
`(remote-viewer:12662): Spice-WARNING \*\*: 17:44:19.398: ../spice-gtk-0.42/subprojects/spice-common/common/ssl_verify.c:480:openssl_verify: Error in server certificate verification: CA signature digest algorithm too weak (num=68:depth0:/O=XXX/CN=XXXXX)`
Is it somehow possible to skip this kind of verification?
OS: Arch Linux
Edit: As it appeared it happened after switching to openssl 3. With building against openssl 1.1.1 it works great.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/171Duplicate ABIs exported by spice-glib and spice-gtk2023-06-26T11:55:28ZFrediano ZiglioDuplicate ABIs exported by spice-glib and spice-gtkNot causing many problems at the moment but 5 functions are exported and implemented by both `spice-glib` and `spice-gtk` libraries. Specifically:
- `spice_g_signal_connect_object`;
- `spice_util_get_debug`;
- `spice_util_get_version_str...Not causing many problems at the moment but 5 functions are exported and implemented by both `spice-glib` and `spice-gtk` libraries. Specifically:
- `spice_g_signal_connect_object`;
- `spice_util_get_debug`;
- `spice_util_get_version_string`;
- `spice_util_set_debug`;
- `spice_uuid_to_string`.
Most of them will behave properly and as expected however `spice_util_get_debug` and `spice_util_set_debug` save the state in library variables but there are 2 versions of them (one in `spice-glib` and another in `spice-tk`). So potentially you could enable debug with `spice_util_set_debug` but then some debug information won't be printed as they rely on other library `spice_util_get_debug`.
Beside that duplicating exports were not intended. But unfortunately they now are in the ABI and both libraries should continue to export them.
To fix that I would introduce 5 new functions in `spice-glib` (were these functions should be) and have all functions (from both libraries) call the new ones. Also, to avoid future mistakes like that it would be nice to have 2 separate symbols file, one for `spice-glib` and another for `spice-gtk`.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/167Audio hasn't worked right for nearly a year+ (pipewire related?)2023-04-02T09:11:14ZCole MickensAudio hasn't worked right for nearly a year+ (pipewire related?)I don't know what's going on but audio hasn't worked right for me for nearly a year or longer.
```
❯ virt-viewer --connect "qemu+ssh://cole@192.168.1.10/system" 'linux2020'
(virt-viewer:300596): GSpice-WARNING **: 12:57:19.200: Warning...I don't know what's going on but audio hasn't worked right for me for nearly a year or longer.
```
❯ virt-viewer --connect "qemu+ssh://cole@192.168.1.10/system" 'linux2020'
(virt-viewer:300596): GSpice-WARNING **: 12:57:19.200: Warning no automount-inhibiting implementation available
(virt-viewer:300596): GSpice-WARNING **: 12:57:26.111: (../src/spice-session.c:2333):spice_session_channel_new: runtime check failed: (s->playback_channel == NULL)
(virt-viewer:300596): GSpice-CRITICAL **: 12:57:26.111: connect_channel: assertion 'p->pchannel == NULL' failed
```
This happens every single time I try to use virt-viewer, or virt-manager, with any guest. If I quickly close the client and reopen it, IT WORKS FINE. But the second audio playback stops, the channel seems to close and then it just ... **doesn't work any more until you restart the client again.**
Combining this with the infuriating behavior WRT to hidpi clients makes using virt-{viewer,manager} an extremely frustrating exercise.
There's no other journal messages for the system or my user that look relevant.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/164Cannot detach the keyboard when I switch to other virtual desktop.2023-01-23T10:15:00Z赵怡然Cannot detach the keyboard when I switch to other virtual desktop.Bug Step:
1.the virt-manager(spice) uses the mouse/keyboard alone in FULLSCREEN (catch all of the mouse/keyboard event)
2.leave the virtual machine by shortcut key
3.use KDE's hot corners to switch others virtual desktop
4.keyboard d...Bug Step:
1.the virt-manager(spice) uses the mouse/keyboard alone in FULLSCREEN (catch all of the mouse/keyboard event)
2.leave the virtual machine by shortcut key
3.use KDE's hot corners to switch others virtual desktop
4.keyboard doesn't work,what I have typed will be redirected to the virtual machine but I have exited it, and virtual machine window is in the other virtual desktop.
I reproduced the same problem with `virt-viewer win10 --attach`, I guess it is the "Spice GL/Virtio 3D support graphical issues" because I passthough my NVIDIA and vGPU , Enable OpenGL with spice
but when I move mouse to show the top tool bar, and press Ctrl+F8 to switch virtual desktop, the bug is gone, the bug is only emerged when I switch virtual desktop by hot corners
Original issue: https://github.com/virt-manager/virt-manager/issues/428
UPDATE: When I use QXL (without OPENGL and passthough), problem is disappeared.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/165Potential leak for gst_bus_add_watch2023-01-23T10:12:14ZduanwujiePotential leak for gst_bus_add_watchIn the channel-display-gst.c
```C
bus = gst_pipeline_get_bus(GST_PIPELINE(decoder->pipeline));
gst_bus_add_watch(bus, handle_pipeline_message, decoder);
gst_object_unref(bus);
```
the gst_bus_add_watch's bus id not be free,which will ...In the channel-display-gst.c
```C
bus = gst_pipeline_get_bus(GST_PIPELINE(decoder->pipeline));
gst_bus_add_watch(bus, handle_pipeline_message, decoder);
gst_object_unref(bus);
```
the gst_bus_add_watch's bus id not be free,which will be cause gst_poll_read_controll assert error.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/87Meson build is not able to prepare distribution2022-10-08T22:09:46ZFrediano ZiglioMeson build is not able to prepare distributionTrying to do a package
```
$ git clone ssh://git@gitlab.freedesktop.org/spice/spice-gtk
Cloning into 'spice-gtk'...
...
$ cd spice-gtk
$ mkdir meson
$ cd meson
$ meson --buildtype=release ..
The Meson build system
Version: 0.49.2
...
...Trying to do a package
```
$ git clone ssh://git@gitlab.freedesktop.org/spice/spice-gtk
Cloning into 'spice-gtk'...
...
$ cd spice-gtk
$ mkdir meson
$ cd meson
$ meson --buildtype=release ..
The Meson build system
Version: 0.49.2
...
$ ninja dist
[0/1] Creating source packages
Cloning into '/tmp/spice-gtk/meson/meson-dist/spice-gtk-0.36.26-3900'...
done.
Submodule 'src/keycodemapdb' (https://gitlab.com/keycodemap/keycodemapdb.git) registered for path 'src/keycodemapdb'
Submodule 'spice-common' (/tmp/spice-common.git) registered for path 'subprojects/spice-common'
Cloning into '/tmp/spice-gtk/meson/meson-dist/spice-gtk-0.36.26-3900/src/keycodemapdb'...
fatal: repository '/tmp/spice-common.git' does not exist
fatal: clone of '/tmp/spice-common.git' into submodule path '/tmp/spice-gtk/meson/meson-dist/spice-gtk-0.36.26-3900/subprojects/spice-common' failed
Failed to clone 'subprojects/spice-common'. Retry scheduled
fatal: repository '/tmp/spice-common.git' does not exist
fatal: clone of '/tmp/spice-common.git' into submodule path '/tmp/spice-gtk/meson/meson-dist/spice-gtk-0.36.26-3900/subprojects/spice-common' failed
Failed to clone 'subprojects/spice-common' a second time, aborting
Traceback (most recent call last):
File "/home/fziglio/.local/bin/meson", line 11, in <module>
load_entry_point('meson==0.49.2', 'console_scripts', 'meson')()
File "/home/fziglio/.local/lib/python3.7/site-packages/meson-0.49.2-py3.7.egg/mesonbuild/mesonmain.py", line 209, in main
return run(sys.argv[1:], launcher)
File "/home/fziglio/.local/lib/python3.7/site-packages/meson-0.49.2-py3.7.egg/mesonbuild/mesonmain.py", line 198, in run
return run_script_command(args[1], args[2:])
File "/home/fziglio/.local/lib/python3.7/site-packages/meson-0.49.2-py3.7.egg/mesonbuild/mesonmain.py", line 146, in run_script_command
return module.run(script_args)
File "/home/fziglio/.local/lib/python3.7/site-packages/meson-0.49.2-py3.7.egg/mesonbuild/scripts/dist.py", line 192, in run
names = create_dist_git(dist_name, src_root, bld_root, dist_sub, build.dist_scripts)
File "/home/fziglio/.local/lib/python3.7/site-packages/meson-0.49.2-py3.7.egg/mesonbuild/scripts/dist.py", line 109, in create_dist_git
process_submodules(distdir)
File "/home/fziglio/.local/lib/python3.7/site-packages/meson-0.49.2-py3.7.egg/mesonbuild/scripts/dist.py", line 65, in process_submodules
subprocess.check_call(['git', 'submodule', 'update', '--init'], cwd=dirname)
File "/usr/lib64/python3.7/subprocess.py", line 347, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['git', 'submodule', 'update', '--init']' returned non-zero exit status 1.
FAILED: meson-dist
/home/fziglio/.local/bin/meson --internal dist /tmp/spice-gtk /tmp/spice-gtk/meson /home/fziglio/.local/bin/meson
ninja: build stopped: subcommand failed.
```
looks like meson is not handling correctly git modules for packaging.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/139Choppy graphics on virtio + opengl acceleration2022-09-23T10:30:53ZGhost UserChoppy graphics on virtio + opengl accelerationVirt-Viewer/Virt-Manager has a weird issue when enabling VirtIO video + Spice + OpenGL to enable 3D acceleration. Any Linux guests running on the VM has slow/choppy graphics. In addition window resize does not resize guests if on virtio ...Virt-Viewer/Virt-Manager has a weird issue when enabling VirtIO video + Spice + OpenGL to enable 3D acceleration. Any Linux guests running on the VM has slow/choppy graphics. In addition window resize does not resize guests if on virtio video. QXL works fine.
Guests confirm virgl acceleration enabled
`$ glxinfo | grep OpenGL`
```
OpenGL vendor string: Red Hat
OpenGL renderer string: virgl
OpenGL core profile version string: 4.3 (Core Profile) Mesa 19.3.4
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 19.3.4
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
```
Host's OpenGL spec (Fedora Workstation 33, Intel UHD 630)
`$ glxinfo | grep OpenGL`
```
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.4
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
```
However running the VM with QEMU directly with gl=on performs butter smooth.
`$ qemu-system-x86_64 -enable-kvm -m 2048 -vga virtio -display gtk,gl=on -cdrom AnyLinuxGuest.iso`
Note: This issue does not arise on a cleanly installed Fedora 33 Workstation (non-updated stock iso). It may be regression in recent versions.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/147disable atspi key grabbing features for spice vidget when keyboard is grapped...2022-08-15T17:45:49Zilya paschukdisable atspi key grabbing features for spice vidget when keyboard is grapped by the vmhello
I'm working in linux and using screen reader software named Orca.
it uses the atspi api to get accessibility information from all running applications.
but screen reader also needs to grep some key combinations, for example at m...hello
I'm working in linux and using screen reader software named Orca.
it uses the atspi api to get accessibility information from all running applications.
but screen reader also needs to grep some key combinations, for example at most all keys from the numpad are reassigned.
but it can't do this by usual ways because it is not current window or window manager, it is only background application.
it uses atspi api for this too.
it tells running application what keys should be grapped and this application sends such keys to the accessibility client.
as I know, in gtk this is done by the special module.
so, when I grep keys in a running vm in virt-manager, all system wide combinations are grapped, but screenreader's are not.
in all other vm toolkits which I know (VmWare, virtualbox) it works as expected, grapping all keys.
more details can be found hear:
https://github.com/virt-manager/virt-manager/issues/206https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/156Message | 'Can't redirect: there are no free USB channels.'2022-04-12T17:23:03ZRicky-TiggMessage | 'Can't redirect: there are no free USB channels.'**OS:** Fedora; **Installed components** | virt-manager v. 4.0.0; libvirt-daemon .v 8.1.0; GTK v.: 3.24.31 (from `virt-manager --debug`)
Hello. Issue reproducible via `virt-manager` and `virt-viewer`.
- Via `virt-manager`
Setting rela...**OS:** Fedora; **Installed components** | virt-manager v. 4.0.0; libvirt-daemon .v 8.1.0; GTK v.: 3.24.31 (from `virt-manager --debug`)
Hello. Issue reproducible via `virt-manager` and `virt-viewer`.
- Via `virt-manager`
Setting related to _USB redirector_ in **XML file** – a **unique** _reirector_ is enabled.
```xml
<redirdev bus="usb" type="spicevmc">
<alias name="redir0"/>
<address type="usb" bus="0" port="2"/>
</redirdev>
```
Select a device
![virt-manager_v.4.0.0_USB_redirection_with_a_unique_added_redirector](/uploads/549e8726810d8764772cb8bc1903f895/virt-manager_v.4.0.0_USB_redirection_with_a_unique_added_redirector.png)
Selecting above USB mass storage device results in the following output's sequence:
```
$ sudo virt-manager --debug
(...)
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_generic_sg1 state=VIR_NODE_DEVICE_EVENT_DELETED reason=0
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=block_sdb_Kingston_DataTraveler_3_0_5404A6C0AFF8BE81896000B7_0_0 state=VIR_NODE_DEVICE_EVENT_DELETED reason=0
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_3_0_0_0 state=VIR_NODE_DEVICE_EVENT_DELETED reason=0
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_target3_0_0 state=VIR_NODE_DEVICE_EVENT_DELETED reason=0
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_host3 state=VIR_NODE_DEVICE_EVENT_DELETED reason=0
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1051) nodedev=scsi_3_0_0_0 removed
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1051) nodedev=scsi_host3 removed
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1051) nodedev=scsi_generic_sg1 removed
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1051) nodedev=scsi_target3_0_0 removed
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1051) nodedev=block_sdb_Kingston_DataTraveler_3_0_5404A6C0AFF8BE81896000B7_0_0 removed
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1047) Requested removal of nodedev=scsi_3_0_0_0, but it's not in our object list.
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1047) Requested removal of nodedev=scsi_host3, but it's not in our object list.
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1047) Requested removal of nodedev=scsi_generic_sg1, but it's not in our object list.
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1047) Requested removal of nodedev=scsi_target3_0_0, but it's not in our object list.
[Tue, 12 Apr 2022 19:40:37 virt-manager 11707] DEBUG (connection:1047) Requested removal of nodedev=block_sdb_Kingston_DataTraveler_3_0_5404A6C0AFF8BE81896000B7_0_0, but it's not in our object list.
```
The device **is mot redirected**. Unselecting that device results in that output's sequence:
```
[Tue, 12 Apr 2022 19:47:43 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_host3 state=VIR_NODE_DEVICE_EVENT_CREATED reason=0
[Tue, 12 Apr 2022 19:47:44 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_target3_0_0 state=VIR_NODE_DEVICE_EVENT_CREATED reason=0
[Tue, 12 Apr 2022 19:47:44 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_3_0_0_0 state=VIR_NODE_DEVICE_EVENT_CREATED reason=0
[Tue, 12 Apr 2022 19:47:44 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=scsi_generic_sg1 state=VIR_NODE_DEVICE_EVENT_CREATED reason=0
[Tue, 12 Apr 2022 19:47:44 virt-manager 11707] DEBUG (connection:1070) New nodedev=scsi_3_0_0_0 requested, but it's already tracked.
[Tue, 12 Apr 2022 19:47:44 virt-manager 11707] DEBUG (connection:1070) New nodedev=scsi_target3_0_0 requested, but it's already tracked.
[Tue, 12 Apr 2022 19:47:44 virt-manager 11707] DEBUG (connection:706) node device lifecycle event: nodedev=block_sdb_Kingston_DataTraveler_3_0_5404A6C0AFF8BE81896000B7_0_0 state=VIR_NODE_DEVICE_EVENT_CREATED reason=0
```
- Via `virt-viewer`, `virt-viewer --debug -vc qemu:///system <host>`
**Identical message** in graphical redirector window however the **device is redirected**.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/155Is it possible to disable grabbing keyboard automatically?2022-03-15T07:36:11ZbeavailableIs it possible to disable grabbing keyboard automatically?After startup or when I move mouse in the vm, it will grab keyboard automatically. I don't like the default behavior, it's needless and inconvenient, because I need to switch between host and vm frequently, so I prefer to grab/ungrab key...After startup or when I move mouse in the vm, it will grab keyboard automatically. I don't like the default behavior, it's needless and inconvenient, because I need to switch between host and vm frequently, so I prefer to grab/ungrab keyboard manually by using hotkeys.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/153Support for changing preferred video compression?2022-02-14T11:12:53ZQuackdocSupport for changing preferred video compression?It would be nice to have a "--spice-preferred-compression=" equivalent for choosing video codecsIt would be nice to have a "--spice-preferred-compression=" equivalent for choosing video codecshttps://gitlab.freedesktop.org/spice/spice-gtk/-/issues/142Unable to connect to graphic server when using a proxy with params in the URI2021-11-04T13:48:33ZDaniel BerrangeUnable to connect to graphic server when using a proxy with params in the URIThis is a forwarded issue from:
https://gitlab.com/virt-viewer/virt-viewer/-/issues/24
TL;DR is that spice-gtk doesn't appear to cope with a proxy URI containing URI parameters like ```proxy=http://10.19.10.40:29876?token=m0944xfj3lo...This is a forwarded issue from:
https://gitlab.com/virt-viewer/virt-viewer/-/issues/24
TL;DR is that spice-gtk doesn't appear to cope with a proxy URI containing URI parameters like ```proxy=http://10.19.10.40:29876?token=m0944xfj3logi184kfb3```
It thinks the params are part of the port
```
(remote-viewer.exe:3052): GSpice-WARNING \*\*: 09:49:02.056: Invalid uri port: 29877?token=r5x2wroym7fd5zadbari
```
and indeed looking at ```spice_uri_parse``` I can see it doesn't try to parse params.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/92Scaling filter preference2021-09-29T21:53:36ZYaroslav FedevychScaling filter preferenceI'm viewing a low-DPI guest on a high-DPI screen. The guest has 1920x1080 resolution, the host has 3840x2160. When I go fullscreen with virt-viewer (or virt-manager's viewer, I guess they both use spice-gtk), the guest is all blurry.
Wh...I'm viewing a low-DPI guest on a high-DPI screen. The guest has 1920x1080 resolution, the host has 3840x2160. When I go fullscreen with virt-viewer (or virt-manager's viewer, I guess they both use spice-gtk), the guest is all blurry.
What I'd like, if the guest screen is resized by an integer factor, is an absence of any antialiasing whatsoever. Just larger pixels.
Can we have it, please? Or, where should I look to make a local patch for myself to enable this? I could live with this too.
For an example, have a look at how VirtualBox does it. At 200% scale, the image is sharp.