New upstream release 0.15.0

Adds Xspice support plus a bunch of small fixes.
This commit is contained in:
Alon Levy 2013-10-14 16:20:24 +03:00
parent f5f826cac4
commit 5be7fc906a
8 changed files with 7 additions and 290 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@
/spice-vdagent-0.12.0.tar.bz2
/spice-vdagent-0.12.1.tar.bz2
/spice-vdagent-0.14.0.tar.bz2
/spice-vdagent-0.15.0.tar.bz2

View File

@ -1,60 +0,0 @@
From 256e01c8c7b0c386525a0fac71537bb7bb05d271 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 6 Jun 2013 17:00:22 +0200
Subject: [linux-vdagent PATCH 1/3] vdagent[d]: Add printing of version to -h
output
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
src/vdagent.c | 6 +++---
src/vdagentd.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/vdagent.c b/src/vdagent.c
index 7e1b474..9e238d3 100644
--- a/src/vdagent.c
+++ b/src/vdagent.c
@@ -132,15 +132,15 @@ static void usage(FILE *fp)
{
fprintf(fp,
"Usage: spice-vdagent [OPTIONS]\n\n"
- "Spice guest agent X11 session agent.\n\n"
+ "Spice guest agent X11 session agent, version %s.\n\n"
"Options:\n"
" -h print this text\n"
" -d log debug messages\n"
" -s <port> set virtio serial port\n"
" -x don't daemonize\n"
" -f <dir|xdg-desktop|xdg-download> file xfer save dir\n"
- " -o <0|1> open dir on file xfer completion\n"
- );
+ " -o <0|1> open dir on file xfer completion\n",
+ VERSION);
}
static void quit_handler(int sig)
diff --git a/src/vdagentd.c b/src/vdagentd.c
index 888a80a..da25329 100644
--- a/src/vdagentd.c
+++ b/src/vdagentd.c
@@ -718,7 +718,7 @@ static void usage(FILE *fp)
{
fprintf(fp,
"Usage: spice-vdagentd [OPTIONS]\n\n"
- "Spice guest agent daemon.\n\n"
+ "Spice guest agent daemon, version %s.\n\n"
"Options:\n"
" -h print this text\n"
" -d log debug messages (use twice for extra info)\n"
@@ -731,7 +731,7 @@ static void usage(FILE *fp)
#ifdef HAVE_LIBSYSTEMD_LOGIN
" -X Disable systemd-logind integration\n"
#endif
- ,portdev, uinput_device);
+ ,VERSION, portdev, uinput_device);
}
void daemonize(void)
--
1.8.3.1

View File

