diff mbox series

[meta-oe,3/5] spice: upgrade 0.14.2 -> 0.15.2

Message ID 20230823121957.5626-3-f_l_k@t-online.de
State Under Review
Headers show
Series [meta-oe,1/5] usbredir: upgrade 0.9.0 -> 0.13.0 | expand

Commit Message

Markus Volk Aug. 23, 2023, 12:19 p.m. UTC
-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>
---
 ...0001-Convert-pthread_t-to-be-numeric.patch | 59 ------------
 ...compile-errors-on-Linux-32bit-system.patch | 96 -------------------
 ...igure.ac-explicitly-link-to-jpeg-lib.patch | 48 ----------
 .../recipes-support/spice/spice_git.bb        | 37 ++-----
 4 files changed, 10 insertions(+), 230 deletions(-)
 delete mode 100644 meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
 delete mode 100644 meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch
 delete mode 100644 meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch

Comments

Khem Raj Aug. 23, 2023, 4:28 p.m. UTC | #1
have you built it for musl targets ? If we drop the thread_id patch
this would be affected unless it has been made portable in different
way

On Wed, Aug 23, 2023 at 5:20 AM Markus Volk <f_l_k@t-online.de> wrote:
>
> -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>
> ---
>  ...0001-Convert-pthread_t-to-be-numeric.patch | 59 ------------
>  ...compile-errors-on-Linux-32bit-system.patch | 96 -------------------
>  ...igure.ac-explicitly-link-to-jpeg-lib.patch | 48 ----------
>  .../recipes-support/spice/spice_git.bb        | 37 ++-----
>  4 files changed, 10 insertions(+), 230 deletions(-)
>  delete mode 100644 meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
>  delete mode 100644 meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch
>  delete mode 100644 meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch
>
> 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 @@
> -From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Sat, 16 Jun 2018 16:21:39 -0700
> -Subject: [PATCH] Convert pthread_t to be numeric
> -
> -typecast pthread_t to unsigned long
> -pthread_t is implemented as a struct point in musl and its as per standard
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> -Upstream-Status: Pending
> -
> - server/red-channel.c | 5 +++--
> - server/red-client.c  | 6 +++---
> - 2 files changed, 6 insertions(+), 5 deletions(-)
> -
> ---- a/server/red-channel.c
> -+++ b/server/red-channel.c
> -@@ -204,7 +204,7 @@ red_channel_constructed(GObject *object)
> - {
> -     RedChannel *self = RED_CHANNEL(object);
> -
> --    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", self->priv->thread_id);
> -+    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id);
> -
> -     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
> -
> -@@ -479,7 +479,8 @@ void red_channel_remove_client(RedChanne
> -                             "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -                             "If one of the threads is != io-thread && != vcpu-thread, "
> -                             "this might be a BUG",
> --                            channel->priv->thread_id, pthread_self());
> -+                            (unsigned long)channel->priv->thread_id,
> -+                            (unsigned long)pthread_self());
> -     }
> -     spice_return_if_fail(channel);
> -     link = g_list_find(channel->priv->clients, rcc);
> ---- a/server/red-client.c
> -+++ b/server/red-client.c
> -@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *clien
> -                       "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -                       "If one of the threads is != io-thread && != vcpu-thread,"
> -                       " this might be a BUG",
> --                      client->thread_id, pthread_self());
> -+                      (unsigned long)client->thread_id, (unsigned long)pthread_self());
> -     }
> -     FOREACH_CHANNEL_CLIENT(client, rcc) {
> -         if (red_channel_client_is_connected(rcc)) {
> -@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *clien
> -                       "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -                       "If one of the threads is != io-thread && != vcpu-thread,"
> -                       " this might be a BUG",
> --                      client->thread_id,
> --                      pthread_self());
> -+                      (unsigned long)client->thread_id,
> -+                      (unsigned long)pthread_self());
> -     }
> -     red_client_set_disconnecting(client);
> -     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 @@
> -From a2af005b5d4a62839e56f42a43df793356e78f58 Mon Sep 17 00:00:00 2001
> -From: "Hongzhi.Song" <hongzhi.song@windriver.com>
> -Date: Tue, 4 Jun 2019 03:58:17 -0400
> -Subject: [PATCH] Fix compile errors on Linux 32bit system
> -
> -There are folowing compile errors on Linux 32bit system:
> -
> -red-channel.c:207:73: error: format '%x' expects argument of type
> -'unsigned int', but argument 7 has type 'long unsigned int' [-Werror=format=]
> -|207| red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
> -                                ~~~~~~~~~~~~~~~~~~~~~^
> -                        self->priv->thread_id);
> -                ~~~~~~~~~~~~~~~~~~~~~^
> -
> -On 32bit system, #define G_GSIZE_MODIFIER "". But the type of
> -'self->priv->thread_id' is 'unsigned long int' which should match '%lx'
> -not '%x'.
> -
> -So we should recovery the <0x%" G_GSIZE_MODIFIER "x"> to <0x%lx">.
> -And others files modification are similar to G_GSIZE_MODIFIER.
> -
> -Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
> ----
> -Upstream-Status: Submitted [https://lists.freedesktop.org/archives/spice-devel/2019-June/049285.html]
> -
> - server/red-channel.c    | 6 +++---
> - server/red-client.c     | 8 ++++----
> - server/red-replay-qxl.c | 2 +-
> - 3 files changed, 8 insertions(+), 8 deletions(-)
> -
> -diff --git a/server/red-channel.c b/server/red-channel.c
> -index f81142d..6a03ec2 100644
> ---- a/server/red-channel.c
> -+++ b/server/red-channel.c
> -@@ -202,7 +202,7 @@ red_channel_constructed(GObject *object)
> - {
> -     RedChannel *self = RED_CHANNEL(object);
> -
> --    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id);
> -+    red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id);
> -
> -     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
> -
> -@@ -473,8 +473,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc)
> -
> -     if (!pthread_equal(pthread_self(), channel->priv->thread_id)) {
> -         red_channel_warning(channel,
> --                            "channel->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
> --                            "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -+                            "channel->thread_id (0x%lx) != "
> -+                            "pthread_self (0x%lx)."
> -                             "If one of the threads is != io-thread && != vcpu-thread, "
> -                             "this might be a BUG",
> -                             (unsigned long)channel->priv->thread_id,
> -diff --git a/server/red-client.c b/server/red-client.c
> -index 2b859cb..ff4da2a 100644
> ---- a/server/red-client.c
> -+++ b/server/red-client.c
> -@@ -174,8 +174,8 @@ void red_client_migrate(RedClient *client)
> -     RedChannel *channel;
> -
> -     if (!pthread_equal(pthread_self(), client->thread_id)) {
> --        spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
> --                      "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -+        spice_warning("client->thread_id (0x%lx) != "
> -+                      "pthread_self (0x%lx)."
> -                       "If one of the threads is != io-thread && != vcpu-thread,"
> -                       " this might be a BUG",
> -                       (unsigned long)client->thread_id, (unsigned long)pthread_self());
> -@@ -193,8 +193,8 @@ void red_client_destroy(RedClient *client)
> -     RedChannelClient *rcc;
> -
> -     if (!pthread_equal(pthread_self(), client->thread_id)) {
> --        spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
> --                      "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -+        spice_warning("client->thread_id (0x%lx) != "
> -+                      "pthread_self (0x%lx)."
> -                       "If one of the threads is != io-thread && != vcpu-thread,"
> -                       " this might be a BUG",
> -                       (unsigned long)client->thread_id,
> -diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
> -index 6d34818..0deb406 100644
> ---- a/server/red-replay-qxl.c
> -+++ b/server/red-replay-qxl.c
> -@@ -264,7 +264,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz
> -             exit(1);
> -         }
> -         if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) {
> --            spice_error("inflate error %d (disc: %" G_GSSIZE_FORMAT ")",
> -+            spice_error("inflate error %d (disc: %li)",
> -                         ret, *size - strm.total_out);
> -             if (ret == Z_DATA_ERROR) {
> -                 /* last operation may be wrong. since we do the recording
> ---
> -2.8.1
> -
> 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 @@
> -From 6ffd9db8e02e411bda2f421abf7951dab6cf0e38 Mon Sep 17 00:00:00 2001
> -From: Hongxu Jia <hongxu.jia@windriver.com>
> -Date: Fri, 5 Feb 2021 01:43:44 -0800
> -Subject: [PATCH] configure.ac: explicitly link to jpeg lib
> -
> -Since oe has added lib jpeg to the depends, explicitly link to jpeg lib
> -to workaround build failure with autoconf 2.7
> -
> -Upstream-Status: Inappropriate [oe specific]
> -
> -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ----
> - configure.ac | 14 +-------------
> - 1 file changed, 1 insertion(+), 13 deletions(-)
> -
> -diff --git a/configure.ac b/configure.ac
> -index 1ce81f91..8bbb50de 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -191,24 +191,12 @@ AC_SUBST(SSL_CFLAGS)
> - AC_SUBST(SSL_LIBS)
> - AS_VAR_APPEND([SPICE_REQUIRES], [" openssl"])
> -
> --AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
> --    AC_MSG_CHECKING([for jpeglib.h])
> --    AC_TRY_CPP(
> --[#include <stdio.h>
> --#undef PACKAGE
> --#undef VERSION
> --#undef HAVE_STDLIB_H
> --#include <jpeglib.h>],
> --        JPEG_LIBS='-ljpeg'
> --        AC_MSG_RESULT($jpeg_ok),
> --      AC_MSG_ERROR([jpeglib.h not found])),
> --    AC_MSG_ERROR([libjpeg not found]))
> -+JPEG_LIBS='-ljpeg'
> - AC_SUBST(JPEG_LIBS)
> -
> - AC_CHECK_LIB(z, deflate, Z_LIBS='-lz', AC_MSG_ERROR([zlib not found]))
> - AC_SUBST(Z_LIBS)
> -
> --
> - AC_ARG_ENABLE([manual],
> -                AS_HELP_STRING([--enable-manual=@<:@auto/yes/no@:>@],
> -                               [Build SPICE manual]),
> ---
> -2.29.2
> -
> 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."
>  LICENSE = "LGPL-2.1-or-later"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
>
> -PV = "0.14.2+git${SRCPV}"
> +PV = "0.15.2"
>
> -SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b"
> -SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671"
> +SRCREV = "0c2c1413a8b387ea597a95b6c867470a7c56c8ab"
>
> -SRCREV_FORMAT = "spice_spice-common"
> -
> -SRC_URI = " \
> -    git://anongit.freedesktop.org/spice/spice;name=spice;branch=master \
> -    git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common;branch=master \
> -    file://0001-Convert-pthread_t-to-be-numeric.patch \
> -    file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \
> -    file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \
> -"
> +SRC_URI = "gitsm://gitlab.freedesktop.org/spice/spice;branch=master;protocol=https"
>
>  S = "${WORKDIR}/git"
>
>  CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database."
>
> -inherit autotools gettext python3native python3-dir pkgconfig
> +inherit meson gettext python3native python3-dir pkgconfig
>
> -DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python3-pyparsing-native python3-six-native glib-2.0-native"
> +DEPENDS = "spice-protocol jpeg pixman alsa-lib glib-2.0 gdk-pixbuf lz4 python3-pyparsing-native python3-six-native glib-2.0-native zlib"
>  DEPENDS:append:class-nativesdk = " nativesdk-openssl"
>
>  export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3"
>
> -CFLAGS:append = " -Wno-error"
> -
>  PACKAGECONFIG:class-native = ""
>  PACKAGECONFIG:class-nativesdk = ""
> -PACKAGECONFIG ?= "sasl"
> +PACKAGECONFIG ?= "sasl opus smartcard gstreamer"
>
> -PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051"
> -PACKAGECONFIG[smartcard] = "--enable-smartcard,--disable-smartcard,libcacard,"
> -PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,"
> -PACKAGECONFIG[client] = "--enable-client,--disable-client,,"
> -PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,,"
> -PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus,"
> -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,,"
> -PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama,"
> +PACKAGECONFIG[gstreamer] = "-Dgstreamer=1.0,-Dgstreamer=no,gstreamer1.0 gstreamer1.0-plugins-base"
> +PACKAGECONFIG[smartcard] = "-Dsmartcard=enabled,-Dsmartcard=disabled,libcacard,libcacard"
> +PACKAGECONFIG[sasl] = "-Dsasl=true,-Dsasl=false,cyrus-sasl,"
> +PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus,"
>
>  COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux'
>
>  BBCLASSEXTEND = "native nativesdk"
> -
> -EXTRA_OECONF:append:toolchain-clang = " --disable-werror"
> --
> 2.41.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#104544): https://lists.openembedded.org/g/openembedded-devel/message/104544
> Mute This Topic: https://lists.openembedded.org/mt/100913321/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Aug. 23, 2023, 5:22 p.m. UTC | #2
Ok, thanks.

On Wed, Aug 23, 2023 at 10:19 AM <mrksvolk@googlemail.com> wrote:

> On Wed, Aug 23 2023 at 09:28:39 AM -07:00:00, Khem Raj <raj.khem@gmail.com>
> wrote:
>
> have you built it for musl targets ? If we drop the thread_id patch this
> would be affected unless it has been made portable in different way
>
>
> The file that was patched has been removed. Looks like it was rewritten in
> cpp
> I was able to build spice for musl x86_64 without errors
>
Martin Jansa Aug. 30, 2023, 7:35 a.m. UTC | #3
Looks like orc dependency is mandatory now (probably pulled into RSS by
something else in your builds, but not in builds without x11 in
DISTRO_FEATURES):

meson.build:139:23: ERROR: Dependency "orc-0.4" not found, tried pkgconfig

On Wed, Aug 23, 2023 at 2:20 PM Markus Volk <f_l_k@t-online.de> wrote:

> -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>
> ---
>  ...0001-Convert-pthread_t-to-be-numeric.patch | 59 ------------
>  ...compile-errors-on-Linux-32bit-system.patch | 96 -------------------
>  ...igure.ac-explicitly-link-to-jpeg-lib.patch | 48 ----------
>  .../recipes-support/spice/spice_git.bb        | 37 ++-----
>  4 files changed, 10 insertions(+), 230 deletions(-)
>  delete mode 100644
> meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
>  delete mode 100644
> meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch
>  delete mode 100644
> meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch
>
> 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 @@
> -From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Sat, 16 Jun 2018 16:21:39 -0700
> -Subject: [PATCH] Convert pthread_t to be numeric
> -
> -typecast pthread_t to unsigned long
> -pthread_t is implemented as a struct point in musl and its as per standard
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> -Upstream-Status: Pending
> -
> - server/red-channel.c | 5 +++--
> - server/red-client.c  | 6 +++---
> - 2 files changed, 6 insertions(+), 5 deletions(-)
> -
> ---- a/server/red-channel.c
> -+++ b/server/red-channel.c
> -@@ -204,7 +204,7 @@ red_channel_constructed(GObject *object)
> - {
> -     RedChannel *self = RED_CHANNEL(object);
> -
> --    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
> self->priv->thread_id);
> -+    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
> (unsigned long)self->priv->thread_id);
> -
> -     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
> -
> -@@ -479,7 +479,8 @@ void red_channel_remove_client(RedChanne
> -                             "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -                             "If one of the threads is != io-thread && !=
> vcpu-thread, "
> -                             "this might be a BUG",
> --                            channel->priv->thread_id, pthread_self());
> -+                            (unsigned long)channel->priv->thread_id,
> -+                            (unsigned long)pthread_self());
> -     }
> -     spice_return_if_fail(channel);
> -     link = g_list_find(channel->priv->clients, rcc);
> ---- a/server/red-client.c
> -+++ b/server/red-client.c
> -@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *clien
> -                       "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -                       "If one of the threads is != io-thread && !=
> vcpu-thread,"
> -                       " this might be a BUG",
> --                      client->thread_id, pthread_self());
> -+                      (unsigned long)client->thread_id, (unsigned
> long)pthread_self());
> -     }
> -     FOREACH_CHANNEL_CLIENT(client, rcc) {
> -         if (red_channel_client_is_connected(rcc)) {
> -@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *clien
> -                       "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -                       "If one of the threads is != io-thread && !=
> vcpu-thread,"
> -                       " this might be a BUG",
> --                      client->thread_id,
> --                      pthread_self());
> -+                      (unsigned long)client->thread_id,
> -+                      (unsigned long)pthread_self());
> -     }
> -     red_client_set_disconnecting(client);
> -     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 @@
> -From a2af005b5d4a62839e56f42a43df793356e78f58 Mon Sep 17 00:00:00 2001
> -From: "Hongzhi.Song" <hongzhi.song@windriver.com>
> -Date: Tue, 4 Jun 2019 03:58:17 -0400
> -Subject: [PATCH] Fix compile errors on Linux 32bit system
> -
> -There are folowing compile errors on Linux 32bit system:
> -
> -red-channel.c:207:73: error: format '%x' expects argument of type
> -'unsigned int', but argument 7 has type 'long unsigned int'
> [-Werror=format=]
> -|207| red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
> -                                ~~~~~~~~~~~~~~~~~~~~~^
> -                        self->priv->thread_id);
> -                ~~~~~~~~~~~~~~~~~~~~~^
> -
> -On 32bit system, #define G_GSIZE_MODIFIER "". But the type of
> -'self->priv->thread_id' is 'unsigned long int' which should match '%lx'
> -not '%x'.
> -
> -So we should recovery the <0x%" G_GSIZE_MODIFIER "x"> to <0x%lx">.
> -And others files modification are similar to G_GSIZE_MODIFIER.
> -
> -Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
> ----
> -Upstream-Status: Submitted [
> https://lists.freedesktop.org/archives/spice-devel/2019-June/049285.html]
> -
> - server/red-channel.c    | 6 +++---
> - server/red-client.c     | 8 ++++----
> - server/red-replay-qxl.c | 2 +-
> - 3 files changed, 8 insertions(+), 8 deletions(-)
> -
> -diff --git a/server/red-channel.c b/server/red-channel.c
> -index f81142d..6a03ec2 100644
> ---- a/server/red-channel.c
> -+++ b/server/red-channel.c
> -@@ -202,7 +202,7 @@ red_channel_constructed(GObject *object)
> - {
> -     RedChannel *self = RED_CHANNEL(object);
> -
> --    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
> (unsigned long)self->priv->thread_id);
> -+    red_channel_debug(self, "thread_id 0x%lx", (unsigned
> long)self->priv->thread_id);
> -
> -     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
> -
> -@@ -473,8 +473,8 @@ void red_channel_remove_client(RedChannel *channel,
> RedChannelClient *rcc)
> -
> -     if (!pthread_equal(pthread_self(), channel->priv->thread_id)) {
> -         red_channel_warning(channel,
> --                            "channel->thread_id (0x%" G_GSIZE_MODIFIER
> "x) != "
> --                            "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -+                            "channel->thread_id (0x%lx) != "
> -+                            "pthread_self (0x%lx)."
> -                             "If one of the threads is != io-thread && !=
> vcpu-thread, "
> -                             "this might be a BUG",
> -                             (unsigned long)channel->priv->thread_id,
> -diff --git a/server/red-client.c b/server/red-client.c
> -index 2b859cb..ff4da2a 100644
> ---- a/server/red-client.c
> -+++ b/server/red-client.c
> -@@ -174,8 +174,8 @@ void red_client_migrate(RedClient *client)
> -     RedChannel *channel;
> -
> -     if (!pthread_equal(pthread_self(), client->thread_id)) {
> --        spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
> --                      "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -+        spice_warning("client->thread_id (0x%lx) != "
> -+                      "pthread_self (0x%lx)."
> -                       "If one of the threads is != io-thread && !=
> vcpu-thread,"
> -                       " this might be a BUG",
> -                       (unsigned long)client->thread_id, (unsigned
> long)pthread_self());
> -@@ -193,8 +193,8 @@ void red_client_destroy(RedClient *client)
> -     RedChannelClient *rcc;
> -
> -     if (!pthread_equal(pthread_self(), client->thread_id)) {
> --        spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
> --                      "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
> -+        spice_warning("client->thread_id (0x%lx) != "
> -+                      "pthread_self (0x%lx)."
> -                       "If one of the threads is != io-thread && !=
> vcpu-thread,"
> -                       " this might be a BUG",
> -                       (unsigned long)client->thread_id,
> -diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
> -index 6d34818..0deb406 100644
> ---- a/server/red-replay-qxl.c
> -+++ b/server/red-replay-qxl.c
> -@@ -264,7 +264,7 @@ static replay_t read_binary(SpiceReplay *replay,
> const char *prefix, size_t *siz
> -             exit(1);
> -         }
> -         if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) {
> --            spice_error("inflate error %d (disc: %" G_GSSIZE_FORMAT ")",
> -+            spice_error("inflate error %d (disc: %li)",
> -                         ret, *size - strm.total_out);
> -             if (ret == Z_DATA_ERROR) {
> -                 /* last operation may be wrong. since we do the recording
> ---
> -2.8.1
> -
> 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 @@
> -From 6ffd9db8e02e411bda2f421abf7951dab6cf0e38 Mon Sep 17 00:00:00 2001
> -From: Hongxu Jia <hongxu.jia@windriver.com>
> -Date: Fri, 5 Feb 2021 01:43:44 -0800
> -Subject: [PATCH] configure.ac: explicitly link to jpeg lib
> -
> -Since oe has added lib jpeg to the depends, explicitly link to jpeg lib
> -to workaround build failure with autoconf 2.7
> -
> -Upstream-Status: Inappropriate [oe specific]
> -
> -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ----
> - configure.ac | 14 +-------------
> - 1 file changed, 1 insertion(+), 13 deletions(-)
> -
> -diff --git a/configure.ac b/configure.ac
> -index 1ce81f91..8bbb50de 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -191,24 +191,12 @@ AC_SUBST(SSL_CFLAGS)
> - AC_SUBST(SSL_LIBS)
> - AS_VAR_APPEND([SPICE_REQUIRES], [" openssl"])
> -
> --AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
> --    AC_MSG_CHECKING([for jpeglib.h])
> --    AC_TRY_CPP(
> --[#include <stdio.h>
> --#undef PACKAGE
> --#undef VERSION
> --#undef HAVE_STDLIB_H
> --#include <jpeglib.h>],
> --        JPEG_LIBS='-ljpeg'
> --        AC_MSG_RESULT($jpeg_ok),
> --      AC_MSG_ERROR([jpeglib.h not found])),
> --    AC_MSG_ERROR([libjpeg not found]))
> -+JPEG_LIBS='-ljpeg'
> - AC_SUBST(JPEG_LIBS)
> -
> - AC_CHECK_LIB(z, deflate, Z_LIBS='-lz', AC_MSG_ERROR([zlib not found]))
> - AC_SUBST(Z_LIBS)
> -
> --
> - AC_ARG_ENABLE([manual],
> -                AS_HELP_STRING([--enable-manual=@<:@auto/yes/no@:>@],
> -                               [Build SPICE manual]),
> ---
> -2.29.2
> -
> 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."
>  LICENSE = "LGPL-2.1-or-later"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
>
> -PV = "0.14.2+git${SRCPV}"
> +PV = "0.15.2"
>
> -SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b"
> -SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671"
> +SRCREV = "0c2c1413a8b387ea597a95b6c867470a7c56c8ab"
>
> -SRCREV_FORMAT = "spice_spice-common"
> -
> -SRC_URI = " \
> -    git://anongit.freedesktop.org/spice/spice;name=spice;branch=master \
> -    git://
> anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common;branch=master
> \
> -    file://0001-Convert-pthread_t-to-be-numeric.patch \
> -    file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \
> -    file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \
> -"
> +SRC_URI = "gitsm://
> gitlab.freedesktop.org/spice/spice;branch=master;protocol=https"
>
>  S = "${WORKDIR}/git"
>
>  CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by
> inaccurate CPE in the NVD database."
>
> -inherit autotools gettext python3native python3-dir pkgconfig
> +inherit meson gettext python3native python3-dir pkgconfig
>
> -DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0
> python3-pyparsing-native python3-six-native glib-2.0-native"
> +DEPENDS = "spice-protocol jpeg pixman alsa-lib glib-2.0 gdk-pixbuf lz4
> python3-pyparsing-native python3-six-native glib-2.0-native zlib"
>  DEPENDS:append:class-nativesdk = " nativesdk-openssl"
>
>  export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3"
>
> -CFLAGS:append = " -Wno-error"
> -
>  PACKAGECONFIG:class-native = ""
>  PACKAGECONFIG:class-nativesdk = ""
> -PACKAGECONFIG ?= "sasl"
> +PACKAGECONFIG ?= "sasl opus smartcard gstreamer"
>
> -PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051"
> -PACKAGECONFIG[smartcard] =
> "--enable-smartcard,--disable-smartcard,libcacard,"
> -PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,"
> -PACKAGECONFIG[client] = "--enable-client,--disable-client,,"
> -PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,,"
> -PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus,"
> -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,,"
> -PACKAGECONFIG[xinerama] =
> "--enable-xinerama,--disable-xinerama,libxinerama,"
> +PACKAGECONFIG[gstreamer] = "-Dgstreamer=1.0,-Dgstreamer=no,gstreamer1.0
> gstreamer1.0-plugins-base"
> +PACKAGECONFIG[smartcard] =
> "-Dsmartcard=enabled,-Dsmartcard=disabled,libcacard,libcacard"
> +PACKAGECONFIG[sasl] = "-Dsasl=true,-Dsasl=false,cyrus-sasl,"
> +PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus,"
>
>  COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux'
>
>  BBCLASSEXTEND = "native nativesdk"
> -
> -EXTRA_OECONF:append:toolchain-clang = " --disable-werror"
> --
> 2.41.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#104544):
> https://lists.openembedded.org/g/openembedded-devel/message/104544
> Mute This Topic: https://lists.openembedded.org/mt/100913321/3617156
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> Martin.Jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

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 @@ 
-From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 16 Jun 2018 16:21:39 -0700
-Subject: [PATCH] Convert pthread_t to be numeric
-
-typecast pthread_t to unsigned long
-pthread_t is implemented as a struct point in musl and its as per standard
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- server/red-channel.c | 5 +++--
- server/red-client.c  | 6 +++---
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
---- a/server/red-channel.c
-+++ b/server/red-channel.c
-@@ -204,7 +204,7 @@ red_channel_constructed(GObject *object)
- {
-     RedChannel *self = RED_CHANNEL(object);
- 
--    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", self->priv->thread_id);
-+    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id);
- 
-     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
- 
-@@ -479,7 +479,8 @@ void red_channel_remove_client(RedChanne
-                             "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-                             "If one of the threads is != io-thread && != vcpu-thread, "
-                             "this might be a BUG",
--                            channel->priv->thread_id, pthread_self());
-+                            (unsigned long)channel->priv->thread_id,
-+                            (unsigned long)pthread_self());
-     }
-     spice_return_if_fail(channel);
-     link = g_list_find(channel->priv->clients, rcc);
---- a/server/red-client.c
-+++ b/server/red-client.c
-@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *clien
-                       "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-                       "If one of the threads is != io-thread && != vcpu-thread,"
-                       " this might be a BUG",
--                      client->thread_id, pthread_self());
-+                      (unsigned long)client->thread_id, (unsigned long)pthread_self());
-     }
-     FOREACH_CHANNEL_CLIENT(client, rcc) {
-         if (red_channel_client_is_connected(rcc)) {
-@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *clien
-                       "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-                       "If one of the threads is != io-thread && != vcpu-thread,"
-                       " this might be a BUG",
--                      client->thread_id,
--                      pthread_self());
-+                      (unsigned long)client->thread_id,
-+                      (unsigned long)pthread_self());
-     }
-     red_client_set_disconnecting(client);
-     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 @@ 
-From a2af005b5d4a62839e56f42a43df793356e78f58 Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Tue, 4 Jun 2019 03:58:17 -0400
-Subject: [PATCH] Fix compile errors on Linux 32bit system
-
-There are folowing compile errors on Linux 32bit system:
-
-red-channel.c:207:73: error: format '%x' expects argument of type
-'unsigned int', but argument 7 has type 'long unsigned int' [-Werror=format=]
-|207| red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
-                                ~~~~~~~~~~~~~~~~~~~~~^
-                        self->priv->thread_id);
-                ~~~~~~~~~~~~~~~~~~~~~^
-
-On 32bit system, #define G_GSIZE_MODIFIER "". But the type of
-'self->priv->thread_id' is 'unsigned long int' which should match '%lx'
-not '%x'.
-
-So we should recovery the <0x%" G_GSIZE_MODIFIER "x"> to <0x%lx">.
-And others files modification are similar to G_GSIZE_MODIFIER.
-
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
-Upstream-Status: Submitted [https://lists.freedesktop.org/archives/spice-devel/2019-June/049285.html]
-
- server/red-channel.c    | 6 +++---
- server/red-client.c     | 8 ++++----
- server/red-replay-qxl.c | 2 +-
- 3 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/server/red-channel.c b/server/red-channel.c
-index f81142d..6a03ec2 100644
---- a/server/red-channel.c
-+++ b/server/red-channel.c
-@@ -202,7 +202,7 @@ red_channel_constructed(GObject *object)
- {
-     RedChannel *self = RED_CHANNEL(object);
- 
--    red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id);
-+    red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id);
- 
-     RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
- 
-@@ -473,8 +473,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc)
- 
-     if (!pthread_equal(pthread_self(), channel->priv->thread_id)) {
-         red_channel_warning(channel,
--                            "channel->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
--                            "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-+                            "channel->thread_id (0x%lx) != "
-+                            "pthread_self (0x%lx)."
-                             "If one of the threads is != io-thread && != vcpu-thread, "
-                             "this might be a BUG",
-                             (unsigned long)channel->priv->thread_id,
-diff --git a/server/red-client.c b/server/red-client.c
-index 2b859cb..ff4da2a 100644
---- a/server/red-client.c
-+++ b/server/red-client.c
-@@ -174,8 +174,8 @@ void red_client_migrate(RedClient *client)
-     RedChannel *channel;
- 
-     if (!pthread_equal(pthread_self(), client->thread_id)) {
--        spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
--                      "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-+        spice_warning("client->thread_id (0x%lx) != "
-+                      "pthread_self (0x%lx)."
-                       "If one of the threads is != io-thread && != vcpu-thread,"
-                       " this might be a BUG",
-                       (unsigned long)client->thread_id, (unsigned long)pthread_self());
-@@ -193,8 +193,8 @@ void red_client_destroy(RedClient *client)
-     RedChannelClient *rcc;
- 
-     if (!pthread_equal(pthread_self(), client->thread_id)) {
--        spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
--                      "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-+        spice_warning("client->thread_id (0x%lx) != "
-+                      "pthread_self (0x%lx)."
-                       "If one of the threads is != io-thread && != vcpu-thread,"
-                       " this might be a BUG",
-                       (unsigned long)client->thread_id,
-diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
-index 6d34818..0deb406 100644
---- a/server/red-replay-qxl.c
-+++ b/server/red-replay-qxl.c
-@@ -264,7 +264,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz
-             exit(1);
-         }
-         if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) {
--            spice_error("inflate error %d (disc: %" G_GSSIZE_FORMAT ")",
-+            spice_error("inflate error %d (disc: %li)",
-                         ret, *size - strm.total_out);
-             if (ret == Z_DATA_ERROR) {
-                 /* last operation may be wrong. since we do the recording
--- 
-2.8.1
-
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 @@ 
-From 6ffd9db8e02e411bda2f421abf7951dab6cf0e38 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 5 Feb 2021 01:43:44 -0800
-Subject: [PATCH] configure.ac: explicitly link to jpeg lib
-
-Since oe has added lib jpeg to the depends, explicitly link to jpeg lib
-to workaround build failure with autoconf 2.7
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 14 +-------------
- 1 file changed, 1 insertion(+), 13 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1ce81f91..8bbb50de 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -191,24 +191,12 @@ AC_SUBST(SSL_CFLAGS)
- AC_SUBST(SSL_LIBS)
- AS_VAR_APPEND([SPICE_REQUIRES], [" openssl"])
- 
--AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
--    AC_MSG_CHECKING([for jpeglib.h])
--    AC_TRY_CPP(
--[#include <stdio.h>
--#undef PACKAGE
--#undef VERSION
--#undef HAVE_STDLIB_H
--#include <jpeglib.h>],
--        JPEG_LIBS='-ljpeg'
--        AC_MSG_RESULT($jpeg_ok),
--	AC_MSG_ERROR([jpeglib.h not found])),
--    AC_MSG_ERROR([libjpeg not found]))
-+JPEG_LIBS='-ljpeg'
- AC_SUBST(JPEG_LIBS)
- 
- AC_CHECK_LIB(z, deflate, Z_LIBS='-lz', AC_MSG_ERROR([zlib not found]))
- AC_SUBST(Z_LIBS)
- 
--
- AC_ARG_ENABLE([manual],
-                AS_HELP_STRING([--enable-manual=@<:@auto/yes/no@:>@],
-                               [Build SPICE manual]),
--- 
-2.29.2
-
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."
 LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-PV = "0.14.2+git${SRCPV}"
+PV = "0.15.2"
 
-SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b"
-SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671"
+SRCREV = "0c2c1413a8b387ea597a95b6c867470a7c56c8ab"
 
-SRCREV_FORMAT = "spice_spice-common"
-
-SRC_URI = " \
-    git://anongit.freedesktop.org/spice/spice;name=spice;branch=master \
-    git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common;branch=master \
-    file://0001-Convert-pthread_t-to-be-numeric.patch \
-    file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \
-    file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \
-"
+SRC_URI = "gitsm://gitlab.freedesktop.org/spice/spice;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
 CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database."
 
-inherit autotools gettext python3native python3-dir pkgconfig
+inherit meson gettext python3native python3-dir pkgconfig
 
-DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python3-pyparsing-native python3-six-native glib-2.0-native"
+DEPENDS = "spice-protocol jpeg pixman alsa-lib glib-2.0 gdk-pixbuf lz4 python3-pyparsing-native python3-six-native glib-2.0-native zlib"
 DEPENDS:append:class-nativesdk = " nativesdk-openssl"
 
 export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3"
 
-CFLAGS:append = " -Wno-error"
-
 PACKAGECONFIG:class-native = ""
 PACKAGECONFIG:class-nativesdk = ""
-PACKAGECONFIG ?= "sasl"
+PACKAGECONFIG ?= "sasl opus smartcard gstreamer"
 
-PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051"
-PACKAGECONFIG[smartcard] = "--enable-smartcard,--disable-smartcard,libcacard,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,"
-PACKAGECONFIG[client] = "--enable-client,--disable-client,,"
-PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,,"
-PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus,"
-PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,,"
-PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama,"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=1.0,-Dgstreamer=no,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[smartcard] = "-Dsmartcard=enabled,-Dsmartcard=disabled,libcacard,libcacard"
+PACKAGECONFIG[sasl] = "-Dsasl=true,-Dsasl=false,cyrus-sasl,"
+PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus,"
 
 COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux'
 
 BBCLASSEXTEND = "native nativesdk"
-
-EXTRA_OECONF:append:toolchain-clang = " --disable-werror"