diff options
author | Markus Volk <f_l_k@t-online.de> | 2023-08-23 14:19:55 +0200 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2023-08-26 17:32:44 -0700 |
commit | 9320d339008a09228d4ae67716c161ce68d54e17 (patch) | |
tree | 621305dbf164c6f8e511aa87d33d996099549c7c | |
parent | 1b8c39fe9834ed7b6f8857152f369027ffd0a35e (diff) | |
download | meta-openembedded-9320d339008a09228d4ae67716c161ce68d54e17.tar.gz |
spice: upgrade 0.14.2 -> 0.15.2
-switch to meson buildsystem
-remove patches
-update dependencies
-fetch spice-common as a submodule
Major Changes in 0.15.2:
Really minor fix release, mainly to fix a distribution issue
Add missing file to distribution
Fix sound recording fix in case of buffer wrapping
Major Changes in 0.15.1:
Fix some compatibility issues with FreeBSD
Fix some minor issue with build
Improve packaging with Meson
Lot of C++ improves (clang-tidy)
Fix some compatibility with no-Glibc libraries (like Musl)
Fix minor leaks shutting down library
Add Doxygen file to distribution
Fix a longstanding issue related to surface updates where wrong surfaces were possibly used
Fix compatibility with OpenSSL 3
Updates and fixes for CI
Use more random connection IDs to fix possible issues with proxies
Major Changes in 0.15:
This is the first release in the new 0.15.x stable series. This release should
be ready for production use.
Minor updates to CI
Some compatibility with OpenSSL
Change the behavior of handle_dev_start ignoring multiple start requests
Ignore multiple calls to handle_dev_stop
Pick up newer spice-common to fix a buffer overflow issue
Major Changes in 0.14.91:
IMPORTANT
0.14.91 is the first release candidate for the stable 0.15.x series. While some
bugs might still be present, it should be reasonably stable. If you are looking
for stability for daily use, please keep using the latest 0.14.x release.
Support UNIX abstract sockets
Fix some potential thread race condition in RedClient
Many cleanups in the code
Improve migration test script
Update in protocol documentation
Improve Meson build
Removed CELT support
Update CI
Removed QXLWorker definition, it was deprecated 6 years ago
Fix some compatibility with MacOS
Fix some compatibility with Windows
Move the project to C++
Some fixes for SASL dealing with WebDAV
Fix minor Coverity reports
Add Doxygen support, manually built with "make doxy"
Support more mouse buttons (up to 16 buttons)
CVE-2020-14355 multiple buffer overflow vulnerabilities in QUIC decoding
code
Major Changes in 0.14.3:
Main changes are WebSocket and support for Windows.
Add support for WebSocket, this will allow to use spice-html5 without proxy
Support Windows, now Qemu Windows can be build enabling Spice
Fix some alignment problem
Converted some documentation to Asciidoc format to make easier to update,
updated some
Minor compatibility fix for PPC64EL and ARMHF
Minor fixes for big endian machines like MIPS
Avoid some crashes with some buggy guest drivers, simply ignore the invalid
request
Fix for old OpenSSL versions
Minor fix for Windows clients and brushes, fixed an issue with Photoshop
under Windows 7
Add ability to query video-codecs
Small use-after-free fix
Fix for debugging recording/replaying using QUIC images
Fix a regression where spice reported no monitors to the client
Fix DoS in spicevmc if WebDAV used
Updated and improved test migration script
Some minor fixes to smartcard support
Avoid possible disconnection using proxies using a in-flow keepalive
mechanism
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
4 files changed, 10 insertions, 230 deletions
diff --git a/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch b/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch deleted file mode 100644 index e63cbe3b72..0000000000 --- a/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 16 Jun 2018 16:21:39 -0700 | ||
4 | Subject: [PATCH] Convert pthread_t to be numeric | ||
5 | |||
6 | typecast pthread_t to unsigned long | ||
7 | pthread_t is implemented as a struct point in musl and its as per standard | ||
8 | |||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | Upstream-Status: Pending | ||
12 | |||
13 | server/red-channel.c | 5 +++-- | ||
14 | server/red-client.c | 6 +++--- | ||
15 | 2 files changed, 6 insertions(+), 5 deletions(-) | ||
16 | |||
17 | --- a/server/red-channel.c | ||
18 | +++ b/server/red-channel.c | ||
19 | @@ -204,7 +204,7 @@ red_channel_constructed(GObject *object) | ||
20 | { | ||
21 | RedChannel *self = RED_CHANNEL(object); | ||
22 | |||
23 | - red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", self->priv->thread_id); | ||
24 | + red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id); | ||
25 | |||
26 | RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self); | ||
27 | |||
28 | @@ -479,7 +479,8 @@ void red_channel_remove_client(RedChanne | ||
29 | "pthread_self (0x%" G_GSIZE_MODIFIER "x)." | ||
30 | "If one of the threads is != io-thread && != vcpu-thread, " | ||
31 | "this might be a BUG", | ||
32 | - channel->priv->thread_id, pthread_self()); | ||
33 | + (unsigned long)channel->priv->thread_id, | ||
34 | + (unsigned long)pthread_self()); | ||
35 | } | ||
36 | spice_return_if_fail(channel); | ||
37 | link = g_list_find(channel->priv->clients, rcc); | ||
38 | --- a/server/red-client.c | ||
39 | +++ b/server/red-client.c | ||
40 | @@ -180,7 +180,7 @@ void red_client_migrate(RedClient *clien | ||
41 | "pthread_self (0x%" G_GSIZE_MODIFIER "x)." | ||
42 | "If one of the threads is != io-thread && != vcpu-thread," | ||
43 | " this might be a BUG", | ||
44 | - client->thread_id, pthread_self()); | ||
45 | + (unsigned long)client->thread_id, (unsigned long)pthread_self()); | ||
46 | } | ||
47 | FOREACH_CHANNEL_CLIENT(client, rcc) { | ||
48 | if (red_channel_client_is_connected(rcc)) { | ||
49 | @@ -199,8 +199,8 @@ void red_client_destroy(RedClient *clien | ||
50 | "pthread_self (0x%" G_GSIZE_MODIFIER "x)." | ||
51 | "If one of the threads is != io-thread && != vcpu-thread," | ||
52 | " this might be a BUG", | ||
53 | - client->thread_id, | ||
54 | - pthread_self()); | ||
55 | + (unsigned long)client->thread_id, | ||
56 | + (unsigned long)pthread_self()); | ||
57 | } | ||
58 | red_client_set_disconnecting(client); | ||
59 | FOREACH_CHANNEL_CLIENT(client, rcc) { | ||
diff --git a/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch b/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch deleted file mode 100644 index d04bee95fa..0000000000 --- a/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch +++ /dev/null | |||
@@ -1,96 +0,0 @@ | |||
1 | From a2af005b5d4a62839e56f42a43df793356e78f58 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Hongzhi.Song" <hongzhi.song@windriver.com> | ||
3 | Date: Tue, 4 Jun 2019 03:58:17 -0400 | ||
4 | Subject: [PATCH] Fix compile errors on Linux 32bit system | ||
5 | |||
6 | There are folowing compile errors on Linux 32bit system: | ||
7 | |||
8 | red-channel.c:207:73: error: format '%x' expects argument of type | ||
9 | 'unsigned int', but argument 7 has type 'long unsigned int' [-Werror=format=] | ||
10 | |207| red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", | ||
11 | ~~~~~~~~~~~~~~~~~~~~~^ | ||
12 | self->priv->thread_id); | ||
13 | ~~~~~~~~~~~~~~~~~~~~~^ | ||
14 | |||
15 | On 32bit system, #define G_GSIZE_MODIFIER "". But the type of | ||
16 | 'self->priv->thread_id' is 'unsigned long int' which should match '%lx' | ||
17 | not '%x'. | ||
18 | |||
19 | So we should recovery the <0x%" G_GSIZE_MODIFIER "x"> to <0x%lx">. | ||
20 | And others files modification are similar to G_GSIZE_MODIFIER. | ||
21 | |||
22 | Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com> | ||
23 | --- | ||
24 | Upstream-Status: Submitted [https://lists.freedesktop.org/archives/spice-devel/2019-June/049285.html] | ||
25 | |||
26 | server/red-channel.c | 6 +++--- | ||
27 | server/red-client.c | 8 ++++---- | ||
28 | server/red-replay-qxl.c | 2 +- | ||
29 | 3 files changed, 8 insertions(+), 8 deletions(-) | ||
30 | |||
31 | diff --git a/server/red-channel.c b/server/red-channel.c | ||
32 | index f81142d..6a03ec2 100644 | ||
33 | --- a/server/red-channel.c | ||
34 | +++ b/server/red-channel.c | ||
35 | @@ -202,7 +202,7 @@ red_channel_constructed(GObject *object) | ||
36 | { | ||
37 | RedChannel *self = RED_CHANNEL(object); | ||
38 | |||
39 | - red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id); | ||
40 | + red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id); | ||
41 | |||
42 | RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self); | ||
43 | |||
44 | @@ -473,8 +473,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc) | ||
45 | |||
46 | if (!pthread_equal(pthread_self(), channel->priv->thread_id)) { | ||
47 | red_channel_warning(channel, | ||
48 | - "channel->thread_id (0x%" G_GSIZE_MODIFIER "x) != " | ||
49 | - "pthread_self (0x%" G_GSIZE_MODIFIER "x)." | ||
50 | + "channel->thread_id (0x%lx) != " | ||
51 | + "pthread_self (0x%lx)." | ||
52 | "If one of the threads is != io-thread && != vcpu-thread, " | ||
53 | "this might be a BUG", | ||
54 | (unsigned long)channel->priv->thread_id, | ||
55 | diff --git a/server/red-client.c b/server/red-client.c | ||
56 | index 2b859cb..ff4da2a 100644 | ||
57 | --- a/server/red-client.c | ||
58 | +++ b/server/red-client.c | ||
59 | @@ -174,8 +174,8 @@ void red_client_migrate(RedClient *client) | ||
60 | RedChannel *channel; | ||
61 | |||
62 | if (!pthread_equal(pthread_self(), client->thread_id)) { | ||
63 | - spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != " | ||
64 | - "pthread_self (0x%" G_GSIZE_MODIFIER "x)." | ||
65 | + spice_warning("client->thread_id (0x%lx) != " | ||
66 | + "pthread_self (0x%lx)." | ||
67 | "If one of the threads is != io-thread && != vcpu-thread," | ||
68 | " this might be a BUG", | ||
69 | (unsigned long)client->thread_id, (unsigned long)pthread_self()); | ||
70 | @@ -193,8 +193,8 @@ void red_client_destroy(RedClient *client) | ||
71 | RedChannelClient *rcc; | ||
72 | |||
73 | if (!pthread_equal(pthread_self(), client->thread_id)) { | ||
74 | - spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != " | ||
75 | - "pthread_self (0x%" G_GSIZE_MODIFIER "x)." | ||
76 | + spice_warning("client->thread_id (0x%lx) != " | ||
77 | + "pthread_self (0x%lx)." | ||
78 | "If one of the threads is != io-thread && != vcpu-thread," | ||
79 | " this might be a BUG", | ||
80 | (unsigned long)client->thread_id, | ||
81 | diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c | ||
82 | index 6d34818..0deb406 100644 | ||
83 | --- a/server/red-replay-qxl.c | ||
84 | +++ b/server/red-replay-qxl.c | ||
85 | @@ -264,7 +264,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz | ||
86 | exit(1); | ||
87 | } | ||
88 | if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) { | ||
89 | - spice_error("inflate error %d (disc: %" G_GSSIZE_FORMAT ")", | ||
90 | + spice_error("inflate error %d (disc: %li)", | ||
91 | ret, *size - strm.total_out); | ||
92 | if (ret == Z_DATA_ERROR) { | ||
93 | /* last operation may be wrong. since we do the recording | ||
94 | -- | ||
95 | 2.8.1 | ||
96 | |||
diff --git a/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch b/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch deleted file mode 100644 index 2d05143dbf..0000000000 --- a/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | From 6ffd9db8e02e411bda2f421abf7951dab6cf0e38 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
3 | Date: Fri, 5 Feb 2021 01:43:44 -0800 | ||
4 | Subject: [PATCH] configure.ac: explicitly link to jpeg lib | ||
5 | |||
6 | Since oe has added lib jpeg to the depends, explicitly link to jpeg lib | ||
7 | to workaround build failure with autoconf 2.7 | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe specific] | ||
10 | |||
11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
12 | --- | ||
13 | configure.ac | 14 +------------- | ||
14 | 1 file changed, 1 insertion(+), 13 deletions(-) | ||
15 | |||
16 | diff --git a/configure.ac b/configure.ac | ||
17 | index 1ce81f91..8bbb50de 100644 | ||
18 | --- a/configure.ac | ||
19 | +++ b/configure.ac | ||
20 | @@ -191,24 +191,12 @@ AC_SUBST(SSL_CFLAGS) | ||
21 | AC_SUBST(SSL_LIBS) | ||
22 | AS_VAR_APPEND([SPICE_REQUIRES], [" openssl"]) | ||
23 | |||
24 | -AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, | ||
25 | - AC_MSG_CHECKING([for jpeglib.h]) | ||
26 | - AC_TRY_CPP( | ||
27 | -[#include <stdio.h> | ||
28 | -#undef PACKAGE | ||
29 | -#undef VERSION | ||
30 | -#undef HAVE_STDLIB_H | ||
31 | -#include <jpeglib.h>], | ||
32 | - JPEG_LIBS='-ljpeg' | ||
33 | - AC_MSG_RESULT($jpeg_ok), | ||
34 | - AC_MSG_ERROR([jpeglib.h not found])), | ||
35 | - AC_MSG_ERROR([libjpeg not found])) | ||
36 | +JPEG_LIBS='-ljpeg' | ||
37 | AC_SUBST(JPEG_LIBS) | ||
38 | |||
39 | AC_CHECK_LIB(z, deflate, Z_LIBS='-lz', AC_MSG_ERROR([zlib not found])) | ||
40 | AC_SUBST(Z_LIBS) | ||
41 | |||
42 | - | ||
43 | AC_ARG_ENABLE([manual], | ||
44 | AS_HELP_STRING([--enable-manual=@<:@auto/yes/no@:>@], | ||
45 | [Build SPICE manual]), | ||
46 | -- | ||
47 | 2.29.2 | ||
48 | |||
diff --git a/meta-networking/recipes-support/spice/spice_git.bb b/meta-networking/recipes-support/spice/spice_git.bb index 5732f509b1..78e3b0d88d 100644 --- a/meta-networking/recipes-support/spice/spice_git.bb +++ b/meta-networking/recipes-support/spice/spice_git.bb | |||
@@ -13,49 +13,32 @@ architectures." | |||
13 | LICENSE = "LGPL-2.1-or-later" | 13 | LICENSE = "LGPL-2.1-or-later" |
14 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | 14 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" |
15 | 15 | ||
16 | PV = "0.14.2+git${SRCPV}" | 16 | PV = "0.15.2" |
17 | 17 | ||
18 | SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b" | 18 | SRCREV = "0c2c1413a8b387ea597a95b6c867470a7c56c8ab" |
19 | SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671" | ||
20 | 19 | ||
21 | SRCREV_FORMAT = "spice_spice-common" | 20 | SRC_URI = "gitsm://gitlab.freedesktop.org/spice/spice;branch=master;protocol=https" |
22 | |||
23 | SRC_URI = " \ | ||
24 | git://anongit.freedesktop.org/spice/spice;name=spice;branch=master \ | ||
25 | git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common;branch=master \ | ||
26 | file://0001-Convert-pthread_t-to-be-numeric.patch \ | ||
27 | file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \ | ||
28 | file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \ | ||
29 | " | ||
30 | 21 | ||
31 | S = "${WORKDIR}/git" | 22 | S = "${WORKDIR}/git" |
32 | 23 | ||
33 | CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database." | 24 | CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database." |
34 | 25 | ||
35 | inherit autotools gettext python3native python3-dir pkgconfig | 26 | inherit meson gettext python3native python3-dir pkgconfig |
36 | 27 | ||
37 | DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python3-pyparsing-native python3-six-native glib-2.0-native" | 28 | DEPENDS = "spice-protocol jpeg pixman alsa-lib glib-2.0 gdk-pixbuf lz4 python3-pyparsing-native python3-six-native glib-2.0-native zlib" |
38 | DEPENDS:append:class-nativesdk = " nativesdk-openssl" | 29 | DEPENDS:append:class-nativesdk = " nativesdk-openssl" |
39 | 30 | ||
40 | export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3" | 31 | export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3" |
41 | 32 | ||
42 | CFLAGS:append = " -Wno-error" | ||
43 | |||
44 | PACKAGECONFIG:class-native = "" | 33 | PACKAGECONFIG:class-native = "" |
45 | PACKAGECONFIG:class-nativesdk = "" | 34 | PACKAGECONFIG:class-nativesdk = "" |
46 | PACKAGECONFIG ?= "sasl" | 35 | PACKAGECONFIG ?= "sasl opus smartcard gstreamer" |
47 | 36 | ||
48 | PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051" | 37 | PACKAGECONFIG[gstreamer] = "-Dgstreamer=1.0,-Dgstreamer=no,gstreamer1.0 gstreamer1.0-plugins-base" |
49 | PACKAGECONFIG[smartcard] = "--enable-smartcard,--disable-smartcard,libcacard," | 38 | PACKAGECONFIG[smartcard] = "-Dsmartcard=enabled,-Dsmartcard=disabled,libcacard,libcacard" |
50 | PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl," | 39 | PACKAGECONFIG[sasl] = "-Dsasl=true,-Dsasl=false,cyrus-sasl," |
51 | PACKAGECONFIG[client] = "--enable-client,--disable-client,," | 40 | PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus," |
52 | PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,," | ||
53 | PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus," | ||
54 | PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,," | ||
55 | PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama," | ||
56 | 41 | ||
57 | COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux' | 42 | COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux' |
58 | 43 | ||
59 | BBCLASSEXTEND = "native nativesdk" | 44 | BBCLASSEXTEND = "native nativesdk" |
60 | |||
61 | EXTRA_OECONF:append:toolchain-clang = " --disable-werror" | ||