@ -1,26 +0,0 @@
From 43cde1cbedc56138a857100f634e7cb644477e7e Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 24 Jun 2013 10:34:27 +0200
Subject: [linux-vdagent PATCH 2/3] vdagentd: Advertise
VD_AGENT_CAP_GUEST_LINEEND_LF
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
src/vdagentd.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/vdagentd.c b/src/vdagentd.c
index da25329..f4cea44 100644
--- a/src/vdagentd.c
+++ b/src/vdagentd.c
@@ -95,6 +95,7 @@ static void send_capabilities(struct vdagent_virtio_port *vport,
VD_AGENT_SET_CAPABILITY(caps->caps, VD_AGENT_CAP_CLIPBOARD_BY_DEMAND);
VD_AGENT_SET_CAPABILITY(caps->caps, VD_AGENT_CAP_CLIPBOARD_SELECTION);
VD_AGENT_SET_CAPABILITY(caps->caps, VD_AGENT_CAP_SPARSE_MONITORS_CONFIG);
+ VD_AGENT_SET_CAPABILITY(caps->caps, VD_AGENT_CAP_GUEST_LINEEND_LF);
vdagent_virtio_port_write(vport, VDP_CLIENT_PORT,
VD_AGENT_ANNOUNCE_CAPABILITIES, 0,
--
1.8.3.1

View File

@ -1,82 +0,0 @@
From 71b8e75c6f1bc6c482d28cf29b82643d6b38cf34 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 3 Jul 2013 11:16:20 +0200
Subject: [linux-vdagent PATCH 3/3] buildsys: Build vdagentd as pie + relro
when possible
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Makefile.am | 6 ++++--
configure.ac | 32 ++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index fa2803a..74cc313 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,8 +8,10 @@ src_spice_vdagent_CFLAGS = $(X_CFLAGS) $(SPICE_CFLAGS) $(GLIB2_CFLAGS)
src_spice_vdagent_LDADD = $(X_LIBS) $(SPICE_LIBS) $(GLIB2_LIBS)
src_spice_vdagent_SOURCES = src/vdagent.c src/vdagent-x11.c src/vdagent-x11-randr.c src/vdagent-file-xfers.c src/udscs.c
-src_spice_vdagentd_CFLAGS = $(DBUS_CFLAGS) $(LIBSYSTEMD_LOGIN_CFLAGS) $(PCIACCESS_CFLAGS) $(SPICE_CFLAGS) $(GLIB2_CFLAGS)
-src_spice_vdagentd_LDADD = $(DBUS_LIBS) $(LIBSYSTEMD_LOGIN_LIBS) $(PCIACCESS_LIBS) $(SPICE_LIBS) $(GLIB2_LIBS)
+src_spice_vdagentd_CFLAGS = $(DBUS_CFLAGS) $(LIBSYSTEMD_LOGIN_CFLAGS) \
+ $(PCIACCESS_CFLAGS) $(SPICE_CFLAGS) $(GLIB2_CFLAGS) $(PIE_CFLAGS)
+src_spice_vdagentd_LDADD = $(DBUS_LIBS) $(LIBSYSTEMD_LOGIN_LIBS) \
+ $(PCIACCESS_LIBS) $(SPICE_LIBS) $(GLIB2_LIBS) $(PIE_LDFLAGS)
src_spice_vdagentd_SOURCES = src/vdagentd.c \
src/vdagentd-uinput.c \
src/vdagentd-xorg-conf.c \
diff --git a/configure.ac b/configure.ac
index 91a24ff..a1ce6c0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,6 +141,37 @@ if test "$ac_test_CFLAGS" != set; then
done
fi
+AC_ARG_ENABLE([pie],
+ AS_HELP_STRING([--enable-pie=@<:@auto/yes/no@:>@],
+ [Enable position-independent-executable support (for spice-vdagentd)@<:@default=auto@:>@]),
+ [],
+ [enable_pie="auto"])
+
+if test "x$enable_pie" != "xno"; then
+ save_CFLAGS="$CFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+ CFLAGS="$CFLAGS -fPIE"
+ LDFLAGS="$LDFLAGS -pie -Wl,-z,relro -Wl,-z,now"
+ AC_MSG_CHECKING([for PIE support])
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main () { return 0; }])],
+ [have_pie=yes],
+ [have_pie=no])
+ AC_MSG_RESULT([$have_pie])
+ if test "x$have_pie" = "xno" && test "x$enable_pie" = "xyes"; then
+ AC_MSG_ERROR([pie support explicitly requested, but your toolchain does not support it])
+ fi
+ if test "x$have_pie" = "xyes"; then
+ PIE_CFLAGS="-fPIE"
+ PIE_LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now"
+ AC_SUBST(PIE_CFLAGS)
+ AC_SUBST(PIE_LDFLAGS)
+ fi
+ CFLAGS="$save_CFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+else
+ have_pie=no
+fi
+
AC_CONFIG_FILES([
Makefile
data/spice-vdagent.1
@@ -160,6 +191,7 @@ AC_MSG_NOTICE([
session-info: ${with_session_info}
pciaccess: ${enable_pciaccess}
static uinput: ${enable_static_uinput}
+ vdagentd pie + relro: ${have_pie}
install RH initscript: ${init_redhat}
install systemd service: ${init_systemd}
--
1.8.3.1

View File

@ -1,43 +0,0 @@
From 99a2628b0ff04e0aadd130e45aa2598c4df64690 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Tue, 11 Jun 2013 15:21:13 -0400
Subject: [linux-vdagent PATCH 04/12] Not having the virtio channel is not an
error; instead silently do nothing
Fedora for example bundles the SPICE agent by default; however, we
don't want to spew an error when running non-virtualized, or with
plain VNC.
Let's just silently exit; while we could change LOG_ERR -> LOG_INFO
or something, that's still pointless noise in most people's syslog.
Someone who was debugging a misconfigured SPICE setup would pretty
quickly notice that they were missing the virtio port.
(This patch is part of a larger initiative to reduce error
spew on default startup in common deployment scenarios such as
KVM+VNC.)
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
src/vdagent.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/vdagent.c b/src/vdagent.c
index 9e238d3..10ebf6e 100644
--- a/src/vdagent.c
+++ b/src/vdagent.c
@@ -226,9 +226,7 @@ int main(int argc, char *argv[])
LOG_USER);
if (file_test(portdev) != 0) {
- syslog(LOG_ERR, "Missing virtio device '%s': %s",
- portdev, strerror(errno));
- return 1;
+ return 0;
}
if (do_daemonize)
--
1.8.3.1

View File

@ -1,64 +0,0 @@
From ad6ea7594a11d8a35be84a8ae2e8403ea3344a3b Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 9 Sep 2013 15:50:39 +0200
Subject: [linux-vdagent PATCH 5/5] vdagent-x11: Release clipboard on client
disconnect if owned by client
https://bugzilla.redhat.com/show_bug.cgi?id=1003977
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
src/vdagent-x11.c | 10 ++++++++++
src/vdagent-x11.h | 2 ++
src/vdagent.c | 1 +
3 files changed, 13 insertions(+)
diff --git a/src/vdagent-x11.c b/src/vdagent-x11.c
index 4588b3d..5ce6000 100644
--- a/src/vdagent-x11.c
+++ b/src/vdagent-x11.c
@@ -1305,6 +1305,16 @@ void vdagent_x11_clipboard_release(struct vdagent_x11 *x11, uint8_t selection)
vdagent_x11_do_read(x11);
}
+void vdagent_x11_client_disconnected(struct vdagent_x11 *x11)
+{
+ int sel;
+
+ for (sel = 0; sel < VD_AGENT_CLIPBOARD_SELECTION_SECONDARY; sel++) {
+ if (x11->clipboard_owner[sel] == owner_client)
+ vdagent_x11_clipboard_release(x11, sel);
+ }
+}
+
/* Function used to determine the default location to save file-xfers,
xdg desktop dir or xdg download dir. We error on the save side and use a
whitelist approach, so any unknown desktops will end up with saving
diff --git a/src/vdagent-x11.h b/src/vdagent-x11.h
index a2a2485..d64a42a 100644
--- a/src/vdagent-x11.h
+++ b/src/vdagent-x11.h
@@ -46,6 +46,8 @@ void vdagent_x11_clipboard_data(struct vdagent_x11 *x11, uint8_t selection,
uint32_t type, uint8_t *data, uint32_t size);
void vdagent_x11_clipboard_release(struct vdagent_x11 *x11, uint8_t selection);
+void vdagent_x11_client_disconnected(struct vdagent_x11 *x11);
+
int vdagent_x11_has_icons_on_desktop(struct vdagent_x11 *x11);
#endif
diff --git a/src/vdagent.c b/src/vdagent.c
index f270615..d7f7aba 100644
--- a/src/vdagent.c
+++ b/src/vdagent.c
@@ -104,6 +104,7 @@ void daemon_read_complete(struct udscs_connection **connp,
free(data);
break;
case VDAGENTD_CLIENT_DISCONNECTED:
+ vdagent_x11_client_disconnected(x11);
vdagent_file_xfers_destroy(vdagent_file_xfers);
vdagent_file_xfers = vdagent_file_xfers_create(client, fx_dir,
fx_open_dir, debug);
--
1.8.3.1

View File

@ -1 +1 @@
da6575e1de5562ef853443eaba5bd1dc spice-vdagent-0.14.0.tar.bz2
2919ac7a4195b0b4b2588fae90a9241c spice-vdagent-0.15.0.tar.bz2

View File

@ -1,17 +1,12 @@
Name: spice-vdagent
Version: 0.14.0
Release: 5%{?dist}
Version: 0.15.0
Release: 1%{?dist}
Summary: Agent for Spice guests
Group: Applications/System
License: GPLv3+
URL: http://spice-space.org/
Source0: http://spice-space.org/download/releases/%{name}-%{version}.tar.bz2
# Fixes from upstream git
Patch1: 0001-vdagent-d-Add-printing-of-version-to-h-output.patch
Patch2: 0002-vdagentd-Advertise-VD_AGENT_CAP_GUEST_LINEEND_LF.patch
Patch3: 0003-buildsys-Build-vdagentd-as-pie-relro-when-possible.patch
Patch4: 0004-Not-having-the-virtio-channel-is-not-an-error-instea.patch
Patch5: 0005-vdagent-x11-Release-clipboard-on-client-disconnect-i.patch
BuildRequires: systemd-devel glib2-devel spice-protocol >= 0.12.6
BuildRequires: libpciaccess-devel libXrandr-devel libXinerama-devel
BuildRequires: libXfixes-devel systemd-units desktop-file-utils libtool
@ -34,11 +29,6 @@ Features:
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
autoreconf -fi
@ -49,8 +39,6 @@ make %{?_smp_mflags} V=2
%install
make install DESTDIR=$RPM_BUILD_ROOT V=2
# rhbz#963201
rm $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/spice-vdagentd.conf
%post
@ -81,6 +69,9 @@ rm $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/spice-vdagentd.conf
%changelog
* Mon Oct 14 2013 Alon Levy <alevy@redhat.com> - 0.15.0-1
- New upstream release 0.15.0
* Tue Sep 10 2013 Hans de Goede <hdegoede@redhat.com> - 0.14.0-5
- Silence session agent error logging when not running in a vm (rhbz#999804)
- Release guest clipboard ownership on client disconnect (rhbz#1003977)