Update to v0.37
This commit is contained in:
parent
1f90b4502c
commit
14956ce6cc
@ -1,73 +0,0 @@
|
||||
From ffa4077f696585ab671ae3dcdb1ebfc53705ab91 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||
Date: Wed, 16 Jan 2019 16:13:30 +0400
|
||||
Subject: [PATCH spice-gtk 1/2] meson: improve gtk-doc build
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
- Fix the following warnings:
|
||||
./spice-gtk-sections.txt:467: warning: No declaration found for SPICE_GTK_CHECK_VERSION.
|
||||
./spice-gtk-sections.txt:468: warning: No declaration found for SPICE_GTK_MAJOR_VERSION.
|
||||
./spice-gtk-sections.txt:469: warning: No declaration found for SPICE_GTK_MICRO_VERSION.
|
||||
./spice-gtk-sections.txt:470: warning: No declaration found for SPICE_GTK_MINOR_VERSION.
|
||||
|
||||
- fixxref for glib and gtk (thus requires gtk+ to build doc)
|
||||
|
||||
- And other minor simplifications.
|
||||
|
||||
After autotools is removed, we should try to use --rebuild-types. For
|
||||
now I prefer not to touch it :)
|
||||
|
||||
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
---
|
||||
doc/reference/meson.build | 31 +++++++++++++++++++++++++------
|
||||
1 file changed, 25 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/doc/reference/meson.build b/doc/reference/meson.build
|
||||
index a121e66..72fcabe 100644
|
||||
--- a/doc/reference/meson.build
|
||||
+++ b/doc/reference/meson.build
|
||||
@@ -38,14 +38,33 @@ ignore_headers = [
|
||||
|
||||
spice_gtk_doc_dep = declare_dependency(link_with : [spice_client_gtk_lib, spice_client_glib_lib])
|
||||
|
||||
-gnome.gtkdoc('spice-gtk',
|
||||
- content_files : ['spice-gtk-overrides.txt', 'spice-gtk-overrides.txt'],
|
||||
+glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
|
||||
+glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
|
||||
+gtk_prefix = dependency('gtk+-3.0').get_pkgconfig_variable('prefix')
|
||||
+gtk_docpath = join_paths(gtk_prefix, 'share', 'gtk-doc', 'html')
|
||||
+docpath = join_paths(spice_gtk_datadir, 'gtk-doc', 'html')
|
||||
+
|
||||
+gnome.gtkdoc(meson.project_name(),
|
||||
dependencies : spice_gtk_doc_dep,
|
||||
- main_xml : 'spice-gtk-docs.xml',
|
||||
- gobject_typesfile : files('spice-gtk.types'),
|
||||
+ main_xml : meson.project_name() + '-docs.xml',
|
||||
+ gobject_typesfile : meson.project_name() + '.types',
|
||||
ignore_headers : ignore_headers,
|
||||
include_directories: spice_gtk_include,
|
||||
c_args : '-DSPICE_COMPILATION',
|
||||
install : true,
|
||||
- scan_args : ['--deprecated-guards="SPICE_DISABLE_DEPRECATED"', '--ignore-decorators="G_GNUC_INTERNAL"'],
|
||||
- src_dir : join_paths(meson.source_root(), 'src'))
|
||||
+ scan_args : [
|
||||
+ '--deprecated-guards="SPICE_DISABLE_DEPRECATED"',
|
||||
+ '--ignore-decorators="G_GNUC_INTERNAL"'
|
||||
+ ],
|
||||
+ src_dir : [
|
||||
+ join_paths(meson.source_root(), 'src'),
|
||||
+ join_paths(meson.build_root(), 'src'),
|
||||
+ ],
|
||||
+ fixxref_args: [
|
||||
+ '--html-dir=@0@'.format(docpath),
|
||||
+ '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
|
||||
+ '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
|
||||
+ '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
|
||||
+ '--extra-dir=@0@'.format(join_paths(gtk_docpath, 'gtk3')),
|
||||
+ ],
|
||||
+ )
|
||||
--
|
||||
2.20.1.98.gecbdaf0899
|
||||
|
@ -1,54 +0,0 @@
|
||||
From 9b8c32c9ee422294278934ef48a865de3737661e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||
Date: Wed, 16 Jan 2019 17:20:58 +0400
|
||||
Subject: [PATCH spice-gtk 2/2] meson: fix ninja dist, and building from
|
||||
tarball
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
meson doesn't handle git-version-gen correctly yet (see
|
||||
meson#688). Let's set the version manually for now.
|
||||
|
||||
And a tag version vX.X will also fail to build, version_info[2]
|
||||
doesn't exist.
|
||||
|
||||
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
---
|
||||
meson.build | 2 +-
|
||||
src/meson.build | 6 +++---
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index d7062af..70dd318 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -2,7 +2,7 @@
|
||||
# project definition
|
||||
#
|
||||
project('spice-gtk', 'c',
|
||||
- version : run_command('build-aux/git-version-gen', '${MESON_SOURCE_ROOT}/.tarball-version', check : true).stdout().strip(),
|
||||
+ version : '0.36',
|
||||
license : 'LGPLv2.1',
|
||||
meson_version : '>= 0.49')
|
||||
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index d9614cb..c55db44 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -8,9 +8,9 @@ spice_gtk_include += [include_directories('.')]
|
||||
version_info = meson.project_version().split('.')
|
||||
major = '@0@'.format(version_info[0])
|
||||
minor = '@0@'.format(version_info[1])
|
||||
-micro = version_info[2].split('-')[0]
|
||||
-if micro == ''
|
||||
- micro = '0'
|
||||
+micro = '0'
|
||||
+if version_info.length() > 2
|
||||
+ micro = version_info[2].split('-')[0]
|
||||
endif
|
||||
version_data = configuration_data()
|
||||
version_data.set('SPICE_GTK_MAJOR_VERSION', major)
|
||||
--
|
||||
2.20.1.98.gecbdaf0899
|
||||
|
@ -1,138 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Wed, 6 Feb 2019 15:42:53 +0100
|
||||
Subject: [PATCH] spice-widget: Use GdkSeat API on Wayland
|
||||
|
||||
Using different GDK APIs to grab and ungrab devices leads to
|
||||
undetermined behavior and can cause the cursor to remain hidden on
|
||||
ungrab on Wayland because GDK Wayland backend keeps a reference of
|
||||
the GdkSeat cursor.
|
||||
|
||||
On Wayland, use the GdkSeat API only even for ungrab, by ungrabbing the
|
||||
seat and immediately re-grabbing the remaining keyboard or pointer if
|
||||
the grab is to be retained.
|
||||
|
||||
Thanks-to: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Fixes: https://gitlab.freedesktop.org/spice/spice-gtk/issues/83
|
||||
See-also: https://gitlab.gnome.org/GNOME/gtk/issues/787
|
||||
Acked-by: Victor Toso <victortoso@redhat.com>
|
||||
---
|
||||
src/spice-widget.c | 82 +++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 78 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/spice-widget.c b/src/spice-widget.c
|
||||
index 8adcc38..fd0c935 100644
|
||||
--- a/src/spice-widget.c
|
||||
+++ b/src/spice-widget.c
|
||||
@@ -32,6 +32,9 @@
|
||||
#include <va/va_x11.h>
|
||||
#endif
|
||||
#endif
|
||||
+#ifdef GDK_WINDOWING_WAYLAND
|
||||
+#include <gdk/gdkwayland.h>
|
||||
+#endif
|
||||
#ifdef G_OS_WIN32
|
||||
#include <windows.h>
|
||||
#include <dinput.h>
|
||||
@@ -887,12 +890,46 @@ static void try_keyboard_grab(SpiceDisplay *display)
|
||||
}
|
||||
}
|
||||
|
||||
-static void ungrab_keyboard(G_GNUC_UNUSED SpiceDisplay *display)
|
||||
+static void ungrab_keyboard(SpiceDisplay *display)
|
||||
{
|
||||
+ GdkSeat *seat = spice_display_get_default_seat(display);
|
||||
+ GdkDevice *keyboard = gdk_seat_get_keyboard(seat);
|
||||
+
|
||||
+#ifdef GDK_WINDOWING_WAYLAND
|
||||
+ /* On Wayland, use the GdkSeat API alone.
|
||||
+ * We simply issue a gdk_seat_ungrab() followed immediately by another
|
||||
+ * gdk_seat_grab() on the pointer if the pointer grab is to be kept.
|
||||
+ */
|
||||
+ if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
|
||||
+ SpiceDisplayPrivate *d = display->priv;
|
||||
+
|
||||
+ gdk_seat_ungrab(seat);
|
||||
+
|
||||
+ if (d->mouse_grab_active) {
|
||||
+ GdkGrabStatus status;
|
||||
+ GdkCursor *blank = spice_display_get_blank_cursor(display);
|
||||
+
|
||||
+ status = gdk_seat_grab(seat,
|
||||
+ gtk_widget_get_window(GTK_WIDGET(display)),
|
||||
+ GDK_SEAT_CAPABILITY_ALL_POINTING,
|
||||
+ TRUE,
|
||||
+ blank,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL);
|
||||
+ if (status != GDK_GRAB_SUCCESS) {
|
||||
+ g_warning("pointer grab failed %u", status);
|
||||
+ d->mouse_grab_active = false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
/* we want to ungrab just the keyboard - it is not possible using gdk_seat_ungrab().
|
||||
See also https://bugzilla.gnome.org/show_bug.cgi?id=780133 */
|
||||
- GdkDevice *keyboard = gdk_seat_get_keyboard(spice_display_get_default_seat(display));
|
||||
gdk_device_ungrab(keyboard, GDK_CURRENT_TIME);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
}
|
||||
@@ -1148,12 +1185,49 @@ static void mouse_wrap(SpiceDisplay *display, GdkEventMotion *motion)
|
||||
|
||||
}
|
||||
|
||||
-static void ungrab_pointer(G_GNUC_UNUSED SpiceDisplay *display)
|
||||
+static void ungrab_pointer(SpiceDisplay *display)
|
||||
{
|
||||
+ GdkSeat *seat = spice_display_get_default_seat(display);
|
||||
+ GdkDevice *pointer = gdk_seat_get_pointer(seat);
|
||||
+
|
||||
+#ifdef GDK_WINDOWING_WAYLAND
|
||||
+ /* On Wayland, mixing the GdkSeat and the GdkDevice APIs leave the
|
||||
+ * cursor unchanged because the GDK Wayland backend keeps a reference
|
||||
+ * of the cursor set previously using gdk_seat_grab() attached to the
|
||||
+ * GdkSeat.
|
||||
+ * To avoid that issue, we simply issue a gdk_seat_ungrab() followed
|
||||
+ * immediately by another gdk_seat_grab() on the keyboard if the
|
||||
+ * keyboard grab is to be kept.
|
||||
+ */
|
||||
+ if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
|
||||
+ SpiceDisplayPrivate *d = display->priv;
|
||||
+
|
||||
+ gdk_seat_ungrab(seat);
|
||||
+
|
||||
+ if (d->keyboard_grab_active) {
|
||||
+ GdkGrabStatus status;
|
||||
+
|
||||
+ status = gdk_seat_grab(seat,
|
||||
+ gtk_widget_get_window(GTK_WIDGET(display)),
|
||||
+ GDK_SEAT_CAPABILITY_KEYBOARD,
|
||||
+ FALSE,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL);
|
||||
+ if (status != GDK_GRAB_SUCCESS) {
|
||||
+ g_warning("keyboard grab failed %u", status);
|
||||
+ d->keyboard_grab_active = false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
/* we want to ungrab just the pointer - it is not possible using gdk_seat_ungrab().
|
||||
See also https://bugzilla.gnome.org/show_bug.cgi?id=780133 */
|
||||
- GdkDevice *pointer = gdk_seat_get_pointer(spice_display_get_default_seat(display));
|
||||
gdk_device_ungrab(pointer, GDK_CURRENT_TIME);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Fri, 1 Feb 2019 14:35:39 +0100
|
||||
Subject: [PATCH] spice-widget: Ungrab mouse on leave event on Wayland
|
||||
|
||||
The Spice Gtk widget relies on pointer grabs to receive all pointer
|
||||
events even after the pointer has left the window.
|
||||
|
||||
While that works on X11, on Wayland there is no active pointer grab,
|
||||
so once the pointer has left the SPICE widget on Wayland, the events
|
||||
are routed to the window with the pointer focus instead of ours.
|
||||
|
||||
To avoid the problem, on Wayland, we simply ungrab the pointer once it
|
||||
leaves the window.
|
||||
|
||||
Thanks-to: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
https://gitlab.freedesktop.org/spice/spice-gtk/issues/83
|
||||
Acked-by: Victor Toso <victortoso@redhat.com>
|
||||
---
|
||||
src/spice-widget.c | 15 ++++++++++++++-
|
||||
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/spice-widget.c b/src/spice-widget.c
|
||||
index fd0c935..d924731 100644
|
||||
--- a/src/spice-widget.c
|
||||
+++ b/src/spice-widget.c
|
||||
@@ -1854,8 +1854,21 @@ static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing G_GNUC
|
||||
|
||||
DISPLAY_DEBUG(display, "%s", __FUNCTION__);
|
||||
|
||||
- if (d->mouse_grab_active)
|
||||
+ if (d->mouse_grab_active) {
|
||||
+#ifdef GDK_WINDOWING_WAYLAND
|
||||
+ /* On Wayland, there is no active pointer grab, so once the pointer
|
||||
+ * has left the window, the events are routed to the window with
|
||||
+ * pointer focus instead of ours, in which case we should just
|
||||
+ * ungrab to avoid nasty side effects. */
|
||||
+ if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
|
||||
+ GdkWindow *window = gtk_widget_get_window(widget);
|
||||
+
|
||||
+ if (window == crossing->window)
|
||||
+ try_mouse_ungrab(display);
|
||||
+ }
|
||||
+#endif
|
||||
return true;
|
||||
+ }
|
||||
|
||||
d->mouse_have_pointer = false;
|
||||
spice_gtk_session_set_mouse_has_pointer(d->gtk_session, false);
|
@ -1,32 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Rasmus Thomsen <rasmus.thomsen@protonmail.com>
|
||||
Date: Sun, 20 Jan 2019 02:09:53 +0100
|
||||
Subject: [PATCH] meson: ensure correct build order of VAPI
|
||||
|
||||
Without this commit spice-client-gtk-3.0.vapi may be built
|
||||
before spice-client-glib-2.0.vapi if build_jobs > 1. This causes
|
||||
the build to fail because the former depends on the latter
|
||||
---
|
||||
vapi/meson.build | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/vapi/meson.build b/vapi/meson.build
|
||||
index 2c4caa0..c9fef3d 100644
|
||||
--- a/vapi/meson.build
|
||||
+++ b/vapi/meson.build
|
||||
@@ -1,12 +1,13 @@
|
||||
if spice_gtk_has_vala
|
||||
- gnome.generate_vapi('spice-client-glib-2.0',
|
||||
+ spice_glib_vapi = gnome.generate_vapi('spice-client-glib-2.0',
|
||||
install : true,
|
||||
packages : ['gio-2.0', 'gstreamer-1.0'],
|
||||
sources : spice_client_glib_gir[0])
|
||||
+
|
||||
if spice_gtk_has_gtk
|
||||
gnome.generate_vapi('spice-client-gtk-3.0',
|
||||
install : true,
|
||||
- packages : ['gtk+-3.0', 'gstreamer-1.0', 'spice-client-glib-2.0'],
|
||||
+ packages : ['gtk+-3.0', 'gstreamer-1.0', spice_glib_vapi],
|
||||
gir_dirs : join_paths(meson.build_root(), 'src'),
|
||||
vapi_dirs : meson.current_build_dir(),
|
||||
sources : spice_client_gtk_gir[0])
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (spice-gtk-0.36.tar.bz2) = 2f8fd15e18b902d7ec0bcfae09d189bd26a9eedd72c9e018b201132e454513849821c46746fcb5887ea0ba995d9ff168ee46482ca1d4dbdf7580787a1298e5bf
|
||||
SHA512 (spice-gtk-0.37.tar.bz2) = a0a20bc6f25337d86e57fe1fc9586c4cc84457fc8c38cdcc5a728990a69018da0fca3ab5aa63349786b5a7508c82b716c94803eefb3495cffb7df4526db2d029
|
||||
|
@ -1,8 +1,8 @@
|
||||
#define _version_suffix
|
||||
|
||||
Name: spice-gtk
|
||||
Version: 0.36
|
||||
Release: 5%{?dist}
|
||||
Version: 0.37
|
||||
Release: 1%{?dist}
|
||||
Summary: A GTK+ widget for SPICE clients
|
||||
|
||||
License: LGPLv2+
|
||||
@ -10,16 +10,10 @@ URL: https://www.spice-space.org/spice-gtk.html
|
||||
#VCS: git:git://anongit.freedesktop.org/spice/spice-gtk
|
||||
Source0: https://www.spice-space.org/download/gtk/%{name}-%{version}%{?_version_suffix}.tar.bz2
|
||||
|
||||
Patch0001: 0001-meson-improve-gtk-doc-build.patch
|
||||
Patch0002: 0002-meson-fix-ninja-dist-and-building-from-tarball.patch
|
||||
Patch0003: 0003-spice-widget-Use-GdkSeat-API-on-Wayland.patch
|
||||
Patch0004: 0004-spice-widget-Ungrab-mouse-on-leave-event-on-Wayland.patch
|
||||
Patch0005: 0005-meson-ensure-correct-build-order-of-VAPI.patch
|
||||
|
||||
BuildRequires: git-core
|
||||
BuildRequires: meson
|
||||
BuildRequires: intltool
|
||||
BuildRequires: usbredir-devel >= 0.5.2
|
||||
BuildRequires: usbredir-devel >= 0.7.1
|
||||
BuildRequires: libusb1-devel >= 1.0.16
|
||||
BuildRequires: pixman-devel libjpeg-turbo-devel
|
||||
BuildRequires: opus-devel
|
||||
@ -40,7 +34,7 @@ BuildRequires: lz4-devel
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: json-glib-devel
|
||||
BuildRequires: spice-protocol >= 0.12.15
|
||||
BuildRequires: gstreamer1-devel gstreamer1-plugins-base-devel
|
||||
BuildRequires: gstreamer1-devel >= 1.10 gstreamer1-plugins-base-devel >= 1.10
|
||||
BuildRequires: python3-six
|
||||
BuildRequires: python3-pyparsing
|
||||
BuildRequires: openssl-devel
|
||||
@ -148,8 +142,8 @@ spicy-screenshot is a tool to capture screen-shots of a SPICE desktop.
|
||||
%files
|
||||
%doc AUTHORS
|
||||
%doc COPYING
|
||||
%doc README
|
||||
%doc NEWS
|
||||
%doc README.md
|
||||
%doc CHANGELOG.md
|
||||
%{_mandir}/man1/spice-client.1*
|
||||
|
||||
%files -n spice-glib -f %{name}.lang
|
||||
@ -190,6 +184,9 @@ spicy-screenshot is a tool to capture screen-shots of a SPICE desktop.
|
||||
%{_bindir}/spicy-stats
|
||||
|
||||
%changelog
|
||||
* Thu May 16 2019 Victor Toso <victortoso@redhat.com> - 0.37-1
|
||||
- Update to v0.37
|
||||
|
||||
* Thu Mar 07 2019 Christophe Fergeau <cfergeau@redhat.com> - 0.36-5
|
||||
- Use actual upstream patches, I made a mistake in the previous build
|
||||
and used patches which were only applied locally
|
||||
|
Loading…
Reference in New Issue
Block a user