[spice-vdagent/el5] Initial EPEL5 spice-vdagent package

Hans de Goede jwrdegoede at fedoraproject.org
Tue Jan 10 14:01:04 UTC 2012


commit 204875dc3e501b1ab41b7d300d29dbb310417f53
Author: Hans de Goede <hdegoede at redhat.com>
Date:   Tue Jan 10 15:02:12 2012 +0100

    Initial EPEL5 spice-vdagent package

 spice-vdagent-0.8.1-no-spice-protocol.patch |  376 +++++++++++++++++++++++++++
 spice-vdagent.spec                          |    3 +
 2 files changed, 379 insertions(+), 0 deletions(-)
---
diff --git a/spice-vdagent-0.8.1-no-spice-protocol.patch b/spice-vdagent-0.8.1-no-spice-protocol.patch
new file mode 100644
index 0000000..aa132be
--- /dev/null
+++ b/spice-vdagent-0.8.1-no-spice-protocol.patch
@@ -0,0 +1,376 @@
+diff -up spice-vdagent-0.8.1/configure.ac~ spice-vdagent-0.8.1/configure.ac
+--- spice-vdagent-0.8.1/configure.ac~	2012-01-10 14:54:26.000000000 +0100
++++ spice-vdagent-0.8.1/configure.ac	2012-01-10 14:54:50.956370655 +0100
+@@ -31,7 +31,6 @@ AC_ARG_ENABLE([static-uinput],
+ 
+ PKG_PROG_PKG_CONFIG
+ PKG_CHECK_MODULES(X, [xfixes xrandr xinerama x11])
+-PKG_CHECK_MODULES(SPICE, [spice-protocol >= 0.8.0])
+ 
+ if test x"$enable_console_kit" = "xyes" ; then
+     PKG_CHECK_MODULES(DBUS, [dbus-1])
+diff -up spice-vdagent-0.8.1/src/spice/end-packed.h~ spice-vdagent-0.8.1/src/spice/end-packed.h
+--- spice-vdagent-0.8.1/src/spice/end-packed.h~	2012-01-10 14:59:11.614367163 +0100
++++ spice-vdagent-0.8.1/src/spice/end-packed.h	2012-01-10 14:56:12.381369564 +0100
+@@ -0,0 +1,38 @@
++/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
++/*
++   Copyright (C) 2009 Red Hat, Inc.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions are
++   met:
++
++       * Redistributions of source code must retain the above copyright
++         notice, this list of conditions and the following disclaimer.
++       * Redistributions in binary form must reproduce the above copyright
++         notice, this list of conditions and the following disclaimer in
++         the documentation and/or other materials provided with the
++         distribution.
++       * Neither the name of the copyright holder nor the names of its
++         contributors may be used to endorse or promote products derived
++         from this software without specific prior written permission.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
++   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++   PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++
++/* See start-packed.h for details */
++
++#undef SPICE_ATTR_PACKED
++
++#if defined(__MINGW32__) || !defined(__GNUC__)
++#pragma pack(pop)
++#endif
+diff -up spice-vdagent-0.8.1/src/spice/start-packed.h~ spice-vdagent-0.8.1/src/spice/start-packed.h
+--- spice-vdagent-0.8.1/src/spice/start-packed.h~	2012-01-10 14:59:11.615367163 +0100
++++ spice-vdagent-0.8.1/src/spice/start-packed.h	2012-01-10 14:56:12.381369564 +0100
+@@ -0,0 +1,64 @@
++/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
++/*
++   Copyright (C) 2009 Red Hat, Inc.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions are
++   met:
++
++       * Redistributions of source code must retain the above copyright
++         notice, this list of conditions and the following disclaimer.
++       * Redistributions in binary form must reproduce the above copyright
++         notice, this list of conditions and the following disclaimer in
++         the documentation and/or other materials provided with the
++         distribution.
++       * Neither the name of the copyright holder nor the names of its
++         contributors may be used to endorse or promote products derived
++         from this software without specific prior written permission.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
++   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++   PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++
++/* Ideally this should all have been macros in a common headers, but
++ * its not possible to put pragmas into header files, so we have
++ * to use include magic.
++ *
++ * Use it like this:
++ *
++ * #include <spice/start-packed.h>
++ *
++ * typedef struct SPICE_ATTR_PACKED {
++ *    ...
++ * } Type;
++ *
++ * #include <spice/end-packed.h>
++ *
++ */
++
++#ifdef __GNUC__
++
++#define SPICE_ATTR_PACKED __attribute__ ((__packed__))
++
++#ifdef __MINGW32__
++#pragma pack(push,1)
++#endif
++
++#else
++
++#pragma pack(push)
++#pragma pack(1)
++#define SPICE_ATTR_PACKED
++#pragma warning(disable:4200)
++#pragma warning(disable:4103)
++
++#endif
+diff -up spice-vdagent-0.8.1/src/spice/types.h~ spice-vdagent-0.8.1/src/spice/types.h
+--- spice-vdagent-0.8.1/src/spice/types.h~	2012-01-10 14:59:11.616367163 +0100
++++ spice-vdagent-0.8.1/src/spice/types.h	2012-01-10 14:56:19.581369467 +0100
+@@ -0,0 +1,41 @@
++/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
++/*
++   Copyright (C) 2009 Red Hat, Inc.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions are
++   met:
++
++       * Redistributions of source code must retain the above copyright
++         notice, this list of conditions and the following disclaimer.
++       * Redistributions in binary form must reproduce the above copyright
++         notice, this list of conditions and the following disclaimer in
++         the documentation and/or other materials provided with the
++         distribution.
++       * Neither the name of the copyright holder nor the names of its
++         contributors may be used to endorse or promote products derived
++         from this software without specific prior written permission.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
++   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++   PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++
++#ifndef _H_SPICE_TYPES
++#define _H_SPICE_TYPES
++
++/* We always want the standard int types
++ * If they are not in stdint.h on your system,
++ * include the right one here. */
++#include <stdint.h>
++#include <limits.h>
++
++#endif /* _H_SPICE_TYPES */
+diff -up spice-vdagent-0.8.1/src/spice/vd_agent.h~ spice-vdagent-0.8.1/src/spice/vd_agent.h
+--- spice-vdagent-0.8.1/src/spice/vd_agent.h~	2012-01-10 14:59:11.617367163 +0100
++++ spice-vdagent-0.8.1/src/spice/vd_agent.h	2012-01-10 14:56:01.229369714 +0100
+@@ -0,0 +1,206 @@
++/*
++   Copyright (C) 2009 Red Hat, Inc.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions are
++   met:
++
++       * Redistributions of source code must retain the above copyright
++         notice, this list of conditions and the following disclaimer.
++       * Redistributions in binary form must reproduce the above copyright
++         notice, this list of conditions and the following disclaimer in
++         the documentation and/or other materials provided with the
++         distribution.
++       * Neither the name of the copyright holder nor the names of its
++         contributors may be used to endorse or promote products derived
++         from this software without specific prior written permission.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
++   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++   PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++
++#ifndef _H_VD_AGENT
++#define _H_VD_AGENT
++
++#include <spice/types.h>
++
++#include <spice/start-packed.h>
++
++enum {
++    VDP_CLIENT_PORT = 1,
++    VDP_SERVER_PORT,
++    VDP_END_PORT
++};
++
++typedef struct SPICE_ATTR_PACKED VDIChunkHeader {
++    uint32_t port;
++    uint32_t size;
++} VDIChunkHeader;
++
++typedef struct SPICE_ATTR_PACKED VDAgentMessage {
++    uint32_t protocol;
++    uint32_t type;
++    uint64_t opaque;
++    uint32_t size;
++    uint8_t data[0];
++} VDAgentMessage;
++
++#define VD_AGENT_PROTOCOL 1
++#define VD_AGENT_MAX_DATA_SIZE 2048
++#define VD_AGENT_CLIPBOARD_MAX_SIZE_DEFAULT 1024
++#define VD_AGENT_CLIPBOARD_MAX_SIZE_ENV "SPICE_CLIPBOARD_MAX_SIZE"
++
++enum {
++    VD_AGENT_MOUSE_STATE = 1,
++    VD_AGENT_MONITORS_CONFIG,
++    VD_AGENT_REPLY,
++    VD_AGENT_CLIPBOARD,
++    VD_AGENT_DISPLAY_CONFIG,
++    VD_AGENT_ANNOUNCE_CAPABILITIES,
++    VD_AGENT_CLIPBOARD_GRAB,
++    VD_AGENT_CLIPBOARD_REQUEST,
++    VD_AGENT_CLIPBOARD_RELEASE,
++    VD_AGENT_END_MESSAGE,
++};
++
++typedef struct SPICE_ATTR_PACKED VDAgentMonConfig {
++    uint32_t height;
++    uint32_t width;
++    uint32_t depth;
++    int32_t x;
++    int32_t y;
++} VDAgentMonConfig;
++
++enum {
++    VD_AGENT_CONFIG_MONITORS_FLAG_USE_POS = (1 << 0),
++};
++
++typedef struct SPICE_ATTR_PACKED VDAgentMonitorsConfig {
++    uint32_t num_of_monitors;
++    uint32_t flags;
++    VDAgentMonConfig monitors[0];
++} VDAgentMonitorsConfig;
++
++enum {
++    VD_AGENT_DISPLAY_CONFIG_FLAG_DISABLE_WALLPAPER = (1 << 0),
++    VD_AGENT_DISPLAY_CONFIG_FLAG_DISABLE_FONT_SMOOTH = (1 << 1),
++    VD_AGENT_DISPLAY_CONFIG_FLAG_DISABLE_ANIMATION = (1 << 2),
++    VD_AGENT_DISPLAY_CONFIG_FLAG_SET_COLOR_DEPTH = (1 << 3),
++};
++
++typedef struct SPICE_ATTR_PACKED VDAgentDisplayConfig {
++    uint32_t flags;
++    uint32_t depth;
++} VDAgentDisplayConfig;
++
++#define VD_AGENT_LBUTTON_MASK (1 << 1)
++#define VD_AGENT_MBUTTON_MASK (1 << 2)
++#define VD_AGENT_RBUTTON_MASK (1 << 3)
++#define VD_AGENT_UBUTTON_MASK (1 << 4)
++#define VD_AGENT_DBUTTON_MASK (1 << 5)
++
++typedef struct SPICE_ATTR_PACKED VDAgentMouseState {
++    uint32_t x;
++    uint32_t y;
++    uint32_t buttons;
++    uint8_t display_id;
++} VDAgentMouseState;
++
++typedef struct SPICE_ATTR_PACKED VDAgentReply {
++    uint32_t type;
++    uint32_t error;
++} VDAgentReply;
++
++enum {
++    VD_AGENT_SUCCESS = 1,
++    VD_AGENT_ERROR,
++};
++
++typedef struct SPICE_ATTR_PACKED VDAgentClipboard {
++#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
++    uint8_t selection;
++    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
++#endif
++    uint32_t type;
++    uint8_t data[0];
++} VDAgentClipboard;
++
++enum {
++    VD_AGENT_CLIPBOARD_NONE = 0,
++    VD_AGENT_CLIPBOARD_UTF8_TEXT,
++    VD_AGENT_CLIPBOARD_IMAGE_PNG,  /* All clients with image support should support this one */
++    VD_AGENT_CLIPBOARD_IMAGE_BMP,  /* optional */
++    VD_AGENT_CLIPBOARD_IMAGE_TIFF, /* optional */
++    VD_AGENT_CLIPBOARD_IMAGE_JPG,  /* optional */
++};
++
++typedef struct SPICE_ATTR_PACKED VDAgentClipboardGrab {
++#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
++    uint8_t selection;
++    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
++#endif
++    uint32_t types[0];
++} VDAgentClipboardGrab;
++
++typedef struct SPICE_ATTR_PACKED VDAgentClipboardRequest {
++#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
++    uint8_t selection;
++    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
++#endif
++    uint32_t type;
++} VDAgentClipboardRequest;
++
++typedef struct SPICE_ATTR_PACKED VDAgentClipboardRelease {
++#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
++    uint8_t selection;
++    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
++#endif
++} VDAgentClipboardRelease;
++
++enum {
++    VD_AGENT_CAP_MOUSE_STATE = 0,
++    VD_AGENT_CAP_MONITORS_CONFIG,
++    VD_AGENT_CAP_REPLY,
++    VD_AGENT_CAP_CLIPBOARD,
++    VD_AGENT_CAP_DISPLAY_CONFIG,
++    VD_AGENT_CAP_CLIPBOARD_BY_DEMAND,
++    VD_AGENT_CAP_CLIPBOARD_SELECTION,
++    VD_AGENT_END_CAP,
++};
++
++enum {
++    VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD = 0,
++    VD_AGENT_CLIPBOARD_SELECTION_PRIMARY,
++    VD_AGENT_CLIPBOARD_SELECTION_SECONDARY,
++};
++
++typedef struct SPICE_ATTR_PACKED VDAgentAnnounceCapabilities {
++    uint32_t  request;
++    uint32_t caps[0];
++} VDAgentAnnounceCapabilities;
++
++#define VD_AGENT_CAPS_SIZE_FROM_MSG_SIZE(msg_size) \
++    (((msg_size) - sizeof(VDAgentAnnounceCapabilities)) / sizeof(uint32_t))
++
++#define VD_AGENT_CAPS_SIZE ((VD_AGENT_END_CAP + 31) / 32)
++
++#define VD_AGENT_CAPS_BYTES (((VD_AGENT_END_CAP + 31) / 8) & ~3)
++
++#define VD_AGENT_HAS_CAPABILITY(caps, caps_size, index) \
++    ((index) < (caps_size * 32) && ((caps)[(index) / 32] & (1 << ((index) % 32))))
++
++#define VD_AGENT_SET_CAPABILITY(caps, index) \
++    { (caps)[(index) / 32] |= (1 << ((index) % 32)); }
++
++#include <spice/end-packed.h>
++
++#endif /* _H_VD_AGENT */
diff --git a/spice-vdagent.spec b/spice-vdagent.spec
index 50174f3..a88c1e0 100644
--- a/spice-vdagent.spec
+++ b/spice-vdagent.spec
@@ -21,6 +21,8 @@ Patch10:        0010-Add-a-enable-static-uinput-option.patch
 Patch11:        0011-vdagentd-uinput-Correct-interpretation-of-coordinate.patch
 Patch12:        0012-vdagentd-Close-the-virtio-port-when-the-active-vdage.patch
 Patch13:        0013-Add-a-RHEL-5-README-and-xorg.conf-example-file.patch
+# HACK: there is no spice-protocol in the el5 build repository
+Patch14:        spice-vdagent-0.8.1-no-spice-protocol.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  spice-protocol libpciaccess-devel dbus-devel
 BuildRequires:  libXrandr-devel libXinerama-devel libXfixes-devel libtool
@@ -60,6 +62,7 @@ After installation  please see README.RHEL-5 for some RHEL-5 specific notes!
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
+%patch14 -p1
 autoreconf -f -i
 
 


More information about the scm-commits mailing list