Accepting request 783558 from home:bfrogers:branches:Virtualization
- Update to 0.20.0 * Add gio-unix and gobject dependency >= 2.50 * Bump gtk+ >= 3.22 (optional dependency) * Last release with gtk+ being optional * !4 - Race fixes between client and guest clipboard * !2 - Fix session lookup for new GNOME versions * !3 - Now using GMainLoop and GIO to handle I/O of messages * Several minor covscan fixes - Discovered GLib dependency is now >= 2.58 - Patch dropped (contained in update): vdagentd-Fix-session-lookup-for-new-GNOME-versions.patch OBS-URL: https://build.opensuse.org/request/show/783558 OBS-URL: https://build.opensuse.org/package/show/Virtualization/spice-vdagent?expand=0&rev=35
This commit is contained in:
parent
f6b249a456
commit
8a309ff688
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:63a77c611c84f8120519a78a30256e43e159085831ac82de71643db643972f65
|
||||
size 151356
|
Binary file not shown.
3
spice-vdagent-0.20.0.tar.bz2
Normal file
3
spice-vdagent-0.20.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2e6b7222675ee19ea38c52165abe4d836c2ac5d5bf902d4dfca13da1ec143359
|
||||
size 152510
|
BIN
spice-vdagent-0.20.0.tar.bz2.sig
Normal file
BIN
spice-vdagent-0.20.0.tar.bz2.sig
Normal file
Binary file not shown.
@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 10 21:19:18 UTC 2020 - Bruce Rogers <brogers@suse.com>
|
||||
|
||||
- Update to 0.20.0
|
||||
* Add gio-unix and gobject dependency >= 2.50
|
||||
* Bump gtk+ >= 3.22 (optional dependency)
|
||||
* Last release with gtk+ being optional
|
||||
* !4 - Race fixes between client and guest clipboard
|
||||
* !2 - Fix session lookup for new GNOME versions
|
||||
* !3 - Now using GMainLoop and GIO to handle I/O of messages
|
||||
* Several minor covscan fixes
|
||||
- Discovered GLib dependency is now >= 2.58
|
||||
- Patch dropped (contained in update):
|
||||
vdagentd-Fix-session-lookup-for-new-GNOME-versions.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 19 15:18:43 UTC 2019 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
|
||||
Name: spice-vdagent
|
||||
Version: 0.19.0
|
||||
Version: 0.20.0
|
||||
Release: 0
|
||||
Summary: Agent for Spice guests
|
||||
License: GPL-3.0-or-later
|
||||
@ -27,20 +27,21 @@ URL: http://spice-space.org/
|
||||
Source: http://spice-space.org/download/releases/%{name}-%{version}.tar.bz2
|
||||
Source1: http://spice-space.org/download/releases/%{name}-%{version}.tar.bz2.sig
|
||||
Source2: %{name}.keyring
|
||||
Patch0: vdagentd-Fix-session-lookup-for-new-GNOME-versions.patch
|
||||
BuildRequires: alsa-devel >= 1.0.22
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: libXfixes-devel
|
||||
BuildRequires: libXinerama-devel
|
||||
BuildRequires: libXrandr-devel
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: libpciaccess-devel
|
||||
BuildRequires: libXrandr-devel >= 1.3
|
||||
BuildRequires: libpciaccess-devel >= 0.10
|
||||
BuildRequires: libtool
|
||||
BuildRequires: spice-protocol-devel >= 0.12.8
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.34
|
||||
BuildRequires: pkgconfig(gio-2.0) >= 2.50
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.58
|
||||
BuildRequires: pkgconfig(gobject-2.0) >= 2.50
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.22
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(spice-protocol) >= 0.14.1
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: pkgconfig(udev)
|
||||
Supplements: modalias(xorg-x11-server:virtio:d00000003v*)
|
||||
@ -60,7 +61,6 @@ Features:
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
%configure \
|
||||
|
@ -1,100 +0,0 @@
|
||||
From b67ff71f1b30992f5b8d4583cc93adb789d247fa Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Fri, 13 Sep 2019 17:00:27 +0200
|
||||
Subject: [PATCH] vdagentd: Fix session lookup for new GNOME versions
|
||||
|
||||
New GNOME versions have started to manage the session using the systemd
|
||||
user instance. The effect of this is that the spice-vdagent running in
|
||||
the user session is forked off (indirectly) from the systemd user
|
||||
instance and does technically not belong to any session.
|
||||
|
||||
The correct way of handling this situation is to simply assume that the
|
||||
process belongs to the users graphical session. Add a heuristic to find
|
||||
the graphical session based on the UID, fixing spice-vdagent running on
|
||||
GNOME 3.34 with systemd integration.
|
||||
|
||||
Acked-by: Victor Toso <victortoso@redhat.com>
|
||||
[BR: boo#1157235]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
src/vdagentd/systemd-login.c | 59 +++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 55 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/vdagentd/systemd-login.c b/src/vdagentd/systemd-login.c
|
||||
index a11b66d..0b8f3c1 100644
|
||||
--- a/src/vdagentd/systemd-login.c
|
||||
+++ b/src/vdagentd/systemd-login.c
|
||||
@@ -286,15 +286,66 @@ const char *session_info_get_active_session(struct session_info *si)
|
||||
|
||||
char *session_info_session_for_pid(struct session_info *si, uint32_t pid)
|
||||
{
|
||||
+ int i;
|
||||
int r;
|
||||
+ GStrv sessions = NULL;
|
||||
char *session = NULL;
|
||||
+ uid_t uid;
|
||||
|
||||
r = sd_pid_get_session(pid, &session);
|
||||
- if (r < 0)
|
||||
- syslog(LOG_ERR, "Error getting session for pid %u: %s",
|
||||
- pid, strerror(-r));
|
||||
- else if (si->verbose)
|
||||
+ if (r >= 0) {
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ /* If we could not get a session for the pid then the agent is probably
|
||||
+ * running in a systemd managed session. In that case we simply assume
|
||||
+ * it is actually part of the newest graphical session we can find. */
|
||||
+ r = sd_pid_get_owner_uid(pid, &uid);
|
||||
+ if (r < 0) {
|
||||
+ syslog(LOG_ERR, "Error getting owner UID for pid %u: %s",
|
||||
+ pid, strerror(-r));
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ r = sd_uid_get_sessions(uid, 0, &sessions);
|
||||
+ if (r < 0) {
|
||||
+ syslog(LOG_ERR, "Error getting sessions for UID %d: %s",
|
||||
+ (int) uid, strerror(-r));
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; sessions[i] != NULL; i++) {
|
||||
+ char *session_type = NULL;
|
||||
+
|
||||
+ r = sd_session_get_type(sessions[i], &session_type);
|
||||
+
|
||||
+ if (r < 0) {
|
||||
+ syslog(LOG_ERR, "Error getting session type for session %s: %s",
|
||||
+ sessions[i], strerror(-r));
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (g_strcmp0(session_type, "wayland") == 0 ||
|
||||
+ g_strcmp0(session_type, "x11") == 0 ||
|
||||
+ g_strcmp0(session_type, "mir") == 0) {
|
||||
+
|
||||
+ /* We prefer the newest session (i.e. last entry) from the
|
||||
+ * user, assuming that any old session that still exist has
|
||||
+ * just not yet died properly. */
|
||||
+ if (session != NULL)
|
||||
+ free (session);
|
||||
+ session = g_strdup(sessions[i]);
|
||||
+ }
|
||||
+
|
||||
+ free(session_type);
|
||||
+ }
|
||||
+
|
||||
+ g_strfreev(sessions);
|
||||
+
|
||||
+out:
|
||||
+ if (session != NULL && si->verbose) {
|
||||
syslog(LOG_INFO, "Session for pid %u: %s", pid, session);
|
||||
+ }
|
||||
|
||||
return session;
|
||||
}
|
||||
--
|
||||
2.24.0
|
||||
|
Loading…
Reference in New Issue
Block a user