--- xserver-xorg-video-qxl-0.1.4.orig/TODO.xspice +++ xserver-xorg-video-qxl-0.1.4/TODO.xspice @@ -0,0 +1,23 @@ +TODO: + + OOM. Not releasing? + Out of memory allocating 3145748 bytes + Out of mem - stats + + Cursor channel missing. + No copy paste. + No agent at all. + agent should probably be thought to run with Xspice too. That way + mouse emulation in Xspice can be avoided entirely. But how do you + get an input device to belong to Xspice :1.0 and not to Xorg :0.0? + + Keyboard: + * repeat (xset r 100) does nothing. This is because spice client + of course does repeat. But would be nice to transmit this. + + Video: youtube seemed choppy, some frames were repeating (cpu 30%~, so not + cpu bound). Possible multimedia time? Isn't this set by the driver, i.e. + should be identical with in vm qxl driver? + + Performance: + didn't check. --- xserver-xorg-video-qxl-0.1.4.orig/autogen.sh +++ xserver-xorg-video-qxl-0.1.4/autogen.sh @@ -0,0 +1,12 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? + +$srcdir/configure --enable-maintainer-mode "$@" --- xserver-xorg-video-qxl-0.1.4.orig/debian/README.source +++ xserver-xorg-video-qxl-0.1.4/debian/README.source @@ -0,0 +1,3 @@ +The Xspice.1 manpage is generated using the following command: + +help2man --version-string="XSPICE" -S Xspice -N -n "X server and SPICE server" ./scripts/Xspice > debian/Xspice.1 --- xserver-xorg-video-qxl-0.1.4.orig/debian/Xspice.1 +++ xserver-xorg-video-qxl-0.1.4/debian/Xspice.1 @@ -0,0 +1,115 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.6. +.TH XSPICE "1" "May 2015" "Xspice" "User Commands" +.SH NAME +Xspice \- X server and SPICE server +.SH DESCRIPTION +usage: Xspice [Xspice and Xorg options intermixed] +.PP +X and Spice server. example usage: Xspice \fB\-\-port\fR 5900 \fB\-\-disable\-ticketing\fR :1.0 +.SS "optional arguments:" +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.HP +\fB\-\-xorg\fR XORG +.TP +\fB\-\-auto\fR +Automatically create a temporary xorg.conf and start +the X server +.TP +\fB\-\-xsession\fR XSESSION +If given, will run after Xorg launch. Should be a +program like x\-session\-manager +.HP +\fB\-\-config\fR CONFIG +.TP +\fB\-\-port\fR PORT +standard spice port +.TP +\fB\-\-exit\-on\-disconnect\fR +Exit the X server when any client disconnects +.TP +\fB\-\-deferred\-fps\fR DEFERRED_FPS +If given, render to a buffer and send updates only +this many times per second +.TP +\fB\-\-tls\-port\fR TLS_PORT +spice tls port +.TP +\fB\-\-disable\-ticketing\fR +do not require a client password +.TP +\fB\-\-sasl\fR +enable sasl +.TP +\fB\-\-x509\-dir\fR X509_DIR +x509 directory for tls +.TP +\fB\-\-cacert\-file\fR CACERT_FILE +ca certificate file for tls +.TP +\fB\-\-x509\-cert\-file\fR X509_CERT_FILE +server certificate file for tls +.TP +\fB\-\-x509\-key\-file\fR X509_KEY_FILE +server key file for tls +.TP +\fB\-\-x509\-key\-password\fR X509_KEY_PASSWORD +key file password for tls +.HP +\fB\-\-tls\-ciphers\fR TLS_CIPHERS +.HP +\fB\-\-dh\-file\fR DH_FILE +.TP +\fB\-\-password\fR PASSWORD +set password required to connect to server +.TP +\fB\-\-image\-compression\fR {off,auto_glz,auto_lz,quic,glz,lz} +auto_glz by default +.TP +\fB\-\-jpeg\-wan\-compression\fR {auto,never,always} +auto by default +.TP +\fB\-\-zlib\-glz\-wan\-compression\fR {auto,never,always} +auto by default +.TP +\fB\-\-streaming\-video\fR {off,all,filter} +filter by default +.HP +\fB\-\-ipv4\-only\fR +.HP +\fB\-\-ipv6\-only\fR +.TP +\fB\-\-vdagent\fR +launch vdagent & vdagentd. They provide clipboard & +resolution automation +.TP +\fB\-\-vdagent\-virtio\-path\fR VDAGENT_VIRTIO_PATH +virtio socket path used by vdagentd +.TP +\fB\-\-vdagent\-uinput\-path\fR VDAGENT_UINPUT_PATH +uinput socket path used by vdagent +.TP +\fB\-\-vdagentd\-exec\fR VDAGENTD_EXEC +path to spice\-vdagentd (used with \fB\-\-vdagent\fR) +.TP +\fB\-\-vdagent\-exec\fR VDAGENT_EXEC +path to spice\-vdagent (used with \fB\-\-vdagent\fR) +.TP +\fB\-\-vdagent\-no\-launch\fR +do not launch vdagent & vdagentd, used for debugging +or if some external script wants to take care of that +.TP +\fB\-\-vdagent\-uid\fR VDAGENT_UID +set vdagent user id. changing it makes sense only in +conjunction with \fB\-\-vdagent\-no\-launch\fR +.TP +\fB\-\-vdagent\-gid\fR VDAGENT_GID +set vdagent group id. changing it makes sense only in +conjunction with \fB\-\-vdagent\-no\-launch\fR +.TP +\fB\-\-audio\-fifo\-dir\fR AUDIO_FIFO_DIR +set fifo directory for playback audio. designed to +work with PulseAudio's module\-pipe\-sink +.PP +Any options not parsed by Xspice get passed to Xorg as is. --- xserver-xorg-video-qxl-0.1.4.orig/debian/changelog +++ xserver-xorg-video-qxl-0.1.4/debian/changelog @@ -0,0 +1,170 @@ +xserver-xorg-video-qxl (0.1.4-3ubuntu3) xenial; urgency=medium + + * Really rebuild against the new xserver. + + -- Timo Aaltonen Thu, 03 Mar 2016 13:30:47 +0200 + +xserver-xorg-video-qxl (0.1.4-3ubuntu2) xenial; urgency=medium + + * Rebuild against new xserver. + + -- Timo Aaltonen Thu, 04 Feb 2016 12:47:06 +0200 + +xserver-xorg-video-qxl (0.1.4-3ubuntu1) wily; urgency=medium + + * Resync on Debian, grabbing new upstream release 0.1.4 (LP: #1474154). + * Take some patches from Fedora. + + debian/patches/qxl-kms-disable-composite.patch: Fix graphical glitches + by disabling COMPOSITE extension. (LP: #1261916) + + debian/patches/no-surfaces-kms.patch: Should fix crashes. + + -- Iain Lane Mon, 03 Aug 2015 14:35:38 +0100 + +xserver-xorg-video-qxl (0.1.4-3) unstable; urgency=medium + + * Team upload. + * debian/control: + - xserver-xspice: Drop dependency against xserver-xorg-video-qxl, this + is not needed anymore now that spiceqxl_drv.so is not shipped in that + package. + - xserver-xspice: Add ${xviddriver:Depends} to the dependencies to ensure + that we have the proper ABI. + * debian/rules: Generate the "xviddriver:Depends" substvars for the + xserver-xspice package. + * debian/control: Add libudev-dev to the build-dependency for the linux + architectures + + -- Laurent Bigonville Sat, 30 May 2015 16:02:55 +0200 + +xserver-xorg-video-qxl (0.1.4-2) unstable; urgency=medium + + * Team upload. + * Renable Xspice + * Bump debhelper compatibility to 9 + * debian/control: Bump Standards-Version to 3.9.6 + * debian/control: Use canonical Vcs URL to please lintian + + -- Laurent Bigonville Sat, 30 May 2015 13:12:17 +0200 + +xserver-xorg-video-qxl (0.1.4-1) unstable; urgency=medium + + * Let uscan verify tarball signatures. + * New upstream release. + * Add patch from rhbz#1201877 to use libpciaccess instead of raw port I/O, + fixing FTBFS on arm64. Thanks, Adam Jackson! + + -- Julien Cristau Fri, 08 May 2015 20:07:59 +0200 + +xserver-xorg-video-qxl (0.1.1-2) unstable; urgency=medium + + * Remove Liang Guo and Cyril Brulebois from Uploaders. + * Back to source format 1.0. + * Stop building/shipping Xspice (closes: #738744, #729054, #729053) + * Use verbose build rules. + * Add patch to fix misdetection of xextproto. + + -- Julien Cristau Thu, 19 Jun 2014 22:03:36 +0200 + +xserver-xorg-video-qxl (0.1.1-1) unstable; urgency=low + + [Michele Cane] + * New upstream release. + + [Liang Guo] + * Ignore tests in debian/source/options + + -- Liang Guo Thu, 24 Oct 2013 09:49:08 +0800 + +xserver-xorg-video-qxl (0.1.0-2) unstable; urgency=low + + * Upload to unstable + * Bump Standards-Version to 3.9.4 (no changes) + * Enalbe Xspice in i386 (Closes: 689394) + + -- Liang Guo Fri, 17 May 2013 07:19:32 +0800 + +xserver-xorg-video-qxl (0.1.0-1) experimental; urgency=low + + [ Maarten Lankhorst ] + * New upstream release. + + [ Timo Aaltonen ] + * control: Bump build-dep on libspice-protocol-dev to >= 0.12.2~. + + [ Liang Guo ] + * Ignore automatically generated files when build packages. + + -- Liang Guo Tue, 22 Jan 2013 23:36:17 +0800 + +xserver-xorg-video-qxl (0.0.17-2) unstable; urgency=low + + * Enable Xspice (Closes: 668537) + * Add debian/xserver-xorg-video-qxl.docs. + + -- Liang Guo Mon, 16 Apr 2012 22:04:27 +0800 + +xserver-xorg-video-qxl (0.0.17-1) unstable; urgency=low + + [ Liang Guo ] + * New upstream release. + * debian/copyright: + - Remove src/lookup3.c, removed upstream. + - Add src/murmurhash3.{c,h}, new file. + * debian/source/options: + - Ignore ChangeLog, included in upstream tarbar, but not in git. + * Remove translate-the-access-region.patch, applied upstream. + * Bump Standards-Version to 3.9.3, no changes needed. + [ Cyril Brulebois ] + * Fix typo in the debug package's description. + + -- Liang Guo Fri, 16 Mar 2012 16:13:52 +0800 + +xserver-xorg-video-qxl (0.0.16-2) unstable; urgency=low + + [Serge Hallyn] + * Add translate-the-access-region.patch(Closes: #655318) + * Add debug package + + -- Liang Guo Wed, 01 Feb 2012 18:01:19 +0800 + +xserver-xorg-video-qxl (0.0.16-1) unstable; urgency=low + + [ Liang Guo ] + * New upstream release + * Temporarily ignore TODO.xspice + + -- Cyril Brulebois Sat, 12 Nov 2011 00:16:28 +0100 + +xserver-xorg-video-qxl (0.0.14-1) unstable; urgency=low + + * New upstream release: + - Fix VT switching issues. + * Add libspice-protocol-dev build-dep: + - Versioned because of FDO#39249. + * Bump Standards-Version to 3.9.2 (no changes). + * Fix typo and missing space in long description. + * Add myself to Uploaders. + + -- Cyril Brulebois Sat, 23 Jul 2011 12:15:54 +0200 + +xserver-xorg-video-qxl (0.0.13-1) unstable; urgency=low + + [ Liang Guo ] + * New upstream version. + * Remove xsfbs accordingly. + * Switch to dh: + - Use debhelper 8. + - Use dh-autoreconf. + * Remove fix_qxl_driver_assert.patch, already in upstream. + * Bump Standards-Version to 3.9.1, no changes needed. + * Add quilt build-dep. + * Add HomePage control field. + * Ignore autogen.sh changes when build source package. + + -- Julien Cristau Tue, 15 Feb 2011 18:27:12 +0100 + +xserver-xorg-video-qxl (0.0.12-1) unstable; urgency=low + + * Initial release (Closes: #576642) + + -- Liang Guo Thu, 20 May 2010 16:44:11 +0800 --- xserver-xorg-video-qxl-0.1.4.orig/debian/compat +++ xserver-xorg-video-qxl-0.1.4/debian/compat @@ -0,0 +1 @@ +9 --- xserver-xorg-video-qxl-0.1.4.orig/debian/control +++ xserver-xorg-video-qxl-0.1.4/debian/control @@ -0,0 +1,71 @@ +Source: xserver-xorg-video-qxl +Section: x11 +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force +Build-Depends: + debhelper (>= 9), + pkg-config, + dh-autoreconf, + xserver-xorg-dev (>= 2:1.9.4), + x11proto-core-dev, + x11proto-fonts-dev, + x11proto-randr-dev, + x11proto-render-dev, + x11proto-xext-dev, + x11proto-xinerama-dev, + x11proto-xf86dga-dev, + dpkg-dev (>= 1.14.17), + automake, + libtool, + xutils-dev (>= 1:7.5), + quilt (>= 0.46-7~), + libudev-dev [linux-any], + libspice-protocol-dev (>= 0.12.2~), + libspice-server-dev [amd64], + python, +Standards-Version: 3.9.6 +Homepage: http://spice-space.org/ +Vcs-Git: git://anonscm.debian.org/pkg-xorg/driver/xserver-xorg-video-qxl +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/driver/xserver-xorg-video-qxl.git + +Package: xserver-xorg-video-qxl +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${xviddriver:Depends} +Provides: ${xviddriver:Provides} +Description: X.Org X server -- QXL display driver + This package provides the driver for QXL video device, i.e. if Linux is + running inside a RedHat Enterprise Virtualization (RHEV) environment, or + other SPICE-compatible KVM/Qemu emulator. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xf86-video-qxl driver module. + +Package: xserver-xorg-video-qxl-dbg +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg-video-qxl (= ${binary:Version}) +Section: debug +Priority: extra +Description: X.Org X server -- QXL display driver (debugging symbols) + This package provides the driver for QXL video device, i.e. if Linux is + running inside a RedHat Enterprise Virtualization (RHEV) environment, or + other SPICE-compatible KVM/Qemu emulator. + . + This package contains the debugging symbols for this driver. + +Package: xserver-xspice +Architecture: amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, xserver-xorg, ${xviddriver:Depends}, python-argparse +Breaks: xserver-xorg-video-qxl (<< 0.1.4-2~) +Replaces: xserver-xorg-video-qxl (<< 0.1.4-2~) +Description: Xspice X server + Xspice is an X server and Spice server in one. It consists of a wrapper script + for executing Xorg with the right parameters and environment variables, a + module names spiceqxl_drv.so implementing three drivers: a video mostly + code identical to the guest qxl X driver, and keyboard and mouse reading from + the spice inputs channel. + . + Xspice allows regular X connections, while a spice client provides the keyboard + and mouse and video output. --- xserver-xorg-video-qxl-0.1.4.orig/debian/copyright +++ xserver-xorg-video-qxl-0.1.4/debian/copyright @@ -0,0 +1,25 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +Copyright 2009 Red Hat, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +src/murmurhash3.c, src/murmurhash3.h is public domain software, and +written by Austin Appleby. --- xserver-xorg-video-qxl-0.1.4.orig/debian/patches/no-surfaces-kms.patch +++ xserver-xorg-video-qxl-0.1.4/debian/patches/no-surfaces-kms.patch @@ -0,0 +1,14 @@ +Origin: http://pkgs.fedoraproject.org/cgit/xorg-x11-drv-qxl.git/tree/no-surfaces-kms.patch + +diff -up xf86-video-qxl-0.1.1/src/qxl_uxa.c.dma xf86-video-qxl-0.1.1/src/qxl_uxa.c +--- xf86-video-qxl-0.1.1/src/qxl_uxa.c.dma 2013-11-08 13:37:49.898702515 +1000 ++++ xf86-video-qxl-0.1.1/src/qxl_uxa.c 2013-11-08 13:38:10.185702515 +1000 +@@ -422,6 +422,8 @@ qxl_create_pixmap (ScreenPtr screen, int + ErrorF ("Create pixmap: %d %d @ %d (usage: %d)\n", w, h, depth, usage); + #endif + ++ if (qxl->kms_enabled) ++ goto fallback; + if (uxa_swapped_out (screen)) + goto fallback; + --- xserver-xorg-video-qxl-0.1.4.orig/debian/patches/pciaccess_io.diff +++ xserver-xorg-video-qxl-0.1.4/debian/patches/pciaccess_io.diff @@ -0,0 +1,44 @@ +Index: xf86-video-qxl-0.1.4/src/qxl.h +=================================================================== +--- xf86-video-qxl-0.1.4.orig/src/qxl.h ++++ xf86-video-qxl-0.1.4/src/qxl.h +@@ -276,6 +276,7 @@ struct _qxl_screen_t + + #ifdef XSERVER_LIBPCIACCESS + struct pci_device * pci; ++ struct pci_io_handle * io; + #else + pciVideoPtr pci; + PCITAG pci_tag; +@@ -634,7 +635,7 @@ void ioport_write(qxl_screen_t *qxl, uin + #else + static inline void ioport_write(qxl_screen_t *qxl, int port, int val) + { +- outb(qxl->io_base + port, val); ++ pci_io_write8(qxl->io, port, val); + } + #endif + +Index: xf86-video-qxl-0.1.4/src/qxl_driver.c +=================================================================== +--- xf86-video-qxl-0.1.4.orig/src/qxl_driver.c ++++ xf86-video-qxl-0.1.4/src/qxl_driver.c +@@ -220,6 +220,8 @@ unmap_memory_helper (qxl_screen_t *qxl) + pci_device_unmap_range (qxl->pci, qxl->vram, qxl->pci->regions[1].size); + if (qxl->rom) + pci_device_unmap_range (qxl->pci, qxl->rom, qxl->pci->regions[2].size); ++ if (qxl->io) ++ pci_device_close_io (qxl->pci, qxl->io); + #else + if (qxl->ram) + xf86UnMapVidMem (scrnIndex, qxl->ram, (1 << qxl->pci->size[0])); +@@ -252,6 +254,9 @@ map_memory_helper (qxl_screen_t *qxl) + qxl->pci->regions[2].size, 0, + (void **)&qxl->rom); + ++ qxl->io = pci_device_open_io(qxl->pci, ++ qxl->pci->regions[3].base_addr, ++ qxl->pci->regions[3].size); + qxl->io_base = qxl->pci->regions[3].base_addr; + #else + qxl->ram = xf86MapPciMem (scrnIndex, VIDMEM_FRAMEBUFFER, --- xserver-xorg-video-qxl-0.1.4.orig/debian/patches/qxl-kms-disable-composite.patch +++ xserver-xorg-video-qxl-0.1.4/debian/patches/qxl-kms-disable-composite.patch @@ -0,0 +1,39 @@ +Origin: http://pkgs.fedoraproject.org/cgit/xorg-x11-drv-qxl.git/tree/qxl-kms-disable-composite.patch + +diff -up xf86-video-qxl-20130514/src/qxl_kms.c.da xf86-video-qxl-20130514/src/qxl_kms.c +diff -up xf86-video-qxl-20130514/src/qxl_uxa.c.da xf86-video-qxl-20130514/src/qxl_uxa.c +--- xf86-video-qxl-20130514/src/qxl_uxa.c.da 2013-06-18 10:08:56.113709355 +1000 ++++ xf86-video-qxl-20130514/src/qxl_uxa.c 2013-06-18 10:10:08.775610941 +1000 +@@ -222,11 +222,15 @@ qxl_has_composite (qxl_screen_t *qxl) + #ifdef XF86DRM_MODE + if (qxl->kms_enabled) { + static Bool result, checked; ++#if 0 /* KMS Composite support seems broken - needs better hw support */ + if (!checked) { + result = qxl_kms_check_cap(qxl, SPICE_DISPLAY_CAP_COMPOSITE); + checked = TRUE; + } + return result; ++#else ++ return FALSE; ++#endif + } + #endif + #ifndef XSPICE +@@ -244,12 +248,16 @@ qxl_has_a8_surfaces (qxl_screen_t *qxl) + { + #ifdef XF86DRM_MODE + if (qxl->kms_enabled) { ++#if 0 /* KMS Composite support seems broken - needs better hw support */ + static Bool result, checked; + if (!checked) { + result = qxl_kms_check_cap(qxl, SPICE_DISPLAY_CAP_A8_SURFACE); + checked = TRUE; + } + return result; ++#else ++ return FALSE; ++#endif + } + #endif + #ifndef XSPICE --- xserver-xorg-video-qxl-0.1.4.orig/debian/patches/series +++ xserver-xorg-video-qxl-0.1.4/debian/patches/series @@ -0,0 +1,4 @@ +no-surfaces-kms.patch +qxl-kms-disable-composite.patch +xextproto.diff +pciaccess_io.diff --- xserver-xorg-video-qxl-0.1.4.orig/debian/patches/xextproto.diff +++ xserver-xorg-video-qxl-0.1.4/debian/patches/xextproto.diff @@ -0,0 +1,17 @@ +Index: xserver-xorg-video-qxl/src/qxl_drmmode.c +=================================================================== +--- xserver-xorg-video-qxl.orig/src/qxl_drmmode.c ++++ xserver-xorg-video-qxl/src/qxl_drmmode.c +@@ -37,12 +37,7 @@ + #include "X11/Xatom.h" + #include "xf86DDC.h" + /* DPMS */ +-#ifdef HAVE_XEXTPROTO_71 + #include +-#else +-#define DPMS_SERVER +-#include +-#endif + #include + + #include "qxl.h" --- xserver-xorg-video-qxl-0.1.4.orig/debian/rules +++ xserver-xorg-video-qxl-0.1.4/debian/rules @@ -0,0 +1,41 @@ +#!/usr/bin/make -f + +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +VIDEODEP = $(shell cat /usr/share/xserver-xorg/videodrvdep 2>/dev/null) + +override_dh_auto_build: + dh_auto_build -- V=1 + +.PHONY: override_dh_strip +override_dh_strip: + dh_strip --dbg-package=xserver-xorg-video-qxl-dbg + +# Install in debian/tmp to retain control through dh_install: +override_dh_auto_install: + dh_auto_install --destdir=debian/tmp + +# Kill *.la files, and forget no-one: +override_dh_install: + find debian/tmp -name '*.la' -delete + -rm -r debian/tmp/usr/share + install -D -m 644 -o root -g root ./examples/spiceqxl.xorg.conf.example debian/tmp/etc/X11/spiceqxl.xorg.conf + dh_install --fail-missing + +# That's a plugin, use appropriate warning level: +override_dh_shlibdeps: + dh_shlibdeps -- --warnings=6 + +override_dh_xsf_substvars: + echo "xviddriver:Depends=$(VIDEODEP)" >> debian/xserver-xspice.substvars + dh_xsf_substvars + +# Enable Xspice support +override_dh_auto_configure: +ifeq ($(DEB_HOST_GNU_TYPE), x86_64-linux-gnu) + dh_auto_configure -- --libdir=/usr/lib --enable-xspice +else + dh_auto_configure -- --libdir=/usr/lib +endif + +%: + dh $@ --with quilt,autoreconf,xsf,python2 --builddirectory=build/ --- xserver-xorg-video-qxl-0.1.4.orig/debian/upstream/signing-key.asc +++ xserver-xorg-video-qxl-0.1.4/debian/upstream/signing-key.asc @@ -0,0 +1,90 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +dZpMz+1C2h3OWrrIsYSPGPL/vTSnUTb+ +=Rfpa +-----END PGP PUBLIC KEY BLOCK----- --- xserver-xorg-video-qxl-0.1.4.orig/debian/watch +++ xserver-xorg-video-qxl-0.1.4/debian/watch @@ -0,0 +1,4 @@ +#git=git://anongit.freedesktop.org/xorg/driver/xf86-video-qxl +version=3 +opts="pgpsigurlmangle=s/$/.sig/" \ +http://xorg.freedesktop.org/releases/individual/driver/ xf86-video-qxl-(.*)\.tar\.gz --- xserver-xorg-video-qxl-0.1.4.orig/debian/xserver-xorg-video-qxl.docs +++ xserver-xorg-video-qxl-0.1.4/debian/xserver-xorg-video-qxl.docs @@ -0,0 +1,2 @@ +README +TODO --- xserver-xorg-video-qxl-0.1.4.orig/debian/xserver-xorg-video-qxl.install +++ xserver-xorg-video-qxl-0.1.4/debian/xserver-xorg-video-qxl.install @@ -0,0 +1 @@ +usr/lib/xorg/modules/drivers/qxl_drv.so --- xserver-xorg-video-qxl-0.1.4.orig/debian/xserver-xorg-video-qxl.links +++ xserver-xorg-video-qxl-0.1.4/debian/xserver-xorg-video-qxl.links @@ -0,0 +1 @@ +usr/share/bug/xserver-xorg-core/script usr/share/bug/xserver-xorg-video-qxl/script --- xserver-xorg-video-qxl-0.1.4.orig/debian/xserver-xspice.docs +++ xserver-xorg-video-qxl-0.1.4/debian/xserver-xspice.docs @@ -0,0 +1,2 @@ +README.xspice +examples/spiceqxl.xorg.conf.example --- xserver-xorg-video-qxl-0.1.4.orig/debian/xserver-xspice.install +++ xserver-xorg-video-qxl-0.1.4/debian/xserver-xspice.install @@ -0,0 +1,3 @@ +etc/X11/spiceqxl.xorg.conf +usr/lib/xorg/modules/drivers/spiceqxl_drv.so +usr/bin --- xserver-xorg-video-qxl-0.1.4.orig/debian/xserver-xspice.manpages +++ xserver-xorg-video-qxl-0.1.4/debian/xserver-xspice.manpages @@ -0,0 +1 @@ +debian/Xspice.1 --- xserver-xorg-video-qxl-0.1.4.orig/src/spiceccid/spice.pcsc.conf.template +++ xserver-xorg-video-qxl-0.1.4/src/spiceccid/spice.pcsc.conf.template @@ -0,0 +1,7 @@ +# Spice CCID Reader +# This configuration file is the format required by the pcscd deamon for +# serial devices; so the qxl driver looks like a serial device to pcscd. +FRIENDLYNAME "Spice ccid" +DEVICENAME /tmp/spice.pcsc.comm +LIBPATH /usr/lib/pcsc/drivers/serial/libspiceccid.so +CHANNELID 1 --- xserver-xorg-video-qxl-0.1.4.orig/tests/xspice_audio_test.py +++ xserver-xorg-video-qxl-0.1.4/tests/xspice_audio_test.py @@ -0,0 +1,19 @@ +#!/usr/bin/python + +from time import sleep +from xspice_audio_test_helper import produce_audio +from xspice_util import launch_xspice, launch_client + +def main(): + port = 8000 + xspice = launch_xspice(port) + sleep(2) + client = launch_client(port) + sleep(1) + produce_audio(xspice.audio_fifo_dir) + sleep(2) + client.kill() + xspice.kill() + +if __name__ == '__main__': + main() --- xserver-xorg-video-qxl-0.1.4.orig/tests/xspice_audio_test_helper.py +++ xserver-xorg-video-qxl-0.1.4/tests/xspice_audio_test_helper.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# coding: utf-8 +import os +import sys +import struct +from math import sin, pi + +def produce_audio(basedir): + filename = os.path.join(basedir, 'testaudio') + os.system(u'mkfifo %s' % filename) + if not os.path.exists(basedir): + print "missing fifo dir %s" % repr(basedir) + f=open(filename,'w') + singen = lambda f: lambda t: (int(min(32767, 32768*sin(t*f/1000.0*pi))), int(min(32767, 32768*sin(t*f/1000.0*pi)))) + f.write(''.join( struct.pack('hh', *singen(40)(t)) for t in xrange(44100) ) ) + os.unlink(filename) + +if __name__ == '__main__': + produce_audio(sys.argv[-1] if len(sys.argv) > 1 else '/tmp/xspice-audio/') --- xserver-xorg-video-qxl-0.1.4.orig/tests/xspice_util.py +++ xserver-xorg-video-qxl-0.1.4/tests/xspice_util.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +import os +from time import sleep +import subprocess +import atexit + +class Process(object): + processes = [] + @classmethod + def new(clazz, *args, **kw): + clazz.processes.append(subprocess.Popen(*args, **kw)) + return clazz.processes[-1] + + @classmethod + def atexit(clazz): + for p in reversed(clazz.processes): + print "child %s" % p.pid + if False: + slp = subprocess.Popen(['/usr/bin/sleep', '10000']) + print "wait on %d" % slp.pid + slp.wait() + if len(clazz.processes) == 0: + return + for p in reversed(clazz.processes): + print "kill %s" % p.pid + try: + p.kill() + except: + pass + if not any(p.poll() for p in clazz.processes): + return + sleep(1) + for p in reversed(clazz.processes): + if not p.poll(): + print "terminate %s" % p.pid + try: + p.terminate() + except: + pass + +atexit.register(Process.atexit) + +def which(prog): + for path_element in os.environ['PATH'].split(':'): + candidate = os.path.join(path_element, prog) + if os.path.exists(candidate): + return candidate + return None + +client_executable = which('remote-viewer') +if not client_executable: + raise SystemExit('missing remote-viewer in path') + +def launch_xspice(port): + basedir = '/tmp/xspice_test_audio' + if not os.path.exists(basedir): + os.mkdir(basedir) + assert(os.path.exists(basedir)) + xspice = Process.new(['../scripts/Xspice', '--port', str(port), '--auto', '--audio-fifo-dir', basedir, '--disable-ticketing', ':15.0']) + xspice.audio_fifo_dir = basedir + return xspice + +def launch_client(port): + client = Process.new([client_executable, 'spice://localhost:%s' % port]) + return client + +if __name__ == '__main__': + launch_xspice(port=8000)