summaryrefslogtreecommitdiffstats
path: root/testing/spice-vdagent
diff options
context:
space:
mode:
authorStuart Cardall <developer@it-offshore.co.uk>2015-04-20 11:14:34 +0000
committerLeonardo Arena <rnalrd@alpinelinux.org>2015-04-27 07:15:14 +0000
commit0eecc344f01e57415f31798cf8c27f7f0796ad9b (patch)
treef9bdb3bd431c6feddeea4d30ccd16162663218ef /testing/spice-vdagent
parent3bbd14339e193fb2e619868b96463ad2eb6cc6dd (diff)
downloadaports-0eecc344f01e57415f31798cf8c27f7f0796ad9b.tar.bz2
aports-0eecc344f01e57415f31798cf8c27f7f0796ad9b.tar.xz
testing/spice-vdagent: fix copy / paste functionality
This patch adds an init script for copy & paste functionality between the guest & host. Run 'rc-service spice-vdagentd info' for details on the settings for libvirt. By default this runs with a single session possible. For multiple sessions remove '-X' to disable consolekit from the init script & install slim or lxdm. Tested on 32 & 64 bit KVM - but should also work on XEN / LXC run by libvirt. Signed-off-by: Leonardo Arena <rnalrd@alpinelinux.org>
Diffstat (limited to 'testing/spice-vdagent')
-rw-r--r--testing/spice-vdagent/APKBUILD23
-rw-r--r--testing/spice-vdagent/fix-memcpy-memset-implicit-declaration.patch11
-rw-r--r--testing/spice-vdagent/spice-vdagentd.initd97
3 files changed, 125 insertions, 6 deletions
diff --git a/testing/spice-vdagent/APKBUILD b/testing/spice-vdagent/APKBUILD
index feb52cffa..656e25148 100644
--- a/testing/spice-vdagent/APKBUILD
+++ b/testing/spice-vdagent/APKBUILD
@@ -8,11 +8,14 @@ arch="all"
license="GPLv3+"
depends=""
depends_dev=""
-makedepends="$depends_dev glib-dev spice-protocol libpciaccess-dev
- libxrandr-dev libxinerama-dev libxfixes-dev"
+makedepends="$depends_dev glib-dev spice-protocol libpciaccess-dev dbus-dev
+ libxrandr-dev libxinerama-dev libxfixes-dev linux-headers"
install=""
subpackages="$pkgname-doc"
-source="http://spice-space.org/download/releases/spice-vdagent-$pkgver.tar.bz2"
+source="http://spice-space.org/download/releases/spice-vdagent-$pkgver.tar.bz2
+ "$pkgname"d.initd
+ fix-memcpy-memset-implicit-declaration.patch
+ "
_builddir="$srcdir"/spice-vdagent-$pkgver
prepare() {
@@ -43,8 +46,16 @@ package() {
cd "$_builddir"
make DESTDIR="$pkgdir" install || return 1
rm -f "$pkgdir"/usr/lib/*.la
+ install -m755 -D "$srcdir/$pkgname"d.initd \
+ "$pkgdir"/etc/init.d/"$pkgname"d || return 1
}
-md5sums="2919ac7a4195b0b4b2588fae90a9241c spice-vdagent-0.15.0.tar.bz2"
-sha256sums="5bae1747307c2f4195f6de97639391be7c6be6c5673fdcc9febed6faca22bd34 spice-vdagent-0.15.0.tar.bz2"
-sha512sums="7d3bdeca2a8a5a63f817c8b0c1c46508e3238e0d2f3a018e44ffa4c7a2b7d0e82b0a2c37a6f35c59fcb23d89de82312edb689dc1de6fdf659004e640b900f436 spice-vdagent-0.15.0.tar.bz2"
+md5sums="2919ac7a4195b0b4b2588fae90a9241c spice-vdagent-0.15.0.tar.bz2
+c707c8127d647a9f5e2c99cd213dc0b3 spice-vdagentd.initd
+083cdf808a24d1855d09a93a52dbeccd fix-memcpy-memset-implicit-declaration.patch"
+sha256sums="5bae1747307c2f4195f6de97639391be7c6be6c5673fdcc9febed6faca22bd34 spice-vdagent-0.15.0.tar.bz2
+b61b09be015148dbaeb2047b1da9e96163920e34176cd6507d7d3cb9f872e083 spice-vdagentd.initd
+69bbdffc46bd247f5fdee84e8a06d86b0a59e8dc53e9dc5eb0fd8055d87b9323 fix-memcpy-memset-implicit-declaration.patch"
+sha512sums="7d3bdeca2a8a5a63f817c8b0c1c46508e3238e0d2f3a018e44ffa4c7a2b7d0e82b0a2c37a6f35c59fcb23d89de82312edb689dc1de6fdf659004e640b900f436 spice-vdagent-0.15.0.tar.bz2
+322a72ebfa978366e04b2aec49258fda2f2535fa21470a5c0a7e41a295b61dc57f657270836be99733e0111dc2b2da6c005d05f93dcf592bb280284b080b25c1 spice-vdagentd.initd
+381f974580aa478a9c0a35d7e6cc5bee57903f47929dea143ee2ddda9952d4b3ed6180a2b2e90ef83b01425d46507ea18bba01c42d32739fd0cc85bcbac59537 fix-memcpy-memset-implicit-declaration.patch"
diff --git a/testing/spice-vdagent/fix-memcpy-memset-implicit-declaration.patch b/testing/spice-vdagent/fix-memcpy-memset-implicit-declaration.patch
new file mode 100644
index 000000000..ad0de924e
--- /dev/null
+++ b/testing/spice-vdagent/fix-memcpy-memset-implicit-declaration.patch
@@ -0,0 +1,11 @@
+--- spice-vdagent-0.15.0/src/udscs.c
++++ spice-vdagent-0.15.0/src/udscs.c.new
+@@ -26,6 +26,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <syslog.h>
+ #include <unistd.h>
+ #include <errno.h>
+
diff --git a/testing/spice-vdagent/spice-vdagentd.initd b/testing/spice-vdagent/spice-vdagentd.initd
new file mode 100644
index 000000000..904908d9b
--- /dev/null
+++ b/testing/spice-vdagent/spice-vdagentd.initd
@@ -0,0 +1,97 @@
+#!/sbin/runscript
+
+# This file is part of spice-vdagent
+# by Stuart Cardall <developer@it-offshore.co.uk>
+
+sockfile="/var/run/spice-vdagentd/spice-vdagent-sock"
+pidfile="/var/run/spice-vdagentd/spice-vdagentd.pid"
+command="/usr/sbin/spice-vdagentd"
+command_args="-X"
+msgfile=/tmp/spice-vdagent.msg
+extra_commands="info"
+
+MODULES="uinput"
+
+depend() {
+ need net
+ need logger
+}
+
+start_pre() {
+ # make sure dir for pidfile exists. /var/run is tmpfs...
+ checkpath --directory ${pidfile%/*}
+ # load userspace input driver for copy & paste support
+ ebegin "Loading uinput kernel module for ${SVCNAME}"
+ for mod in $MODULES; do
+ modprobe -q $mod
+ done
+ eend $?
+ rm -f $sockfile
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start $command --pidfile $pidfile -- $command_args
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --quiet --pidfile $pidfile
+ eend $? "Failed to stop ${SVCNAME}"
+ ebegin "Unloading uinput kernel module for ${SVCNAME}"
+ for mod in $MODULES; do
+ rmmod $mod
+ done
+ eend $?
+ rm -f $sockfile
+}
+
+info() {
+ cat > $msgfile <<EOF
+By default the daemon is run with $command_args="-X" to disable consolekit
+support & allow a single agent session only. Run without '-X' & install lxdm
+or slim for muliple sessions.
+
+------------------------------------------------------------------------------
+Settings for libvirt:
+------------------------------------------------------------------------------
+<channel type='spicevmc'>
+ <target type='virtio' name='com.redhat.spice.0'/>
+ <address type='virtio-serial' controller='0' bus='0' port='1'/>
+</channel>
+ <input type='tablet' bus='usb'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+<graphics type='spice' autoport='yes' listen='127.0.0.1'>
+ <listen type='address' address='127.0.0.1'/>
+ <channel name='main' mode='insecure'/>
+ <channel name='record' mode='insecure'/>
+ <image compression='auto_glz'/>
+ <jpeg compression='auto'/>
+ <zlib compression='auto'/>
+ <playback compression='on'/>
+ <streaming mode='filter'/>
+ <mouse mode='client'/>
+ <clipboard copypaste='yes'/>
+ <filetransfer enable='yes'/>
+</graphics>
+<video>
+ <model type='qxl' ram='65536' vram='9216' heads='1'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+</video>
+
+------------------------------------------------------------------------------
+Settings for /etc/X11/xorg.conf: <install xf86-video-qxl>
+------------------------------------------------------------------------------
+Section "Device"
+ Identifier "Videocard0"
+ Driver "qxl"
+ Option "EnableSurfaces" "0"
+EndSection
+EOF
+
+cat $msgfile
+rm -f $msgfile
+}
+