diff options
-rw-r--r-- | user/spice-gtk/APKBUILD | 18 | ||||
-rw-r--r-- | user/spice-gtk/macro.patch | 33 |
2 files changed, 46 insertions, 5 deletions
diff --git a/user/spice-gtk/APKBUILD b/user/spice-gtk/APKBUILD index 5c11142ba..fb44cc0ec 100644 --- a/user/spice-gtk/APKBUILD +++ b/user/spice-gtk/APKBUILD @@ -13,19 +13,25 @@ depends="gst-plugins-good" depends_dev="gobject-introspection-dev gtk+3.0-dev" makedepends="$depends_dev acl-dev bash cyrus-sasl-dev eudev-dev gst-plugins-base-dev gstreamer-dev gstreamer-tools gtk-doc - json-glib-dev libjpeg-turbo-dev libucontext-dev libusb-dev + json-glib-dev libjpeg-turbo-dev libucontext-dev libxrandr-dev lz4-dev meson openssl-dev opus-dev polkit-dev - py3-pyparsing py3-six spice-protocol usbredir-dev - usbutils zlib-dev" + py3-pyparsing py3-six spice-protocol + zlib-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang spicy spice-glib:glib" -source="https://www.spice-space.org/download/gtk/$pkgname-$pkgver.tar.xz" +source="https://www.spice-space.org/download/gtk/$pkgname-$pkgver.tar.xz + macro.patch + " build() { export CFLAGS="$CFLAGS -lucontext" # Note: pulseaudio support is disabled because it's deprecated. # Audio is still supported through gstreamer. + # + # USB redirection is disabled until there is reasonable belief + # that it is endian safe. + # https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/120 meson \ --prefix=/usr \ --sysconfdir=/etc \ @@ -34,6 +40,7 @@ build() { --buildtype=release \ -Dcelt051=disabled \ -Dpulse=disabled \ + -Dusbredir=disabled \ . output ninja -C output } @@ -62,4 +69,5 @@ glib() { "$subpkgdir"/usr/lib/girepository-1.0/ } -sha512sums="27b44ac9f0cee2737ce03bb3f47c62fc0ee2402c291c49fc56cffc4ccb63e2cab001a68ba865a6375d82cb38444408d59c68469783ee4279fa818d8682e902f3 spice-gtk-0.38.tar.xz" +sha512sums="27b44ac9f0cee2737ce03bb3f47c62fc0ee2402c291c49fc56cffc4ccb63e2cab001a68ba865a6375d82cb38444408d59c68469783ee4279fa818d8682e902f3 spice-gtk-0.38.tar.xz +9bae6a1866c977d6b7e032e0fe1f8ce07ccfd8777e982453629d9dce284a6f02c68ab8b073865e3c36340e22dd2f83fbda4cabd3a5bc8a274b3a0bbf9c031ccd macro.patch" diff --git a/user/spice-gtk/macro.patch b/user/spice-gtk/macro.patch new file mode 100644 index 000000000..fc0787b93 --- /dev/null +++ b/user/spice-gtk/macro.patch @@ -0,0 +1,33 @@ +From 7363d1a0a640b6992d5967621e37c3376958d708 Mon Sep 17 00:00:00 2001 +From: Frediano Ziglio <fziglio@redhat.com> +Date: Thu, 19 Mar 2020 15:50:45 +0000 +Subject: [PATCH] channel-main: Avoid macro side effects + +In big endian system GUINT32_TO_LE macro uses the parameter +multiple time causing serial to be incremented multiple times +instead of one. +Avoid side effects using a temporary variable. + +Signed-off-by: Frediano Ziglio <fziglio@redhat.com> +Acked-by: Victor Toso <victortoso@redhat.com> +--- + src/channel-main.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/channel-main.c b/src/channel-main.c +index 0a0b9ca..d7669e8 100644 +--- a/src/channel-main.c ++++ b/src/channel-main.c +@@ -1384,7 +1384,8 @@ static void agent_clipboard_grab(SpiceMainChannel *channel, guint selection, + } + + if (test_agent_cap(channel, VD_AGENT_CAP_CLIPBOARD_GRAB_SERIAL)) { +- *(uint32_t *)grab = GUINT32_TO_LE(c->clipboard_serial[selection]++); ++ uint32_t serial = c->clipboard_serial[selection]++; ++ *(uint32_t *)grab = GUINT32_TO_LE(serial); + grab = (void *)grab + sizeof(uint32_t); + } + +-- +2.24.1 + |